• Aiden's Lab แ„‚แ…ฒแ„‰แ…ณแ„…แ…ฆแ„แ…ฅ
  • Posts
  • ๐Ÿ”ญแ„Œแ…ตแ„€แ…ณแ†ท แ„‹แ…ฎแ„…แ…ตแ†ซ Gitแ„‹แ…ณแ†ฏ แ„Œแ…กแ†ฏ แ„Šแ…ณแ„€แ…ฉ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ แ„€แ…ฅแ†ฏแ„แ…ก? - แ„Œแ…กแ„Œแ…ฎ แ„’แ…ชแ†ฏแ„‹แ…ญแ†ผแ„ƒแ…ฌแ„‚แ…ณแ†ซ Git แ„‡แ…ณแ„…แ…ขแ†ซแ„Žแ…ต แ„Œแ…ฅแ†ซแ„…แ…ฃแ†จ 3แ„€แ…กแ„Œแ…ต แ„‹แ…กแ†ฏแ„‹แ…กแ„‡แ…ฉแ„€แ…ต

๐Ÿ”ญแ„Œแ…ตแ„€แ…ณแ†ท แ„‹แ…ฎแ„…แ…ตแ†ซ Gitแ„‹แ…ณแ†ฏ แ„Œแ…กแ†ฏ แ„Šแ…ณแ„€แ…ฉ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ แ„€แ…ฅแ†ฏแ„แ…ก? - แ„Œแ…กแ„Œแ…ฎ แ„’แ…ชแ†ฏแ„‹แ…ญแ†ผแ„ƒแ…ฌแ„‚แ…ณแ†ซ Git แ„‡แ…ณแ„…แ…ขแ†ซแ„Žแ…ต แ„Œแ…ฅแ†ซแ„…แ…ฃแ†จ 3แ„€แ…กแ„Œแ…ต แ„‹แ…กแ†ฏแ„‹แ…กแ„‡แ…ฉแ„€แ…ต

แ„ƒแ…ฅแ„‹แ…ฎแ†จ แ„’แ…ญแ„€แ…ชแ„Œแ…ฅแ†จแ„‹แ…ตแ†ซ แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ แ„€แ…ชแ†ซแ„…แ…ตแ„…แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ Git แ„‡แ…ณแ„…แ…ขแ†ซแ„Žแ…ต แ„Œแ…ฅแ†ซแ„…แ…ฃแ†จ 3แ„€แ…กแ„Œแ…ตแ„…แ…ณแ†ฏ แ„‰แ…กแ†ฏแ„‘แ…งแ„‡แ…ฉแ„€แ…ฉ แ„‚แ…กแ„‹แ…ฆแ„€แ…ฆ แ„†แ…กแ†ฝแ„‚แ…ณแ†ซ แ„‡แ…ณแ„…แ…ขแ†ซแ„Žแ…ต แ„Œแ…ฅแ†ซแ„…แ…ฃแ†จแ„…แ…ณแ†ฏ แ„Žแ…กแ†ฝแ„‹แ…กแ„‡แ…ฉแ„‰แ…ฆแ„‹แ…ญ.

์•ˆ๋…•ํ•˜์„ธ์š”, Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์ž…๋‹ˆ๋‹ค.

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

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

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” Git์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ์š”? ์ด๋Ÿฐ ๋ฌธ์ œ ์˜์‹์—์„œ ๋‚˜์˜จ ๊ฒƒ์ด ๋ฐ”๋กœ, Git ๋ธŒ๋žœ์น˜ ์ „๋žต์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ์•„ํ‹ฐํด์„ ์ฝ์œผ์‹œ๋‹ค๋ณด๋ฉด ์šฐ๋ฆฌ ํŒ€์— ์ ํ•ฉํ•œ Git ๋ธŒ๋žœ์น˜ ์ „๋žต์„ ์ฐพ์•„๊ฐ€์‹ค ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

ํŒ€์ด ์•„๋‹ˆ๋ผ ํ˜ผ์ž์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ ์š”? ๊ฑฑ์ • ๋งˆ์„ธ์š”. 1์ธ ๊ฐœ๋ฐœ ์‹œ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์— ๋„์›€์ด ๋˜๋Š” Git ๋ธŒ๋žœ์น˜ ์ „๋žต๋„ ์ถ”์ฒœํ•ด๋“œ๋ฆด ํ…Œ๋‹ˆ๊นŒ์š”.

ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ Git ๋ธŒ๋žœ์น˜ ์ „๋žต์ด ์ค‘์š”ํ•œ ์ด์œ 

