TIL

결합도와 응집도

Jenner 2024. 6. 18. 22:09

 

프로그래밍은 문제를 해결해 나가는 과정. 

문제를 작은 조각으로 나누는 것이 모듈화 

 

좋은 소프트웨어일 수록 모듈의 독립성이 높음 .

 

결합도와 응집도 

 

결합도는 모듈간의 의존도. 

결합도는 상호작용을 통해 작동하도록 함.

결합도가 느슨할 수록 좋은 코드

 

알아야 할 것이 많아질 수록 결합도가 높은 것. 

ex: 자동차 바퀴를 가는데 핸들까지 갈아야하는 경우 (설계가 잘못 되었다.)

 

 

결합도의 종류 

자료결합도. : 파라미터를 통해서만 상호작용 

스탬프 결합도 : 모듈간 배열, 객체 , 자료구조 전달 

제어 결합도 : 다른 모듈 내부의 논리적 흐름을 제어하는 제어요소 전달 (콜백함수 ? )

외부 결합도 : 다른 모듈의 데이터를 참조해야 하는 경우 

공통 결합도 : 여러개 모듈이 하나의 공통 데이터 영역을 사용하는 경우 

내용 결합도 : 어떤 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용

 

응집도는 

한 모듈에서 단일목적을 위해 수행하고 변수가 공통적으로 사용될 수록 응집도가 높다고 할 수 있다. 

 

결합도가 느슨하고 응집도가 높을 수록 유지보수하기 좋은 코드다. 

 

 

 

정리 

 

모듈내에서의 이야기인 것 전제.

모듈을 분리하는 것은 응집도를 기준으로 분리 해야하며, 

결합도를 느슨하게 하여야 할 것 같다.