기출문제/정보처리기사

2021년 3회 정보처리기사 기출문제 75번

엉클지니 2025. 3. 19. 11:08

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)은 피해야 합니다.


🎯 최종 정리

  • ①, ②, ④는 올바른 설명입니다.
  • ③은 "공유 변수를 사용하면 결합도가 낮아진다"는 잘못된 설명이므로 정답입니다.
  • 결합도를 낮추려면 전역 변수 사용을 줄이고, 매개변수 전달 방식을 활용해야 합니다.

따라서 정답은 ③입니다! 🚀

반응형