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
'웹 백엔드 개발' 카테고리의 다른 글
[Backend/Redis] Redis 야무지게 사용하기 (0) | 2025.03.19 |
---|---|
[Backend/OAuth] 구글 로그인 기능 구현을 위한 토큰 발급 받기 (0) | 2025.03.19 |