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

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

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

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

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

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

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

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