특정 모듈이 다른 모듈에 의존하는 정도

  • 커플링이 심해진 코드를 스파게티 코드라 함

살펴봐야 할 것들

  • 왜 결합도가 높아졌는가?
  • 어떻게하면 그 결합도를 낮출 수 있는가?

종류 (강한순서로)

  • 내용결합도
    • 하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 의존하는 상태
    • 다른 모듈의 로컬 데이터의 접근하는 경우
    • A 모듈의 데이터 생성 방법을 변경하면 B 모듈의 변경이 필요
  • 공통결합도
    • 두 개의 모듈이 같은 전역 변수를 공유하는 상태
  • 외부결합도
    • 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유하는 상태
    • 외부 툴이나 디바이스 통신과 관련이 있음
  • 제어결합도
    • 하나의 모듈이 다른 모듈로 정보를 넘겨 흐름을 제어하는 경우를 말함
  • 스탬프결합도
    • 복합 데이터 구조(Array, Dictionary)를 공유하고, 그 일부만 사용
  • 자료결합도
    • 모듈들이 자료요소 성격의 파라미터를 통해 데이터를 공유하는 경우
  • 메시지결합도
    • 메시지 패싱을 통해 이루어짐

Reference