167. BFF (Backend For Frontend)

핵심 인사이트 (3줄 요약)

  1. 오직 단일의 중앙집중식 API 게이트웨이 1대만 두면, 모바일 개발팀과 PC 웹 개발팀이 서로 자신에게 필요한 데이터를 달라고 API 명세서 변경을 가지고 싸우며 병목(Gateway Bloated)이 일어난다.
  2. 이를 타파하여 "모바일만을 위한 미니 게이트웨이(BFF)", "데스크탑 웹만을 위한 BFF" 를 아예 쪼개서 세팅해버려 클라이언트 화면단 밀착형 애자일 런칭 속도를 극대화시킨다.
  3. 무거운 범용 백엔드 팀의 일정(Release)에 프론트엔드 팀이 종속되지 않는 구조를 획득한다.

Ⅰ. 아키텍처 및 원리

  [ 프론트엔드 밀착형 진입 분리 브로커망 ]
     (모바일 팀 자율권 개발)       (웹 데스크탑 팀 자율권 개발)  
     [ 모바일용 BFF 서버망 ]        [ Web 전용 BFF 서버망 ] (넓은 화면용 다중 데이터 병합 호출)
               \                         / (내부 공통망)
                [ 공통 상품 MSA ]   [ 공통 결제 MSA ] 

Ⅱ. 실무 적용 및 결론

모바일 앱 화면은 작아서 데이터가 조금만 필요한데 API 게이트웨이가 PC 화면 뷰와 똑같은 수백 줄짜리 거대 JSON을 쏴주면 모바일 배터리와 통신망이 날라간다. BFF는 각 기기별 맞춤형 GraphQL을 이식하거나 Node.js 서버를 직접 프론트엔드 팀이 오너십을 갖고 코딩하는 얇은 막으로 작용하여 완벽한 UI-UX 최적화를 달성시킨다.