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

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

문제

소프트웨어 아키텍처 설계에서 **계층화(Layering)**와 **모듈화(Modularization)**가 시스템의 복잡도 관리변경 영향 최소화에 미치는 효과를 분석하고, 이러한 설계 원칙들이 어떻게 시스템의 유지보수성확장성을 향상시키는지 구체적인 메커니즘을 서술하시오.

정답

계층화는 시스템을 추상화 수준에 따라 수직적으로 분리하여 각 계층이 명확한 역할과 책임을 갖도록 하며, 상위 계층이 하위 계층에만 의존하는 단방향 의존성을 통해 복잡도를 분산시킨다. 모듈화는 관련 기능을 응집도 높은 단위로 묶고 모듈 간 인터페이스를 통해 상호작용하도록 하여 변경 시 영향 범위를 해당 모듈 내부로 제한한다. 이를 통해 개별 모듈의 독립적 개발과 테스트가 가능해지고, 특정 기능 변경 시 다른 모듈에 미치는 파급효과가 최소화되어 유지보수성이 향상된다. 또한 새로운 기능은 기존 모듈 수정 없이 새 모듈 추가나 기존 모듈의 확장을 통해 구현할 수 있어 확장성이 보장된다.

계층화모듈화복잡도 관리변경 영향 최소화유지보수성확장성단방향 의존성인터페이스파급효과독립적 개발

해설

계층화와 모듈화는 복잡한 시스템을 관리 가능한 단위로 분해하는 핵심 설계 원칙입니다. 계층화는 관심사의 분리를 통해 각 계층의 복잡도를 독립적으로 관리하며, 모듈화는 높은 응집도와 낮은 결합도를 통해 변경의 국지화를 달성합니다. 이는 Conway's Law와도 연관되어 조직 구조와 시스템 구조의 일치를 통한 개발 효율성 향상으로 이어집니다.

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

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