Certificates

정보처리기사 실기 키워드 정리

mykuromi 2022. 8. 18. 08:48

 

2021년 3회차 시험 합격 🥰

요약본이라기 보다 암기용으로 직접 키워드만 정리한 것이니 참고 부탁드립니다. :)


정보처리기사 실기 키워드 정리.pdf
0.47MB

 

 

⭐️ 정보처리기사 실기 키워드 정리 


✔️ Chapter1. 요구사항 확인

- SLDC model
폭포수 모델 / 프로토타이핑 모델 / 나선형 모델 / 반복적 모델 
+ Seven TouchPoints

- 소프트웨어 개발방법론
구조적 방법론(나씨-슈나이더만 차트)-분할과 정복 / 정보공학 방법론 / 객체지향 방법론 / 컴포넌트 기반 방법론 / 애자일 방법론(XP, 스크럼, 린) / 제품계열 방법론(임베디드)

- 비용산정 모형
LoC / Man Month / COCOMO(COnstructive COst MOdel) - 조직형, 반분리형, 임베디드형 / 푸트남 모형(Rayleigh-Norden 곡선)-인력 분포, 생명주기 예측 / 기능점수(FP) 모형 

- 일정관리 모델 
주 공정법(CPM) / PERT / 중요 연쇄 관리 프로젝트(CCPM)

- 소프트웨어 아키텍처 4+1뷰
유스케이스뷰 / 논리뷰 / 프로세스뷰 / 구현뷰 / 배포뷰

- 소프트웨어 아키텍처 패턴 
계층화 패턴 / 클라이언트-서버 패턴 / 파이프-필터 패턴 / 브로커 패턴 / 모델-뷰-컨트롤러 패턴(MVC)

- 소프트웨어 아키텍처 비용 평가 모델
SSAM(Software Architecture Analysis Method)-변경 용이성, 기능성 / ATAM(Architecture Trade-off Analysis Method)-아키텍처 품질 속성 / CBAM(Cost Benefit Analysis Method) / ADR(Active Design Review)-응집도 / ARID(Active Reviews for Intermediate Designs)-특정 부분 품질 요소

- 디자인 패턴
1. 생성 : Builder / Prototype / Factory Method / Abstract Factory / Sigleton
2. 구조 : Bridge / Decorator / Facade / Flyweight / Proxy / Composite / Adapter
3. 행위 : Mediator / Interpreter / Iterator / Template Method / Observer / State / Visitor / Command / Strategy /  Memento / Chain of Responsibility 

* Builder : 생성과 표기를 분리하여 복잡한 객체 생성
* Prototype : 원형 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용
* Fatory Method : 상위 클래스에서 객체 생성 인터페이스 정의, 하위 클래스에서 인스턴스 생성
* Abstract Factory : 동일한 주제의 다른 팩토리를 묶음
* Singleton : 한 클래스에 한 객체만 존재하도록 제한

* Bridge : 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리
* Decorator : 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴
* Facade : 복잡한 시스템에 대하여 단순한 인터페이스 제공
* Flyweight : 여러 개의 가상 인스턴스 제공, 클래스의 경량화 목적
* Proxy : 실체 객체에 대한 대리 객체로 정보은닉 역할, 접근제어 용도
* Composite : 객체들의 관계를 트리구조로 구성하여 부분-전체 계층을 표현, 복합 객체와 단일 객체를 동일하게 취급
* Adapter : 기존의 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스 생성
* Mediator : 객체들 통신을 통제하는 중재자
* Interpreter : 구문을 나누고 해석을 맡는 클래스 각각 작성, 여러 형태 언어 구문 해석 가능, 문법 자체를 캡슐화
* Iterator : 내부구조 노출 X, 복합 객체의 원소를 순차적으로 접근 가능하개 해줌
* Template : 일부분을 서브 클래스로 캡슐화하여 상위 작업의 구조는 바꾸지 않으면서 서브 클래스로 작업의 일부분 수행
* Observer : 한 객체 상태 변화 시 의존하는 다른 객체들에 연락이 가고 자동으로 내용 갱신, '일대다' 의존
* State : 객체 상태를 캡슐화하여 클래스화, 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경
* Visitor : 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스 생성, 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴
* Command : 실행될 기능을 캡슐화, 요구사항을 객체로 캡슐화
* Strategy : 알고리즘을 각각 하나의 클래스로 캡슐화, 행위를 클래스로 캡슐화하여 필요시 서로 교환
* Memento : 객체의 정보를 저장할 필요가 있을 때 적용, Undo 기능 개발 시 사용
* Chain of Responsibility : 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결

