정보처리기사 22회 실기 기출 정리
정보처리기사 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.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): 사용자 요구사항을 충족하는지 확인