๐ ํด๋ ๊ตฌ์กฐ ๊ฐ์ด๋ โ
๋ฉ์๋ณผ ํด๋ผ์ด์ธํธ ํ์์๋ ์ฝ๋ ์์ง๋์ ์ ์ง๋ณด์ ํธ์์ฑ์ ๋์ด๊ธฐ ์ํด ์๋์ ๊ฐ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฆ
๋๋ค.
๋ํ, ๋ชจ๋ ํด๋์ ํ์ผ๋ช
์ **์ผ๋ฐฅ ์ผ์ด์ค(kebab-case)**๋ฅผ ์ ์ฉํด ์ผ๊ด์ฑ ์๊ณ ๊ฐ๋
์ฑ์ด ๋ฐ์ด๋ ๊ตฌ์กฐ๋ฅผ ์ ์งํฉ๋๋ค.
ํด๋ ๊ตฌ์กฐ ์์ โ
|-- ๐ .github
|-- ๐ node_modules
|-- ๐ public
|-- ๐ src
|-- ๐ pages
|-- ๐ home
|-- ๐ex) home.tsx
|-- ๐ components
|-- ๐ styles ๋ฑ
|-- ๐ shared
|-- ๐ components
|-- ๐ex) home-header.tsx
|-- ๐ styles
|-- ๐ constants
|-- ๐ types ๋ฑ
|-- index.html ๋ฑ ETC
๊ฐ ํด๋๋ณ ์ญํ ๋ฐ ๋ค์ด๋ฐ ์ด์ โ
1๏ธโฃ src/pages
โ
- ๋ชฉ์ : ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ๊ฐ๋ณ ํ์ด์ง ๋จ์์ ์ปดํฌ๋ํธ์ ๊ทธ์ ํนํ๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌ
- ๊ตฌ์ฑ:
- ํ์ด์ง๋ณ ํด๋(
home
,profile
๋ฑ)๋ก ๊ตฌ๋ถ - ๊ฐ ํ์ด์ง ํด๋ ์์ ๊ทธ ํ์ด์ง ์ ์ฉ
components
์styles
ํด๋๋ฅผ ๋ณ๋ ๊ด๋ฆฌ
- ํ์ด์ง๋ณ ํด๋(
- ์ด์ :
- ํ์ด์ง ๋จ์๋ก ์ฝ๋๋ฅผ ์์ง์์ผ ์ดํดํ๊ธฐ ์ฝ๊ณ , ์ ์ง๋ณด์๊ฐ ํธ๋ฆฌ
- ๊ฐ ํ์ด์ง์ ์ข ์์ ์ธ ์ฝ๋๊ฐ ๋ช ํํ ๋ถ๋ฆฌ๋์ด, ๋ณ๊ฒฝ ์ ์ํฅ ๋ฒ์ ์ต์ํ
2๏ธโฃ src/shared
โ
- ๋ชฉ์ : ํ๋ก์ ํธ ์ ์ญ์์ ์ฌ์ฌ์ฉ๋๋ ๊ณตํต ๋ชจ๋ ๋ฐ ๋ฆฌ์์ค ์ ์ฅ์
- ๊ตฌ์ฑ:
components
: ์ฌ๋ฌ ํ์ด์ง์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ UI ์ปดํฌ๋ํธstyles
: ์ ์ญ ์คํ์ผ ๋ฐ ํ ๋ง ๋ณ์constants
: ์ ์ญ ์์ (API URL, ์์ ์ฝ๋ ๋ฑ)types
: ํ์ ์ ์
- ์ด์ :
- ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ์ค๋ณต ์ฝ๋๋ฅผ ์ค์ฌ ์ ์ง๋ณด์ ๋น์ฉ ์ ๊ฐ
- ๊ณตํต ๋ฆฌ์์ค๋ฅผ ํ ๊ณณ์ ๋ชจ์๋์ด ๋ณ๊ฒฝ ๊ด๋ฆฌ ๋ฐ ์ํฅ๋ ๋ถ์์ด ์ฉ์ด
3๏ธโฃ ๊ธฐํ ์ฃผ์ ํด๋ โ
.github
: GitHub ์ํฌํ๋ก์ฐ, ์ด์ ๋ฐ PR ํ ํ๋ฆฟnode_modules
: ํ๋ก์ ํธ ์์กด์ฑpublic
: ์ ์ ํ์ผ (์ด๋ฏธ์ง, ํฐํธ ๋ฑ)- ๋ฃจํธ์
index.html
: ์ฑ ์ง์ ์
์ผ๋ฐฅ ์ผ์ด์ค(kebab-case) ์ฌ์ฉ ์ด์ โ
- ํด๋๋ช ๊ณผ ํ์ผ๋ช ๋ชจ๋ ์ผ๋ฐฅ ์ผ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฅ์ :
- OS ๋ฐ ๊ฐ๋ฐ ๋๊ตฌ ๊ฐ ๋์๋ฌธ์ ๊ตฌ๋ถ ๋ฌธ์ ์ต์ํ
- ํฐ๋ฏธ๋์์ ์ ๋ ฅํ๊ธฐ ์ฝ๊ณ , ๊ฒฝ๋ก ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋จ
- URL๊ณผ ์ ์ฌํด ์ง๊ด์ ์ด๊ณ ํ์ ์ ํผ๋ ๊ฐ์
์ค๊ณ ์์น โ
- ์์ง๋: ๊ด๋ จ ์ฝ๋์ ๋ฆฌ์์ค๋ฅผ ํ๊ณณ์ ๋ชจ์ ๊ด๋ฆฌํ์ฌ ์ฝ๋ ์ดํด๋๋ฅผ ๋์
- ๋จ์ผ ์ฑ ์ ์์น: ๊ฐ ํด๋๋ ๋ช ํํ ์ฑ ์๊ณผ ์ญํ ์ ๊ฐ์ง
- ํ์ฅ์ฑ: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ ์ ํด๋๋ฅผ ์ฝ๊ฒ ์ถ๊ฐํ๊ณ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ํ์ ํจ์จ์ฑ: ์ผ๊ด๋ ๊ตฌ์กฐ ๋๋ถ์ ํ์ ๋ชจ๋ ๋น ๋ฅด๊ฒ ์ฝ๋ ์์น ํ์ ๊ฐ๋ฅ
๋ฉ์๋ณผ ํ์ ์ด ํด๋ ๊ตฌ์กฐ๋ฅผ ํตํด ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ์ํํ ํ์ ์ ์คํํ๊ณ ์์ต๋๋ค.
์์ ์ค ํท๊ฐ๋ฆด ๋๋ ์ด ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์!