[정보처리기사 필기] 제2과목: 소프트웨어 개발
공부

[정보처리기사 필기] 제2과목: 소프트웨어 개발

작성일: 2026년 02월 02일·...

1. 소프트웨어 테스트 (출제 빈도 1위)

소프트웨어 테스트는 2과목에서 가장 문제가 많이 나오는 영역입니다. 종류와 특징을 반드시 구분해야 합니다.

1) 화이트박스 vs 블랙박스 테스트

[1] 화이트박스 테스트 (White Box)

  • 개념: 소스 코드의 내부 로직을 보면서 테스트하는 방식
  • 종류: 기초 경로 검사, 제어 구조 검사(조건, 루프, 데이터 흐름)
  • 특징: 개발자 관점
  • [2] 블랙박스 테스트 (Black Box)

  • 개념: 내부 구조는 보지 않고, 기능(Input/Output) 위주로 테스트하는 방식
  • 종류 두음암기: [동.경.원.비.오]
  • 동치 분할 검사 (Equivalence Partitioning): 입력 자료를 그룹으로 나누어 대표값 테스트
  • 경계값 분석 (Boundary Value Analysis): 입력 조건의 경계(최대/최소)에서 오류 발생 확률이 높음을 이용
  • 원인-효과 그래프 (Cause-Effect): 입력(원인)과 출력(효과) 관계를 그래프로 표현
  • 비교 검사 (Comparison): 여러 버전의 프로그램에 동일 입력 후 결과 비교
  • 오류 예측 (Error Guessing): 테스터의 감각/경험에 의존
  • 2) 테스트 단계 (V-모델)

    단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트 순서로 진행됩니다.

    [1] 통합 테스트 (Integration Test)

    모듈을 결합할 때 사용하는 방식입니다. 가장 중요한 것은 [스텁]과 [드라이버]의 구분입니다.

  • 두음암기: [하.스 / 상.드]
  • 하향식(Top-down): 위에서 아래로 통합. 가짜 하위 모듈인 [스텁(Stub)] 필요.
  • 상향식(Bottom-up): 아래에서 위로 통합. 가짜 상위 모듈인 [드라이버(Driver)] 필요.
  • 빅뱅(Big-bang): 한 번에 전체 결합.
  • [2] 인수 테스트 (Acceptance Test)

  • 알파 테스트: 개발자 환경에서 사용자가 테스트 (통제된 환경)
  • 베타 테스트: 실제 환경에서 불특정 다수 사용자가 테스트
  • 3) 테스트 오라클 (Test Oracle)

    테스트 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참(True) 값을 대입하여 비교하는 기법입니다.

  • 종류 두음암기: [참.샘.휴.일]
  • 참(True) 오라클: 모든 입력에 대해 기대하는 결과를 전수 확인 (가장 이상적)
  • 샘플링(Sampling) 오라클: 특정한 몇 개 입력만 결과 확인
  • 휴리스틱(Heuristic) 오라클: 샘플링 + 나머지는 확률/직관적 추정
  • 일관성(Consistent) 오라클: 수정 전과 후의 실행 결과가 같은지 확인

  • 2. 자료구조와 알고리즘

    1) 정렬(Sort) 알고리즘 시간 복잡도

    평균 수행 시간(Big-O)을 묻는 문제가 자주 출제됩니다.

  • 두음암기: [버.삽.선 n제곱 / 퀵.병.힙 로그]
  • O(n^2) 그룹: 버블(Bubble), 삽입(Insertion), 선택(Selection) 정렬
  • O(nlog2n) 그룹: 퀵(Quick), 병합(Merge), 힙(Heap) 정렬
  • 참고: 퀵 정렬은 최악의 경우 O(n^2)이 됨
  • 2) 트리(Tree) 순회 방법

    트리 구조 그림을 주고 순서대로 나열한 값을 찾는 문제가 나옵니다. 뿌리(Root)를 언제 방문하느냐가 기준입니다.

  • 전위 순회(Pre-order): Root -> Left -> Right (뿌리가 먼저)
  • 중위 순회(In-order): Left -> Root -> Right (뿌리가 중간)
  • 후위 순회(Post-order): Left -> Right -> Root (뿌리가 나중)
  • 3) 자료구조의 분류

  • 선형 구조: 스택(LIFO), 큐(FIFO), 데크(Deque), 리스트(List)
  • 비선형 구조: 트리(Tree), 그래프(Graph)

  • 3. 인터페이스 구현 및 형상 관리

    1) EAI (Enterprise Application Integration) 구축 유형

    기업 내 다른 플랫폼 간의 데이터 연계를 위한 통합 솔루션 유형입니다. 그림 문제나 설명 문제로 나옵니다.

  • 두음암기: [포.허.메.하]
  • 포인트 투 포인트 (Point-to-Point): 1:1 단순 연결. 변경 시 비용 큼.
  • 허브 앤 스포크 (Hub & Spoke): 중앙 허브를 통해 연결. 허브 장애 시 전체 마비.
  • 메시지 버스 (Message Bus): 미들웨어(버스)를 통해 연결. 대용량 처리에 유리, 확장성 좋음.
  • 하이브리드 (Hybrid): 허브 앤 스포크 + 메시지 버스 혼합.
  • 2) 형상 관리 (SCM)

    소프트웨어 변경 사항을 관리하는 활동입니다.

  • 주요 도구: Git(분산형), SVN(중앙집중형), CVS
  • 주요 용어:
  • Check-in: 저장소에 저장
  • Check-out: 저장소에서 가져옴
  • Commit: 변경 확정
  • Import: 저장소에 처음 넣기
  • 3) 소프트웨어 복잡도 (McCabe)

    제어 흐름도(Graph)를 보고 복잡도를 계산하는 공식입니다. 단순 산수 문제로 나옵니다.

  • 공식: V(G) = Edge(선)의 수 - Node(점)의 수 + 2
  • 예: 선이 5개, 점이 4개라면? 5 - 4 + 2 = 3

  • 4. 기타 필수 암기

    1) DRM (Digital Rights Management) 구성 요소

    저작권 보호 기술입니다.

  • 콘텐츠 제공자: 콘텐츠 만든 사람
  • 콘텐츠 분배자: 쇼핑몰 등 유통업자
  • 패키저: 콘텐츠를 암호화하고 메타데이터 결합
  • 클리어링 하우스: 저작권료 정산 및 라이선스 발급 (가장 중요)
  • 2) 해시(Hash) 알고리즘

    데이터 무결성 검증을 위해 사용됩니다.

  • 종류: SHA 시리즈, MD5(취약해서 잘 안 씀), HAS-160

  • [2과목 합격 전략]

    2과목은 코드를 직접 짜는 문제보다는 [개념 구분]과 [계산] 문제가 나옵니다.

  • 테스트 기법에서 화이트박스인지 블랙박스인지 섞어놓고 고르는 문제
  • 트리 순회 순서 맞추기 (그림 그려가며 풀기)
  • 시간 복잡도 O(n^2)인지 O(nlogn)인지 구분하기