π λ€μ΄κ°λ©°
μμ€ν μ μ€κ³ν λ νμμ μΌλ‘ κ³ λ €νκ² λλ λΆλΆμ΄ μν€ν μ²μΈ κ² κ°μ΅λλ€.
μ΄λ λ§μ μ¬λλ€μ΄ μμ μ΄ μ€κ³νλ μμ€ν μ ννν λ Layered Architectureλ₯Ό μ¬μ©ν©λλ€.
μ΄λ² ν¬μ€ν μμλ ν΄λΉ μν€ν μ²μ λν΄ μμ보λ μκ°μ κ°λλ‘ νκ² μ΅λλ€.
π Software Architecture
λ¨Όμ 'μννΈμ¨μ΄ μν€ν μ²'λ 무μμΈμ§ μ λ¦¬ν΄ λ³΄λλ‘ νκ² μ΅λλ€.
μννΈμ¨μ΄ μν€ν μ²λ λͺ¨λ μννΈμ¨μ΄ μμ€ν μ κΈ°λ³Έ ꡬ쑰λ₯Ό λ§νλ©° μννΈμ¨μ΄ μμ€ν μ ꡬμ±λ°©λ²μ λν
μ€λν κ²°μ μ¬νμ λͺ¨μ λμ κ²μ΄λΌκ³ λ³Ό μ μμ΅λλ€.
- μμ€ν κ΅¬μ± λ° λμ μ리
- κ΅¬μ± μμ κ°μ κ΄κ³ λ° μμ€ν μΈλΆ νκ²½κ³Όμ κ΄κ³λ₯Ό λ¬μ¬
- μμ€ν κ΅¬μ± μμμ λν μ€κ³ λ° κ΅¬νμ μ§μνλ μμ€μ μμ
- μꡬ μ¬μ λ° μμ€ν μλͺ μ£ΌκΈ°λ₯Ό κ³ λ €
λν, μννΈμ¨μ΄ μμ€ν μμμ μν€ν μ²λ 물리μ μ€κ³κ° μλ κ° μ»΄ν¬λνΈ κ° κ΅¬μ± μμμ μ€κ³, κ΅¬μ± μμ κ°μ κ΄κ³, μ¬μ©μ μνΈ μμ© λ° μμ€ν μ λν μ¬μ©μμ μꡬλ₯Ό ν¬ν¨ν©λλ€. λνμ μΈ μμλ‘λ Microservices, client-server, layered architecture λ±μ ꡬ쑰λ€μ΄ μμ΅λλ€.
π Layered Architecture
μννΈμ¨μ΄ κ°λ°μμ μΌλ°μ μΌλ‘ κ°μ₯ λ§μ΄ μ¬μ©λλ μν€ν μ²μ λλ€.
Layerμ μμ λ°λΌ N Layered ArchitectureλΌκ³ λΆλ €μ§λλ°
λ¨μΌ μννΈμ¨μ΄ λ¨μλ‘ ν¨κ» κΈ°λ₯νλ μ¬λ¬ κ°λ³ μν Layerλ‘ κ΅¬μ±λ μν€ν μ² ν¨ν΄μ λλ€.
μ¦, κ° Layerλ μ ν리μΌμ΄μ λ΄μμμ νΉμ μν κ³Ό κ΄μ¬μ¬ λ³λ‘ ꡬλΆλλ κ²μ λλ€.
κ°μ₯ λ§μ΄ μ¬μ©λλ 3Layered Architectureλ μμ μ¬μ§κ³Ό κ°μ ꡬ쑰λ₯Ό κ°κ³ μμ΅λλ€.
Presentation Layer, Business Layer, Data Access Layer μ΄ 3κ°μ§μ Layerλ‘ κ΅¬μ±λμ΄ μμΌλ©°
2 Layered Architectureλ₯Ό 극볡νκΈ° μν΄ νμνκ³ μ¬μ©μ μΈν°νμ΄μ€ νκ²½κ³Ό λ°μ΄ν° λ² μ΄μ€ κ΄λ¦¬ νκ²½ μ¬μ΄μ μ€κ°μΈ΅μ΄ μΆκ°λ ꡬ쑰μ λλ€. μ€κ°μΈ΅μΈ Application Layerμμλ νΈλμμ μ²λ¦¬/λͺ¨λν°, λ©μμ§ μλ², μμ© μλ² λ± λ€μν λ°©λ²μΌλ‘ ꡬμΆλ μ μμ΅λλ€.
1. Presentation Layer
μννΈμ¨μ΄ μμ€ν κ³Ό μ¬μ©μ μνΈ μμ©μ λ΄λΉνλ Layerμ λλ€.. μ£Όμ λͺ©μ μ
μ 보λ₯Ό νμνκ³ μ¬μ©μλ‘λΆν° μ 보λ₯Ό μμ§νλ κ²μ λλ€. μ¬μ©μ λ°μ΄ν°λ₯Ό κ°μ Έμμ Application Layerλ‘ μ λ¬νμ¬ μ²λ¦¬νλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄ μΉ λΈλΌμ°μ , λ°μ€ν¬ν μ ν리μΌμ΄μ λλ GUIμμ μ€νλ μ μλ€.
2. Business Layer
κΈ°λ₯ μꡬ μ¬ν λ¬μ±κ³Ό κ΄λ ¨λ μΈ‘λ©΄μ μ²λ¦¬ν©λλ€. Presentation Layerμμ μμ§λ μ 보λ₯Ό λΉμ¦λμ€ λ‘μ§μ μ¬μ©νμ¬ μ²λ¦¬νλλ° λλ‘λ Data Access Layerμμ μ‘°νν μ 보λ€κ³Ό λΉκ΅ν΄μ μ²λ¦¬ν©λλ€. (μ ν리μΌμ΄μ μ λͺ¨λ λΉμ¦λμ€ λ‘μ§μ λ°λΌ λ°μ΄ν°λ₯Ό μ²λ¦¬ν¨.) λ Data Access Layerμ λ°μ΄ν°λ₯Ό μΆκ°, μμ λλ μμ ν μ μλ€.
μλΉμ€κ° μ μ 컀μ§κ² λλ€λ©΄ ν΄λΉ Layerμμ λΉμ¦λμ€ λ‘μ§κ³Ό λΉμ¦λμ€ λ‘μ§μ΄ μλ λ‘μ§ λ€μ΄ νΌμ¬ λλ κ²½μ°κ° λ°μν μ μμ΅λλ€.
μ΄ λλ¬Έμ λ‘μ§μ μμ ν λ λΉμ¦λμ€ λ‘μ§λ§μ μμ ν μ μκ³ λ€λ₯Έ λ‘μ§λ€λ ν¨κ» μμ λμ΄μΌ νλ κ²½μ°λ€μ΄ μκΉλλ€.
κ·Έλμ μ΅κ·Όμλ Layerλ₯Ό νλ λ λλ 4 Tier μν€ν μ² ( Presentation - Service - Domain - InfraStructure )κ° λ±μ₯νκ² λ©λλ€. (μ΄λ DDD (Domain Driven Design) κ°μ κ³³μμ μ¬μ©νλ€κ³ νλ€. )
3. Data Access Layer
λ°μ΄ν°λ² μ΄μ€μ κ·Έκ²μ μ‘μΈμ€ν΄μ μ½κ±°λ μ°λ κ²μ κ΄λ¦¬νλ νλ‘κ·Έλ¨μ ν¬ν¨νλ€. Applicationμ΄ μ²λ¦¬νλ λͺ¨λ μ 보λ₯Ό μ μ₯ν©λλ€.
μ΄λ¬ν 3Layered Architecture μλ
λ€μκ³Ό κ°μ΄ MVC ν¨ν΄μ΄ κ·Έ ꡬμ±μμλ‘μ¨ λ€μ΄κ° μ μκ² λ©λλ€.
Modelμ λ°μ΄ν°μ κ΄λ ¨λ λΆλΆμΌλ‘. λ°μ΄ν°μ λΉμ¦λμ€ λ‘μ§μ κ΄λ¦¬ν©λλ€. κ·Έλ λ€λ©΄ λΉμ¦λμ€ λ‘μ§μ λ§μΆ°μ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ Business(Domain) Layerμ μνλ€κ³ λ³Ό μ μμ΅λλ€.
Viewλ μ¬μ©μμκ² λ³΄μ¬μ§λ λΆλΆμ΄λ€. κ·Έλ κΈ°μ μ¬μ©μμμ μνΈμμ©μ ν΅ν΄μ μ 보λ₯Ό νμν΄μ£Όκ³ μ 보λ₯Ό κ°μ Έμ€λ Presentation Layerμ μνλ€κ³ λ³Ό μ μμ΅λλ€.
Controllerλ μ¬μ©μμ μ λ ₯λ Domainμ DTOλ‘ λ³ννλ λ±μ μ²λ¦¬νκ³ Modelκ³Ό Viewλ₯Ό μ΄μ΄μ€μΌ νκΈ° λλ¬Έμ Presentation Layerμ μνλ€κ³ λ³Ό μ μμ΅λλ€
π Layered Architectureμ μ₯λ¨μ
μ₯μ
- κ΄μ¬μ¬μ λΆλ¦¬ - κ° κ°λ³ κ΅¬μ± μμμ λ¨μΌ μ± μμ 보μ₯. ( μ’ μμ± μ ν )
- ν μ€νΈκ° μ¬μ - λͺ¨λ Layerκ° κ°λ³μ μΌλ‘ λ¨μ ν μ€νΈλ‘ 컀λ²λ μ μκ³ νΉμ Layerμ μν ꡬμ±μμλ λΆλ¦¬λμ΄ μμ΄ κ°λ³μ ν μ€νΈκ° κ°λ₯ν©λλ€.
- 격리 - κ° Layerκ° λ€λ₯Έ Layerμ λ 립μ μ΄μ΄μ λ³κ²½ μ¬νμ΄ λ€λ₯Έ Layerλ‘ μν₯μ λΌμΉμ§ μμ΅λλ€.
λ¨μ
- νμ₯μ± - μ ν리μΌμ΄μ 볡μ‘λκ° μ¦κ°νκ³ νλ‘μ νΈμ λ λ§μ κΈ°λ₯μ μΆκ°ν΄μΌνλ κ²½μ° νμ₯νλλ° λΉμ©μ΄ ν½λλ€. (λͺ¨λ리μ ꡬν κ²½ν₯)
- μνΈ μμ‘΄μ± - νλμ κ³μΈ΅μ΄ λ°μ΄ν° μμ μ μν΄μ μμ Layerμ μμ‘΄νκΈ°μ μνΈ μμ‘΄μ±μ΄ μ‘΄μ¬ν©λλ€.
- λ°°ν¬ - νΉμ Layerμ λν λ³κ²½μ μ 체 μμ€ν μ μ¬λ°°ν¬ν΄μΌ ν¨μ μλ―Έν©λλ€. ( ν° Applicationμ κ²½μ° λ λ¬Έμ κ° λ©λλ€. )
- μ±λ₯ - λΉμ¦λμ€ μμ²μ μ΄ννκΈ° μν΄ Architectureμ μ¬λ¬ Layerλ₯Ό κ±°μ³μΌ νλ λΉν¨μ¨μ±μΌλ‘ μΈν΄ κ³ μ±λ₯ Appicationμ μ ν©νμ§ μμ΅λλ€. (λ³λ ¬μ²λ¦¬κ° λΆκ°λ₯)
μΆμ² :
'Architecture' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
MVC ν¨ν΄ μμ보기 (0) | 2023.11.03 |
---|---|
μμ© μλΉμ€λ μ΄λ»κ² ꡬνν΄μΌ νλκ° (0) | 2023.03.25 |
λ°±μλ μν€ν μ² κ°μ(2) - DIP (0) | 2023.01.22 |
λ°±μλ μν€ν μ² κ°μ (0) | 2023.01.16 |