결합도와 응집도는 좋은 설계에서 어떻게 다뤄야 하나요?
답변 포인트
모듈 간 의존과 내부 책임 집중도를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
좋은 설계는 모듈 간 결합도를 낮추고 모듈 내부 응집도를 높입니다. 변경 영향 범위를 줄이고 책임이 명확한 코드를 만들기 위해 중요합니다.
좋은 설계는 모듈 간 결합도를 낮추고 모듈 내부 응집도를 높입니다. 변경 영향 범위를 줄이고 책임이 명확한 코드를 만들기 위해 중요합니다.
핵심 개념
핵심 기준은 모듈 간 의존과 내부 책임 집중도입니다. 이 개념은 단순한 용어가 아니라, 실제 코드나 시스템에서 반복적으로 생기는 문제를 다루기 위해 등장했습니다.
설계는 앞으로의 변경을 감당하기 쉬운 구조를 만드는 일입니다. 책임, 의존성, 경계, 일관성을 기준으로 판단해야 합니다.
동작 흐름
- 먼저 어떤 문제가 있는지 확인합니다.
- 이 개념이 그 문제를 어떤 기준으로 나누거나 해결하는지 봅니다.
- 실제 코드에서는 입력, 상태, 실행 순서, 비용이 어떻게 바뀌는지 확인합니다.
- 마지막으로 한계와 부작용을 함께 점검합니다.
실제 예시
좋은 경계의 기준
- 변경 이유가 같은 것끼리 모은다
- 외부 기술보다 도메인 규칙을 중심에 둔다
- 의존 방향을 한쪽으로 유지한다
- 테스트에서 대체하기 쉬운 구조를 만든다설계 판단은 정답을 고르는 일이 아니라 현재 문제의 변경 가능성과 운영 비용을 비교하는 일입니다.
실무에서 주의할 점
- 패턴을 위한 패턴은 오히려 복잡도를 키웁니다.
- 변경 가능성이 낮은 곳에 과한 추상화를 두면 읽기만 어려워집니다.
- 아키텍처 경계는 코드뿐 아니라 팀의 배포와 운영 방식도 함께 고려해야 합니다.
함께 연결해서 보면 좋은 키워드
설계, Coupling, Cohesion, 모듈
면접에서 짚으면 좋은 포인트
- 패턴을 적용하는 이유를 변경 용이성, 테스트 가능성, 운영 비용 관점에서 설명하면 좋습니다.
- 현재 문제보다 과한 추상화가 될 수 있는 상황도 함께 말하면 균형 잡힌 답변이 됩니다.
정리
한 줄로 정리하면, 좋은 설계는 모듈 간 결합도를 낮추고 모듈 내부 응집도를 높입니다. 변경 영향 범위를 줄이고 책임이 명확한 코드를 만들기 위해 중요합니다. 실무에서는 개념을 적용하는 조건과 적용하지 않았을 때 생기는 문제까지 함께 이해하는 것이 중요합니다.