๋ฆฌ์•กํŠธ ํด๋”๊ตฌ์กฐ์˜ ์ •์„์ด ์žˆ์„๊นŒ

    ์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋”ฉํ•œ src ํด๋”

    ์‚ฌ์‹ค ๋…ธ๋งˆ๋“œ์ฝ”๋”๋ฅผ ๋”ฐ๋ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—.. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ ์•ˆ์—์„œ ์ถฉ๋ถ„ํžˆ ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋”๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ํด๋” ์ŠคํŠธ๋Ÿญ์ณ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ๋‚˜๋Š” ์ฐพ์•„๋ณด์•˜๋‹ค! 

     

    ํ”Œ๋Ÿฌํ„ฐ์™€ ๋‹ค๋ฅด๊ฒŒ, ๋Œ€๋ถ€๋ถ„ ๊ฑฐ์˜ ํ†ต์ผ๋œ ํด๋” ์ŠคํŠธ๋Ÿญ์ณ๋ฅผ ๊ฐ–์ถ”์–ด ์ž‘์—…์„ ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

    ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ ๋‚ด๊ฐ€ ๋ณด๊ณ  ๊ณ„์†ํ•ด์„œ ์ฐธ๊ณ ํ• ๋งŒํ•œ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™€๋ดค๋‹ค ..! 

     

    CRA์˜ ์ดˆ๊ธฐ ํด๋”๊ตฌ์กฐ

    my-app
    โ”œโ”€โ”€ node_modules
    โ”œโ”€โ”€ public
    โ”œโ”€โ”€ src
    โ”œโ”€โ”€ .gitignore
    โ”œโ”€โ”€ package.json
    โ””โ”€โ”€ README.md
    
    • node_modules ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ํฌํ•จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํด๋”๋กœ ๋ณดํ†ต ๊นƒ๊ณผ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆด ๋•Œ๋Š” ์ด ํด๋”๋ฅผ ํ•จ๊ป˜ ์˜ฌ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • public index.html๊ณผ ๊ฐ™์€ ์ •์  ํŒŒ์ผ์ด ํฌํ•จ๋˜๋Š” ๊ณณ์œผ๋กœ ์ปดํŒŒ์ผ์ด ํ•„์š” ์—†๋Š” ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.
    • src ๋ฆฌ์•กํŠธ ๋‚ด๋ถ€์—์„œ ์ž‘์„ฑํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ํŒŒ์ผ๋“ค์ด ์ด ํด๋” ๋‚ด๋ถ€์—์„œ ์ž‘์„ฑ๋˜๋ฉฐ ์ด ํด๋”์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์€ ๋ช…๋ น์–ด์— ๋”ฐ๋ผ JS๋กœ ์ปดํŒŒ์ผ์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
    • .gitignore ๊นƒ์— ํฌํ•จํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ํŒŒ์ผ์˜ ์ด๋ฆ„ ํ˜น์€ ํด๋”๋“ฑ์„ ์ž…๋ ฅํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
    • package.json ํ”„๋กœ์ ํŠธ์— ๊ด€๋ จ๋œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ(ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„, ๋ฒ„์ „ ๋“ฑ)๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„ค์น˜๋œ node_modules ๋Œ€์‹ ์— ์ด package.json์„ ๊นƒ์— ํฌํ•จํ•˜์—ฌ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜๋ฉฐ ํ›„์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ก ํ•  ๋•Œ ์ด package.json์— ์ ํ˜€์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ชฉ๋ก์„ ๊ธฐ์ค€์œผ๋กœ npm์—์„œ ์„ค์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • README.md ๋ณดํ†ต ๊นƒ๊ณผ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆด ๋•Œ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•˜๋Š”๊ณณ์œผ๋กœ ํ•ด๋‹น ์ €์žฅ์†Œ์— ์ง„์ž…ํ•˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋„์›Œ์ง‘๋‹ˆ๋‹ค.

    src ๋‚ด๋ถ€ ํด๋”๊ตฌ์กฐ

    โ””โ”€ src
     โ”œโ”€ components
     โ”œโ”€ assets
     โ”œโ”€ hooks (= hoc)
     โ”œโ”€ pages
     โ”œโ”€ constants
     โ”œโ”€ config
     โ”œโ”€ styles
     โ”œโ”€ services (= api)
     โ”œโ”€ utils
     โ”œโ”€ contexts
     โ”œโ”€ App.js
     โ””โ”€ index.js
    
    • components ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ๋Š” ๋งค์šฐ ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ํด๋” ๋‚ด๋ถ€์—์„œ ํ•˜์œ„ํด๋”๋กœ ์ถ”๊ฐ€๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
    • assets ์ด๋ฏธ์ง€ ํ˜น์€ ํฐํŠธ์™€ ๊ฐ™์€ ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ํŒŒ์ผ๋“ค์„ public์— ์ง์ ‘ ๋„ฃ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋Š”๋ฐ ๋‘˜์˜ ์ฐจ์ด๋Š” ์ปดํŒŒ์ผ์‹œ์— ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.ํŒŒ๋น„์ฝ˜๊ณผ ๊ฐ™์ด index.html๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ํŒŒ์ผ๋“ค์€ public์—๋ฐ˜๋ฉด, ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ์ธ ๊ฒฝ์šฐ ์ด assets ํด๋”์— ์œ„์น˜์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • hooks (= hoc) ์ปค์Šคํ…€ ํ›…์ด ์œ„์น˜ํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.
    • pages react router๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ๋ผ์šฐํŒ…์„ ์ ์šฉํ•  ๋•Œ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด ํด๋”์— ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค.
    • constants ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ƒ์ˆ˜๋“ค์„ ์ •์˜ํ•œ ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.
    • config config ํŒŒ์ผ์ด ๋งŽ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ณดํ†ต ์ตœ์ƒ์œ„์— ์œ„์น˜์‹œ์ผœ๋†“์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ config ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ ํด๋”๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
    • styles css ํŒŒ์ผ๋“ค์ด ํฌํ•จ๋˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.
    • services (= api)

    ๋ณดํ†ต api๊ด€๋ จ ๋กœ์ง์˜ ๋ชจ๋“ˆ ํŒŒ์ผ์ด ์œ„์น˜ํ•˜๋ฉฐ auth์™€ ๊ฐ™์ด ์ธ์ฆ๊ณผ ๊ด€๋ จ๋œ ํŒŒ์ผ์ด ํฌํ•จ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

    • utils ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด์ด๋‚˜ ๊ณตํ†ตํ•จ์ˆ˜ ๋“ฑ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์œ ํ‹ธ ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค.
    • contexts contextAPI๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ด€๋ จ ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•˜๋Š”๊ณณ์œผ๋กœ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด contextAPI ๋Œ€์‹  redux๋ฅผ ์‚ฌ์šฉ ํ•  ๊ฒฝ์šฐ ํด๋” ์ด๋ฆ„์„ store๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

    ์œ„ ๋‚ด์šฉ์„ ๋”ฐ๋ผ์„œ ํด๋” ๊ตฌ์กฐ๋ฅผ ๋ถ„๋ฆฌ ํ•  ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์šฉ๋„์— ๋งž๊ฒŒ ํด๋”๋ณ„๋กœ ์ ์ ˆํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋œ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€