- 요구사항 개발 프로세스 
요구사항 도출 -> 분석 -> 명세 -> 확인 및 검증

- 요구사항 분석 
요구사항 분류 -> 개념 모델링 생성 및 분석 -> 요구사항 할당 -> 요구사항 협상 -> 정형 분석(관리 리뷰, 기술 리뷰, 인스펙션, 워크스루, 감사)

- 요구사항 관리
요구사항 협상 -> 기준선 설정 -> 변경관리(CCB) -> 확인 및 검증



✔️ Chapter2. 화면 설계

- UI
CLI / GUI / NUI / OUI

- UI 설계 원칙
직관성 / 유효성 / 학습성 / 유연성 

- UI 품질 요구사항(ISO/IEC 9126)
기능성(적절성, 정밀성, 상호운용성, 보안성, 호환성) / 신뢰성(성숙성, 고장 허용성, 회복성) / 사용성(이해성, 학습성, 운용성) / 효율성(시간, 자원) / 유지보수성(분석성, 변경성, 안정성, 시험성) / 이식성(적용성, 설치성, 대체성)

- 스토리보드
와이어 프레임 / 스토리보드 / 프로토타입

+ CRUD / 요구사항 매트릭스 / 정황 시나리오

- UML 특징 
가시화 언어 / 구축 언어 / 명세화 언어 / 문서화 언어

- UML 구성요소
사물 / 관계 / 다이어그램 

- UML 다이어그램 
1. 구조적, 정적 다이어그램 : 클래스 / 객체 / 컴포넌트 / 배치 / 복합체 구조 / 패키지
2. 행위적, 동적 다이어그램 : 유스케이스 / 시퀀스 / 커뮤니케이션 / 상태 / 활동 / 타이밍-객체의 상태 변화, 시간 제한

- UML 확장 모델의 스테레오 타입 : <<>> 길러멧 기호
include / extend / interface / entity / boundary / control 

- 클래스 접근 제어자
private - / default ~ / protected # / public + 

- 클래스 간의 관계
연관 관계 - / 집합 관계 ◇ / 복합 관계 ◆ / 일반화 관계(상속 관계) △ / 의존 관계 - - > / 추상 클래스 extends / 인터페이스 interface /  실체화 관계

- 유스케이스 다이어그램 구성 요소
유스케이스 / 액터 / 시스템 / 시나리오 / 이벤트의 흐름 

- 유스케이스 다이어그램의 관계
포함 관계 / 확장 관계 / 일반화 관계 

- 시퀀스 다이어그램 구성 요소 
객체 ㅁ / 생명선 | / 실행 -ㅁ- / 메시지 ->

- 패키지 다이어그램 구성 요소 
패키지 ㅁ / 의존 관계 - - > 

- 활동 다이어그램 구성요소
시작점 ㅇ / 전이 -> / 액션, 액티비티 ㅁ / 종료점 ◎ /  조건(판단) 노드 ◇ / 병합 노드 ◇ / 포크 노드 ㅡ / 조인 노드 / 구획면 [ | ]

- 상태 다이어그램 구성 요소 
상태 ㅁ / 시작 상태 ● / 종료 상태 ◉ / 전이 -> / 이벤트 -> / 전이 조건 [ ] -> 

- 커뮤니케이션 다이어그램 구성요소
액터 / 객체 / 링크 / 메시지 

