피드로 돌아가기
Dev.toBackend
원문 읽기
BFF의 비즈니스 로직 침투를 막아 Domain Ownership을 회복한 아키텍처 재설계
Our BFF Was Working. That Was the Problem.
AI 요약
Context
DDD 기반의 멀티 도메인 환경에서 프론트엔드 복잡도 해소를 위해 BFF 레이어를 도입한 구조임. 초기에는 데이터 Aggregation 목적으로 작동했으나, 점차 비즈니스 결정 로직이 BFF로 집중되며 도메인 경계가 붕괴되는 Architectural Gravity 현상이 발생함.
Technical Solution
- BFF의 역할을 단순 Adapter 및 Coordinator로 한정하여 비즈니스 정책 결정 권한을 각 Domain으로 이전
- 비즈니스 의미 해석 및 상태 판단 로직을 BFF에서 제거하고 Domain Service 내부로 캡슐화
- BFF는 도메인으로부터 계산된 결과값(예: canAccess, reason)만 수신하여 프론트엔드에 전달하는 전달자 역할 수행
- Read Model의 편의성으로 인한 로직 중앙집중화를 방지하기 위해 데이터 조립과 비즈니스 결정 단계를 엄격히 분리
- 네비게이션 구조와 도메인 경계를 일치시켜 기능별 소유권을 명확히 정의한 책임 분리 설계
실천 포인트
- BFF 내부에 if/else 문을 통한 비즈니스 상태 판단 로직이 포함되어 있는가? - 특정 기능을 활성화할지 결정하는 권한이 도메인 서비스가 아닌 BFF에 존재하는가? - BFF 코드 수정 없이 도메인 규칙만으로 비즈니스 정책 변경이 가능한 구조인가? - BFF가 여러 도메인의 상태를 조합해 새로운 비즈니스 의미를 창출하고 있지는 않은가?