정보처리기사 22회 실기 기출 정리

1. 소프트웨어 개발 도구

1.1 형상관리도구

형상관리도구 = 변경관리도구, 버전관리도구임. 변경 < 버전 < 형상 이런 크기의 상세 개념임

중앙집중형 형상관리도구

  • CVS(Concurrent Versions System) - 중앙집중형 형상관리도구
  • SVN(Subversion) - 중앙집중형 형상관리도구

분산형 형상관리도구

  • Git - 분산환경에서 처리하는 형상관리도구

빌드 도구

  • Ant - Java 기반 빌드 도구
  • Maven - 프로젝트 객체 모델(POM) 개념을 사용한 빌드 도구
  • Gradle - Groovy 기반 빌드 도구

배포 도구

  • Jenkins - CI/CD 파이프라인 지원 배포 도구

데이터베이스 처리 방식

  • OLTP(Online Transaction Processing) - 온라인 트랜잭션 처리
  • OLAP(Online Analytical Processing) - 온라인 분석 처리

1.2 형상관리 절차

  1. 형상 식별 - 형상 항목 지정
  2. 형상 통제 - 버전관리하는 것. 현재의 베이스라인에 반영될 수 있도록 통제
  3. 형상 감사 - 형상 항목에 대한 검증 및 확인
  4. 형상 기록 - 형상 식별, 통제, 감사 결과 기록

암기 팁: 식통감기

1.3 형상관리 명령어

  • check out - 저장소에서 작업 코드를 가져오는 작업
  • check in - 작업 완료된 코드를 저장소에 커밋하는 작업
  • diff - 커밋 충돌 시, 두 버전을 비교하는 명령
  • trunk - 메인 개발 줄기
  • branch - trunk에서 분기한 가지

2. 디자인패턴

2.1 구조 패턴

  • 브릿지 패턴(Bridge Pattern) - 구현부에서 추상층을 분리하는 패턴

2.2 행위 패턴

  • 옵저버 패턴(Observer Pattern) - 객체 상태 변화 시 다른 객체에 통지하는 패턴

3. UML(Unified Modeling Language)

모델링하는 통합언어. 사물, 관계, 다이어그램으로 구성됨.

3.1 관계 종류

  • 일반화 관계(Generalization) - 상속 관계
  • 연관 관계(Association) - 다른 클래스에서 제공하는 기능을 사용함
  • 의존 관계(Dependency) - 메소드 실행되는 동안만 일시적으로 사용
  • 실체화 관계(Realization) - 인터페이스의 추상 메소드를 구현하는 관계

3.2 집합 관계

  • 집약 관계(Aggregation) - 부분이 전체와 독립적인 생명주기를 가짐 (예: 소불고기 다 먹어도 다시다가 없어지진 않음)
  • 합성 관계(Composition) - 부분이 전체에 종속적인 생명주기를 가짐 (예: 책상 부수면 나사랑 책상다리가 없어짐)

4. 유스케이스 다이어그램

  • 연관 관계(Association) : 액터와 유스케이스 간의 상호작용
  • 포함 관계(Include) : 유스케이스를 수행할 때 반드시 실행되는 필수적인 관계
  • 확장 관계(Extend) : 특정 조건에 따라 확장 기능을 수행하는 선택적인 관계

5. 소프트웨어 테스트

5.1 블랙박스 테스트 (시험에 잘 나옴)

  • 동등 분할 기법(Equivalence Partitioning): 입력 데이터를 동등 분할하여 대표값으로 테스트
  • 경계값 분석(Boundary Value Analysis): 경계값을 테스트 케이스로 사용
  • 원인-효과 그래프 검사(Cause-Effect Graphing): 입력이 출력에 미치는 영향을 분석
  • 오류 예측 검사(Error Guessing): 과거 경험을 바탕으로 오류 예측
  • 비교 검사(Comparison Testing): 여러 버전의 프로그램에 동일한 테스트 자료를 적용하여 결과 비교

5.2 애플리케이션 테스트 유형

프로그램 실행 여부에 따른 분류

  • 정적 테스트: 프로그램을 실행하지 않고 검증 (코드 리뷰, 정적 분석 등)
  • 동적 테스트: 프로그램을 실행하여 검증

테스트 기법에 따른 분류

  • 블랙박스 테스트: 내부 구조를 모르는 상태에서 테스트
  • 화이트박스 테스트: 내부 구조를 알고 테스트

테스트 목적에 따른 분류

  • 검증 테스트(Verification): 명세서대로 만들어졌는지 검증
  • 확인 테스트(Validation): 사용자 요구사항을 충족하는지 확인