75. 모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?
① 오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
② 인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
❸ 모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
④ 다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
🔍 문제 분석 및 해설
이 문제는 모듈의 독립성을 높이기 위해 결합도(Coupling)를 낮추는 방법을 묻고 있습니다.
결합도가 낮을수록 모듈 간의 의존성이 줄어들어 유지보수와 확장성이 좋아집니다.
✅ 각 선택지 분석
① 오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다. → O (정답)
- **파문 효과(Ripple Effect)**란 한 모듈의 변경이 다른 모듈에 영향을 미쳐 연쇄적으로 오류가 발생하는 현상입니다.
- 결합도가 높을수록 오류 전파가 쉽게 발생하여 유지보수가 어려워집니다.
- 따라서 결합도를 낮춰 파문 효과를 최소화해야 합니다. ✅
② 인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다. → O (정답)
- 모듈 간의 인터페이스(interface)가 정확하게 정의되지 않으면 모듈 간 불필요한 데이터 교류가 발생할 수 있습니다.
- 불필요한 인터페이스가 많아지면 모듈 간 의존성이 증가하여 결합도가 높아지게 됩니다.
- 결합도를 낮추려면 명확한 인터페이스 설계가 필수적입니다. ✅
③ 모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다. → ❌ (틀린 설명, 정답)
- 결합도를 낮추기 위해서는 모듈 간 공유 변수를 최소화해야 합니다.
- 전역 변수(Global Variable) 공유, 제어 신호(Flag) 전달 등은 결합도를 높이는 요소입니다.
- 전역 변수를 여러 모듈이 공유하면, 한 모듈이 변경될 때 다른 모듈에도 영향을 미쳐 유지보수가 어려워집니다.
- 제어 정보를 전달하면, 모듈 간 강한 의존성이 생겨 수정이 어렵고, 파문 효과(Ripple Effect)가 발생할 가능성이 커집니다.
- 결합도를 낮추려면 매개변수(Parameter) 전달 방식을 사용하는 것이 바람직합니다. ❌
④ 다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다. → O (정답)
- 전역 변수 사용은 결합도를 높이는 요소입니다.
- 전역 변수를 사용하면 모듈 간의 의존성이 증가하여 한 모듈이 변경될 때 다른 모듈도 영향을 받을 수 있습니다.
- 매개변수(Parameter) 전달 방식을 사용하면, 필요한 데이터만 전달하고 모듈 간 독립성을 유지할 수 있어 결합도를 낮출 수 있습니다. ✅
📌 결론
③번 선택지가 잘못된 설명이므로 정답입니다. 🎯
📝 추가 개념 정리
✅ 결합도(Coupling)란?
- **결합도(Coupling)**는 모듈 간의 의존도를 나타내는 지표입니다.
- 결합도가 높으면 모듈 간 영향이 크고 유지보수가 어려워지며, 오류 발생 시 파문 효과(Ripple Effect)가 커집니다.
- 결합도를 낮추는 것이 유지보수성과 확장성을 높이는 핵심 원칙입니다.
✅ 결합도의 종류 (낮은 결합도 → 높은 결합도)
(결합도가 낮을수록 모듈 독립성이 높아지고, 유지보수가 쉬워집니다.)
결합도 수준 설명 예시
1. 데이터 결합(Data Coupling) 🔵 (좋음) | 매개변수를 통해 데이터를 전달 | 함수의 인자로 데이터 전달 |
2. 스탬프 결합(Stamp Coupling) 🟢 | 구조체나 객체를 통째로 전달 | 구조체를 함수 인자로 전달 |
3. 제어 결합(Control Coupling) 🟡 (나쁨) | 제어 신호(Flag)를 전달 | if 문을 제어하는 신호 전달 |
4. 외부 결합(External Coupling) 🟠 | 외부 파일, DB, 설정값 공유 | 환경 설정 파일을 공유 |
5. 공통 결합(Common Coupling) 🔴 (나쁨) | 전역 변수(Global Variable) 공유 | 여러 모듈이 같은 전역 변수 사용 |
6. 내용 결합(Content Coupling) 🔴 (최악) | 한 모듈이 다른 모듈 내부를 직접 참조 | 다른 모듈의 내부 변수를 직접 수정 |
✅ 데이터 결합(Data Coupling)이 가장 이상적이며, 공통 결합(Common Coupling)과 내용 결합(Content Coupling)은 피해야 합니다.
🎯 최종 정리
- ①, ②, ④는 올바른 설명입니다.
- ③은 "공유 변수를 사용하면 결합도가 낮아진다"는 잘못된 설명이므로 정답입니다.
- 결합도를 낮추려면 전역 변수 사용을 줄이고, 매개변수 전달 방식을 활용해야 합니다.
따라서 정답은 ③입니다! 🚀
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2021년 3회 정보처리기사 기출문제 77번 (0) | 2025.03.19 |
---|---|
2021년 3회 정보처리기사 기출문제 76번 (0) | 2025.03.19 |
2021년 3회 정보처리기사 기출문제 74번 (0) | 2025.03.19 |
2021년 3회 정보처리기사 기출문제 73번 (1) | 2025.03.19 |
2021년 3회 정보처리기사 기출문제 72번 (0) | 2025.03.19 |