정보처리기사 실기 · 2020년 1회 ~ 2026년 2회 21회분 기준

실기 족보이것만은 외우고 가자

21회분 기출에서 자주 나온 개념을 과목별 암기표로 묶었어요. 형광펜은 시험장에서 그대로 답이 되는 말이고, 빨간 숫자는 실제로 출제된 횟수입니다. 답 가리기를 켜면 답 칸이 덮이고, 누를 때마다 하나씩 열려요.

스스로 시험 보기

많이 나온 순 같은 유형이 3회 이상 출제된 주제 · 칩을 누르면 그 기출 문제로

이 순위와 출제 주기를 바탕으로 고른 2026년 3회 예상 모의고사 20문제를 기출 풀기에서 풀 수 있어요.

    설계 결합도 · 응집도 · 디자인 패턴 · UML

    결합도 6회

    강한 순 "내공외제스자" — 낮을수록 좋다

    이렇게 나오면답
    1다른 모듈 안의 지역 데이터를 직접 고치거나, 안으로 곧장 분기한다내용 Content
    2여러 모듈이 전역 변수를 함께 쓴다공통 Common
    3외부에서 선언한 데이터(파일 형식, 통신 규약)를 함께 참조한다외부 External
    4플래그 같은 제어 신호를 넘겨 받는 쪽의 처리 흐름을 바꾼다제어 Control
    5배열·구조체를 통째로 넘기지만 일부만 쓴다스탬프 Stamp
    6필요한 값만 매개변수로 넘긴다자료 Data

    응집도 5회

    강한 순 "기순교절시논우" — 높을수록 좋다

    이렇게 나오면답
    1모든 요소가 단 하나의 기능만을 위해 협력기능적
    2앞 기능의 출력이 다음 기능의 입력순차적
    3같은 입력·출력 데이터를 쓰는 기능의 모임교환적(통신적)
    4관련 있는 일을 정해진 순서대로 실행절차적
    5같은 시기에 실행되는 일(초기화, 종료 처리)시간적
    6비슷한 성격의 일을 모으고 하나를 골라 실행논리적
    7서로 관련 없는 일이 우연히 모임우연적

    GoF 디자인 패턴 23개 분류 3회 · Observer 3회

    목적별로 생성 5 · 구조 7 · 행위 11. 설명을 보고 패턴 이름을 떠올려 보세요.

    생성 · 객체를 만드는 방법

    • Singleton객체를 딱 하나만 만들어 공유
    • Abstract Factory관련 객체 묶음(제품군)을 구체 클래스 없이 생성. 다른 이름 Kit
    • Factory Method어떤 객체를 만들지 하위 클래스가 결정 (가상 생성자)
    • Builder복잡한 객체를 단계별로 조립
    • Prototype원본을 복제(clone)해서 생성

    구조 · 클래스와 객체를 조합

    • Adapter맞지 않는 인터페이스를 변환 (변환 플러그)
    • Bridge기능 계층과 구현 계층을 분리해 따로 확장
    • Proxy대리 객체가 접근 제어·지연 생성
    • Composite부분-전체를 트리로, 개별·복합 객체를 똑같이 다룸
    • Decorator객체에 기능을 동적으로 덧붙임
    • Facade복잡한 내부에 단순한 창구 하나
    • Flyweight같은 객체를 공유해 메모리 절약

    행위 · 상호작용과 책임 분배

    • Observer상태가 바뀌면 구독자들에게 자동 통지 (일대다)
    • Visitor구조는 그대로 두고 새 연산을 바깥에서 추가
    • Iterator내부 구조를 숨기고 요소를 차례로 꺼냄
    • Strategy알고리즘을 캡슐화해 바꿔 끼움
    • Command요청을 객체로 만들어 저장·취소·재실행
    • State상태를 객체로 만들어 상태별 행동을 바꿈
    • Template Method상위 클래스가 골격, 하위 클래스가 세부 단계
    • Mediator객체끼리의 복잡한 통신을 중재자가 대신
    • Memento상태를 저장해 두었다가 되돌림 (Undo)
    • Chain of Responsibility처리할 수 있는 객체가 나올 때까지 요청을 넘김
    • Interpreter언어의 문법을 클래스로 표현해 해석

    UML 패키지 3회 · 클래스 관계 3회

    • UML 구성 요소 세 가지사물 · 관계 · 다이어그램
    • 폴더 모양 + «import» 점선 화살표패키지 다이어그램
    • 클래스 이름·속성·메서드와 정적 관계클래스 다이어그램
    • 객체끼리 주고받는 메시지를 시간 순서로시퀀스 다이어그램
    • 구현만 없는 오퍼레이션 목록인터페이스
    관계모양뜻
    연관실선서로 관계를 맺고 참조
    의존점선 화살표잠깐 사용 (매개변수 등)
    일반화실선 + 빈 삼각형is-a 상속
    실체화점선 + 빈 삼각형인터페이스 구현
    집합 Aggregation빈 마름모전체-부분, 부분이 따로 존재 가능
    합성 Composition채운 마름모전체가 사라지면 부분도 사라짐

    구조 다이어그램: 클래스 · 객체 · 컴포넌트 · 배치 · 복합체 구조 · 패키지 / 행위 다이어그램: 유스케이스 · 시퀀스 · 커뮤니케이션 · 상태 · 활동 · 타이밍 · 상호작용 개요

    그 밖에 설계 단골 형상 관리 3회

    • 형상 관리 절차식별 → 통제 → 감사 → 기록
    • 형상(버전) 관리 도구Git · SVN · CVS
    • SOLID: 바뀌어야 할 이유는 하나SRP 단일 책임
    • SOLID: 확장에 열리고 수정에 닫힘OCP 개방-폐쇄
    • SOLID: 쓰지 않는 메서드에 의존하지 않게ISP 인터페이스 분리
    • UI 원칙 4가지직관성 · 유효성 · 학습성 · 유연성
    • EAI 구축 유형 4가지Point-to-Point · Hub & Spoke · Message Bus · Hybrid
    • 럼바우 분석 순서객체 → 동적 → 기능 모델링
    • 나를 호출하는 모듈 수 / 내가 호출하는 수팬인 / 팬아웃
    • 요구사항: 무엇을 하는가 / 성능·보안 같은 품질기능 / 비기능
    • 외부 동작은 그대로, 내부 구조만 개선리팩토링
    • LOC 개발 기간총 LOC ÷ (1인 월 생산량 × 인원)

    데이터베이스 정규화 · 관계대수 · 키 · 무결성 · 트랜잭션

    정규화 4회 · 반정규화 3회

    "도부이결다조"

    정규형이것을 없앤다
    1NF모든 값을 원자값으로 (반복 그룹 제거)
    2NF부분 함수 종속 제거 (Partial)
    3NF이행 함수 종속 제거 (Transitive, X→Y→Z)
    BCNF결정자이면서 후보키가 아닌 것 제거
    4NF다치 종속 제거
    5NF조인 종속 제거
    • 정규화를 안 하면 생기는 문제 3가지삽입 · 삭제 · 갱신 이상
    • 성능을 위해 일부러 중복·통합·분리반정규화
    • 기본키 전체에만 종속 (영어)Full Functional Dependency

    관계대수 기호 6회

    뜻기호
    조건에 맞는 행(튜플)만 고름 · 셀렉트σ
    원하는 열(속성)만 뽑음, 중복 제거 · 프로젝트π
    공통 속성으로 합침 · 조인⋈
    다른 릴레이션의 모든 값과 관련된 튜플만 · 디비전÷
    합집합 / 교집합 / 차집합∪ / ∩ / −
    모든 조합 · 카티션 프로덕트×

    관계대수 = 절차적(어떻게), 관계해석 = 비절차적(무엇을), Codd 제안. 조인: 세타(비교) ⊃ 동등(=) → 자연(중복 열 제거).

    용어 5회

    • 행 하나 / 행의 개수튜플 / 카디널리티
    • 열 하나 / 열의 개수속성 / 디그리(차수)
    • 속성이 가질 수 있는 값의 범위도메인
    • 구조 정의(내포) / 어느 시점의 실제 데이터(외연)스키마 / 인스턴스
    • 사용자별 · 조직 전체 · 저장 장치 관점외부 · 개념 · 내부 스키마

    CROSS JOIN: 디그리는 더하고, 카디널리티는 곱한다.

    키와 무결성 무결성 3회

    • 유일성만 만족슈퍼키
    • 유일성 + 최소성후보키
    • 후보키 중 기본키가 안 된 것대체키
    • 다른 테이블의 기본키를 참조외래키
    • 기본키는 NULL·중복 불가개체 무결성
    • 외래키는 참조 테이블에 있는 값 또는 NULL참조 무결성
    • 속성 값은 정해진 범위 안도메인 무결성

    설계 순서 4회

    요구사항 분석→개념적 설계→논리적 설계→물리적 설계→구현
    • E-R 다이어그램, DBMS와 무관개념적 설계
    • DBMS 모델에 맞는 스키마 + 정규화논리적 설계
    • 저장 구조·인덱스·접근 경로물리적 설계
    • 레코드 접근 방법 세 가지순차 · 인덱스 · 해싱

    트랜잭션 · 회복 · 병행 제어

    • ACID원자성 · 일관성 · 독립성 · 지속성
    • 전부 반영되거나 전혀 안 됨원자성
    • 완료된 작업을 로그로 다시 실행 / 취소Redo / Undo
    • 바로 DB에 반영, Redo·Undo 모두 필요즉시 갱신
    • 커밋까지 로그에만, Undo 불필요지연 갱신
    • 잠가서 다른 트랜잭션 접근을 막음로킹

    SQL 키워드는 SQL 사전에 예시와 실행 결과까지 정리했어요.

    테스트 블랙박스 · 커버리지 · 통합 · V 모델

    블랙박스 기법 8회 · 1위

    • 구간마다 대표값 하나 (예: 5, 15, 40)동치(동등) 분할
    • 경계와 바로 바깥 (예: 7, 8, 16, 17)경계값 분석
    • 입력(원인)과 출력(결과)의 논리 관계를 그래프로원인-결과 그래프
    • 경험으로 오류가 날 만한 곳을 추측오류 예측
    • 조건 조합을 표로 정리결정 테이블

    화이트박스(구조 기반): 기초 경로 · 조건 · 루프 · 데이터 흐름 검사. 문제에 "구간", "그룹", "대표값"이 보이면 동치 분할.

    화이트박스 커버리지 6회 · 분기 경로 3회

    강한 순: 다중 조건 ⊃ MC/DC ⊃ 조건/결정 ⊃ 결정 ⊃ 구문

    보기이렇게 나오면답
    ㄱ모든 문장(Statement)을 한 번 이상 실행구문(문장)
    ㅅ결정문 전체가 True·False를 한 번씩 (= 분기, Branch)결정(분기)
    ㅇ결정 안의 개별 조건이 각각 True·False를 한 번씩조건
    ㄷ조건 커버리지와 결정 커버리지를 모두 만족조건/결정
    ㄹ각 조건이 다른 조건과 상관없이 결과에 독립적으로 영향 (항공 소프트웨어)MC/DC
    변경(변형) 조건/결정
    ㅂ모든 조건의 True·False 조합을 전부다중 조건
    ㄴ프로그램의 모든 실행 경로를 수행경로

    보기 기호는 실제 기출 23-2 6번과 25-3 2번에 나온 보기 그대로예요. 같은 보기가 두 번 나왔고 정답은 두 번 다 ㅇ(조건).

    • 조건 커버리지를 만족해도 결정 커버리지는 보장되지 않는다. A && B를 (참, 거짓), (거짓, 참)으로 시험하면 조건은 만족하지만 결정은 두 번 다 거짓.
    • 경로 커버리지가 가장 촘촘하지만, 반복문이 있으면 경로가 너무 많아 100%는 현실적으로 어렵다.
    • 단골 제어 흐름 그래프의 분기 경로 답: 1234561, 124567 (또는 1234567, 124561).

    기출 21-2·9 23-2·6 24-1·14 24-3·13 25-1·15 25-3·2 · 분기 경로 20-3·7 23-1·19 25-2·11

    통합 테스트 · V 모델 스텁·드라이버 4회

    • 하향식, 없는 하위 모듈 대신스텁
    • 상향식, 없는 상위 모듈 대신드라이버
    개발 단계짝이 되는 테스트
    요구사항 분석인수 테스트
    시스템 설계시스템 테스트
    상세 설계통합 테스트
    코딩단위 테스트

    진행 순서: 단위 → 통합 → 시스템 → 인수.

    그 밖에 테스트 단골

    • 테스트 케이스 구성 3요소테스트 조건 · 테스트 데이터 · 예상 결과
    • 개발사 안에서 / 실제 고객 환경에서알파 / 베타 테스트
    • 수정 뒤 다른 곳이 망가지지 않았나회귀(Regression) 테스트
    • 실행 없이 코드 분석 / 실행하며 분석정적 / 동적 분석
    • 같은 테스트만 반복하면 새 결함을 못 찾음살충제 패러독스
    • 오라클: 모든 입력 / 일부 입력참 / 샘플링 오라클
    • 자바용 xUnit 프레임워크JUnit

    네트워크 서브넷 · 라우팅 · OSI · 오류 제어

    서브넷 계산 7회 · 2위

    1. 마스크 마지막 옥텟을 본다: /26 → 255.255.255.192
    2. 블록 크기 = 256 − 마스크 값 → 256 − 192 = 64
    3. IP가 속한 블록을 찾는다: 0 · 64 · 128 · 192 중 132는 128 ~ 191
    4. 블록의 첫 주소 = 네트워크 주소, 마지막 = 브로드캐스트
    5. 호스트 수 = 블록 − 2 (네트워크·브로드캐스트 제외)
    139.127.19.132 / 255.255.255.192→ 네트워크 .128 · 브로드캐스트 .191 · 호스트 62개
    프리픽스마스크블록호스트
    /24255.255.255.0256254
    /25255.255.255.128128126
    /26255.255.255.1926462
    /27255.255.255.2243230
    /28255.255.255.2401614
    /22255.255.252.0세 번째 옥텟을 4씩 (8 ~ 11 …)

    FLSM으로 3개가 필요하면 2의 거듭제곱인 4개로 나눔 → 2비트 빌림 → /24가 /26.

    라우팅 프로토콜 OSPF 4회 · RIP 2회

    RIPOSPFBGP
    방식거리 벡터링크 상태경로 벡터
    알고리즘벨만-포드다익스트라—
    경로 기준홉 수 (최대 15)링크 비용의 합정책
    범위소규모 내부(IGP)대규모 내부(IGP)AS 사이(EGP)

    그림 문제: RIP는 비용을 무시하고 거치는 링크 수가 가장 적은 경로, OSPF는 비용 합이 가장 작은 경로를 고른다.

    계층하는 일단위 · 예
    7 응용사용자 서비스HTTP · FTP · SMTP · DNS
    6 표현형식 변환·암호화·압축JPEG · MPEG
    5 세션연결 설정·유지, 동기점NetBIOS · RPC
    4 전송종단 간 신뢰성, 흐름·오류 제어세그먼트 · TCP · UDP
    3 네트워크경로 선택(라우팅)패킷 · IP · ICMP · 라우터
    2 데이터 링크인접 노드 간 프레임, 오류·흐름 제어프레임 · HDLC · 스위치
    1 물리비트를 신호로비트 · 허브 · 리피터

    오류 제어 3회 · 패킷 교환 3회

    • 수신 측이 직접 고침FEC (대표: 해밍 코드)
    • 오류를 찾으면 재전송 요청BEC (ARQ)
    • 1비트 오류를 찾아 정정해밍(Hamming) 코드
    • 검사 비트 1개로 1의 개수를 맞춤패리티(Parity)
    • 생성 다항식으로 나눈 나머지CRC
    • 경로를 먼저 정하고 차례로 (연결형)가상 회선
    • 패킷마다 독립 경로 (비연결형)데이터그램
    • HDLC 프레임: 0 / 10 / 11로 시작정보(I) / 감독(S) / 비번호(U)

    키워드 → 답 ARP 3회 · AJAX 3회

    • IP → MAC / MAC → IPARP / RARP
    • IP 처리 중 오류를 알림, ping이 사용ICMP
    • 사설 IP ↔ 공인 IP 변환NAT
    • 페이지 새로고침 없이 비동기로 일부만AJAX
    • 공용망 위의 암호화 터널VPN
    • 기반 시설 없이 단말끼리애드혹 네트워크
    • 128비트 주소 / 32비트 주소IPv6 / IPv4
    • 2계층 터널링 (L2F + PPTP)L2TP
    • 53바이트 고정 셀ATM
    • 프로토콜 3요소구문 · 의미 · 타이밍
    • 포트: SSH / Telnet / HTTP / HTTPS22 / 23 / 80 / 443

    XML 계열 · 웹 서비스 AJAX 3회

    XML + ○○ 로 외우기: 언어 WSDL · 프로토콜 SOAP · 검색 UDDI · 자바스크립트 AJAX · 대체 JSON

    외우는 말답풀네임 · 하는 일기출
    XML 자체XMLeXtensible Markup Language. W3C가 만든 다목적 마크업 언어로, 사용자가 태그를 직접 정의한다 (SGML을 단순화)20-1·4
    XML + 언어WSDLWeb Services Description Language. 웹 서비스의 이름·위치·메시지 형식·프로토콜을 XML로 기술한 명세 언어21-1·4
    XML + 프로토콜SOAPSimple Object Access Protocol. HTTP·HTTPS·SMTP 위에서 XML 메시지를 주고받는 웹 서비스 통신 규약 (요즘은 REST로 많이 대체)20-2·13
    XML + 검색(등록)UDDIUniversal Description, Discovery and Integration. 웹 서비스를 등록하고 검색하는 저장소(레지스트리)실기 미출제
    XML + 자바스크립트(비동기)AJAXAsynchronous JavaScript and XML. 페이지 전체를 새로 고치지 않고 XMLHttpRequest로 필요한 부분만 비동기로 갱신20-2·3 23-1·4 25-2·8
    XML 대체 (가벼운 형식)JSONJavaScript Object Notation. {"name": "kim"} 같은 속성-값 쌍의 가벼운 데이터 형식, AJAX에서 XML 대신 많이 쓴다20-1·5

    웹 서비스 3요소 = SOAP(통신) · WSDL(명세) · UDDI(등록·검색). 함정: AJAX의 J는 Java가 아니라 JavaScript다.

    보안 접근 통제 · 암호 · 공격 기법

    접근 통제 3회 · 보안 요소

    이렇게 나오면답
    보안 등급·레이블과 규칙으로 시스템이 강제MAC 강제적
    소유자가 신분(ID)을 보고 재량으로 부여DAC 임의적
    직무(역할)에 권한을 묶음RBAC 역할 기반
    • 보안 3요소기밀성 · 무결성 · 가용성
    • AAA인증 · 인가 · 계정 관리
    • 비밀번호 대신 Access Token으로 권한 위임OAuth
    • 한 번 로그인으로 여러 시스템SSO
    • 한 번 쓰면 끝나는 비밀번호OTP
    • 정보보호 관리체계ISMS (개인정보 포함 ISMS-P)
    • 로그를 모아 상관 분석·실시간 탐지SIEM

    암호 알고리즘

    분류알고리즘
    대칭키DES · 3DES · AES · SEED · ARIA · LEA · IDEA · SKIPJACK
    비대칭키RSA(소인수분해) · ECC(타원곡선) · ElGamal
    해시MD5(128비트) · SHA-1 · SHA-256
    • 64비트 블록, 실제 키 56비트DES
    • DES 대체, 128비트 블록, 키 128·192·256AES
    • IP 계층 보안, AH + ESPIPSec
    • 원격 접속 암호화, 22번 포트SSH
    • WEP 보완, 패킷마다 키 변경TKIP

    공격 기법 · 악성코드

    이렇게 나오면답이렇게 나오면답
    ICMP를 브로드캐스트로, 출발지는 피해자SmurfSYN만 보내고 ACK 안 보냄SYN Flooding
    출발지 주소 = 목적지 주소Land Attack허용 크기보다 큰 pingPing of Death
    조각(fragment) 오프셋 조작Teardrop시퀀스 번호를 맞춰 세션 탈취세션 하이재킹
    가짜 ARP 응답으로 MAC 속임ARP 스푸핑암호화 안 된 패킷 엿듣기스니핑
    표적이 자주 가는 사이트를 감염워터링 홀오타 도메인 선점타이포스쿼팅
    사람의 신뢰와 실수를 이용사회공학특정 조직을 오래 노림APT
    입력창에 SQL 삽입SQL 인젝션게시판에 스크립트 삽입XSS
    흔적을 숨기고 관리자 권한 유지루트킷가짜 경고로 겁줌스케어웨어
    스스로 복제·전파, 숙주 불필요웜정상 프로그램으로 위장, 복제 안 함트로이 목마
    다른 실행 파일에 기생바이러스파일을 암호화하고 몸값 요구랜섬웨어

    운영체제 스케줄링 · 페이지 교체 · RAID · 리눅스

    CPU 스케줄링 5회

    이렇게 나오면답선점
    먼저 온 순서대로FCFSX
    실행 시간이 가장 짧은 작업 먼저SJFX
    (대기 + 서비스) ÷ 서비스가 큰 것 먼저HRNX
    시간 할당량만큼 돌아가며RRO
    남은 시간이 가장 짧은 것에게 넘김SRTO
    반환 시간 = 종료 − 도착대기 시간 = 종료 − 도착 − 실행평균 = 합 ÷ 프로세스 수

    SRT는 새 프로세스가 올 때마다 남은 시간을 다시 비교한다. HRN은 오래 기다릴수록 우선순위가 올라 SJF의 기아 현상을 줄인다. 알고리즘별 간트 차트 풀이와 계산기는 스케줄링 페이지에 있어요.

    페이지 교체 · 그 밖에

    • 먼저 들어온 페이지를 교체FIFO
    • 가장 오래 안 쓴 페이지를 교체LRU
    • 참조 횟수가 가장 적은 페이지를 교체LFU
    • 앞으로 가장 오래 안 쓸 페이지 (이론상 최적)OPT
    • 프로세스: 준비 → 실행 전이디스패치
    • 스트라이핑 / 미러링 / 패리티 분산RAID 0 / 1 / 5
    • rwx r-x --xchmod 751
    • 현재 경로 · 목록 · 이동 · 복사pwd · ls · cd · cp
    • 인프라 / 플랫폼 / 소프트웨어 제공IaaS / PaaS / SaaS
    • 프로세스 간 통신 기법 통칭IPC

    페이지 부재는 표를 그려 한 칸씩 따라가는 게 가장 안전하다. 처음 프레임을 채우는 것도 부재로 센다.

    코드 함정 체크리스트 실행 결과 문제에서 자주 틀리는 곳

    Java

    • 메서드는 실제 객체, 필드와 static 메서드는 변수의 선언 타입 기준
    • 부모 메서드 안에서 부른 메서드도 오버라이딩된 자식 것. 재귀도 전부 자식 것 4회
    • 생성 순서: 부모 필드 → 부모 생성자 → 자식 필드 → 자식 생성자
    • ==는 같은 객체, equals는 내용. 리터럴끼리는 같은 객체
    • 오버로딩은 실행 때가 아니라 컴파일 때의 인자 타입으로 고름
    • catch는 위에서부터 맞는 하나만, finally는 return이 있어도 실행
    • "1" + 2 + 3 = "123", 1 + 2 + "3" = "33"
    • switch에 break가 없으면 아래 case까지 계속

    C

    • *(p + 1)은 다음 칸 값, *p + 1은 첫 값에 1을 더함
    • %s는 그 위치부터 '\0'까지, strlen은 '\0' 제외
    • static 지역 변수는 호출이 끝나도 값이 남음
    • 함수 인자는 값 복사. 원본을 바꾸려면 포인터, 포인터를 바꾸려면 이중 포인터
    • p->x = (*p).x, 구조체 포인터 + 1은 구조체 하나만큼
    • 정수끼리 나누면 몫만. 0은 거짓
    • 비트 연산 & | ^ << >>: 2진수로 바꿔 한 자리씩
    • 후위 i++는 쓰고 나서 증가, 전위 ++i는 증가 후 사용

    Python

    • 슬라이싱 [a:b:c]는 b를 포함하지 않음, 음수는 뒤에서부터 3회
    • // 몫, / 실수 나눗셈, ** 거듭제곱
    • set은 중복 무시·순서 없음, remove는 없으면 오류, discard는 무시
    • append는 통째로 하나, extend는 풀어서 여러 개
    • range(a, b)는 b 미포함
    • sort()·reverse()는 제자리 변경, 반환값 None
    • True는 int의 하위 타입 (True + 1 = 2)
    • is는 같은 객체, ==는 같은 값

    주제별 개념·예제·연습 문제는 코드·SQL 공략에, 유형별 함정 요약은 쪽집게 노트에 있어요.