167. BFF (Backend For Frontend)
핵심 인사이트 (3줄 요약)
- 오직 단일의 중앙집중식 API 게이트웨이 1대만 두면, 모바일 개발팀과 PC 웹 개발팀이 서로 자신에게 필요한 데이터를 달라고 API 명세서 변경을 가지고 싸우며 병목(Gateway Bloated)이 일어난다.
- 이를 타파하여 "모바일만을 위한 미니 게이트웨이(BFF)", "데스크탑 웹만을 위한 BFF" 를 아예 쪼개서 세팅해버려 클라이언트 화면단 밀착형 애자일 런칭 속도를 극대화시킨다.
- 무거운 범용 백엔드 팀의 일정(Release)에 프론트엔드 팀이 종속되지 않는 구조를 획득한다.
Ⅰ. 아키텍처 및 원리
[ 프론트엔드 밀착형 진입 분리 브로커망 ]
(모바일 팀 자율권 개발) (웹 데스크탑 팀 자율권 개발)
[ 모바일용 BFF 서버망 ] [ Web 전용 BFF 서버망 ] (넓은 화면용 다중 데이터 병합 호출)
\ / (내부 공통망)
[ 공통 상품 MSA ] [ 공통 결제 MSA ]
Ⅱ. 실무 적용 및 결론
모바일 앱 화면은 작아서 데이터가 조금만 필요한데 API 게이트웨이가 PC 화면 뷰와 똑같은 수백 줄짜리 거대 JSON을 쏴주면 모바일 배터리와 통신망이 날라간다. BFF는 각 기기별 맞춤형 GraphQL을 이식하거나 Node.js 서버를 직접 프론트엔드 팀이 오너십을 갖고 코딩하는 얇은 막으로 작용하여 완벽한 UI-UX 최적화를 달성시킨다.