CI/CD ์ปจํ ์ด๋ํ๋ ์ปจํ ์ด๋๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒฉ๋ฆฌ๋ ํด๋์ฉ ์ฅ์น ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๋ ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ค์ฌ์ผ๋ก ํ๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ์ ์ฌ๋ก์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ์ถ์๋ฅผ ๊ฐ์ํํ ๋ฟ๋ง ์๋๋ผ ํ์ฅ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ๋ ํฅ์์์ผ ํจ์จ์ฑ์ ๊ทน๋ํํ๋ ค๋ ์กฐ์ง์ ์ด์์ ์ ๋๋ค.
์ง์์ ์ธ ํตํฉ(Continuous Integration) ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ(Continuous Distribution)๋ฅผ ๋ปํ๋ CI/CD๋ ์ฝ๋ ํตํฉ, ํ ์คํธ, ๋ฐฐํฌ ๋ฑ์ ์์ ์ ์๋ํํ์ฌ ์ํํธ์จ์ด ์ ๊ณต ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์๋ ์์ ๊ณผ ์ธ์ ์ค๋ฅ๋ฅผ ํฌ๊ฒ ์ค์ ๋๋ค. CI๋ ๋งค์ผ ์ฌ๋ฌ ๊ฐ๋ฐ์์ ์์ ์ ๊ณต์ ์ ์ฅ์์ ํตํฉํ๊ณ ์๋์ผ๋ก ํ ์คํธ๋ฅผ ์คํํจ์ผ๋ก์จ ํตํฉ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ณ ์ต์ข ์ ํ์ ํ์ง์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ฐ๋ฉด CD๋ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๋ ์ ๋ฒ์ ์ด ์ํํ๊ณ ์๊ธฐ์ ์ ํ๊ฒ ๋ฆด๋ฆฌ์ค๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ปจํ ์ด๋ํ๋ ์ปจํ ์ด๋๋ผ๊ณ ํ๋ ๊ฒฝ๋์ ์์ฒด ํฌํจ ๋จ์ ๋ด์ ์ฝ๋์ ํด๋น ์ข ์์ฑ์ ์บก์ํํ์ฌ CI/CD ํ์ดํ๋ผ์ธ์ ๋ณด์ํฉ๋๋ค. ์ด๋ฌํ ์ปจํ ์ด๋๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋๋ฏ๋ก ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๋ ๋์์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ๋ฐ์๋ ์์คํ ๋ณ ๊ตฌ์ฑ์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด ์ฝ๋ ์์ฑ์ ์ง์คํ ์ ์์ต๋๋ค. CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉ๋๋ฉด ์ปจํ ์ด๋ํ๋ ์ ์ฒด ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC)๋ฅผ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
ํ๋ ๊ธฐ์ ์ด ๋์์์ด ๋ฐ์ ํ๋ฉด์ Docker์ ๊ฐ์ ์ปจํ ์ด๋ํ ํ๋ซํผ์ด ์ ๊ณ ํ์ค์ผ๋ก ๋ฑ์ฅํ์ฌ CI/CD ํ๋ก์ธ์ค๋ฅผ ๊ฐํํ์ต๋๋ค. Docker ์ปจํ ์ด๋ ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํด๋น ์ข ์์ฑ์ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ ์ ์๋ ์ฝ๊ฒ ์ ์กํ ์ ์๋ ๋ ๋ฆฝํ ์ธ์คํด์ค๋ก ๊ฒฉ๋ฆฌํฉ๋๋ค. Kubernetes์ ๊ฐ์ ๋๊ตฌ๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ์ด์งํ์ฌ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ธ ์ปจํ ์ด๋ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Docker์ Kubernetes๋ ํจ๊ป CI/CD ํ์ดํ๋ผ์ธ์ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ ์ฒด์ธ์ ๊ตฌ์ถํฉ๋๋ค.
AppMaster ์์๋ ์ต์ ์ ์ํํธ์จ์ด ์ ๊ณต์ ์ํด CI/CD ์ปจํ ์ด๋ํ์ ๊ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ฑํํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ ์ธ์ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฐ๋ ฅํ no-code ํ๋ซํผ์ ํตํด ๊ฐ๋ฐ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ํ๋ก์ธ์ค, REST API ๋ฐ WSS endpoints ์๊ฐ์ ์ผ๋ก ์ค๊ณํ์ฌ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ์นํ์ ์ธ ๋๋๊ทธ ์ค ๋๋กญ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ์ ์ธ๋ จ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋์์ธํ๊ณ , ๊ฐ ๊ตฌ์ฑ ์์์ ๋ํ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ๊ณ , ์์ ํ ๋ํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฝ๊ฒ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
'๊ฒ์' ๋ฒํผ์ ๋๋ฅด๋ฉด AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ์ ์ํ๊ฒ ์์ฑํ๊ณ , ์ปดํ์ผํ๊ณ , ํ ์คํธ๋ฅผ ์คํํ๊ณ , ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ๊ธฐ ์ ์ Docker ์ปจํ ์ด๋(๋ฐฑ์๋๋ง ํด๋น)๋ก ํจํค์งํฉ๋๋ค. AppMaster ์์ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Go(golang), ์น ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Vue3 ํ๋ ์์ํฌ ๋ฐ JS/TS, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ Android์ฉ Kotlin ๋ฐ Jetpack Compose ๋ฐ iOS์ฉ SwiftUI ์ ํธํ๋ฉ๋๋ค. ํํธ, ์๋ฒ ์ค์ฌ ํ๋ ์์ํฌ๋ ์ฑ ์คํ ์ด์ ์ ๋ฒ์ ์ ์ ์ถํ์ง ์๊ณ ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ UI, ๋ก์ง ๋ฐ API ํค๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
AppMaster ์ ์๋ํ๋ ์์ค ์ฝ๋ ์์ฑ, ์คํ ๊ฐ๋ฅํ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ฐ ์ปจํ ์ด๋ํ ๋๋ถ์ ๊ธฐ์ ์ ์ฑ๋ฅ์ด๋ ํ์ง์ ์ ํ์ํค์ง ์๊ณ ์จํ๋ ๋ฏธ์ค ๋๋ ํด๋ผ์ฐ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ํ๋ซํผ์ ์๋ฒ endpoints ์ฉ Swagger(๊ฐ๋ฐฉํ API) ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ํ์ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ์ฌ ์ผ๊ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ๋ชจ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธํ๋๋ฏ๋ก ๊ธฐ์ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ํ์ฅ์ฑ์ ๊ฐํํฉ๋๋ค. ๋น์ฌ์ ํฌ๊ด์ ์ธ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ธฐ์กด ๋ฐฉ๋ฒ๋ณด๋ค ์ต๋ 10๋ฐฐ ๋ ๋น ๋ฅด๊ณ 3๋ฐฐ ๋ ๋น์ฉ ํจ์จ์ ์ผ๋ก ๋ง๋ค๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ๋ฐฉ์งํ๊ณ ์ ์ํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ด์งํจ์ผ๋ก์จ AppMaster ๊ฐ๋ฐ์๊ฐ ํ์ฅ ๊ฐ๋ฅํ ์ํํธ์จ์ด ์๋ฃจ์ ์ ์์ ๊ฐ ์๊ณ ์ฝ๊ฒ ๋ง๋ค๊ณ ์ ์งํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์ ๊ณ๊ฐ ์ง์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ๋ฐ์ ํจ์ ๋ฐ๋ผ CI/CD ์ปจํ ์ด๋ํ๋ ์กฐ์ง์ด ํ์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ ๊ณตํ ์ ์๋๋ก ํ๋ ์ค์ํ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ๋์์ต๋๋ค. ์ปจํ ์ด๋ํ ๊ธฐ์ ๊ณผ CI/CD ํ๋ก์ธ์ค๋ฅผ ์์ฉํ๋ AppMaster ์ ๊ฐ๋ ฅํ no-code ํ๋ซํผ์ ํ์ฉํ๋ฉด ๊ธฐ์ ์ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ ๊ธฐ๋ฅ์ด ํ๋ถํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฝ๊ฒ ๊ฐ๋ฐํ์ฌ ์ค๋๋ ๊ฒฝ์์ด ์น์ดํ ๋์งํธ ํ๊ฒฝ์์ ์ง์์ ์ธ ์ฑ๊ณต์ ๊ฑฐ๋ ์ ์์ต๋๋ค.