마이크로서비스 아키텍처의 진입점 설계
마이크로서비스 아키텍처(MSA)에서는 시스템이 여러 개의 서비스로 나뉜다.
예를 들어 전자상거래 시스템을 생각해 보면 다음과 같은 서비스들이 존재할 수 있다.
Order Service
Payment Service
Inventory Service
Search Service
각 서비스는 독립적으로 개발되고 배포되지만
외부 클라이언트(웹, 모바일 앱)는 결국 이 서비스들과 통신해야 한다.
문제는 클라이언트가 모든 서비스에 직접 접근하는 구조가 되면
시스템이 매우 복잡해진다는 것이다.
이 문제를 해결하기 위해 등장한 구조가 API Gateway 패턴이다.
API Gateway란 무엇인가
API Gateway는 클라이언트와 마이크로서비스 사이에 위치하는 단일 진입점(Single Entry Point)이다.
구조를 단순화하면 다음과 같다.
API Gateway 없는 구조
├ Auth Service
├ Order Service
├ Payment Service
├ Inventory Service
└ Search Service
이 경우 클라이언트는 여러 서비스와 직접 통신해야 한다.
API Gateway 구조
↓
API Gateway
↓
Microservices
클라이언트는 Gateway만 호출하고
Gateway가 내부 서비스로 요청을 전달한다.
1. 클라이언트 복잡성 감소
Gateway가 없으면 클라이언트는 다음 정보를 모두 알아야 한다.
- 서비스 주소
- API 경로
- 인증 방식
- 서비스 버전
예를 들어 모바일 앱에서 다음 API들을 호출해야 할 수 있다.
/order/create
/payment/process
/inventory/check
이때 각 API가 서로 다른 서버에 존재하면
클라이언트 로직이 복잡해진다.
API Gateway는 이 문제를 해결한다.
→ Gateway
→ 내부 서비스
클라이언트는 하나의 엔드포인트만 알면 된다.
2. 인증과 보안 중앙화
MSA 환경에서는 여러 서비스가 존재한다.
각 서비스마다 인증 로직을 구현하면 다음 문제가 생긴다.
- 인증 코드 중복
- 보안 정책 관리 어려움
- 유지보수 비용 증가
API Gateway를 사용하면 인증을 한 곳에서 처리할 수 있다.
예
API Key 검증
OAuth 인증
Gateway에서 인증을 처리하고
내부 서비스에는 인증 정보를 전달할 수 있다.
3. 요청 라우팅
API Gateway는 요청을 적절한 서비스로 전달한다.
예를 들어 다음과 같은 라우팅이 가능하다.
/api/orders → Order Service
/api/payment → Payment Service
Gateway는 일종의 Reverse Proxy 역할을 한다.
이 구조 덕분에 서비스 내부 구조가 변경되어도
클라이언트는 영향을 받지 않는다.
4. API Aggregation
MSA 환경에서는 하나의 화면이 여러 서비스 데이터를 필요로 하는 경우가 많다.
예를 들어 주문 상세 페이지를 생각해 보자.
필요한 데이터
- 주문 정보
- 결제 상태
- 상품 정보
- 배송 정보
Gateway가 없으면 클라이언트는 여러 API를 호출해야 한다.
→ Order API
→ Payment API
→ Product API
→ Delivery API
API Gateway를 사용하면 다음처럼 처리할 수 있다.
→ Gateway
→ 여러 서비스 호출
→ 결과 통합
→ Client
이 패턴을 API Aggregation이라고 한다.
5. 공통 기능 처리
API Gateway는 다양한 공통 기능을 처리할 수 있다.
대표적인 기능은 다음과 같다.
- 인증(Authentication)
- 요청 로깅
- Rate Limiting
- 캐싱
- 트래픽 관리
- 모니터링
이 기능들을 서비스마다 구현할 필요가 없다.
즉 Gateway는 Cross-cutting concern을 처리하는 역할을 한다.
6. 마이크로서비스 내부 구조 보호
Gateway를 사용하면 내부 서비스 구조를 외부에 노출하지 않아도 된다.
예를 들어 서비스가 다음처럼 변경될 수 있다.
→ Order Core
→ Order History
→ Order Analytics
Gateway가 없다면 클라이언트도 변경되어야 한다.
하지만 Gateway가 있다면
외부 API는 그대로 유지할 수 있다.
즉 Gateway는 시스템 내부 구조를 보호하는 역할도 한다.
대표적인 API Gateway 도구
MSA 환경에서는 다양한 Gateway 기술이 사용된다.
대표적인 예는 다음과 같다.
- NGINX
- Spring Cloud Gateway
- Kong
- Envoy
이 도구들은 대부분
- 라우팅
- 인증
- 로깅
- 트래픽 제어
같은 기능을 제공한다.
정리
마이크로서비스 아키텍처에서 API Gateway는 단순한 프록시가 아니라
시스템의 중요한 구성 요소다.
Gateway는 다음 역할을 수행한다.
| Single Entry Point | 클라이언트 진입점 |
| 인증 처리 | 보안 정책 중앙화 |
| 라우팅 | 서비스 호출 관리 |
| API Aggregation | 여러 서비스 결과 통합 |
| 공통 기능 처리 | 로깅, 캐싱, Rate Limit |
결국 API Gateway는
마이크로서비스와 외부 클라이언트 사이의 인터페이스 계층이라고 볼 수 있다.
'Spring & Backend' 카테고리의 다른 글
| MSA에서 가장 어려운 문제는 데이터가 아니라 ‘관측(Observability)’이다 (0) | 2026.03.12 |
|---|---|
| MSA에서 서비스 간 통신은 REST가 좋을까, 메시지 큐가 좋을까? (0) | 2026.03.12 |
| MSA에서 서비스 경계를 어떻게 나누어야 할까 (0) | 2026.03.12 |
| MSA가 분산 모놀리스가 되는 이유 (0) | 2026.03.12 |
| 왜 Netflix와 Uber는 Java 기반 MSA를 선택했을까 (0) | 2026.03.12 |
