정보처리기사 실기소프트웨어 설계결합도와 응집도난이도 5DESCRIPTIVE

정보처리기사 실기 결합도와 응집도 기출문제 #316

문제

소프트웨어 설계에서 모듈 간 결합도모듈 내 응집도가 **소프트웨어 복잡도(Software Complexity)**와 **변경 파급효과(Change Propagation)**에 미치는 영향을 분석하고, 복잡도 최소화와 변경 영향 최소화를 위한 모듈 설계 전략을 서술하시오.

정답

높은 결합도는 모듈 간 의존성을 증가시켜 순환 복잡도(Cyclomatic Complexity)를 높이고 변경 시 연쇄 반응을 유발한다. 낮은 응집도는 모듈 내 산재된 기능으로 인해 인지적 복잡도를 증가시킨다. 복잡도 최소화를 위해서는 인터페이스 기반 느슨한 결합과 단일 책임 원칙 기반 높은 응집도를 추구해야 한다. 변경 파급효과 최소화를 위해서는 추상화 계층 도입, 의존성 주입 패턴 적용, 모듈 간 계약 기반 통신을 통해 변경 지점을 격리하고 안정적 인터페이스를 유지해야 한다.

순환 복잡도인지적 복잡도변경 파급효과연쇄 반응인터페이스 기반느슨한 결합단일 책임추상화 계층의존성 주입계약 기반 통신변경 지점 격리

해설

소프트웨어 복잡도는 순환 복잡도(제어 흐름의 복잡성)와 인지적 복잡도(이해의 어려움)로 구분된다. 높은 결합도는 모듈 간 제어 흐름을 복잡하게 만들어 순환 복잡도를 증가시키고, 하나의 변경이 다른 모듈들의 연쇄적 변경을 유발한다. 낮은 응집도는 관련 없는 기능들이 한 모듈에 섞여 있어 개발자의 인지 부담을 증가시킨다. 이를 해결하기 위해서는 인터페이스를 통한 추상화로 모듈 간 직접 의존을 차단하고, 단일 책임 원칙으로 모듈의 기능을 명확히 분리해야 한다. 또한 의존성 주입 패턴과 계약 기반 통신으로 변경 지점을 특정 모듈에 국한시켜 파급효과를 최소화할 수 있다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.