고민보단 실천을

FSD 안티패턴 정리: shared 비대화·순환 의존·feature 경계 붕괴 해결법 본문

FE

FSD 안티패턴 정리: shared 비대화·순환 의존·feature 경계 붕괴 해결법

Just-Do-It 2026. 2. 25. 14:59

FSD 안티패턴 정리: shared 비대화·순환 의존·feature 경계 붕괴 해결법

FSD를 도입해도 규칙을 지키지 않으면 shared 쓰레기통화, 레이어 역참조, 기능 경계 붕괴가 발생한다. 안티패턴을 조기 탐지하는 운영 규칙이 중요하다. 검색 유입이 많은 키워드(폴더 구조, 마이그레이션, 안티패턴, 상태관리)를 기준으로 실무 적용 포인트를 정리했다.

FSD reference image
FSD 공식 사이트 참조 이미지 (출처: feature-sliced.design)

핵심 개념

실무에서 먼저 결정할 기준

이 주제는 코드 배치 기준을 먼저 정하고, 이후 네이밍과 import 경계를 린트로 고정하는 순서가 가장 안정적이다.

핵심 요소 3~6개

항목의미언제 쓰는지(실무 상황)
Shared 비대화모든 코드를 shared로 몰아넣는 현상빠른 개발 명목으로 경계를 우회할 때
순환 의존서로 참조해 변경 파급이 커짐features 간 직접 import를 허용했을 때
Feature 경계 붕괴한 feature가 다른 feature 내부를 참조public API 없이 내부 경로 import할 때
God Widgetwidgets에 과도한 비즈니스 로직 집중페이지 조합 계층이 기능 계층을 침범할 때
규칙 미검증문서만 있고 자동 검증 부재코드리뷰만으로 구조 품질을 보장하려 할 때

예시 코드

bad: features/cart/ui/panel.tsx -> import ../../payment/model/store
good: features/payment/index.ts public API를 통해 접근

문제 상황 1개

상황: 기능 하나를 수정하면 예상 못한 다른 화면까지 연쇄 오류가 난다.
원인: 내부 경로 import와 순환 의존이 누적돼 경계가 무너졌다.
해결: dependency-cruiser/ESLint 규칙으로 레이어 위반을 차단하고 feature public API만 허용한다.
예방 팁: 월 1회 아키텍처 헬스체크로 순환 의존/공용 모듈 비대화를 측정한다.

참고/출처

공식 문서: FSD Public API
공식 문서: FSD Import Rule
신뢰 자료: dependency-cruiser

Comments