주니봉
  • 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 설계에 적극 참여할 수 있을 때
    • 기존 백엔드가 프론트엔드 요구사항을 만족시키지 못할 때
    반응형
    댓글