π‘
'ν°μΊ£', WAS λ±μ μμ λ€λ₯Έ 곡λΆλ₯Ό νλ©° μ’
μ’
λ€μ΄μλ κ²μΈλ°, μ μ 무μμΈμ§λ μ νν λͺ¨λ₯΄κ³ λκ° λ겨μλ€. μ°μ μΉ μλ²μ WASκ° λ¬΄μμΈμ§λΆν° μ λλ‘ μμλ³΄κ³ , λ Tomcatκ³Ό NginXλ κ°κ° 무μμ ν΄λΉνλμ§, μ΄λ€ νΉμ§μ κ°μ§λμ§ κΌΌκΌΌν μμ보μ! :>
- μΉ μλ²(μννΈμ¨μ΄) : μΉ λΈλΌμ°μ μ κ°μ ν΄λΌμ΄μΈνΈλ‘λΆν° HTTP μμ²μ λ°μλ€μ΄κ³ , HTML λ¬Έμμ κ°μ μΉ νμ΄μ§λ₯Ό λ°ννλ μ»΄ν¨ν° νλ‘κ·Έλ¨
- μΉ μλ²(νλμ¨μ΄) : μμ κΈ°λ₯μ μ 곡νλ νλ‘κ·Έλ¨μ μ€ννλ μ»΄ν¨ν°
: μ°λ¦¬κ° μΈκΈνκ³ λ€λ£° μΉ μλ²λ μννΈμ¨μ΄ μΉ μλ²μ΄λ€. μ΄λ μΉ μλ²κ° μ 곡νλ κ²μ λ¨μ HTML λ¬Έμ, CSS, μ΄λ―Έμ§, νμΌ λ± μ¦μ μλ΅ κ°λ₯ν μ μ 컨ν μΈ μ΄λ€. μΉ μλ²κ° μ μ 컨ν μΈ κ° μλ λμ 컨ν μΈ μ λν μμ²μ λ°μΌλ©΄, WASμκ² ν΄λΉ μμ²μ λκ²¨μ£Όκ³ WASμμ μ²λ¦¬ν κ²°κ³Όλ₯Ό ν΄λΌμ΄μΈνΈμκ² μ λ¬νλ μν λ ν΄ μ€λ€. μ΄λ¬ν μΉ μλ²μλ Apache, NginX λ±μ΄ μλ€.
WAS = μΉ μλ² + μΉ μ»¨ν μ΄λ
: WASλ DB μ‘°ν νΉμ λ€μν λ‘μ§ μ²λ¦¬λ₯Ό μꡬνλ λμ 컨ν μΈ λ₯Ό μ 곡νκΈ° μν΄ λ§λ€μ΄μ§ μλ²μ΄λ€. μ΄λ HTTP νλ‘ν μ½μ κΈ°λ°μΌλ‘ μ¬μ©μ μ»΄ν¨ν°λ μ₯μΉμ μ ν리μΌμ΄μ μ μνν΄ μ£Όλ λ―Έλ€μ¨μ΄λ‘μ, μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€ μλ²μ κ°μ΄ μνλλ€.
WASλ Web Serverμ Web Containerμ μν μ λͺ¨λ ν μ μλ€. μ¬κΈ°μ 컨ν μ΄λλ JSP, Servletμ ꡬλ νκ²½μ μ κ³΅ν΄ μ£Όλ μννΈμ¨μ΄λ₯Ό λ§νλ€. μ΄λ¬ν WASμλ Tomcat, JBoss, WebSphere λ±μ΄ μμΌλ©°, κ·Έ νΉμ§μ λ€μκ³Ό κ°λ€.
π‘
κ·Έλ°λ° WASκ° μΉ μλ²(μ μ 컨ν
μΈ μ 곡)μ μΉ μ»¨ν
μ΄λ(λμ 컨ν
μΈ μ 곡)μ κΈ°λ₯μ λͺ¨λ μνν μ μλ€λ©΄, Apacheλ NginXμ κ°μ μΉ μλ²λ νμκ° μλ κ²μΌκΉ? λ΅μ "No"μ΄λ€. μ¦, μΉ μλ²μ WASλ₯Ό λΆλ¦¬ν΄μΌ νλ€. μλμ κ·Έ μ΄μ λ₯Ό μ λ¦¬ν΄ λ³΄μλ€.
: κΈ°λ³Έμ μΌλ‘ μκ°ν μ μλ μ΄μ λ 'μλ² λΆν λ°©μ§λ₯Ό μν΄μ'μ΄λ€. λ§μ½ WASκ° μ μ μ½ν μΈ μμ²κΉμ§ μ²λ¦¬νκ² λλ€λ©΄, λΆνκ° μ»€μ§κ³ λμ 컨ν μΈ μ²λ¦¬κ° μ§μ°λμ΄ ν¨μ¨μ±μ΄ λ¨μ΄μ§λ€λ κ²μ΄λ€. κ·Έλ¬λ, μΉ μλ²μ WASλ₯Ό λΆλ¦¬νλ λ μμΈν μ΄μ λ 'μΉ μλ²μ μν 'μ μλ€. μ΄λ₯Ό μμν μ΄ν΄νκΈ° μν΄μλ 리λ²μ€ νλ‘μ(reverse proxy) μλ²μ λν μ΄ν΄κ° μ°μ λλ, νμνλ€λ©΄ μλμ μΈμ©λ¬Έμ μ°Έκ³ νμ.
β 리λ²μ€ νλ‘μ μλ²?
νλ‘μ μλ²(proxy server)
: ν΄λΌμ΄μΈνΈκ° μμ μ ν΅ν΄μ λ€λ₯Έ λ€νΈμν¬ μλΉμ€μ κ°μ μ μΌλ‘ μ μν μ μκ² ν΄ μ£Όλ μ»΄ν¨ν° μμ€ν μ΄λ μμ© νλ‘κ·Έλ¨μ κ°λ¦¬ν¨λ€. μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μ μ€κ³κΈ°λ‘μ λλ¦¬λ‘ ν΅μ μ μννλ κ²μ 'νλ‘μ', κ·Έ μ€κ³ κΈ°λ₯μ νλ κ²μ νλ‘μ μλ²λΌκ³ λΆλ₯Έλ€.
ν¬μλ νλ‘μ μλ²(forward proxy server)
: μ°λ¦¬κ° νν λ§νλ 'νλ‘μ μλ²'λ ν¬μλ νλ‘μ μλ²λ₯Ό μλ―Ένλ€. νλ‘μ μλ²λ μλ κ·Έλ¦Όμ²λΌ ν΄λΌμ΄μΈνΈ μμ λμ¬ μλ€. κ·Έλ¦Όμ 보면, ν΄λΌμ΄μΈνΈκ° μΈν°λ· μΉ μλ²μ μμ²μ 보λ΄λ©΄ μ€κ°μμ κ·Έ μμ²μ νλ‘μκ° κ°λ‘μ±λ€. μ΄ν νλ‘μ μλ²λ ν΄λΉ μμ²μ μΉ μλ²μκ² λ€μ 보λ΄κ³ μΉ μλ²μ λ°μ μλ΅μ λ€μ ν΄λΌμ΄μΈνΈμκ² μ λ¬νλ€. μ΄λ ν΄λΉ κΈ°κ΄μ μν μ¬λλ€μ΄ μΉμ¬μ΄νΈμ μ§μ μ μΌλ‘ λ°©λ¬Ένλ κ²μ λ°©μ§νκ³ , νΉμ μ¬μ΄νΈμ μ μνλ κ²μ κΈμ§νκ³ , μ¬μ©μμ μ 보λ₯Ό κ°μΆκΈ° μν΄ μ¬μ©λλ€.
리λ²μ€ νλ‘μ μλ²(reverse proxy server)
: 리λ²μ€ νλ‘μ μλ²λ μλ κ·Έλ¦Όμ²λΌ μΉ μλ² μμ λμ¬ μλ€. ν¬μλ νλ‘μ μλ²λ ν΄λΌμ΄μΈνΈ μμ λμ¬ μλ λ°λ©΄, 리λ²μ€ νλ‘μλ μΉ μλ² μμ λμ¬ μλ κ²μ΄λ€. 리λ²μ€ νλ‘μ μλ²λ₯Ό μ¬μ©νλ μ΄μ λ, λ³Έλ¬Έμ 'μΉ μλ²μ WASλ₯Ό ν¨κ» μ¬μ©νλ μ΄μ - μΉ μλ²μ μν 'μμ νμΈν μ μμ κ²μ΄λ€.
1. λ‘λ λ°Έλ°μ±(load balancing)
: μΉ μλ²λ 리λ²μ€ νλ‘μ μλ²λ‘μ λ‘λ λ°Έλ°μ±(load balancing)μ μ¬μ©λλ€. μ΄λ 'λΆν λΆμ°'μ λ»νλ©°, λ§ κ·Έλλ‘ νλμ μΉ μλ²μ μ¬λ¬ κ°μ WASλ₯Ό μ°κ²°ν¨μΌλ‘μ¨ λλμ μμ²μ΄ λ€μ΄μ€λλΌλ νΉμ WASκ° κ³ΌλΆν λμ§ μλλ‘ νλ κ²μ΄λ€. κ³ΌλΆνλ₯Ό λ§λ κ²κ³Ό λλΆμ΄, λ‘λ λ°Έλ°μ±μΌλ‘ μ§μμ±, μ₯μ 극볡 κΈ°λ₯μ ν보ν μ μλ€.
μλ₯Ό λ€μ΄, SpringμΌλ‘ λ§λ μΉ λ±μ μλΉμ€μ μ κΈ°λ₯μ μΆκ°ν΄ λμ λΆλΆκΉμ§ μ λ°μ΄νΈν΄ μ£Όμ΄μΌ νλ κ²½μ°μλ μ€νλλ μλΉμ€λ₯Ό μ’ λ£νκ³ λ€μ μ€νμ ν΄ μ€μΌ νλ€. μ΄ μκ°μ μ§§μ§λ§, κ·Έ μ¬μ΄μλ μ¬μ©μκ° μλΉμ€μ μ κ·Όνλ©΄ μ€λ₯κ° μκΈΈ κ²μ΄λ€. μ΄λ μΉ μλ²κ° μ€κ° λ§€κ°μ²΄ μν , μ¦ λ¦¬λ²μ€ νλ‘μ μλ²λ‘μ μ‘΄μ¬ν΄ μ¬λ¬ WAS(ν°μΊ£)μ μ°κ²°λμ΄ μλ€λ©΄ νλμ© μ°¨λ‘λ‘ μ λ°μ΄νΈν΄μ νλκ° μ¬λΆν λλ λμ μΉ μλ²κ° λ€λ₯Έ ν°μΊ£λ€λ‘ λΆμ°μμΌμ£Όλ 'λ‘λ λ°Έλ°μ±'μ νλ€. μ΄λ‘μ¨ μ¬μ©μλ μλΉμ€λ₯Ό λκΉ μμ΄ μ΄μ©ν μ μλ 'μ§μμ±'μ 보μ₯λ°λλ€.
λ§μ°¬κ°μ§λ‘, ν WASμμ λ¬Έμ κ° μ겨 WASλ₯Ό μ¬μμν΄μΌ νλ κ²½μ°κ° μκΈ΄λ€λ©΄ μλ¨μ μΉ μλ²μμ ν΄λΉ WASλ₯Ό μ¬μ©νμ§ λͺ»νλλ‘ μμ²μ μ°¨λ¨ν ν WASλ₯Ό μ¬μμνλ€. κ·Έλ¬λ©΄ μΉ μλ²λ ν΄λΉ WASλ₯Ό μ μΈν λ€λ₯Έ WASλ‘λ§ λΆμ°μν€κ³ , κ²°κ³Όμ μΌλ‘ μ¬μ©μλ€μ WASμ λ¬Έμ κ° λ°μνμ§κ³ λͺ¨λ₯΄κ³ μ΄μ©ν μ μλ€. μ΄λ¬ν μ²λ¦¬λ₯Ό 'μ₯μ 극볡 κΈ°λ₯'μ΄λΌ νλ€.
(μ₯μ 극볡 κΈ°λ₯ : μ»΄ν¨ν° μλ², μμ€ν
, λ€νΈμν¬ λ±μμ μ΄μμ΄ μκ²Όμ λ μλΉ μμ€ν
μΌλ‘ μλ μ νλ μ μλλ‘ μ²λ¦¬νλ κΈ°λ₯)
2. 보μ
: 리λ²μ€ νλ‘μ μλ²μ μν μ νλ μΉ μλ²λ, 보μ μΈ‘λ©΄μμλ μ₯μ μ΄ μλ€. μ΄λ¬ν μΉ μλ²λ₯Ό μ¬μ©νλ©΄ μ°κ²°λ WASμ IP μ£Όμλ₯Ό ν΄λΌμ΄μΈνΈλ‘λΆν° κ°μΆ μ μλ€. λ°λΌμ ν΄μ»€λ€μ DDoS 곡격과 κ°μ 곡격μ λ§λ λ° μ μ©νλ€.
3. μΊμ λ°μ΄ν° μ μ₯
: 리λ²μ€ νλ‘μ μλ²μ μν μ νλ μΉ μλ²μλ μ±λ₯ ν₯μμ μν΄ μΊμ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ€.
λ§μ½ νκ΅μ μλ μ΄λ€ μ μ κ° λ―Έκ΅μ μΉ μλ²λ₯Ό λκ³ μλ μ¬μ΄νΈμ μ μν λ, 리λ²μ€ νλ‘μ μλ²κ° νκ΅μ μλ€κ³ κ°μ ν΄ λ³΄μ. κ·Έλ¬λ©΄ νκ΅μ μλ μ μ λ νκ΅μ μλ 리λ²μ€ νλ‘μ μλ²μ ν΅μ νλ€. λ°λΌμ 리λ²μ€ νλ‘μ μλ²μ μΊμ±(μμ μ μ₯) λμ΄ μλ λ°μ΄ν°λ₯Ό μ¬μ©ν κ²½μ°μλ (λ―Έκ΅μ μλ²κΉμ§ λ§€λ² λΏμ§ μμλ λκΈ°μ) λ λΉ λ₯Έ μ±λ₯μ 보μ¬μ€ μ μλ€.
(μμλ₯Ό λ―Έκ΅κ³Ό νκ΅μ μλ²λ‘ λ€μμΌλ, μ΄λ 거리κ°μ λνλ΄κΈ° μν μμμΌ λΏμ΄λ€.)
κ²°λ‘ μ, μΉ μλ²κ° μΊμ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμΌλ―λ‘ ν΄λΌμ΄μΈνΈλ μ μ₯λμ΄ μλ μΊμ λ°μ΄ν°μ λν΄μλ λ λΉ λ₯΄κ² μ κ·Όν μ μλ€λ κ²μ΄λ€. μ΄λ μλ²λ‘ μ°Ύμμ€λ ν΄λΌμ΄μΈνΈλ€μ΄ μμ£Ό, λ°λ³΅μ μΌλ‘ μμ²νλ 리μμ€λ€μ νλ‘μ μλ²μ μ μ₯νκ³ μ 곡νλ λ°©μμΌλ‘ νμ©λλ€.
4. SSL μνΈν
: λ³Έλ μλ²κ° ν΄λΌμ΄μΈνΈλ€κ³Ό ν΅μ μ ν λ SSL(or TSL)λ‘ μνΈν, 볡νΈνλ₯Ό ν κ²½μ° λΉμ©μ΄ λ§μ΄ λ λ€. κ·Έλ¬λ 리λ²μ€ νλ‘μ μλ²λ‘μ μΉ μλ²λ₯Ό μ΄μ©νλ©΄, λ€μ΄μ€λ μμ²μ λͺ¨λ 볡νΈννκ³ λκ°λ μλ΅μ μνΈνν¨μΌλ‘μ¨ ν΄λΌμ΄μΈνΈμ μμ ν ν΅μ μ ν μ μμΌλ©° λ³Έλ μλ²μ λΆλ΄μ μ€μ¬μ€λ€.
/
WASμ μ₯μ κ° λ°μνλλΌλ Web μλ²κ° μ€λ₯ νλ©΄ HTMLμ μ 곡 => μ μ 리μμ€λ§μ μ 곡νλ Webμλ²λ μ μ£½μ§ μμ§λ§ μ ν리μΌμ΄μ
λ‘μ§μ μννλ WAS μλ²λ μ μ£½μ.
ν¨μ¨μ μΈ λ¦¬μμ€ κ΄λ¦¬ => μ μ 리μμ€κ° λ§μ΄ μ¬μ©λλ©΄ Web μλ² μ¦μ€, λμ 리μμ€κ° λ§μ΄ μ¬μ©λλ©΄ WAS μ¦μ€
/
π‘
κ°λ¨ν μ 리νμλ©΄, `μΉ μλ²λ μμ²μ λν΄ μ μ 컨ν
μΈ λ‘, WASλ μ μ +λμ 컨ν
μΈ λ‘ μλ΅ν μ μλ νλ‘κ·Έλ¨μ΄λ©°, μΉ μλ²λ μ μ μΈ μ»¨ν
μΈ , WASλ λμ μΈ μ»¨ν
μΈ λ₯Ό λ΄λΉνλ©΄μ κ°μκ° νΉνλ κΈ°λ₯μ μ΅λνμΌλ‘ νμ©νλ€λ κ²μ΄λ€.
μΉ μλ²λ WASμ μ λ¨μμ μ 체μ μΈ μ΄μκ³Ό 보μ μΈ‘λ©΄μμ κΈ°λ₯νκ³ , WASλ λ€ λ¨μμ DBμ μ°κ²°νκ±°λ λ°μ΄ν°λ₯Ό μ‘°μν΄ λμ μΈ μ»¨ν
μΈ λ₯Ό λ§λ€μ΄λ΄λ κ²μ μ€μ¬μΌλ‘ λμνλ€. μ΄λ‘μ¨ λμ± μμ§μ 컨ν
μΈ λ₯Ό ν¨μ¨μ μΌλ‘ μ 곡ν μ μλλ‘ νλ€.
: λμ μ μ μ²λ¦¬μ νΉνλ κ²½λ μΉ μλ²λ‘, ν΄λΌμ΄μΈνΈλ‘λΆν° HTTP μμ²μ λ°μ μμ²μ ν΄λΉνλ μ μ νμΌμ μλ΅ν΄ μ£Όλ νλ‘κ·Έλ¨μ΄λ€. μ΄λ 리λ²μ€ νλ‘μ μλ²(Reverse proxy server)λ‘μ WAS μλ²μ λΆνλ₯Ό μ€μΌ μ μλ λ‘λ λ°Έλ°μλ‘ νμ©λκΈ°λ νλ€.
NginX μ΄μ μ μ¬μ©λλ μνμΉ μλ²λ μλ‘μ΄ μμ²μ΄ λ€μ΄μ¬ λλ§λ€ νλ‘μΈμ€λ₯Ό μλ‘ μμ±νλ€. νλ‘μΈμ€ μμ±μλ μκ°μ΄ μ€λ 걸리λ―λ‘ μμ²μ΄ λ€μ΄μ€κΈ° μ μ 미리 μμ±νλ λ°©μμ μ¬μ©νκ³ , μμ²μ΄ λ€μ΄μ€λ©΄ λ§λ€μ΄ λμλ νλ‘μΈμ€λ₯Ό κ°μ Έλ€ μ¬μ©νλ€. μ΄λ¬ν ꡬ쑰λ κ°λ°νκΈ° μ½λ€λ 'νμ₯μ±'μ΄λ μ₯μ μ κ°μ‘λ€.
κ·Έλ¬λ 1999λ λΆν°λ μλ² νΈλν½λμ΄ λμμ Έμ μλ²μ λμ μ°κ²°λ 컀λ₯μ μ΄ λ§μμ‘μ λ λ μ΄μ 컀λ₯μ μ νμ±νμ§ λͺ»νλ λ¬Έμ κ° μκ²Όκ³ , μ΄λ₯Ό C10K λ¬Έμ λΌκ³ νλ€. μνμΉλ λ€μκ³Ό κ°μ μΉλͺ μ μΈ λ¬Έμ μ μ΄ μμλ€.
μ¦, μλ§μ λμ 컀λ₯μ μ κ°λΉνκΈ°μ Apache μλ²μ κ΅¬μ‘°κ° μ ν©νμ§ μμλ€. μ΄ν 2004λ μ μνμΉ μλ²λ₯Ό 보μνκΈ° μν μννΈμ¨μ΄κ° λμλλ°, μ΄κ²μ΄ NginXμ΄λ€.
Event-Driven ꡬ쑰
: μ΄λ²€νΈμ λ°μμ λ°λΌ μμ
μ μ§ννλ μ΄λ²€νΈ κΈ°λ° κ΅¬μ‘°λ₯Ό μ¬μ©νλ€. (μμΈν μ€λͺ
μ μλμ 'ꡬ쑰' ννΈμμ νμΈνμ!)
λμ μ±λ₯κ³Ό μ μ λ©λͺ¨λ¦¬ μ¬μ©
: NginXλ λΉλκΈ° I/O μ²λ¦¬ λ°©μμ μ¬μ©νμ¬ λμ μ±λ₯μ μ 곡νλ€. μ΄λ₯Ό ν΅ν΄, λκ·λͺ¨ μΉ μ¬μ΄νΈμμλ λΉ λ₯Έ μλ΅ μκ°μ 보μ₯ν μ μλ€. λν NginXλ μλ‘μ΄ μμ²μ΄ λ€μ΄μ€λλΌλ μλ‘μ΄ νλ‘μΈμ€μ μ€λ λλ₯Ό μμ±νμ§ μκΈ°μ μ μ λ©λͺ¨λ¦¬ μ¬μ©λμΌλ‘λ ν¨μ¨μ μΈ μ΄μ©μ΄ κ°λ₯νλ€.
리λ²μ€ νλ‘μ(Reverse Proxy) μ¬μ© κ°λ₯
: μμμ μ€λͺ
ν κ²κ³Ό κ°μ΄, μΈν°λ·κ³Ό λ°±μλ μ¬μ΄μ μλ² μμμΌλ‘μ λ§€κ°μ²΄μ μν μ λ§‘μ μ μλ€. λ‘λ λ°Έλ°μ±μ΄ κ°λ₯νκ³ , μΊμ± μλ²λ‘ μ΄μ©(λμΌ μμ² μ μΊμ μλ²λ‘λΆν° μ λ¬) κ°λ₯νκ³ , 보μ ν¨κ³Όλ μλ€.
SSL μ§μ
: 보μ νλ‘ν μ½μΈ SSLμ μ§μν΄ μΉ μλ²μ ν΄λΌμ΄μΈνΈ κ°μ 보μ μ°κ²°μ μ€μ νκ³ , SSL μΈμ¦μλ‘ μλ²μ μ μμ μΈμ¦ν μ μλ€.
λ°μ΄ν° μμΆ
: ν΄λΌμ΄μΈνΈκ° 보λ΄λ μμ²μ΄ ν
μ€νΈμΌ κ²½μ°, gzipμ μ¬μ©ν΄ ν΄λΉ λ°μ΄ν°λ₯Ό μμΆμν¬ μ μλ€.
NginXλ νλμ λ§μ€ν° νλ‘μΈμ€(master process)μ μ¬λ¬ μ컀 νλ‘μΈμ€(worker process)λ‘ μ΄λ£¨μ΄μ§λ€.
μ€μ λ‘ μΌμ νλ 건 μ컀 νλ‘μΈμ€μ΄λ€. μ컀 νλ‘μΈμ€λ μμ±λ λ κ°μ μ§μ λ listen μμΌμ λ°°μ λ°κ³ , κ·Έ μμΌμ μλ‘μ΄ ν΄λΌμ΄μΈνΈ μμ²μ΄ λ€μ΄μ€λ©΄ 컀λ₯μ μ νμ±νκ³ μ²λ¦¬νλ λ°©μμ΄λ€.
컀λ₯μ μ μ ν΄μ§ μκ°(Keep Alive μκ°) λ§νΌ μ μ§λλλ°, μ΄λ κ² μ»€λ₯μ μ΄ νμ±λμλ€κ³ ν΄μ 컀λ₯μ νλλ§ λ΄λΉνμ§λ μλλ€. νμ±λ 컀λ₯μ μ μλ¬΄λ° μμ²μ΄ μμΌλ©΄ μλ‘μ΄ μ»€λ₯μ μ νμ±νκ±°λ μ΄λ―Έ λ§λ€μ΄μ§ λ€λ₯Έ 컀λ₯μ μΌλ‘λΆν° λ€μ΄μ¨ μμ²μ μ²λ¦¬νλ€. NginXμμλ μ΄λ° 컀λ₯μ νμ±κ³Ό μ κ±°, μλ‘μ΄ μμ²μ μ²λ¦¬νλ κ²μ μ΄λ²€νΈ(event)λΌκ³ λΆλ₯Έλ€.
μ΄λ²€νΈλ€μ ν νμμΌλ‘ μ컀 νλ‘μΈμ€μ μ λ¬λλλ°, νμ λ΄κΈ΄ μνμμ μ컀 νλ‘μΈμ€κ° μ²λ¦¬ν λκΉμ§ λΉλκΈ° λ°©μμΌλ‘ λκΈ°νλ€. κ·Έλ¦¬κ³ μ컀 νλ‘μΈμ€λ νλμ μ€λ λλ‘ μ΄λ²€νΈλ₯Ό κΊΌλ΄μ μ²λ¦¬ν΄ λκ°λ€. (μνμΉ μλ²μ λ¬λ¦¬ NginXλ 컀λ₯μ μ°κ²° ν μμ²μ΄ μμΌλ©΄ λ€λ₯Έ 컀λ₯μ μ μμ²μ μ²λ¦¬νκ±°λ μλ‘μ΄ μ»€λ₯μ μ νμ±νλ―λ‘ μνμΉ μλ²μ λΉν΄ μμμ ν¨μ¨μ μΌλ‘ μ¬μ©νλ€.)
λ§μ½ νμ λ΄κΈ΄ μμ² μ€ νλκ° μκ°μ΄ μ€λ 걸릴 κ²½μ°, μ€λ λ ν(Thread Pool)μ λ§λ€μ΄ κ·Έ μμ²μ λ°λ‘ μννλ€. μ€λ λ νμ μ΄λ²€νΈλ₯Ό μμνκ³ λ€λ₯Έ μ΄λ²€νΈλ₯Ό μ²λ¦¬νλ λ°©μμ μ¬μ©ν΄, μμ μ²λ¦¬μ ν¨μ¨μ λμΈλ€.
μ΄λ¬ν μ컀 νλ‘μΈμ€λ λ³΄ν΅ CPU μ½μ΄ μλ§νΌ μμ±ν΄μ, μ½μ΄κ° λ΄λΉνλ νλ‘μΈμ€λ₯Ό λ°κΎΈλ νμλ₯Ό μ€μ΄κΈ°μ CPUμ 컨ν μ€νΈ μ€μμΉμ μ€μ΄κ² λλ€. μ΄κ² λ°λ‘ NginXκ° μ¬μ©νλ Event-Driven Model(μ΄λ²€νΈ κΈ°λ° κ΅¬μ‘°)μ΄λ€.
λ¨μ
μ₯μ
: ν°μΊ£(Tomcat)μ μνμΉ μννΈμ¨μ΄ μ¬λ¨μ μΉ μ ν리μΌμ΄μ μλ²(WAS)λ‘μ, μΌλ°μ μΌλ‘ Java Servletκ³Ό JSPμ μ€ν νκ²½μ μ 곡ν΄μ λμ μΈ μΉ νμ΄μ§λ₯Ό μμ±νλ 컨ν μ΄λμ κΈ°λ₯μ λ΄λΉνλ€. μ΄λ DB μ°κ²° λ° λ°μ΄ν° μ‘°μ, λ€λ₯Έ μμ©νλ‘κ·Έλ¨κ³Όμ μνΈ μμ©μ΄ κ°λ₯νλ€.
(ν°μΊ£μ λνμ μΈ WASλ‘, μμμ λ€λ£¬ WASμ νΉμ§μ λͺ¨λ ν¬ν¨νλ€.)