📌 원문 문제
API 게이트웨이(API Gateway) 패턴을 설명하시오.
1. 개념
API 게이트웨이란 클라이언트와 마이크로서비스 사이에 위치하여, 인증·인가·라우팅·로드밸런싱·로깅·프로토콜 변환을 중앙에서 처리하는 단일 진입점(Single Entry Point)입니다. 클라이언트가 수십 개의 마이크로서비스를 직접 호출하는 복잡성을 제거합니다.
2. 핵심 기능
- 인증·인가: JWT·OAuth2.0 검증을 각 서비스가 아닌 게이트웨이에서 중앙 처리
- 라우팅·로드밸런싱: 요청 경로·헤더·메서드 기반으로 적절한 서비스로 라우팅
- 요청 집계(Aggregation): 여러 서비스 응답을 하나로 합쳐 클라이언트 반환 (N+1 요청 감소)
- Rate Limiting·서킷 브레이커: DDoS 방어, 장애 서비스로의 요청 차단
- 프로토콜 변환: REST ↔ gRPC ↔ WebSocket 변환
- 관측가능성: 모든 API 호출 로깅·메트릭 수집 중앙화
3. BFF (Backends For Frontends) 패턴
단일 게이트웨이가 모바일·웹·제3자 API 요구사항을 모두 처리하면 과부하·결합도가 높아집니다. BFF는 클라이언트 유형별로 전용 게이트웨이를 두는 패턴입니다.
| 구분 | 단일 API 게이트웨이 | BFF 패턴 |
|---|---|---|
| 유연성 | 낮음 (공통 API) | 높음 (클라이언트 맞춤) |
| 복잡도 | 낮음 | 높음 (BFF 수 증가) |
| 적합 상황 | 소·중규모 서비스 | 모바일·웹·파트너 API 요구 다를 때 |
4. 주요 솔루션
Kong (오픈소스, 플러그인 풍부), AWS API Gateway (완전관리형), Nginx + Lua, Envoy (서비스 메시 연계), Spring Cloud Gateway (Java 생태계)
✅ 핵심 암기: API 게이트웨이 = MSA 단일 진입점 | 인증·라우팅·집계·Rate Limit 중앙화 | BFF = 클라이언트 유형별 전용 게이트웨이