π section03-nodeJs-basic
π’ Node.js
- Node.jsλ JavaScriptμ μ€ν νκ²½μ΄λ€.
- ν¨ν€μ§(package)λ Node.jsμμ μ¬μ©νλ νλ‘κ·Έλ¨μ λ¨μμ΄λ©°, npm init λλ npm init -y λͺ λ Ήμ΄λ‘ μλ‘μ΄ ν¨ν€μ§λ₯Ό μ΄κΈ°νν μ μλ€.
- package.jsonμ “scripts” νλͺ©μ μ€ν¬λ¦½νΈλ₯Ό μ€μ νλ©΄ λ§€ν¬λ‘μ²λΌ μ¬μ©ν μ μμΌλ©°, 볡μ‘ν κ²½λ‘μ μλ νμΌλ μ€μ ν λͺ λ Ήμ΄λ‘ κ°νΈνκ² μ€νν μ μλ€.
π¦ λͺ¨λ μμ€ν
- λͺ¨λ μμ€ν (Module System)μ λͺ¨λμ λ€λ£° μ μλ μμ€ν μ΄λ€. μ¬λ¬ κΈ°λ₯μ ꡬνν λ κΈ°λ₯λ³λ‘ νμΌμ λλμ΄ κ°λ°νκ² λλ©°, μλ₯Ό λ€μ΄ user.js, cart.js, payment.jsμ²λΌ ꡬμ±ν μ μλ€. μ΄ μ€ νλμλ§ μ€λ₯κ° λ°μν΄λ ν΄λΉ νμΌλ§ μμ νλ©΄ λλ―λ‘ μ μ§λ³΄μκ° νΈλ¦¬νλ€.
- μ΄μ²λΌ κΈ°λ₯λ³λ‘ λλμ΄μ§ κ°κ°μ js νμΌλ€μ λͺ¨λ(Module)μ΄λΌκ³ λΆλ₯Έλ€.
- user.js → user λͺ¨λ
- cart.js → cart λͺ¨λ
- payment.js → payment λͺ¨λ
- μ)
- λͺ¨λμ μμ±νκ³ λΆλ¬μ€κ³ μ¬μ©νλ λ±μ λ€μν κΈ°λ₯μ μ 곡νλ 체κ³λ₯Ό λͺ¨λ μμ€ν (Module System)μ΄λΌκ³ νλ€.
- λͺ¨λ μμ€ν
μ μ’
λ₯λ λ€μκ³Ό κ°λ€:
- CommonJS(CJS):
- module.exports νλ‘νΌν°μ λ΄λ³΄λΌ κ°μ κ°μ²΄ μμ λ΄μ λ΄λ³΄λΈλ€.
- λ΄μ₯ ν¨μ require()λ₯Ό μ¬μ©ν΄ ν΄λΉ κ²½λ‘μμ λ΄λ³΄λΈ λͺ¨λ κ°μ²΄λ₯Ό λΆλ¬μ¨λ€.
- ES Module(ESM):
- package.jsonμ "type": "module" μ΅μ μ μ€μ νλ©΄ ES Module Systemμ μ¬μ©νκ² λ€λ μλ―Έκ° λλ€.
- μ΄ μ€μ μ νλ©΄ ν΄λΉ ν¨ν€μ§λ ES Moduleμ μ¬μ©νκ² λλ©°, CommonJSμ ES Moduleμ ν¨κ» μ¬μ©ν μ μκΈ° λλ¬Έμ CommonJSλ μ¬μ©ν μ μκ² λλ€.
- CommonJS(CJS):
Node.js λΌμ΄λΈλ¬λ¦¬ μ¬μ©
- package.jsonμ “dependencies” νλͺ©μλ μ€μΉλ λΌμ΄λΈλ¬λ¦¬μ ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ λ²μ μ λ³΄κ° μμ±λλ€.
- package-lock.jsonμ ν¨ν€μ§κ° μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬λ€μ λ²μ λ° μ 보λ₯Ό package.jsonλ³΄λ€ λ μ ννκ³ μλ°νκ² μ μ₯νλ νμΌμ΄λ€. package.jsonμλ "^0.6.2"μ²λΌ λλ΅μ μΈ λ²μ μ΄ νκΈ°λμ§λ§, package-lock.jsonμλ μ€μ λ‘ μ€μΉλ μ νν λ²μ μ λ³΄κ° λͺ μλλ€.
- node_modulesλ μ€μΉν λΌμ΄λΈλ¬λ¦¬λ€μ΄ μ€μ λ‘ μ μ₯λλ λλ ν°λ¦¬μ΄λ€.