API 게이트웨이 (API Gateway)

컴퓨터과학·AI
한 줄 정의: 여러 개의 서버(서비스)로 가는 모든 요청을 한곳에서 먼저 받아 인증하고 적절한 곳으로 나눠 보내주는 중간 관문 역할을 하는 서버입니다.

쉽게 풀면

큰 회사 건물에 여러 부서(인사팀, 회계팀, 영업팀)가 각각 다른 층에 있다고 해봅시다. 방문객이 층마다 일일이 찾아다니며 신분증을 보여주고 용건을 설명하는 대신, 1층 안내 데스크에서 신분을 한 번 확인받고 "몇 층 어느 부서로 가시면 됩니다"라고 안내받으면 훨씬 편리합니다. API 게이트웨이는 바로 이 안내 데스크와 같습니다. 마이크로서비스 아키텍처처럼 하나의 서비스가 여러 개의 작은 서버로 쪼개져 있을 때, 사용자의 요청을 게이트웨이가 먼저 받아서 "이 사용자가 맞는지" 인증하고, 요청 내용에 맞는 서버로 전달해줍니다. 덕분에 각 서버는 인증이나 로깅 같은 반복 작업을 따로 처리할 필요 없이 자기 역할에만 집중할 수 있습니다.

왜 중요한가

클라우드 환경에서 서비스를 여러 개의 작은 단위로 쪼개 개발·배포하는 방식이 보편화되면서, 그 서버들을 외부에 어떻게 안전하고 효율적으로 노출할 것인가가 시스템 설계의 핵심 과제가 되었습니다. API 게이트웨이는 이 문제에 대한 표준적인 해법 중 하나로, 분산 시스템 아키텍처, 클라우드 컴퓨팅, 서비스 메시(service mesh) 같은 연구 주제와 밀접하게 연결됩니다. 그래서 마이크로서비스 기반 시스템의 성능, 보안, 확장성을 다루는 논문에서는 게이트웨이의 구조나 정책을 실험 설계의 일부로 언급하는 경우가 많습니다.

논문에서는 이렇게 쓰입니다

"제안된 아키텍처는 API 게이트웨이를 통해 인증, 요청 속도 제한, 로깅을 중앙에서 처리함으로써 각 마이크로서비스의 개발 복잡도를 낮췄다."

이 문장은 인증이나 트래픽 제한처럼 여러 서버가 공통으로 필요로 하는 기능을 게이트웨이 한곳에 모아 처리해서, 개별 서버는 핵심 기능 개발에만 집중할 수 있게 했다는 뜻입니다.

"IoT 환경에서는 다수의 센서 노드가 보내는 요청을 API 게이트웨이가 먼저 수집·검증한 뒤 후단 처리 서버로 전달하도록 설계하여, 개별 디바이스가 직접 백엔드에 접근함으로써 발생하는 보안 위협을 줄였다."

사물인터넷(IoT)처럼 수많은 소형 기기가 네트워크에 연결되는 환경에서도, 게이트웨이가 각 기기의 요청을 한 번 걸러주는 관문 역할을 해 보안성과 관리 효율을 높인다는 내용입니다.

"본 연구에서는 API 게이트웨이 계층에 캐싱과 회로 차단기(circuit breaker) 패턴을 적용하여, 특정 서비스에 장애가 발생했을 때 전체 시스템으로 오류가 전파되는 것을 억제하는 실험을 수행했다."

대규모 서비스 안정성 연구에서는 게이트웨이가 단순 중계를 넘어, 장애가 다른 서비스로 번지지 않도록 막는 방어 계층으로도 활용된다는 것을 보여주는 문장입니다.

조금 더 깊게 보면

실제 논문에서 API 게이트웨이를 다룰 때는 단순 라우팅 기능 외에, 속도 제한(rate limiting), 회로 차단기(circuit breaker), 캐싱, 요청/응답 변환 같은 부가 기능이 함께 논의되는 경우가 많습니다. 이런 기능들은 대체로 게이트웨이가 백엔드 서비스들을 보호하고 전체 시스템의 회복탄력성(resilience)을 높이는 역할을 한다는 공통점이 있습니다. 또한 게이트웨이 자체의 지연 시간(latency)과 처리량(throughput)이 시스템 전체 성능에 영향을 줄 수 있어, 관련 연구에서는 게이트웨이 계층에서 발생하는 오버헤드를 함께 측정·평가하기도 합니다. 쿠버네티스 기반 환경에서는 API 게이트웨이가 인그레스(ingress) 컨트롤러나 서비스 메시의 일부 구성요소와 함께 언급되는 경우도 흔합니다.

주의할 점

API 게이트웨이는 모든 요청이 반드시 거쳐가는 지점이기 때문에, 게이트웨이 자체에 장애가 생기면 그 뒤에 있는 모든 서버로 가는 길이 한꺼번에 막히는 단일 장애점(single point of failure)이 될 수 있습니다. 이는 여러 서버로 트래픽을 단순히 나눠주는 로드밸런싱과 혼동되기도 하지만, 게이트웨이는 인증·라우팅·속도 제한 같은 더 다양한 역할까지 함께 수행한다는 점에서 차이가 있습니다.

관련 용어