방명록
- BFF(Backend for Frontend) 아키텍처란?2025년 09월 05일 09시 52분 43초에 업로드 된 글입니다.작성자: 봉주니
1. BFF란 무엇인가요?
**BFF(Backend for Frontend)**는 프론트엔드 애플리케이션에 특화된 백엔드 레이어를 의미합니다. 즉, 각 프론트엔드(웹, 모바일 등)에 맞는 전용 백엔드를 따로 구성하여, 클라이언트의 요구사항에 최적화된 API를 제공하는 방식입니다.
기존에는 하나의 공통 백엔드가 모든 클라이언트에 데이터를 제공했지만, BFF는 클라이언트별로 맞춤형 백엔드를 두어 UI/UX의 복잡성과 성능 문제를 해결합니다.
2. 왜 BFF가 필요한가요?
✅ 다양한 클라이언트 대응
- 웹, 모바일, 스마트워치 등 다양한 디바이스가 존재
- 각 디바이스의 화면 크기, 기능, 사용자 경험이 다름
✅ API 응답 최적화
- 모바일은 네트워크가 느릴 수 있으므로, 최소한의 데이터만 필요
- 웹은 더 많은 데이터를 한 번에 받아도 괜찮음
✅ 프론트엔드 개발자 중심의 API 설계
- 프론트엔드 개발자가 직접 BFF를 개발하면, 필요한 데이터만 정확히 받을 수 있음
- 백엔드와 프론트엔드 간의 의사소통 비용 감소
3. BFF의 구조 예시
[Web Frontend] ─┐ ├─> [Web BFF] ──┐ [Mobile App] ───┘ │ ├─> [Microservices] [Admin Dashboard] ──> [Admin BFF] ─┘
각 BFF는 공통 마이크로서비스를 호출하지만, 클라이언트에 맞게 데이터를 가공하여 전달합니다.
4. 장점과 단점
🌟 장점
- 클라이언트 맞춤형 API 제공
- 프론트엔드 개발 속도 향상
- 유지보수 용이 (클라이언트별로 분리된 로직)
⚠️ 단점
- BFF가 많아지면 관리 복잡도 증가
- 중복 로직 발생 가능성
- 인프라 비용 증가
5. 언제 BFF를 도입해야 할까?
- 다양한 클라이언트를 운영 중일 때
- 프론트엔드 개발자가 API 설계에 적극 참여할 수 있을 때
- 기존 백엔드가 프론트엔드 요구사항을 만족시키지 못할 때
반응형'Java' 카테고리의 다른 글
[JAVA] 오라클 rowid 직렬화 오류 (0) 2024.03.13 [Java] Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection (0) 2024.02.21 [JAVA] PKIX path building failed 오류 무시하기 (0) 2022.03.16 [JAVA] Class 파일 decompile (0) 2021.08.11 [JAVA] 2차원 배열 정렬 Arrays.sort (0) 2021.04.23 다음글이 없습니다.이전글이 없습니다.댓글