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

2009๋…„ Ryan Dahl์ด ์‹œ์ž‘ํ•œ Node.js๋Š” ์ฒ˜์Œ์— Google Chrome์˜ V8 JavaScript ์—”์ง„ ์œ„์— ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  ํ•„์ˆ˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‘์— ๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ธ JavaScript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ์‹ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋น„์ฐจ๋‹จ ํ™˜๊ฒฝ์ธ Node.js๋Š” ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

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

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

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

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

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

Node.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ๋˜ํ•œ IBM, Microsoft ๋ฐ Intel๊ณผ ๊ฐ™์€ ๊ฑฐ๋Œ€ ๊ธฐ์ˆ  ๊ธฐ์—…์˜ ๊ธฐ์—ฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ƒํƒœ๊ณ„์˜ ํ˜œํƒ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ๋ฒˆ์„ฑํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Node.js๊ฐ€ ๊ด€๋ จ์„ฑ ์žˆ๊ณ  ์ตœ์‹ ์ด๋ฉฐ ๊ฐ•๋ ฅํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๋ณด์žฅํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ˜์‹ ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋„๊ตฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ์„ ์ž๋ž‘ํ•˜๋ฉฐ AWS, Microsoft Azure ๋ฐ Google Cloud Platform๊ณผ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๊ณผ ํ˜ธํ™˜๋˜๋ฏ€๋กœ ๊ธฐ์—…์ด ์„ ํ˜ธํ•˜๋Š” ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜์— ๋งž์ถฐ ์กฐ์ •ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์›Œํฌ๋กœ๋“œ์— ํšจ์œจ์ ์œผ๋กœ ์ ์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ™•์žฅ์„ฑ ์šฉ๋Ÿ‰์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ์ฆ๊ฐ€ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ๊ณผ ์ˆ˜์š”๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋ฏ€๋กœ ๊ธฐ์—… ๋ฐ ๊ณ ๋ถ€ํ•˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

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