8.1. 외부 API 설계 이슈

클라이언트가 서비스를 직접 호출하도록 API를 설계하면 직관적이며 단순하게 구현할 수 있다.

하지만 이런 방식은 마이크로서비스 아키텍처에서는 다음과 같은 단점이 존재한다.

8.2. API 게이트웨이 패턴

8.2.1. API 게이트웨이 패턴 개요

API 게이트웨이는 방화벽 외부의 클라이언트가 애플리케이션에 API 요청을 하는 단일 창구 역할을 하는 서비스이다.

이로써 내부 애플리케이션 아키텍처를 캡슐화하고 클라이언트에게 적절한 API를 제공한다.

인증, 모니터링, 사용량 제한 등 부수적인 일도 담당한다.

API 게이트웨이는 요청 라우팅, API 조합, 프로토콜 변환을 담당한다.

외부 클라이언트의 API 요청은 모두 API 게이트웨이로 향하고, API 게이트웨이는 적절한 서비스로 요청을 보낸다.

여러 서비스의 호출 결과를 취합하는 API 조합 패턴 방식으로도 처리한다.

HTTP를 gRPC와 같은 프로토콜로 변환하기도 한다.

요청 라우팅

요청이 들어오면 API 게이트웨이는 라우팅 맵을 찾아보고 어느 서비스로 요청을 보낼지 결정한다.