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

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

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

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

์‹œ์žฅ์—๋Š” Spring Boot, Vert.x, Lagom ๋“ฑ ๋‹ค์–‘ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„€์‹œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์ƒํƒœ๊ณ„์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์€ ํŠน์ • ๊ธฐ์ˆ  ์Šคํƒ, ์š”๊ตฌ ์‚ฌํ•ญ ๋ฐ ์ „๋ฌธ ์ง€์‹์— ๋”ฐ๋ผ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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