문제
소프트웨어 설계에서 **모듈화(Modularity)**와 **정보 은닉(Information Hiding)**의 개념을 각각 설명하고, 이 두 원리가 소프트웨어 품질에 미치는 장점을 서술하시오.
정답
모듈화는 복잡한 시스템을 기능적으로 독립된 작은 단위인 모듈로 나누어 설계하는 기법이다. 정보 은닉은 모듈의 내부 구현 세부사항을 외부에서 접근할 수 없도록 숨기는 원리이다. 두 원리 모두 시스템의 복잡성을 관리하고, 재사용성을 향상시키며, 유지보수성을 높이고, 개발 생산성을 증대시키는 장점이 있다.
모듈화정보 은닉독립된 모듈복잡성 관리재사용성유지보수성생산성
해설
모듈화는 큰 시스템을 작은 기능 단위로 분할하여 각각을 독립적으로 개발하고 관리할 수 있게 하는 설계 기법입니다. 정보 은닉은 모듈의 내부 구현을 숨기고 외부에는 필요한 인터페이스만 공개하는 원리입니다. 이 두 원리는 복잡성을 줄이고 변경 영향을 최소화하여 재사용성과 유지보수성을 높입니다.