NestJS · API Gateway

API 게이트웨이에서 중앙화할 것과 남길 것

API 게이트웨이는 모든 업무 로직을 모으는 서버가 아니라, 외부 진입 정책과 라우팅, aggregation, rate limit을 담당하는 얇은 경계여야 한다.

01

요청 수신

클라이언트는 내부 서비스 주소 대신 게이트웨이 URL만 호출한다.

02

공통 정책

인증, rate limit, request id, CORS 같은 외부 경계를 처리한다.

03

서비스 호출

path와 version에 따라 내부 REST, gRPC, message transport로 전달한다.

04

응답 조합

여러 서비스 데이터를 합칠 때 timeout과 부분 실패 정책을 둔다.

BFF
클라이언트 맞춤 웹과 모바일이 다른 응답 shape를 요구할 때 유용
도메인 로직 유입 한계
Auth edge
신원 확인 토큰 검증과 사용자 claim 전달
내부 서비스도 권한 재확인 가능
Rate limit
남용 방지 IP, user, API key 단위 제한
로그인 전후 기준 분리
Circuit
장애 격리 느린 하위 서비스를 제한하고 fallback 제공
관측 지표 필요

얇은 경계 · 추적 · 부분 실패 점검

얇은 경계 게이트웨이가 주문 계산 같은 도메인 규칙을 품지 않는다.
추적 게이트웨이와 하위 서비스 로그가 같은 request id로 연결된다.
부분 실패 하위 서비스 하나가 전체 화면을 무조건 실패시키지 않는다.
보안 내부 서비스가 외부에서 직접 호출되지 않는다.