๐Ÿ˜ต ๋“ค์–ด๊ฐ€๋ฉฐ


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

Image


๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ์„œ๋ธŒ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๊ฐœ๋…, ํ•„์š”์„ฑ, ์ฃผ์˜์  ๋“ฑ์— ๊ด€ํ•ด ์‚ฌ์šฉ๊ธฐ๋ฅผ ํ’€์–ด๋ณด๋ คํ•œ๋‹ค.



๐Ÿ˜€ ๋ณธ๋ฌธ


  1. ์„œ๋ธŒ๋ชจ๋“ˆ์ด๋ž€?

    • ํ•˜๋‚˜์˜ Git ์ €์žฅ์†Œ ์•ˆ์— ๋‹ค๋ฅธ Git ์ €์žฅ์†Œ๋ฅผ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํฌํ•จ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ
    • ๊ณตํ†ต UI ๋ชจ๋“ˆ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋””์ž์ธ ์‹œ์Šคํ…œ ๋“ฑ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๊ณต์œ 
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์“ฐ๋ฉฐ ๋ณต๋ถ™ํ•˜๋Š” ๋ฐฉ์‹๋ณด๋‹ค ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ›จ์”ฌ ํšจ์œจ์ 


  2. ์„œ๋ธŒ๋ชจ๋“ˆ ์„ค์น˜๋ฒ•

    • ์„œ๋ธŒ๋ชจ๋“ˆ ์ถ”๊ฐ€ : git submodule add <๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ> <๊ฒฝ๋กœ>

      or

    • ์ƒˆ๋กœ ํด๋ก ํ•œ ํ”„๋กœ์ ํŠธ(์„œ๋ธŒ๋ชจ๋“ˆ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ)์—์„œ ์„œ๋ธŒ๋ชจ๋“ˆ๋„ ๊ฐ™์ด ๊ฐ€์ ธ์˜ฌ ๋•Œ : git clone --recurse-submodules <๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ>

    .gitmodules ํŒŒ์ผ์ด ์ž๋™ ์ƒ์„ฑ๋˜์—ฌ ์ปค๋ฐ‹ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


  3. ์„œ๋ธŒ๋ชจ๋“ˆ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์ 

    3-1. ๊ฒฝ๋กœ ๋ฌธ์ œ (Alias ๋ถˆ๊ฐ€)

    • ์„œ๋ธŒ๋ชจ๋“ˆ ๋‚ด ์ฝ”๋“œ์—์„œ @/components/... ์ด๋Ÿฐ alias๋ฅผ ์“ฐ๋ฉด ์™ธ๋ถ€์—์„œ ํ•ด์„๋˜์ง€ ์•Š์Œ

    • ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์˜ tsconfig.json ๋˜๋Š” vite.config.js, webpack.config.js์—์„œ ๊ฒฝ๋กœ alias ์„ค์ •์ด ์„œ๋ธŒ๋ชจ๋“ˆ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ชป ์คŒ

    • โœ… ํ•ด๊ฒฐ๋ฒ•: ์„œ๋ธŒ๋ชจ๋“ˆ ๋‚ด๋ถ€ ์ฝ”๋“œ๋Š” ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ํ†ต์ผ

          โŒ import Button from '@/components/Button';
          โœ… import Button from '../../components/Button';
      


    3-2. env ํŒŒ์ผ ๊ณต์œ  ๋ฌธ์ œ

    • ์„œ๋ธŒ๋ชจ๋“ˆ ๋‚ด๋ถ€์—์„œ๋Š” ์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ์˜ .env๋ฅผ ์ฐธ์กฐํ•จ
    • โœ… ํ•ด๊ฒฐ๋ฒ•: .env ํ‚ค ์ด๋ฆ„์€ ์ตœ๋Œ€ํ•œ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ (RESERVATION_API_URL ๋“ฑ)


    3-3. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฌธ์ œ

    • ์„œ๋ธŒ๋ชจ๋“ˆ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์—๋„ ๋˜‘๊ฐ™์ด ์„ค์น˜๋˜์–ด์•ผ ํ•จ

    • โœ… ํ•ด๊ฒฐ๋ฒ•: ์„œ๋ธŒ๋ชจ๋“ˆ์˜ package.json์„ ํ™•์ธํ•ด์„œ ์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ์— ๋™์ผํ•˜๊ฒŒ ์˜์กด์„ฑ ์„ค์น˜


    3-4. ๋ฒ„์ „ ๊ด€๋ฆฌ ์ฃผ์˜

    • ์„œ๋ธŒ๋ชจ๋“ˆ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ์ •๋œ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ธŒ๋ชจ๋“ˆ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์ˆ˜๋™์œผ๋กœ pull ๋ฐ›์•„์•ผํ•จ



๐Ÿ˜Ž ์„œ๋ธŒ๋ชจ๋“ˆ ์‚ฌ์šฉ ํšŒ๊ณ 


  • ๋ชจ๋…ธ๋ ˆํฌ์™€ ๋น„์Šทํ•œ ๋“ฏ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋…๋ฆฝ์ ์ธ ๋ ˆํฌ๋ผ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์› ๋‹ค.

  • ์ˆ˜์ •์‚ฌํ•ญ์„ ์ด๋ฆฌ์ €๋ฆฌ ์ ์šฉํ•˜์ง€์•Š์•„๋„ ๋˜์„œ ์ฝ”๋“œ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์› ๋‹ค.
  • ์„œ๋ธŒ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ์‹œ ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ ˆํฌํŠธ๋ฅผ ์ฐพ์•„๊ฐ€ ์ผ์ผํžˆ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ณผ์ •, ๋นˆ๋ฒˆํ•œ ์ƒ๋Œ€๊ฒฝ๋กœ ์—๋Ÿฌ, env ๊ด€๋ฆฌ๋“ค์ด ์กฐ๊ธˆ ๊ท€์ฐฎ์•˜๋‹ค.
  • ํ˜‘๋ ฅ์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌ๋“œ๋ฏธ ํŒŒ์ผ์„ ์ž˜ ์“ธ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.