ALOHA CLASS
/
Back-End
/
Node.js
Search
Duplicate
Share
Node.js
NodeJS κΈ°μ΄
Node.js_TJE
ALOHA-CLASS
Node.js μ€μΉ
Node.js μ€μΉ #Node.js #λ Έλμ€μΉ
μ€μΉ λ° κ°λ°νκ²½
Node.js μ€μΉ
Overview
β’
λ€μ΄λ‘λ
β’
μ€μΉ
β’
μ€μΉνμΈ
Node.js μ€μΉ
npm λ²μ μ λ°μ΄νΈ
npm λ²μ μ λ°μ΄νΈ νλ λ°©λ²μ μμλ΄ λλ€.
npm μ΄λ?
npm μ¬μ΄νΈμμ νμν ν¨ν€μ§λ€μ κ²μνκ³ μ€μΉ λ° κ°μ΄λλ₯Ό νμΈν μ μμ΅λλ€.
npm | Home
npm | Home
npm λ²μ μ λ°μ΄νΈ
Node μμνκΈ°
β’
CMD μμ node μ€ν
β’
VSCODE ν°λ―Έλ μμ μ€ν
β’
Node.js μ’ λ£
β’
μλ°μ€ν¬λ¦½νΈ(js) νμΌ μ€ν
CMD μμ node μ€ν
Node μμνκΈ°
Node.js ν΅μ¬κ°λ
β’
μ±κΈ μ€λ λ (Single-Threaded)
β’
λ ΌλΈλ‘νΉ I/O (Non-Blocking I/O)
β’
μ΄λ²€νΈ κΈ°λ° (Event-Driven)
β’
npm (Node Package Manager)
β’
V8 μμ§
μ±κΈ μ€λ λ (Single-Threaded)
β’
Node.jsλ κΈ°λ³Έμ μΌλ‘ μ±κΈ μ€λ λ λͺ¨λΈμ μ±ννκ³ μμ΅λλ€. μ΄λ νλμ μ£Όμ μ€λ λμμ μ΄λ²€νΈ 루νλ₯Ό ν΅ν΄ λͺ¨λ μμ μ μ²λ¦¬νλ€λ κ²μ μλ―Έν©λλ€.
β’
μ΄λ κ°λ¨ν ꡬ쑰λ₯Ό κ°μ§κ³ μμ΄ κ°λ°μκ° λ³΅μ‘ν λκΈ°ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μ½κ² λ§λλλ€.
Node.js ν΅μ¬κ°λ
Node νλ‘μ νΈ .gitignore
Nodeλ‘ λ§λ νλ‘μ νΈλ node_modules λλ¬Έμ μμ² λ§μ λ³κ²½ μ¬νμ΄ λ°μνλ€. npm install ν 2K, 4K μλ‘ μμ² λ§μ λ³κ²½ μ¬ν μΉ΄μ΄νΈκ° λ¬λ€.
κ·Έλ¬λ μ΄κ±Έ λ€ github μ μ¬λ¦΄ νμλ μλ€. package.json μ μμ‘΄μ±μ΄ μμΌλ clone, λλ pull μ λ°κ³ npm install μ νλ©΄ λλ€.
μ΄λ₯Ό github μ μ¬λ¦¬μ§ μκΈ° μν΄μλ .gitignore νμΌ(λ³κ²½ μ¬νμ 무μν νμΌλ€μ μ€μ νλ νμΌ)μ μ§μ ν΄μΌνλ€.
Node.js νλ‘μ νΈ - .gitignore
ECMAScript
ECMAScript
ECMAScriptλ μ€ν¬λ¦½νΈ μΈμ΄μΈ JavaScriptμ νμ€ κ·κ²©μ μ μνλ κ·κ²©μ λλ€.
μλ°μ€ν¬λ¦½νΈμ λ²μ μ λνλ΄λ μ΄λ¦μ΄λΌκ³ μκ°ν΄λ μ’μ΅λλ€. μ€μ λ‘, ECMAScriptλ μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έμ μΈ λμ, λ°μ΄ν° νμ , κ°μ²΄, λ¬Έλ² λ±μ μ μν©λλ€.
μ¬λ¬ λΈλΌμ°μ μ JavaScript μμ§μ ECMAScript νμ€μ λ°λ₯΄λ©°, μλ‘μ΄ ECMAScript λ²μ μ΄ λμ¬ λλ§λ€ μ΄λ₯Ό ꡬννμ¬ λΈλΌμ°μ μ λ°νμ νκ²½μμ κ°λ°μκ° μ΅μ μ μΈμ΄ κΈ°λ₯μ μ¬μ©ν μ μλλ‘ ν©λλ€.
ECMAScript ν΅ν΄ JavaSscript μΈμ΄μ νμ€μ μ μνκ³ , λΈλΌμ°μ (chrome, edge, firefox λ±) λ° JavaScript μμ§μ΄ μ΄μ λ§μΆ° κ°κ° λΈλΌμ°μ μ λ°νμ νκ²½μμ ECMAScript λΌλ νμ€μΌλ‘ λμν μ μλλ‘ κΈ°μ€μ μ μν©λλ€. μ΄μ λ°λΌ κ°λ°μλ€μ λΈλΌμ°μ λ° λ°νμ νκ²½μ ν΅ν΄, ECMAScript νμ€μ λ°λ₯Έ JavaScript μΈμ΄μ μ΅μ κΈ°μ μ μ¬μ©ν μ μμ΅λλ€.
λ°νμ νκ²½?
: νλ‘κ·Έλ¨μ΄ μ€νλλ λμμ μ»΄ν¨ν° νκ²½μ μλ―Έν©λλ€. μ΄λ μ΄λ€ νλ‘κ·Έλ¨μ΄λ μ€ν¬λ¦½νΈκ° μ€νλ λ, ν΄λΉ νλ‘κ·Έλ¨μ΄ νμλ‘ νλ μ¬λ¬κ°μ§ 리μμ€μ μλΉμ€λ₯Ό μ 곡νλ νκ²½μ λ§ν©λλ€.
ECMAScript
AJAX(Asynchronous JavaScript and XML)
λΉλκΈ° μμ²
λκΈ°μ
μμ² ν, μλ΅μ΄ μ¬ λκΉμ§ κΈ°λ€λ¦°λ€.
λΉλκΈ°μ
μμ² ν, μλ΅μ κΈ°λ€λ¦¬μ§ μκ³ λ€μ μμ²μ λ νλ€.
λΉλκΈ° μμ²
XMLHttpRequest
XMLHttpRequest
λ λΈλΌμ°μ μμ μ 곡νλ κ°μ²΄λ‘, λΉλκΈ°μ μΌλ‘ μλ²μ ν΅μ ν μ μλλ‘ λμμ€λλ€. μ΄κΈ°μ μ£Όλ‘ μ¬μ©λμμΌλ, μ½λ°± μ§ν₯μ μ΄κ³ 볡μ‘ν API κ΅¬μ‘°λ‘ μΈν΄ κ°λ μ±μ΄ λ¨μ΄μ§λ λ¨μ μ΄ μμ΅λλ€.
μ£Όμ μμ± λ° λ©μλ
XMLHttpRequest
fetch
JavaScriptμμ μ 곡νλ API μ€ νλλ‘, λ€νΈμν¬ μμ²μ λ§λ€κ³ μλ΅μ λ€λ£° μ μκ² ν΄μ£Όλ κΈ°λ₯μ μ 곡ν©λλ€.
fetch
APIλ Promiseλ₯Ό κΈ°λ°μΌλ‘ λμνλ©°, λΉλκΈ°μ μΌλ‘ λ€νΈμν¬ μμ²μ μ²λ¦¬ν μ μμ΅λλ€.
fetch() λ μλ°μ€ν¬λ¦½νΈμ λΈλΌμ°μ λ΄μ₯ ν¨μλ‘, λ€νΈμν¬μμ 리μμ€λ₯Ό κ°μ Έμ€λ λμμ κ°κ²°νκ² ννν©λλ€.Β fetch() ν¨μλ:
β’
첫 λ²μ§Έ μΈμλ‘ URLμ λ°μ΅λλ€.
β’
λ λ²μ§Έ μΈμλ‘ μ΅μ κ°μ²΄λ₯Ό λ°μ΅λλ€.
β’
Promise νμ μ κ°μ²΄λ₯Ό λ°νν©λλ€.
λ°νλ κ°μ²΄λ:
β’
API νΈμΆμ΄ μ±κ³΅νμ κ²½μ°μλ μλ΅(response) κ°μ²΄λ₯Ό resolveν©λλ€.
β’
μ€ν¨νμ κ²½μ°μλ μμΈ(error) κ°μ²΄λ₯Ό rejectν©λλ€.
fetch
jQuery AJAX
β’
jQuery ajax κ°λ°λ¬Έμ
jQuery.ajax()
Data to be sent to the server. If the HTTP method is one that cannot have an entity body, such as GET, the data is appended to the URL.
AJAXλ?
β’
AJAX (Asynchronous JavaScript and XML)
ν΅μ¬ ν¬μΈνΈ
μμ² β μλ΅μ΄ μ€κΈ°λ₯Ό κΈ°λ€λ¦¬μ§ μκ³ λ νλ©΄μ κ³μ λμνλ€ (λΉλκΈ°)
$.ajax
axios
axios
λ JavaScriptμ HTTP ν΄λΌμ΄μΈνΈ λΌμ΄λΈλ¬λ¦¬λ‘, λΈλΌμ°μ μ Node.js νκ²½μμ λͺ¨λ μ¬μ©ν μ μμ΅λλ€.
axios
λ Promiseλ₯Ό κΈ°λ°μΌλ‘ ν κ°λ ₯ν κΈ°λ₯κ³Ό λ€μν μ€μ μ΅μ μ μ 곡νμ¬ λ€νΈμν¬ μμ²μ λ³΄λ€ νΈλ¦¬νκ² λ€λ£° μ μλλ‘ λμμ€λλ€.
Axios 기본 ꡬ쑰
Axiosμ μ£Όμ λ©μλ
axios
κ°μ
β’
Promise
β’
Promise μν
β’
μ£Όμ λ©μλ
β’
κΈ°λ³Έ μμ μ½λ
β’
API νΈμΆ μμ μ½λ
Promise
λΉλκΈ° μμ μ μ±κ³΅ λλ μ€ν¨ κ²°κ³Όλ₯Ό μ²λ¦¬νλ κ°μ²΄
Promise
async & await
JavaScriptμ λΉλκΈ° νλ‘κ·Έλλ°μ κ°νΈνκ² λ§λλ ν€μλμ λλ€.
β’
Promise
β’
async
β’
await
async
async
: "λΉλκΈ°" λλ "λΉλκΈ°μ"μ΄λΌλ μλ―Έλ‘ ν΄μλ©λλ€. μμ΄ λ¨μ΄
asynchronous
μ μ€μλ§λ‘, λμμ μΌμ΄λμ§ μλ κ²μ μλ―Έν©λλ€.
await
await
: "κΈ°λ€λ¦¬λ€" λλ "λκΈ°νλ€"λΌλ μλ―Έλ‘ ν΄μλ©λλ€. μμ΄ λμ¬
await
μμ μ λν κ²μΌλ‘, μ΄λ€ μΌμ΄ μλ£λκΈ°λ₯Ό κΈ°λ€λ¦¬λ κ²μ μλ―Έν©λλ€.
async & await
Node.js - λ΄μ₯ κ°μ²΄
global
Node.jsμ global κ°μ²΄λ
λͺ¨λ λͺ¨λμμ μ κ·Ό κ°λ₯ν μ μ κ°μ²΄
μ λλ€.
μ΄ κ°μ²΄λ λͺ¨λ λͺ¨λμμ 곡μ λλ©°, λͺ¨λ λ΄μμ μ μΈνμ§ μκ³ μ¬μ©ν μ μλ λ€μν μμ±κ³Ό λ©μλλ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄,
console
κ°μ²΄λ
setTimeout()
ν¨μλ global κ°μ²΄μ μν΄ μμ΅λλ€.
global κ°μ²΄λ₯Ό μ¬μ©ν λμλ μ£Όμν΄μΌ ν©λλ€. μ μ λ³μμ ν¨μλ μ½λμ κ°λ μ±κ³Ό μ μ§ λ³΄μμ±μ μ νμν¬ μ μμΌλ―λ‘, κ°λ₯ν ν μ§μ λ³μμ ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. κ·Έλ¬λ νΉμ ν μν©μμ μ μ κ°μ²΄μ κΈ°λ₯μ΄ νμν μ μμΌλ μ μ νκ² νμ©νμκΈ° λ°λλλ€.
μ£Ό
μ: μ½λμ μ μ 곡κ°μμ λ³μλ₯Ό μ μΈνλ©΄, μ΄ λ³μλ μ€μ λ‘λ global κ°μ²΄μ νλ‘νΌν°λ‘ μ·¨κΈλ©λλ€.
global
console
Node.jsμ
console
μ κ°λ°μκ° μ½λλ₯Ό μ€ννλ λμ λ‘κ·Έ λ©μμ§λ₯Ό μΆλ ₯νκΈ° μν΄ μ¬μ©λλ κ°μ²΄μ λλ€.
console
κ°μ²΄λ λ€μν λ©μλλ₯Ό μ 곡νμ¬ λ‘κ·Έ λ©μμ§μ μΆλ ₯ λ 벨과 νμμ μ§μ ν μ μμ΅λλ€.
μΌλ°μ μΌλ‘
console.log()
λ©μλλ₯Ό μ¬μ©νμ¬ κ°μ μ½μμ μΆλ ₯ν μ μμ΅λλ€. μ΄ λ©μλλ λ¬Έμμ΄, λ³μ, κ°μ²΄ λ± λ€μν μ νμ λ°μ΄ν°λ₯Ό μΆλ ₯ν μ μμ΅λλ€. λν
console.error()
λ©μλλ₯Ό μ¬μ©νμ¬ μλ¬ λ©μμ§λ₯Ό μΆλ ₯νκ³
console.warn()
λ©μλλ₯Ό μ¬μ©νμ¬ κ²½κ³ λ©μμ§λ₯Ό μΆλ ₯ν μλ μμ΅λλ€.
console
κ°μ²΄λ λ€μν λ©μλλ₯Ό μ 곡νλλ°, μ΄λ₯Ό μ¬μ©νμ¬ κ°λ° μ€μ λλ²κΉ μ μννκ±°λ μ½λμ μ€ν μνλ₯Ό νμΈν μ μμ΅λλ€. μλ₯Ό λ€μ΄
console.time()
λ°
console.timeEnd()
λ©μλλ₯Ό μ¬μ©νμ¬ μ½λμ μ€ν μκ°μ μΈ‘μ ν μ μκ³ ,
console.trace()
λ©μλλ₯Ό μ¬μ©νμ¬ μ½λμ νΈμΆ μ€νμ μΆλ ₯ν μλ μμ΅λλ€.
μ΄ μΈμλ
console
κ°μ²΄λ λ€μν κΈ°λ₯μ μ 곡νλ©°, Node.js νκ²½μμ λλ²κΉ λ° λ‘κΉ μ μ μ©νκ² μ¬μ©λ©λλ€.
μ μ
console
μ JavaScript νκ²½μμ μ 곡λλ λ΄μ₯ κ°μ²΄λ‘μ, μ½μμ λ€μν μ νμ λ‘κ·Έλ₯Ό μΆλ ₯νκ±°λ λλ²κΉ λ©μμ§λ₯Ό νμνλ λ° μ¬μ©λ©λλ€. Node.jsμμλ ν°λ―Έλ μ½μμ μΆλ ₯λκ³ , λΈλΌμ°μ νκ²½μμλ κ°λ°μ λꡬμ μ½μ νμ μΆλ ₯λ©λλ€.
console
νμ΄λ¨Έ
Node.jsμλ λ€μν νμ΄λ¨Έ λ΄μ₯ κ°μ²΄κ° μμ΅λλ€. μ΄λ€ νμ΄λ¨Έ κ°μ²΄λ λΉλκΈ°μ μΈ μμ μ μ€μΌμ€λ§νκ³ μ€ννλ λ° μ¬μ©λ©λλ€.
νμ΄λ¨Έ μ€ν ν¨μ
νμ΄λ¨Έ μ·¨μ ν¨μ
μ΄λ¬ν νμ΄λ¨Έ κ°μ²΄λ€μ Node.jsμ λΉλκΈ°μ μΈ νΉμ±μ μ΄ν΄νκ³ μμ μ μ€μΌμ€λ§ν λ μ μ©νκ² νμ©λ μ μμ΅λλ€.
setTimeout
μ§μ λ μκ°μ΄ κ²½κ³Όν νμ μ½λ°± ν¨μλ₯Ό μ€νν©λλ€.
νμ΄λ¨Έ
process
Node.jsμμ
process
λ λ΄μ₯ κ°μ²΄λ‘μ
νμ¬ μ€ν μ€μΈ Node.js νλ‘μΈμ€μ λν μ 보μ μ μ΄λ₯Ό μ 곡ν©λλ€.
process
κ°μ²΄λ₯Ό μ¬μ©νμ¬ νκ²½ λ³μ, 컀맨λ λΌμΈ μΈμ, μμ λλ ν 리 λ±μ μ κ·Όν μ μμ΅λλ€.
process
κ°μ²΄λ₯Ό μ¬μ©νμ¬
Node.js νλ‘μΈμ€λ₯Ό μ μ΄νκ³ λ€μν μ 보μ μ κ·Όν μ μμ΅λλ€.
μ μ
process
κ°μ²΄λ Node.js νκ²½μμ
μ€ν μ€μΈ νλ‘μΈμ€μ λν μ 보λ₯Ό μ 곡νλ λ΄μ₯ κ°μ²΄
μ λλ€. μ΄ κ°μ²΄λ₯Ό ν΅ν΄ νκ²½ λ³μ, μ€ν λ§€κ°λ³μ, νμ¬ μμ λλ ν 리 λ±μ μ 보μ μ κ·Όν μ μμ΅λλ€.
λ¬Έλ²
process
κ°μ²΄λ global κ°μ²΄λ₯Ό μλ΅νκ³ μ¬μ©ν μ μμ΅λλ€.
process
Node.js - λ΄μ₯ λͺ¨λ
os
Node.jsμ
os
λ΄μ₯ λͺ¨λμ μ΄μ체μ μ μνΈμμ©νκΈ° μν λ€μν κΈ°λ₯μ μ 곡ν©λλ€.
μ΄ λͺ¨λμ μ¬μ©νμ¬ μ΄μ체μ μ λν μ 보λ₯Ό νμΈνκ³ , νΈμ€νΈμ λ€νΈμν¬ μΈν°νμ΄μ€λ₯Ό μ‘°ννκ³ , μμ€ν 리μμ€μ μ κ·Όν μ μμ΅λλ€.
λͺ κ°μ§ μ£Όμν
os
λͺ¨λμ ν¨μμ μμ±μ λ€μκ³Ό κ°μ΅λλ€
β’
os.platform()
: νμ¬ μ΄μ체μ μ νλ«νΌμ λ°νν©λλ€. μλ₯Ό λ€μ΄, "win32", "darwin", "linux"μ κ°μ κ°μ λ°νν μ μμ΅λλ€.
β’
os.arch()
: νμ¬ μ΄μ체μ μ μν€ν μ²λ₯Ό λ°νν©λλ€. μλ₯Ό λ€μ΄, "x64", "arm", "ia32"μ κ°μ κ°μ λ°νν μ μμ΅λλ€.
β’
os.cpus()
: μ»΄ν¨ν°μ λͺ¨λ CPU μ½μ΄μ λν μ 보λ₯Ό λ°νν©λλ€.
β’
os.totalmem()
: μμ€ν μ μ΄ λ©λͺ¨λ¦¬ μμ λ°μ΄νΈ λ¨μλ‘ λ°νν©λλ€.
β’
os.hostname()
: νΈμ€νΈμ μ΄λ¦μ λ°νν©λλ€.
β’
os.networkInterfaces()
: νΈμ€νΈμ λ€νΈμν¬ μΈν°νμ΄μ€μ λν μ 보λ₯Ό λ°νν©λλ€.
μ΄μΈμλ
os
λͺ¨λμ λ€μν μ΄μ체μ κ΄λ ¨ κΈ°λ₯μ μ 곡ν©λλ€. μμΈν λ΄μ©μ Node.js 곡μ λ¬Έμμμ νμΈν μ μμ΅λλ€.
os
path
Node.jsμμ
path
λͺ¨λμ νμΌ λ° λλ ν 리 κ²½λ‘λ₯Ό μ‘°μνλ λ° μ¬μ©λ©λλ€. μ΄ λͺ¨λμ κ²½λ‘λ₯Ό μ‘°μνκ³ μ²λ¦¬νκΈ° μν λ€μν μ μ©ν κΈ°λ₯μ μ 곡ν©λλ€. λͺ κ°μ§ μ£Όμ κΈ°λ₯μ λ€μκ³Ό κ°μ΅λλ€.
β’
path.join()
: μ¬λ¬ κ²½λ‘ μΈκ·Έλ¨ΌνΈλ₯Ό νλμ κ²½λ‘λ‘ κ²°ν©ν©λλ€.
β’
path.resolve()
: μ£Όμ΄μ§ κ²½λ‘λ₯Ό μ λ κ²½λ‘λ‘ ν΄μν©λλ€.
β’
path.basename()
: νμΌ κ²½λ‘μμ νμΌμ κΈ°λ³Έ μ΄λ¦μ κ°μ Έμ΅λλ€.
β’
path.dirname()
: νμΌ κ²½λ‘μμ νμΌμ΄ μμΉν λλ ν 리 μ΄λ¦μ κ°μ Έμ΅λλ€.
β’
path.extname()
: νμΌ κ²½λ‘μμ νμΌμ νμ₯μλ₯Ό κ°μ Έμ΅λλ€.
β’
path.parse()
: νμΌ κ²½λ‘λ₯Ό κ΅¬μ± μμλ‘ λΆμνμ¬ κ°μ²΄λ‘ λ°νν©λλ€.
path
λͺ¨λμ νμΌ κ²½λ‘λ₯Ό μ‘°μν΄μΌ ν λ μ μ©νλ©°, νμΌ λ° λλ ν 리 κ΄λ¦¬μ νμμ μΈ κΈ°λ₯μ μ 곡ν©λλ€.
μ μ
path
url
: URL κ³Ό κ΄λ ¨λ κΈ°λ₯μ μ 곡νλ node.js λ΄μ₯ λͺ¨λ
url
λͺ¨λμ Node.jsμ λ΄μ₯ λͺ¨λ μ€ νλλ‘, URLκ³Ό κ΄λ ¨λ κΈ°λ₯μ μ 곡ν©λλ€. μ΄ λͺ¨λμ μ¬μ©νλ©΄ URLμ νμ±νκ³ μ‘°μνλ λ° λμμ΄ λ©λλ€. μ£Όμ κΈ°λ₯μλ URLμ νμ±νμ¬ κ΅¬μ± μμμ μ κ·Όνλ κΈ°λ₯, URLμ μ‘°μνμ¬ μλ‘μ΄ URLμ μμ±νλ κΈ°λ₯, URL λ¬Έμμ΄μ μ΄μ€μΌμ΄ννλ κΈ°λ₯ λ±μ΄ μμ΅λλ€.
url
λͺ¨λμ μ¬μ©νλ €λ©΄ λ¨Όμ λͺ¨λμ κ°μ ΈμμΌ ν©λλ€. λ€μμ κΈ°λ³Έμ μΈ μ¬μ©λ²μ λλ€.
μ΄λ κ²
url
λͺ¨λμ μ¬μ©νμ¬ URLμ λ€λ£° μ μμ΅λλ€. λ μμΈν λ΄μ©μ Node.js 곡μ λ¬Έμμμ νμΈνμ€ μ μμ΅λλ€.
url
dns λͺ¨λ
Node.jsμ
dns
λͺ¨λμ λλ©μΈ μ΄λ¦κ³Ό IP μ£Όμ κ°μ λ³ν λ° DNS(Domain Name System) μ‘°ν κΈ°λ₯μ μ 곡ν©λλ€. μ΄ λͺ¨λμ μ¬μ©νμ¬ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ ν΄μνκ±°λ, IP μ£Όμλ₯Ό λλ©μΈ μ΄λ¦μΌλ‘ λ³νν μ μμ΅λλ€.
dns.lookup()
dns.lookup()
ν¨μλ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ ν΄μν©λλ€. μ΄ ν¨μλ₯Ό μ¬μ©νμ¬ μ£Όμ΄μ§ λλ©μΈ μ΄λ¦μ λν IP μ£Όμλ₯Ό μ»μ μ μμ΅λλ€. μλ₯Ό λ€μ΄:
dns.reverse()
dns.reverse()
ν¨μλ IP μ£Όμλ₯Ό λλ©μΈ μ΄λ¦μΌλ‘ λ³νν©λλ€. μ΄ ν¨μλ₯Ό μ¬μ©νμ¬ μ£Όμ΄μ§ IP μ£Όμμ λν λλ©μΈ μ΄λ¦μ μ»μ μ μμ΅λλ€. μλ₯Ό λ€μ΄:
μ΄ μΈμλ
dns
λͺ¨λμλ DNS μ§μλ₯Ό μννλ λ€μν ν¨μμ μ΄λ²€νΈκ° μ 곡λ©λλ€.
μ μ
dns
crypto
:
μνΈν, ν΄μ, HMAC λ±μ 보μ κ΄λ ¨ μμ μ λν κΈ°λ₯μ μ 곡ν΄μ£Όλ λ΄μ₯ λͺ¨λ
μ μ
crypto
λͺ¨λμ Node.jsμμ μ 곡νλ λ΄μ₯ λͺ¨λ μ€ νλλ‘, μνΈν λ° ν΄μ κ΄λ ¨ μμ μ μννκΈ° μν κΈ°λ₯μ μ 곡ν©λλ€. μ΄ λͺ¨λμ μ¬μ©νλ©΄ λ€μν ν΄μ μκ³ λ¦¬μ¦, μνΈν λ° λ³΅νΈν κΈ°λ₯μ νμ©ν μ μμ΅λλ€.
λ¬Έλ²:
crypto
λͺ¨λμ μ¬μ©νλ €λ©΄ λ¨Όμ λͺ¨λμ κ°μ ΈμμΌ ν©λλ€.
crypto
util
util
: Node.jsμμ λ€μν μ νΈλ¦¬ν° ν¨μλ€μ μ 곡νλ λ΄μ₯ λͺ¨λ
Promise ν¨ν΄ λ³ν, μμ, μμ λ¬Έμμ΄ μμ±, κ°μ²΄ λλ²κΉ λ±μ κΈ°λ₯μ μ 곡ν©λλ€.
μ μ
util
λͺ¨λμ κ°μ’ μ νΈλ¦¬ν° ν¨μλ€μ μ 곡νλ Node.jsμ λ΄μ₯ λͺ¨λμ λλ€.
λ¬Έλ²
util
Node.js
νμΌ μμ€ν
Node.jsμμ νμΌ μμ€ν μ λ€λ£¨κΈ° μν΄ κΈ°λ³Έμ μΌλ‘
fs
(File System) λͺ¨λμ μ¬μ©ν©λλ€. μ΄ λͺ¨λμ νμΌ μ½κΈ°, μ°κΈ°, μμ , μ΄λ, μ΄λ¦ λ³κ²½ λ± λ€μν νμΌ μμ€ν μμ μ μνν μ μκ² ν΄μ€λλ€.
fs
: νμΌ μμ€ν μμ μ μννκΈ° μν λͺ¨λ
λ¬Έλ²
fs
λͺ¨λ μ£Όμ λ©μλ λ° μμ±
νμΌ μμ€ν
μ΄λ²€νΈ
μ μ
μ΄λ€ μ¬κ±΄μ΄ λ°μνμμ λνλ΄λ μ νΈ
Node.jsμμ μ΄λ²€νΈλ μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ° λͺ¨λΈμ ν΅ν΄ μ²λ¦¬λ©λλ€. μ΄ λͺ¨λΈμ μ΄λ²€νΈ λ°μμ(Event Emitter)μ μ΄λ²€νΈ 리μ€λ(Event Listener) κ°μ μνΈ μμ©μΌλ‘ ꡬμ±λ©λλ€. μ΄λ²€νΈ λ°μμλ νΉμ μ΄λ²€νΈκ° λ°μνμμ μλ¦¬κ³ , μ΄λ₯Ό λ£κ³ μλ μ΄λ²€νΈ 리μ€λλ ν΄λΉ μ΄λ²€νΈμ λν νλμ μ μν©λλ€.
λ¬Έλ²
Node.jsμ
events
λͺ¨λμ μ¬μ©νμ¬ μ΄λ²€νΈλ₯Ό ꡬνν μ μμ΅λλ€. μ£Όμ λ©μλλ‘λ
on
,
emit
,
once
λ±μ΄ μμ΅λλ€.
μ΄λ²€νΈ
μμΈμ²λ¦¬
μ μ
νλ‘κ·Έλ¨ μ€ν μ€μ μκΈ°μΉ μμ μν©μ΄ λ°μνμ λ μ΄λ₯Ό μ μ νκ² μ²λ¦¬νλ νλ‘κ·Έλλ°μ ν λ°©λ²
λ¬Έλ²
μ£Όμ μμ± λ° λ©μλ
μμ μ½λ
μμΈμ²λ¦¬
http λͺ¨λ
μ μ
Node.jsμ
http
λͺ¨λμ HTTP νλ‘ν μ½μ μ¬μ©νμ¬
μλ² λ° ν΄λΌμ΄μΈνΈλ₯Ό μμ±νλ λ° μ¬μ©λλ ν΅μ¬ λͺ¨λ
μ λλ€. HTTP μλ²λ₯Ό λ§λ€κ³ μμ²μ μ²λ¦¬νλ©°, ν΄λΌμ΄μΈνΈλ‘λΆν° μμ²μ λ§λ€μ΄ μλ²λ‘ μ μ‘νλ λ° μ¬μ©λ©λλ€.
λ¬Έλ²
http λͺ¨λ
npm (Node Package Manager)
Node.js μ ν리μΌμ΄μ μ μν ν¨ν€μ§ κ΄λ¦¬μ
Node.jsλ₯Ό μ€μΉνλ©΄ ν¨κ» μ 곡λλ©°, λ€μν ν¨ν€μ§λ₯Ό μ€μΉνκ³ κ΄λ¦¬ν μ μμ΅λλ€. npmμ Node.js μνκ³μμ μ½λλ₯Ό 곡μ νκ³ μ¬μ¬μ©νκΈ° μν ν΅μ¬ λꡬ μ€ νλλ‘, κ°λ°μκ° νλ‘μ νΈμ νμν μΈλΆ λͺ¨λμ μμ½κ² μΆκ°νκ³ κ΄λ¦¬ν μ μλλ‘ λμμ€λλ€.
npm 곡μ μ¬μ΄νΈ
npm
yarn
JavaScript νλ‘μ νΈμ μ’ μμ±μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ ν¨ν€μ§ λ§€λμ
Yarn
μ JavaScript νλ‘μ νΈμ μ’ μμ±μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν ν¨ν€μ§ λ§€λμ μ λλ€. npmκ³Ό μ μ¬νμ§λ§, μ¬λ¬ κ°μ§ μΈ‘λ©΄μμ λ λΉ λ₯΄κ³ μμ νλ©° μΌκ΄λ λ°©μμΌλ‘ ν¨ν€μ§λ₯Ό μ€μΉνλ λ±μ μ₯μ μ΄ μμ΅λλ€. Yarnμ Facebook, Google, Exponent, Tilde λ±μ κΈ°μ κ³Ό κ°λ°μλ€μ΄ νμ νμ¬ κ°λ°ν μ€ν μμ€ νλ‘μ νΈμ λλ€.
곡μ μ¬μ΄νΈ
Home page | Yarn
Yarn, the modern JavaScript package manager
yarn
node μλ¬ λ ΈνΈ
code ECONNRESET npm μλ¬
code ECONNRESET npm μλ¬
vscode ν°λ―Έλμμ npm μλ¬
vscode ν°λ―Έλμμ npm μλ¬