📚 단원별 바로가기 (10)
Auto Summary Note · 정보처리기사
정보처리기사 자동 단권화
1. 소프트웨어 공학·SDLC
SDLC (Software Development Life Cycle) 모델
| 모델 | 특징 |
|---|---|
| 폭포수 (Waterfall) | 요구분석→설계→구현→테스트→유지보수 순차. 변경 어려움 |
| 프로토타입 | 샘플 먼저 → 사용자 피드백 → 개선 |
| 나선형 (Spiral) | 위험분석 + 반복. 대형 프로젝트 |
| RAD | 빠른 개발 (60~90일). 4단계: 요구·사용자설계·구축·전환 |
| V-모델 | 각 개발 단계별 검증·확인 활동 매핑 |
| 애자일 (Agile) | 반복·점진. Scrum/XP/Kanban/FDD |
애자일 12원칙·Scrum
- 4가지 가치: 개인·상호작용 > 프로세스·도구 / 동작 SW > 문서 / 고객협력 > 계약 / 변화대응 > 계획
- Scrum 역할: PO(Product Owner)·SM(Scrum Master)·DevTeam
- 이벤트: Sprint(2~4주)·Daily Stand-up·Planning·Review·Retrospective
- 산출물: Product Backlog·Sprint Backlog·Increment
요구사항 분석
- 기능 요구사항 vs 비기능 요구사항 (성능·보안·가용성)
- 요구사항 명세 기법: 정형(VDM·Z), 비정형(자연어·UML)
- UML 다이어그램: Use Case·Class·Sequence·Activity·State·Component·Deployment
📌 출제: SDLC 모델 비교 + Scrum 이벤트 매년.
2. 객체지향·디자인 패턴
객체지향 5대 원칙 (SOLID)
- SRP: 단일책임
- OCP: 개방-폐쇄 (확장 O, 수정 X)
- LSP: 리스코프 치환
- ISP: 인터페이스 분리
- DIP: 의존관계 역전
객체지향 4대 특성
- 캡슐화: 데이터·연산 묶음 + 정보은닉
- 상속: 부모 클래스 속성·메소드 물려받음
- 다형성: 같은 인터페이스로 다른 동작 (오버로딩·오버라이딩)
- 추상화: 본질만 드러내고 세부 감춤
디자인 패턴 (GoF 23종)
| 분류 | 패턴 |
|---|---|
| 생성 (5) | Singleton·Factory Method·Abstract Factory·Builder·Prototype |
| 구조 (7) | Adapter·Bridge·Composite·Decorator·Facade·Flyweight·Proxy |
| 행위 (11) | Observer·Strategy·Command·Template Method·Iterator·State·Visitor·Mediator·Memento·Chain of Responsibility·Interpreter |
📌 출제: GoF 패턴 분류·역할 매년 2~3건.
3. 데이터베이스·SQL
관계형 DB 핵심
- 스키마 3계층: 외부(사용자 뷰) / 개념(전체 설계) / 내부(물리 저장)
- 키 종류: 기본키(PK)·후보키·대체키·외래키(FK)·슈퍼키
- 무결성: 개체(PK 유일)·참조(FK)·도메인(데이터 타입)·사용자정의
정규화
| 단계 | 제거 대상 |
|---|---|
| 1NF | 반복 그룹 (원자값) |
| 2NF | 부분 함수 종속 |
| 3NF | 이행적 함수 종속 |
| BCNF | 결정자가 후보키가 아닌 종속 |
| 4NF | 다치 종속 |
| 5NF | 조인 종속 |
SQL 핵심
- DDL: CREATE·ALTER·DROP·TRUNCATE
- DML: SELECT·INSERT·UPDATE·DELETE
- DCL: GRANT·REVOKE·COMMIT·ROLLBACK
- JOIN: INNER·LEFT·RIGHT·FULL OUTER·CROSS·SELF
- 집계함수: COUNT·SUM·AVG·MIN·MAX (GROUP BY + HAVING)
- 윈도우함수: ROW_NUMBER·RANK·DENSE_RANK·OVER(PARTITION BY)
트랜잭션 ACID
- Atomicity (원자성), Consistency (일관성), Isolation (고립성), Durability (지속성)
- 고립수준: READ UNCOMMITTED < READ COMMITTED < REPEATABLE READ < SERIALIZABLE
📌 출제: 정규화 단계 매년. SQL JOIN·서브쿼리.
4. 자료구조·알고리즘
자료구조
| 구조 | 특징·시간복잡도 |
|---|---|
| 배열 | 접근 O(1), 삽입/삭제 O(n) |
| 연결리스트 | 접근 O(n), 삽입/삭제 O(1) |
| 스택 (LIFO) | push/pop O(1). 함수 호출·역순 처리 |
| 큐 (FIFO) | enqueue/dequeue O(1). 작업 대기열 |
| 해시테이블 | 탐색 평균 O(1). 해시충돌 (체이닝·개방주소) |
| 이진탐색트리 | 탐색 평균 O(log n). AVL·Red-Black 자가균형 |
| 힙 | 최대/최소힙. insert/delete O(log n). 우선순위 큐 |
| 그래프 | 인접리스트·인접행렬. 방향/무방향·가중치 |
정렬 알고리즘
| 알고리즘 | 평균 | 최악 | 안정 |
|---|---|---|---|
| 버블·삽입·선택 | O(n²) | O(n²) | 버블·삽입 O |
| 병합 (Merge) | O(n log n) | O(n log n) | O |
| 퀵 (Quick) | O(n log n) | O(n²) | X |
| 힙 | O(n log n) | O(n log n) | X |
| 기수 (Radix) | O(dn) | O(dn) | O |
탐색·그래프 알고리즘
- DFS: 스택 사용. 깊이 우선
- BFS: 큐 사용. 너비 우선. 최단경로 (가중치 X)
- 다익스트라: 단일 출발점 최단경로. O(E log V) (양수 가중치)
- 벨만-포드: 음수 가중치 가능
- 플로이드-워셜: 모든 쌍 최단경로. O(V³)
- 크루스칼·프림: 최소신장트리 (MST)
📌 출제: 정렬 시간복잡도 + 트리 순회 매년.
5. 네트워크
OSI 7계층 vs TCP/IP 4계층
| OSI | TCP/IP | 프로토콜·기기 |
|---|---|---|
| 7. 응용 | 응용 | HTTP·FTP·SMTP·DNS·DHCP |
| 6. 표현 | JPEG·MPEG·SSL/TLS·암호화 | |
| 5. 세션 | RPC·NetBIOS | |
| 4. 전송 | 전송 | TCP·UDP / 게이트웨이 |
| 3. 네트워크 | 인터넷 | IP·ICMP·ARP / 라우터 |
| 2. 데이터링크 | 네트워크 액세스 | 이더넷·PPP / 스위치·브릿지 |
| 1. 물리 | 전기신호 / 허브·리피터 |
TCP vs UDP
- TCP: 연결지향, 신뢰성 (3-way handshake), 흐름제어, 혼잡제어. HTTP·FTP·SMTP
- UDP: 비연결, 빠름. DNS·DHCP·VoIP·스트리밍
IP 주소
- IPv4: 32비트. A(0~127)·B(128~191)·C(192~223)·D(멀티캐스트)·E(예약)
- IPv6: 128비트. 무한 주소 + IPSec 내장
- 서브넷팅·CIDR: /24 = 255.255.255.0
- NAT: 사설 → 공인 IP 변환
라우팅
- 거리벡터: RIP (홉 카운트, 최대 15)
- 링크상태: OSPF (대역폭 기반)
- 외부: BGP (AS 간)
📌 출제: OSI 계층 + TCP·UDP 구별 매년.
6. 운영체제
프로세스·스레드
- 프로세스: 실행 중 프로그램. PCB(Process Control Block)
- 스레드: 프로세스 내 실행 단위. 자원 공유
- 상태 전이: 생성 → 준비 → 실행 → 대기 → 종료
스케줄링
| 방식 | 특징 |
|---|---|
| FCFS | 비선점, 도착순 |
| SJF | 비선점, 짧은 작업 먼저. 대기시간 최소 |
| SRT | SJF의 선점 |
| RR (Round Robin) | 선점, time quantum |
| 우선순위 | 선점/비선점, 기아 방지 위해 aging |
| 다단계큐 | 큐별 다른 알고리즘 |
메모리 관리
- 고정분할: 내부단편화
- 가변분할: 외부단편화
- 페이징: 고정크기 페이지. 내부단편화. TLB
- 세그먼테이션: 가변크기. 외부단편화
- 가상메모리: 디스크 스와핑. 페이지 폴트
- 페이지 교체: FIFO·LRU·LFU·Optimal·NUR(NRU)
교착상태 (Deadlock) 4조건
- 상호배제 (Mutual Exclusion)
- 점유와 대기 (Hold and Wait)
- 비선점 (No Preemption)
- 환형대기 (Circular Wait)
- 해결: 예방·회피(은행원 알고리즘)·탐지·복구
파일시스템·디스크
- 디스크 스케줄링: FCFS·SSTF·SCAN·C-SCAN·LOOK·C-LOOK
- RAID: 0(스트라이핑), 1(미러링), 5(패리티 분산), 6(이중 패리티)
📌 출제: 페이지 교체·교착상태 4조건 매년.
7. 정보보안
보안 3대 요소 (CIA)
- Confidentiality 기밀성 — 인가된 자만 접근
- Integrity 무결성 — 변조 X
- Availability 가용성 — 필요시 접근 가능
- + 인증·부인방지·접근제어
암호 알고리즘
| 분류 | 예 |
|---|---|
| 대칭키 | DES·3DES·AES·SEED·ARIA·IDEA·RC4·HIGHT |
| 비대칭키 (공개키) | RSA·ECC·ElGamal·DSA·DH |
| 해시 | MD5·SHA-1·SHA-256·SHA-3·HMAC |
네트워크 공격
- 스니핑: 네트워크 도청
- 스푸핑: IP·DNS·ARP 위장
- DoS·DDoS: 서비스 거부 (SYN Flooding·Smurf·Ping of Death)
- SQL Injection: 입력값에 SQL 삽입
- XSS: 스크립트 삽입 (Stored·Reflected·DOM)
- CSRF: 사용자 위장 요청
- 세션 하이재킹: 세션 ID 탈취
웹 취약점·OWASP Top 10
- 인젝션·인증결함·민감데이터 노출·XXE·접근제어 결함·보안 설정 오류·XSS·역직렬화·취약 컴포넌트·로깅 부족
SSL/TLS·HTTPS
- 핸드셰이크: ClientHello → ServerHello → 인증서 → 키 교환 → 암호화
- HSTS·Cookie Secure·HttpOnly·SameSite
📌 출제: 대칭/비대칭 암호 + OWASP 매년.
8. 시스템 분석·설계
구조적 분석·설계
- DFD (Data Flow Diagram): 자료흐름. 프로세스·자료저장소·외부엔티티·자료흐름
- 자료사전 (DD): =(정의), +(연결), [|](선택), {}(반복), ()(선택)
- 모듈화·결합도·응집도:
- 결합도 (낮을수록 좋음): 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용
- 응집도 (높을수록 좋음): 우연 < 논리 < 시간 < 절차 < 통신 < 순차 < 기능
UI/UX 설계 원칙
- 직관성·유효성·학습성·유연성
- UI 종류: CLI·GUI·NUI(자연)·OUI(객체)·VUI(음성)
아키텍처 패턴
- 레이어드: 계층 분리
- MVC·MVP·MVVM: 모델·뷰·컨트롤러 분리
- 마이크로서비스: 독립 배포 단위
- 이벤트 주도: 발행-구독
- CQRS·이벤트소싱
📌 출제: 결합도·응집도 순서 매년.
9. 테스트·품질관리
테스트 종류
| 관점 | 테스트 |
|---|---|
| 화이트박스 | 구문·결정·조건·MC/DC·경로·루프 |
| 블랙박스 | 동등분할·경계값·원인결과·오류추정·비교 |
| 단계 | 단위·통합·시스템·인수 |
| 목적 | 회귀·성능·부하·스트레스·보안·사용성 |
통합 테스트 방식
- 하향식: 상위 → 하위. 스텁 사용
- 상향식: 하위 → 상위. 드라이버 사용
- 샌드위치: 두 방식 결합
- 빅뱅: 한꺼번에. 결함 추적 어려움
품질 모델
- ISO/IEC 25010 (SQuaRE): 8가지 — 기능적합성·성능효율성·호환성·사용성·신뢰성·보안성·유지보수성·이식성
- 맥콜·뵘 모델: 품질 요인
형상관리·CI/CD
- 버전관리: Git·SVN·Mercurial
- CI 도구: Jenkins·GitHub Actions·GitLab CI·Travis
- 빌드·테스트·배포 자동화
📌 출제: 화이트/블랙박스 종류 매년.
10. 신기술·트렌드 (DevOps·클라우드·AI)
DevOps·CI/CD
- DevOps: 개발(Dev) + 운영(Ops) 통합
- CI: 지속적 통합 — 자동 빌드·테스트
- CD: 지속적 배포
- 도구: Docker·Kubernetes·Helm·Ansible·Terraform
클라우드
| 모델 | 제공 |
|---|---|
| IaaS | 인프라 (AWS EC2·GCP Compute) |
| PaaS | 플랫폼 (Heroku·App Engine) |
| SaaS | 소프트웨어 (Gmail·Slack) |
| FaaS | 함수 (AWS Lambda·Cloud Functions) |
마이크로서비스 아키텍처 (MSA)
- 모놀리식 vs MSA. 독립 배포·확장
- API Gateway·Service Mesh·Service Discovery
빅데이터·AI
- 빅데이터 5V: Volume·Velocity·Variety·Veracity·Value
- Hadoop·Spark·Kafka: 분산 처리
- 머신러닝: 지도/비지도/강화 학습
- 딥러닝: CNN·RNN·LSTM·Transformer
블록체인·IoT
- 블록체인: 분산원장. 합의 (PoW·PoS)
- IoT: 센서·통신·플랫폼·서비스
- 5G·엣지컴퓨팅·디지털트윈
📌 출제: 신기술 용어 매년 1~2건. IaaS·PaaS·SaaS 차이.