주요 콘텐츠로 건너뛰기

FAQ

info

질문은 언제든 Telegram, Discord, GitHub Discussions에서 남겨 주세요.

Toolkit이나 Linter가 있나요?

프로젝트 구조가 FSD 규칙에 맞는지 점검하는 Steiger Linter 가 있습니다.
또한 CLI나 IDE 확장을 통해 사용할 수 있는 FSD 구조 생성 도구 도 제공합니다.

Page Layout / Template은 어디에 보관해야 하나요?

단순한 마크업이라면 shared/ui에 두는 것이 일반적입니다.
레이아웃이 간단하다면 별도 추상화 없이 각 페이지에 직접 작성해도 됩니다.
복잡한 구조라면 별도 Widget이나 Page로 분리해 App Router(Nested Routing 포함)에서 조합하세요.

Feature와 Entity의 차이는 무엇인가요?

구분정의예시
Entity애플리케이션이 다루는 비즈니스 개체user, product
Feature사용자가 Entity로 수행하는 상호작용로그인, 장바구니 담기

더 자세한 설명과 코드 예시는 Slices 문서에서 확인할 수 있습니다.

Pages, Features, Entities를 서로 포함할 수 있나요?

가능합니다. 다만 상위 Layer에서만 조합해야 합니다.
예를 들어, Widget 내부에서는 여러 Feature를 propschildren 형태로 조합할 수 있습니다.
하지만 한 Feature가 다른 Feature를 직접 import 하는 것은 Layer Import 규칙에 따라 금지됩니다.

Atomic Design을 함께 사용할 수 있나요?

궁금하다면 예시를 참고하세요.
FSD는 Atomic Design 사용을 제한하지 않습니다.
필요하다면 ui Segment 안에서 Atomic 분류를 적용할 수 있습니다.

FSD 관련 참고 자료가 더 있나요?

더 다양한 예제와 자료는 feature-sliced/awesome에서 확인할 수 있습니다.

Feature-Sliced Design이 필요한 이유는 무엇인가요?

FSD는 프로젝트를 핵심 기능 단위로 명확하게 구조화할 수 있도록 돕습니다.
표준화된 구조는 온보딩 속도를 높이고, 폴더 구조에 대한 불필요한 논쟁을 줄여 줍니다.
자세한 배경은 Motivation 페이지를 참고하세요.

주니어 개발자도 아키텍처 방법론이 필요할까요?

필요합니다. 혼자 개발할 때는 구조의 중요성이 잘 느껴지지 않지만,
새로운 팀원이 합류하거나 개발이 일시적으로 중단되더라도, 명확한 구조 덕분에 프로젝트를 쉽게 이어갈 수 있습니다.

인증(Auth) Context는 어떻게 다루나요?

관련 예시는 Auth 예제 가이드에서 확인할 수 있습니다.