정보처리기사
테스트 레벨
- 단위(Unit) 테스트
: 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트 - 통합(Integration) 테스트
: 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트- 빅뱅 테스트: 모든 모듈이 결합된 프로그램 전체가 대상
- 상향식 테스트: 드라이버(Driver) 사용
- 하향식 테스트: 깊이 우선 통합법, 넓이 우선 통합법 사용, 스텁(Stub) 사용
- 혼합식 통합 테스트: : 하위 수준-상향식 통합, 상위수준-하향식 통합 사용, 샌드위치(Sandwich)식 통합 테스트 방법
- 회귀 테스팅(Regression Testing): 통합 테스트가 완료 된 후 변경된 모듈이나 컴포넌트가 있을 경우, 다른 부분에 영향을 미치는지 테스트하여 새로운 오류 여부를 확인
- 시스템(System) 테스트
: 전체 시스템 또는 제품의 동작에 대해 테스트- 기능 요구사항 테스트
- 비기능 요구사항 테스트
- 인수(Acceptance) 테스트
: 계약상의 요구사항이 만족되었는지 확인- 알파 테스트: 개발자 + 사용자
- 베타 테스트: 사용자
- 형상 테스트: 구조 확인
Digital Rights Management
- 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 사용하는 접근 제어 기술
- 구성 요소
- Clearing House: 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템
- 콘텐츠 제공자(Contents Provider)
- 패키저(Packager): 컨텐츠를 메타 데이터(컨텐츠를 설명하는 데이터)와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
- 콘텐츠 분배자(Contents Distributor)
- 콘텐츠 소비자(Customer)
- DRM 컨트롤러(DRM Controller): 배포된 콘텐츠의 이용 권한을 통제하는 프로그램(멜론 등)
- 보안 컨테이너(Security Container): 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
- 기술 요소
- 암호화(Encryption): 콘텐츠 및 라이선스를 암호화
- 키 관리(key Management): 콘텐츠를 암호화한 키에 대한 저장 및 분배
- 암호화 파일 생성(Packager): 콘텐츠를 암호화된 콘텐츠로 생성
- 식별 기술(Identification)
- 저작권 표현(Right Expression)
- 정책 관리(Policy Management)
- 크랙 방지(Tamper Resistance): 크랙에 의한 콘텐츠 사용 방지 기술
- 크랙: 불법적인 방법으로 소프트웨어에 적용된 저작권 보호 기술을 해제 및 무단 사용할 수 있도록 하는 기술이나 도구
- 인증(Authentication): 라이선스 발급 및 사용의 기준이 되는 사용자 인증
소프트웨어 품질 표준
- 정확성(Correctness)
- 신뢰성(Reliability): 서비스의 장애가 없어야 함
- 효율성(Efficiency)
- 무결성(Integrity): 시스템이 프로그램이나 데이터에 대한 허용되지 않거나 잘못된 접근을 막아야 함
- 사용용이성(Usability): 쉽게 사용할 수 있도록 해야 함
- 유지보수성(Maintainability)
- 이식성(Portability)
- 재사용성(Reusability)
자료 구조
- 비선형: 데이터를 비연속적으로 연결한 자료 구조
- Tree: 노드와 노드를 연결하는 Link 로 구성, 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
- Graph: 노드와 노드를 연결하는 간선을 하나로 모아 놓은 자료 구조
- 선형: 데이터를 연속적으로 연결한 자료 구조
- List
- 선형 리스트: 배열과 같이 연속된 기억 장소에 저장되는 리스트
- 연결 리스트: 노드의 포인터 부분으로 서로 연결시킨 리스트
- Stack: LIFO, 깊이우선탐색
- Queue: FIFO, 넓이우선탐색
- Deque(Double Ended Queue): 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조
- Scroll: 한 쪽 끝에서의 삽입 작업에 제한을 둔 입력 제한 덱
- Shelf: 한 쪽 끝에서의 제거 작업에 제한을 둔 출력 제한 덱
- List
테스트
테스트 기법
- 화이트 박스 테스트: 모듈 내부 소스 코드를 보면서 수행하는 테스트, 개발자 수행
- 종류
- 기본 경로 커버리지(Base Path Coverage): 수행 가능한 모든 경로 테스트
- 데이터 흐름 테스트(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사
- 조건 커버리지(Condition Coverage): 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
- 루프 테스트
- 종류
- 블랙 박스 테스트: 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트, 사용자 수행
- 동등(동치, 균등) 분할 테스트(Equivalence Partitioning Testing): 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
- 경계값 분석 테스트(Boundary Value Analysis Testing): 경계값을 테스트 케이스로 선정하여 검사
- 오류 예측 테스트
- 원인-결과 그래프 테스트
- 의사 결정 테이블 테스트
- 상태 전이 테스트
형상관리
: 비용을 제외하고 SW 개발 과정에서 발생하는 모든 변경사항을 관리
형상관리 절차
식별 → 통제(BaseLine 설정) → 감사 → 기록(형상 관리 위원회: Configuration Control Board)
형상관리 도구
- 중앙집중방식: CVS, SVN
- 분산방식: GIT
버전관리 도구
- 공유 폴더 방식: 인간 Merge
- 분산 저장소 방식
- GIT
- 클라이언트-서버 방식: 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리
- CVS, SVN
시간복잡도에 따른 정렬 분류
- 선택(n^2)
- 가장 적은 값을 맨 앞으로 이동하면서 정렬
- 삽입(n^2)
- 2번째부터 앞의 값들과 비교하면서 정렬
- 버블(n^2)
- 서로 인접한 두 원소의 크기를 비교하여 정렬
- Shell (n^2)
- 임의의 레코드 키와 매개변수값만큼 떨어진 곳의 레코드 키를 비교하면서 정렬
- Quick(nlog2n ~ n^2)
- 분할정복(Divide & Conquer) 알고리즘, 피벗 사용
- 하나의 파일을 부분적으로 나누어가면서 정렬
- Heap(nlog2n)
- 병합(nlog2n)
- 분할 정복 알고리즘
- 기수(Radix)
- 범위를 갖는 버킷에 따라 해당 범위에 속하는 값을 입력 후, 버킷 순서대로 값 정렬
해싱함수(Hashing Function)
: 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 변환시켜주는 함수
해싱(Hashing): 해시 함수로 자료의 저장 위치를 계산하는 것
- 제산법: 키 값을 소수(Prime Number)로 나눈 값으로 주소 결정
- 제곱법: 키 값을 제곱한 후 그 중간 부분의 값으로 주소 결정
- 폴딩법: 키 값을 여러부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합)한 값을 주소로 결정
- 기수 변환법: 특정 진법으로 표현한 레코드 키 값을 다른 진법으로 간주하고 키 값을 변환하여 주소로 결정
- 계수 분석법: 주어진 모든 키 값들에서 그 키를 구성하는 자릿수들의 분포를 조사하여 비교적 고른 분포를 보이는 자릿수를 택하여 주소로 결정
- 무작위법: 난수(Random Number)를 발생시켜 나온 값을 주소로 결정
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2021년 1회차 (4)프로그래밍 언어 활용 (0) | 2023.07.14 |
---|---|
[정보처리기사] 2021년 1회차 (3)데이터베이스 설계 (0) | 2023.07.14 |
[정보처리기사] 2021년 1회차 (1)소프트웨어 설계 (0) | 2023.07.13 |
[정보처리기사] 2021년 2회차 (5)정보시스템 구축관리 (0) | 2023.07.13 |
[정보처리기사] 2021년 2회차 (4)프로그래밍 언어 활용 (0) | 2023.07.12 |