- [1] API Gateway와 백엔드 서비스 간의 통신 방식은 어떻게 이루어지나요? <<<<
API Gateway와 백엔드 서비스의 통신 방식
1. 기본 개념 이해하기텍스트
- API Gateway는 클라이언트(예: 웹 앱, 모바일 앱)와 백엔드 서비스(각 마이크로서비스) 사이의 중간 관리자 역할을 합니다.
- 클라이언트가 요청을 보내면, API Gateway가 이를 받아서 적절한 백엔드 서비스로 전달하고, 그 결과를 다시 클라이언트에게 반환합니다.
2. 통신의 흐름

-
클라이언트 → API Gateway
- 사용자가 앱에서 버튼을 클릭하면 요청(예: 주문 내역 보기 요청)이 API Gateway로 전송됩니다.
- 요청은 주로 HTTP(S) 프로토콜을 사용하며, REST API나 GraphQL 형식으로 이루어집니다.
-
API Gateway → 백엔드 서비스
- API Gateway는 요청을 분석하고, 적합한 백엔드 서비스로 전달합니다.
- 이 과정에서 라우팅(Routing)이라는 작업이 이루어집니다. (어떤 요청이 어느 서비스로 가야 하는지 결정)
-
백엔드 서비스 → API Gateway
- 백엔드 서비스는 요청을 처리한 뒤 결과를 API Gateway로 다시 보냅니다.
-
API Gateway → 클라이언트
- API Gateway는 백엔드 서비스로부터 받은 응답을 클라이언트에 반환합니다.
실제 통신 방식
1. HTTP/HTTPS 프로토콜
- API Gateway와 백엔드 서비스 간의 통신은 주로 HTTP(S) 프로토콜을 사용합니다.
- 클라이언트가 요청한 URL, 데이터, 인증 정보 등이 포함됩니다.
2. REST API와 JSON
- 요청과 응답은 보통 JSON 형식으로 이루어집니다.
- 예:
{ "userId": 123, "orderId": 456 }
- REST API는 요청을 보내는 방식입니다:
GET: 데이터를 조회
POST: 데이터를 생성
PUT: 데이터를 수정
DELETE: 데이터를 삭제
3. 라우팅과 로드밸런싱
- API Gateway는 라우팅 테이블을 사용해 요청을 어디로 보낼지 결정합니다.
- 예:
/orders 요청은 주문 서비스로, /users 요청은 사용자 서비스로.
- 로드밸런싱 기능으로 여러 서비스 인스턴스 중 하나를 선택해 트래픽을 분산시킵니다.
4. 추가 기능: 인증과 변환
- 요청이 백엔드로 전달되기 전에, API Gateway가 인증/인가(Authorization)를 확인합니다.
- 요청/응답 데이터를 변환하거나 추가 데이터를 덧붙이기도 합니다.
예시로 쉽게 이해하기

🍕 피자 가게 예시
- 고객이 피자 주문을 요청(클라이언트 → API Gateway).
- API Gateway는 "이건 주문 관련 요청이네"라고 판단하고, 주문 처리 팀에 전달(백엔드 서비스).
- 주문 처리 팀에서 "주문이 완료되었습니다"라고 응답(API Gateway로).
- API Gateway는 이 메시지를 고객에게 전달(클라이언트).
API Gateway와 백엔드 간의 핵심 기술 요소
1. **라우팅**: 요청을 적절한 서비스로 전달.
2. **인증 및 보안**: 올바른 요청인지 확인 후 전달.
3. **데이터 변환**: 클라이언트 요청을 백엔드가 이해할 수 있게 변환하거나,
백엔드 응답을 클라이언트가 이해하기 쉽게 변환.
4. **로드밸런싱**: 트래픽을 균등하게 분배해 과부하 방지.
핵심 요약
- API Gateway는 요청을 백엔드 서비스로 라우팅하고, 응답을 클라이언트로 반환합니다.
- 통신은 주로 HTTP/HTTPS와 JSON 형식으로 이루어집니다.
- 추가로 인증, 로드밸런싱, 데이터 변환 같은 기능을 통해 효율적이고 안전한 통신을 지원합니다.

- [1] API Gateway에서 사용하는 로드밸런싱은 어떻게 작동하나요? >>>>>
- [2] REST API와 GraphQL의 차이는 무엇인가요?
- [3] API Gateway와 프록시 서버(NGINX, HAProxy)는 어떻게 다른가요?