알다가도 모르겠는 API Gateway에 대해서 쉽고 간단하게 알아보자!!!
클라이언트와 백엔드 서비스 사이에서 API 요청을 관리하고 라우팅하는 역할을 하는 서비스이다.
간단히 비유를 들어서 설명하자면 API G/W는 음식점의 홀서빙 담당자라고 생각하면 이해가 쉽다.
고객의 요청을 받고, 그에 적합한 주문을 주방으로 전달해주고 음식이 완성되면 고객한테 완성된 음식을 전달해주는 역할을 한다.
AWS API G/W 에는 3가지의 종류가 있다. 이 3개의 API Gateway에 대해서 알아보도록 하자 쉽게!!
RESTful API
WebSocket API
HTTP API
REST는 "Representational State Transfer" 의 약어로 이를 이해하기 위해서는 HTTP Method에 대해서 이해를 하고 있어야 한다. RESTful API는 HTTP Method를 사용하여 리소스에 접근하고 상태 변경 및 조회한다.
HTTP 메소드는 클라이언트와 서버 간의 요청-응답에서 어떤 작업을 수행할 것인지 명시하는 HTTP 프로토콜의 동작을 정의한다.
위 Method를 사용하여 요청을 보내게 되고 이에 맞는 작업을 수행하게 된다.
GET /Users : 사용자 목록을 조회
POST /Users : 새로운 사용자 생성
PUT /users/123 : ID가 123인 사용자의 정보를 수정
DELETE /Users/123 : ID가 123인 사용자를 삭제
WebSocket은 양방향 통신을 지원하는 프로토콜로, 실시간 애플리케이션에서 주로 사용된다.
실시간 채팅 애플리케이션에서 사용자가 메시지를 보내면 서버가 즉시 응답을 반환하고, 서버가 다른 사용자의 메시지를 실시간으로 푸시한다. 또한 온라인 게임에서 실시간으로 플레이어 간 상호작용을 처리한다.
HTTP API는 HTTP 프로토콜을 사용하여 데이터를 주고받는 API를 의미한다.
RESTful 방식의 복잡한 작업 방식이 아닌, 단순한 요청/응답 처리 시에 사용 되는 API 이다.
| 구분 | RESTful API | WebSocket API | HTTP API |
|---|---|---|---|
| 통신 방식 | 단방향 요청-응답 방식 | 양방향 실시간 통신 | 단방향 요청-응답 방식 (RESTful 포함) |
| 연결 유지 | 연결이 각 요청마다 새로 생성 | 지속적인 연결 (오픈된 채널을 통해 데이터 전송) | 연결이 매 요청마다 새로 생성 |
| 응답 방식 | 서버가 요청에 대한 응답을 반환 | 실시간으로 데이터를 주고받을 수 있음 | 서버가 요청에 대한 응답을 반환 |
| 용도 | CRUD 작업에 적합, 웹/모바일 앱의 데이터 교환 | 실시간 데이터 전송이 필요한 시스템 (예: 채팅, 게임) | 단순한 요청-응답을 통한 데이터 교환 |
| 장점 | 표준화된 설계, 클라이언트-서버 간 명확한 역할 분담 | 실시간 데이터 처리, 빠르고 효율적인 양방향 통신 | 간단한 설계와 구현, 다양한 서비스에 활용 가능 |