정보처리기사 개념 정리
AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.
객관식 4지 택일형 · 5과목 100문항 · 150분
합격 기준: 과목마다 40점 이상, 평균 60점 이상
출처: 한국산업인력공단 · 2026년 기준
소프트웨어 설계
요구사항 확인 ★★★★★
폭포수 모형
분석 → 설계 → 구현 → 테스트 → 유지보수를 한 단계씩 차례로 끝내고 다음 단계로 넘어가는 개발 방법입니다. 앞 단계로 되돌아가기 어렵습니다.
애자일
짧은 주기로 만들고 고객 의견을 받아 계속 고쳐 나가는 개발 방법입니다. 문서보다 동작하는 소프트웨어, 계획보다 변화 대응, 계약보다 고객 협업을 중시합니다.
기능·비기능 요구사항
기능 요구사항은 시스템이 무엇을 하는지(예: 회원 가입), 비기능 요구사항은 얼마나 잘 하는지(성능·보안·사용성 등)입니다.
UML 다이어그램
구조 다이어그램은 시스템의 모양(클래스, 객체, 컴포넌트, 배치, 패키지)을, 행위 다이어그램은 움직임(유스케이스, 시퀀스, 상태, 활동)을 그립니다.
포함과 확장 관계
유스케이스에서 포함(include)은 기본 기능을 할 때 반드시 함께 실행되는 기능이고, 확장(extend)은 조건이 맞을 때만 실행되는 기능입니다.
소프트웨어 설계
화면 설계 ★★★☆☆
UI 설계 원칙
누구나 쉽게 이해하는 직관성, 목적을 정확히 이루는 유효성, 쉽게 배우는 학습성, 실수를 줄이고 다양한 요구를 받아 주는 유연성이 기본 원칙입니다.
CLI·GUI·NUI
CLI 는 글자 명령을 입력해 조작하고, GUI 는 아이콘·창을 마우스로 조작하며, NUI 는 말이나 손짓 같은 자연스러운 동작으로 조작합니다.
와이어프레임·목업·프로토타입
와이어프레임은 화면 배치만 그린 뼈대, 목업은 실제와 비슷하게 꾸민 정지 화면, 프로토타입은 눌러 볼 수 있게 동작하는 견본입니다.
소프트웨어 설계
애플리케이션 설계 ★★★★★
결합도
모듈과 모듈이 서로 얼마나 기대고 있는지를 나타냅니다. 약한 것부터 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용 결합도 순이며, 약할수록 좋습니다.
응집도
한 모듈 안의 요소들이 얼마나 한 가지 일에 모여 있는지를 나타냅니다. 강한 것부터 기능 → 순차 → 교환 → 절차 → 시간 → 논리 → 우연 응집도 순이며, 강할수록 좋습니다.
객체지향의 특징
데이터와 기능을 묶는 캡슐화, 부모의 성질을 물려받는 상속, 같은 명령에 객체마다 다르게 반응하는 다형성, 핵심만 남기는 추상화, 내부를 숨기는 정보 은닉이 있습니다.
디자인 패턴 3분류
객체를 만드는 방법은 생성 패턴(싱글톤, 팩토리 메서드), 객체를 조합하는 방법은 구조 패턴(어댑터, 데코레이터), 객체끼리 일을 나누는 방법은 행위 패턴(옵서버, 전략)입니다.
소프트웨어 설계
인터페이스 설계 ★★★☆☆
미들웨어
운영체제와 응용 프로그램 사이에서 서로 다른 시스템이 데이터를 주고받을 수 있게 이어 주는 소프트웨어입니다.
미들웨어의 종류
RPC 는 멀리 있는 프로그램의 기능을 불러 쓰고, MOM 은 메시지를 비동기로 주고받으며, TP-Monitor 는 트랜잭션 처리를 감시하고, WAS 는 웹에서 동적인 내용을 처리합니다.
요구사항 검증 방법
동료 검토는 작성자가 설명하고 동료가 결함을 찾는 방식, 워크스루는 미리 자료를 나눠 주고 짧게 검토하는 방식, 인스펙션은 전문가가 정해진 절차에 따라 꼼꼼히 검사하는 방식입니다.
소프트웨어 개발
자료구조와 알고리즘 ★★★★★
스택
나중에 넣은 자료가 먼저 나오는(LIFO) 자료구조입니다. 넣는 것을 push, 꺼내는 것을 pop 이라 합니다.
큐
먼저 넣은 자료가 먼저 나오는(FIFO) 자료구조입니다. 한쪽 끝에서 넣고 반대쪽 끝에서 꺼냅니다.
트리 순회
전위 순회는 뿌리 → 왼쪽 → 오른쪽, 중위 순회는 왼쪽 → 뿌리 → 오른쪽, 후위 순회는 왼쪽 → 오른쪽 → 뿌리 순서로 방문합니다.
정렬의 시간 복잡도
버블·선택·삽입 정렬은 평균 O(n²) 이고, 퀵·병합·힙 정렬은 평균 O(n log n) 입니다.
이진 검색
정렬된 자료의 가운데 값과 비교해 찾는 범위를 절반씩 줄이는 검색 방법입니다. 시간 복잡도는 O(log n) 입니다.
소프트웨어 개발
애플리케이션 테스트 ★★★★★
화이트박스 테스트
프로그램 내부의 코드와 흐름을 보면서 모든 경로가 제대로 실행되는지 확인하는 테스트입니다. 기초 경로 검사, 조건 검사, 루프 검사 등이 있습니다.
블랙박스 테스트
내부는 보지 않고 입력에 맞는 출력이 나오는지만 확인하는 테스트입니다. 동치 분할, 경계값 분석, 원인-결과 그래프, 오류 예측이 있습니다.
테스트 단계(V 모델)
작은 단위부터 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트 순서로 진행합니다. 인수 테스트는 사용자가 직접 확인합니다.
스텁과 드라이버
하향식 통합에서는 아직 없는 아래 모듈을 대신하는 스텁이, 상향식 통합에서는 아직 없는 위 모듈을 대신하는 드라이버가 필요합니다.
소프트웨어 개발
통합 구현과 제품 패키징 ★★★☆☆
형상 관리
소프트웨어가 바뀌는 과정을 기록하고 통제하는 활동입니다. 식별 → 통제 → 감사 → 기록 순서로 진행합니다.
형상 관리 도구
Git 은 저장소를 여러 곳에 나눠 두는 분산형, SVN 과 CVS 는 저장소를 한곳에 두는 중앙 집중형 도구입니다.
JSON 과 XML
JSON 은 '이름 : 값' 쌍으로 자료를 적는 가벼운 형식이고, XML 은 시작·끝 태그로 자료의 구조를 나타내는 형식입니다.
데이터베이스 구축
논리 데이터베이스 설계 ★★★★★
튜플·애트리뷰트
관계형 데이터베이스의 표에서 가로 한 줄(행)이 튜플, 세로 한 칸(열)이 애트리뷰트(속성)입니다. 튜플의 수를 카디널리티, 속성의 수를 디그리(차수)라 합니다.
무결성 제약
개체 무결성은 기본키에 빈 값(Null)이나 중복 값이 없어야 한다는 규칙이고, 참조 무결성은 외래키 값이 참조하는 표에 실제로 있는 값이거나 비어 있어야(Null) 한다는 규칙입니다.
정규화
중복을 줄이려고 표를 나누는 과정입니다. 1NF 는 원자값, 2NF 는 부분 함수 종속 제거, 3NF 는 이행 함수 종속 제거, BCNF 는 모든 결정자가 후보키가 되게 합니다.
관계 대수 연산자
셀렉트(σ)는 조건에 맞는 행을, 프로젝트(π)는 원하는 열을 고르고, 조인(⋈)은 두 표를 합치며, 디비전(÷)은 나누는 연산입니다.
데이터베이스 구축
SQL 활용 ★★★★★
DDL·DML·DCL
DDL 은 표를 정의하는 명령(CREATE, ALTER, DROP), DML 은 자료를 다루는 명령(SELECT, INSERT, UPDATE, DELETE), DCL 은 권한과 확정을 다루는 명령(GRANT, REVOKE, COMMIT, ROLLBACK)입니다.
CASCADE 와 RESTRICT
DROP 할 때 CASCADE 는 그 개체를 참조하는 것까지 함께 지우고, RESTRICT 는 다른 곳에서 참조하고 있으면 지우지 않습니다.
집계 함수와 Null
COUNT(*) 는 Null 이 있는 행까지 모두 세고, COUNT(열 이름)은 그 열이 Null 인 행을 빼고 셉니다.
DISTINCT
SELECT 결과에서 똑같은 행이 여러 번 나오면 하나만 남기는 키워드입니다.
데이터베이스 구축
물리 설계와 트랜잭션 ★★★★☆
트랜잭션의 ACID
트랜잭션은 모두 되거나 전혀 안 되어야 하고(원자성), 실행 전후가 일관되어야 하며(일관성), 서로 끼어들지 않아야 하고(독립성), 완료된 결과는 남아야 합니다(영속성).
로킹 단위
한 번에 잠그는 범위입니다. 크게 잠그면 관리가 쉽지만 동시에 쓸 수 있는 사람이 줄고(병행성 낮음), 작게 잠그면 그 반대입니다.
뷰
실제 자료를 저장하지 않고 다른 표에서 필요한 부분만 보여 주는 가상 표입니다. 고칠 때는 ALTER 로 바꿀 수 없어 지우고 다시 만듭니다.
인덱스
책의 찾아보기처럼 원하는 자료를 빨리 찾도록 따로 만든 구조입니다. 검색은 빨라지지만 자료를 넣고 고칠 때는 인덱스도 고쳐야 해 느려질 수 있습니다.
프로그래밍 언어 활용
프로그래밍 언어 ★★★★★
정수 나눗셈과 나머지
C 와 자바에서 정수끼리 나누면 소수점 아래를 버린 몫만 남습니다. 7 / 2 는 3, 7 % 2 는 나머지 1 입니다.
전위·후위 증가
++a 는 먼저 1을 더한 뒤 그 값을 쓰고, a++ 는 지금 값을 먼저 쓴 뒤 1을 더합니다.
배열과 포인터
C 에서 배열 이름은 첫 번째 원소의 주소입니다. 포인터 p 가 배열을 가리킬 때 *(p + i) 는 p[i] 와 같은 값입니다.
파이썬 슬라이싱
a[시작:끝] 은 시작 위치부터 끝 위치 바로 앞까지 가져옵니다. 번호는 0부터 셉니다.
프로그래밍 언어 활용
운영체제 ★★★★★
선점과 비선점 스케줄링
비선점은 한 프로세스가 CPU 를 잡으면 끝날 때까지 쓰는 방식(FCFS, SJF, HRN), 선점은 중간에 다른 프로세스가 CPU 를 빼앗을 수 있는 방식(RR, SRT, 다단계 피드백 큐)입니다.
HRN
기다린 시간까지 따져 우선순위를 정하는 비선점 방식입니다. 우선순위 = (대기 시간 + 서비스 시간) ÷ 서비스 시간 이며, 값이 클수록 먼저 실행합니다.
교착 상태 4조건
상호 배제, 점유와 대기, 비선점, 환형 대기가 모두 성립하면 교착 상태가 생길 수 있습니다. 하나라도 깨면 막을 수 있습니다.
페이지 교체 알고리즘
FIFO 는 가장 먼저 들어온 페이지를, LRU 는 가장 오랫동안 쓰지 않은 페이지를, LFU 는 가장 적게 쓴 페이지를 내보냅니다.
프로그래밍 언어 활용
네트워크 ★★★★☆
OSI 7계층
통신 과정을 물리 → 데이터 링크 → 네트워크 → 전송 → 세션 → 표현 → 응용의 7단계로 나눈 표준 모델입니다.
계층별 장비
물리 계층은 리피터·허브, 데이터 링크 계층은 브리지·스위치, 네트워크 계층은 라우터가 맡습니다.
TCP 와 UDP
TCP 는 연결을 맺고 순서와 도착을 확인하는 믿을 수 있는 전송, UDP 는 연결 없이 빠르게 보내는 전송입니다.
IPv4 와 IPv6
IPv4 주소는 32비트, IPv6 주소는 128비트입니다. IPv4 의 C 클래스 기본 서브넷 마스크는 255.255.255.0 입니다.
정보시스템 구축 관리
개발 방법론과 프로젝트 관리 ★★★★☆
나선형 모형
계획 → 위험 분석 → 개발 → 고객 평가를 여러 번 되풀이하며 위험을 줄여 나가는 개발 모형입니다. 큰 시스템에 알맞습니다.
프로토타입 모형
견본(시제품)을 먼저 만들어 사용자에게 보여 주고 요구사항을 확인하며 개발하는 모형입니다.
COCOMO
프로그램의 예상 크기(라인 수)로 개발 비용을 산정하는 모형입니다. 규모에 따라 조직형, 반분리형, 내장형으로 나눕니다.
CMMI 성숙도
조직의 개발 능력을 초기 → 관리 → 정의 → 정량적 관리 → 최적화의 5단계로 평가합니다.
정보시스템 구축 관리
IT 신기술 ★★★☆☆
클라우드 서비스 3가지
IaaS 는 서버·저장소 같은 기반 시설을, PaaS 는 개발 환경(플랫폼)을, SaaS 는 완성된 소프트웨어를 인터넷으로 빌려 쓰는 서비스입니다.
블록체인
거래 기록을 한곳이 아니라 여러 참여자가 나누어 보관하고 서로 확인해, 기록을 몰래 고치기 어렵게 만든 기술입니다.
RAID
여러 디스크를 묶어 쓰는 방식입니다. RAID 0 은 나눠 저장(스트라이핑), RAID 1 은 똑같이 복사(미러링), RAID 5 는 패리티를 여러 디스크에 나눠 저장합니다.
정보시스템 구축 관리
소프트웨어·시스템 보안 ★★★★★
보안의 3요소
허락된 사람만 보는 기밀성, 허락 없이 바뀌지 않는 무결성, 필요할 때 쓸 수 있는 가용성입니다.
대칭키와 공개키 암호
대칭키 암호는 암호화와 복호화에 같은 키를 쓰고(DES, AES, SEED, ARIA), 공개키 암호는 공개키와 개인키를 따로 씁니다(RSA, ECC).
SQL 삽입과 XSS
SQL 삽입은 입력 칸에 SQL 문을 끼워 넣어 데이터베이스를 조작하는 공격이고, XSS 는 웹 페이지에 악성 스크립트를 심어 방문자에게 실행시키는 공격입니다.
접근 통제 방식
DAC 는 자료의 주인이 권한을 주는 방식, MAC 는 보안 등급에 따라 시스템이 강제하는 방식, RBAC 는 역할에 따라 권한을 주는 방식입니다.