๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
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 ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์— ๋งž๋Š” ํด๋” ๊ตฌ์กฐ๋ฅผ ์„ธ์šฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŒ…

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

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

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

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

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

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€