์ฒ์์๋ ๋๋ฌด ๋ง๋งํ๋ค.
์ด ๊ณผ์ ์ ๋จ์ํ ๊ธฐ์ ์ ํ์ด ์๋๋ผ
"๋๋ง์ ์ฌ๊ณ ๊ธฐ์ค์ ์ธ์ฐ๋ ๊ณผ์ "์ด์๊ณ , ์ํ์ฐฉ์ค๋ฅผ ๊ฑฐ์น๋ฉฐ ์กฐ๊ธ์ฉ ์๊ฐ์ด ์ ๋ฆฌ๋์๋ค.
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์๋ ์ ๋ต์ด ์์ง๋ง, "๋๋ง์ ๊ธฐ์ค"์ ์์ด์ผ ํ๋ค.
โ ์ปดํฌ๋ํธ ๋จ์๋ก ๊ด๋ฆฌํ๊ณ ์ถ๋ค.
index.jsx, UI.jsx, logic.js, style.js์ฒ๋ผ ๋ด๋ถ ๋ถ๋ฆฌ.โ
์ต๋ํ ์์ํ ์ปดํฌ๋ํธ๋ฅผ ์ ์งํ๊ณ , ์ํ๋ ์์์์ prop์ผ๋ก๋ง ์ ๋ฌ.
โ
์ง๊ธ์ ์์ฃผ ์ฌ์ฌ์ฉ๋์ง ์์ ์ ์์ง๋ง,
์์ํ๊ฒ ์ค๊ณํ๋ฉด ๋์ค์ ์ธ์ ๋ ์กฐ๋ฆฝํ ์ ์๋ค.
โ ์ ์ฒด ๊ตฌ์กฐ๋ ์กฐ๋ฆฝ ์์๋๋ก ๋ณด์ฌ์ผ ํ๋ค.
core: ์ง์ง ๋ ๊ณ ๋ถํunits: ์กฐ๋ฆฝ๋ ๊ธฐ๋ฅ ๋จ์views: ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ์์ฑ ํ๋ฉดviews โ units โ core๋ก ๋ด๋ ค๊ฐ๋ค.โ YES.
| ํญ๋ชฉ | ์ฒ ํ |
|------|------|
| ๐ฏ ๊ธฐ๋ณธ ๋จ์ | **๋ชจ๋ ์ปดํฌ๋ํธ๋ core์์ ์์** |
| ๐งผ ์ํ ๋ถ๋ฆฌ | ์ํ๋ core์์ ๋ค๋ฃจ์ง ์์ |
| ๐งฉ ์กฐ๋ฆฝ ์์น | `units`์์ `core`๋ฅผ ์กฐํฉํด์ ๊ธฐ๋ฅ ๋ถ์ฌ |
| ๐ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ | ์์์์ prop์ผ๋ก ๋ก์ง ์ ๋ฌ (composition) |
| ๐ ํ์ฅ ๊ตฌ์กฐ | ํ์ํ ๊ฒฝ์ฐ core โ units โ views ๋จ๊ณ๋ณ ์กฐ๋ฆฝ |
src/
โโโ core/ # ์์ํ ๋ ๊ณ ๋ถํ๋ค (UI๋ง ๋ด๋น)
โโโ units/ # ๋ ๊ณ ์กฐํฉํ ์ค๊ฐ ๊ธฐ๋ฅ๋ค
โโโ views/ # ํ์ด์ง ๋จ์ ์ปดํฌ๋ํธ
โโโ hooks/ # ๋ก์ง์ฉ ์ปค์คํ
ํ
โโโ utils/ # format, ๊ณ์ฐ ๋ฑ ์ ํธ
โโโ constants/ # ์นดํ
๊ณ ๋ฆฌ, ์์ ์์ ๋ฑ
โโโ main.jsx
DateInput, AmountInput, CategorySelect, PaymentSelectSwitchButton, Button, Modal, DropdownTransactionItemDisplay, AmountText, CategoryTagCalendarCell, StatsRow, MiniBarGraphโ ์ด๋ค์ ๋ก์ง ์์ด UI๋ง ๋ด๋นํ๋ฏ๋ก core์ ์์น
์ด ๋ฌธ์๋ ๋ด๊ฐ ๊ฒช์ ์ํ์ฐฉ์ค์ ํด๊ฒฐ ๊ณผ์ ์ ๊ฒฐ๊ณผ๋ฌผ์ด๋ค.
์ธ์ ๋ ์ด ๊ธฐ์ค์ ๋ค์ ํ์ธํ๋ฉฐ,
๋ ๋์ ๋ฐฉํฅ์ผ๋ก ๋ด ์ค๊ณ๋ฅผ ๋ฐ์ ์์ผ ๋๊ฐ ์ ์๋๋ก ์ด ๋ฌธ์๋ฅผ ๋จ๊ธด๋ค.