- 컴포넌트 다이어그램 
컴포넌트 / 인터페이스 / 의존 관계

- UI 시나리오 문서의 작성 요건
완전성 / 일관성 / 이해성 / 가독성 / 추적 용이성 / 수정 용이성 



✔️ Chapter3. 데이터 입출력 구현

- 데이터 모델 절차
개념적(ERD) / 논리적 / 물리적 데이터 모델 

- 논리적 데이터 모델링 종류
관계 데이터 모델 / 계층 데이터 모델(1:N) / 네트워크 데이터 모델(N:M, CODASYL DBTG)

- 관계 데이터 모델의 구성요소
릴레이션 / 튜플 / 속성 / 카디널리티 / 차수 / 스키마 / 인스턴스 

- 관계 대수 
1. 일반 집합 연산자 : 합집합 / 교집합 / 차집합 - / 카티션 프로덕트 X
2. 순수 관계 연산자 : 셀렉트 / 프로젝트 / 조인 / 디비전 

- 논리 데이터 모델링 속성
개체 ㅁ / 속성 ㅇ / 관계 ◇

- 이상 현상(Anomaly)
삽입 / 삭제 / 갱신 이상

- 정규화 단계
1NF(원자값) / 2NF(부분 함수 종속 제거, 완전 함수 종속 관계) / 3NF(이행 함수 종속 제거) / BCNF(결정자 후보 키가 아닌 함수 종속 제거) / 4NF(다치 종속 제거) / 5NF(조인 종속 제거)

- 반정규화

- 참조무결성 제약조건 : 제한(Restricted) / 연쇄(Cascade) / 널 값(Nullify)

- 인덱스 / 클러스터 

- 파티션의 종류
레인지 파티셔닝 / 해시 파티셔닝 / 리스트 파티셔닝 /  컴포지트 파티셔닝

- 데이터베이스 특성
실시간 접근성 / 계속적인 변화 / 동시 공용 / 내용 참조

- 데이터베이스 종류
파일 시스템 / 관계형 데이터베이스 관리시스템(RDBMS) / 계층형 데이터베이스 관리시스템(HDBMS) / 네트워크 데이터베이스 관리시스템(NDBMS)

- 빅데이터 수집, 저장, 처리 기술
비정형/반정형 데이터 수집(Chukwa, Flume, Scribe) / 정형 데이터 수집(ETL, FTP, Sqoop, Hiho) / 분산데이터 저장, 처리(HDFS, 맵 리듀스) / 분산데이터 베이스(HBase)

- NoSQL(Not Only SQL) 특성(BASE)
Basically Available / Soft-State / Eventually Consistency

- NoSQL의 유형
Key-Value Store / Column Family Data Store(구글 Bigtable) / Document Store / Graph Store(시맨틱 웹, 온톨로지)

- 데이터 마이닝 



✔️ Chapter4. 통합 구현

- 주요 연계 기술
1. 직접 연계 : DB 링크 / DB Connection / (Open) API / JDBC / 하이퍼 링크
2. 간접 연계 : EAI / Web Service, ESB / 소켓 

- EAI 구성요소
EAI 플랫폼 / 어댑터 / 브로커 / 메시지 큐 / 비즈니스 워크플로우

- EAI 구축 유형 
포인트 투 포인트 / 허브 앤 스포크 / 메시지 버스 / 하이브리드

- 웹 서비스 유형 
SOAP(Simple Object Access Protocol) / WDSL(Web Service Description Language) / UDDI(Universal Description, Discovery and Integration) 



✔️ Chapter5. 인터페이스 구현

- JSON(Javascript Object Notation)

- XML(Extensive Markup Language)

- AJAX(Asynchronous JavaScript and XML)

- RESTful(Representational State Transfer)
POST(C) / GET(R) / PUT(U) / DELETE(D)

- 데이터베이스 암호화 기법
API 방식 / Plug-in 방식 / TDE방식 / Hybrid 방식 



