웹 백엔드 개발

[Backend] BFF(Backend For Frontend) 패턴

iinana 2025. 3. 17. 07:58

BFF는 Backend For Frontend의 줄임말로,  API를 직접 의존할 때 발생하는 문제들을 해결하고자 등장한 architecture이다. 문제 해결 방법으로 프론트엔드를 위한 중간 서버를 구현한다. 이 중간서버는 프론트엔드에 표현될 데이터를 위한 백엔드의 역할을 하게 된다. 백엔드 서버에서 받아온 API 응답값들을 좀 더 프론트 친화적으로 만드는 작업을 하는 것이다. 

예를 들어, 아래와 같은 json 데이터를 백엔드로

 

 

BFF 아키텍처 패턴에는 여러가지가 있다. 

1. 단일 BFF 패턴: 모든 클라이언트를 위해 하나의 BFF를 사용 (single BFF)

2. 클라이언트별 BFF 패턴: 클라이언트 유형 별 BFF를 사용 (Web BFF, Mobile BFF, Deskop BFF)

3. 기능별 BFF 패턴: 애플리케이션의 주요 기능이나 도메인 별로 구분하여 사용 (User Management BFF, Order Processing BFF, Analytics BFF) 

 

 

BFF 구현을 위한 대표적인 구현체는 GraphQL이다. 앞서 언급한 아키텍처 패턴 중 단일 패턴보다는 여러 개의 BFF들을 가지는 패턴들에 더 적합한 구현체이다. GraphQL의 기본원리는 '질의'이다. 프론트엔드에서 질의를 통해 자신에게 필요한 데이터를 받는 것을 기반으로 한다. 

 

아래 글들이 BFF를 공부할 때 참고하기에 좋았다. 

https://tech.kakaopay.com/post/bff_webflux_coroutine/

 

WebFlux와 코루틴으로 BFF(Backend For Frontend) 구현하기 | 카카오페이 기술 블로그

카카오페이 오프라인 결제 신규 서비스인 ‘내 주변 매장 찾기' 서비스를 개발하기 위해 BFF 서버 구조에서 WebFlux, 코루틴으로 비동기 API 서버 개발 경험을 공유합니다.

tech.kakaopay.com

https://fe-developers.kakaoent.com/2022/220310-kakaopage-bff/

 

카카오페이지는 BFF(Backend For Frontend)를 어떻게 적용했을까? | 카카오엔터테인먼트 FE 기술블로그

박수빈(cheese) 유저와 가장 가까이 맞닿아있는 프론트엔드를 좋아합니다. 취미로 "기타의숩"이라는 YouTube를 하고 있습니다.

fe-developers.kakaoent.com

https://velog.io/@qkrdkwl9090/BFFBackend-For-Frontend-%EB%B6%84%EC%84%9D-%EA%B0%80%EC%9D%B4%EB%93%9C

 

BFF(Backend For Frontend) 분석 가이드

Backend For Frontend(BFF)는 특정 프론트엔드 애플리케이션이나 클라이언트의 요구사항에 맞춰 설계된 백엔드 서비스를 의미합니다.

velog.io

 

728x90
반응형