# [[Feature-Sliced Design|Feature-Sliced Design]] ## ๐Ÿ“Œ Brief Summary Feature-Sliced Design(FSD)์€ ์กฐ์ง ์ „๋ฐ˜์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํŒจํ‚ค์ง€ ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„์˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1, 2]. ์ด ๋ฐฉ๋ฒ•๋ก ์€ ๋ช…ํ™•ํ•œ ์ฑ…์ž„๊ณผ ์˜์กด์„ฑ ๋ฐฉํ–ฅ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ณ„์ธต(layer)์œผ๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋‚˜๋ˆ„์–ด, ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์Šฌ๋ผ์ด์Šค(slice) ๊ฒฝ๊ณ„์™€ ๋ช…์‹œ์ ์ธ ๊ณต๊ฐœ API(Public API)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [1-3]. ์ด๋ฅผ ํ†ตํ•ด '๊ธ€๋กœ๋ฒŒ ๊ณต์œ  ํด๋”(global shared folder)'๊ฐ€ ๋ฌด๋ถ„๋ณ„ํ•œ ์ฝ”๋“œ์˜ ์“ฐ๋ ˆ๊ธฐ์žฅ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 5]. ## ๐Ÿ“– Core Content * **๊ณ„์ธตํ™”๋œ ์•„ํ‚คํ…์ฒ˜ (Layered [[Architecture|Architecture]]):** FSD๋Š” ๋ช…ํ™•ํ•œ ์ฑ…์ž„์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค [1]. * *Shared:* ๊ฐ€์žฅ ํ•˜์œ„ ๊ณ„์ธต์œผ๋กœ ์ผ๋ฐ˜์ ์ธ UI ์ปดํฌ๋„ŒํŠธ(์›์ž), ํ—ฌํผ ํ•จ์ˆ˜, ๋””์ž์ธ ํ† ํฐ์„ ํฌํ•จํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์–ด๋–ค ๊ณ„์ธต์—์„œ๋„ ๊ฐ€์ ธ์˜ฌ(import) ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค [1, 6]. * *Entities:* ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ(์˜ˆ: ์‚ฌ์šฉ์ž, ์ œํ’ˆ, ์ฃผ๋ฌธ)์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๋„๋ฉ”์ธ๋ณ„ ๋กœ์ง ๋ฐ UI/์ƒํƒœ ํ‘œํ˜„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [1, 6]. * *Features:* ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์น˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(์˜ˆ: ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ถ”๊ฐ€, ๊ฒฐ์ œ ์ง„ํ–‰)์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [1, 6]. * *Widgets:* ๊ธฐ๋Šฅ(features)๊ณผ ์—”ํ‹ฐํ‹ฐ(entities)๋ฅผ ๊ฒฐํ•ฉํ•œ ์ƒ์œ„ ์ˆ˜์ค€์˜ UI ๋ธ”๋ก(์˜ˆ: ์ œํ’ˆ ์นด๋“œ, ๋„ค๋น„๊ฒŒ์ด์…˜ ํ—ค๋”)์ž…๋‹ˆ๋‹ค [1]. * *Pages:* ์œ„์ ฏ๊ณผ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์ „์ฒด ํŽ˜์ด์ง€ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค [1]. * *App:* ๊ธ€๋กœ๋ฒŒ ํ”„๋กœ๋ฐ”์ด๋”, ์Šคํƒ€์ผ, ๋ผ์šฐํŒ…์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ์ตœ์ƒ์œ„ ์ง„์ž…์ ์ž…๋‹ˆ๋‹ค [1]. * **์—„๊ฒฉํ•œ ์˜์กด์„ฑ ๋ฐฉํ–ฅ ๋ฐ ๊ฒฝ๊ณ„ ๊ทœ์น™:** ์šฐ๋ฐœ์ ์ธ ๊ฒฐํ•ฉ(coupling)์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ฐ•๋ ฅํ•œ ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค [3]. * ์•ฑ(App)์€ ํŒจํ‚ค์ง€์˜ ๊นŠ์€ ๋‚ด๋ถ€ ํŒŒ์ผ์ด ์•„๋‹Œ ์˜ค์ง ๊ณต๊ฐœ API์—์„œ๋งŒ ์ž„ํฌํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [3, 7]. * ์˜๋„์ ์œผ๋กœ ๊ณต์œ ๋œ ์Šฌ๋ผ์ด์Šค๊ฐ€ ์—†๋Š” ํ•œ, ํŠน์ • ๊ธฐ๋Šฅ(Feature)์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ(Feature)์„ ์ง์ ‘ ๊ฐ€์ ธ์˜ฌ(import) ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค [7]. * Shared ํŒจํ‚ค์ง€๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํ๋ฆ„์„ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ์˜ค์ง ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ ์š”์†Œ๋กœ๋งŒ ์ž‘๊ฒŒ ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [7]. * **๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์™€์˜ ์กฐํ™”:** ๊ธฐ์กด DDD์˜ ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์„ ์‹ค์šฉ์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋กœ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ, ์ž„ํฌํŠธ(import) ๊ฒฝ๋กœ์™€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋งŒ์œผ๋กœ๋„ ๋„๋ฉ”์ธ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•์Šต๋‹ˆ๋‹ค [6]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Monorepo Architecture|Monorepo Architecture]], Atomic Design, Domain-Driven Design (DDD), [[Component Library Architecture|Component Library Architecture]], Public API - **Projects/Contexts:** ๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•, [[Turborepo|Turborepo]] ๋˜๋Š” Nx๋ฅผ ํ™œ์šฉํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๋ชจ๋…ธ๋ ˆํฌ ๊ด€๋ฆฌ ํ™˜๊ฒฝ [5, 8, 9]. - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด FSD๋Š” [[Atomic Design|Atomic Design]]๊ณผ ๊ฒฝ์Ÿํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์ƒํ˜ธ ๋ณด์™„์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” [[Atomic Design|Atomic Design]]์„ ์‚ฌ์šฉํ•˜์—ฌ "์›์ž(Atoms)"๋ฅผ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ FSD์˜ Feature ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅด๋„๋ก ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ด ์„ฑ๊ณต์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์œผ๋กœ ์ œ์‹œ๋ฉ๋‹ˆ๋‹ค [10]. --- *Last updated: 2026-04-26*