[API 시장 동향]API 게이트웨이 패턴 vs 클라이언트-마이크로서비스 패턴

조회수 2069

API Gateway 패턴

  • 클라이언트-마이크로서비스 패턴


클라이언트-마이크로서비스 패턴은 중간자 없이 클라이언트가 서버의 각 마이크로서비스와 직접 통신하는 형태로 주로 소규모의 앱, 특히 서버 사이드 웹 어플리케이션인 경우에 적절한 형태 입니다. 

마이크로서비스 구조는 주로 하나의 기능에 수많은 마이크로서비스가 연계되어 있는데 만약 클라이언트가 직접 마이크로서비스와 통신하는 패턴이라면 클라이언트 쪽에서 여러 개의 요청을 관리해야 하는 상황에 놓이게 됩니다. 이런 경우 다음 같은 문제들을 야기할 수 있습니다.


1. 높은 결합성: 

-    어플리케이션이 내부 마이크로서비스와 직접적으로 연결되어 있어 높은 의존성을 지닙니다. 이런 경우 마이크로서비스의 변화가 어플리케이션에 직접적인 영향을 미치기 때문에 확장성이 낮을 뿐만 아니라 유지 및 보수에도 어려움이 있습니다.


2. 다량의 응답 및 요청

-    하나의 페이지에서 여러 서비스에 요청을 보내야 할 경우도 있는데 이런 경우 서버와 클라이언트간의 요청 및 응답이 많아지게 되면서 지연이 발생하기도 합니다.


3. 보안 문제

-    중간자 없이 내부 서비스가 외부에 다량 노출되는 형태이기 때문에 외부 공격에 대한 위험이 존재합니다.


4. 공통 모듈 처리

-    마이크로서비스간의 통신에서 인증, 인가 등 공통적인 모듈을 반복적으로 처리해야하는 어려움이 있음



  • API 게이트웨이 패턴


API 게이트웨이는 서버와 클라이언트의 중간에 위치하면서 클라이언트에 하나의 엔트리만 제공하는 형태의 패턴으로 위에서 언급된 문제들의 많은 부분을 해결해 줄 수 있습니다.

1. 낮은 결합성

-    클라이언트와 서버 사이에서 하나의 엔드포인트로서 클라이언트의 요청을 내부 마이크로서비스로 라우팅해주기 때문에 클라이언트와 마이크로서비스의 결합성을 낮춰줍니다.


2. 다량의 요청 처리

-    클라이언트는 API 게이트웨이에 하나의 요청만 보내고 요청을 받은 게이트웨이가 여러 마이크로서비스에 요청을 보낸 다음 응답 결과들을 하나로 통합해 반환해주는 방식으로 클라이언트와 서버 사이의 지연을 획기적으로 줄일 수 있음


3. 높은 보안

-    서버의 마이크로서비스들이 외부에 노출되지 않고 API 게이트웨이만 노출되어 있는 형태이기 때문에 외부 공격에 대한 위험이 적음


4. 공통 모듈 처리

-    인증, 인가, 캐싱 등 다양한 공통 모듈을 API 게이트웨이가 처리해주면서 서비스간의 복잡도를 줄여주는 동시에 기능의 향상을 도모할 수 있음

API Gateway 솔루션


 #APIGateway패턴vs마이크로서비스패턴 #마이크크로서비스문제점 #보안문제 #응답지연 #해결방안 #APIGateway #이데아텍