๋Œ€ํ‘œ์ ์ธ Git ๋ธŒ๋žœ์น˜์—๋Š” Git ํ”Œ๋กœ์šฐ, GitHub ํ”Œ๋กœ์šฐ, GitLab ํ”Œ๋กœ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • ์ฝ”๋“œ ํ†ตํ•ฉ ์•ˆ์ •์„ฑ์„ ๋†’์ด๊ณ  ๋ณ‘๋ ฌ์  ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋ฉฐ,

  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฌธํ™”๋ฅผ ์ •์ฐฉ์‹œํ‚ค๋ฉด์„œ ์ฝ”๋“œ ํ’ˆ์งˆ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•˜๊ณ ,

  • ์ง€์†์  ํ†ตํ•ฉ(CI) ๋ฐ ์ง€์†์  ๋ฐฐํฌ(CD) ํŒŒ์ดํ”„๋ผ์ธ๊ณผ๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๋™๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ Git ๋ธŒ๋žœ์น˜ ์ „๋žต์œผ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ์š”.

  • Git ํ”Œ๋กœ์šฐ

    • ํ•ต์‹ฌ ๋ธŒ๋žœ์น˜(main, develop)์™€ ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง„ ๋ณด์กฐ ๋ธŒ๋žœ์น˜(feature, release, hotfix)๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฒด๊ณ„์ ์ธ Git ๋ธŒ๋žœ์น˜ ์ „๋žต

  • GitHub ํ”Œ๋กœ์šฐ

    • main ๋ธŒ๋žœ์น˜๋ฅผ ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์—ฌ ๋ณต์žกํ•œ ๊ทœ์น™ ์—†์ด ๋น ๋ฅธ ๋ฐฐํฌ์— ์ ํ•ฉํ•œ Git ๋ธŒ๋žœ์น˜ ์ „๋žต

  • GitLab ํ”Œ๋กœ์šฐ

    • GitHub ํ”Œ๋กœ์šฐ์˜ ๋‹จ์ˆœํ•จ์€ ๊ฐ€์ ธ๊ฐ€๋ฉด์„œ, ํ•„์š”์— ๋”ฐ๋ผ ํ™˜๊ฒฝ๋ณ„ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ธŒ๋žœ์น˜(pre-production, production ๋“ฑ) ๋˜๋Š” ํŠน์ • ๋ฒ„์ „ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์œ„ํ•œ ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ Git ๋ธŒ๋žœ์น˜ ์ „๋žต

์šฐ๋ฆฌ์—๊ฒŒ ์ ํ•ฉํ•œ ๋ฐฉ์‹์„ ์ฐพ์•„๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๊ฐ ๋ธŒ๋žœ์น˜ ์ „๋žต์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์žฅ/๋‹จ์ ์— ๋Œ€ํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Git ํ”Œ๋กœ์šฐ

์•„๋งˆ๋„ Git ๋ธŒ๋žœ์น˜ ์ „๋žต์— ๋Œ€ํ•ด ์ด๋ฏธ ๊ฒ€์ƒ‰ํ•ด๋ณด์…จ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ํ•œ ๋ฒˆ์ฏค์€ ๋ณด์…จ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Git ํ”Œ๋กœ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ž˜ํ”„์ธ๋ฐ์š”.

๊ทธ๋ž˜ํ”„๊ฐ€ ๋ณต์žกํ•ด๋ณด์—ฌ๋„ ๊ฑฑ์ • ๋งˆ์„ธ์š”. ์ง€๊ธˆ ๋‹น์žฅ ์œ„ ๊ทธ๋ฆผ์˜ ๋‚ด์šฉ์„ ๋‹ค ์ดํ•ดํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ๊ฒƒ์€ ๋ณผ๋“œ์ฒด๋กœ ๊ฐ•์กฐ๋œ master(๋˜๋Š” main) ๋ธŒ๋žœ์น˜์™€ develop ๋ธŒ๋žœ์น˜๊ฐ€ Git ํ”Œ๋กœ์šฐ์˜ ํ•ต์‹ฌ ๋ธŒ๋žœ์น˜๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค.

