Node.js ์ž‘์„ฑ์ž๋Š” ์•ˆ์ „ํ•œ JavaScript ํ”Œ๋žซํผ Deno 1.0์„ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

XNUMX๋…„์—ฌ์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์ฒซ ๋ฒˆ์งธ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค ๋ฐ๋…ธ 1.0, ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” JavaScript ๋ฐ TypeScript์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…๋ฆฝ ์‹คํ–‰ํ˜•์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ Ryan Dahl(๋ผ์ด์–ธ ๋‹ฌ), Node.js์˜ ์ฐฝ์‹œ์ž์ž…๋‹ˆ๋‹ค. Node.js์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Deno๋Š” JavaScript ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. V8, Chromium ๊ธฐ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— Deno๋Š” Node.js์˜ ํฌํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ. ์–ด์…ˆ๋ธ”๋ฆฌ ์ค€๋น„๋œ ๋ฆฌ๋ˆ…์Šค, ์œˆ๋„์šฐ, ๋งฅOS์šฉ.

์ค‘์š”ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ OS์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋‹ด๋‹นํ•˜๋Š” Deno ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ API ์•ˆ์ •ํ™”์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค ์•ˆ์ •๋˜์ง€ ์•Š์Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ฒจ์ ธ ์žˆ์œผ๋ฉฐ "--unstable" ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋  ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ํ˜•์„ฑ๋จ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ API๋Š” ์ ์ฐจ์ ์œผ๋กœ ์•ˆ์ •ํ™”๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. setTimeout(), fetch() ๋“ฑ ๊ณตํ†ต ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ API๋Š” ๊ธฐ์กด ์›น ๋ธŒ๋ผ์šฐ์ €์˜ API์™€ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €์šฉ ์›น ํ‘œ์ค€์— ๋งž์ถฐ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์‚ฌ์šฉ๋˜๋Š” Rust์—์„œ ์ œ๊ณตํ•˜๋Š” API์™€ Deno ๋Ÿฐํƒ€์ž„์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์•„์ง ์•ˆ์ •ํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ณ„์† ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ฃผ์š” ํŠน์ง• ๋ฐ๋…ธ:

  • ๋ณด์•ˆ ์ง€ํ–ฅ ๊ธฐ๋ณธ ๊ตฌ์„ฑ. ํŒŒ์ผ ์•ก์„ธ์Šค, ๋„คํŠธ์›Œํ‚น ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฒฉ๋ฆฌ๋œ ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ๋ช…์‹œ์ ์ธ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • JavaScript ์ด์ƒ์˜ TypeScript ์ง€์›์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์œ ํ˜•์„ ํ™•์ธํ•˜๊ณ  JavaScript๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋Š” V8์˜ JavaScript ๊ตฌ๋ฌธ ๋ถ„์„์— ๋น„ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์šฐ๋ฆฌ๋Š” TypeScript ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ๋Œ€ํญ ํ–ฅ์ƒ์‹œํ‚ฌ TypeScript ์œ ํ˜• ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ์˜ ์ž์ฒด ๊ตฌํ˜„์„ ์ค€๋น„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„์€ ๋‹จ์ผ ๋…๋ฆฝ ์‹คํ–‰ ํŒŒ์ผ(โ€œdenoโ€) ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Deno๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์—…๋กœ๋“œ ํ•ด๋‹น ํ”Œ๋žซํผ์—๋Š” ํฌ๊ธฐ๊ฐ€ ์•ฝ 20MB์ธ ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ์œผ๋ฉฐ ์™ธ๋ถ€ ์ข…์†์„ฑ์ด ์—†์œผ๋ฉฐ ์‹œ์Šคํ…œ์— ํŠน๋ณ„ํ•œ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, deno๋Š” ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹ˆ๋ผ Rust์˜ ํฌ๋ ˆ์ดํŠธ ํŒจํ‚ค์ง€ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค(deno_core, Rusty_v8), ๋ณ„๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๊ณ  ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ๋•Œ URL ์ฃผ์†Œ ์ง€์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Welcome.js ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด โ€œdeno https://deno.land/std/examples/welcome.jsโ€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค์˜ ์ฝ”๋“œ๋Š” ๋กœ์ปฌ ์‹œ์Šคํ…œ์— ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ์บ์‹œ๋˜์ง€๋งŒ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด "--reload" ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•จ).
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ HTTP๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ํ”Œ๋žซํผ์€ ๊ณ ์„ฑ๋Šฅ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Deno์™€ ์ผ๋ฐ˜ ์›น ๋ธŒ๋ผ์šฐ์ € ๋ชจ๋‘์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๊ฐ€์šฉ์„ฑ ํ‘œ์ค€ ๋ชจ๋“ˆ ์„ธํŠธ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“ˆ์€ ์ถ”๊ฐ€ ๊ฐ์‚ฌ ๋ฐ ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„ ์™ธ์—๋„ Deno ํ”Œ๋žซํผ์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ํ•˜๋ฉฐ ์ฝ”๋“œ ๋‚ด์˜ URL์„ ํ†ตํ•ด ๋ชจ๋“ˆ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๋ ค๋ฉด "https://deno.land/std/log/mod.ts"์—์„œ ๋กœ๊ทธ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ *๋ฅผ ์ฝ”๋“œ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. URL์„ ํ†ตํ•ด ์™ธ๋ถ€ ์„œ๋ฒ„์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์€ ์บ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์€ URL ๋‚ด์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค(์˜ˆ: "https://unpkg.com/).[์ด๋ฉ”์ผ ๋ณดํ˜ธ]/dist/liltest.js";
  • ๊ตฌ์กฐ์—๋Š” ํ†ตํ•ฉ ์ข…์†์„ฑ ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ("deno info" ๋ช…๋ น)๊ณผ ์ฝ”๋“œ ํ˜•์‹ ์ง€์ • ์œ ํ‹ธ๋ฆฌํ‹ฐ(deno fmt)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•˜๋‚˜์˜ JavaScript ํŒŒ์ผ๋กœ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Node.js์™€์˜ ์ฐจ์ด์ :

  • Deno๋Š” npm ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฌถ์—ฌ ์žˆ์ง€ ์•Š๊ณ , ๋ชจ๋“ˆ์€ URL์ด๋‚˜ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ฃผ์†Œ๊ฐ€ ์ง€์ •๋˜๋ฉฐ, ๋ชจ๋“ˆ ์ž์ฒด๋Š” ๋ชจ๋“  ์›น์‚ฌ์ดํŠธ์— ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Deno๋Š” ๋ชจ๋“ˆ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด "package.json"์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • API ์ฐจ์ด์ , Deno์˜ ๋ชจ๋“  ๋น„๋™๊ธฐ ์ž‘์—…์€ ์•ฝ์†์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • Deno๋Š” ํŒŒ์ผ, ๋„คํŠธ์›Œํฌ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ธ๋“ค๋Ÿฌ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜์ง€ ์•Š์€ ๋ชจ๋“  ์˜ค๋ฅ˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
  • Deno๋Š” ECMAScript ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉฐ require()๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Deno์˜ ๋‚ด์žฅ HTTP ์„œ๋ฒ„๋Š” TypeScript๋กœ ์ž‘์„ฑ๋˜์–ด ๊ธฐ๋ณธ TCP ์†Œ์ผ“ ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐ˜๋ฉด, Node.js HTTP ์„œ๋ฒ„๋Š” C๋กœ ์ž‘์„ฑ๋˜์–ด JavaScript์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Deno์˜ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ „์ฒด TCP ์†Œ์ผ“ ๊ณ„์ธต์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. Deno HTTP Server๋Š” ๋‚ฎ์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ…Œ์ŠคํŠธ์—์„œ Deno HTTP ์„œ๋ฒ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ตœ๋Œ€ 25๋ฐ€๋ฆฌ์ดˆ์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์œผ๋กœ ์ดˆ๋‹น 1.3๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Node.js์—์„œ ์œ ์‚ฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ดˆ๋‹น 34๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ–ˆ์ง€๋งŒ ์ง€์—ฐ ์‹œ๊ฐ„์€ 2~300๋ฐ€๋ฆฌ์ดˆ์˜€์Šต๋‹ˆ๋‹ค.
  • Deno๋Š” Node.js(NPM)์šฉ ํŒจํ‚ค์ง€์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋‚˜ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ์ค‘๊ฐ„์ธต ํ‘œ์ค€ Node.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋จ์— ๋”ฐ๋ผ Node.js์šฉ์œผ๋กœ ์ž‘์„ฑ๋œ ๋” ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Deno์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€