응집도와 결합도

박수오·2025년 2월 15일

소프트웨어 설계에서 응집도와 결합도는 좋은 코드 설계를 판단하는 중요한 기준으로

응집도는 높을수록, 결합도는 낮을수록 좋다.

응집도

응집도(Cohesion)란

하나의 모듈(클래스, 함수 등)이 얼마나 관련된 기능들로 구성되어 있는지를 나타내는 지표이다.

하나의 모듈이 하나의 역할만을 담당할수록 응집도가 높다고 볼 수 있다.

응집도가 높다면

하나의 클래스가 하나의 책임만을 진다.
불필요한 기능이 포함되지 않아 코드 수정 시 영향이 적다.
유지보수 및 확장성이 뛰어나다

응집도가 낮다면

하나의 모듈이 여러 기능을 담당하면, 수정 할 때 의도치 않은 부작용이 발생한다.
변경이 자주 발생하며, 다른 기능과 얽혀있어 유지보수가 어려워진다.

결합도

결합도(Coupling)란

하나의 모듈(클래스, 함수 등)이 다른 모듈과 얼마나 강하게 연결되어 있는가를 나타내는 지표이다.

결합도가 낮은경우

한 모듈을 변경해도 다른 모듈에 끼치는 영향이 적다.
코드 재사용성과 유지보수성이 증가한다.

결합도가 높은 경우

한 모듈이 변경될 때, 관련된 모든 모듈이 함께 수정되어야 한다.
모듈간 의존성이 높아지면서 확정성과 유지보수성이 떨어진다.

profile
모호하게 알고있거나 개념없이 사용만 했던 것들을 정리한 내용입니다.

0개의 댓글