✔️ Chapter6. 프로그래밍 언어 활용 

- 포인터
데이터타입* 포인터변수명 = &변수명;
& : 주소값
* : 주소에 해당하는 값(printf)

- 자바 자료형 
HashSet / ArrayList / LinkedList / HashMap

- 파이썬 자료형
세트 set([요소1, 2, ..]) or { } /  리스트 [ 시작인덱스 0 : 종료인덱스 -1 : 스텝 1 ] / 튜플 ( 시작인덱스 0 : 종료인덱스 -1 : 스텝 1 ) / 딕셔너리 { 키1 : 값1 , } 

+ ArrayList만 remove(인덱스)고, 나머지는 remove(값)

- 식별자 표기법
카멜 표기법 / 파스칼 표기법 / 스네이크 표기법 / 헝가리안 표기법(n, v, sz)

- 비트 연산자 
& (and) /  | (or) / ^ (xor) / ~ (not)

- 표준함수 헤더
C (stdio.h) / C++ (iostream) 

- 파이썬 
eval() = Integer.parseInt() / if-elif-else / for 변수 in range (시작값, 끝값+1) / for 변수 in range (반복횟수) / def 함수명(변수명, ..) 명령어 return 반환값 / class 클래스명: def 메소드명(self, 변수명, ..): 명령어 return 반환값 / class 클래스명: def __init__(self, 변수명, ..): 명령어 / 오버로딩 X 

- C, C++ 사용자 정의 자료형
enum 열거체명 { 멤버1, 멤버2, … }; / struct 구조체명 { 자료형 변수명1; 자료형 변수명2; … };

- 자신 클래스 참조
C++ this -> / Java this. / 파이썬 self

- C++ 클래스 변수 선언 및 사용, 오버라이딩 
1. 선언 : 클래스 클래스변수(매개변수); / 클래스* 클래스변수 = new 클래스(매개변수);
2. 사용 : 클래스변수.메서드(매개변수); / 클래스변수->메서드(매개변수); 
3. 오버라이딩 : virtual 반환데이터타입 메소드명(데이터타입 변수명){ }

- 상속
C++ class 자식클래스명 : public 부모클래스명{ }; / Java class 자식클래스명 extends 부모클래스명{ } / 파이썬 class 자식클래스명(부모클래스명): 

- 상위 클래스 접근
C++ 부모클래스::메소드명() / Java super.메소드명() / 파이썬 super().메소드명()

- 추상 클래스
C++ class 클래스명 { public: virtual 데이터타입 메소드명()=0; }; / Java abstract class 클래스명 { abstract 데이터타입 메소드명(); } / 파이썬 class 클래스명 { def 메소드명(self): pass }

- 실행하는 방식에 따른 프로그래밍 언어 분류
명령형 언어 / 객체지향 언어 / 함수형 언어 / 논리형 언어



✔️ Chapter7. SQL 응용 

- 트랜잭션 특성
원자성 / 일관성 / 격리성 / 영속성 

- TCL
commit / rollback / checkpoint

- 병행 제어 기법 종류 
로킹 / 낙관적 검증 / 타임 스탬프 순서 / 다중버전 동시성 제어(MVCC)

- 데이터베이스 고립화 수준 종류 (격리성)
Read Uncommitted / Read Committed / Repeatable Read / Serializable Read

- 회복 기법 (영속성)
로그 기반 회복 기법(지연 갱신 회복 기법, 즉각 생신 회복 기법) / 체크포인트 회복 기법 / 그림자 페이징 회복 기법 

- DDL의 대상 
도메인 / 스키마(외부, 개념, 내부) /  테이블 / 뷰 / 인덱스 

- 인덱스 생성
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ..);

- 인덱스 종류
순서 인덱스 / 해시 인덱스 / 비트맵 인덱스 / 함수기반 인덱스 / 단일 인덱스 / 결합 인덱스 / 클러스터드 인덱스 

- 인덱스 스캔 방식
Index Range Scan / Index Full Scan / Index Unique Scan / Index Skip Scan

