Gateway 라는 말을 종종 들어본 적이 있을 것이다. Gateway란 관문, 출입구를 뜻하는 단어로 네트워크에서는 패킷이 특정 네트워크로 들어올 때 가장 먼저 통과하는 포인트를 말한다.
그렇다면 API Gateway 란 무엇일까?
API Gateway 는 여러 API 서버의 앞단에 위치하는 서버이다.
클라이언트는 API 서버를 직접 호출하지 않고 API Gateway 를 통하여 호출하고 사용한다.
그러면 왜 API Gateway를 사용하는 것일까?
최근 대부분의 서비스들이 모놀리틱 서비스가 아니라, MSA 구조로 서비스를 개편하고 있다.
그 이유는 자세하게 다루진 않겠지만 간단하게 생각해서 우리가 프로젝트를 여러 모듈로 나누는 원리와 비슷하다.
아무튼, 이렇게 하나의 큰 서비스가 여러개의 작은 서비스로 나누어져 있는 구조에서 필연적으로 발생하는 니즈가 있다. 바로 각 서비스에서 공통으로 처리해야 할 로직에 대한 고민이다.
예를들어, 각각의 작은 서비스들이 공통적으로 인증, 로깅 로직을 사용한다면 이들을 한번에 처리해 줄 수 있는 앞단에 위치할 서비스가 필요하다. 이것이 바로 API Gateway 이다.
API Gateway 가 사용될 수 있는 용도는 무수히 많겠지만 그 중에서도 많이 사용되는 용도들을 정리해 보았다.