
📘 정보처리기사 필수 용어집
시험 5과목 핵심 용어를 간결하게 정리한 학습 노트
굵은 글씨(bold)는 시험 빈출 키워드 · 코드 서식은 약어·명령어
목차
- 제1과목 : 소프트웨어 설계
- 제2과목 : 소프트웨어 개발
- 제3과목 : 데이터베이스 구축
- 제4과목 : 프로그래밍 언어 활용
- 제5과목 : 정보시스템 구축 관리
제1과목 : 소프트웨어 설계
01 요구사항 확인
소프트웨어 생명 주기 모델
| 모델 | 핵심 특징 |
|---|
| 폭포수 모델 (Waterfall) | 이전 단계로 돌아갈 수 없음. 단계별 철저한 검토 후 진행 |
| 프로토타입 모델 (Prototype) | 견본품(프로토타입)을 먼저 제작해 요구사항 파악 |
| 나선형 모델 (Spiral) | 점진적·반복적 개발. 위험 분석 포함 |
| 애자일 모델 (Agile) | 일정 주기(스프린트)를 반복. 변화에 유연 |
| XP 기법 (eXtreme Programming) | 고객 참여 + 반복 개발. 핵심 가치: 의사소통·단순성·용기·존중·피드백 |
요구사항 개발 프로세스
요구사항 도출 → 요구사항 분석 → 요구사항 명세 → 요구사항 확인
| 단계 | 설명 |
|---|
| 도출 | 사용자와 의견 교환으로 요구사항 수집 (설문·인터뷰·브레인스토밍·유스케이스 등) |
| 분석 | 타당성 조사 및 불명확한 부분 제거. DFD·DD 도구 활용 |
| 명세 | 분석 결과를 모델로 작성·문서화 |
| 확인 | 명세서가 정확·완전하게 작성되었는지 검토 |
구조적 분석 도구
DFD (자료 흐름도) — 자료 흐름과 기능을 도형으로 표현DD (자료 사전) — DFD의 자료를 상세히 기록. “데이터의 데이터” = 메타 데이터HIPO — 입력·처리·출력 과정을 계층 구조로 표현- 가시적 도표 → 전체 흐름 파악
- 총체적 도표 → 입·처·출 전반 정보
- 세부적 도표 → 기능 구성 요소 상세 기술
UML 주요 다이어그램
| 다이어그램 | 용도 |
|---|
| 유스케이스 다이어그램 | 사용자 요구사항 분석, 기능 모델링 |
| 시퀀스 다이어그램 | 시간 흐름에 따른 객체 간 메시지 교환 표현 |
02 화면 설계
UI 설계 도구 비교
| 도구 | 특징 |
|---|
| 와이어프레임 | 초기 레이아웃 틀 설계. 가장 단순 |
| 스토리보드 | 와이어프레임 + 흐름 설명. 디자이너·개발자 최종 지침서 |
| 목업 | 실제 화면과 유사한 정적 모형 |
| 프로토타입 | 인터랙션 적용, 실제처럼 테스트 가능한 동적 모형 |
| 유스케이스 | 사용자 목표 달성을 위한 수행 내용 기술 |
💡 정적 vs 동적: 목업(정적) vs 프로토타입(동적)
소프트웨어 품질 요구사항 (ISO/IEC)
| 항목 | 핵심 한 줄 요약 |
|---|
| 기능성 (Functionality) | 요구 기능을 정확히 제공하는가 |
| 신뢰성 (Reliability) | 오류 없이 일관되게 수행하는가 |
| 사용성 (Usability) | 사용자가 쉽게 이해하고 다시 쓰고 싶은가 |
| 효율성 (Efficiency) | 한정 자원 내에서 얼마나 빠른가 |
| 유지 보수성 (Maintainability) | 변경·확장이 얼마나 용이한가 |
| 이식성 (Portability) | 다른 환경에서도 쉽게 적용되는가 |
프로토타입 종류
- 페이퍼 프로토타입 — 손으로 직접 스케치 (아날로그)
- 디지털 프로토타입 — 파워포인트·아크로뱃 등 소프트웨어 활용
03 애플리케이션 설계
객체지향(OO) 핵심 개념
| 용어 | 한 줄 정의 |
|---|
| 객체 (Object) | 데이터 + 처리 함수를 묶은 소프트웨어 모듈 |
| 클래스 (Class) | 객체를 추상화한 단위 |
| 인스턴스 (Instance) | 클래스로부터 생성된 각각의 객체 |
| 메소드 (Method) | 객체를 사용하는 방법 |
| 메시지 (Message) | 객체 간 상호작용 수단 |
| 속성 (Property) | 클래스 내 객체가 가진 데이터 값 |
객체지향 4대 기법
| 기법 | 설명 |
|---|
| 캡슐화 | 관련 데이터와 함수를 한 묶음으로 처리 |
| 상속성 | 상위 클래스의 속성·메소드를 하위 클래스가 그대로 사용 |
| 다형성 | 같은 메시지에 객체마다 고유하게 응답 (오버로딩·오버라이딩) |
| 추상화 | 포괄적 개념 먼저 설계 후 세분화 |
| 정보 은닉 | 모듈 내부 정보를 외부에서 접근·변경 불가 |
럼바우(Rumbaugh) 객체지향 분석 3단계
- 객체 모델링 — 객체 다이어그램으로 속성·관계 표현 (= 정보 모델링)
- 동적 모델링 — 상태 다이어그램으로 시간에 따른 행위 표현
- 기능 모델링 —
DFD로 프로세스 간 자료 흐름 표현
결합도 (낮을수록 품질 ↑)
자료 결합도 < 스탬프 < 제어 < 외부 < 공유 < 내용 결합도
(약함 ←————————————————→ 강함)
| 유형 | 설명 |
|---|
| 자료 결합도 (Data) | 인터페이스가 자료 요소로만 구성 → 가장 약함(좋음) |
| 공유 결합도 (Common) | 공통 데이터 영역을 여러 모듈이 공유 |
| 내용 결합도 (Content) | 다른 모듈 내부를 직접 참조·수정 → 가장 강함(나쁨) |
응집도 (높을수록 품질 ↑)
기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적
(강함 ←————————————————→ 약함)
| 유형 | 설명 |
|---|
| 기능적 응집도 (Functional) | 모든 기능 요소가 단일 문제와 연관 → 가장 강함(좋음) |
| 절차적 응집도 (Procedural) | 구성 요소들이 순차적으로 기능 수행 |
| 우연적 응집도 (Coincidental) | 서로 무관한 요소로만 구성 → 가장 약함(나쁨) |
04 인터페이스 설계
미들웨어(Middleware) 종류
| 종류 | 설명 |
|---|
DB | 클라이언트 ↔ 원격 데이터베이스 연결 |
RPC | 원격 프로시저를 로컬처럼 호출 |
MOM | 비동기 방식 메시지 기반 통신 |
TP-Monitor | 항공·철도 예약 등 온라인 트랜잭션 처리·감시 |
제2과목 : 소프트웨어 개발
01 자료 구조
선형 자료 구조
| 구조 | 특징 |
|---|
| 배열 (Array) | 연속된 공간, 인덱스로 접근 |
| 스택 (Stack) | 한쪽에서만 삽입·삭제. 후입선출(LIFO) |
| 큐 (Queue) | 한쪽 삽입, 반대쪽 삭제. 선입선출(FIFO) |
| 데크 (Deque) | 양쪽에서 삽입·삭제 모두 가능 |
비선형 자료 구조
- 그래프 — vertex(정점) + edge(간선)으로 구성
- 트리 — 회로 없이 두 노드를 잇는 길이 하나뿐인 그래프
정렬 알고리즘 요약
| 정렬 | 방식 |
|---|
| 삽입 정렬 | 새 데이터를 정렬된 데이터 사이 적절한 위치에 삽입 |
| 선택 정렬 | 가장 작은 값을 찾아 앞과 교환 |
| 버블 정렬 | 인접한 두 값 비교 후 큰 값을 뒤로 이동 |
| 퀵 정렬 | 기준키(pivot) 기준으로 작은 값/큰 값으로 분리 |
| 힙 정렬 | 이진 트리 구조로 정렬 |
| 합병 정렬 | 정렬된 데이터들을 합쳐 하나로 만듦 |
| 셸 정렬 | 삽입 정렬을 부분 파일에 반복 적용 |
| 기수 정렬 | 자릿수별로 반복 정렬 |
02 데이터베이스 기초
| 용어 | 설명 |
|---|
DBMS | 사용자와 DB 사이에서 정보를 생성·관리하는 소프트웨어 |
| 스키마 | DB에 저장되는 데이터 구조와 제약조건 정의 |
| 외부 스키마 | 사용자·응용 프로그래머 관점의 논리적 구조 |
| 개념 스키마 | 객체·구조·제약을 추상적으로 정의 |
| 내부 스키마 | 물리적 저장 장치 관점의 전체 DB 명세 |
03 애플리케이션 테스트 관리
테스트 분류
| 구분 | 설명 |
|---|
| 정적 테스트 | 코드를 실행하지 않고 명세·코드를 검토해 결함 발견 |
| 동적 테스트 | 실제 프로그램을 실행해 오류 탐지 |
| 화이트 박스 테스트 | 내부 소스 코드를 직접 테스트 |
| 블랙 박스 테스트 | 내부를 보지 않고 입·출력값으로 유효성 판단 |
블랙 박스 테스트 기법
- 경계값 분석 — 경계 값과 그 인접 양쪽 값을 이용해 테스트
- 등가 분할 — 입·출력 값을 그룹으로 분류, 그룹 내 값은 동일하게 취급
테스트 레벨
단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
| 레벨 | 설명 |
|---|
| 단위 테스트 | 각 모듈이 명세대로 구현되었는지 확인 |
| 통합 테스트 | 모듈 통합 시 발생하는 오류 탐지 |
| 시스템 테스트 | 전체 시스템 정상 작동 확인 |
| 인수 테스트 | 요구 사항에 맞는지 최종 확인 |
- 하향식 통합: 상위 → 하위 모듈 순으로 통합
- 상향식 통합: 하위 → 상위 모듈 순으로 통합
04 인터페이스 구현 (EAI 구축 유형)
| 유형 | 설명 |
|---|
| Point to Point | 애플리케이션 1:1 연결 (가장 기본) |
| Hub & Spoke | 단일 허브를 통한 중앙 집중형 전송 |
| Message Bus | 애플리케이션 사이에 미들웨어를 두어 처리 |
| Hybrid | Hub & Spoke + Message Bus 혼합 |
ESB (Enterprise Service Bus) — 연계·데이터 변환·웹 서비스 표준 기반 솔루션
제3과목 : 데이터베이스 구축
01 SQL 기초
SQL 언어 분류
| 분류 | 명령어 | 설명 |
|---|
DDL (데이터 정의어) | CREATE ALTER DROP | DB 구성 요소 정의·변경·삭제 |
DML (데이터 조작어) | INSERT UPDATE DELETE SELECT | 데이터 삽입·수정·삭제·조회 |
DCL (데이터 제어어) | GRANT REVOKE COMMIT ROLLBACK | 권한 부여·취소, 트랜잭션 제어 |
💡 COMMIT = 트랜잭션 종료·확정 / ROLLBACK = 변경 취소·되돌리기
02 데이터베이스 설계
설계 단계
요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
관계형 DB 주요 용어
| 용어 | 정의 |
|---|
| 튜플 (Tuple) | 릴레이션의 각 행(Row) |
| 속성 (Attribute) | DB를 구성하는 가장 작은 논리적 단위(열) |
| 도메인 (Domain) | 속성이 취할 수 있는 원자 값들의 집합 |
키(Key) 종류
| 키 | 설명 |
|---|
| 후보키 | 유일성 + 최소성 만족 |
| 기본키 (Primary Key) | 각 튜플을 고유하게 식별하는 속성 (Null·중복 불가) |
| 슈퍼키 | 유일성 만족, 최소성은 불필요 |
| 외래키 (Foreign Key) | 다른 릴레이션의 기본키를 참조하는 속성 |
- 유일성: 하나의 키로 하나의 튜플만 식별
- 최소성: 꼭 필요한 속성으로만 구성
이상(Anomaly) 현상
| 이상 | 설명 |
|---|
| 삽입 이상 | 삽입 시 원치 않는 값이 함께 삽입 |
| 삭제 이상 | 삭제 시 필요한 데이터까지 함께 손실 |
| 갱신 이상 | 일부만 수정해 데이터 불일치 발생 |
- 정규화 — 이상 현상 제거를 위해 데이터를 일정 규칙에 따라 분해
- 반정규화 — 성능 향상을 위해 의도적으로 정규화 원칙을 위배 (통합·중복·분리)
03 트랜잭션 (ACID)
| 속성 | 설명 |
|---|
| 원자성 (Atomicity) | 전부 실행되거나 전혀 실행되지 않아야 함 (All or Nothing) |
| 일관성 (Consistency) | 완료 후에도 DB가 일관된 상태 유지 |
| 독립성 (Isolation) | 다른 트랜잭션의 연산이 끼어들지 못함 |
| 지속성 (Durability) | 완료된 결과는 영구적으로 반영 |
04 분산 데이터베이스 투명성
| 투명성 | 설명 |
|---|
| 위치 투명성 | 데이터의 실제 저장 위치를 몰라도 논리적 이름으로 접근 |
| 중복 투명성 | 중복 데이터가 있어도 하나처럼 사용 |
| 병행 투명성 | 동시 수행 트랜잭션의 결과가 항상 일관성 유지 |
제4과목 : 프로그래밍 언어 활용
01 C언어 핵심
변수(기억 클래스) 종류
| 유형 | 특징 |
|---|
| 자동 변수 | 블록 내에서만 유효, 블록 종료 시 소멸 |
| 정적 변수 | 프로그램 종료까지 기억 공간 유지 |
| 외부 변수 | 다른 파일에서 선언된 변수·함수 참조 |
| 레지스터 변수 | CPU 레지스터에 저장, 처리 속도 향상 |
제어문 요약
| 구문 | 특징 |
|---|
if / 다중 if | 조건에 따라 실행 분기 |
switch | 여러 분기를 간단하게 처리 |
goto | 원하는 문장으로 점프 |
for | 초기값·최종값·증가값으로 정해진 횟수 반복 |
while | 조건이 참인 동안 반복. 처음부터 거짓이면 0회 |
do-while | 조건이 거짓이어도 최소 1회 실행 |
프로그래밍 언어 분류
| 분류 | 대표 언어 |
|---|
| 절차적 | C, ALGOL, COBOL, FORTRAN |
| 객체지향 | JAVA, C++, Smalltalk |
| 스크립트 | JavaScript, Shell Script |
02 운영체제 (OS)
기억장치 관리 전략
| 전략 | 설명 |
|---|
| 반입 전략 | 보조기억장치의 데이터를 언제 주기억장치로 적재할지 결정 |
| 배치 전략 | 새 프로그램을 주기억장치 어디에 배치할지 결정 |
| 교체 전략 | 주기억장치가 꽉 찼을 때 어느 영역을 교체할지 결정 |
가상 기억장치 관련 개념
| 용어 | 설명 |
|---|
| 페이징 | 가상기억장치를 같은 크기 블록으로 분할해 관리 |
| 세그먼테이션 | 프로그램을 다양한 크기의 논리 단위로 분할해 적재 |
| 구역성 (Locality) | 프로세스 실행 중 일부 페이지만 집중 참조하는 성질 |
| 워킹 셋 | 프로세스가 자주 참조하는 페이지들의 집합 |
| 스래싱 | 페이징이 너무 빈번해 시스템이 거의 유효한 작업을 못 하는 상태 |
페이지 교체 알고리즘
| 알고리즘 | 설명 |
|---|
OPT | 앞으로 가장 오래 사용되지 않을 페이지 교체 (최적, 이론적) |
FIFO | 가장 먼저 들어온 페이지를 먼저 교체 |
CPU 스케줄링
| 분류 | 설명 |
|---|
| 비선점 스케줄링 | CPU를 할당받으면 완료까지 빼앗기지 않음 |
| 선점 스케줄링 | 우선순위가 높은 프로세스가 CPU를 빼앗을 수 있음 |
SJF | 실행 시간이 가장 짧은 프로세스 먼저 처리 |
03 네트워크
OSI 7계층
| 계층 | 이름 | 주요 기능 |
|---|
| 7 | 응용 계층 | 사용자 직접 서비스 제공 |
| 6 | 표현 계층 | 인코딩·디코딩, 암호화, 데이터 압축 |
| 5 | 세션 계층 | 논리적 연결 확립·관리 |
| 4 | 전송 계층 | 투명한 데이터 전송, 신뢰성 보장 |
| 3 | 네트워크 계층 | 경로 선택, 흐름·오류 제어 |
| 2 | 데이터 링크 계층 | 오류 검출·수정 |
| 1 | 물리 계층 | 비트 스트림 전송, 전기·기계적 규정 |
💡 암기 팁: “물데네전세표응”
주요 네트워크 장비
| 장비 | 기능 |
|---|
| 허브 (Hub) | 유선으로 여러 컴퓨터를 연결하는 단순 장비 |
| 브리지 (Bridge) | 두 LAN을 서로 연결 |
| 라우터 (Router) | LAN↔LAN 또는 LAN↔WAN 연결, 최적 경로 결정 |
| 게이트웨이 (Gateway) | 서로 다른 네트워크 프로토콜 간 변환·연결 |
IPv6
- IPv4 이후의 차세대 IP 주소 체계
- 16비트 × 8부분 = 총 128비트
- 주소 유형: 유니캐스트(1:1) · 멀티캐스트(1:다) · 애니캐스트(가장 가까운 노드로)
제5과목 : 정보시스템 구축 관리
01 소프트웨어 개발 방법론
비용 산정 기법
| 기법 | 설명 |
|---|
| 하향식 | 전문가 경험·회의 기반 (전문가 감정, 델파이 기법) |
| 상향식 | 세부 작업 단위별로 산정 후 합산 (LOC, Effort Per Task) |
| 수학적 | 경험적 공식 사용 (COCOMO, Putnam) |
COCOMO — 추정 LOC + 경험 상수로 개발 노력·기간 계산LOC — 비관치·낙관치·기대치로 예측치 산출
프로젝트 일정 관리
| 기법 | 특징 |
|---|
CPM (임계 경로법) | 시간 + 비용 모두 고려. 임계 경로 도출 |
PERT | 시간만 고려. 작업 간 상호관계 네트워크로 표현 |
02 IT 신기술 용어
| 용어 | 설명 |
|---|
IoT (사물인터넷) | 사물에 센서 부착, 실시간으로 인터넷 데이터 교환 |
M2M | 사물 간 센싱·제어·정보교환 기술 |
| 클라우드 컴퓨팅 | 인터넷 서버를 통해 IT 서비스를 한 번에 이용 |
| 빅데이터 | 방대한 규모, 짧은 생성 주기의 대규모 데이터 |
| 하둡 (Hadoop) | 대용량 데이터 분산 처리 공개 소스 프레임워크 |
| 딥러닝 | 많은 데이터를 분류·학습해 관계를 파악하는 AI 기술 |
| 블록체인 | 분산형 데이터 저장으로 위·변조 방지 기술 |
| 디지털 트윈 | 현실 사물을 가상세계에 구현해 모의시험 |
RAID | 소용량 디스크 여러 대를 배열로 묶어 대용량·가용성 확보 |
OLAP | 대용량 데이터를 다양한 관점에서 분석하는 BI 기술 |
| 데이터 마이닝 | 대량 데이터에서 유용한 상관관계를 발견해 의사결정 지원 |
03 시스템 보안
주요 해킹 공격 유형
| 공격 | 설명 |
|---|
DoS (서비스 거부) | 대량 접속 신호로 서버 마비 |
DDoS (분산 서비스 거부) | 다수의 좀비 PC로 DoS 공격 |
| 스머핑 (Smurfing) | 초당 엄청난 접속 신호를 집중 전송해 서버 마비 |
| 키 로거 공격 | 키보드 입력을 탐지해 ID·패스워드 탈취 |
| 백 도어 | 몰래 설치된 비인가 접근 통신 연결 기능 |
| 랜섬웨어 | 중요 파일 접근 차단 후 금품 요구 악성 프로그램 |
| 트로이 목마 | 정상 프로그램으로 위장한 자료 삭제·정보 탈취 악성 코드 |
보안 솔루션
| 솔루션 | 설명 |
|---|
| 방화벽 (Firewall) | 외부에서 내부 네트워크로의 불법 접근 차단 |
VPN | 인터넷망을 전용선처럼 암호화해 사용 |
NAC | 보안 정책에 부합하는 단말기에만 네트워크 접근 허용 |
📝 학습 팁
- 결합도는 낮을수록 좋고, 응집도는 높을수록 좋다
- 트랜잭션 특성 ACID 는 반드시 암기
- OSI 7계층 순서와 각 계층의 역할 구분 필수
- SQL DDL·DML·DCL 명령어 분류 자주 출제