TIL
결합도와 응집도
Jenner
2024. 6. 18. 22:09
프로그래밍은 문제를 해결해 나가는 과정.
문제를 작은 조각으로 나누는 것이 모듈화
좋은 소프트웨어일 수록 모듈의 독립성이 높음 .
결합도와 응집도
결합도는 모듈간의 의존도.
결합도는 상호작용을 통해 작동하도록 함.
결합도가 느슨할 수록 좋은 코드
알아야 할 것이 많아질 수록 결합도가 높은 것.
ex: 자동차 바퀴를 가는데 핸들까지 갈아야하는 경우 (설계가 잘못 되었다.)
결합도의 종류
자료결합도. : 파라미터를 통해서만 상호작용
스탬프 결합도 : 모듈간 배열, 객체 , 자료구조 전달
제어 결합도 : 다른 모듈 내부의 논리적 흐름을 제어하는 제어요소 전달 (콜백함수 ? )
외부 결합도 : 다른 모듈의 데이터를 참조해야 하는 경우
공통 결합도 : 여러개 모듈이 하나의 공통 데이터 영역을 사용하는 경우
내용 결합도 : 어떤 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용
응집도는
한 모듈에서 단일목적을 위해 수행하고 변수가 공통적으로 사용될 수록 응집도가 높다고 할 수 있다.
결합도가 느슨하고 응집도가 높을 수록 유지보수하기 좋은 코드다.
정리
모듈내에서의 이야기인 것 전제.
모듈을 분리하는 것은 응집도를 기준으로 분리 해야하며,
결합도를 느슨하게 하여야 할 것 같다.