API Gateway 쉽게 이해하기 (기초)

링키텍트·2025년 3월 12일

알다가도 모르겠는 API Gateway에 대해서 쉽고 간단하게 알아보자!!!

API Gateway란?

클라이언트와 백엔드 서비스 사이에서 API 요청을 관리하고 라우팅하는 역할을 하는 서비스이다.

간단히 비유를 들어서 설명하자면 API G/W는 음식점의 홀서빙 담당자라고 생각하면 이해가 쉽다.
고객의 요청을 받고, 그에 적합한 주문을 주방으로 전달해주고 음식이 완성되면 고객한테 완성된 음식을 전달해주는 역할을 한다.

AWS API Gateway의 종류

AWS API G/W 에는 3가지의 종류가 있다. 이 3개의 API Gateway에 대해서 알아보도록 하자 쉽게!!

  1. RESTful API

  2. WebSocket API

  3. HTTP API


1. RESTful API

REST는 "Representational State Transfer" 의 약어로 이를 이해하기 위해서는 HTTP Method에 대해서 이해를 하고 있어야 한다. RESTful API는 HTTP Method를 사용하여 리소스에 접근하고 상태 변경 및 조회한다.

HTTP Method

HTTP 메소드는 클라이언트와 서버 간의 요청-응답에서 어떤 작업을 수행할 것인지 명시하는 HTTP 프로토콜의 동작을 정의한다.

  • GET : 데이터 조회
  • POST : 데이터 생성
  • PUT : 데이터 수정
  • DELETE : 데이터 삭제

위 Method를 사용하여 요청을 보내게 되고 이에 맞는 작업을 수행하게 된다.

예시)

GET /Users : 사용자 목록을 조회
POST /Users : 새로운 사용자 생성
PUT /users/123 : ID가 123인 사용자의 정보를 수정
DELETE /Users/123 : ID가 123인 사용자를 삭제

특징

  • 확장성을 요구하는 MSA(Micro Service Architecture) 환경에서 많이 사용된다.
  • 데이터 조회/수정/삭제 등의 기본적인 CRUD 작업을 할 때 유용하다.
  • 웹 및 모바일 애플리케이션에서 데이터 교환에 많이 사용한다.
  • 요청-응답 방식: 클라이언트가 서버로 요청을 보내면 서버는 응답을 반환합니다. 이 과정이 단방향(one-way)이다.

2. WebSocket API

WebSocket은 양방향 통신을 지원하는 프로토콜로, 실시간 애플리케이션에서 주로 사용된다.

특징

  • 양방향 통신
    : 클라이언트와 서버 간에 실시간으로 양방향 통신이 가능하다.
  • 지속적인 연결
    : 연결을 한 번만 설정하면 지속적으로 데이터를 주고 받을 수 있어, 상태 유지가 가능하다.
  • 낮은 지연 시간
    : 데이터를 실시간으로 주고 받기 때문에 빠르고 효율적이다.
  • 메시지 기반
    : 메시지 단위로 데이터를 전송하며, 요청-응답 방식이 아니다.

예시

실시간 채팅 애플리케이션에서 사용자가 메시지를 보내면 서버가 즉시 응답을 반환하고, 서버가 다른 사용자의 메시지를 실시간으로 푸시한다. 또한 온라인 게임에서 실시간으로 플레이어 간 상호작용을 처리한다.


3. HTTP API

HTTP API는 HTTP 프로토콜을 사용하여 데이터를 주고받는 API를 의미한다.
RESTful 방식의 복잡한 작업 방식이 아닌, 단순한 요청/응답 처리 시에 사용 되는 API 이다.

사용하는 이유

  • 단순한 API 설계
    : HTTPS API는 HTTPS 프로토콜을 기반으로 하며, 매우 직관적이고 구현하기 쉽다.
  • RESTful 설계가 필요 없을 때
    : RESTful 설계가 필요 없는 단순한 요청/응답 처리가 필요할 때 유리하다.
  • 웹서버와의 연동
    : 웹 서버나 프록시 서버와의 연동에서 사용한다. HTTP 프로토콜만으로도 충분한 통신이 가능하다.

최종 정리

구분RESTful APIWebSocket APIHTTP API
통신 방식단방향 요청-응답 방식양방향 실시간 통신단방향 요청-응답 방식 (RESTful 포함)
연결 유지연결이 각 요청마다 새로 생성지속적인 연결 (오픈된 채널을 통해 데이터 전송)연결이 매 요청마다 새로 생성
응답 방식서버가 요청에 대한 응답을 반환실시간으로 데이터를 주고받을 수 있음서버가 요청에 대한 응답을 반환
용도CRUD 작업에 적합, 웹/모바일 앱의 데이터 교환실시간 데이터 전송이 필요한 시스템 (예: 채팅, 게임)단순한 요청-응답을 통한 데이터 교환
장점표준화된 설계, 클라이언트-서버 간 명확한 역할 분담실시간 데이터 처리, 빠르고 효율적인 양방향 통신간단한 설계와 구현, 다양한 서비스에 활용 가능

0개의 댓글