- 응집도와 결합도에 대해서 설명해주세요.2025년 03월 11일 11시 13분 18초에 업로드 된 글입니다.작성자: do_hyuk
응집도(Cohesion) 는 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타냅니다.
결합도(Coupling) 는 의존성의 정도를 나타내며, 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 나타냅니다.
응집도와 결합도는 변경과 관련이 깊으며, 일반적으로 좋은 설계란 높은 응집도와 낮은 결합도를 가진 모듈로 구성된 설계를 의미합니다.
객체의 행동에서 객체가 알고 있는 모든 정보를 사용하거나, 변경이 존재하는 경우 특정 모듈만 수정되면 응집도가 높다고 판단할 수 있습니다.
또한, 특정 모듈을 변경하는 경우에 다른 모듈도 변경해야 하는 상황에서는 결합도가 높다고 판단할 수 있습니다.
캡슐화의 정도가 응집도와 결합도에 영향을 미치는데요. 캡슐화를 지키면, 모듈 안의 응집도는 높아지고 모듈 사이의 결합도는 낮아집니다.
따라서, 응집도와 결합도를 고려하기 전에 먼저 캡슐화를 향상하기 위해 노력해야 합니다.
캡슐화는 무엇인가요? 😀
객체 내부의 세부적인 사항을 감추는 것을 캡슐화라고 합니다.
캡슐화의 목적은 변경하기 쉬운 객체를 만드는 것입니다.
캡슐화를 통해 객체 내부로의 접근을 제한하면 객체와 객체 사이의 결합도를 낮출 수 있기 때문에 설계를 더욱 쉽게 변경할 수 있습니다.
만약 캡슐화가 약화되어 있다면, 클라이언트 코드로 변경이 전파되어 변경이 쉽지 않을 수 있습니다.
그리고, 협력을 재사용하기 어려운 상황을 만들어낼 수 있는데요. 이러한 상황을 예방하기 위해서 캡슐화는 객체지향 프로그래밍에서 기본기로 여겨집니다.
'면접 대비' 카테고리의 다른 글
Redis가 싱글 스레드로 만들어진 이유를 설명해주세요. (1) 2025.03.28 JWT 특징과 주의 사항을 설명해주세요. (0) 2025.03.27 CAP 정리에 대해서 알고 계신가요? (0) 2025.03.05 시스템 간 비동기 연동 방식에는 무엇이 있나요? (0) 2025.03.04 캐시 스탬피드 현상에 대하여 설명해주세요. (0) 2025.03.03 댓글