Git ํ”Œ๋กœ์šฐ์˜ ๋™์ž‘ ๋ฐฉ์‹

Git ํ”Œ๋กœ์šฐ์˜ ์ค‘์‹ฌ์—๋Š” ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋‘ ๊ฐœ์˜ ํ•ต์‹ฌ ๋ธŒ๋žœ์น˜(main, develop)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋ณด์กฐํ•ด์ฃผ๋Š” ๋ณด์กฐ ๋ธŒ๋žœ์น˜(feature, release, hotfix)๊ฐ€ ์กด์žฌํ•˜์ฃ .

  • main ๋ธŒ๋žœ์น˜

    • ์‹ค์ œ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌ๋œ ์•ˆ์ •์ ์ธ ๋ฒ„์ „์˜ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๋ธŒ๋žœ์น˜

    • ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ๊ฐ ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „ ๊ด€๋ฆฌ

  • develop ๋ธŒ๋žœ์น˜

    • ๋‹ค์Œ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ค‘์ธ ์ตœ์‹  ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๋ธŒ๋žœ์น˜

    • ๋ชจ๋“  ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์˜ ๊ธฐ์ค€

  • feature ๋ธŒ๋žœ์น˜

    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ ๊ฐœ์„ ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ, develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ feature/{๊ธฐ๋Šฅ ์ด๋ฆ„}์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ถ„๊ธฐ๋จ

    • ๊ฐ ๊ธฐ๋Šฅ์€ ๋…๋ฆฝ๋œ feature ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ ํ›„, ๊ฐœ๋ฐœ ์™„๋ฃŒ ์‹œ ๋‹ค์‹œ develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

    • ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋œ feature ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œ

  • release ๋ธŒ๋žœ์น˜

    • develop ๋ธŒ๋žœ์น˜์— ๋‹ค์Œ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์ถฉ๋ถ„ํžˆ ํ†ตํ•ฉ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จ๋  ๊ฒฝ์šฐ, develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ release/{๋ฒ„์ „ ๋ฒˆํ˜ธ}์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ถ„๊ธฐ๋จ

    • ๋ณธ ๋ธŒ๋žœ์น˜์—์„œ๋Š” ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ์ข… ํ…Œ์ŠคํŠธ์™€ ๋ฌธ์„œ ์ž‘์—…, ์ด ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ฒ„๊ทธ ์ˆ˜์ • ์ž‘์—…๋งŒ ์ง„ํ–‰

    • ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด main ๋ธŒ๋žœ์น˜์™€ develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

    • ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋œ release ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œ

  • hotfix ๋ธŒ๋žœ์น˜

    • ์ด๋ฏธ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌ๋œ main ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ์—์„œ ๊ธด๊ธ‰ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋ฒ„๊ทธ ๋ฐœ์ƒ ์‹œ hotfix/{๋ฒ„๊ทธ ์ด์Šˆ ๋ฒˆํ˜ธ}์™€ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ถ„๊ธฐ๋จ

    • ์ž‘์—… ์™„๋ฃŒ ํ›„ main ๋ธŒ๋žœ์น˜์™€ develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

    • ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋œ hotfix ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œ

Git ํ”Œ๋กœ์šฐ์˜ ์žฅ/๋‹จ์ 

์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ๋‚ด์šฉ์„ ๋ณด๋ฉด, Git ํ”Œ๋กœ์šฐ๋Š” ์ฒด๊ณ„์ ์ด๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜๊ฐ€ ๋‚˜๋ˆ ์ง€๊ณ  ํ•ฉ์ณ์ง์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์ด๋Ÿฐ Git ํ”Œ๋กœ์šฐ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์žฅ์ :

  • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์ฝ”๋“œ ๊ด€๋ฆฌ์˜ ํ˜ผ๋ž€์„ ์ค„์ด๊ณ , ์ฒด๊ณ„์ ์ธ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

  • release ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ์•ˆ์ •์ ์ธ ๋ฐฐํฌํŒ์„ ์ค€๋น„ํ•˜๋Š” ๊ณผ์ •๊ณผ, hotfix ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ์šด์˜ ํ™˜๊ฒฝ์˜ ๊ธด๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š” ๋ช…ํ™•ํ•œ ์ ˆ์ฐจ๋ฅผ ์ œ๊ณต

