Skip to main content

응집도란?

응집도

모듈에 포함된 내부 요소들이 하나의 책임 또는 목적을 위해 연결되어 있는 연관 정도를 말하는 것을 응집도라고 합니다.

이외에도

  • 모듈이 하나의 목적을 수행하는 요소들 간의 연관성 척도
  • 모듈 내부의 기능적인 응집 정도
  • 변경이 발생할 때 모듈 내부에서 발생하는 변경 정도
  • 응집도가 높을 수록 좋다

하나의 모듈에 하나의 책임 또는 목적을 위해 연결이 잘 모여있는 것과 아닌 것을 비교해보겠습니다.



유지보수를 수행할 때, 모듈의 응집도는 매우 중요한 역할을 합니다. 응집도가 높은 모듈에서는 "a"라는 기능만을 수행하고, 이 기능이 한 곳에 집중되어 있기 때문에, 수정이 필요할 때 해당 모듈만을 찾아 수정하면 됩니다. 이는 변경 대상과 범위가 명확해져 코드 수정이 용이해지는 장점을 가집니다.

반면, 응집도가 낮은 모듈에서는 "a" 기능이 여러 모듈에 흩어져 있거나, A 모듈 안에 "a" 기능 외에 "b", "c", "d" 기능들도 함께 섞여 있어 수정이 어렵습니다. 이런 경우, 하나의 기능을 수정하기 위해 여러 곳을 변경해야 하며, 이는 유지보수의 복잡도를 증가시킵니다.

또한, 응집도가 높은 경우, 하나의 변경을 수용하기 위해 모듈 전체가 함께 변경되는 경향이 있습니다. 이는 수정해야 할 코드가 한곳에 모여 있어 파악하기 쉬워집니다. 그러나 이것이 항상 좋은 것만은 아닙니다.

응집도가 높은 것이 무조건 좋은가?

응집도가 높으면 여러 코드가 한 모듈 안에 있을 때, 그중 일부 코드에 대한 변경이 필요할 경우, 모듈 내의 다른 코드도 영향을 받을 수 있습니다. 예를 들어, 서로 다른 기능을 가진 코드가 하나의 모듈에 모여 있으면, 한 기능의 수정이 다른 기능에도 영향을 미칠 수 있습니다. 또한, 코드가 한 곳에 모여 있더라도 이것이 반드시 코드의 복잡성을 감소시키는 것은 아닙니다. 오히려 코드가 복잡해져서 수정이 더 어려워질 수도 있습니다.

결론적으로, 응집도가 높은 구조는 일반적으로 유지보수를 용이하게 하고 복잡도를 낮추는 효과를 가집니다. 하지만, 이것이 항상 최선의 해결책은 아닙니다. 적절한 응집도를 유지하는 것이 중요하며, 각 기능과 상황에 따라 적절한 응집도 수준을 결정해야 합니다.