junome

결합도 너 뭐되??

결합도

결합도는 다른 모듈 과의 의존성이 정도 입니다. 모듈 수정을 위해 다른 모듈의 변경을 요구하는 정도로 알고 계시면 될 것 같습니다.

  • 모듈이 다른 모듈에 의존하는 정도의 척도
  • 모듈과 모듈간의 상호 결합 정도를 나타냄
  • 결합도는 낮을 수록 좋습니다.
스크린샷 2023-11-17 오전 10 14 00

위 예시에서 b의 기능을 수정하기 위해서 B모듈을 수정했을 때 A, D, E, F, I, E 모두 수정하게 된다면 유지보수가 힘들어집니다.

이럴때 다른 모듈 과의 결합도가 높은 상황입니다.

반대로 A모듈이 다른 모듈들을 참조하는 부분이 거의 없어서 의존도가 낮은 상황이라면 유지보수가 편해집니다. 이렇게 참조가 적은 상황을 “느슨하게 연결되었다” 표현하며 결합도가 낮은 상황이라 할 수 있습니다.

결합도가 높으면 변경하고 검토해야되는 모듈 수가 많아지는 단점이 있습니다.

결합도는 낮을 수록 코드를 수정하기 좋아집니다.

결합도가 높으면 어떤 문제가 생길까?

  • 수정하려는 모듈을 이해하기 위해 연관된 다른 모듈을 함께 이해해야 합니다.
  • 재사용하기 힘들다

결합도가 낮으면 좋은점

  • OCP의 원칙을 잘 지킨 모듈
    • 확장에는 열려있고 변경에는 닫혀 있는 모듈
  • • 다형성을 잘 지킨 모듈