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

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

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

CI/CD ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์˜ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด ์ œ๊ณต ํŒŒ์ดํ”„๋ผ์ธ์˜ ํƒ„๋ ฅ์„ฑ์„ ๋†’์ด๋Š” ์ „๋žต์„ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

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

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

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