핵심 인사이트 (3줄 요약)
- 단일 진입점 (Single Entry Point): 클라이언트가 수많은 마이크로서비스를 직접 호출하지 않고, 하나의 관문을 통해 모든 요청을 처리하도록 하는 프록시 서버이다.
- 관심사 분리: 인증, 인가, 로깅, 속도 제한(Rate Limiting) 등 공통적인 기능을 백엔드 서비스에서 분리하여 게이트웨이에서 통합 관리한다.
- 보안 및 추상화: 내부 시스템 구조를 외부에 노출하지 않고 감춤으로써 보안을 강화하고, 서비스 간의 결합도를 낮춘다.
Ⅰ. 개요 (Context & Background)
- 정의: 클라이언트와 백엔드 마이크로서비스들 사이에 위치하여 API 요청을 수락하고, 이를 적절한 서비스로 라우팅하며 공통 부가 기능을 수행하는 아키텍처 패턴이다.
- 배경: MSA 환경에서 서비스 개수가 늘어남에 따라 클라이언트가 모든 서비스의 엔드포인트를 관리하기 어렵고, 서비스마다 중복되는 공통 로직(인증 등)을 효율적으로 처리할 필요성이 커졌다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
[ API Gateway Architecture ]
+---------------------+
| Clients (Web/App) |
+---------------------+
| (HTTPS Request)
v
+---------------------+
| API Gateway | (Auth, Logging, Routing)
+---------------------+
| | |
+----+----+ +----+----+ +----+----+
| Service A| | Service B| | Service C| (Microservices)
+---------+ +---------+ +---------+
- 작동 원리:
- 요청 수신: 클라이언트로부터 온 REST, gRPC 등의 요청을 단일 엔드포인트에서 받는다.
- 전처리 (Pre-filtering): 토큰 검증(인증), 권한 체크(인가), IP 차단 등을 수행한다.
- 라우팅: 요청 URL 파라미터를 분석하여 실제 처리를 담당할 서비스 인스턴스로 전달한다.
- 응답 병합 (Aggregation): 필요 시 여러 서비스의 응답을 하나로 합쳐서 클라이언트에게 돌려준다.
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
| 비교 항목 | 직접 호출 (Direct Client-to-Service) | API 게이트웨이 활용 |
| 통신 복잡도 | 클라이언트가 모든 IP/Port를 알아야 함 | 게이트웨이 주소 하나만 알면 됨 |
| 인증/인가 | 각 서비스마다 중복 구현 필요 | 게이트웨이에서 1회 통합 처리 |
| 보안성 | 모든 서비스가 외부에 노출됨 (취약) | 내부 서비스는 사설망에 숨김 (안전) |
| 성능 영향 | 직접 통신으로 레이턴시 낮음 | 게이트웨이 경유로 인한 미세한 지연 발생 |
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
- 기술사적 판단: API 게이트웨이는 MSA의 '현관'이다. 만약 게이트웨이가 중단되면 전체 시스템이 마비되므로, 반드시 고가용성(HA) 구성을 해야 하며 성능 병목이 발생하지 않도록 스케일 아웃이 용이한 솔루션을 선택해야 한다.
- 실무 전략: 단순한 라우팅을 넘어 '서킷 브레이커(Circuit Breaker)'를 게이트웨이 단에 배치하여, 특정 서비스 장애 시 시스템 전체로의 전이를 선제적으로 차단하는 전략이 유효하다.
Ⅴ. 기대효과 및 결론 (Future & Standard)
- 기대효과: 클라이언트 개발이 단순해지고, 백엔드 개발자는 비즈니스 로직에만 집중할 수 있다. 전체 시스템의 트래픽을 한눈에 모니터링할 수 있는 옵저버빌리티(Observability)를 확보한다.
- 결론: API 게이트웨이는 현대적 클라우드 네이티브 아키텍처의 필수 구성 요소이며, 최근에는 서비스 메시(Service Mesh)와 상호 보완적인 관계로 발전하고 있다.
📌 관련 개념 맵 (Knowledge Graph)
- 상위 개념: MSA 패턴, 클라우드 디자인 패턴
- 동급 개념: BFF (Backend For Frontend), 리버스 프록시
- 연관 기술: Spring Cloud Gateway, Kong, AWS API Gateway, NGINX
👶 어린이를 위한 3줄 비유 설명
- 커다란 백화점에 들어갈 때 입구에서 안내원이 "식당은 5층, 장난감은 3층으로 가세요"라고 알려줘요.
- 손님이 직접 모든 방 번호를 찾으러 다닐 필요가 없어서 아주 편리하죠.
- 입구에서 나쁜 사람이 들어오지 못하게 미리 확인도 해주니 안심하고 쇼핑할 수 있답니다!