Skip to content

๐Ÿ“‚ ํด๋” ๊ตฌ์กฐ ๊ฐ€์ด๋“œ โ€‹

๋ฉ”์ž‡๋ณผ ํด๋ผ์ด์–ธํŠธ ํŒ€์—์„œ๋Š” ์ฝ”๋“œ ์‘์ง‘๋„์™€ ์œ ์ง€๋ณด์ˆ˜ ํŽธ์˜์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ํด๋” ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
๋˜ํ•œ, ๋ชจ๋“  ํด๋”์™€ ํŒŒ์ผ๋ช…์€ **์ผ€๋ฐฅ ์ผ€์ด์Šค(kebab-case)**๋ฅผ ์ ์šฉํ•ด ์ผ๊ด€์„ฑ ์žˆ๊ณ  ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚œ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.


ํด๋” ๊ตฌ์กฐ ์˜ˆ์‹œ โ€‹


|-- ๐Ÿ“ .github
|-- ๐Ÿ“ node_modules
|-- ๐Ÿ“ public
|-- ๐Ÿ“ src 
  |-- ๐Ÿ“ pages
	  |-- ๐Ÿ“ home
		  |-- ๐Ÿ“„ex) home.tsx
		  |-- ๐Ÿ“ components
		  |-- ๐Ÿ“ styles ๋“ฑ
  |-- ๐Ÿ“ shared
      |-- ๐Ÿ“ components
            |-- ๐Ÿ“„ex) home-header.tsx
      |-- ๐Ÿ“ styles
      |-- ๐Ÿ“ constants
      |-- ๐Ÿ“ types ๋“ฑ 
|-- index.html ๋“ฑ ETC

๊ฐ ํด๋”๋ณ„ ์—ญํ•  ๋ฐ ๋„ค์ด๋ฐ ์ด์œ  โ€‹

1๏ธโƒฃ src/pages โ€‹

  • ๋ชฉ์ : ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ๊ฐœ๋ณ„ ํŽ˜์ด์ง€ ๋‹จ์œ„์˜ ์ปดํฌ๋„ŒํŠธ์™€ ๊ทธ์— ํŠนํ™”๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌ
  • ๊ตฌ์„ฑ:
    • ํŽ˜์ด์ง€๋ณ„ ํด๋”(home, profile ๋“ฑ)๋กœ ๊ตฌ๋ถ„
    • ๊ฐ ํŽ˜์ด์ง€ ํด๋” ์•ˆ์— ๊ทธ ํŽ˜์ด์ง€ ์ „์šฉ components์™€ styles ํด๋”๋ฅผ ๋ณ„๋„ ๊ด€๋ฆฌ
  • ์ด์œ :
    • ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ์‘์ง‘์‹œ์ผœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธ๋ฆฌ
    • ๊ฐ ํŽ˜์ด์ง€์— ์ข…์†์ ์ธ ์ฝ”๋“œ๊ฐ€ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ๋˜์–ด, ๋ณ€๊ฒฝ ์‹œ ์˜ํ–ฅ ๋ฒ”์œ„ ์ตœ์†Œํ™”

2๏ธโƒฃ src/shared โ€‹

  • ๋ชฉ์ : ํ”„๋กœ์ ํŠธ ์ „์—ญ์—์„œ ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ณตํ†ต ๋ชจ๋“ˆ ๋ฐ ๋ฆฌ์†Œ์Šค ์ €์žฅ์†Œ
  • ๊ตฌ์„ฑ:
    • components: ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” UI ์ปดํฌ๋„ŒํŠธ
    • styles: ์ „์—ญ ์Šคํƒ€์ผ ๋ฐ ํ…Œ๋งˆ ๋ณ€์ˆ˜
    • constants: ์ „์—ญ ์ƒ์ˆ˜ (API URL, ์ƒ‰์ƒ ์ฝ”๋“œ ๋“ฑ)
    • types: ํƒ€์ž… ์ •์˜
  • ์ด์œ :
    • ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ค„์—ฌ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ ์ ˆ๊ฐ
    • ๊ณตํ†ต ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์•„๋‘์–ด ๋ณ€๊ฒฝ ๊ด€๋ฆฌ ๋ฐ ์˜ํ–ฅ๋„ ๋ถ„์„์ด ์šฉ์ด

3๏ธโƒฃ ๊ธฐํƒ€ ์ฃผ์š” ํด๋” โ€‹

  • .github: GitHub ์›Œํฌํ”Œ๋กœ์šฐ, ์ด์Šˆ ๋ฐ PR ํ…œํ”Œ๋ฆฟ
  • node_modules: ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ
  • public: ์ •์  ํŒŒ์ผ (์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ)
  • ๋ฃจํŠธ์˜ index.html: ์•ฑ ์ง„์ž…์ 

์ผ€๋ฐฅ ์ผ€์ด์Šค(kebab-case) ์‚ฌ์šฉ ์ด์œ  โ€‹

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

์„ค๊ณ„ ์›์น™ โ€‹

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

๋ฉ”์ž‡๋ณผ ํŒ€์€ ์ด ํด๋” ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๋น ๋ฅธ ๊ฐœ๋ฐœ๊ณผ ์›ํ™œํ•œ ํ˜‘์—…์„ ์‹คํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ž‘์—… ์ค‘ ํ—ท๊ฐˆ๋ฆด ๋•Œ๋Š” ์ด ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”!