๋‹จ์ :

  • ์ด๋ฏธ ๋‹ค์–‘ํ•œ ๋ธŒ๋žœ์น˜ ์ข…๋ฅ˜์™€ ๊ฐ ๋ธŒ๋žœ์น˜์˜ ๋ณ‘ํ•ฉ ๊ทœ์น™์ด ์ •ํ•ด์ ธ ์žˆ์–ด ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ํŒ€์—๊ฒŒ๋Š” ๋ณต์žกํ•˜๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜ ์žˆ์Œ

  • release ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•œ ๋ณ„๋„์˜ ๋ฐฐํฌ ์ค€๋น„ ๊ณผ์ •์€, ๋ฐฐํฌ๊ฐ€ ๋งค์ผ ๋˜๋Š” ์ˆ˜์‹œ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ํ˜„์žฌ ์›น ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค์†Œ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋А๋ฆด ์ˆ˜ ์žˆ์Œ

  • ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•˜์—ฌ ์ง€์†์  ํ†ตํ•ฉ(CI) ๋ฐ ์ง€์†์  ๋ฐฐํฌ(CD) ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ

GitHub ํ”Œ๋กœ์šฐ

GitHub ํ”Œ๋กœ์šฐ๋Š” Git ํ”Œ๋กœ์šฐ์˜ ๋ณต์žก์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋ธŒ๋žœ์น˜ ์ „๋žต์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋„์‹ํ™”ํ•œ ์•„๋ž˜ ์ด๋ฏธ์ง€๋งŒ ๋ด๋„, ์œ„์—์„œ ๋ดค๋˜ Git ํ”Œ๋กœ์šฐ๋ณด๋‹ค ๋งŽ์ด ๊ฐ„์†Œํ™”๋œ ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์ฃ ?

GitHub ํ”Œ๋กœ์šฐ์˜ ๋™์ž‘ ๋ฐฉ์‹

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

๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ • ๋“ฑ ๋ชจ๋“  ์ƒˆ๋กœ์šด ์ž‘์—…์€ main ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ๋ถ„๊ธฐ๋œ, ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜(Feature Branch)๋ผ ๋ถˆ๋ฆฌ๋Š” ๋ธŒ๋žœ์น˜์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜๋Š” ํ•ด๋‹น ์ž‘์—…์˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฆ„(์˜ˆ: fix-login-bug, add-user-profile)์œผ๋กœ ๋งŒ๋“ค์–ด์ง€์ฃ .

์ด๋Ÿฐ ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜์—์„œ์˜ ์ž‘์—…์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. main ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ๋Š” ๊ณง ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์šฉ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์—, main ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ ์‹œ ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

GitHub ํ”Œ๋กœ์šฐ์˜ ์žฅ/๋‹จ์ 

Git ํ”Œ๋กœ์šฐ์— ๋น„ํ•ด ํฌ๊ฒŒ ๊ฐ„์†Œํ™”๋œ GitHub ํ”Œ๋กœ์šฐ๋Š” ๊ทธ ์žฅ/๋‹จ์ ๋„ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ :

  • main ๋ธŒ๋žœ์น˜์™€ ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜๋ผ๋Š” ์ตœ์†Œํ•œ์˜ ๋ธŒ๋žœ์น˜ ์ข…๋ฅ˜๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋„์ž… ๋ฐ ๊ต์œก ๋ถ€๋‹ด์ด ์ ์Œ

  • main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋œ ์ฝ”๋“œ๋Š” ์ฆ‰์‹œ ๋ฐฐํฌ ๊ฐ€๋Šฅ ์ƒํƒœ์ด๋ฏ€๋กœ, ํ•˜๋ฃจ์—๋„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ ์‚ฌ์ดํด ๊ตฌํ˜„ ๊ฐ€๋Šฅ

  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ์— ๋งค์šฐ ์œ ๋ฆฌํ•จ

๋‹จ์ :

  • main ๋ธŒ๋žœ์น˜๊ฐ€ ํ•ญ์ƒ ์ตœ์‹  ๋ฐฐํฌ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์—, ํŠน์ • ์‹œ์ ์˜ ์ฝ”๋“œ๋ฅผ ๊ณ ์ •ํ•˜์—ฌ ๋ณ„๋„์˜ ๋ฒ„์ „์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋™์‹œ์— ์œ ์ง€๋ณด์ˆ˜ํ•ด์•ผ ํ•˜๋Š” ์ „ํ†ต์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๋ฆด๋ฆฌ์ฆˆ ๋ฐฉ์‹์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ

  • ๊ธด๊ธ‰ ์ˆ˜์ •์„ ์œ„ํ•œ ๋ณ„๋„ ์ ˆ์ฐจ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋Œ€์ฒ˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Œ

