API GatewaySpring Cloud Gateway 인증/인가Spring Cloud Gateway 예제Spring cloud gatewaySpring Cloud gateway란

API Gateway (Spring Cloud Gateway) 알아보기

KUKJIN LEE
KUKJIN LEE
2024년 12월 17일
266

API Gateway란?

마이크로서비스 아키텍처에서 API 게이트웨이는 클라이언트 요청을 각 마이크로서비스로 라우팅하고, 인증/인가, 로드 밸런싱, 요청 변환, 로깅 등의 공통 기능을 중앙 집중적으로 처리하는 중요한 역할을 맡습니다. Spring Boot 기반 마이크로서비스 환경에서는 Spring Cloud Gateway를 주로 활용하며, 이는 비동기 논리에 특화되어 있어 대규모 트래픽 처리에 유리합니다.

 

API Gateway의 필요성

  • 단일 진입점 제공: 여러 마이크로서비스에 직접 요청을 보내는 대신 Gateway를 통해 통합된 엔드포인트로 접근합니다.

  • 보안 및 인증/인가: Gateway 레벨에서 JWT나 OAuth2.0, SSO 등의 인증/인가 로직을 처리할 수 있어 보안 모델을 단순화합니다.

  • 로드 밸런싱 및 라우팅: 동적으로 백엔드 서비스로 트래픽을 라우팅하고 로드 밸런싱을 수행하여 시스템 안정성을 향상시킵니다.

  • 모니터링 및 로깅: 요청 단위로 로깅, 트레이싱, 모니터링을 수행하여 장애 대응과 성능 분석을 용이하게 합니다.

  • 요청/응답 변화: 요청 헤더, 바디 변환, 응답 캐싱 등 공통적인 API 처리 로직을 집중화함으로써 서비스 단의 중복 코드를 최소화한다.

 

Spring Cloud Gateway 특징 및 아키텍처

  • 비동기 논리를 지원하고, 대규모 트래픽 환경에 유연하게 대응한다.

  • 특정 경로 기반, 호스트 기반, 헤더 기반 등 다양한 조건으로 라우트 매핑 가능

  • Filter 체인: 요청/응답 처리 과정에서 인증, 로깅, 변환 등의 정책 적용

 

Gateway 보안 및 인증/인가 활동

  • JWT 토큰 검증: Gateway Filter에서 JWT 토큰 검증을 수행해 유효하지 않은 요청을 서비스로 전달하기 전 차단.

  • OAuth2 연계: OAuth2 인증 서버와 연계해 Access Token 검증, Refresh 토큰 발급 등을 Gateway 레벨에서 처리 가능

 

로깅, 모니터링 및 트레이싱

  • Gateway 비롯해 모든 마이크로서비스 트랜잭션 트레이싱 가능

  • 클라이언트 요청부터 응답까지 Gateway단에서 로깅을 수행하면 문제 발생 시 원인 파악이 용이

관련 글

[SQL 입문] 필요한 데이터만 콕 집어 가져올 수 있는 WHERE 절

사용자는 테이블에 있는 모든 데이터를 다 보고 싶어 하지는 않습니다. 오히려 특정 항목에 대한 데이터만 가져오고 싶을 때가 훨씬 많습니다. 예를 들어, 어떤 사용자의 이메일이나 ID는 알고 있는데, 그 사람이 언제 우리 앱에 가입했는지 확인하고 싶다고 가정해 봅시다...

2026년 1월 27일10

SQL에서 SELECT란 무엇인가?

데이터베이스를 거대한 서류 보관함이라고 생각하면 됩니다. 보관함 안에는 수많은 데이터가 차곡차곡 쌓입니다. SELECT는 이 보관함에서 "내가 원하는 정보를 찾아줘!"라고 요청하는 명령어입니다. 이 과정을 전문 용어로 '쿼리(Query)'라고 부릅니다. &nbs...

2026년 1월 26일10

[SQL 기초] "언제 하나씩 다 넣어?" 데이터 한 번에 넣기

개발을 하다 보면 데이터베이스(DB)에 샘플 데이터를 대량으로 넣어야 할 때가 있습니다. 메뉴 100개를 추가해야 하는데 INSERT 문을 100번 쓰고 있다면? 너무 비효율적이죠! 오늘은 SQL에서 여러 데이터를 한 번에 넣는 '다중 삽입(Multiple Inse...

2026년 1월 21일13

SQL 데이터 삽입하기

데이터가 없는 데이터베이스는 연료 없는 로켓과 같습니다. 이제 'Missions' 테이블에 새로운 행(row)을 추가하는 방법을 알아보겠습니다. "삽입(Inserting)"은 '데이터 추가'를 의미합니다. 기존 Missions 테이블 ...

2026년 1월 20일12