- SELECT
DISTINCT

- ALTER
ADD / MODIFY / DROP COLUMN

- DCL
GRANT/REVOKE ___ ON 테이블명 TO 사용자;

- GROUP BY + 그룹 함수
ROLLUP / CUBE / GROUPING SETS 

- 윈도 함수(OLAP) + OVER ORDER BY
순위 함수(RANK, DENSE_RANK, ROW_NUMBER) / 행 순서 함수(FIRST_VALUE, LAST_VALUE, LAG, LEAD) / 그룹 내 비율 함수(RATIO_TO_REPORT, PERCENT_RANK)

- 절차형 SQL 종류
프로시저 / 사용자 정의함수 / 트리거 

- 쿼리 성능 개선(튜닝)
옵티마이저 / 힌트 



✔️ Chapter8. 서버 프로그램 구현 

- 형상 관리
형상 식별 -> 형상 통제(CCB) -> 형상 감사 -> 형상 기록

- 소프트웨어 형상 관리 도구 유형
공유 폴더 방식(RCS, SCCS) / 클라이언트-서버 방식(CVS,SVN) / 분산 저장소 방식(Git)

- 응집도 ▲
우연적 / 논리적 / 시간적 / 절차적 / 통신적 / 순차적 / 기능적 

- 결합도 ▼
내용 / 공통 / 외부 / 제어 / 스탬프 / 자료 

- 팬인 / 팬아웃 

- 배치 스케줄러
스프링 배치 / 쿼츠 스케줄러 / CRON 표현식 



✔️ Chapter9. 소프트웨어 개발 보안 구축

- SW 개발 보안의 3대 요소 
기밀성 / 무결성 / 가용성 

- DOS 공격 종류 
SYN 플러딩 / UDP 플러딩 / 스머프 / 죽음의 핑(PoD) / 랜드 어택 / 티어 드롭 / 봉크, 보잉크

- DDoS 공격 구성요소
공격자 / 마스터 / 핸들러 / 에이전트 / 데몬 프로그램

- DRDoS 공격 

- 애플리케이션 공격(DDoS 서비스 마비 공격)
HTTP GET 플러딩 / Slowloris(Slow HTTP Header DoS) / RUDY(Slow HTTP POST DoS) / Slow HTTP Read DoS / Hulk DoS / Hash DoS

- 네트워크 공격
스니핑 / 네트워크 스캐너(스니퍼) / 패스워드 크래킹(Dictionary Cracking, Brute Force Cracking, Password Hybrid Attack, Rainbow Table Attack) / IP 스푸핑 / ARP 스푸핑 / ICMP Redirect 공격 / 트로이 목마

- 버퍼 오버플로우 공격 대응 방안
스택가드(Canary) / 스택쉴드(RET) / ASLR(Address Space Layout Randomization) / 안전한 함수 활용 / 실행 제한

- 백도어

- 주요 시스템 보안 공격 기법
포맷 스트링 공격 / 레이스 컨디션 공격 /  키로거 공격 / 루트킷 

- 보안 관련 용어
스피어피싱 / 스미싱 / 큐싱 / 봇넷(Botnet) / APT(Advanced Persistent Threat) 공격 / 공급망 공격 / 제로데이 공격 / 웜 / 악성 봇 / 사이버 킬체인 / 랜섬웨어 / Evil Twin 공격 / 난독화 / Tripwire / Ping / Tcpdump 

- 인증 기술 유형
지식기반 / 소지기반 / 생체기반 / 특징기반 인증

- 접근 통제 기법
식별 / 인증 / 인가 / 책임추적성 

- 서버 접근 통제 유형
임의적 접근 통제(DAC) / 강제적 접근 통제(MAC) / 역할기반 접근 통제(RBAC)

- 접근 통제 보호 모델
벨-라파듈라 모델(BLP, No Read Up No Write Down) / 비바 모델(No Read Down No Write Up)