GitLab ํ”Œ๋กœ์šฐ

GitLab ํ”Œ๋กœ์šฐ๋Š” GitHub ํ”Œ๋กœ์šฐ์˜ ํ•ต์‹ฌ ์›์น™์ธ 'main ๋ธŒ๋žœ์น˜ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ'์„ ์œ ์ง€ํ•˜๋ฉด์„œ, ํ”„๋กœ์ ํŠธ์˜ ํ•„์š”์— ๋”ฐ๋ผ ์ถ”๊ฐ€์ ์ธ ๋ธŒ๋žœ์น˜๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, '๋‹จ์ˆœํ•จ'๊ณผ '์ฒด๊ณ„์ ์ธ ๊ด€๋ฆฌ'๋ฅผ ๋ชจ๋‘ ์ทจํ•˜๊ณ ์ž ๋‚˜์˜จ ์ „๋žต์ด์ฃ .

GitLab ํ”Œ๋กœ์šฐ์˜ ๋™์ž‘ ๋ฐฉ์‹

๋จผ์ € GitLab ํ”Œ๋กœ์šฐ๊ฐ€ GitHub ํ”Œ๋กœ์šฐ์™€ ์œ ์‚ฌํ•œ ์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • main ๋ธŒ๋žœ์น˜

    • ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋œ ์•ˆ์ •์ ์ธ ์ฝ”๋“œ ํฌํ•จ

  • feature ๋ธŒ๋žœ์น˜

    • ๋ชจ๋“  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ๊ณผ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง

    • main ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ๋ถ„๊ธฐ๋˜๋ฉฐ, ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด main ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ

๊ทธ๋ฆฌ๊ณ  ์ฒด๊ณ„์ ์ธ ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด GitLab ํ”Œ๋กœ์šฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ™˜๊ฒฝ ๋ธŒ๋žœ์น˜ (์˜ˆ: pre-production, production)

    • ์Šคํ…Œ์ด์ง•์ด๋‚˜ ํ”„๋กœ๋•์…˜๊ณผ ๊ฐ™์ด ๊ฐ ๋ฐฐํฌ ํ™˜๊ฒฝ์— ๋Œ€์‘

    • main ๋ธŒ๋žœ์น˜์—์„œ pre-production ๋ธŒ๋žœ์น˜๋กœ ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ์— ๋ฐฐํฌ ํ›„, ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด pre-production ๋ธŒ๋žœ์น˜์—์„œ production ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•˜์—ฌ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ

  • release ๋ธŒ๋žœ์น˜

    • ์ •๊ธฐ์ ์ธ ๋ฆด๋ฆฌ์ฆˆ๋‚˜ ํŠน์ • ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, release/{๋ฒ„์ „ ๋ฒˆํ˜ธ} ํ˜•ํƒœ์˜ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

    • ํ•ด๋‹น ๋ฒ„์ „์˜ ์•ˆ์ •ํ™” ์ž‘์—… ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜๋ฉด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌ ๋ฐ main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ

GitLab ํ”Œ๋กœ์šฐ์˜ ์žฅ/๋‹จ์ 

GitHub ํ”Œ๋กœ์šฐ์˜ '๋‹จ์ˆœํ•จ'๊ณผ Git ํ”Œ๋กœ์šฐ์˜ '์ฒด๊ณ„์„ฑ'์„ ๋ชจ๋‘ ์ทจํ•˜๊ณ ์ž ํ–ˆ๋˜ GitLab ํ”Œ๋กœ์šฐ์˜ ์žฅ/๋‹จ์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์žฅ์ :

  • ๊ฐ„๊ฒฐํ•œ ๊ธฐ๋ณธ ํ๋ฆ„์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ํ™˜๊ฒฝ ๋ธŒ๋žœ์น˜๋‚˜ ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜ ๋„์ž…์œผ๋กœ ์œ ์—ฐํ•œ ์šด์˜ ๊ฐ€๋Šฅ

  • GitLab ํ”Œ๋žซํผ ๋‚ด์—์„œ GitLab ํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ „์ฒด ๊ฐœ๋ฐœ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ด์Šˆ์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ํšจ๊ณผ์ ์œผ๋กœ ์ถ”์  ๋ฐ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

