정보처리기사 실기 최종요약 암기본 — 시험 직전 한 번에 훑기
정보처리기사 실기 핵심 개념을 시험 직전에 빠르게 훑을 수 있도록 압축 정리한 암기본. 소프트웨어 공학부터 SQL, 보안, 네트워크까지 한 번에.
시험 하루 전 머릿속에 한 번 더 박아 넣기 위한 압축 요약본. 개념별 핵심 키워드와 약어(두문자)를 중심으로 정리했다.
1. 소프트웨어 생명주기 모델
| 모델 | 핵심 한 줄 |
|---|---|
| 폭포수(Waterfall) | 순차적, 단계 끝나야 다음 진행, 변경 어려움 |
| 프로토타입 | 시제품 먼저 만들어 요구사항 확정 |
| 나선형(Spiral) | 위험분석 중심, 반복적, 대규모 시스템 적합 |
| 반복적(Iterative) | 점증적/진화적 개발 |
| 애자일(Agile) | 변화 수용, 짧은 주기 반복, 사람 중심 |
애자일 12원칙 핵심 키워드: 고객만족, 변화수용, 짧은 주기, 동기부여, 대면소통, 작동 S/W, 지속가능, 기술 우수성, 단순성, 자기조직팀, 회고
애자일 방법론
- XP(eXtreme Programming): 5가지 가치 — 용기, 단순성, 의사소통, 피드백, 존중
- Scrum: 스프린트(2~4주), 백로그, 데일리 스크럼, 회고
- Lean: 낭비 제거, 가치 흐름
2. 요구사항 분석 & 설계
요구사항 분류
- 기능적 요구사항: 시스템이 무엇을 해야 하는가
- 비기능적 요구사항: 어떻게 해야 하는가 (성능, 보안, 가용성)
요구사항 개발 프로세스 (도분명확)
도출 → 분석 → 명세 → 확인
UML 다이어그램
| 구분 | 종류 |
|---|---|
| 구조적(정적) | 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지 |
| 행위적(동적) | 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 타이밍, 상호작용 개요 |
관계(Relationship)
- 연관(Association): 단순 연결 —
- 집합(Aggregation): 부분-전체, 독립 ◇—
- 합성(Composition): 부분-전체, 생명주기 공유 ◆—
- 일반화(Generalization): 상속 △—
- 의존(Dependency): 일시적 사용 --▶
- 실체화(Realization): 인터페이스 구현
3. 디자인 패턴 (GoF 23가지)
생성(Creational) - 5
추빌팩프싱 — 추상팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤
구조(Structural) - 7
어브컴데퍼플프 — 어댑터, 브리지, 컴포지트, 데코레이터, 퍼사드, 플라이웨이트, 프록시
행위(Behavioral) - 11
책커인반중메옵상전템방 — 책임연쇄, 커맨드, 인터프리터, 반복자(Iterator), 중재자(Mediator), 메멘토, 옵저버, 상태, 전략, 템플릿 메소드, 방문자(Visitor)
4. 객체지향 (OOP)
5대 원칙 — SOLID
- SRP: 단일 책임
- OCP: 개방-폐쇄 (확장 O, 변경 X)
- LSP: 리스코프 치환
- ISP: 인터페이스 분리
- DIP: 의존 역전
특징
- 캡슐화: 데이터+메서드 묶고 은닉
- 상속: 부모 기능 재사용
- 다형성: 같은 메시지, 다른 동작 (오버로딩/오버라이딩)
- 추상화: 공통 속성 추출
5. 모듈화 (결합도 & 응집도)
결합도는 낮게(Low), 응집도는 높게(High)
결합도 (낮은 순서)
자스제외공내 — 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용
응집도 (높은 순서)
기순교절시논우 — 기능 > 순차 > 교환(통신) > 절차 > 시간 > 논리 > 우연
6. 테스트
V모델 (개발↔테스트 매핑)
- 요구사항 분석 → 인수 테스트
- 시스템 설계 → 시스템 테스트
- 상세 설계 → 통합 테스트
- 코딩 → 단위 테스트
블랙박스 vs 화이트박스
블랙박스(기능/명세 기반): 동등분할, 경계값, 원인-결과, 오류추정, 비교, 결정테이블
화이트박스(구조 기반): 문장, 분기, 조건, 분기/조건, 변형 조건/결정, 다중 조건, 기본경로, 루프 검증
테스트 레벨
단위 → 통합 → 시스템 → 인수
통합 테스트 방식
- 하향식: Stub 필요
- 상향식: Driver 필요
- 빅뱅: 한꺼번에
- 샌드위치: 하향+상향 병행
7. 데이터베이스
정규화
| 단계 | 조건 |
|---|---|
| 1NF | 원자값 (도메인이 원자값) |
| 2NF | 1NF + 부분 함수 종속 제거 (완전 함수적 종속) |
| 3NF | 2NF + 이행적 함수 종속 제거 |
| BCNF | 3NF + 모든 결정자가 후보키 |
| 4NF | 다치 종속 제거 |
| 5NF | 조인 종속 제거 |
암기법: 도부이결다조 — 도메인원자, 부분종속제거, 이행종속제거, 결정자=후보키, 다치종속제거, 조인종속제거
키(Key)
- 후보키(Candidate): 유일성 + 최소성
- 기본키(Primary): 후보키 중 선택, NULL 불가
- 대체키(Alternate): 선택되지 않은 후보키
- 슈퍼키(Super): 유일성만 만족
- 외래키(Foreign): 다른 릴레이션의 기본키 참조
무결성
- 개체 무결성: 기본키 NULL 불가, 중복 불가
- 참조 무결성: 외래키는 참조 릴레이션의 기본키거나 NULL
- 도메인 무결성: 속성값이 도메인에 속해야 함
트랜잭션 — ACID
- Atomicity (원자성): 모두 성공 or 모두 실패
- Consistency (일관성): 실행 후에도 일관된 상태
- Isolation (독립성/고립성): 동시 실행 시 간섭 없음
- Durability (영속성/지속성): 완료되면 영구 반영
트랜잭션 상태
활동 → 부분완료 → 완료(commit) / 실패 → 철회(rollback)
8. SQL 핵심 문법
DDL / DML / DCL / TCL
-- DDL (정의): CREATE, ALTER, DROP, TRUNCATE, RENAME
CREATE TABLE 학생 (
학번 CHAR(8) PRIMARY KEY,
이름 VARCHAR(20) NOT NULL,
학과 VARCHAR(20),
FOREIGN KEY (학과) REFERENCES 학과(학과명)
);
-- DML (조작): SELECT, INSERT, UPDATE, DELETE
SELECT 학과, COUNT(*) AS 인원
FROM 학생
WHERE 학년 >= 3
GROUP BY 학과
HAVING COUNT(*) >= 10
ORDER BY 인원 DESC;
-- DCL (제어): GRANT, REVOKE
GRANT SELECT, INSERT ON 학생 TO 사용자A WITH GRANT OPTION;
-- TCL (트랜잭션): COMMIT, ROLLBACK, SAVEPOINT
JOIN
-- INNER JOIN: 교집합
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
-- LEFT OUTER JOIN: 왼쪽 전부 + 매칭
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
-- CROSS JOIN: 곱집합
-- SELF JOIN: 자기 자신 조인
뷰(VIEW)
CREATE VIEW 고학년 AS
SELECT * FROM 학생 WHERE 학년 >= 3;
특징: 독립성 제공, 보안, ALTER 불가, 인덱스 생성 불가 (대부분)
9. 프로그래밍 언어 (C/Java/Python)
진수 변환 / 비트 연산
// 비트 연산자
& (AND) | (OR) ^ (XOR) ~ (NOT) << >>
C 포인터
int a = 10;
int *p = &a; // p는 a의 주소
*p = 20; // a의 값을 20으로 변경
// 배열-포인터 관계
int arr[3] = {1,2,3};
// arr[i] == *(arr+i)
Java 접근제어자
| 제어자 | 같은클래스 | 같은패키지 | 자식 | 외부 |
|---|---|---|---|---|
| public | O | O | O | O |
| protected | O | O | O | X |
| default | O | O | X | X |
| private | O | X | X | X |
Python 컴프리헨션 / 슬라이싱
a = [1,2,3,4,5]
a[1:4] # [2,3,4]
a[::-1] # [5,4,3,2,1]
[x*2 for x in a if x%2==0] # [4,8]
10. 운영체제
프로세스 상태
생성 → 준비 → 실행 → (대기) → 종료
CPU 스케줄링
- 선점(Preemptive): SRT, RR, 다단계큐, 다단계피드백큐
- 비선점(Non-preemptive): FCFS, SJF, HRN, 우선순위, 기한부
HRN 공식: 우선순위 = (대기시간 + 서비스시간) / 서비스시간
페이지 교체 알고리즘
- FIFO: 먼저 들어온 것 교체
- LRU: 가장 오래 사용 안 된 것
- LFU: 가장 적게 사용된 것
- OPT(최적): 앞으로 가장 오래 사용 안 될 것
- NUR: 최근 사용 안 된 것
교착상태(Deadlock) 4조건
상점비환 — 상호배제, 점유와대기, 비선점, 환형대기
해결: 예방, 회피(은행원 알고리즘), 발견, 회복
11. 네트워크
OSI 7계층
아표세전네데물 — 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리
| 계층 | 프로토콜/장비 |
|---|---|
| 7 응용 | HTTP, FTP, SMTP, DNS |
| 6 표현 | JPEG, MPEG, SSL |
| 5 세션 | NetBIOS, RPC |
| 4 전송 | TCP, UDP / 게이트웨이 |
| 3 네트워크 | IP, ICMP, ARP / 라우터 |
| 2 데이터링크 | PPP, HDLC / 브릿지, 스위치 |
| 1 물리 | / 허브, 리피터 |
TCP vs UDP
| 구분 | TCP | UDP |
|---|---|---|
| 연결 | 연결형 | 비연결형 |
| 신뢰성 | 높음 | 낮음 |
| 속도 | 느림 | 빠름 |
| 용도 | 웹, 메일 | 스트리밍, DNS |
라우팅 프로토콜
- IGP(내부): RIP(거리벡터, 최대 15홉), OSPF(링크상태)
- EGP(외부): BGP
12. 보안
보안 3요소 — CIA
- Confidentiality (기밀성)
- Integrity (무결성)
- Availability (가용성)
- 인증(Authentication), 부인방지(Non-repudiation)
암호화
| 방식 | 설명 | 알고리즘 |
|---|---|---|
| 대칭키 | 암/복호화 동일 키 | DES, 3DES, AES, SEED, ARIA, IDEA |
| 비대칭키 | 공개키/개인키 쌍 | RSA, ECC, Diffie-Hellman, ElGamal |
| 해시 | 일방향, 무결성 | MD5, SHA, HAS-160 |
공격 유형
- SQL Injection: 입력값으로 SQL 조작
- XSS: 스크립트 삽입
- CSRF: 요청 위조
- DDoS: 분산 서비스 거부
- Sniffing: 패킷 가로채기
- Spoofing: 속임수 (IP/ARP/DNS)
- 스미싱/피싱/파밍: 사회공학
- APT: 지능형 지속 위협
- 랜섬웨어: 파일 암호화 후 금전 요구
- Zero-day: 패치 전 취약점 공격
보안 솔루션
- IDS: 침입탐지 (수동)
- IPS: 침입방지 (능동)
- 방화벽: 접근제어
- WAF: 웹 방화벽
- VPN: 가상 사설망
- DLP: 데이터 유출 방지
13. 시스템 개발 환경
서버 개발 프레임워크
- Java: Spring
- Python: Django, Flask
- JavaScript: Node.js (Express)
- Ruby: Rails
빌드 도구
Ant → Maven → Gradle
버전 관리
- Git: 분산형
- SVN: 중앙집중형
- CVS: 구형 중앙집중형
형상 관리 절차
식별 → 통제 → 감사 → 기록
14. 자주 나오는 두문자 총정리
| 약어 | 풀이 |
|---|---|
| SOLID | SRP, OCP, LSP, ISP, DIP |
| ACID | Atomicity, Consistency, Isolation, Durability |
| CIA | Confidentiality, Integrity, Availability |
| DORA | Discover, Offer, Request, Ack (DHCP) |
| CRUD | Create, Read, Update, Delete |
| 결합도 | 자스제외공내 |
| 응집도 | 기순교통절시논우 |
| OSI 7 | 응표세전네데물 |
| 교착 4조건 | 상점비환 |
| 애자일 XP 가치 | 용단의피존 |
15. 시험장 들어가기 전 최종 체크
- 약어 암기 (SOLID, ACID, CIA, DORA, OSI 7계층 순서)
- 결합도/응집도 순서와 정의 구분
- 정규화 1~BCNF 조건 말로 설명 가능한지
- 트랜잭션 ACID 각 특성 한 줄 설명
- 디자인 패턴 23개 분류 (생성 5/구조 7/행위 11)
- SQL DDL/DML/DCL/TCL 명령어
- JOIN 종류와 동작
- 페이지 교체 / 스케줄링 알고리즘 계산 연습
- TCP vs UDP 차이
- 대칭키/비대칭키 알고리즘 이름들
정리
정보처리기사 실기는 범위는 넓지만 나오는 포인트는 반복된다. 약어(두문자) 중심으로 뼈대를 세우고, 각 개념의 한 줄 정의 + 대표 예시만 확실히 잡으면 서술형·단답형 모두 대응 가능하다.
시험 전날은 새로운 개념을 파지 말고, 이 요약본을 3번 반복해서 훑는 것이 가장 효율적이다.
합격을 기원한다. 🍀