[κΈ°λ³Έ μ§μ] Node.jsλ?
μμ¦ νΈλλλ₯Ό λΆμνκΈ° μν΄ κ³΅κ³ λ₯Ό 보λ€κ° λ°±μλ κ°λ°μμ νμ μ€ν¬ μ€ "Node.js" μ λν΄ λ무 λ§μ΄ λ΄€λ€.
κ·Έλμ, Node.js κ° λλ체 λλ°? νκ³ λ무 κΆκΈν΄μ μ°Ύμλ΄€λ€.
Node.jsμ 곡μ ννμ΄μ§ μ λ°λ₯΄λ©΄,
Node.jsλ Chrome V8 JavaScript μμ§μΌλ‘ λΉλλ JavaScript λ°νμμ΄λ€.
λΌκ³ μ μνκ³ μμ§λ§, μ¬μ€ λ λ»μΈμ§ λͺ¨λ₯΄κ² λ€...
μ μλ λ€λ‘νκ³ , Node.jsλ‘ μλ²λ₯Ό λ§λ€μ μλλ°
μ ? Node.jsλ‘ μλ²λ₯Ό λ§λλμ§μ λν΄ λΆμνλ©°, μ‘°κΈ μ΄ Node.js μ λν΄ μκ² λμλ€.
μ ? Node.jsλ‘ μλ²λ₯Ό λ§λ€κΉ?
μ°λ¦¬λ μλΉμ€λ₯Ό ꡬνν λ λμ©λ νΈλν½μ μμ£Ό κ²½ννκ² λλ€.
μλ§μ κ³ κ°μ μμ²μ ν λ²μ λ°μ κ±°μ λμμ, μ¦ μμμ μκ΄μμ΄ μ²λ¦¬ν΄μΌ νλ€.
μ΄λ μ¬μ©ν μ μλ Node.jsμ νΉμ§μ΄ λ°λ‘ Non-Blocking I/O λ€.
μ¦, λ§ κ·Έλλ‘ ν΄μν΄λ³΄λ©΄ μ무κ²λ λ§μ§ μλ μ
μΆλ ₯μ μ§μνλ€λ κ²μ΄λ€.
Node.jsμ μ₯μ
1. μ€μκ° μμ² μλΉμ€μ μλκ° λΉ λ₯΄λ€
2. μ½λκ° μ½κ³ λ§€μ° μ§§λ€
3. μμ μ±, 보μμ±μ΄ μ’λ€
Node.jsλ SNSλ μ±ν μλΉμ€μ κ°μ μλΉμ€λ₯Ό ꡬνν λ λ§μ΄ μ¬μ©λλ€.
μ΄λ° μλΉμ€λ€μ μμμ λ§νλ€μΆμ΄ μμ²μ΄ μμ£Ό λ§μ μλΉμ€μ΄λ€.
μΌλ°μ μΈ μλ²λ₯Ό ν΅ν΄μ ꡬννκ² λλ©΄ μμ²μ΄ μμ£Ό λ§κ±°λ, μ€λ걸리λ μμ²μ λ°μμ λ λ©μΆκ±°λ λκΈ°μκ°
μ¦, λ‘λ©μ΄ μ€λ 걸릴 μ μλ€.
μ΄λ, Node.js μλ²λ‘ ꡬννκ² λλ©΄ Non-blocking λλΆμ λ©μΆκ±°λ μμ² λκΈ°μκ°μ΄ λ°μνμ§ μλλ€.
λν, Node.jsλ μ½λκ° λ§€μ° μ§§κ³ μ¬μμ λΉ λ₯΄κ³ μ½κ² κ°λ°μ΄ κ°λ₯νλ€.
κ°μλ λ§μ§λ§, ν¬κΈ°κ° μμ λ°μ΄ν°λ₯Ό μ€μκ°μΌλ‘ μ£Όκ³ λ°λλ° μ ν©νκΈ° λλ¬Έμ
μ€μκ°μΌλ‘ λ°λ‘ λ°μλμ΄μΌ νλλ
Έλλ₯Ό λ§μ΄ μ¬μ©νκ² λλ€.
Node.jsμ λ¨μ
νλμ μ°λ λ μμμ λͺ¨λ μμ μ μ²λ¦¬νλ€.
νμ§λ§, μ΄λ κ² μ₯μ μ΄ μλ λ°λ©΄, λ¨μ λ μ‘΄μ¬νλ€.
Node.jsλ λͺ¨λ νλμ μ°λ λ μμμ μ²λ¦¬λλ€.
μ½λκ° CPUμ°μ°μ λ§μ΄ μꡬνκ² λλ©΄ μ°λ λ νλκ° κ°λΉνκΈ°κ° μ΄λ €μμ§λ€.
κ·Έλ κ² λλ©΄, μ΄λ―Έμ§λ λΉλμ€ λλ λκ·λͺ¨ λ°μ΄ν° μ²λ¦¬ κ°μ΄ CPUλ₯Ό κ΅μ₯ν λ§μ΄ μ¬μ©νλ μμ μλ μ ν©νμ§ μλ€.
μ Node.jsμ μμκ° λ§μμ§λκ°?
κΈ°λ³Έ μ μμμλ μ μ μλ€μΆμ΄ Node.jsλ JavaScriptλ₯Ό νμ©ν΄μΌ νλ€.
μ¦, Node.jsλ₯Ό νμ΅νλ€λ κ²μ JavaScriptλ₯Ό λ₯μνκ² νμ©ν μ€ μλ€λ 건λ°,
κ·Έλ λ€λ건 μλ²(=λ°±μλ) λΏ μλλΌ νλ‘ νΈμλ μμλ μ½κ² νμ νκ³ νμ€ν κ°λ°μλ‘μμ μ±μ₯μ΄ μ½λ€λ κ²μ μλ―Ένλ€.
Node.jsμ ν¨κ» νμ΅νλ©΄ μ’μ μΈμ΄ λ° νλ μμν¬
1. Express.js
Express λ Node.jsμ μΉ μ ν리μΌμ΄μ
κ°λ°μ μν κ°μ₯ κ°λ¨νλ©΄μλ κ°λ ₯ν νλ μμν¬ μ€ νλλ€.
μ½κ² λ§ν΄ Node.jsλ‘ μ½κ² μλ²λ₯Ό λ§λ€ μ μκ² ν΄μ£Όλ ν΄λμ€μ λΌμ΄λΈλ¬λ¦¬λ€μ λͺ¨μλμ νλ μμν¬μ΄λ€.
κ°λ¨ν μΉ μλΉμ€λ₯Ό λΉ λ₯΄κ² ꡬμΆνκ³ μΆμ λ μ ννμ¬ μ¬μ©νλ©΄ μ’λ€.
2. TypeScript
νμ
μ€ν¬λ¦½νΈλ JavaScriptμ νμ₯ λ²μ μΌλ‘, μ μ νμ
μμ€ν
μ μ 곡νλ€.
μ μ νμ
μμ€ν
μ μ½λ μμ± μ€ λ°μν μ μλ μ€λ₯λ₯Ό μ€μ΄κ³ , μ μ§λ³΄μλ₯Ό μ©μ΄νκ² νλ€.
λκ·λͺ¨ νλ‘μ νΈλ μλ²μμ κ°λ°μ΄ μ΄λ£¨μ΄μ§λ 볡μ‘ν νλ‘μ νΈμμ μ μ©νκ² μ¬μ©ν μ μλ€.
3. Next.js
Next.jsλ TypeScriptλ₯Ό κΈ°λ°μΌλ‘ ν νλ μμν¬μ΄λ€.
Node.js μΉ μ ν리μΌμ΄μ μ ꡬ쑰μ μ΄κ³ λͺ¨λνλ λ°©μμΌλ‘μ κ°λ°μ λμμ€λ€. Next.jsμ λͺ¨λ μμ€ν μ μ½λμ κ°λ μ±κ³Ό
μ μ§ λ³΄μμ±μ λμ¬ μ£ΌκΈ° λλ¬Έμ λν νλ‘μ νΈλ₯Ό κ΄λ¦¬ν λ μ΄μμ μΈ λꡬμ΄λ€.