- 암호 알고리즘 방식 
1. 대칭 키 암호 방식 : 블록 암호 방식 (DES, AES, SEED, ARIA, IDEA) / 스트림 암호 방식(RC4, LFSR)
2. 비대칭 키 암호 방식 : RSA, ECC, Elegmal, 디피-헬만
3. 해시 암호 방식(일방향 암호 방식) : MAC(HMAC, NMAC), MDC(MD5, HAS-160, SHA-1, ..)

- 데이터 암호화 전송(보안 채널)
IPSec(AH, ESP, IKE) / SSL/TLS / S-HTTP

- 시큐어 코딩 가이드
입력 데이터 검증 및 표현 / 보안 기능 / 시간 및 상태 / 에러 처리 / 코드 오류 / 캡슐화 / API 오용 

- 입력 데이터 검증 및 표현 취약점
XSS(Cross Site Script) / 사이트 간 요청 위조(CSRF: Cross-Site Request Forgery) / SQL Injection 

- 네트워크 보안 솔루션
방화벽 / 웹 방화벽(WAF) / 네트워크 접근 제어(NAC) / 침입 탐지 시스템(IDS) / 침입 방지 시스템(IPS) / 무선 침입 방지 시스템(WIPS) / 통합 보안 시스템(UTM) / 가상 사설망(VPN)

- 시스템 보안 솔루션
Anti-Spam Solution / Secure OS

- 콘텐츠 유출 방지 보안 솔루션
보안 USB / 데이터 유출 방지(DLP) / 디지털 저작권 관리(DRM)

- 비즈니스 연속성 계획(BCP)
BIA(Business Impact Analysis) / RTO(Recovery Time Objective) / RPO(Recovery Point Objective) / DRP(Disaster Recovery Plan) / DRS(Disaster Recovery System)

- DRS
Mirror Site / Hot Site / Warm Site / Cold Site 

- 보안 공격 관련 중요 용어
부 채널 공격 / Drive By Download / 워터링홀 / 스캠 공격 / 하트 블리드 / 크라임웨어 / 프로토콜 취약점(IoT-SSDP) / 윈드토커 / 토르 네트워크 / 멜트다운 / 스펙터 / MITM(Man In The Middle) 공격 / DNS 스푸핑 / 포트 스캐닝 / 디렉토리 리스팅 취약점 / 리버스 쉘 공격 / Exploit / Stuxnet 공격 / Credential Stuffing 

- 보안 공격 대응 관련 중요 용어
허니팟 / OWASP Top 10 / 핑거프린팅 / 워터마킹 / 이상금융거래탐지시스템(FDS) / CPTED(Crime Prevent Through Environment Design) / CC(Common Criteria) / 사이버 위협정보 분석 공유시스템(C-TAS) / 장착형 인증 모듈(PAM) / CVE(Common Vulnerabilities and Exposure) / CWE(Common Weakness Enumeration) / CVSS(Common Vulnerability Scoring System)



✔️ Chapter10. 애플리케이션 테스트 관리  

- 소프트웨어 테스트 기본 원칙 
테스팅은 결함이 존재함을 밝히는 것 / 완벽한 테스팅은 불가능 / 개발 초기에 테스팅 시작(요르돈의 법칙) / 결함집중(파레토 법칙) / 살충제 패러독스 / 테스팅은 정황에 의존적 / 오류-부재의 궤변 

- 소프트웨어 테스트 산출물
테스트 계획서 / 테스트 베이시스 / 테스트 케이스 / 테스트 슈트 / 테스트 시나리오 / 테스트 스크립트 / 테스트 결과서 

