@@ -6,137 +6,131 @@ sidebar_position: 4
66
77## v2 ๋์
๋ฐฐ๊ฒฝ
88
9- ** feature-slices** ๊ฐ๋
์ 2018๋
[ ์ฒซ ๋ฐํ] [ ext-tg-spb ] ๋ ์ดํ, ๋ค์ํ ํ๋ก์ ํธ ๊ฒฝํ๊ณผ ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ๊ฑฐ์น๋ฉฐ ๋ฐ์ ํด ์์ต๋๋ค.
10- ๋์์ ** [ ๊ธฐ๋ณธ ์์น] [ ext-v1 ] ** ( ํ์คํ๋ ํ๋ก์ ํธ ๊ตฌ์กฐ, ๋น์ฆ๋์ค ๋ก์ง ์ฐ์ ๋ถ๋ฆฌ, isolated features, Public API)์ ๊ทธ๋๋ก ์ ์ง๋์์ต๋๋ค.
9+ ** feature-slices** ๊ฐ๋
์ 2018๋
[ ์ฒซ ๋ฐํ] [ ext-tg-spb ] ๋ ์ดํ ๋ค์ํ ํ๋ก์ ํธ ๊ฒฝํ๊ณผ ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ํตํด ์ง์์ ์ผ๋ก ๋ฐ์ ํด ์์ต๋๋ค.
10+ ๊ทธ ๊ณผ์ ์์๋ ** [ ๊ธฐ๋ณธ ์์น] [ ext-v1 ] ** - ํ์คํ๋ ํ๋ก์ ํธ ๊ตฌ์กฐ, ๋น์ฆ๋์ค ๋ก์ง ๊ธฐ๋ฐ ๋ถ๋ฆฌ, isolated features, Public APIโ๋ ๊ทธ๋๋ก ์ ์ง๋์์ต๋๋ค.
1111
12- ํ์ง๋ง v1์๋ ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ์์์ต๋๋ค :
12+ ๊ทธ๋ฌ๋ v1์๋ ๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ์กด์ฌํ์ต๋๋ค :
1313
14- - ๊ณผ๋ํ ** boilerplate** ๋ฐ์
15- - ์ถ์ํ ๊ท์น์ด ๋ชจํธํด ** ์ฝ๋๋ฒ ์ด์ค ๋ณต์ก๋** ์์น
16- - ์๋ฌต์ ์ค๊ณ๋ก ** ํ์ฅยท ์จ๋ณด๋ฉ ์ด๋ ค์**
14+ - ๊ณผ๋ํ ** boilerplate** ๋ฐ์
15+ - ์ถ์ํ ๊ท์น์ด ๋ชจํธํด ** ์ฝ๋๋ฒ ์ด์ค ๋ณต์ก๋** ์์น
16+ - ์๋ฌต์ ์ค๊ณ๋ก ** ํ์ฅ/ ์จ๋ณด๋ฉ ์ด๋ ค์**
1717
18- ์ด๋ฌํ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ([ ` v2 ` ] [ ext-v2 ] )๋ ๊ธฐ์กด ์ฅ์ ์ ์ ์งํ๋ฉด์๋ ์ ๊ณผ์ ๋ค์ ๋ณด์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
19- ๋ํ [ Oleg Isonen] [ ext-kof ] ์ด ๋ฐํํ [ ** feature-driven** ] [ ext-fdd ] ๋ฑ ์ ์ฌ ๋ฐฉ๋ฒ๋ก ๊ณผ ์์ด๋์ด๋ฅผ ์ตํฉํด ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ๋ฅผ ํ์ธต ๋ ** ์ ์ฐ** , ** ๋ช
ํ** , ** ํจ์จ์ ** ์ผ๋ก ๋ค๋ฌ์์ต๋๋ค.
20-
21- > ์ด ๊ณผ์ ์์ ๋ฐฉ๋ฒ๋ก ์ ๊ณต์ ๋ช
์นญ์ * feature-slice* ์์ ** feature-sliced** ๋ก ์ ์ํ๋์์ต๋๋ค.
18+ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ** [ v2] [ ext-v2 ] ** ์
๋๋ค.
19+ v2๋ ๊ธฐ์กด ์ฅ์ ์ ์ ์งํ๋ ๋์์ ์ด๋ฌํ ๋ฌธ์ ๋ค์ ๋ณด์ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
20+ ๋ํ [ Oleg Isonen] [ ext-kof ] ์ด ๋ฐํํ [ feature-driven] [ ext-fdd ] ๋ฑ ์ ์ฌ ๋ฐฉ๋ฒ๋ก ์ ์ฅ์ ์ ๋ฐ์ํด ๋ ** ์ ์ฐํ๊ณ ** , ** ๋ช
ํํ๋ฉฐ** , ** ํจ์จ์ ์ธ** ๊ตฌ์กฐ๋ก ๋ฐ์ ํ์ต๋๋ค.
2221
22+ > ์ด ๊ณผ์ ์์ ๋ฐฉ๋ฒ๋ก ์ ๊ณต์ ๋ช
์นญ์ feature-slice์์ ** feature-sliced** ๋ก ์ ์ํ๋์์ต๋๋ค.
2323
2424## v2 ๋ง์ด๊ทธ๋ ์ด์
์ด์
2525
26- > ` WIP: ` ์์
์ด ์งํ ์ค์ด๋ฉฐ, ์ผ๋ถ ์ธ๋ถ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
26+ > ` WIP: ` ๋ฌธ์๋ ๊ณ์ ์
๋ฐ์ดํธ ์ค์ด๋ฉฐ, ์ผ๋ถ ๋ด์ฉ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
2727
2828### ์ง๊ด์ ๊ตฌ์กฐ ์ ๊ณต
2929
30- v2๋ ** layer โ slice โ segment** 3๋จ๊ณ๋ง ์๋ฉด ๋๋ถ๋ถ ๊ตฌ์กฐ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค.< br />
31- ๋๋ถ์ ์๋ก์ด ํ์์ด ** ์ด๋์ ๋ฌด์์ ๋ฌ์ผ ํ๋ ** ๋ถํฐ ๊ณ ๋ฏผํ์ง ์์ ์จ๋ณด๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค .
30+ v2๋ ** layer โ slice โ segment** ๋ผ๋ ์ธ ๊ฐ์ง ๊ฐ๋
๋ง ์ดํดํ๋ฉด ๊ตฌ์กฐ์ ๊ฒฐ์ ์ ์ฝ๊ฒ ๋ด๋ฆด ์ ์์ต๋๋ค.
31+ ๋๋ถ์ ์ ๊ท ํ์์ด ** ์ด๋์ ์ด๋์ ๋์ง ** ๊ณ ๋ฏผํ ํ์๊ฐ ์ค์ด๋ค์ด ์จ๋ณด๋ฉ ์๋๊ฐ ํฌ๊ฒ ํฅ์๋ฉ๋๋ค .
3232
3333### ์ ์ฐํ ๋ชจ๋ํ
3434
3535- ** ๋
๋ฆฝ ์์ญ** ์ slice ๋จ์๋ก, ** ์ ์ญ ํ๋ฆ** ์ Processes layer๋ก ๋ถ๋ฆฌํด ํ์ฅ์ฑ์ ํ๋ณดํฉ๋๋ค.
36- - ์ module์ ์ถ๊ฐํ ๋ * (layer โ slice โ segment)* ๊ท์น๋ง ๋ฐ๋ฅด๋ฉด ํด๋ ์ฌ๋ฐฐ์น์ ๋ฆฌํฉํฐ๋ง ์์
๋ถ๋ด์ด ํฌ๊ฒ ์ค์ด๋ญ๋๋ค.
37-
38- #### ์ปค๋ฎค๋ํฐยท๋๊ตฌ ์ง์ ํ๋
36+ - ์๋ก์ด module์ ์ถ๊ฐํ ๋ _ (layer โ slice โ segment)_ ๊ท์น๋ง ๋ฐ๋ฅด๋ฉด ํด๋ ์ฌ๋ฐฐ์น๋ ๋ฆฌํฉํฐ๋ง ๋ถ๋ด์ด ํฌ๊ฒ ์ค์ด๋ญ๋๋ค.
3937
40- v2 ๊ฐ๋ฐ์ ** ์ฝ์ด ํ ** ๊ณผ ์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ์๋ค์ด ํจ๊ป ์ด๋๊ณ ์์ต๋๋ค.
38+ #### ์ปค๋ฎค๋ํฐ/๋๊ตฌ ์ง์ ํ๋
4139
40+ v2๋ ** ์ฝ์ด ํ** ๊ณผ ์ปค๋ฎค๋ํฐ๊ฐ ํจ๊ป ๋ฐ์ ์ํค๊ณ ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ ์ ๊ณต๋ฉ๋๋ค.
4241๋ค์ ๋ฆฌ์์ค๋ฅผ ํ์ฉํด ๋ณด์ธ์:
4342
44- - ** ์ค์ ์ฌ๋ก ๊ณต์ ** : ๋ค์ํ ํ๋ก์ ํธ ํ๊ฒฝ์์์ ์ ์ฉ ์ฌ๋ก
43+ - ** ์ค์ ์ฌ๋ก ๊ณต์ ** : ๋ค์ํ ํ๋ก์ ํธ ํ๊ฒฝ์์์ ์ ์ฉ ์ฌ๋ก
4544- ** ๋จ๊ณ๋ณ ๊ฐ์ด๋** : ์ค์ ยท๊ตฌ์ฑยท์ด์ ์ ๊ณผ์ ์ ๋ด์ ํํ ๋ฆฌ์ผ
46- - ** ์ฝ๋ ํ
ํ๋ฆฟ & ์์ ** : ์์๋ถํฐ ๋ฐฐํฌ๊น์ง ์ฐธ๊ณ ํ ์ ์๋ ์ค์ ์ฝ๋
47- - ** ์จ๋ณด๋ฉ ๋ฌธ์** : ์ ๊ท ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ฐ๋
์์ฝ ๋ฐ ํ์ต ์๋ฃ
48- - ** ๊ฒ์ฆ ํดํท** : steiger CLI ๋ฑ ์ ์ฑ
์ค์ยท lint๋ฅผ ์ง์ํ๋ ์ ํธ๋ฆฌํฐ
45+ - ** ์ฝ๋ ํ
ํ๋ฆฟ & ์์ ** : ์์๋ถํฐ ๋ฐฐํฌ๊น์ง ์ฐธ๊ณ ํ ์ ์๋ ์ค์ ์ฝ๋
46+ - ** ์จ๋ณด๋ฉ ๋ฌธ์** : ์ ๊ท ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ฐ๋
์์ฝ ๋ฐ ํ์ต ์๋ฃ
47+ - ** ๊ฒ์ฆ ํดํท** : steiger CLI ๋ฑ ์ ์ฑ
์ค์/ lint๋ฅผ ์ง์ํ๋ ์ ํธ๋ฆฌํฐ
4948
50- > v1 ์ง์์ ๊ณ์ ์ ์ง๋์ง๋ง , ์๋ก์ด ๊ธฐ๋ฅยท๊ฐ์ ์ฌํญ์ ** v2** ์ ์ฐ์ ๋ฐ์๋ฉ๋๋ค .
51- > ์ฃผ์ ์
๋ฐ์ดํธ ์์๋ ** ์์ ์ ๋ง์ด๊ทธ๋ ์ด์
๊ฒฝ๋ก** ๋ฅผ ๋ณด์ฅํฉ๋๋ค .
49+ > v1๋ ๊ณ์ ์ง์๋์ง๋ง , ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ ** v2** ์ ์ฐ์ ์ ์ฉ๋ฉ๋๋ค .
50+ > ์ฃผ์ ์
๋ฐ์ดํธ ์ ** ์์ ์ ์ธ ๋ง์ด๊ทธ๋ ์ด์
๊ฒฝ๋ก** ๋ ํจ๊ป ์ ๊ณตํฉ๋๋ค .
5251
5352## ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ
5453
5554### Layer ๊ตฌ์กฐ ๋ช
ํํ
5655
57- v2์์๋ layer๋ฅผ ์ต์์๋ถํฐ ์ตํ์๊น์ง ๋ช
์์ ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค:
56+ v2๋ layer๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ช
ํํ ๊ตฌ๋ถํฉ๋๋ค:
5857
59- - ` /app ` > ` /processes ` > ** ` /pages ` ** > ** ` /features ` ** > ` /entities ` > ` /shared `
60-
61- - ๋ชจ๋ ๋ชจ๋์ด ` pages ` /` features ` layer์๋ง ์ํ์ง ์์ต๋๋ค.
62- - ์ด ๊ตฌ์กฐ๋ฅผ ํตํด [ layer๋ณ ์์กด ๊ท์น] [ ext-tg-v2-draft ] ์ ๋ช
์์ ์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
63- - ** ์์ layer** ๋ ๋ ๋์ ** Context** ๋ฅผ ์ ๊ณตํฉ๋๋ค.
64- - ์์ layer ๋ชจ๋์ ** ํ์ layer** ๋ชจ๋๋ง importํ ์ ์์ต๋๋ค.
65- - ** ํ์ layer** ๋ ** ๋ณ๊ฒฝ ๋ฆฌ์คํฌ(Risk)์ ์ฑ
์(Responsibility)** ์ด ๋ ํฝ๋๋ค.
66- - ์ฌ์ฌ์ฉ ๋น๋๊ฐ ๋์, ์์ ์ ์ํฅ ๋ฒ์๊ฐ ๋์ต๋๋ค.
58+ ` /app ` > ` /processes ` > ** ` /pages ` ** > ** ` /features ` ** > ` /entities ` > ` /shared `
6759
60+ ๋ชจ๋ ๋ชจ๋์ด ` pages, features ` ์๋ง ์ํ์ง ์์ต๋๋ค.
61+ ์ด ๊ตฌ์กฐ๋ [ layer ์์กด ๊ท์น] [ ext-tg-v2-draft ] ์ ๋ช
ํํ ์ค์ ํ ์ ์๋๋ก ๋์ต๋๋ค.
62+ ** ์์ layer** ๋ ๋ ๋์ ** context** ๋ฅผ ์ ๊ณตํ๋ฉฐ, ** ํ์ layer** ๋ ๋ ๋ฎ์ ** ๋ณ๊ฒฝ ๋ฆฌ์คํฌ์ ๋์ ์ฌ์ฌ์ฉ์ฑ** ์ ๊ฐ์ต๋๋ค.
6863
6964### Shared ํตํฉ
7065
71- ํ๋ก์ ํธ ` src ` ๋ฃจํธ์ ํฉ์ด์ ธ ์๋ UI, lib, API ์ธํ๋ผ ์ถ์ํ๋ฅผ ` /src/shared ` ํด๋๋ก ํตํฉํ์ต๋๋ค.
66+ ` src ` ๋ฃจํธ์ ํฉ์ด์ ธ ์๋ UI, lib, API ์ธํ๋ผ ์ถ์ํ๋ฅผ ` /src/shared ` ๋ก ํตํฉํ์ต๋๋ค.
7267
7368- ` shared/ui ` - ๊ณตํต UI components(์ ํ ์ฌํญ)
74- - * ๊ธฐ์กด ` Atomic Design ` ์ฌ์ฉ๋ ๊ฐ๋ฅํฉ๋๋ค.*
75- - ` shared/lib ` - ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ helper libraries
76- - * ๋ฌด๋ถ๋ณํ helper dump ์ง์ *
77- - ` shared/api ` - API entry points
78- - * ๊ฐ feature/page ๋ด local ์ ์ ๊ฐ๋ฅํ์ง๋ง, ์ ์ญ entry point ์ง์ค์ ๊ถ์ฅ *
79- - ` shared ` ํด๋์๋ ** business logic** ์์กด์ ๋์ง ์์ต๋๋ค
80- - * ๋ถ๊ฐํผํ ๊ฒฝ์ฐ ` entities ` layer ์ด์์ผ๋ก ๋ก์ง์ ์ฎ๊ธฐ์ธ์.*
69+ - _ ๊ธฐ์กด ` Atomic Design ` ์ฌ์ฉ๋ ๊ฐ๋ฅํฉ๋๋ค._
70+ - ` shared/lib ` - ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ helper libraries
71+ - _ ๋ฌด๋ถ๋ณํ helper dump ์ง์ _
72+ - ` shared/api ` - API entry points
73+ - _ ๊ฐ feature/page ๋ด local ์ ์ ๊ฐ๋ฅํ์ง๋ง, ์ ์ญ entry point ์ง์ค์ ๊ถ์ฅ _
74+ - ` shared ` ํด๋์๋ ** business logic** ์์กด์ ๋์ง ์์ต๋๋ค
75+ - _ ๋ถ๊ฐํผํ ๊ฒฝ์ฐ ` entities ` layer ์ด์์ผ๋ก ๋ก์ง์ ์ฎ๊ธฐ์ธ์._
8176
8277### Entities / Processes Layer ์ถ๊ฐ
8378
8479v2์์๋ ๋ก์ง ๋ณต์ก์ฑ๊ณผ ๋์ ๊ฒฐํฉ์ ์ค์ด๊ธฐ ์ํ ** ์๋ก์ด ์ถ์ํ** ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
8580
8681- ** ` /entities ` **
87- ํ๋ก ํธ์๋์์ ์ฌ์ฉ๋๋ ** business entities** (์: ` user ` , ` order ` , ` i18n ` , ` blog ` )๋ฅผ ๋ด๋นํ๋ layer์
๋๋ค.
82+ ํ๋ก ํธ์๋์์ ์ฌ์ฉ๋๋ ** business entities** (์: ` user ` , ` order ` , ` i18n ` , ` blog ` )๋ฅผ ๋ด๋นํ๋ layer์
๋๋ค.
8883- ** ` /processes ` **
8984 ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ ๊ฑธ์น ** ๋น์ฆ๋์ค process** (์: ` payment ` , ` auth ` , ` quick-tour ` )๋ฅผ ์บก์ํํ๋ ์ ํ์ layer์
๋๋ค.
90- process * ๋ก์ง์ด ์ฌ๋ฌ ํ์ด์ง์ ๋ถ์ฐ๋ ๋* ๋์
์ ๊ถ์ฅํฉ๋๋ค.
91-
85+ process _ ๋ก์ง์ด ์ฌ๋ฌ ํ์ด์ง์ ๋ถ์ฐ๋ ๋_ ๋์
์ ๊ถ์ฅํฉ๋๋ค.
9286
93- ### ์ถ์ํยท ๋ค์ด๋ฐ ๊ฐ์ด๋
87+ ### ์ถ์ํ/ ๋ค์ด๋ฐ ๊ฐ์ด๋
9488
95- ์๋์์๋ v2 ๊ถ์ฅ layerยทsegment ๋ช
์นญ์ ์ด์ ๋ช
์นญ๊ณผ ๋์ํ์ฌ ์ ๋ฆฌํ์ต๋๋ค.<br />
96- ์ถ์ํยท๋ค์ด๋ฐ ๊ด๋ จ ์์ธ ๊ฐ์ด๋๋ [ ๋ช
ํํ ๋ค์ด๋ฐ ๊ถ์ฅ์ฌํญ] [ refs-adaptability ] ์ ์ฐธ๊ณ ํ์ธ์.
89+ ์๋๋ v2 ๊ถ์ฅ ๋ค์ด๋ฐ๊ณผ ์ด์ ๋ช
์นญ ๊ฐ์ ๋์ ๊ด๊ณ์
๋๋ค.
90+ ์๋์์๋ v2 ๊ถ์ฅ layerยทsegment ๋ช
์นญ์ ์ด์ ๋ช
์นญ๊ณผ ๋์ํ์ฌ ์ ๋ฆฌํ์ต๋๋ค.
91+ ์ถ์ํ/๋ค์ด๋ฐ ๊ด๋ จ ์์ธ ๊ฐ์ด๋๋ [ ๋ช
ํํ ๋ค์ด๋ฐ ๊ถ์ฅ์ฌํญ] [ refs-adaptability ] ์ ์ฐธ๊ณ ํ์ธ์.
9792
9893[ disc-process ] : https://github.com/feature-sliced/documentation/discussions/20
9994[ disc-features ] : https://github.com/feature-sliced/documentation/discussions/23
10095[ disc-entities ] : https://github.com/feature-sliced/documentation/discussions/18#discussioncomment-422649
10196[ disc-shared ] : https://github.com/feature-sliced/documentation/discussions/31#discussioncomment-453020
102-
10397[ disc-ui ] : https://github.com/feature-sliced/documentation/discussions/31#discussioncomment-453132
10498[ disc-model ] : https://github.com/feature-sliced/documentation/discussions/31#discussioncomment-472645
10599[ disc-api ] : https://github.com/feature-sliced/documentation/discussions/66
106100
107101#### Layer
108102
109103- ` /app ` โ ** Application init**
110- - * ์ด์ ๋ช
์นญ: ` app ` , ` core ` ,` init ` , ` src/index ` (๊ฐ๋ ์ฌ์ฉ๋จ)*
104+ - _ ์ด์ ๋ช
์นญ: ` app ` , ` core ` ,` init ` , ` src/index ` (๊ฐ๋ ์ฌ์ฉ๋จ)_
111105- ` /processes ` โ [ ** Business process** ] [ disc-process ]
112- - * ์ด์ ๋ช
์นญ: ` processes ` , ` flows ` , ` workflows ` *
106+ - _ ์ด์ ๋ช
์นญ: ` processes ` , ` flows ` , ` workflows ` _
113107- ` /pages ` โ ** Application page**
114- - * ์ด์ ๋ช
์นญ: ` pages ` , ` screens ` , ` views ` , ` layouts ` , ` components ` , ` containers ` *
108+ - _ ์ด์ ๋ช
์นญ: ` pages ` , ` screens ` , ` views ` , ` layouts ` , ` components ` , ` containers ` _
115109- ` /features ` โ [ ** Feature module** ] [ disc-features ]
116- - * ์ด์ ๋ช
์นญ: ` features ` , ` components ` , ` containers ` *
110+ - _ ์ด์ ๋ช
์นญ: ` features ` , ` components ` , ` containers ` _
117111- ` /entities ` โ [ ** Business entity** ] [ disc-entities ]
118- - * ์ด์ ๋ช
์นญ: ` entities ` , ` models ` , ` shared ` *
112+ - _ ์ด์ ๋ช
์นญ: ` entities ` , ` models ` , ` shared ` _
119113- ` /shared ` โ [ ** Infrastructure** ] [ disc-shared ] ๐ฅ
120- - * ์ด์ ๋ช
์นญ: ` shared ` , ` common ` , ` lib ` *
114+ - _ ์ด์ ๋ช
์นญ: ` shared ` , ` common ` , ` lib ` _
121115
122116#### Segment
123117
124118- ` /ui ` โ [ ** UI segment** ] [ disc-ui ] ๐ฅ
125- - * ์ด์ ๋ช
์นญ: ` ui ` , ` components ` , ` view ` *
119+ - _ ์ด์ ๋ช
์นญ: ` ui ` , ` components ` , ` view ` _
126120- ` /model ` โ [ ** ๋น์ฆ๋์ค ๋ก์ง segment** ] [ disc-model ] ๐ฅ
127- - * ์ด์ ๋ช
์นญ: ` model ` , ` store ` , ` state ` , ` services ` , ` controller ` *
121+ - _ ์ด์ ๋ช
์นญ: ` model ` , ` store ` , ` state ` , ` services ` , ` controller ` _
128122- ` /lib ` โ ** ๋ณด์กฐ ์ฝ๋ segment**
129- - * ์ด์ ๋ช
์นญ: ` lib ` , ` libs ` , ` utils ` , ` helpers ` *
123+ - _ ์ด์ ๋ช
์นญ: ` lib ` , ` libs ` , ` utils ` , ` helpers ` _
130124- ` /api ` โ [ ** API segment** ] [ disc-api ]
131- - * ์ด์ ๋ช
์นญ: ` api ` , ` service ` , ` requests ` , ` queries ` *
125+ - _ ์ด์ ๋ช
์นญ: ` api ` , ` service ` , ` requests ` , ` queries ` _
132126- ` /config ` โ ** ์ ํ๋ฆฌ์ผ์ด์
์ค์ segment**
133- - * ์ด์ ๋ช
์นญ: ` config ` , ` env ` , ` get-env ` *
127+ - _ ์ด์ ๋ช
์นญ: ` config ` , ` env ` , ` get-env ` _
134128
135129## ๋ฎ์ ๊ฒฐํฉ ์์น ๊ฐํ
136130
137- ์ layer ๊ท์น ๋๋ถ์ [ Zero-Coupling, High-Cohesion ์์น] [ refs-low-coupling ] ์ ์งํค๊ธฐ ์ฌ์์ก์ต๋๋ค .
138-
139- * ๋จ, ๋ชจ๋์ ์์ ํ ๋ถ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ์๋ Public API ๋ฑ ๋ช
ํํ ์ธํฐํ์ด์ค ๊ฒฝ๊ณ๋ฅผ ์ ์ํ๊ณ , ํด๋น ์์กด ์ฝ๋๋ ๊ฐ๋ฅํ ํ ํ์ layer์ ์์น์ํค๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.*
131+ Layer ๊ตฌ์กฐ๊ฐ ๋ช
ํํด์ง๋ฉด์ [ Zero-Coupling, High-Cohesion ์์น] [ refs-low-coupling ] ์ ๋ณด๋ค ์ฝ๊ฒ ์งํฌ ์ ์๊ฒ ๋์์ต๋๋ค .
132+ ์์ ํ ๋ถ๋ฆฌ๊ฐ ์ด๋ ต๋ค๋ฉด Public API ๋ฑ ๋ช
ํํ๊ฒ ๋๋ฌ๋๋ ์ธํฐํ์ด์ค๋ฅผ ๋์ด ๊ฒฝ๊ณ๋ฅผ ๋ช
ํํ ํ๊ณ ,
133+ ๊ฐ๋ฅํ ํ ํ์ layer์์ ์์กด์ฑ์ด ๋ด๋ ค๊ฐ๋๋ก ๊ตฌ์กฐํํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
140134
141135## ์ฐธ๊ณ ์๋ฃ
142136
@@ -148,7 +142,6 @@ v2์์๋ ๋ก์ง ๋ณต์ก์ฑ๊ณผ ๋์ ๊ฒฐํฉ์ ์ค์ด๊ธฐ ์ํ **์๋ก์ด
148142
149143[ refs-low-coupling ] : /docs/reference/slices-segments#zero-coupling-high-cohesion
150144[ refs-adaptability ] : /docs/about/understanding/naming
151-
152145[ ext-v1 ] : https://feature-sliced.github.io/featureslices.dev/v1.0.html
153146[ ext-tg-spb ] : https://t.me/feature_slices
154147[ ext-fdd ] : https://github.com/feature-sliced/documentation/tree/rc/feature-driven
0 commit comments