** React ๊ณต์ ํ์ด์ง ํ์ผ ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ณต๋ถ ๋ชฉ์ ์ผ๋ก ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. **
1. ๊ธฐ๋ฅ ๋๋ ๋ผ์ฐํธ ๋จ์๋ก ๋ถ๋ฅ
์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก, ๋ผ์ฐํธ(ํ๋ก์ ํธ์ ๊ฒฝ๋ก) ํด๋์ ํด๋น ๋ผ์ฐํธ์ ๊ด๋ จ๋ CSS, JS ๋ฑ์ ๊ฐ์ด ๋๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์๋น์ค์ ์ฃผ์ ๊ธฐ๋ฅ์ ์ถ๋ฆฌ๊ณ , ๊ทธ ๊ธฐ๋ฅ๋ค์ ์ผ๋ง๋ ์ธ๋ถํํ ์ง ๊ณ ๋ฏผ ํ ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
๋ด๊ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์ด๋ฐ ๋ถ๋ฅ ๋ฐฉ๋ฒ์ธ๋ฐ, ์๋น์ค์์ ๊ฐ์ฅ ์ค์ํ ํต์ฌ ๊ธฐ๋ฅ or ์๋น์ค๋ฅผ ๊ตฌ๋ถํ์ฌ
๊ทธ ์์ ํ์ผ๋ค์ ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ์ด ๋์๊ฒ๋ ๊ฐ์ฅ ์ต์ํ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค.
common/
Avatar.js
Avatar.css
APIUtils.js
APIUtils.test.js
feed/
index.js
Feed.js
Feed.css
FeedStory.js
FeedStory.test.js
FeedAPI.js
profile/
index.js
Profile.js
ProfileHeader.js
ProfileHeader.css
ProfileAPI.js
2. ํ์ผ ์ ํ๋ณ ๋ถ๋ฅ
์๋์ ๊ฐ์ด ๋น์ทํ ์ ํ์ ํ์ผ๋ผ๋ฆฌ ๋ฌถ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์๋์ฒ๋ผ api, components ๋ฑ๊ณผ ๊ฐ์ด ์ ํ๋ณ๋ก ๋ถ๋ฅํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง,
๊ท๋ชจ๊ฐ ํฐ ํ๋ก์ ํธ์ ์ ํฉํ์ง ์๋ค. ๋์ ๊ฒฝ์ฐ๋ components ํด๋ ์์์ ๋ค์ ๊ธฐ๋ฅ๋ณ๋ก ๊ตฌ๋ถ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ถ๋ฅํ๋ ํ๋ก์ ํธ๊ฐ ์์๋ค.
api/
APIUtils.js
APIUtils.test.js
ProfileAPI.js
UserAPI.js
components/
Avatar.js
Avatar.css
Feed.js
Feed.css
FeedStory.js
FeedStory.test.js
Profile.js
ProfileHeader.js
ProfileHeader.css
ํ์ผ ๊ตฌ์กฐ๋ฅผ ์งค ๋ ์ฃผ์ํ ์ โ๏ธ
- ๋๋ฌด ๋ง์ ์ค์ฒฉ ํผํ๊ธฐ : ๊น์ ๋๋ ํ ๋ฆฌ ์ค์ฒฉ์ JSํ๋ก์ ํธ์์ ๋ง์ ๋ฌธ์ ์ ์ ์ผ๊ธฐํ๋ค. ๋จ์ผ ํ๋ก์ ํธ ๋ด์์๋ 3~4๋ฒ์ ์ต๋ํ์ผ๋ก ํ๋ก์ ํธ ์ค์ฒฉ์ ์ ํํ๋ ๊ฒ์ ๊ถ์ฅ.
- ๋๋ฌด ๊น๊ฒ ์๊ฐํ์ง ์๊ธฐ : ํ๋ก์ ํธ ์์ ๋จ๊ณ๋ผ๋ฉด ์ผ๋จ ์ฝ๋๋ฅผ ์์ฑํด๋ณด๊ณ , ๊ท๋ชจ๊ฐ ์ปค์ง๋ค๋ฉด ์์ฃผ ํจ๊ป ๋ณ๊ฒฝ๋๋ ํ์ผ๋ค์ ๊ฐ์ด ๋ณด๊ดํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ์ข์ ๋ฐฉ๋ฒ. (์ด๋ฐ ์์น์ "์ฝ๋ก์ผ์ด์ (colocation)" ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.)
์ฌ๊ธฐ๊น์ง๊ฐ React ๊ณต์ ํํ์ด์ง์์ ํ์ผ ๊ตฌ์กฐ์ ๋ํ ์ค๋ช ์ ์ฐธ๊ณ ํ ๋ด์ฉ์ธ๋ฐ, ๋ด ์๊ฐ์ ๊ฐ์ฅ ์ค์ํ ํต์ฌ์
๋๋ฌด ๊น๊ฒ ์๊ฐํ์ง ์๊ณ , ๊ฐ์์ ํ๋ก์ ํธ์ ๋ง๊ฒ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ ํํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
๋๋ ๋ค๋ฅธ ๋๋ฃ๋ค์ ์๊ฐํ์ฌ ์ต๋ํ ์ง๊ด์ ์ด๋ฉด์๋ ์์ ํ๊ธฐ ํจ์จ์ ์ผ๋ก, ๋ ์ธ๋ฐ์๋ ์ค์ฒฉ์ ์ต๋ํ ํผํด์ ๊ตฌ์กฐ๋ฅผ ์ง๋ ค๊ณ ๊ณ ๋ฏผํ๋ค ๋ณด๋ฉด ์ ์ ๋ ์ข์์ง์ง ์์๊น ์๊ฐํ๋ค.
์ผ๋จ ์๋ฌด ์๊ฐ์์ด ์ง๋ ๊ฒ๋ณด๋ค, ์ด๋ป๊ฒ ํ๋ฉด ๋ ์ข๊ฒ ์งค ์ ์๋์ง, ์ด๋ป๊ฒ ํ๋ฉด ์ฒ์ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ ์ฌ๋๋ ์ฝ๊ฒ ์ฐพ์์ ์ ์ง๋ณด์ํ ์ ์๋์ง, ์ด๋ฐ ๊ฒ๋ค์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋๋ฅผ ๋ฐ์ ์์ผ์ฃผ๋ ๊ณ ๋ฏผ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์....! ์ง๊ธ์ ์๋ฒฝํ ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์๊ฒ ์ง๋ง ์ ์ ๋ ธ๋ ฅํ๊ณ ๊ณ ๋ฏผํ๋ค ๋ณด๋ฉด ๋์ค์ ํ๋ก์ ํธ ๊ธฐํ์ ๋ณด๋ฉด ๋จธ๋ฆฟ์์์ ๊ตฌ์กฐ๊ฐ ๋ฑ๋ฑ ๋์ค๋ ๋ ์ด ์ค์ง ์์๊น? ์๊ฐํ๋ค! ๐
๋๋ ๋ณดํต ํ์ด์ง์ ์๊ฐ ๋ง์ผ๋ฉด ๋ผ์ฐํธ ๋จ์๋ก ๋ฌถ๊ณ ,
๋ง์ ๊ธฐ๋ฅ์ด ์๋ ํ๋ก์ ํธ๋ ๊ธฐ๋ฅ๋ณ๋ก ๋ฌถ์ด์ฃผ๋ ์์ผ๋ก ํ๋ก์ ํธ์ ์ฑ๊ฒฉ์ ๋ง๊ฒ ํ์ผ ๊ตฌ์กฐ๋ฅผ ์ง๋ ค๊ณ ํ๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ํ๋ค๊ฐ๋ ์ค๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ฒด ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค..ใ ใ ใ ใ ใ
๊ทธ๋์ ์ด๋ฒ์๋ ์ ๋๊ฒฝ๋ก๋ฅผ ์ด์ฉํ์ฌ import๋ฅผ ํ๊ณ ์๋๋ฐ,
์ค๊ฐ์ ํ์ผ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ๋ํ ๋ถ๋ด์ด ์ ์ด์ ์ง์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ด์ฉํ ๊ฑธ ์ถ์๋ค!
์ ๋๊ฒฝ๋ก import ๋ฐฉ๋ฒ์ ์กฐ๋ง๊ฐ ํฌ์คํ ํด์ผ๊ฒ ๋ค-!