- 테스트 기법에 따른 분류
1. 구조 기반 테스트(화이트박스 테스트) : 구문(문장) 커버리지 / 결정(선택, 분기) 커버리지 / 조건 커버리지 / 조건-결정 커버리지 / 변경 조건-결정 커버리지 / 다중 조건 커버리지 / 기본 경로 커버리지 / 제어 흐름 테스트 / 데이터 흐름 테스트 
2. 명세/경험 기반 테스트(블랙박스 테스트) : 동등 분할 테스트(동치 분할, 균등 분할, 동치 클래스 분해 테스트) / 경계값(한계값) 테스트 / 결정 테이블 테스트 / 상태 전이 테스트 / 유스케이스 테스트 / 분류 트리 테스트 / 페어와이즈 테스트 / 원인-결과 그래프 테스트 / 비교 테스트 / 탐색적 테스트 / 오류 추정 / 체크리스트 / 특성 테스트

- 테스트 목적에 따른 분류
회복 테스트 / 안전 테스트 / 성능 테스트 / 구조 테스트 / 회귀 테스트 / 병행 테스트

- 성능 테스트
부하(Load) 테스트 / 스트레스 테스트 / 스파이크 테스트 / 내구성(Endurance) 테스트 

- 리뷰의 유형
관리 리뷰 / 기술 리뷰 / 인스펙션 / 워크스루 / 감사 

- 테스트 커버리지 유형
기능 기반 커버리지 / 라인 커버리지 / 코드 커버리지 

- 기본 경로 커버리지
맥케이브 순환복잡도 V(G)=E-N+2 

- 테스트 오라클
참 오라클 / 샘플링 오라클 / 휴리스틱 오라클 / 일관성 검사 오라클 

- 테스트 레벨 종류
단위 테스트(자료 구조, 실행 경로, 오류 처리, 인터페이스 테스트) / 통합 테스트(빅뱅, 샌드위치, 상향식-드라이버, 하향식-스텁 테스트) / 시스템 테스트(기능, 비기능 요구사항 테스트) / 인수 테스트(계약, 규정, 사용자, 운영상, 알파, 베타 테스트)

- 결함 분석 방법
구체화 / 고립화 / 일반화

- 애플리케이션 성능 측정 지표
처리량 / 응답 시간 / 경과 시간 / 자원 사용률

- 배드 코드
외계인 코드 / 스파게티 코드 / 알 수 없는 변수명 / 로직 중복

- 리팩토링 목적
유지보수성 향상 / 유연한 시스템 / 생산성 향상 / 품질 향상 



✔️ Chapter11. 응용 SW 기초 기술 활용

- 리눅스, 유닉스 기본 명령어
1. 시스템 관련 : uname -a / uname -r / cat / uptime
2. 사용자 : id / last / who
3. 파일 처리 : ls / pwd / rm / cp / mv
4. 프로세스 : ps / pmap / kill 
5. 파일 권한 : chmod / chown (RWX 421)
6. 네트워크 : ipconfig / host
7. 압축 : tar / gzip
8. 검색 : grep / find
9. 파일 이동 : cp / rsync
10. 디스크 사용 : df / du
11. 디렉터리 이동 : cd

- 메모리 배치 기법
최초 적합 / 최적 적합 / 최악 적합 

- 프로새스 상태
생성 / 준비 / 실행 / 대기 / 완료

- 프로세스 상태 전이
Dispatch / Timer run out / Block / Wake-up

- 프로세스 스케줄링 알고리즘 
1. 선점형 스케줄링 : 라운드 로빈 / SRT(Shortest Remaining Time First) / 다단게 큐 / 다단게 피드백 큐
2. 비선점형 스케줄링 : 우선순위 / 기한부 / FCFS(First Come First Service) / SJF(Shortest Job First) - 기아 현상 / HRN(Highest Response Ration Next) = (대기시간+서비스시간)/서비스시간

- 클라우드 컴퓨팅 (가상화)
Private Cloud / Public Cloud / Hybrid Cloud
IaaS / PaaS / SaaS

- OSI(Open System Interconnection) 7계층
물리 계층 / 데이터링크 계층 / 네트워크 계층 / 전송 계층 / 세션 계층 / 표현 계층 / 응용 계층 

