🌳 고급 고급
API Gateway가 뭔가요?
쉽게 이해하기
대형 건물의 안내 데스크를 떠올려보세요. 방문객이 건물에 들어오면 안내 데스크에서 어느 층, 어느 사무실로 가야 하는지 안내받습니다. 신분증도 확인하고, 방문 기록도 남깁니다. API Gateway는 이처럼 모든 API 요청이 거쳐가는 중앙 관문 역할을 합니다.
핵심 정리
여러 API를 하나의 진입점으로 모아서 관리하는 서버입니다.
자세히 알아보기
API Gateway는 클라이언트와 백엔드 서비스 사이에 위치한 중간 서버입니다. 모든 API 요청은 먼저 API Gateway를 거쳐서 실제 서비스로 전달됩니다. 마이크로서비스 아키텍처에서 특히 중요합니다.
API Gateway가 하는 일은 매우 다양합니다. 첫째, 라우팅입니다. 클라이언트는 하나의 주소만 알면 되고, Gateway가 요청을 적절한 서비스로 보냅니다. 둘째, 인증과 권한 검사입니다. 모든 요청의 토큰을 검증하고, 권한이 있는지 확인합니다. 셋째, Rate Limiting입니다. 특정 사용자가 너무 많은 요청을 보내지 못하도록 제한합니다.
그 외에도 여러 기능이 있습니다. 요청과 응답을 변환하거나, 여러 API 호출을 하나로 묶거나, 캐싱을 통해 성능을 높입니다. 로깅과 모니터링도 한곳에서 처리할 수 있어 편리합니다.
예를 들어 쇼핑몰 앱이 있다고 해보세요. 상품 서비스, 주문 서비스, 사용자 서비스가 각각 따로 있습니다. 앱에서 이 세 가지를 직접 호출하면 복잡합니다. 대신 API Gateway를 두면 앱은 Gateway만 보고, Gateway가 알아서 각 서비스로 요청을 전달합니다. 인증도 Gateway에서 한 번만 하면 됩니다.
실무에서는 AWS API Gateway, Kong, Nginx, Envoy 같은 도구를 씁니다. 클라우드 서비스는 대부분 관리형 API Gateway를 제공합니다. 마이크로서비스를 운영한다면 API Gateway는 거의 필수입니다.