ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Node.js] Node.js์˜ ์ •์˜์™€ ํŠน์ง•
    ๐Ÿ“˜ Node.js 2024. 10. 30. 15:40

    โญ Node.js๋ž€?

    Node.js๋Š” ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ JavaScript๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

     

    ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์ •์˜ํ•˜๋Š” Node.js๋Š”

    "V8 JavaScript ์—”์ง„์œผ๋กœ ๋นŒ๋“œ ๋œ JavaScript ๋Ÿฐํƒ€์ž„" ์ด๋ผ๊ณ  ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

     

    ์ด ๋ง์€ ์ฆ‰, Node.js๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ๋„ JavaScript๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ JavaScript๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ์‹คํ–‰๋˜์–ด ์›น ํŽ˜์ด์ง€์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜์ง€๋งŒ,

    Node.js๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์—์„œ๋„ JavaScript๊ฐ€ ์„œ๋ฒ„ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

     

    Node.js๊ฐ€ V8 ์—”์ง„์„ ์ฑ„ํƒํ•œ ์ด์œ ๋Š” ์ด ์—”์ง„์ด JavaScript ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ

    ์‹คํ–‰ ์†๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ๋†’์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    V8 ์—”์ง„์€ ๋ณธ๋ž˜ Chrome ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ JavaScript์˜ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ฒƒ์œผ๋กœ,

    Node.js๋Š” ์ด ์—”์ง„์„ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์ตœ๋Œ€ํ•œ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ  ๋น ๋ฅธ ์‘๋‹ต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ V8 ์—”์ง„ ๋•๋ถ„์— Node.js๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„œ JavaScript๋กœ ๋‹ค์–‘ํ•œ ์„œ๋ฒ„ ์š”์ฒญ์„ ๊ณ ์„ฑ๋Šฅ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์ €๋˜ํ•œ ๊ทธ๋ ‡๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Node.js๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜์˜€์„ ๋•Œ๋Š”, Node.js๋ฅผ ์–ธ์–ด๋กœ ์˜คํ•ดํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ทธ ์ด์œ ๋Š” ์ฃผ๋กœ Node.js๊ฐ€ JavaScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

     

    ์ •๋ฆฌํ•˜์ž๋ฉด, Node.js๋Š” JavaScript ์–ธ์–ด๋ฅผ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋ฉฐ,

    JavaScript๋Š” ์—ฌ์ „ํžˆ Node.js ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

    Node.js๋Š” ์–ธ์–ด๊ฐ€ ์•„๋‹Œ, JavaScript์˜ ์„œ๋ฒ„ ์ธก ์‹คํ–‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋„๊ตฌ์ด์ž ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

     

     

    ๋Ÿฐํƒ€์ž„์ด๋ž€?

     

    JavaScript์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. JavaScript๋Š” ์ž์ฒด์ ์œผ๋กœ ์‹คํ–‰์ด ์•ˆ๋˜๋ฉฐ,

    ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด ์žˆ์–ด์•ผ๋งŒ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

    Node.js์˜ ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

     

    ๐Ÿ’ก Node.js์˜ ์žฅ์ 

     

    1. ๋น ๋ฅธ ์‹คํ–‰

    Node.js๋Š” Google์˜ V8 ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ JavaScript ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ์ฆ‰์‹œ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๋•๋ถ„์— ํ”„๋กœ๊ทธ๋žจ์ด ์‹ ์†ํ•˜๊ฒŒ ์‹คํ–‰๋˜๋ฉฐ, ๋†’์€ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ๊ทธ๋ž˜์„œ ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŠนํžˆ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

     

    2. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ชจ๋ธ

    Node.js๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ, ๋น„๋™๊ธฐ์ ์œผ๋กœ I/O ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋Š” CPU๊ฐ€ ์ž‘์—…์„ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋ฉฐ, ์ˆ˜๋งŽ์€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

     

    3. ๋‹จ์ผ ์–ธ์–ด ์‚ฌ์šฉ

    ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๋ชจ๋‘์—์„œ JavaScript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด,

    ๊ฐœ๋ฐœ์ž๋Š” ํ•˜๋‚˜์˜ ์–ธ์–ด๋กœ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

     

    4. ํ’๋ถ€ํ•œ ํŒจํ‚ค์ง€ ์ƒํƒœ๊ณ„

    Node.js๋Š” npm์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ˆ˜๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€

    ๋ชจ๋“ˆ์„ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์†์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    npm์ด๋ž€?

    node package manager์˜ ์ค„์ž„๋ง๋กœ Node.js์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

    ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌ, ์˜์กด์„ฑ ๊ด€๋ฆฌ, ๊ณต์œ  ๋ฐ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ npm์„ ์‚ฌ์šฉํ•˜๋ฉด

    Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ด ํ›จ์”ฌ ๋” ์‰ฝ๊ณ  ํšจ์œจ์ ์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

     

    5. ํ™•์žฅ์„ฑ

    Node.js๋Š” ์ˆ˜๋งŽ์€ ๋™์‹œ ์—ฐ๊ฒฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด, ๊ณ ๊ฐ€์šฉ์„ฑ ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

    ๋˜ํ•œ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜์—ฌ ์œ ์—ฐํ•œ ์‹œ์Šคํ…œ ์„ค๊ณ„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๊ทธ๋Ÿผ ๋ฐ˜๋Œ€๋กœ ๋‹จ์ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…๋“œ๋ฆฌ์ž๋ฉด...

     

    ๐Ÿ’ก Node.js์˜ ๋‹จ์ 

     

    1. CPU ์ง‘์•ฝ์ ์ธ ์ž‘์—…์˜ ํ•œ๊ณ„

    Node.js๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, CPU ์ž์›์„ ๋งŽ์ด ์š”๊ตฌํ•˜๋Š” ์ž‘์—…์—๋Š” ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๋ณต์žกํ•œ ๊ณ„์‚ฐ์ด๋‚˜ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ™์€ ์ž‘์—…์€ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    2. ์ฝœ๋ฐฑ ์ง€์˜ฅ

    ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์ค‘์ฒฉ๋  ๊ฒฝ์šฐ

    ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋กœ ์ธํ•ด ๋””๋ฒ„๊น…๊ณผ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    3. ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ

    ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ์ดˆ๊ธฐ ํ•™์Šต ๊ณก์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŠนํžˆ, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์— ์ ์‘ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    4. ์„ฑ์ˆ™ํ•˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€

    npm์—๋Š” ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ ๊ฒ€์ฆ๋œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

    ๋•Œ๋กœ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํŒจํ‚ค์ง€๋กœ ์ธํ•ด ๋ณด์•ˆ ๋ฌธ์ œ๋‚˜ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

     

    5. ์—๋Ÿฌ ์ฒ˜๋ฆฌ์˜ ๋ณต์žก์„ฑ

    ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์—์„œ๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

     

     

    Node.js๋Š” ํŠน์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ๋Š” ์—„์ฒญ๋‚œ ์ธ๊ธฐ๋ฅผ ๋Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค!

    ๋‹ค๋งŒ, ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ์˜ ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ์„ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ์— ๋‹จ์ ๋„ ๊ฐ™์ด ์ ์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค

    ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ์ ์ ˆํ•œ ๊ธฐ์ˆ  ์Šคํƒ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋จผ์ €๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

Designed by Tistory.