๋‹จ์ :

  • GitHub ํ”Œ๋กœ์šฐ๋ณด๋‹ค๋Š” ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” Git ๋ธŒ๋žœ์น˜ ์ „๋žต์€ ๋ญ˜๊นŒ?

์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€ Git ๋ธŒ๋žœ์น˜ ์ „๋žต์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์žฅ/๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋Š”๋ฐ์š”. ๊ฐ ๋ธŒ๋žœ์น˜ ์ „๋žต์ด ์ ํ•ฉํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ–ˆ์œผ๋‹ˆ, ๋‚˜์—๊ฒŒ ๋งž๋Š” Git ๋ธŒ๋žœ์น˜ ์ „๋žต์„ ์ฐพ๊ณ  ๊ณ„์‹ ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒ๋‹ˆ๋‹ค.

Git ํ”Œ๋กœ์šฐ๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

  • ์—ฌ๋Ÿฌ ํŒ€์ด๋‚˜ ๋‹ค์ˆ˜์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ•˜์—ฌ ๊ฐ์ž์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ํŒ€

  • ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋™์‹œ์— ์œ ์ง€๋ณด์ˆ˜ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ

    • ์˜ˆ: ์ž„๋ฒ ๋””๋“œ ์†Œํ”„ํŠธ์›จ์–ด, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ

GitHub ํ”Œ๋กœ์šฐ๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

  • ๋น ๋ฅด๊ฒŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‹ถ์€ 1์ธ ๊ฐœ๋ฐœ์ž

  • ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์„ ๋”ฐ๋ฅด๋Š” ์†Œ๊ทœ๋ชจ ํŒ€

  • ์ง€์†์ ์ธ ๊ธฐ๋Šฅ ๊ฐœ์„ ๊ณผ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜์ด ์ค‘์š”ํ•œ ์›น ์„œ๋น„์Šค, SaaS, ๋ชจ๋ฐ”์ผ ์•ฑ ๋“ฑ ๊ฐœ๋ฐœ ์‹œ

GitLab ํ”Œ๋กœ์šฐ๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

  • GitHub ํ”Œ๋กœ์šฐ๋ฅผ ์ ์šฉํ•ด์™”์ง€๋งŒ ์—ฌ๋Ÿฌ ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๊ฒŒ ๋œ ํŒ€

  • GitLab ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ „์ฒด ์ž‘์—… ํ˜„ํ™ฉ์˜ ๊ฐ€์‹œ์„ฑ์„ ๋†’์ด๊ณ  ์‹ถ์€ ํŒ€

๋งˆ๋ฌด๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€ ๋Œ€ํ‘œ์ ์ธ Git ๋ธŒ๋žœ์น˜ ์ „๋žต 3๊ฐ€์ง€์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค๋Š”๋ฐ์š”. ์–ด๋– ์‹ ๊ฐ€์š”? ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์œ ์šฉํ•œ, ๋˜๋Š” ๊ด€์‹ฌ์ด ๊ฐ€๋Š” GIt ๋ธŒ๋žœ์น˜ ํ™œ์šฉ๋ฒ•์„ ์ฐพ์œผ์…จ๋‚˜์š”?

๋ฌผ๋ก  ์ด๋Ÿฐ ์ „๋žต ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๊ณ  ๋ฌด์กฐ๊ฑด ๊ทธ๋Œ€๋กœ ๊ณ ์ˆ˜ํ•ด์•ผ๋งŒ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

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

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

๊ทธ๋Ÿผ ๋‹ค์Œ์ฃผ์— ๋” ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

โœจ์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ๋Š” ์–ด๋– ์…จ๋‚˜์š”?

์ด๋ฒˆ ๊ธ€์—์„œ ๋‹ค๋ฃฌ ์ฃผ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.

๐Ÿ‘‰ ํ”ผ๋“œ๋ฐฑ ๋ณด๋‚ด๊ธฐ (1~2๋ถ„ ์†Œ์š”)

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์€ Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์—๊ฒŒ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ”ญAidenโ€™s Lab์—์„œ ๋” ๋งŽ์€ ์•„ํ‹ฐํด์„ ๋งŒ๋‚˜๋ณด์„ธ์š”

๋ฐœํ–‰๋œ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์•„์นด์ด๋น™ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค.