Skip to main content

모듈화, 응집도, 결합도

· 2 min read

모듈화​

모듈화의 개념​

  • 시스템을 분해하고 추상화하여 SW 성능을 향상시키거나, 시스템의 디버깅, 테스트, 통합 및 수정을 용이하도록 하는 SW 설계 기법

모듈화의 장점​

  • 모듈 재사용성, 개발과 유지보수성
  • 복잡성 감소
  • 오류 파급효과 최소화
  • 기능 분리가능, 인터페이스 단순화
  • 낮은 결합도, 높은 응집도

응집도와 결합도 개요​

응집도와 결합도의 개념​

  • 응집도: 하나의 모듈 내부의 처리요소 간 기능적 연관성을 측정하는 척도
  • 결합도: 모듈 간의 관련성을 측정하는 척도

응집도와 결합도의 배경​

  • 최근 MSA 적용에 따른 모듈화의 중요성이 증가되었고, MSA의 각 서비스 단위(컴포넌트)는 응집도가 높고 결합도가 낮게 구현되어야함.

응집도와 결합도 종류 및 설명​

응집도의 종류 및 설명​

우논시절통순기

종류설명응집도
기능적모든 요소가 단일 기능 수행높음
순차적한 기능의 출력이 다른 기능의 입력으로 사용▲
통신적동일한 입출력 데이터로 다른 기능 수행⎮
절차적기능 요소가 반드시 특정 순서대로 실행⎮
일시적기능 요소가 모두 같은 시간에 실행⎮
논리적논리적으로 유사하나 관계가 밀접하지 않음⎮
우연적모듈 내 요소가 연관이 없음낮음
  • 가능한 높은 응집도를 추구하여 유지보수 용이성 확보
  • 모듈 간 결합도는 최소화하여 각 모듈은 높은 응집도 확보
  • Co-incidental -> Logical -> Temporal -> Procedural -> Communicational -> Sequential -> Functional

결합도의 종류 및 설명​

내공외제스자

종류설명결합도
자료모듈 간 파라미터 전달낮음
스탬프모듈 간 자료구조 전달⎮
제어다른 모듈을 제어하기 위해 플래그 전송⎮
외부모듈이 SW외부 환경과 연관⎮
공통모듈들이 공통 데이터 참조▼
내용다른 모듈의 내부 데이터 변경높음
  • 모듈 상호간 낮은 결합도 추구
  • 모듈 간 사이드 이펙트(리플 이펙트) 최소화
  • Contents -> Common -> External -> Control -> Stamp -> Data

응집도, 결합도 적용방안​

구분내용비고
설계시스템 모듈화, API통신유지보수 용이성
개발모듈간 인터페이스 단순화, 명확한 역할 분담의존성 주입

모듈성을 높이기 위한 고려사항​

  • 코드리뷰를 통해 개발단계에서의 의존성 문제, 인터페이스 불일치 등 저해요인 방지
  • MSA 설계시 서비스 단위로 높은 응집도, 낮은 결합도를 갖게 설계