π£ λ€μ΄κ°κΈ°μ μμ, Node.jsλ Runtime νκ²½μ΄κ³ , Springκ³Ό Spring bootλ Frameworkμ΄λ―λ‘ λμ λΉκ΅νλ κ²μ λ§μ§ μμ μ μμΌλ, νλ‘μ νΈλ₯Ό μ§ννλ©° μκΈ΄ μμν κΆκΈμ¦μΌλ‘ λμ λΉκ΅ν΄λ³΄κ³ μ νλ€.
(λ§μΌ μ³μ§ μμ μ λ³΄κ° μκ±°λ λ μλ €μ£Όκ³ μΆμ μ λ³΄κ° μμΌμλ€λ©΄ λκΈ λ¬μμ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€. πββοΈ)
Runtime νκ²½
- Runtime: ν΄λΉ νλ‘κ·Έλ¨μ΄ νμν μμ€ν μμ(RAM, μμ€ν λ³μ, νκ²½λ³μ λ±)μ ν λΉλ°κ³ μ€μ λ‘ μμ€ν μμμ μ¬μ©ν΄μ μ΄λ ν μ²λ¦¬λ₯Ό νκ³ μλ μν
- Runtime νκ²½: Runtimeμ΄ μΌμ΄λκΈ° μν΄(ν΄λΉ νλ‘κ·Έλ¨μ΄ μμ€ν μμμ μ¬μ©νκΈ° μν΄) μμ€ν μμμ μμΈμ€ ν μ μλλ‘ ν΄μ£Όλ μ€ν νκ²½
- μ΄μ체μ μ체μ μνλ κ²½μ°λ μκ³ , μ΄μ체μ μμ μλνλ μννΈμ¨μ΄λ₯Ό λ»ν μλ μμ
β Runtime νκ²½μ μ½λκ° λμνλ νκ²½μ κ°μΆ κ², Frameworkλ μ½λλ₯Ό μ΄λ»κ² μμ νκ³ μμ±ν μ§μ λν μΌλ ¨μ κ·μΉκ³Ό ꡬ쑰
μμ°ν λμ μ λλ‘(?) λΉκ΅νκΈ° μν΄μλ Node.jsμ μ¬μ€μμ νμ€ μλ² νλ μμν¬λ‘ λΆλ¦¬λ Express.jsλ‘ μ λ κ²μ΄ μ³λ€κ³ μκ°νμ§λ§, λλ€μμ μλ£μμ λμ νΌμ¬νμ¬ (Node.js + Express.js) μ¬μ©νλ―λ‘ λ³ΈμΈμ νΈμμ±μ μν΄ Node.jsλ‘ ν΅μΌνμ¬ μ¬μ©
μμ κ°μ Node.jsμ νΉμ§μ λ¨μ μ΄μ μ₯μ μ΄ λ μ μλ€. (μΌλ¨, λͺ νν μ§κ³ λμ΄κ° κ²μ μ λ¬ν Node.jsμ νκ²½μ Spring Threadμ λΉν΄ μκ³ λ리λ€λ κ²)
Thread
- νλ‘μΈμ€(μ€ν μ€μΈ νλ‘κ·Έλ¨. λμ€ν¬λ‘λΆν° λ©λͺ¨λ¦¬μ μ μ¬λμ΄ CPUμ ν λΉμ λ°μ μ μλ κ²)μ μ€ν λ¨μ
- ν νλ‘μΈμ€ λ΄μμ λμλλ μ¬λ¬ μ€νμ νλ¦
- νλ‘μΈμ€ λ΄μ μ½λ, λ°μ΄ν°, νμΌκ³Ό κ°μ μ΄μ체μ μμ 곡μ κ°λ₯
- ꡬμ±μμ : Thread ID, register set(PC ν¬ν¨), μ€ν
- PC(Program Counter) : Threadκ° λͺ λ Ήμ΄μ μ΄λκΉμ§ μννμλμ§ λνλ. Threadλ CPUλ₯Ό ν λΉ λ°μλ€κ° μ€μΌμ€λ¬μ μν΄ λ€μ μ μ λΉνκΈ° λλ¬Έμ λͺ λ Ήμ΄κ° μ°μμ μΌλ‘ μνλμ§ λͺ»νκ³ , μ΄λ λΆλΆκΉμ§ μννλμ§ κΈ°μ΅ν΄μΌν νμκ° μμ.
- μ€ν : ν¨μ νΈμΆ μ μ λ¬λλ μΈμ, λλμκ° μ£Όμκ° λ° ν¨μ λ΄μμ μ μΈνλ λ³μ λ±μ μ μ₯νκΈ° μν΄ μ¬μ©λλ λ©λͺ¨λ¦¬ 곡κ°
- μ€ν λ©λͺ¨λ¦¬ 곡κ°μ΄ λ 립μ μ΄λΌλ κ²μ λ 립μ μΈ ν¨μ νΈμΆμ΄ κ°λ₯νλ€λ κ² β λ 립μ μΈ μ€ν νλ¦ β Threadμ μ μμ λ°λΌ λ 립μ μΈ μ€ν νλ¦μ μΆκ°νκΈ° μν μ΅μ 쑰건μΌλ‘ λ 립λ μ€νμ ν λΉν¨.
CPU ν λΉ
- νλ‘μ νΈμ μ§μ λλ μμ€ν μ CPU 리μμ€ μμ μ μνλ λ° μ¬μ©λ¨.
- λ€λ₯Έ μμ λΆνμ λν ν΄λΉ μμ λΆνμ μλμ μ€μμ±μ μ μνλλ° μ¬μ©λ¨.
μ΄λ¬ν μ λ§ λ³΄λ©΄ κ½€λ κ·λͺ¨ μλ μμ μμλ Springμ μ°λκ² λΉμ°ν λκ»΄μ§ μ μμ§λ§, μ€νλ € Single Thread μλ²μ²λΌ λμνλ κ²μ΄ MSA(Micro Service Architecture), kubernetesμ κ°μ΄ μ΅κ·Όλ€μ΄ μ΅ν λ³Ό μ μλ μμ€ν λ€κ³Ό κ·Έ ν©μ΄ λ§€μ° μ’λ€.
MSA & kubernetes
- MSA(Micro Service Architecture) : μμ μλΉμ€ μ¬λ¬ κ°κ° λͺ¨μ¬μ νλμ μμ€ν μ μ 곡νλ μν€ν μ³
- μλΉμ€κ° λ 립μ μΌλ‘ μ‘΄μ¬νμ¬ ν΄λΌμ°λμ 컨ν μ΄λμ μ μ΄μΈλ¦Ό
- kubernetes(k8s) : 컨ν μ΄λνλ μ ν리μΌμ΄μ μ λ°°ν¬, κ΄λ¦¬, νμ₯ν λ μλ°λλ λ€μμ μλ νλ‘μΈμ€λ₯Ό μλννλ μ€νμμ€ μ»¨ν μ΄λ μ€μΌμ€νΈλ μ΄μ νλ«νΌ (컨ν μ΄λλ?)
μ¦, μλ² μ μ체λ λκ³ , μλ² μκ° νΈλν½μ λ§μΆ° μ λμ μΌλ‘ λ°λλ μν©μ΄ λ§μμ§ μ΅κ·Όμλ ν¬κ³ κ°λ ₯ν ν λμ μλ²λ³΄λ€λ λΉ λ₯΄κ³ κ°λ²Όμ΄ μλ²κ° μ¬λ¬ λ μλ κ²μ΄ μ 리νκ² μμ©λ μ μλ€.
Javaμ λ¬λ¦¬ μλ£νμ λͺ νν κ·μ μ§μ§ μλ JavaSciptλ μ΄λ¬ν μ΄μ λ‘ μ₯μ κ³Ό λ¨μ μ΄ κ½€λ λͺ ννκ² κ°λ¦¬λ μΈμ΄μ λλ€. μλ£νμ μ΄μ μΌλ‘ μ½λ μμ±μ΄ μ©μ΄ν μ μμΌλ, μ°μ°λμ΄ λ§μ μμ μμλ μλκ° λ릴 μ μμ΅λλ€.
(νμ§λ§, TypeScript λ±μΌλ‘ μ΄λ¬ν λ¨μ λ 극볡λκ³ μλ μ€..!)
μ€λ κΈ°κ° νμ μμ νμ©λλ©° μμ μ±μ μΆ©λΆν κ²μ¦λ°μ Spring μλΉμ€λ€μ λͺ¨λ Node.jsλ‘ λ체νκΈ°μλ νμ€ μ‘°κ±΄μ λ€μ λ¬΄λ¦¬κ° μμ§λ§, κ°λ°μ(νΉμ μ€λΉμ..?)λ€μ λ³νμ μ μ°νκ² λμ²ν΄μΌλ―λ‘ μ μ ν λ°μ λ΄κ·Έκ³ μμ΄μΌ νλ€.
ν΄λΉ κΈμ μ μΌλ©΄μ μ»΄ν¨ν° ꡬ쑰, μμ€ν νλ‘κ·Έλλ°μ κ³Όλͺ©μμ λ°°μ λ λͺλͺ λ¨μ΄λ€μ μ ν μ μμλ€. κ·Έλ μ§λ§ μμλ λλ μνμ΄ λλκ³ λ¨Έλ¦Ώμμμ λͺ¨λ μ§μλ²λ Έλ 보λ€... κΈ°λ‘μ μ€μμ±μ λ€μ ν λ² μ μ ν λλΌλ©΄μ μμ μμ νμ΄ν !
βNode.jsβ VS βJava Springβ by λ€μ΄λ² νμ΄λΈμ κΉνμ°(twkim913)