응집도(Cohesion)

꽃봉우리·2024년 7월 26일

응집도

  • 모듈 내부의 요소들이 서로 관련되어 있는 정도
  • 하나의 모듈이 단일 목적 또는 책임을 얼마나 잘 수행하는지를 나타냄

중요성

  • 높은 응집도는 모듈의 독립성과 재사용성을 향상시킴
  • 유지보수성과 이해도를 높임
  • 변경의 영향을 최소화하고 테스트를 용이하게 함

응집도의 유형(낮은 순에서 높은 순)

  • 우연적 응집도
    • 모듈 내 요소들 사이에 아무런 의미 있는 관계가 없음
  • 논리적 응집도
    • 논리적으로 관련된 기능들을 모아놓은 경우
  • 시간적 응집도
    • 특정 시점에 함께 실행되는 기능들을 모아놓은 경우
  • 절차적 응집도
    • 특정 수행 순서로 관련된 요소들을 모아놓은 경우
  • 통신적 응집도
    • 동일한 입력과 출력을 사용하는 요소들을 모아놓은 경우
  • 순차적 응집도
    • 한 요소의 출력이 다른 요소의 입력으로 사용되는 경우
  • 기능적 응집도
    • 모듈의 모든 요소가 단일 잘 정의된 목적을 위해 작동하는 경우
    • 가장 높은 수준의 응집도

높은 응집도를 위한 설계 원칙

  • 단일 책임 원칙 준수
  • 관련 기능을 그룹화
  • 불필요한 기능 제거 또는 분리
  • 인터페이스 분리 원칙 적용

응집도와 결합도의 관계

  • 일반적으로 높은 응집도는 낮은 결합도로 이어짐
  • 응집도가 높은 모듈은 다른 모듈과의 의존성이 적어짐

높은 응집도를 만들기 위해선 어떻게 해야할까?

  • 지속적인 리팩토링과 설계 개선이 필요
  • 모듈의 목적을 명확히 정의해야함
  • 관련 없는 기능은 분리
  • 단일 책임 원칙을 준수하는 것이 중요

0개의 댓글