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

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

State of DevOps Report์— ๋”ฐ๋ฅด๋ฉด, CI ๊ด€ํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ณ ์„ฑ๋Šฅ ์กฐ์ง์€ ์ €์„ฑ๊ณผ ์กฐ์ง์— ๋น„ํ•ด ์ฝ”๋“œ ๋ฐฐํฌ ๋นˆ๋„๊ฐ€ 208๋ฐฐ, ์ปค๋ฐ‹์—์„œ ๋ฐฐํฌ๊นŒ์ง€์˜ ๋ฆฌ๋“œ ํƒ€์ž„์ด 106๋ฐฐ, ์‚ฌ๊ณ  ๋ณต๊ตฌ ์†๋„๊ฐ€ 2604๋ฐฐ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋“ค ์กฐ์ง์€ ๋ณ€๊ฒฝ ์‹คํŒจ์œจ์ด 7๋ฐฐ๋‚˜ ๋‚ฎ๋‹ค๊ณ  ๋ณด๊ณ ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์žˆ์–ด CI์˜ ํšจ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

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

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

๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ๊ณ ๊ฐ์—๊ฒŒ ์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ƒํƒœ๊ณ„์—์„œ CI๋Š” ๊ณ ํ’ˆ์งˆ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์›ํ™œํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์‹œ๊ธฐ์ ์ ˆํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์˜ ๋ฐฑ์—”๋“œ๋Š” Go(golang)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋˜๊ณ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ JS/TS๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Android์šฉ Kotlin ๋ฐ Jetpack Compose, iOS์šฉ SwiftUI ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ฒญ์‚ฌ์ง„์„ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ ๊ฐ์€ AppMaster ์˜ ์ตœ์ฒจ๋‹จ no-code ํ”Œ๋žซํผ์„ ํ†ตํ•ด ๋‹จ 30์ดˆ ๋‚ด์— ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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