Q8 & Q9: ν΄λ¦° μν€ν
μ²μ 3-Tier μν€ν
μ²
μ§λ¬Έ: ν΄λ¦° μν€ν
μ²μ κ³μΈ΅ ꡬ쑰λ₯Ό μ€λͺ
νμΈμ. λν μ ν΅μ μΈ 3-Tier μν€ν
μ²μ νλ μΉ κ°λ°μμ κ³μΈ΅ κ²½κ³κ° μ΄λ»κ² λ³ννλμ§ μ€λͺ
νμΈμ.
| μ©μ΄ |
μ€λͺ
|
| Clean Architecture |
λΉμ¦λμ€ λ‘μ§μ μΈλΆ μΈν°νμ΄μ€μ λΆλ¦¬νλ μ€κ³ λ°©λ²λ‘ |
| Entities |
ν΅μ¬ λΉμ¦λμ€ κ·μΉ κ³μΈ΅ (κ°μ₯ λ΄λΆ) |
| Use Cases |
μ ν리μΌμ΄μ
λΉμ¦λμ€ λ‘μ§ κ³μΈ΅ |
| Interface Adapters |
Use Caseμ μΈλΆ μμ€ν
κ° λ³ν κ³μΈ΅ |
| Frameworks & Drivers |
κ°μ₯ μΈλΆ κ³μΈ΅ β DB, μΉ νλ μμν¬, λλ°μ΄μ€ λλΌμ΄λ² |
| 3-Tier Architecture |
Presentation, Application, Data 3κ³μΈ΅ ꡬ쑰 |
| WAS |
Web Application Server β λΉμ¦λμ€ λ‘μ§κ³Ό λμ μ½ν
μΈ μ²λ¦¬ |
ν΄λ¦° μν€ν
μ² (Clean Architecture)
Robert C. Martin("Uncle Bob")μ΄ μ μ. λΉμ¦λμ€ λ‘μ§μ΄ νλ μμν¬Β·DBΒ·UIμ λ
립μ μΌλ‘ λμνλλ‘ μ€κ³.
βββββββββββββββββββββββββββ
β Frameworks & Drivers β β DB, Web, UI, μΈλΆ API
β βββββββββββββββββββββ β
β β Interface Adaptersβ β β Controller, Presenter, Gateway
β β βββββββββββββββ β β
β β β Use Cases β β β β μ ν리μΌμ΄μ
λΉμ¦λμ€ λ‘μ§
β β β βββββββββ β β β
β β β βEntitiesβ β β β β ν΅μ¬ λΉμ¦λμ€ κ·μΉ
β β β βββββββββ β β β
β β βββββββββββββββ β β
β βββββββββββββββββββββ β
βββββββββββββββββββββββββββ
| μμΉ |
μ€λͺ
|
| λ
λ¦½μ± |
λΉμ¦λμ€ λ‘μ§μ΄ UIΒ·DBΒ·νλ μμν¬μ λ
립μ |
| ν
μ€νΈ μ©μ΄μ± |
μΈλΆ μμ μμ΄ λΉμ¦λμ€ λ‘μ§ λ¨λ
ν
μ€νΈ κ°λ₯ |
| κ°λ
μ± |
λͺ
ννκ³ μ¬μ¬μ© κ°λ₯ν μ½λ ꡬ쑰 |
| κ³μΈ΅ |
μν |
| Entities |
ν΅μ¬ λΉμ¦λμ€ κ°μ²΄μ κ·μΉ |
| Use Cases |
Entitiesλ₯Ό νμ©ν λΉμ¦λμ€ λ‘μ§ κ΅¬ν |
| Interface Adapters |
Use Casesμ μΉΒ·DBΒ·μΈλΆ μμ€ν
κ° μ€κ³ |
| Frameworks & Drivers |
DB, μΉ νλ μμν¬, λλ°μ΄μ€ λλΌμ΄λ² λ± κ΅¬μ²΄μ λꡬ |
| κ³μΈ΅ |
μν |
| Presentation Layer |
μ¬μ©μ μΈν°νμ΄μ€ β μ
λ ₯ μμ , κ²°κ³Ό μΆλ ₯ |
| Application Layer |
λΉμ¦λμ€ λ‘μ§ β λͺ
λ Ή μ²λ¦¬, μμ¬κ²°μ |
| Data Layer |
λ°μ΄ν°λ² μ΄μ€ β λ°μ΄ν° μ μ₯ λ° μ‘°ν |
μ ν΅μ λ°©μ vs νλ μΉ κ°λ° λΉκ΅
| νλͺ© |
μ ν΅μ 3-Tier |
νλ μΉ κ°λ° |
| κ³μΈ΅ λΆλ¦¬ |
λͺ
νν κ³μΈ΅ κ²½κ³ |
κ²½κ³ λͺ¨νΈ β κ³μΈ΅ ν΅ν© κ²½ν₯ |
| μΉ μλ² |
μ μ μ½ν
μΈ λ§ μ 곡 |
μ μ Β·λμ μ½ν
μΈ λͺ¨λ μ 곡 |
| μ± μλ² (WAS) |
λͺ¨λ λΉμ¦λμ€ λ‘μ§ μ²λ¦¬ |
νλ μμν¬μ λ΄μ₯ |
| νμ₯μ± |
μ€κ° κ³μΈ΅ μΆκ° λ°©μ |
λ§μ΄ν¬λ‘μλΉμ€, 컨ν
μ΄λ λ
Έλ |
| μμ κΈ°μ |
Apache + WebLogic + Oracle |
Node.js, Spring Boot, Django |
νλ νλ μμν¬(Spring Bootμ Tomcat, Djangoμ Gunicorn, Node.js)λ μ± μλ²λ₯Ό λ΄μ₯νμ¬ λ³λ WASκ° λΆνμν΄μ‘λ€.