๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Lect & Tip/node, Angular, React

๋ฆฌ์•กํŠธ ํด๋” ๊ตฌ์กฐ React JS Folder Structure RJSFS

by ๋‚ฏ์„ ๊ณต๊ฐ„2019 2023. 10. 27.
๋ฐ˜์‘ํ˜•

๋ฆฌ์•กํŠธ ํด๋” ๊ตฌ์กฐ React JS Folder Structure RJSFS

๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—, ์ฒด๊ณ„์ ์ด๊ณ  ํšจ์œจ์ ์ธ ํด๋” ๊ตฌ์กฐ๋ฅผ ์„ธ์šฐ๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์˜ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ณ , ํŒ€์› ๊ฐ„์˜ ํ˜‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ์˜ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ํด๋” ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ๊ณผ ํŒ์„ ์ œ๊ณตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ์— ๋”ฐ๋ฅธ ๊ตฌ์กฐํ™”

์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ

์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ๋ณต์žกํ•œ ํด๋” ๊ตฌ์กฐ๋ณด๋‹ค๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•œ ๊ตฌ์กฐ๊ฐ€ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ๊ด€๋ จ ํŒŒ์ผ๋“ค์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • src
    • components
      • Header
        • Header.js
        • Header.css
      • Footer
        • Footer.js
        • Footer.css
    • pages
      • Home
        • Home.js
        • Home.css
      • About
        • About.js
        • About.css
    • App.js
    • index.js

์ค‘๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ

์ค‘๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ๊ธฐ๋Šฅ๋ณ„๋กœ ํด๋”๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ, ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜, ์ƒํƒœ ๊ด€๋ฆฌ ๋กœ์ง ๋“ฑ์„ ๋ณ„๋„์˜ ํด๋”๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • src
    • components
      • Common
        • Button
          • Button.js
          • Button.css
        • Modal
          • Modal.js
          • Modal.css
      • FeatureA
        • FeatureA.js
        • FeatureA.css
      • FeatureB
        • FeatureB.js
        • FeatureB.css
    • utils
      • api.js
      • helpers.js
    • hooks
      • useCustomHook.js
    • state
      • Context.js
      • reducer.js
    • App.js
    • index.js

๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ

๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ชจ๋“ˆ๋ณ„๋กœ ํด๋”๋ฅผ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๋ชจ๋“ˆ ๋‚ด์—์„œ MVC ํŒจํ„ด์ด๋‚˜ ๋‹ค๋ฅธ ์„ค๊ณ„ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ๊ตฌ์กฐํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

  • src
    • modules
      • ModuleA
        • Components
        • Services
        • Models
      • ModuleB
        • Components
        • Services
        • Models
    • shared
      • Components
        • Table
          • Table.js
          • Table.css
      • Hooks
      • Utils
      • State
    • App.js
    • index.js

ํด๋” ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ๊ณ ๋ ค ์‚ฌํ•ญ

์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ์„ฑ

์ปดํฌ๋„ŒํŠธ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๋ฒ”์šฉ์„ฑ์„ ๊ณ ๋ คํ•˜๊ณ , ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ƒํƒœ ๊ด€๋ฆฌ

์ƒํƒœ ๊ด€๋ฆฌ๋Š” ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์—์„œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. Redux, MobX, Context API ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์— ๋งž๋Š” ํด๋” ๊ตฌ์กฐ๋ฅผ ์„ธ์šฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŒ…

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ปดํฌ๋„ŒํŠธ ๋˜๋Š” ๊ธฐ๋Šฅ๋ณ„๋กœ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ณ„๋„์˜ ํ…Œ์ŠคํŠธ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌํŒฉํ† ๋ง๊ณผ ์œ ์ง€๋ณด์ˆ˜

ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ์žฅํ•˜๋ฉด์„œ ๋ฆฌํŒฉํ† ๋ง์€ ํ•„์ˆ˜์ ์ธ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ํด๋” ๊ตฌ์กฐ๋Š” ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์˜ ํด๋” ๊ตฌ์กฐ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ์™€ ๋ณต์žก์„ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ํŒ€์› ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•˜๊ณ  ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ ๊ตฌ์กฐ๋ฅผ ์„ธ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ณต์ ์ธ ์ง„ํ–‰๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํ‚ค์›Œ๋“œ:
๋ฆฌ์•กํŠธ ํด๋” ๊ตฌ์กฐ, ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ, ์ค‘๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ, ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ, ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ, ์ƒํƒœ ๊ด€๋ฆฌ, ํ…Œ์ŠคํŒ…, ๋ฆฌํŒฉํ† ๋ง, ์œ ์ง€๋ณด์ˆ˜, ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€