결합도, 그리고 응집도

golony·2022년 6월 11일
0

개발

목록 보기
10/23
post-thumbnail

TL:DR

  • 결합도: 모듈간의 상호 의존 정도
  • 응집도: 모듈 내부의 기능적인 집중 정도
  • 결합도는 낮을수록, 응집도는 높을수록 좋다.

개요

어느날에 누군가가 결합도와 응집도에 대해 설명해줄 수 있는지 물어보았는데, 분명 들은 적은 있는데 기억이 나지 않고, 엉뚱한 이야기를 해버렸다. (ㅠㅠ)

그래서 이번 기회에 정리해보려고 한다.

결합도

모듈간의 상호 의존 정도

수준

자료 < 스탬프 < 제어 < 외부 < 공통 < 내용

  • 자료: 모듈 간에 파라메터를 통해서만 상호작용
  • 스탬프: 모듈 간에 파라메터로 객체(리스트 포함)가 전달되는 경우
  • 제어: 모듈간에 처리할 파라메터와 처리방식(DCD, Flag)도 함께 전달하는 경우
  • 외부: 다른 모듈의 반환값을 다른 모듈에서 참조하는 경우 (A모듈 처리결과를 B모듈에 전달)
  • 공통: 모듈 외부에 선언된 전역변수를 참조하고 전역변수를 갱신하는 경우
  • 내용: 다른 모듈 내부의 변수, 기능을 사용하는 경우

응집도

모듈 내부의 기능적인 집중 정도

수준

우연적 < 논리적 < 시간적 < 절차적 < 교환적 < 순차적 < 기능적

  • 우연적: 연관성 없음
  • 논리적: 유사한 성격, 하나로 분류되는 처리요소들이 한 모듈에서 처리
  • 시간적: (기능적 연관성과는 별개로) 특정시간에 처리되어야 하는 활동을 한 모듈에서 처리
  • 절차적: 모듈 안의 구성요소들이 모듈 내부의 기능을 순차적으로 호출하는 경우
  • 교환적: 동일한 입/출력을 사용해 다른 기능을 수행하는 기능들이 모여있는 경우
  • 순차적: 모듈 내의 한 활동의 결과를 다른 활동이 사용하는 경우
  • 기능적: 모듈 내부의 모든 기능이 단일목적을 위해 수행되는 경우

참고자료

profile
더 나은 세상으로 나아가는 서비스를 만들고 싶습니다.

0개의 댓글