- 네트워크 장비
1. 1계층 : 허브 / 리피터 
2. 2계층 : 브리지 / L2 스위치 / NIC(Network Interface Card) / 스위칭 허브
3. 3계층 : 라우터 / 게이트웨이 / L3스위치 / 유무선 인터넷 공유기 / 망(백본) 스위칭 허브
4. 4계층 : L4 스위치

- 프로토콜 기본 3요소
구문 / 의미 / 타이밍 

- 데이터링크 계층 프로토콜(2계층)
HDLC(HIgh-level Data Link Control) / PPP(Point to Point Protocol) / 프레임 릴레이 / ATM(Asynchronous Transport Mode)

- 네트워크 계층 프로토콜(3계층)
IP(Internet Protocol) / ARP(Address Resolution Protocol) / RARP(Reverse ARP) / ICMP(Internet Control Message Protocol) / IGMP(Internet Group Management Protocol) / 라우팅 프로토콜

- IPv4 클래스 분류 
A클래스(0-127) / B클래스(128-191) / C클래스(192-223) / D클래스(224-239)-멀티캐스트 / E클래스(240-255)-연구

- IPv6 특징
IP 주소 확장 / 이동성 / 인증 및 보안 기능 / 개선된 QoS / Plug&Play / Ad-hoc 네트워크 / 단순, 확장 헤더 / 실시간 패킷 추적 

- IPv4 -> IPv6 변환 방법
듀얼 스택 / 터널링 / 주소 변환기 

- 멀티캐스트 / 유니캐스트 / 브로드캐스트(IPv4) / 애니캐스트(IPv6)

- 라우팅 프로토콜(3계층)
1. RIP(Routing Information Protocol) : 벨만-포드 알고리즘 / 거리 벡터 라우팅 
2. OSPF(Open Shortest Path First) : 다익스트라 알고리즘 / 링크 상태 라우팅 
3. BGP(Border Gateway Protocol) 

- TCP(Transmission Control Protocol) 특징(4계층)
신뢰성 / 연결 지향적 / 흐름 제어 / 혼잡 제어 

- UDP(User Datagram Protocol) 특징(4계층)
비신뢰성 / 순서화되지 않은 데이터그램 서비스 / 실시간 응용 및 멀티태스킹 / 단순 헤더 

- 세션 계층 프로토콜(5계층)
RPC(Remote Procedure Call) / NetBIOS(Network Basic Input Output System)

- 표현 계층 프로토콜(6계층)
JPEG / MPEG

- 응용 계층 프로토콜(7계층)
HTTP / FTP / SMTP(Simple Mail Transfer Protocol) / POP3(Post Office Protocol Version 3) / IMAP(Internet Messaging Access Protocol) / Telnet 

- 네트워크 전달 방식 
패킷 스위칭(X.25, 프레임 릴레이, ATM-Asynchronous Transfer Mode) / 서킷 스위칭



✔️ Chapter12. 제품 소프트웨어 패키징 

- 릴리즈 노트 작성 항목
헤더 / 개요 / 목적 / 이슈 요약 / 재현 항목 / 수정, 개선 내용 / 사용자 영향도 / 소프트웨어 지원 영향도 / 노트 / 면책 조항 / 연락 정보

- 디지털 저작권 관리(DRM) 구성요소 
콘텐츠 제공자 / 콘텐츠 분배자 / 패키저 / 보안 컨테이너 / DRM 컨트롤러 / 클리어링 하우스 

- 패키징 도구 세부 가술 
1. 암호화 : 공개키 기반구조(PKI) / 대칭 및 비대칭 암호화 / 전자서명 
2. 식별 기술 : DOI(Digital Object Identifier) / URI(Uniform Resource Identifier)
3. 저작권 표현 : XrML(eXtensible Right Markup Language) / MPEG-21
4. 암호화 파일 생성 : Pre-packaging / On-the-fly Packaging
5. 정책 관리 : XML / CMS(contents Management System)
6. 크랙 방지 : 코드 난독화, Secure DB
7. 인증 : SSO(Single Sign On)

- 백업 유형
전체 백업 / 차등 백업 / 증분 백업