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

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

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

CI/CD ๋„๊ตฌ๋Š” ํšจ์œจ์ ์ธ ๋ฐฐํฌ ๋ฐ ํ†ตํ•ฉ ๊ด€ํ–‰์„ ์ด‰์ง„ํ•˜์—ฌ ์˜ค๋ฅ˜ ์œ„ํ—˜ ๋ฐ ์ƒ์‚ฐ ์ค‘๋‹จ ์‹œ๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค. ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” CI/CD ๋„๊ตฌ๋กœ๋Š” Jenkins, GitLab, Bamboo, Travis CI ๋ฐ CircleCI๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ(Git, SVN, Mercurial), ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ(Ant, Maven, Gradle) ๋ฐ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ(JUnit, TestNG, Selenium)์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋˜์–ด ํฌ๊ด„์ ์ธ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CI/CD ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜๋™ ๊ฐœ์ž… ๋ฐ ์ธ์  ์˜ค๋ฅ˜ ๊ฐ์†Œ
  • ๋ฌธ์ œ์˜ ์กฐ๊ธฐ ๊ฐ์ง€ ๋ฐ ํ•ด๊ฒฐ
  • ํŒ€ ๋‚ด ํ˜‘์—… ๋ฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ฐœ์„ 
  • ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฅธ ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ
  • ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ ๋ฐ ๊ณ ๊ฐ ๋งŒ์กฑ๋„ ํ–ฅ์ƒ

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

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

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