์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ ๋ฐฐํฌ ๊ฒ์ฆ์ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ค์ํ ํ๊ฒฝ ๋ฐ ์ธํ๋ผ ์ ๋ฐ์ ๊ฑธ์ณ ํด๋น ๊ตฌ์ฑ ์์์ ์ ํ์ฑ, ์ ํ์ฑ ๋ฐ ํจ์จ์ฑ์ ํ์ธํ๊ณ ๋ณด์ฅํ๋ ๋ฐฐํฌ ํ๋ก์ธ์ค ๋ด์์ ์ค์ํ ๋จ๊ณ์ ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๋ฐฐํฌ๋ฅผ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ์์์ ์์ฐ์ ์กฐ๋ฆฝ, ํ ์คํธ ๋ฐ ํจํค์งํ ํ์ ์ํ๋ฉ๋๋ค. ๊ฒ์ฆ์ ์ํ์ ์ํํ๊ณ ๊ณ ํ์ง ๊ฒฐ๊ณผ๋ฌผ์ ๋ฌ์ฑํ๋ฉฐ ์ผ๊ด์ฑ, ๊ท์ ์ค์ ๋ฐ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ฐ๋ฐ ํ๊ณผ ์ดํด๊ด๊ณ์๊ฐ ๋์ํ ์ฌ์ ์ ์๋ ์ฌ์, ์๊ตฌ ์ฌํญ ๋ฐ ์ฑ๋ฅ ๋ฒค์น๋งํฌ์ ๋ํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํด๋น ๊ตฌ์ฑ ์์๋ฅผ ์ํธ ์ฐธ์กฐํ์ฌ ์ํ๋ฉ๋๋ค.
๋น ๋ฅด๊ฒ ์งํํ๋ ๋์งํธ ์ํ๊ณ์์ ํ์ฅ ๊ฐ๋ฅํ๊ณ ๊ฐ๋ ฅํ ๊ฒ์ฆ ํ๋ก์ธ์ค๋ ๊ธฐ์ ๊ณผ ์กฐ์ง์ด ์ง์์ ์ผ๋ก ์ํํธ์จ์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์ต์ ํํ๊ณ , ๊ณ ๊ฐ ์ ๋ขฐ๋ฅผ ์ ์งํ๊ณ , ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ๋ค์ํ ๋ฐฐํฌ ํ๊ฒฝ์ ์ฑ๊ณต์ ์ผ๋ก ์ ์ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด ๋ณด๋ค ์ํํ ๋ฐฐํฌ์ ํจ์จ์ ์ธ ๊ฒ์ฆ ํ๋ก์ธ์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ์ด ๋น์ฉ์ ์ค์ด๊ณ ์ฌ์ฉ์ ๋ง์กฑ๋์ ๊ฒฝํ์ ํฅ์์ํค๋ ๋ฐ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์์ ์ผํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ๋ฌธ๊ฐ๋ก์ ๋ฐฐํฌ ๊ฒ์ฆ์ ๊ณ ํ์ง์ ์์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ณ ๊ฐ์๊ฒ ์ ๊ณต๋๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ค์ถ์ ์ธ ์ญํ ์ ํฉ๋๋ค. AppMaster ์ ํฌ๊ด์ ์ธ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ, ์ปดํ์ผ, ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์๋ํํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๊ตฌ ์ฌํญ์ด ์์ ๋ ๋๋ง๋ค ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๋ AppMaster ์ ๊ณ ์ ํ ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ธฐ์ ๋ถ์ฑ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก AppMaster ์ ๋ฐฐํฌ ๊ฒ์ฆ์ ๊ฐ์ํ๋๊ณ ํจ์จ์ ์ด๋ฉฐ ์๋ ๊ตฌ์ฑ ๋ฐ ์ผ๊ด๋์ง ์์ ๋ฐฐํฌ์ ๊ด๋ จ๋ ์ฅ์ ๋ฌผ์ ์ ๊ฑฐํฉ๋๋ค.
๊ฒ์ฆ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก AppMaster ์๋ฒ endpoints ์ ๋ํ Swagger(OpenAPI) ๋ฌธ์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ํ์ ์ํฐํฉํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์๋ฒ ์ํธ ์์ฉ, endpoint ๋์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฝ๊ฒ ํ ์คํธ, ํ์ธ ๋ฐ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ๋ํ ์ด ํ๋ซํผ์ ๋ชจ๋ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ์ฌ ์ํํ๊ฒ ์ํธ ์ด์ฉ๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ ๊ฒ์ฆํ ์ ์์ต๋๋ค.
์ต์ ๋ฐฐํฌ ๊ฒ์ฆ ์ ๋ต์๋ ์ผ๋ จ์ ๊ฐ๋ ฅํ ๊ธฐ์ , ๋๊ตฌ ๋ฐ ์ฌ๋ก๊ฐ ํตํฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ค ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์๋ํ๋ ํ ์คํธ: ์ธ์ ์ค๋ฅ๋ฅผ ์ํํ๊ณ ์ถ์ ๊ธฐ๊ฐ์ ๋จ์ถํ๋ฉฐ ์๋นํ ๋น์ฉ ์ ๊ฐ์ ์ด์งํ๊ธฐ ์ํด ์กฐ์ง์์๋ ๋จ์ ํ ์คํธ, ๊ธฐ๋ฅ ํ ์คํธ, ํตํฉ ํ ์คํธ ๋ฐ ์น์ธ ํ ์คํธ๋ฅผ ์ํ ๋ค์ํ ์๋ํ๋ ํ ์คํธ ์ ๋ต๊ณผ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ์๋ํ๋ ํ ์คํธ๋ ๋ฐฐํฌ ํ๋ก์ธ์ค ์ค ๋ฐ ๋ฐฐํฌ ์งํ์ ๋ชจ๋ ํธ์ฐจ, ๊ฒฐํจ ๋๋ ๋ถ์ผ์น๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ์์ ๋ง ์ญํ ์ ํฉ๋๋ค.
- CI/CD(์ง์์ ์ธ ํตํฉ ๋ฐ ์ง์์ ์ธ ๋ฐฐํฌ): ์ฌ๋ฌ ์กฐ์ง์์๋ ์ํํ๊ณ ํจ์จ์ ์ธ ๋ฐฐํฌ๋ฅผ ์ง์ํ๊ธฐ ์ํด SDLC(์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ)์ ์ผ๋ถ๋ก CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํํฉ๋๋ค. CI/CD๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌ์ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ๋น ๋ฅด๊ณ ๋ฐ๋ณต์ ์ด๋ฉฐ ์ผ๊ด๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ด์งํ๋ฏ๋ก ๋ฐฐํฌ ๊ฒ์ฆ์ ์ํ ๊ท์คํ ๋๊ตฌ์ ๋๋ค.
- ์ฑ๋ฅ ๋ฐ ๋ก๋ ํ ์คํธ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต์ ์ผ๋ก ์๋ํ๊ณ ๋ค์ํ ์์ค์ ์ฌ์ฉ์ ๋ฐ ์์คํ ๋ก๋๋ฅผ ๊ฒฌ๋ ์ ์๋์ง ํ์ธํ๋ ๊ฒ์ ๋ฐฐํฌ ๊ฒ์ฆ์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ์ฑ๋ฅ ๋ฐ ๋ก๋ ํ ์คํธ ํ๋ ์์ํฌ๋ ๋ฐฐํฌ ํ๋ก์ธ์ค์ ์ด๊ธฐ ๋จ๊ณ์์ ์ ์ฌ์ ์ธ ๋ณ๋ชฉ ํ์๊ณผ ์ต์ ํ ์์ญ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ค์ ์กฐ๊ฑด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ์ ์ ์ฑํํ๊ณ AppMasterno-code ํ๋ซํผ์ ๊ธฐ๋ฅ์ ํ์ฉํจ์ผ๋ก์จ ์กฐ์ง์ ๋ฐฐํฌ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ํ ํ์ง ๋ฐ ์ฑ๋ฅ ํ์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๋ฐฐํฌ ๊ฒ์ฆ์ ํจ์จ์ ์ธ ์ ๊ณต ๋ฐ ๋ฐฐํฌ, ์ฌ์ ์ค์, ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ณ ์ต์ข ์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํค๋ ๊ณ ํ์ง ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฌ์ฑ์ ๋ณด์ฅํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์์ ํ์์ ์ธ ๊ตฌ์ฑ ์์์ ๋๋ค. AppMaster ์ ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ์ ํตํด ์กฐ์ง์ ๋จ์ผ ์๋ฏผ ๊ฐ๋ฐ์๋ผ๋ ๋ค์ํ ๋ฐฐํฌ ํ๊ฒฝ์ ๋ง๊ฒ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๊ณ ์์ ์ ์ธ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ๊ฒ์ฆํ ์ ์๋๋ก ์ง์ํ์ฌ ๊ธฐ์ ์ ๊ฒฝ์ ์ฐ์์ ํฅ์๋ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.