본문 바로가기
컴퓨터 지식/클라우드 & AWS

[MSA] 마이크로서비스(MSA) 의 다양한 패턴들 🍀 / 2️⃣ - API 게이트웨이 패턴, BFF 패턴

by 서상혁 2021. 7. 23.

API 게이트웨이란?

 

API 게이트웨이는 여러 클라이언트가 다양한 서비스에 요청을 보내게 될 때, 복잡한 호출 관계를 가지게 되는 것을 방지하기 위해 나온 대책이다. 클라이언트와 서비스 API 서버 사이에 API 게이트웨이라는 단일 진입점을 둠으로서 애플리케이션 레벨의 라우팅을 구현한다. API 게이트웨이 패턴을 사용하면 아래와 같은 여러 이점들을 얻을 수 있다.

 

API 게이트웨이 구성도 (출처 : MS Doc)

 

API 게이트웨이의 이점들

  • API가 남용 방지 및 속도 제한
  • API가 사용 분석 및 모니터링 툴을 추가 가능
  • 빌링 시스템에, 로그 시스템 연결에 용이
  • 추가나 삭제 시에, 계속 서비스 진입점이 같아서 편리
  • 레지스트리 서비스와 연계하여 동적 라우팅 및 로드 밸런싱 가능
  • 기타 등등 구현함에 따라 무수히 많다

API 게이트웨이 패턴을 구현하는 방법은?

  • 쿠버네티스의 Service 혹은 Ingress
  • 스프링 API 게이트웨이 서비스(Spring API Gateway Service)

 

 

* API 게이트웨이 패턴에 대해 좋은 글이 있어서 남깁니다. (제가 백날 설명해봤자 이 좋은 글을 보는게 더 이로울 것 같아..)

https://bcho.tistory.com/1005

 

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 (API GATEWAY)

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 #1 조대협 (http://bcho.tistory.com) MSA(마이크로 서비스 아키텍쳐, 이하 MSA)와 함께 근래에 떠오르고 있는것이 API 게이트 웨이이다. API 게이트웨이는 API

bcho.tistory.com

 


BFF (Backend For Frontend) 란?

 말 그대로 프론트엔드를 위한 백엔드 서버라는 뜻이다. 현대에는 PC 뿐만 아니라 태블릿, 모바일, 웨어러블 등등 다양한 클라이언트 장비들을 고려해야 한다. 또한, 해외 서비스로 확장을 하고 있는 상황이라면, 각 나라별로 이용하는 서비스나 세부 비즈니스 로직들이 다를 수 있다.

 

 마이크로 서비스에서는, 이런 클라이언트 별로 각양각색인 요구사항에 특화된 처리를 하기 위해 BFF 패턴을 주로 이용한다. 앞서 API 게이트웨이로 진입하기 전에, 각 클라이언트에 맞는 서버를 하나 더 두는 방식이다.

 

BFF 와 API 게이트웨이 패턴을 적용한 모습

 

 Web, Mobile app, 3rd party app 과 같은 다양한 클라이언트 별로, 각각의 BFF 서버를 가짐으로 인해 클라이언트 별로 최적화된 처리를 수행할 수 있게 된다. 또한, BFF 서버 다음 단으로는 통합 API 게이트웨이를 둠으로써, 공통적인 인가, 로깅, 보안 등의 이점을 가져갈 수 있다.

 

 

BFF 패턴에 대해 자세히 설명이 된 좋은 글이 있어 공유합니다. 😀

https://metleeha.tistory.com/entry/BFFBackend-for-Frontend-%EB%9E%80

 

BFF(Backend for Frontend) 란?

frontend SPA 서비스와 backend springboot 애플리케이션을 연결할 BFF(backend for frontend)를 만들기 앞서 BFF 개념을 알아봅니다. 원문을 제가 나름대로 이해한 대로 적어 내용은 약간 다를 수 있습니다. BFF..

metleeha.tistory.com

 

 

참조

- API 게이트웨이 : https://bcho.tistory.com/1005

- BFF : https://metleeha.tistory.com/entry/BFFBackend-for-Frontend-%EB%9E%80

- 책 도메인 주도 설계로 시작하는 마이크로 서비스 개발 (한정헌, 유해식, 최은정, 이주영 저)

 

사진 출처 : https://engineering-skcc.github.io/microservice%20outer%20achitecture/outer-arch-api-gw/

 

 

 

728x90

댓글