본문 바로가기
Computer Science/Software Engineering

[Software Engineering] Chapter 05. 아키텍처 설계

by song.ift 2023. 2. 23.

아키텍처(Architecture)

  • 소프트웨어 시스템의 각 하위 시스템의 관계를 표현하는 구조의 집합
  • 하나의 시스템은 여러 개의 하위 시스템(sub-system, Module, Component ...)으로 구성되어있음
  • 설계 단계의 결과물이 SW 아키텍처

 

아키텍처 설계

  • 과도하게 복잡한 설계는 지양해야 함
  • 결합도와 응집도
    • 아키텍처 설계 시, 각 모듈은 응집도가 높아야 하고, 결합도는 낮아야 한다.
      • 모듈의 '독립성'을 판단하는 지표
      • why? 좋은 설계의 지표. 높은 유지보수성과 가독성 확보
    • 결합도(Coupling, 의존도) : 어떤 모듈이 다른 모듈에 의존하는 정도
    • 응집도(Cohesion) : 모듈 내부 간 연관 정도
    • 응집도를 높인다 : 하나의 모듈은 하나의 목적에만 집중하여 동작하도록 해야 한다.
    • 결합도를 낮춘다 : 모듈이 서로 독립적으로 동작하도록 한다. 모듈 A의 흐름이 모듈 B의 흐름에 영향을 최대한 덜 주도록 하는 것

 

아키텍처 패턴 예시

  • 계층적 아키텍처
  • 클라이언트 서버 아키텍처
  • 마스터 - 슬레이브 아키텍처
  • MVC(Model, View, Controller) 아키텍처

계층적 아키텍처
클라이언트 서버 아키텍처
마스터 - 슬레이브 아키텍처
MVC(Model, View, Controller) 아키텍처

 

댓글