API 게이트웨이란? (마이크로서비스 통신 중개)

마이크로서비스 아키텍처에는 API 게이트웨이라는 개념이 있습니다. 마이크로서비스 아키텍처는 여러 서비스가 독립적으로 구동되는 특성상 클라이언트와의 통신이 복잡해질 수 있습니다. API 게이트웨이를 통해 이 문제를 해결할 수 있습니다.

API 게이트웨이란?

API 게이트웨이(Gateway)는 여러 API가 서로 다른 백엔드 서비스로 요청을 전달하는 방법을 제어하는 서버입니다. 간단히 말하면 클라이언트의 통신이 서버로 들어오는 첫 번째 입구입니다. API 게이트웨이는 클라이언트의 요청을 적절한 서비스로 라우팅 합니다. 클라이언트 요청의 인증 토큰을 확인하고 해당 클라이언트가 요청한 서비스에 대한 권한이 있는지 확인합니다.

 

API 게이트웨이는 마이크로서비스 아키텍처에서 많이 활용됩니다. 마이크로서비스 아키텍처란 여러 개의 독립적인 서비스가 구동되며 마치 하나의 애플리케이션이 서비스되고 있는 듯한 경험을 주는 형태의 소프트웨어 아키텍처 구조를 말합니다.

 

마이크로서비스 아키텍처에서 API 게이트웨이는 다른 서비스들과 마찬가지로 독립적인 프로세스로 동작하고 특정 포트에서 리스닝 상태로 대기하면서 클라이언트의 요청을 처리합니다.

API 게이트웨이 사용 이유

1. API 게이트웨이는 모든 클라이언트 요청에 대한 단일 진입점을 제공합니다. 예를 들어, 클라이언트 입장에서는 A 기능을 사용할 땐 A 서비스로, B 서비스를 이용할 땐 B 서비스에 요청을 해야하지만 그럴 필요 없이 API 게이트웨이에 요청하면 API 게이트웨이가 알아서 적절한 서비스로 라우팅 합니다.

 

API gateway 구조
출처=tibco.com

 

2. API 게이트웨이는 인증 및 권한 부여 기능을 제공하여 보안을 강화합니다. 목적지까지 가기 전에 일종의 관문이 하나 있는 개념이기 때문에 검증이 먼저 이루어진 요청이 백엔드 서비스로 전달됩니다.

 

3. API 게이트웨이는 요청 병합, 캐싱 등의 기능을 통해 성능을 최적화할 수 있습니다. 이는 네트워크 트래픽을 줄이고, 백엔드 서비스의 부하를 감소시킵니다.

 

4. API 게이트웨이를 사용하면, 백엔드 서비스의 변경이 클라이언트에 직접적인 영향을 미치지 않습니다. 예를 들어, 서비스가 이동되거나 API가 변경되어도 API 게이트웨이가 이를 관리하므로 클라이언트는 이러한 변경을 반영하지 않아도 됩니다. 서버 사이드에서 해결이 가능합니다.

 

예시

예를 들어, 마이크로서비스 아키텍처로 구축된 쇼핑몰 웹사이트가 있다고 해보겠습니다. 이 웹사이트는 아래의 서비스들로 구성됩니다.

  • 사용자 관리 서비스
  • 제품 카탈로그 서비스
  • 주문 관리 서비스
  • 배송 관리 서비스
  • API 게이트웨이 서비스

 

클라이언트가 주문을 생성하는 요청을 보내면 API 게이트웨이는 이 요청을 받아 주문 관리 서비스로 라우팅 합니다. 만약 클라이언트가 제품 정보를 요청하면 API 게이트웨이는 제품 카탈로그 서비스로 해당 요청을 라우팅합니다.

 

이러한 방식으로, API 게이트웨이는 클라이언트에게 훨씬 단순하고 일관된 인터페이스를 제공하며, 클라이언트는 여러 서비스와의 복잡한 통신 대신 API 게이트웨이와만 통신하면 됩니다.

반응형

댓글

Designed by JB FACTORY