본문 바로가기

엔지니어링

API 게이트웨이 패턴

프로그래밍 과제로 팀 프로젝트를 진행하던 A와 B가 있습니다. A와 B는 프로젝트를 마이크로서비스 아키텍처로 구축하기로 결정했습니다. 그런데... 갑자기 궁금증이 듭니다.

"마이크로서비스 간의 통신을 어떻게 관리하나요?"

이런 상황에서 사용할 수 있는 것이 바로 API 게이트웨이 패턴입니다. 그렇다면 이 API 게이트웨이 패턴은 무엇을 말하는걸까요? 이건 왜 중요한 걸까요? 그리고 어떻게 사용하는 걸까요? 이 글을 통해 API 게이트웨이 패턴에 대한 여러가지 질문들을 해결해 봅시다.

API 게이트웨이 패턴은 마이크로서비스 아키텍처에서 클라이언트와 각각의 마이크로서비스 간의 통신을 단순화시키는 방법입니다. 클라이언트가 직접 여러 마이크로서비스에 접근하는 대신, API 게이트웨이를 통해 모든 통신을 관리하게 됩니다.

API 게이트웨이 패턴의 이점은 크게 3가지가 있습니다.

첫째, 각 서비스에 대한 클라이언트의 직접 접근을 제한함으로써 시스템의 안정성을 높일 수 있습니다.

둘째, 서비스에 대한 접근을 단일화하여 클라이언트의 구현 복잡성을 줄일 수 있습니다.

마지막으로, API 게이트웨이가 제일 앞단에서 트래픽을 관리하고 로드 밸런싱을 수행하는 등의 추가적인 역할을 수행할 수 있습니다.

예를 들어, 온라인 쇼핑몰 프로젝트를 생각해봅시다. 이 쇼핑몰은 상품 서비스, 주문 서비스, 결제 서비스, 리뷰 서비스 등 여러 마이크로서비스로 나뉩니다. 사용자는 웹 브라우저나 모바일 앱을 통해 이 쇼핑몰을 이용하게 됩니다.

 

이 경우, 클라이언트(브라우저나 앱)가 직접 각 마이크로서비스에 접근하려면 복잡한 로직을 구현해야 합니다. 예를 들어, 상품 상세 페이지를 보기 위해서는 상품 서비스로부터 상품 정보를, 리뷰 서비스로부터 해당 상품의 리뷰를 각각 요청해야 합니다. 그러나 API 게이트웨이 패턴을 사용하면, 클라이언트는 단순히 API 게이트웨이에 "상품 상세 페이지 정보"를 요청하기만 하면 됩니다. 그러면 API 게이트웨이는 필요한 마이크로서비스에 대한 요청을 직접 관리하고, 필요한 데이터를 모두 모아 클라이언트에게 반환합니다.

 

API 게이트웨이 패턴은 마이크로서비스 아키텍처의 핵심 구성 요소입니다. 이 패턴을 통해 서비스 간의 통신을 간소화하고, 클라이언트의 부담을 줄일 수 있습니다. 또한, 로드 밸런싱, 트래픽 관리, 인증 등의 부가적인 기능을 수행하여 시스템의 안정성을 높이는 역할을 합니다.

 

자. 그럼 다음포스트에서 API 게이트웨이의 구현 방법에 대해 알아보겠습니다.

'엔지니어링' 카테고리의 다른 글

서비스 디스커버리 패턴  (0) 2023.07.15
API 게이트웨이 - Rate limit  (0) 2023.07.15
Spring Boot를 이용한 OAuth 2.0 인증 구현  (0) 2023.07.15
API 게이트웨이 - 인증  (0) 2023.07.15
API 게이트웨이 구현  (0) 2023.07.15