728x90
MSA에서 API Gateway를 사용하는 이유와 이점
MSA 아키텍처에서 API Gateway는 단순한 요청 라우터를 넘어서, 보안·인증·모니터링의 중심 허브 역할을 수행합니다.
1. 요청 분산 및 라우팅
- 클라이언트는 마이크로서비스의 실제 경로를 몰라도 됨.
- Gateway가 요청을 각 서비스로 분배.
Client → /auth/login → API Gateway → auth-service
→ /user/me → → user-service
2. 인증/인가 처리 중앙 집중화
- AccessToken 검증은 Gateway에서 처리.
- 각 서비스는 인증된 사용자 정보(
x-user-id
)만으로 비즈니스 로직 실행 가능. - 보안 로직 중복 제거 + 서비스 로직 순수성 보장
3. 로깅, 모니터링, 속도 제한
- 모든 요청 로깅, 에러 로깅을 Gateway에서 통합 처리 가능.
- Rate Limiting 적용도 Gateway 레벨에서 통일 적용.
app.use(globalRateLimiter);
app.use(loggerMiddleware);
4. CORS 처리 일원화
- 여러 서비스가 존재하더라도 Gateway에서 일괄적으로 CORS 설정 가능.
app.use(cors({ origin: "http://your-frontend.com", credentials: true }));
5. 서비스 보안 구조 강화
- 서비스들은 외부에 직접 노출되지 않고, Gateway를 통해서만 접근 가능.
- 보안 위협(DDOS, IP 스캐닝)으로부터 내부 서비스 보호.
6. 서비스 확장 유연성
- 새로운 서비스 추가 시, Gateway에 경로만 추가하면 손쉽게 연결 가능.
router.use('/item', authenticate, createServiceProxy(process.env.ITEM_SERVICE_URL!));
7. API 응답 조작 또는 조합 가능
- 여러 마이크로서비스 응답을 Gateway에서 조합하여 BFF(Backend For Frontend) 역할 가능.
인증 구조 예시
Frontend
↓
[API Gateway] ← AccessToken 검증
↓
auth-service ← 로그인 / 회원가입 / 토큰 재발급
user-service ← 내 정보 조회, 유저 설정
한 줄 요약
API Gateway는 클라이언트와 마이크로서비스 사이의 프론트 도어 역할을 하며,
인증, 라우팅, 보안, 모니터링, 확장성의 중심 축입니다.
반응형
'백엔드 개발 > API · 아키텍처 설계' 카테고리의 다른 글
SOLID 원칙 완벽 이해와 실전 적용: 리팩토링 전후 코드로 배우는 객체 지향 설계 전략 (0) | 2025.05.22 |
---|---|
UserFactory로 객체 생성 책임을 분리한 이유 – SRP 기반 설계 적용기 (0) | 2025.05.09 |
Procedural 구조에서 Use Case 구조로, 내가 구조를 다시 짠 이유 (0) | 2025.05.08 |
사이드 프로젝트 채팅 시스템 설계 Q&A – 안드로이드 & 백엔드 협업 정리 (2) | 2024.02.14 |
Update API는 한 번에 처리할까? 필드별 나눠 처리할까 (0) | 2024.01.02 |