CoDream

결합도(Coupling) 와 응집도(Cohesion) 본문

JAVA/JAVA 이론

결합도(Coupling) 와 응집도(Cohesion)

코잠 2024. 6. 14. 11:26
728x90
반응형

 

 

결합도(Coupling)

 

정의

결합도는 한 모듈(또는 클래스)이 다른 모듈에 얼마나 의존하는지를 나타냅니다.

 

낮은 결합도

모듈들이 서로 독립적으로 동작할 수 있도록 최소한의 의존성을 가지는 것.

낮은 결합도는 코드의 변경이나 확장이 쉬워지고, 재사용성이 높아지는 장점이 있습니다.

 

높은 결합도

모듈들이 서로 강하게 의존하는 것.

높은 결합도는 하나의 모듈 변경이 다른 모듈에 영향을 미치기 쉬워 유지보수가 어려워집니다.

 

 

응집도(Cohesion)  

정의

응집도는 모듈 내부의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타냅니다.

 

높은 응집도

모듈 내부의 메서드와 데이터들이 하나의 책임을 중심으로 잘 통합되어 있는 것.

높은 응집도는 모듈의 가독성, 재사용성, 유지보수성을 높입니다.

 

낮은 응집도

모듈 내부의 메서드와 데이터들이 서로 관련성이 적고 산만하게 분리되어 있는 것.

낮은 응집도는 모듈을 이해하고 수정하기 어렵게 만듭니다.

 

그래서?

좋은 코딩 습관

낮은 결합도와 높은 응집도

좋은 코딩은 낮은 결합도와 높은 응집도를 유지하는 것을 목표로 합니다.

이렇게 하면 코드의 유지보수성과 확장성이 향상됩니다.

쓸데없이 메서드를 나누는 것의 문제점

낮은 응집도

관련 없는 기능을 여러 메서드로 쪼개면 모듈의 응집도가 낮아집니다.

이는 코드를 이해하기 어렵게 만들고, 특정 기능을 변경할 때 많은 부분을 수정해야 할 수 있습니다.

 

불필요한 복잡성

지나치게 많은 메서드로 나누면 코드가 복잡해지고, 각 메서드의 역할이 불분명해질 수 있습니다.

이는 유지보수를 어렵게 하고, 오류 발생 가능성을 높입니다.

728x90
반응형