정보처리기사 기출문제 총정리 ④ 소프트웨어 공학 – 개발 방법론·테스트·디자인 패턴

소프트웨어 공학 출제 포인트

소프트웨어 공학은 개발 방법론의 특징 비교, 테스트 기법, UML 다이어그램, 디자인 패턴 등 광범위한 개념을 다룹니다. 각 방법론의 핵심 특징과 적합한 상황을 이해하는 것이 중요합니다.

【기출 토픽 1】 소프트웨어 개발 방법론 비교

기출 문제 예시: 소규모 팀이 짧은 반복(스프린트) 주기로 개발하고, 변경 요구사항에 유연하게 대응하는 개발 방법론은?

  • ① 폭포수 모델 (Waterfall)
  • ② 나선형 모델 (Spiral)
  • ③ 애자일 (Agile) ✅
  • ④ RAD (Rapid Application Development)

주요 방법론 비교:

  • 폭포수: 순차적 단계, 요구사항 변경 어려움, 대규모 프로젝트
  • 프로토타입: 시제품 개발 후 피드백 반영
  • 나선형: 위험 분석 포함, 대규모·고위험 프로젝트
  • 애자일(스크럼/XP): 반복 개발, 고객 협업, 변경 대응, 소규모 팀

【기출 토픽 2】 블랙박스 vs 화이트박스 테스트

기출 문제 예시: 소프트웨어 내부 구조나 코드를 보지 않고, 입력과 출력만으로 기능을 검증하는 테스트 기법은?

  • ① 화이트박스 테스트
  • ② 블랙박스 테스트 ✅
  • ③ 구조 기반 테스트
  • ④ 코드 커버리지 테스트

테스트 기법 비교:

  • 블랙박스: 내부 구조 무시, 입출력 중심, 동치 분할·경계값 분석·원인-결과 그래프
  • 화이트박스: 내부 코드 기반, 구문·분기·경로 커버리지, 기초 경로 테스트

테스트 단계: 단위 → 통합 → 시스템 → 인수 테스트

【기출 토픽 3】 GoF 디자인 패턴 분류

기출 문제 예시: GoF(Gang of Four) 디자인 패턴 중 객체 생성 방식을 다루는 생성 패턴에 해당하지 않는 것은?

  • ① 싱글톤 (Singleton)
  • ② 팩토리 메서드 (Factory Method)
  • ③ 옵저버 (Observer) ✅
  • ④ 빌더 (Builder)

GoF 패턴 분류(23가지):

  • 생성 패턴(5): 싱글톤, 팩토리 메서드, 추상 팩토리, 빌더, 프로토타입
  • 구조 패턴(7): 어댑터, 브리지, 컴포지트, 데코레이터, 파사드, 플라이웨이트, 프록시
  • 행위 패턴(11): 옵저버, 전략, 커맨드, 템플릿 메서드, 이터레이터 등

【기출 토픽 4】 응집도와 결합도

기출 문제 예시: 좋은 소프트웨어 설계를 위해 모듈의 응집도와 결합도는 어떻게 해야 하는가?

  • ① 응집도 높게, 결합도 높게
  • ② 응집도 낮게, 결합도 낮게
  • ③ 응집도 높게, 결합도 낮게 ✅
  • ④ 응집도 낮게, 결합도 높게

해설: 응집도(Cohesion)는 모듈 내부 요소들이 얼마나 밀접하게 관련됐는지, 결합도(Coupling)는 모듈 간 상호 의존성입니다. 좋은 설계는 높은 응집도 + 낮은 결합도입니다.

응집도 강도(낮음→높음): 우연적 → 논리적 → 시간적 → 절차적 → 통신적 → 순차적 → 기능적

소프트웨어 공학 최종 정리

개발 방법론 특징 비교, 블랙박스/화이트박스 테스트 기법, GoF 패턴 분류, 응집도/결합도 개념을 중심으로 학습하세요. UML 다이어그램(클래스, 시퀀스, 유스케이스)도 자주 출제되므로 각 다이어그램의 용도를 구분하세요.

Leave a Comment