ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Architectural Styles (1) - 개요
    Learn/Architecture 2023. 4. 7. 00:37

    다양한 종류의 Architectural Style과 각각의 Quality Attribute에 대해 살펴보자. 

     

    # Quality Attribute

    품질 속성은 여러 가지 버전이 있는데 아래 정도만 같이 살펴보려한다. 

    핵심만 살펴보고 넘어가자. 

     

    Availability (가용성)

    시스템이 얼마나 오래 끊김없이 작동하냐에 대한 속성이다. 

    백업 서버가 있어서 장애가 있어도 24시간 가동된다면 가용성이 높다. 

     

    Interoperability (상호 운영성)

    분산된 환경에서 인터페이스를 통해 정보를 잘 주고받을 수 있는지에 대한 속성이다. 

    아래와 같이 Mediator가 중재 해 줄 경우 상호 운영성이 높다. 

     

    Modifiability (변경 용이성)

    얼마나 수정이 용이한지에 대한 속성이다. 

    커플링이 강하면 변경 용이성이 떨어진다. 

     

    Performance (성능)

    성능을 높일 수 있거나 성능이 떨어지는 것을 막을 수 있으면 성능이 높다. 

    가령 아래와 같이 트래픽이 몰려도 성능이 떨어지지 않게 해줄 수 있으면 성능이 높다. 

     

    Security (보안성)

    악의적인 행동을 막을 수 있냐에 대한 속성이다. 

    가령 시스템이 분산된 노드에 있다면 공격 포인트가 많아져서 보안성이 낮다. 

     

    Testability (테스트 가능성)

    테스트를 쉽게 할 수 있냐에 대한 속성이다. 

    예를 들어 재현이 어려운 환경이면 테스트 가능성이 낮다. 

     

    Usability (사용성)

    유저가 원하는 작업을 하기 수월하면 사용성이 높다고 한다. 

    예시로 MVC패턴처럼 View를 분리하면 뭉쳐있는 것 보다 수정이 쉬우므로 사용성이 높다. 

     

    # Architectural Style 

    아래와 같은 스타일들이 있다. 

    각각 장단점이 있으므로 품질 속성을 잘 따져서 상황에 맞게 사용해야 한다. 

    Category Style Sub-style
    Data Flow Batch Sequential  
    Pipe and Filter  
    Process Control  
    Data Centered Shared Repository  
    Blackboard  
    Implicit Invocation Event Based  
    Message Based  
    Interaction Oriented Model-View-Controller  
    Presentation-Abstraction-Control  
    Hierarchical Main-Subroutine  
    Master-Slave  
    Layered Virtual Machine
      Microkernel
    Distributed Multi-tier Client-Server
    Broker Dispatcher
    Service-Oriented Microservice
    Edge-Based  

     

    댓글

Designed by Tistory.