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

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

์ตœ๊ทผ GitHub ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด 2์–ต ๊ฐœ๊ฐ€ ๋„˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ˆ˜๋Š” ๊ณ„์† ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 2021๋…„ ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐœ๋ฐœ์ž ์„ค๋ฌธ ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด ์•ฝ 87%์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ ๊ทน์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์˜คํ”ˆ ์†Œ์Šค ์—ฐ๊ตฌ ๋ฐ ํ˜์‹ ์„ ์œ„ํ•œ Synopsys ์„ผํ„ฐ์˜ 2020๋…„ ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ์ƒ์šฉ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ 99%์—๋Š” ์˜คํ”ˆ ์†Œ์Šค ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , 75%์—๋Š” ๊ณ ํ’ˆ์งˆ ์˜คํ”ˆ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ธ๊ธฐ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์˜ˆ๋กœ๋Š” Linux ์šด์˜ ์ฒด์ œ, Apache HTTP Server, Mozilla Firefox ์›น ๋ธŒ๋ผ์šฐ์ €, TensorFlow ๊ธฐ๊ณ„ ํ•™์Šต ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋Š” ํ•ด๋‹น ์˜์—ญ์— ์ƒ๋‹นํ•œ ์˜ํ–ฅ์„ ๋ฏธ์ณ ํ•ด๋‹น ๊ธฐ๋ฐ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ˆ˜๋งŽ์€ ํ™•์žฅ, ๋ฐฐํฌ ๋ฐ ์„œ๋น„์Šค์˜ ์ถœํ˜„์œผ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

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

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

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

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

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