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

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

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

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

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

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

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

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