기능 분할 설계 (FSD)란 뭘까?

https://emewjin.github.io/feature-sliced-design/
https://medium.com/@junep/fsd-feature-sliced-design에-대해-11a7b88d5c9e
Pasted image 20240317212515.png

레이어

  1. app : 애플리케이션 로직이 초기화 되는 곳, 프로바이더, 라우터, 전역 스타일, 전역 타입선언 등이 선언된다. 애플리케이션의 진입점
  2. processes: 여러 단계로 이루어진 등록과 같이, 여러 페이지에 걸쳐 있는 프로세스를 처리한다. (선택적 레이어)
  3. pages: 애플리케이션의 페이지
  4. widgets: 페이지에 사용되는 독립적인 UI 컴포넌트
  5. feature: 비즈니스 가치를 전달하는 사용자 시나리오와 기능을 다룬다. 좋아요/리뷰작성/제품평가 등 (선택적 레이어)
  6. entities : 비즈니스 엔티티. 사용자,리뷰,댓글 등이 포함 가능 (선택적 레이어)
  7. shared: 특정 비즈니스 로직에 종속되지 않은 재사용 가능한 컴포넌트 및 유틸리티가 포함/ UI 키트 , axios 설정, 애플리케이션 설정, 비즈니스 로직에 묶이지 않는 헬퍼 등이 포함됨

슬라이스

세그먼트

  1. api - 필요한 서버 요청
  2. UI - 슬라이스의 UI 컴포넌트
  3. model - 비즈니스 로직, 즉 상태와의 상호작용 ( actions 및 selectors )
  4. lib- 슬라이스 내에서 사용되는 보조 기능
  5. config - 슬라이스에 필요한 구성값이지만 구성 세그먼트는 거의 필요치 않음
  6. constants - 필요한 상수

공개 API

추상화 및 비즈니스 로직

FSD 가 문제를 해결하는 방식

생각해보기