ν¬λ‘¬ v8 μλ°μ€ν¬λ¦½νΈ μμ§μΌλ‘ λΉλλ μλ°μ€ν¬λ¦½νΈ λ°νμ
λ°νμ : νΉμ μΈμ΄λ‘ λ§λ νλ‘κ·Έλ¨λ€μ μ€νν μ μκ² ν΄μ£Όλ κ°μ λ¨Έμ (ν¬λ‘¬μ V8 μμ§ μ¬μ©)μ μν
μ¦, μλ°μ€ν¬λ¦½νΈλ‘ λ§λ νλ‘κ·Έλ¨λ€μ μ€νν μ μκ² ν΄ μ€
V8 μμ§: μ€ν μμ€ μλ°μ€ν¬λ¦½νΈ μμ§ --> μλ λ¬Έμ κ°μ
libuv: λ
Έλμ νΉμ±μΈ μ΄λ²€νΈ κΈ°λ°, λ
ΌλΈλ‘νΉ I/O λͺ¨λΈμ ꡬνν λΌμ΄λΈ
μ΄λ²€νΈκ° λ°μν λ 미리 μ§μ ν΄λ μμ
μ μννλ λ°©μ
μ΄λ²€νΈμ μ: ν΄λ¦, λ€νΈμν¬ μμ², νμ΄λ¨Έ λ±
μ΄λ²€νΈ 리μ€λ: μ΄λ²€νΈλ₯Ό λ±λ‘νλ ν¨μ
μ½λ°± ν¨μ: μ΄λ²€νΈκ° λ°μνμ λ μ€νλ ν¨μ
λ
Ό λΈλ‘νΉ: μ€λ 걸리λ ν¨μλ₯Ό λ°±κ·ΈλΌμ΄λλ‘ λ³΄λ΄μ λ€μ μ½λκ° λ¨Όμ μ€νλκ² νκ³ , λμ€μ μ€λ 걸리λ ν¨μλ₯Ό μ€ν
λ
Ό λΈλ‘νΉ λ°©μ νμμ μΌλΆ μ½λλ λ°±κ·ΈλΌμ΄λμμ λ³λ ¬λ‘ μ€νλ¨
μΌλΆ μ½λ: I/O μμ
(νμΌ μμ€ν
μ κ·Ό, λ€νΈμν¬ μμ²), μμΆ, μνΈν λ±
λλ¨Έμ§ μ½λλ λΈλ‘νΉ λ°©μμΌλ‘ μ€νλ¨
β΄ I/O μμ
μ΄ λ§μ λ λ
Έλ νμ©μ±μ΄ κ·Ήλν
λ
Έλλ λΈλ‘νΉ&λκΈ°, λΉλκΈ°&λ
ΌλΈλ‘νΉ
λκΈ°: μ½λ μμλλ‘ μ€ν
λΉλκΈ°: μ½λ μμλλ‘ μ€νλμ§ μμ μλ μλ€
νλ‘μΈμ€: μ΄μ체μ μμ ν λΉνλ μμ μ λ¨μ, νλ‘μΈμ€ κ° μμ 곡μ X
μ€λ λ: νλ‘μΈμ€ λ΄μμ μ€νλλ μμ μ λ¨μ, λΆλͺ¨ νλ‘μΈμ€ μμ 곡μ
λ
Έλλ μ£Όλ‘ λ©ν° μ€λ λ λμ λ©ν° νλ‘μΈμ€ νμ©
(λ
Έλλ 14λ²μ λΆν° λ©ν° μ€λ λ μ¬μ© κ°λ₯)
μ±κΈ μ€λ λλΌ μ£Όμ΄μ§ μΌμ νλλ°μ μ²λ¦¬νμ§ λͺ»ν¨
λΈλ‘νΉμ΄ λ°μνλ κ²½μ° λλ¨Έμ§ μμ
μ λͺ¨λ λκΈ°ν΄μΌ ν¨ -> λΉν¨μ¨ λ°μ
λμ λ Ό λΈλ‘νΉ λͺ¨λΈμ μ±ννμ¬ μΌλΆ μ½λ(I/O)λ₯Ό λ°±κ·ΈλΌμ΄λ(λ€λ₯Έ νλ‘μΈμ€)μμ μ€ν κ°λ₯
μ±κΈ μ€λ λ λͺ¨λΈμ μλ¬λ₯Ό μ²λ¦¬νμ§ λͺ»νλ κ²½μ° λ©μΆ€
λ©ν° μ€λ λ λͺ¨λΈμ μλ¬ λ°μ μ μλ‘μ΄ μ€λ λλ₯Ό μμ±νμ¬ κ·Ήλ³΅
μ μ: μ€λ λ, μ£Όλ¬Έ: μμ², μλΉ: μλ΅
! λ
Έλ 14λ²μ
λ©ν° μ€λ λλ₯Ό μ¬μ©ν μ μλλ‘ worker_threads λͺ¨λ λμ
CPUλ₯Ό λ§μ΄ μ¬μ©νλ μμ
μΈ κ²½μ°μ νμ© κ°λ₯
μλ²: λ€νΈμν¬λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈμ μ 보λ μλΉμ€λ₯Ό μ 곡νλ μ»΄ν¨ν° λλ νλ‘κ·Έλ¨
ν΄λΌμ΄μΈνΈ: μλ²μ μμ²μ 보λ΄λ 주체(λΈλΌμ°μ , λ°μ€ν¬ν νλ‘κ·Έλ¨, λͺ¨λ°μΌ μ±, λ€λ₯Έ μλ²μ μμ²μ 보λ΄λ μλ²)
ex>
λΈλΌμ°μ (ν΄λΌμ΄μΈνΈ, μμ²)κ° κΈΈλ² μΉμ¬μ΄νΈ(μλ², μλ΅)μ μ μ
νΈλν°(ν΄λΌμ΄μΈνΈ)μ ν΅ν΄ μ±μ€ν μ΄(μλ²)μμ μ± λ€μ΄λ‘λ
λ
Έλ != μλ²
νμ§λ§, λ
Έλλ μλ²λ₯Ό ꡬμ±ν μ μκ² νλ λͺ¨λμ μ 곡
λ
Έλ μλ²μ μ₯λ¨μ
CPU μμ
μ μν΄ AWS Lambdaλ Google Cloud Functionsκ°μ λ³λ μλΉμ€ μ¬μ©
νμ΄ν, λ·νλ¦μ€, λμ¬, μλ§νΈ, λ§ν¬λμΈ, μ°λ² λ±μμ λ©μΈ λλ μλΈ μλ²λ‘ μ¬μ©
μλ°μ€ν¬λ¦½νΈ λ°νμμ΄κΈ° λλ¬Έμ μ©λκ° μλ²μλ§ νμ λμ§ μμ
μΉ, λͺ¨λ°μΌ, λ°μ€ν¬ν μ ν리μΌμ΄μ
μλ μ¬μ©
μΉ νλ μμν¬: Angular, React, Vue, Meteor λ±
λͺ¨λ°μΌ μ± νλ μμν¬: React Native
λ°μ€ν¬ν κ°λ° λꡬ: Electron(Atom, Slack, VSCode, Discord λ± μ μ)
μ νλ μμν¬κ° λ
Έλ κΈ°λ°μΌλ‘ λμν¨
πμΆμ²π
Node.js κ΅κ³Όμ - κΈ°λ³ΈλΆν° νλ‘μ νΈ μ€μ΅κΉμ§
https://www.inflearn.com/course/%EB%85%B8%EB%93%9C-%EA%B5%90%EA%B3%BC%EC%84%9C/dashboard