API Gateway는 마이크로서비스 아키텍처에서 프론트엔드와 백엔드 간의 중간자 역할을 수행한다. 이때 핵심이 되는 구성 요소 중 하나가 바로 프록시 서버(Proxy Server)이다.

프록시 서버란?


 

프록시 서버는 클라이언트와 백엔드 서버 사이에 위치하여, 클라이언트의 요청을 받아 백엔드로 전달하고, 백엔드의 응답을 다시 클라이언트로 보내주는 중간 계층 서버이다.

 

즉, 클라이언트는 실제 백엔드를 직접 호출하지 않고, 프록시를 통해 간접적으로 호출한다.

 

API Gateway는 이러한 프록시 역할을 수행한다.

 


API Gateway의 프록시 주요 기능 및 예시


1️⃣ 중계 (Forwarding) - 기본 중계 기능

 

프록시의 가장 핵심적인 기능은 요청을 중계하는 것이다.

 

📌 예시

사용자가 /api/orders 로 요청을 보내면, API Gateway는 이를 내부 마이크로서비스 http://order-service.internal/orders 로 라우팅한다.

 

중계 단계

  • 요청 수신 -> 요청 전달 -> 응답 수신 -> 응답 전송
Client → [API Gateway] → Order Service
                        ←

 

👉 이러한 구조는 백엔드가 외부에 노출되지 않도록 보호하면서, API 경로를 통합적으로 관리할 수 있게 해준다.

 

2️⃣ 보안 (Security)

 

API Gateway는 보안 필터 역할도 수행한다.

  • 요청 검사 (SQL Injection, CSRF 필터링)
  • IP 허용/차단 정책
  • JWT 또는 OAuth 인증 처리
  • SSL/TLS 암호화 지원
  • HTTPS 강제 리디렉션

 

📌 예시

  • /admin 경로는 로그인 사용자만 접근 가능하도록 제한
  • 인증 토큰이 없는 요청은 즉시 401 응답 반환

 

이러한 보안 기능은 Gateway에서 선제적으로 필터링되므로, 각 마이크로서비스에서는 보안 로직을 중복 구현할 필요가 없다.

 

3️⃣ 캐싱 (Caching)

프록시는 자주 요청되는 정적 또는 비정적 데이터에 대해 캐싱을 수행하여 시스템 성능을 높인다.

 

캐싱 가능한 대상

  • 카테고리 목록
  • 가격 정책
  • 자주 바뀌지 않는 설정 정보 등

 

📌 예시

/api/categories → Redis 캐시에서 10분간 보관

 

클라이언트가 동일한 요청을 보낼 경우, 백엔드를 거치지 않고 캐시된 응답을 즉시 반환한다.

 

4️⃣ 프로토콜 변환 (Protocol Conversion)

 

서로 다른 프로토콜을 사용하는 시스템 간의 호환을 위해, API Gateway는 HTTP -> gRPC 또는 REST <-> WebSocket 변환을 지원할 수 있다.

 

📌 예시

모바일 앱 → HTTP 요청 → [API Gateway] → 내부 gRPC 기반 서비스 호출

 

이러한 변환 기능 덕분에 프론트엔드 개발자는 다양한 백엔드 프로토콜을 몰라도 쉽게 사용할 수 있다.

 

5️⃣ 로드 밸런싱 (Load Balancing)

 

API Gateway는 요청을 여러 인스턴스로 분산하여 처리할 수 있다. 이는 시스템의 가용성과 안전성을 높이는 데 기여한다.

 

📌 전략 예시

  • 라운드 로빈
  • 최소 연결
  • 가중치 기반

 

📌 실전 적용 예시

/api/products → Product Service 인스턴스 3개로 균등 분배

 

서비스가 많아질수록, 이러한 로드 밸런싱은 필수 요소가 된다.

 

6️⃣ 압축 (Compression)

 

응답 데이터를 압축하여 트래픽을 줄이고 빠른 응답을 제공하는 것도 프록시의 역할 중 하나이다.

 

📌 예시

  • Accept-Encoding: gzip 헤더가 있는 요청에 대해 API Gateway는 gzip 압축 후 응답 반환
Client → API Gateway → GZIP 압축 → 응답 전송

 

특히 대용량 JSON 데이터를 반환할 때, 응답 속도가 눈에 띄게 개선된다.

 

7️⃣ SSL/TLS 처리

 

모든 클라이언트 요청을 HTTPS로 암호화하여 중간자 공격(MITM)을 방지하고, 안전한 통신을 보장한다.

 

TLS 인증서를 프록시 서버에서 관리하면, 백엔드 서비스는 복잡한 암호화 처리를 하지 않아도 된다.

 

장점

  • 백엔드 간 단순 HTTP 통신 가능
  • 인증서 교체 및 갱신 관리 단일화
  • HTTPS 요청 처리 성능 향상

 

📌 예시

  • API Gateway에서 SSL 인증서를 설치하여 /graphql 요청 암호화 처리
  • 백엔드 마이크로서비스는 HTTP로 통신하여 복잡성 최소화
[HTTPS 클라이언트] → [API Gateway(SSL)] → [HTTP Backend]