데브허브 | DEVHUB | F.S.D 가 등장하게 된 기술적인 배경(좋은 설계란?)F.S.D 가 등장하게 된 기술적인 배경(좋은 설계란?)
- FSD는 기능 중심의 폴더 구조 설계 방법론이지만, 기능 외에 도메인(Slices)과 역할(Segments), 그리고 레이어 개념을 함께 고려합니다. 🧩
- 도메인(Slices)은 기능 중심 폴더 구조에서 발생하는 파일 중복 및 참조 얽힘 문제를 해결하기 위해 도입되었으며, FSD에서는 슬라이스 간 직접 참조를 금지하여 높은 응집도와 낮은 결합도를 유지합니다. 🔗
- 역할(Segments)은 도메인 내 파일 수가 많아지는 문제를 해결하고, 비즈니스 로직 분리 및 재사용성을 높이기 위해 도입되었으며,
model, action, ui, lib, api 등의 세그먼트로 구성됩니다. 🛠️
- 레이어는 FSD의 가장 큰 폴더 단위로, 논리적인 계층 구조를 통해 높은 응집도와 낮은 결합도를 유지하여 변화에 유연한 설계를 가능하게 합니다. 🏗️
- FSD의 주요 레이어는
app, pages, widgets, features, entities, shared로 구성되며, 각 레이어는 특정 역할과 참조 규칙을 가집니다. 📊
- 특히
features 레이어는 사용자 인터랙션과 뮤테이션(CUD) 로직을, entities 레이어는 비즈니스 모델 인터페이스와 읽기(R) 로직을 담는 것으로 재해석하여 설명되었습니다. 💡
app과 shared 레이어는 애플리케이션 전체 또는 도메인 독립적인 성격으로 인해 하위에 슬라이스(도메인)를 가지지 않습니다. 🌍
- FSD의 궁극적인 목표는 높은 응집도와 낮은 결합도를 통해 변화에 유연하게 대응할 수 있는 '좋은 설계'를 만드는 것입니다. ✨