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

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

์„ฑ๊ณต์ ์ธ CI/CD ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ํฌ๊ด„์ ์ธ ํ…Œ์ŠคํŠธ ์ œํ’ˆ๊ตฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ผ๋ จ์˜ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์˜ ํ•„์š”์„ฑ์„ ์ค„์ด๊ณ  ์ „๋‹ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์†ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitLab์ด ์‹ค์‹œํ•œ ์ตœ๊ทผ โ€‹โ€‹์„ค๋ฌธ ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด ๊ฐœ๋ฐœ์ž์˜ 35%๊ฐ€ ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ์ง๋ฉดํ•œ ๊ฐ€์žฅ ํฐ ๊ณผ์ œ ์ค‘ ํ•˜๋‚˜๋กœ ๋” ๋‚˜์€ ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๊ฐ•์กฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Standish Group์˜ ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ๋ถ€์ ์ ˆํ•œ ํ”„๋กœ์ ํŠธ๋Š” ๊ฒฐ๊ตญ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด 10๋ฐฐ ๋” ๋†’์œผ๋ฉฐ, ์ด๋Š” ์„ฑ๊ณต์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์žˆ์–ด ์ด ์š”์†Œ์˜ ์ค‘์š”์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

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

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

์˜ˆ๋ฅผ ๋“ค์–ด AppMaster ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Golang, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ JS/TS, Android ๋ฐ iOS ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Kotlin, Jetpack Compose ๋ฐ SwiftUI ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์€ Go์˜ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ๋‚ด์žฅ ํ…Œ์ŠคํŠธ ํŒจํ‚ค์ง€, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Jest ๋ฐ Vue Test Utils, iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ XCTest ๋“ฑ ๋‹ค์–‘ํ•œ ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„ ๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

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

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