DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 여기어때
#Backend

화면 단위 복잡성을 흡수하다: 여기어때 BFF의 기록

화면 단위 복잡성을 흡수하다: 여기어때 BFF의 기록
01

Summary

50개 API 호출을 하나로! 여기어때가 BFF로 화면 복잡성을 해결한 방법

클라이언트는 화면만 그리세요, 복잡한 로직은 BFF가 모두 흡수합니다

MSA의 고질적인 문제인 '화면 단위 복잡성'을 해결하기 위해 여기어때가 도입한 BFF 레이어의 실제 구축 사례를 공유합니다. 클라이언트에 산재해 있던 비즈니스 로직과 데이터 조합 책임을 서버로 옮겨 서비스의 안정성과 개발 생산성을 높인 핵심 노하우를 담고 있습니다.

  • 01도메인 중심에서 UI 중심으로 서버 아키텍처 관점 전환
  • 02Spring Retry와 지수 백오프를 이용한 안정적인 외부 API 연동
  • 03Caffeine 로컬 캐시를 활용한 BFF 계층의 성능 최적화
  • 04다중 플랫폼 환경에서의 비즈니스 로직 중복 및 불일치 문제 해소

+RECOMMENDATION

마이크로서비스 환경에서 프론트엔드 개발 속도가 저하되거나 API 호출 오버헤드가 큰 경우 이 아티클을 필독하십시오. 특히 주문이나 결제와 같이 복잡한 상태 분기가 필요한 도메인에서 BFF는 강력한 힘을 발휘합니다.

The Problem

MSA 구조로 인해 도메인이 세분화되면서 클라이언트가 하나의 화면을 구성하기 위해 수많은 API를 직접 호출하고 데이터를 조합해야 하는 네트워크 오버헤드 및 로직 복잡성 문제가 발생했습니다.

The Solution

클라이언트의 화면(UI) 요구사항에 맞춘 전용 서버 계층인 BFF를 도입하여 여러 도메인 API를 서버 측에서 통합(Aggregate)하고 ViewModel 형태로 가공하여 내려주도록 구조를 개선했습니다.

The Result

클라이언트 로직이 단순화되어 단일 API 호출만으로 화면 구성이 가능해졌으며 상태 분기 로직의 중앙화를 통해 플랫폼 간 중복 개발 방지 및 변경 대응 속도가 향상되었습니다.

Trade-off

중간 계층 추가에 따른 장애 전파 및 메모리 과부하 위험이 존재하며 이를 방지하기 위해 지수 백오프 재시도 전략과 로컬 캐시 도입 등 추가적인 운영 및 설계 공수가 요구됩니다.

03

Key Concepts

Concept · 01

BFF (Backend For Frontend)

프론트엔드 특정 화면의 요구사항에 맞춰 데이터를 가공하고 제공하는 전용 백엔드 계층입니다.

  • 여러 도메인 API의 응답을 하나의 View Model로 통합
  • 클라이언트의 복잡한 메쉬업 로직을 서버로 이전
Concept · 02

Circuit Breaker

연쇄적인 장애 발생을 막기 위해 외부 서비스 호출의 실패율이 높을 경우 통신을 차단하는 설계 패턴입니다.

  • 특정 도메인 API 장애가 BFF 전체로 전파되는 것을 방지
  • 실패 시 Fallback 응답을 반환하여 시스템 가용성 확보
Concept · 03

Exponential Backoff

재시도 간격을 지수적으로 늘려가며 시스템의 부하를 줄이고 성공 확률을 높이는 전략입니다.

  • Spring Retry를 통해 일시적인 네트워크 오류에 대응
  • 무분별한 재시도로 인한 대상 서버의 부하 가중 방지
Continue reading · same source

여기어때More from 여기어때

View all posts from 여기어때
  • AI 수석회의

    LLMAI AgentMCP
    20시간 전
  • JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 2)

    JVMDockerMemory Leak
    1주 전
  • JVM heap은 멀쩡한데 왜 메모리가 터질까? — Docker 환경 네이티브 메모리 삽질기 (Part 1)

    JVMDockerMemory Leak
    1주 전
  • Spring Data Redis: Repository vs RedisTemplate — 실전 성능 비교

    Spring Data RedisRedisTemplatePerformance Optimization
    1주 전
  • AI 시대의 브랜드 그래픽 시스템 구축기

    Generative AIVisual IdentityPrompt Engineering
    3주 전

Source

여기어때
여기어때
Engineering Blog

Published · March 10, 2026

Topics

BFFMSAAPI GatewaySpring RetryCaffeine CacheArchitectureMicroservices