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

CI/CD ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ธก๋ฉด์„ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

  • ๋ฒ„์ „ ์ œ์–ด: ์ฝ”๋“œ, ๊ตฌ์„ฑ ํŒŒ์ผ ๋ฐ ๊ธฐํƒ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์ด ์‹œ๊ฐ„์ˆœ์œผ๋กœ ๊ธฐ๋ก๋˜๊ณ  ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰, ๋น„๊ต ๋ฐ โ€‹โ€‹๋ณ‘ํ•ฉ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŒ€ ๊ตฌ์„ฑ์› ๊ฐ„์˜ ๊ณต๋™ ๊ฐœ๋ฐœ ๋ฐ ์ถฉ๋Œ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.
  • ์ข…์†์„ฑ ๊ด€๋ฆฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ข…์†์„ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ , ํŠน์ • ๋ฒ„์ „์„ ์ž ๊ทธ๊ณ , ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—…๋ฐ์ดํŠธ ์ž๋™ํ™”๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ข…์†์„ฑ ๊ด€๋ฆฌ๋Š” ๊นจ๋—ํ•˜๊ณ  ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•˜์—ฌ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜์˜ ์œ„ํ—˜์„ ์ค„์ด๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๋…ธ๋ ฅ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๊ด€๋ฆฌ: ์ฝ”๋“œ ๋ณ€๊ฒฝ๋ถ€ํ„ฐ ์‹ค์ œ ๋ฐฐํฌ๊นŒ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์›ํ™œํ•˜๊ณ  ํ†ต์ œ๋œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์Šคํ…Œ์ด์ง• ๋ฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ผ๊ด€์„ฑ์ด ํ–ฅ์ƒ๋˜๊ณ  ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ์ค„์–ด๋“ค๋ฉฐ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.
  • IaC(Infrastructure as Code): IaC๋Š” ๊ธฐ๊ณ„ ํŒ๋… ๊ฐ€๋Šฅ ์ •์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๊ณผ ๊ฐ™์€ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ธํ”„๋ผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ฝ”๋“œ๋กœ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ๋ฒ„์ „ ์ œ์–ด๋ฅผ ์ ์šฉํ•˜๊ณ  ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋ฉฐ ๋ชจ๋“  ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์ผ๊ด€๋œ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ  ์ˆ˜๋™ ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMasterno-code ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ CI/CD ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋Š” ์‹ ์†ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐ ์ œ๊ณต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ์ค‘์ถ”์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์˜ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ๊ฐ์ด ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋ฐ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ฐ์ด '๊ฒŒ์‹œ' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด AppMaster ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ๊ฐ๊ฐ Go, Vue3 ๋˜๋Š” JS/TS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปดํŒŒ์ผํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ด๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ์— ์••์ถ•ํ•˜๊ณ , ํด๋ผ์šฐ๋“œ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ„์†Œํ™”๋œ ํ”„๋กœ์„ธ์Šค๋Š” CI/CD ๊ตฌ์„ฑ ๊ด€๋ฆฌ ์›์น™์„ ์™„๋ฒฝํ•˜๊ฒŒ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜๋™ ๊ฐœ์ž…์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๊ณ ํ’ˆ์งˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

AppMaster Swagger(๊ฐœ๋ฐฉํ˜• API) ๋ฌธ์„œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ, ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ๋˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ์ž๋™ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์ž๋ž‘์Šค๋Ÿฝ๊ฒŒ ์ œ๊ณตํ•˜์—ฌ ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒญ์‚ฌ์ง„์— ๋Œ€ํ•œ ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์€ ์‹ ์†ํ•˜๊ฒŒ ํ†ตํ•ฉ, ํ…Œ์ŠคํŠธ ๋ฐ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ์ˆ ์  ๋ถ€์ฑ„๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฑด์ „ํ•œ ์ตœ์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•๋ ฅํ•œ CI/CD ๊ตฌ์„ฑ ๊ด€๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

๊ฒฐ๋ก ์ ์œผ๋กœ CI/CD ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜์ ์ธ ์ธก๋ฉด์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ’ˆ์งˆ, ๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ ๋ฐ ์ถœ์‹œ ๊ธฐ๊ฐ„ ์ธก๋ฉด์—์„œ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. AppMasterno-code ํ”Œ๋žซํผ ๋‚ด์— CI/CD ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ ๋‹ค์–‘ํ•œ ๊ณ ๊ฐ์ด ์ „๋ก€ ์—†๋Š” ์†๋„์™€ ํšจ์œจ์„ฑ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ณ ํ’ˆ์งˆ ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.