API (Application Programming Interface)
API는 애플리케이션과 애플리케이션 간에 소통할 수 있도록 정해둔 인터페이스(규칙)를 의미합니다.
쉽게 말해 “서로 다른 프로그램이 대화하는 언어”입니다.
특징
- 재사용성: 기능을 모듈화하여 다른 프로그램에서 호출 가능
- 표준화: 일관된 규칙(메서드, 응답 형식 등)을 따라 통신
- 추상화: 내부 동작을 몰라도 제공된 규칙대로만 사용하면 됨
ex) “카카오 로그인 API”를 쓰면, 직접 카카오 서버 로직을 구현하지 않아도 로그인 기능을 바로 가져다 쓸 수 있습니다.
API Gateway
API Gateway는 클라이언트와 여러 개의 백엔드 서비스(API) 사이에서 중앙 게이트 역할을 하는 서버입니다.
주요 역할
- 요청 라우팅: 어떤 서비스로 요청을 보낼지 결정
- 인증/인가 처리: 보안 관리
- 로드 밸런싱: 여러 서버로 요청을 분산
- 캐싱, 로깅, 모니터링
ex) 모바일 앱 → API Gateway → (회원 서비스, 결제 서비스, 상품 서비스)
클라이언트는 개별 서비스와 직접 통신하지 않고, Gateway를 통해 일괄적으로 요청을 보냅니다.
REST 아키텍처 스타일
REST(Representational State Transfer)는 웹의 자원(Resource)을 URI로 표현하고, 이를 HTTP 메서드로 조작하는 아키텍처 스타일입니다. REST는 특정 기술이 아니라 설계 원칙입니다.
핵심 원칙
- 자원의 식별: /users/1 같은 고유한 URI로 자원 표현
- 표현(Representation): JSON, XML 등으로 데이터 전송
- 무상태성(Stateless): 요청 간에 서버가 클라이언트 상태를 보존하지 않음
- 일관된 인터페이스: 메서드와 URI 설계를 일관되게 적용
- 클라이언트–서버 분리: UI와 데이터 처리의 역할 분리
REST API
REST 원칙을 충실히 지킨 API를 REST API라고 합니다. REST API를 잘 설계하면, 문서 없이도 URL과 메서드만 보고 어떤 동작인지 쉽게 이해할 수 있습니다.
설계 규칙 예시
- 자원 기반 URI: /users (사용자 목록), /users/1 (특정 사용자)
- HTTP 메서드 활용:
- GET /users → 사용자 조회
- POST /users → 사용자 생성
- PUT /users/1 → 사용자 전체 수정
- PATCH /users/1 → 사용자 부분 수정
- DELETE /users/1 → 사용자 삭제
- 표준 응답 코드 사용: 200, 201, 400, 404, 500 등
'📚 cs' 카테고리의 다른 글
[JavaScript] this 바인딩 (0) | 2025.08.30 |
---|---|
[JavaScript] V8 엔진과 GC (Garbage Collection) (3) | 2025.08.28 |
[JavaScript] 실행 컨텍스트와 호이스팅 (1) | 2025.08.27 |
개발자 기초 cs - 컴퓨터 네트워크 기초 (2) | 2025.08.25 |
[JavaScript] 클로저(Closure)란? (1) | 2025.08.24 |