학습일지/Architecture

[Architecture] API Gateway (Spring Cloud Gateway)

Merge Log 2025. 9. 17. 14:28

API 게이트웨이 개념

  • 클라이언트의 요청을 받고 백엔드 서비스로 라우팅 / 다양한 부가 기능을 제공하는 중간 서버입니다
  • 라우팅 / 인증, 인가 / 필터 / 모니터링, 로깅 등의 기능을 가능하게 합니다

Spring Cloud Gateway

  • Spring Cloud Netflix 패키지의 일부
  • API 게이트웨이의 역할을 하며 위와 비슷하게 필터링, 동적 라우팅, 모니터링, 보안 등의 역할을 수행한다

API 게이트웨이 필요한 이유

  • Client 가 주문(Order), 상품(Product), 유저(User) 에 대해서 사용해야 한다고 가정 및 각 도메인은 MSA 화 되어있다
  • 이때 Client 는 각 서버에 대해 호스트를 알아야 하며 각각 관리해주어야 한다

이럴경우 Client 가 모든 호스트를 관리해야하는 문제가 생긴다

이를 간편화하기 위해 서버 앞단에 API Gateway 를 설정한 후 각 url 에 대해 라우팅을 한다

  • 요청을 단일화하는 장점이 있다
  • 인증, 인가를 API Gateway 한 곳에서 처리할 수 있다
  • 요청에 대한 트레이스 및 로깅을 API Gateway 에서 할 수 있다
    • 예시) 로그인하지 않은 유저가 주문한 요청 개수

Spring Cloud Gateway 테스트

구조

  • Client 는 /order, /product 를 통해서 요청
  • API 게이트웨이는 요청 URL 을 통해 라우팅
  • 각 서버는 Eureka 에 등록되어 현재 살아있는 인스턴스가 해당 요청을 수행 및 응답

테스트 코드