Learning
토픽 162 / 192·시스템 설계 및 아키텍처 패턴

BFF (Backend For Frontend)

BFF (Backend For Frontend)

각 프론트엔드(웹, 모바일, IoT) 클라이언트 유형별로 전용 백엔드 API를 제공하는 패턴으로, 공통 백엔드 서비스와 클라이언트 사이의 어댑터 역할

특징: 클라이언트 최적화(↑), 팀 자율성(↑), 변경 영향 격리(↑), BFF 중복/운영 복잡도(↓)

구성요소

  • Web BFF: 웹 전용 (상세 정보)
  • Mobile BFF: 앱 전용 (요약 정보)
  • Partner BFF: 외부 파트너 (제한 필드)
  • 공통 백엔드 서비스: 마이크로서비스

BFF 역할: 여러 백엔드 호출 조합, 응답 변환/필터링, 인증/인가, 캐싱, 프로토콜 변환(REST→GraphQL)

적용사례: SoundCloud, Netflix, 멀티 플랫폼 서비스

비교: BFF(클라이언트별/맞춤) vs API Gateway(공통/범용) vs GraphQL(쿼리 유연성)

연관: MSA, API Gateway, GraphQL, 팀 토폴로지