[정처기 실기] 핵심 개념 복습
정보처리기사 실기 — 핵심 개념 복습
1. GoF 디자인 패턴
| 패턴 | 설명 |
|---|---|
| Singleton | 클래스의 인스턴스를 하나만 만들어 공유 |
| Observer | 객체 상태 변화를 관찰자들에게 자동 통지 |
| Adapter | 호환되지 않는 인터페이스를 변환해 함께 동작 |
| Factory Method | 객체 생성을 자식 클래스에 위임 |
| Strategy | 알고리즘을 캡슐화해 상황에 맞게 동적으로 교체 |
| Decorator | 기존 객체를 감싸 기능을 동적으로 추가·확장 |
| Command | 요청을 객체로 캡슐화해 실행·취소·대기열로 처리 |
2. 객체지향 5원칙 SOLID
| 원칙 | 설명 |
|---|---|
| LSP (리스코프 치환 원칙) | 자식 타입은 언제나 부모 타입으로 교체 가능 (상위 타입의 규약 위반 금지) |
| OCP (개방-폐쇄 원칙) | 확장에 열림, 수정에 닫힘 |
| DIP (의존성 역전 원칙) | 고수준·저수준 모두 추상화에 의존 |
| SRP (단일 책임 원칙) | 클래스는 하나의 책임·하나의 변경 이유만 가져야 함 |
| ISP (인터페이스 분리 원칙) | 클라이언트가 쓰지 않는 기능에 의존하지 않도록 인터페이스를 잘게 나눔 |
3. 블랙박스 테스트 기법
| 기법 | 설명 |
|---|---|
| 원인-결과 그래프 테스트 | 입력·결과의 인과 관계를 그래프로 표현 |
| 동등 분할 테스트 | 유효/무효 그룹으로 나눠 대표값 |
| 결정 테이블 테스트 | 조건의 조합과 동작을 표로 정리 |
| 경계값 분석 테스트 | 경계에 있는 값과 그 주변에 집중 |
| 상태 전이 테스트 | 이벤트에 따라 시스템의 상태가 어떻게 바뀌는지 (상태 전이도) |
| 오류 예측 테스트 | 개발자의 경험과 직관으로 오류가 있을 법한 부분을 예측 |
4. 트랜잭션의 4대 특성 (ACID)
| 특성 | 설명 |
|---|---|
| 격리성 (Isolation) | 동시 실행 시 "다른 트랜잭션이 끼어들 수 없음" |
| 영속성 (Durability) | 완료된 결과가 "장애가 나도 영구적으로 보존" |
| 원자성 (Atomicity) | 연산이 "모두 반영되거나 전혀 반영되지 않아야" (All or Nothing) |
| 일관성 (Consistency) | 실행 전후 데이터베이스가 "항상 일관된 상태 유지" |
5. 암호 알고리즘 / 프로토콜
| 알고리즘·프로토콜 | 설명 |
|---|---|
| RSA | 소인수분해 기반 + 전자서명 + 가장 널리 사용 |
| ECC | 타원곡선 이산로그 기반 + 짧은 키로 동등한 안전성 |
| WEP | 무선랜 초기 보안 프로토콜 + 취약해 TKIP·WPA로 대체 |
| AES·SEED | 대칭키 블록 암호 알고리즘 (암·복호화에 같은 키) |
| MD5 | 해시 함수 (단방향) |
| TKIP | WEP의 취약점을 보완한 후속 무선랜 보안 프로토콜 |
| DES | IBM 개발, 56비트 키, 64비트 블록, 현재 취약, 최초 표준 |
| AES | NIST 개발, 128/192/256비트 키, 128비트 블록, 널리 사용 |
6. 정보보안의 세 요소 (3A, AAA)
| 요소 | 의미 |
|---|---|
| 신원 확인 → Authentication (인증) | "당신은 누구인가?" |
| 권한 부여 → Authorization (인가) | "무엇을 할 수 있는가?" |
| 활동 기록·추적 → Accounting (계정 관리·감사) | "무엇을 했는가?" |
7. 사회공학 공격
| 공격 | 설명 |
|---|---|
| 파밍 (Pharming) | DNS·hosts 파일 조작으로 정상 주소를 입력해도 가짜 사이트로 유도 |
| 스미싱 (Smishing) | 문자메시지 (SMS)를 이용 |
| 비싱 (Vishing) | 전화 (음성)로 사칭 |
| Phishing | 가짜 사이트·메일로 유인해 정보를 탈취 (일반 피싱) |
| Spear Phishing | 특정 개인·조직을 표적으로 맞춤형 정보를 이용한 피싱 |
| Watering Hole | 표적 집단이 자주 방문하는 사이트에 악성코드를 매복 |
8. 라우팅 알고리즘
| 알고리즘 | 설명 |
|---|---|
| RIP | 거리 벡터 (홉 수 기준·최대 15홉) |
| OSPF | 링크 상태 (다익스트라 최단 경로·대역폭 비용) |
| BGP | 경로 벡터 (AS 간 경로 교환) |
9. 네트워크 주소 문제
호스트 주소, 서브넷 마스크가 주어짐
| 항목 | 설명 |
|---|---|
| 네트워크 주소 | 호스트 주소와 서브넷 마스크 주소의 AND 연산 |
| 브로드캐스트 주소 | 네트워크 주소에서 서브넷 마스크 주소의 0인 부분을 모두 1로 채움 |
| 배정 불가 주소 | 한 네트워크에서 맨 앞의 네트워크 주소와 맨 뒤의 브로드캐스트 주소는 장비에 배정할 수 없음 |
| 사용 가능한 호스트 수 | 2^(호스트 비트 수) − 2 |
10. RAID 기술
| RAID | 설명 |
|---|---|
| 0 | 스트라이핑만 사용해 성능은 가장 높지만, 패리티·미러링이 없어 디스크 하나만 고장 나도 전체 데이터가 손실 |
| 1 | 동일한 데이터를 두 디스크에 복제 (미러링), 공간 효율 50% |
| 5 | 스트라이핑 + 분산 패리티 (최소 3개 디스크)로, 패리티를 이용해 디스크 1개 장애까지 복구 |
| 6 | 스트라이핑 + 이중 패리티 (최소 4개 디스크)로, 디스크 2개 장애까지 복구 |
| 10 | 미러링을 먼저 적용한 뒤 스트라이핑 결합, 최소 4개 디스크 |
11. 인터페이스 보안 암호화 프로토콜
| 프로토콜 | 설명 |
|---|---|
| HTTPS | HTTP에 SSL/TLS 암호화를 결합한 프로토콜로, 웹 통신 채널 전체를 암호화 |
| L2F (Layer 2 Forwarding) | 시스코에서 개발한 데이터 링크 계층 터널링 프로토콜로 UDP를 사용 |
| L2TP (Layer 2 Tunneling Protocol) | L2F와 마이크로소프트의 PPTP를 결합한 프로토콜. 자체 암호화 기능이 없어 보안 강화를 위해 IPSec과 결합하여 사용 |
12. 구조 패턴
| 패턴 | 설명 |
|---|---|
| Adapter (어댑터) | 서로 호환되지 않는 인터페이스를 중간에서 맞춰 주어, 기존 클래스를 고치지 않고 재사용할 수 있게 하는 구조 패턴 (인터페이스를 변환해 연결하는 것이 목적일 뿐, 객체를 공유해 메모리를 아끼지는 않음) |
| Facade (퍼사드) | 복잡한 서브시스템에 대해 단순한 통합 창구를 제공해, 클라이언트가 내부 구조를 몰라도 기능을 쓸 수 있게 하는 구조 패턴 (사용법을 간단하게 만들 뿐 내부에서 만들어지는 객체 수를 줄여 주지는 않음) |
| Proxy (프록시) | 원래 객체에 바로 접근하지 않고 대리 객체를 거치게 해 접근을 제어하거나 비용을 줄이는 구조 패턴 |
| Decorator (데코레이터) | 원래 클래스는 그대로 둔 채 객체를 감싸서 동적으로 새로운 기능을 덧붙여 확장하는 구조 패턴 |
| Composite (컴포지트) | 객체들을 트리 구조로 구성해 부분-전체 계층을 표현하고, 개별 객체와 복합 객체를 똑같은 방식으로 다루게 하는 구조 패턴 |
13. 구조 다이어그램
| 다이어그램 | 설명 |
|---|---|
| 클래스 | 속성, 메서드, 클래스 관계 |
| 객체 | 특정 시점의 인스턴스, 실제 예시 |
| 컴포넌트 | 물리적 컴포넌트, 의존성 |
| 배치 (배포) | 컴포넌트 종속성, 물리적 요소 위치 |
| 복합체 구조 | 클래스 내부 구조, 협력 관계 |
| 패키지 | 유스케이스, 클래스 요소들의 그룹화, 폴더 모양 |
14. 행위 다이어그램
| 다이어그램 | 설명 |
|---|---|
| 유스케이스 | 사용자 관점, 시스템 기능, 상호작용 |
| 시퀀스 | 시간 흐름, 메시지 흐름 |
| 커뮤니케이션 | 객체 간의 관계와 메시지 교환에 집중 |
| 상태 | 하나의 객체가 겪는 상태 변화 |
| 활동 | 작업의 흐름, 처리 로직, 처리 흐름 |
| 타이밍 | 시간 제약에 따른 객체 상태 변화 |
15. 패스워드 크래킹
| 공격 | 설명 |
|---|---|
| 사전 크래킹 | 미리 만들어진 단어 목록 (사전)을 순서대로 대입 |
| 무차별 크래킹 | a, b, c… aa, ab, ac… 처럼 가능한 모든 조합을 시도 |
| 패스워드 하이브리드 공격 | 사전 단어 + 숫자/특수문자 조합 |
| 레인보우 테이블 공격 | 해시 함수를 거꾸로 추적하기 위해 미리 만들어 둔 해시값 테이블 (레인보우 테이블)을 사용 |
16. 데이터 링크 계층의 주요 프로토콜
| 프로토콜 | 설명 |
|---|---|
| HDLC | 비트 중심의 프로토콜로, 점대점 및 다중점 링크를 모두 지원. 데이터 투명성을 보장하기 위해 비트 스터핑 (Bit Stuffing)을 사용하며, 정보 프레임 (I), 감독 프레임 (S), 비번호 프레임 (U)으로 구성 |
| PPP | 점대점 방식의 데이터 링크 프로토콜로, 인터넷 서비스 제공자 (ISP)와 사용자 사이에서 주로 사용. 인증, 압축, 암호화 등 다양한 기능을 제공 |
17. 해시 충돌과 해결방법
| 항목 | 설명 |
|---|---|
| 해시충돌 | 서로 다른 키가 같은 해시 주소를 반환하는 현상 |
| 체이닝 | 같은 해시 주소의 레코드를 연결 리스트로 관리 |
| 개방 주소법 | 충돌 시 다른 빈 공간을 찾아 저장 |
18. 관계 표현 / 판별
| 관계 | 표기 |
|---|---|
| 실체화 | - -▷ 점선 + 속이 빈 삼각형 |
| 일반화 | ─▷ 실선 + 속이 빈 삼각형 |
| 의존 | - -> 점선 + 화살표 |
| 연관 | -> 실선 + 화살표 |
| 포함 | ◆─ 채워진 마름모 |
| 집합 | ◇- 속이 빈 마름모 |
19. 네트워크 신기술
| 기술 | 설명 |
|---|---|
| Zigbee (지그비) | IEEE 802.15.4 표준, 저전력·저속·저비용, 메시 네트워크, 대규모 센서·제어 네트워크 |
| BLE | 저전력에 초점을 맞춘 블루투스, 작은 배터리로 수개월 이상 동작 |
| Wi-SUN | 스마트 그리드, 원격 검침 |
| UWB | 분실물 추적 |
| NFC | 모바일 결제, 교통 카드 |
| MQTT | 브로커를 통해 발행/구독 모델, 경량 메시징 프로토콜 |
| Beacon (비컨) | BLE 기반으로 신호를 주기적으로 송신 |
| 애드 혹 네트워크 | AP나 기지국 같은 인프라 없이 단말기끼리 직접 통신 |
20. SQL (권한 부여)
GRANT 권한목록 ON 테이블 TO 사용자 [WITH GRANT OPTION]
REVOKE 권한 ON 테이블 FROM 사용자
21. 악성 코드
| 유형 | 설명 |
|---|---|
| 랜섬웨어 | 파일 암호화, 복구 키 대가로 금전 요구 |
| 스파이웨어 | 키 입력/브라우징 기록 수집, 외부 서버 전송 |
| 스캐어웨어 | 가짜 감염 경고, 보안 프로그램 결제 유도 |
| 바이러스 | 다른 프로그램이나 실행파일을 변형시켜 감염, 네트워크를 통해 다른 컴퓨터로 스스로 퍼지지 않음 |
| 웜 | 독립적인 프로그램으로 존재, 네트워크·이메일·P2P 등으로 다른 컴퓨터로 전파 |
| 트로이 목마 | 정상 프로그램으로 위장, 자가복제나 파일 감염 X |
22. 접근 통제 유형 판별
| 유형 | 설명 |
|---|---|
| MAC (강제적 접근 통제) | 보안 등급과 중앙 정책이 접근을 강제하며 소유자 임의 공유도 불가 |
| RBAC (역할 기반 접근 통제) | 사용자 개인이 아니라 직무 역할 (Role)에 권한을 연결 |
| DAC (임의적 접근 통제) | 객체 소유자가 자기 판단으로 권한을 부여·회수 |
23. 네트워크 공격 종류
| 공격 | 설명 |
|---|---|
| IP 스푸핑 (IP Spoofing) | 출발지 IP 주소를 신뢰할 수 있는 다른 시스템의 IP로 위조 |
| ARP 스푸핑 (ARP Spoofing) | 특정 IP 주소에 대한 MAC 주소를 자신의 것처럼 속여 통신을 가로채는 공격 |
| 스니핑 (Sniffing) | 네트워크를 지나다니는 데이터 패킷을 몰래 엿보는 수동적 공격 |
| 세션 하이재킹 (Session Hijacking) | 인증이 끝난 정상 세션을 가로채 공격자가 인증된 사용자로 위장하는 공격 |
| ICMP Redirect 공격 | 라우터가 보내는 경로 변경 메시지를 위조해 피해자의 패킷이 공격자를 거쳐 가도록 만드는 공격 |
| 사전 크래킹 | 사전에 있는 단어나 자주 쓰는 비밀번호 목록을 대입해 비밀번호를 알아내는 패스워드 크래킹 기법 |