본문으로 바로 가기

프로그래밍기능사 개념 정리

AI 작성 · 검수 완료

AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.

객관식 4지 택일형 60문항(60분) · 4과목 60문항 · 60분

합격 기준: 평균 60점 이상

출처: 한국산업인력공단 · 2026년 기준

프로그래밍기능사 5문제 풀기 →

요약 노트

1과목 · 프로그래밍 언어15문항

1-1. 프로그래밍 기초

★★★★☆ 30% (추정)

개요

이 단원은 어느 프로그래밍 언어를 쓰든 공통으로 알아야 하는 바탕을 다룹니다. 값을 담는 자료형, 값을 계산하는 연산자, 실행 순서를 바꾸는 제어문, 그리고 자료를 모아 두는 기본 자료구조가 차례로 나옵니다. 코드 읽기 문제를 풀기 위한 준비 단계라고 생각하면 됩니다.

연산자에서는 나눗셈을 특히 조심해야 합니다. C 와 자바에서는 정수끼리 / 로 나누면 소수점 아래를 버린 몫만 남고(파이썬은 / 가 소수까지, // 가 몫만 구합니다), 나머지 연산자(%)는 나누고 남은 값을 돌려줍니다. 비교 연산자는 참과 거짓을 돌려주고, 논리 연산자 AND 는 둘 다 참일 때만, OR 는 하나라도 참이면 참이 됩니다. 연산자마다 계산 순서(우선순위)가 정해져 있어서, 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산됩니다.

제어문은 조건에 따라 길을 나누는 if 문과, 같은 일을 되풀이하는 for·while 같은 반복문으로 나뉩니다. break 는 반복을 그 자리에서 끝내고, continue 는 이번 차례만 건너뛰고 다음 반복으로 넘어갑니다. 자료구조에서는 스택과 큐를 먼저 익혀 두세요. 스택은 나중에 넣은 것이 먼저 나오고, 큐는 먼저 넣은 것이 먼저 나옵니다.

핵심 정리

정수 나눗셈과 나머지
— C·자바에서 정수끼리 나누면 소수점 아래를 버린 몫만 남습니다. 나머지 연산자(%)는 나누고 남은 값을 돌려줍니다. 예를 들어 C·자바에서 7 / 2 는 3, 7 % 2 는 1 입니다(파이썬은 7 // 2 가 3).
논리 연산자
— AND 는 양쪽이 모두 참일 때만 참이고, OR 는 한쪽이라도 참이면 참입니다. NOT 은 참과 거짓을 뒤집습니다.
break 와 continue
— break 는 반복문을 그 자리에서 완전히 빠져나옵니다. continue 는 이번 차례의 남은 부분만 건너뛰고 다음 반복을 계속합니다.
스택
— 한쪽 끝으로만 넣고 꺼내는 자료구조입니다. 나중에 넣은 것이 먼저 나옵니다(LIFO). 넣는 것을 push, 꺼내는 것을 pop 이라고 합니다.
큐
— 한쪽 끝으로 넣고 반대쪽 끝으로 꺼내는 자료구조입니다. 먼저 넣은 것이 먼저 나옵니다(FIFO).

★ 시험 포인트

  • 정수 나눗셈의 몫과 % 나머지를 함께 구하는 문제를 대비하세요.
  • 스택에 push·pop 을 여러 번 한 뒤 남은 값이나 꺼낸 순서를 묻습니다.
  • break 와 continue 를 바꿔 놓은 선지를 조심하세요.
  • 곱셈·나눗셈이 덧셈·뺄셈보다 먼저 계산된다는 우선순위를 확인합니다.
외우는 요령·비교표·대표 문제 보기 →

1-2. C·자바 코드 읽기

★★★★★ 40% (추정)

개요

이 단원은 C 언어와 자바로 쓴 짧은 코드를 읽고 실행 결과를 맞히는 연습을 합니다. 시험에서는 코드 전체를 이해하기보다, 변수 값이 한 줄씩 어떻게 바뀌는지 정확히 따라가는 힘을 봅니다. 그래서 종이에 변수 이름을 적고 값을 표로 적어 가며 푸는 습관이 가장 중요합니다.

C 언어의 배열은 첨자가 0부터 시작하므로, 크기가 5인 배열의 마지막 칸은 4번입니다. 증감 연산자는 위치에 따라 결과가 달라집니다. ++a 는 먼저 1을 더한 뒤 값을 쓰고, a++ 는 지금 값을 먼저 쓴 뒤 1을 더합니다. C 의 printf 에서 %d 는 정수, %c 는 문자 한 개, %s 는 문자열을 출력합니다.

자바는 객체지향 언어라서 클래스와 객체가 기본입니다. 클래스는 설계도이고, new 로 만든 실제 물건이 객체입니다. 부모 클래스의 메서드를 자식 클래스가 이름과 매개변수를 똑같이 해서 다시 정의하는 것을 오버라이딩, 한 클래스 안에서 이름은 같고 매개변수가 다른 메서드를 여럿 두는 것을 오버로딩이라고 합니다. 두 용어를 바꿔 놓은 선지에 속지 않도록 구분해 두세요.

핵심 정리

배열 첨자
— C 와 자바의 배열은 첫 칸의 번호가 0 입니다. 크기가 n 인 배열의 마지막 칸 번호는 n-1 입니다.
전위·후위 증감 연산자
— ++a(전위)는 먼저 1을 더한 뒤 그 값을 씁니다. a++(후위)는 지금 값을 먼저 쓰고 나서 1을 더합니다.
printf 서식 지정자
— C 의 printf 에서 %d 는 10진 정수, %c 는 문자 한 개, %s 는 문자열, %f 는 실수를 출력합니다.
클래스와 객체
— 클래스는 속성과 기능을 정해 둔 설계도이고, 객체는 그 설계도로 new 를 써서 실제로 만든 것입니다.
오버로딩과 오버라이딩
— 오버로딩은 한 클래스 안에 이름은 같고 매개변수가 다른 메서드를 여럿 두는 것입니다. 오버라이딩은 상속받은 부모의 메서드를 자식이 같은 모양으로 다시 정의하는 것입니다.

★ 시험 포인트

  • 반복문 안에서 합계나 배열 값이 바뀌는 과정을 따라가 최종 출력값을 묻습니다.
  • a++ 와 ++a 가 섞인 식의 결과를 묻는 문제를 대비하세요.
  • 배열 첨자가 0부터 시작한다는 점을 놓쳐 한 칸씩 밀려 계산하는 실수를 조심하세요.
  • 오버로딩과 오버라이딩의 정의를 바꿔 놓은 선지가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

1-3. 파이썬

★★★★★ 30% (추정)

개요

이 단원은 파이썬의 기본 문법을 다룹니다. 여러 값을 담는 리스트·튜플·딕셔너리, 원하는 부분만 잘라 내는 슬라이싱, 그리고 반복문과 함수가 중심입니다. 파이썬은 중괄호 대신 들여쓰기로 코드 묶음을 나타낸다는 점이 다른 언어와 가장 크게 다릅니다.

리스트는 대괄호로 만들고 나중에 값을 고칠 수 있습니다. 튜플은 소괄호로 만들고 한 번 만들면 고칠 수 없습니다. 딕셔너리는 중괄호 안에 '키: 값' 짝을 넣어 만들고, 키로 값을 찾습니다. 슬라이싱 a[시작:끝] 은 시작 위치부터 끝 바로 앞까지를 잘라 오며, 번호는 0부터 셉니다. 음수 번호 -1 은 맨 뒤 값을 뜻합니다.

range(시작, 끝) 은 시작부터 끝 바로 앞까지의 정수를 만들기 때문에 range(1, 5) 는 1, 2, 3, 4 입니다. 숫자를 하나만 쓰면 0부터 시작합니다. 함수는 def 로 만들고 return 으로 결과를 돌려줍니다. 나눗셈에서 / 는 소수점까지 계산하고, // 는 몫만, % 는 나머지만 구한다는 점도 알아 두세요.

핵심 정리

리스트와 튜플
— 리스트는 [ ] 로 만들고 값을 바꾸거나 더할 수 있습니다. 튜플은 ( ) 로 만들고 한 번 만들면 값을 바꿀 수 없습니다.
딕셔너리
— { } 안에 '키: 값' 짝을 넣어 만드는 자료형입니다. 번호가 아니라 키로 값을 찾습니다. 같은 키를 두 번 넣으면 나중 값이 남습니다.
슬라이싱
— a[시작:끝] 은 시작 번호부터 끝 번호 바로 앞까지를 잘라 옵니다. 번호는 0부터 세고, -1 은 맨 마지막 값입니다. a[::-1] 은 순서를 뒤집습니다.
range 함수
— range(시작, 끝, 간격) 은 시작부터 끝 바로 앞까지 정수를 만듭니다. range(5) 는 0, 1, 2, 3, 4 이고, range(1, 10, 3) 은 1, 4, 7 입니다.
/ 와 // 와 %
— / 는 소수점까지 계산한 나눗셈, // 는 몫만 구하는 나눗셈, % 는 나머지입니다. 7 / 2 는 3.5, 7 // 2 는 3, 7 % 2 는 1 입니다.

★ 시험 포인트

  • 슬라이싱 결과를 묻는 문제를 대비하세요. 끝 번호는 포함되지 않습니다.
  • range 로 반복한 합계나 출력 횟수를 묻습니다.
  • 값을 고칠 수 없는 자료형(튜플)을 고르는 문제가 나옵니다.
  • / 와 // 의 결과 차이를 묻는 선지를 조심하세요.
외우는 요령·비교표·대표 문제 보기 →

2과목 · 응용SW기초기술15문항

2-1. 운영체제

★★★★★ 45% (추정)

개요

이 단원은 컴퓨터의 자원을 관리하는 운영체제를 다룹니다. 운영체제가 하는 일, 실행 중인 프로그램인 프로세스와 그 순서를 정하는 스케줄링, 교착상태, 기억장치 관리, 그리고 리눅스와 윈도의 기본 명령이 차례로 나옵니다.

프로세스는 실행 중인 프로그램을 말하며 준비, 실행, 대기 같은 상태를 오갑니다. 스케줄링 가운데 FCFS 는 먼저 온 작업부터, SJF 는 실행 시간이 짧은 작업부터, 라운드 로빈은 정해진 시간씩 돌아가며 처리합니다. 여러 프로세스가 서로 상대가 가진 자원을 기다리며 멈춰 버리는 것을 교착상태라고 하며, 상호 배제·점유와 대기·비선점·환형 대기 네 조건이 모두 갖춰질 때 생깁니다.

기억장치가 모자랄 때는 쓰지 않는 페이지를 내보내야 합니다. FIFO 는 가장 먼저 들어온 페이지를, LRU 는 가장 오랫동안 쓰지 않은 페이지를, LFU 는 사용 횟수가 가장 적은 페이지를 내보냅니다. 리눅스 명령에서는 ls(목록 보기), cd(폴더 이동), chmod(권한 바꾸기), rm(파일 지우기)을 알아 두세요.

핵심 정리

운영체제
— 사용자와 컴퓨터 하드웨어 사이에서 CPU, 기억장치, 입출력 장치 같은 자원을 관리하는 기본 소프트웨어입니다. 윈도, 리눅스, 유닉스, macOS 등이 있습니다.
CPU 스케줄링
— 여러 프로세스 가운데 누구에게 CPU 를 줄지 정하는 방법입니다. FCFS 는 먼저 온 순서, SJF 는 짧은 작업 먼저, 라운드 로빈은 정해진 시간만큼씩 돌아가며 처리합니다.
교착상태
— 둘 이상의 프로세스가 서로 상대가 가진 자원을 기다리며 아무도 진행하지 못하는 상태입니다. 상호 배제, 점유와 대기, 비선점, 환형 대기 네 조건이 모두 있어야 생깁니다.
페이지 교체 기법
— 기억장치가 꽉 찼을 때 내보낼 페이지를 고르는 방법입니다. FIFO 는 가장 먼저 들어온 것, LRU 는 가장 오래 쓰지 않은 것, LFU 는 가장 적게 쓴 것을 내보냅니다.
리눅스 기본 명령
— ls 는 파일 목록 보기, cd 는 폴더 이동, pwd 는 현재 위치 보기, chmod 는 권한 바꾸기, rm 은 파일 지우기, cp 는 복사, mv 는 이동이나 이름 바꾸기입니다.

★ 시험 포인트

  • 교착상태의 네 가지 조건이 아닌 것을 고르는 문제를 대비하세요.
  • 페이지 교체 순서를 따라가며 페이지 부재 횟수를 세는 문제가 나옵니다.
  • FIFO·LRU·LFU 의 뜻을 바꿔 놓은 선지를 조심하세요.
  • 리눅스 명령과 하는 일을 짝짓는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

2-2. 네트워크

★★★★★ 40% (추정)

개요

이 단원은 컴퓨터끼리 자료를 주고받는 네트워크의 기본을 다룹니다. 통신 과정을 일곱 층으로 나눈 OSI 7계층, 인터넷의 바탕인 TCP/IP, 컴퓨터의 주소인 IP 주소, 그리고 자주 쓰는 프로토콜과 네트워크 장비가 중심입니다.

OSI 7계층은 아래에서부터 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층입니다. 전송 계층의 대표인 TCP 는 연결을 맺은 뒤 빠짐없이 순서대로 전달하는 믿을 만한 방식이고, UDP 는 연결 없이 빠르게 보내는 대신 도착을 보장하지 않습니다. 그래서 파일 전송에는 TCP, 실시간 방송이나 음성 통화에는 UDP 가 잘 맞습니다.

IPv4 주소는 32비트로 점으로 나눈 네 개의 숫자로 적고, IPv6 주소는 128비트로 훨씬 많은 주소를 만들 수 있습니다. 주요 프로토콜로는 웹을 위한 HTTP, 파일 전송을 위한 FTP, 메일을 보내는 SMTP, 도메인 이름을 IP 주소로 바꿔 주는 DNS 가 있습니다. 장비 가운데 라우터는 네트워크와 네트워크를 이어 길을 찾아 주고, 스위치는 같은 네트워크 안의 컴퓨터를 이어 줍니다.

핵심 정리

OSI 7계층
— 통신 과정을 일곱 단계로 나눈 표준 모델입니다. 아래부터 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층입니다.
TCP 와 UDP
— 둘 다 전송 계층 프로토콜입니다. TCP 는 연결을 맺고 순서와 도착을 확인하는 신뢰성 있는 방식, UDP 는 연결 없이 빠르게 보내는 방식입니다.
IPv4 와 IPv6
— IPv4 는 32비트 주소로 192.168.0.1 처럼 점으로 나눈 숫자 네 개로 적습니다. IPv6 는 128비트 주소로 콜론(:)으로 나눈 16진수로 적습니다.
주요 프로토콜
— HTTP 는 웹 페이지 전송, FTP 는 파일 전송, SMTP 는 메일 보내기, DNS 는 도메인 이름을 IP 주소로 바꾸는 일을 합니다.
라우터와 스위치
— 라우터는 서로 다른 네트워크를 이어 자료가 갈 길을 정해 줍니다(네트워크 계층). 스위치는 같은 네트워크 안의 장치들을 이어 줍니다(데이터 링크 계층).

★ 시험 포인트

  • OSI 7계층의 순서와 계층별 하는 일을 묻는 문제를 대비하세요.
  • TCP 와 UDP 의 특징을 바꿔 놓은 선지를 조심하세요.
  • IPv4 와 IPv6 의 비트 수를 묻습니다.
  • 프로토콜 이름과 하는 일을 짝짓는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

2-3. 개발 환경

★★☆☆☆ 15% (추정)

개요

이 단원은 프로그램을 만들고 실행하는 데 필요한 도구와 환경을 다룹니다. 코드를 기계어로 바꾸는 번역 방식, 코드 변경 내역을 관리하는 버전 관리 도구, 그리고 웹 서버와 미들웨어가 중심입니다.

사람이 쓴 코드는 컴퓨터가 바로 알아듣지 못하므로 번역이 필요합니다. 컴파일러는 프로그램 전체를 한 번에 번역해 실행 파일을 만들고, 인터프리터는 한 줄씩 번역하면서 바로 실행합니다. C 는 대표적인 컴파일 언어이고, 파이썬은 대표적인 인터프리터 언어입니다.

버전 관리 도구는 누가 언제 무엇을 바꿨는지 기록해 두고 필요하면 예전 상태로 되돌릴 수 있게 해 줍니다. Git 은 각자의 컴퓨터에 전체 기록을 가지는 분산형 도구입니다. 웹 서버는 사용자에게 웹 페이지 같은 정적인 내용을 보내 주고, WAS(웹 애플리케이션 서버)는 프로그램을 실행해 그때그때 다른 결과를 만들어 줍니다. 미들웨어는 서로 다른 프로그램이나 시스템 사이를 이어 주는 소프트웨어입니다.

핵심 정리

컴파일러와 인터프리터
— 컴파일러는 프로그램 전체를 한 번에 번역해 실행 파일을 만듭니다. 인터프리터는 한 줄씩 번역하면서 곧바로 실행합니다.
버전 관리
— 코드가 바뀐 내역을 기록해 두고, 여러 사람이 함께 작업하거나 예전 상태로 되돌릴 수 있게 하는 일입니다.
Git
— 각 개발자의 컴퓨터에 저장소 전체 기록을 두는 분산형 버전 관리 도구입니다. 커밋으로 변경을 기록하고, 푸시로 원격 저장소에 올립니다.
웹 서버와 WAS
— 웹 서버는 HTML·그림처럼 이미 만들어진 정적인 내용을 보내 줍니다. WAS 는 프로그램을 실행해 요청마다 달라지는 동적인 내용을 만들어 줍니다.
미들웨어
— 운영체제와 응용 프로그램 사이, 또는 서로 다른 시스템 사이에서 통신과 자료 교환을 도와 주는 소프트웨어입니다.

★ 시험 포인트

  • 컴파일러와 인터프리터의 차이를 묻는 문제를 대비하세요.
  • Git 이 분산형 버전 관리 도구라는 점을 묻습니다.
  • 웹 서버와 WAS 가 하는 일을 바꿔 놓은 선지를 조심하세요.
외우는 요령·비교표·대표 문제 보기 →

3과목 · SQL 활용15문항

3-1. 데이터베이스 기초

★★★★☆ 35% (추정)

개요

이 단원은 데이터베이스가 무엇이고 왜 쓰는지에서 시작해, 관계형 데이터베이스의 용어, 키, 정규화, 트랜잭션까지 다룹니다. SQL 을 배우기 전에 꼭 알아야 하는 바탕 개념입니다.

관계형 데이터베이스는 자료를 표(릴레이션)로 저장합니다. 표의 가로 한 줄을 튜플(행), 세로 한 칸을 속성(열)이라고 하고, 한 속성이 가질 수 있는 값의 범위를 도메인이라고 합니다. 튜플의 수를 카디널리티, 속성의 수를 차수라고 합니다. 기본키는 각 행을 하나로 구별하는 값으로 비어 있거나 겹칠 수 없고, 외래키는 다른 표의 기본키를 가리켜 두 표를 이어 줍니다.

정규화는 같은 자료가 여러 곳에 겹쳐 저장되어 생기는 문제(이상 현상)를 줄이려고 표를 알맞게 나누는 과정입니다. 트랜잭션은 한꺼번에 처리되어야 하는 작업의 묶음이며, 원자성·일관성·고립성·지속성이라는 네 가지 성질(ACID)을 지켜야 합니다. 작업을 확정할 때는 COMMIT, 취소하고 되돌릴 때는 ROLLBACK 을 씁니다.

핵심 정리

튜플·속성·도메인
— 튜플은 표의 가로 한 줄(행), 속성은 세로 한 칸(열), 도메인은 한 속성에 들어갈 수 있는 값의 범위입니다.
카디널리티와 차수
— 카디널리티는 표에 있는 튜플(행)의 수이고, 차수는 속성(열)의 수입니다.
기본키와 외래키
— 기본키는 각 행을 하나로 구별하는 키로 NULL 이나 중복 값을 가질 수 없습니다. 외래키는 다른 표의 기본키를 가리켜 두 표의 관계를 나타냅니다.
정규화
— 자료가 겹쳐 저장되어 넣기·고치기·지우기 때 생기는 이상 현상을 줄이려고 표를 알맞게 나누는 과정입니다.
트랜잭션과 ACID
— 트랜잭션은 한꺼번에 처리되어야 하는 작업 묶음입니다. 원자성(모두 되거나 모두 안 됨), 일관성, 고립성(서로 간섭 없음), 지속성(완료된 결과는 남음)을 지켜야 합니다.

★ 시험 포인트

  • 튜플·속성·도메인, 카디널리티·차수의 뜻을 묻는 문제를 대비하세요.
  • 트랜잭션의 네 가지 성질(ACID)에 해당하지 않는 것을 고르는 문제가 나옵니다.
  • 기본키는 NULL 과 중복을 가질 수 없다는 점을 묻습니다.
  • 카디널리티와 차수를 바꿔 놓은 선지를 조심하세요.
외우는 요령·비교표·대표 문제 보기 →

3-2. SQL 기본

★★★★★ 40% (추정)

개요

이 단원은 데이터베이스에 명령을 내리는 언어인 SQL 의 기본 문장을 다룹니다. SQL 명령은 하는 일에 따라 정의어(DDL), 조작어(DML), 제어어(DCL)로 나뉘며, 어느 명령이 어디에 속하는지 구분하는 것이 이 단원의 기본입니다.

DDL 은 표 같은 구조를 만들고 바꾸고 없애는 명령으로 CREATE, ALTER, DROP 이 있습니다. DML 은 표 안의 자료를 다루는 명령으로 조회하는 SELECT, 넣는 INSERT, 고치는 UPDATE, 지우는 DELETE 가 있습니다. DCL 은 권한을 다루는 명령으로 권한을 주는 GRANT 와 빼앗는 REVOKE 가 있습니다.

SELECT 문은 'SELECT 열 FROM 표 WHERE 조건 ORDER BY 열' 순서로 씁니다. WHERE 는 조건에 맞는 행만 고르고, ORDER BY 는 결과를 정렬하는데 ASC 는 오름차순(기본값), DESC 는 내림차순입니다. DROP 은 표 자체를 없애고, DELETE 는 표는 남긴 채 안의 행만 지운다는 차이도 꼭 기억해야 합니다.

핵심 정리

DDL (데이터 정의어)
— 표·뷰·인덱스 같은 데이터베이스 구조를 만들고 바꾸고 없애는 명령입니다. CREATE(만들기), ALTER(바꾸기), DROP(없애기)이 있습니다.
DML (데이터 조작어)
— 표 안의 자료를 다루는 명령입니다. SELECT(조회), INSERT(넣기), UPDATE(고치기), DELETE(지우기)가 있습니다.
DCL (데이터 제어어)
— 사용자 권한을 다루는 명령입니다. GRANT 는 권한을 주고, REVOKE 는 준 권한을 빼앗습니다. COMMIT·ROLLBACK 도 DCL 로 분류하기도 합니다.
SELECT 문의 기본 모양
— SELECT 가져올 열 FROM 표 WHERE 조건 ORDER BY 정렬할 열 순서로 씁니다. 모든 열을 가져올 때는 * 를 씁니다.
DROP 과 DELETE
— DROP 은 표 자체를 데이터베이스에서 없애는 DDL 명령입니다. DELETE 는 표는 남겨 두고 조건에 맞는 행만 지우는 DML 명령입니다.

★ 시험 포인트

  • 명령어가 DDL·DML·DCL 가운데 어디에 속하는지 구분하는 문제를 대비하세요.
  • ORDER BY 의 기본 정렬은 오름차순(ASC)이고, 내림차순은 DESC 입니다.
  • DROP 과 DELETE 의 차이를 묻는 선지를 조심하세요.
  • INSERT INTO … VALUES, UPDATE … SET, DELETE FROM 의 문장 모양을 묻습니다.
외우는 요령·비교표·대표 문제 보기 →

3-3. SQL 응용

★★★★☆ 25% (추정)

개요

이 단원은 기본 SELECT 문에 기능을 더해 자료를 묶고, 합치고, 다시 고르는 방법을 다룹니다. 집계 함수와 GROUP BY·HAVING, 여러 표를 잇는 조인, 질의 안의 질의인 하위 질의, 그리고 뷰와 인덱스가 중심입니다.

집계 함수는 여러 행을 하나의 값으로 모읍니다. COUNT 는 개수, SUM 은 합계, AVG 는 평균, MAX 와 MIN 은 가장 큰 값과 가장 작은 값을 구합니다. COUNT(*) 는 NULL 이 있는 행까지 모두 세지만, COUNT(열 이름) 은 그 열이 NULL 인 행을 빼고 셉니다. GROUP BY 는 같은 값끼리 묶고, HAVING 은 묶인 그룹에 조건을 겁니다. WHERE 는 묶기 전의 행에 조건을 건다는 점이 다릅니다.

조인은 공통된 열을 기준으로 두 표를 이어 하나의 결과로 만드는 것입니다. 하위 질의는 괄호 안에 넣은 SELECT 문으로, 그 결과를 바깥 질의의 조건으로 씁니다. 뷰는 실제 자료를 따로 저장하지 않고 SELECT 문을 이름 붙여 둔 가상의 표이고, 인덱스는 책의 찾아보기처럼 검색을 빠르게 해 주는 장치입니다.

핵심 정리

집계 함수
— 여러 행을 모아 값 하나를 구하는 함수입니다. COUNT(개수), SUM(합계), AVG(평균), MAX(최댓값), MIN(최솟값)이 있습니다.
GROUP BY 와 HAVING
— GROUP BY 는 지정한 열의 값이 같은 행끼리 묶습니다. HAVING 은 묶인 그룹에 조건을 걸어 원하는 그룹만 남깁니다.
조인
— 두 표에 공통으로 있는 열을 기준으로 행을 이어 붙여 하나의 결과를 만드는 것입니다. 양쪽에 모두 맞는 행만 남기는 것을 내부 조인이라고 합니다.
하위 질의
— 다른 SQL 문 안에 괄호로 넣은 SELECT 문입니다. 안쪽 질의 결과를 바깥쪽 질의의 조건 등에 씁니다.
뷰와 인덱스
— 뷰는 SELECT 문에 이름을 붙여 둔 가상의 표로, 자료를 따로 저장하지 않습니다. 인덱스는 검색 속도를 높이려고 만드는 찾아보기입니다.

★ 시험 포인트

  • WHERE 와 HAVING 의 차이를 묻는 문제를 대비하세요.
  • COUNT(*) 와 COUNT(열 이름) 의 결과 차이를 묻습니다.
  • 뷰는 실제 자료를 저장하지 않는 가상의 표라는 점을 확인합니다.
  • GROUP BY 가 들어간 SELECT 문의 결과 행 수를 묻는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

4과목 · 정보시스템 기초기술15문항

4-1. 컴퓨터 구조와 자료 표현

★★★★☆ 40% (추정)

개요

이 단원은 컴퓨터가 어떻게 생겼고 자료를 어떻게 나타내는지 다룹니다. 중앙처리장치와 기억장치의 구조, 2진수·8진수·16진수 사이의 변환, 자료의 단위, 그리고 AND·OR 같은 논리 연산이 차례로 나옵니다.

중앙처리장치(CPU)는 명령을 해석하고 순서를 지시하는 제어장치, 실제 계산을 하는 연산장치, 값을 잠깐 담아 두는 레지스터로 이루어집니다. 기억장치는 빠른 순서로 레지스터, 캐시, 주기억장치, 보조기억장치입니다. 빠를수록 값이 비싸고 용량이 작습니다. 주기억장치 가운데 RAM 은 전원이 꺼지면 내용이 사라지고, ROM 은 전원이 꺼져도 내용이 남습니다.

컴퓨터는 모든 자료를 0과 1, 곧 2진수로 나타냅니다. 2진수를 10진수로 바꿀 때는 오른쪽부터 1, 2, 4, 8 처럼 두 배씩 커지는 자리값을 곱해 더합니다. 자료의 단위는 비트가 가장 작고, 8비트가 모여 1바이트가 됩니다. 논리 연산에서 AND 는 둘 다 1일 때만 1, OR 는 하나라도 1이면 1, XOR 는 두 값이 다를 때만 1 입니다.

핵심 정리

중앙처리장치(CPU)
— 명령을 해석하고 지시하는 제어장치, 산술·논리 계산을 하는 연산장치, 값을 잠깐 담는 레지스터로 이루어진 컴퓨터의 두뇌입니다.
기억장치 계층
— 빠른 순서로 레지스터, 캐시, 주기억장치, 보조기억장치입니다. 빠를수록 비싸고 용량이 작습니다.
RAM 과 ROM
— RAM 은 읽고 쓸 수 있지만 전원이 꺼지면 내용이 사라집니다. ROM 은 주로 읽기만 하며 전원이 꺼져도 내용이 남습니다.
진법 변환
— 2진수를 10진수로 바꿀 때는 오른쪽부터 1, 2, 4, 8, 16 자리값을 곱해 더합니다. 1010 은 8 + 2 = 10 입니다. 2진수 네 자리는 16진수 한 자리, 세 자리는 8진수 한 자리가 됩니다.
논리 연산
— AND 는 두 값이 모두 1일 때만 1, OR 는 하나라도 1이면 1, NOT 은 0과 1을 뒤집고, XOR 는 두 값이 서로 다를 때만 1 입니다.
자료의 단위
— 비트는 0 또는 1 하나를 담는 가장 작은 단위입니다. 8비트가 모여 1바이트, 4비트는 니블이라고 합니다.

★ 시험 포인트

  • 2진수·10진수·16진수 사이의 변환 문제를 대비하세요.
  • 기억장치를 속도 순서로 바르게 나열한 것을 고르는 문제가 나옵니다.
  • 전원이 꺼지면 내용이 사라지는 기억장치(RAM)를 묻습니다.
  • AND·OR·XOR 의 결과를 구하는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

4-2. 정보 보안

★★★★☆ 30% (추정)

개요

이 단원은 정보를 안전하게 지키는 방법과, 정보를 노리는 공격을 다룹니다. 보안의 세 가지 요소, 암호화 방식, 그리고 악성 코드와 대표적인 공격 유형이 중심입니다.

보안의 3요소는 기밀성, 무결성, 가용성입니다. 기밀성은 허락된 사람만 볼 수 있게 하는 것, 무결성은 허락 없이 내용이 바뀌지 않게 하는 것, 가용성은 필요할 때 언제든 쓸 수 있게 하는 것입니다. 암호화 방식 가운데 대칭키 방식은 잠글 때와 열 때 같은 키를 쓰며 빠르고, 대표로 AES 가 있습니다. 공개키 방식은 공개키와 개인키라는 서로 다른 두 키를 쓰며, 대표로 RSA 가 있습니다.

악성 코드에는 스스로 복제해 퍼지는 웜, 다른 파일에 붙어 퍼지는 바이러스, 쓸모 있는 프로그램인 척 숨어 들어오는 트로이 목마, 파일을 잠그고 돈을 요구하는 랜섬웨어가 있습니다. 공격 유형으로는 많은 요청을 한꺼번에 보내 서비스를 멈추게 하는 DoS·DDoS 공격, 가짜 사이트나 메일로 개인정보를 빼내는 피싱, 입력 칸에 SQL 문을 넣어 데이터베이스를 공격하는 SQL 삽입 공격을 알아 두세요.

핵심 정리

보안의 3요소
— 기밀성은 허락된 사람만 보게 하는 것, 무결성은 허락 없이 내용이 바뀌지 않게 하는 것, 가용성은 필요할 때 쓸 수 있게 하는 것입니다.
대칭키 암호
— 암호화와 복호화에 같은 키를 쓰는 방식입니다. 속도가 빠르지만 상대에게 키를 안전하게 전해야 하는 어려움이 있습니다. AES, DES 가 대표적입니다.
공개키 암호
— 누구나 아는 공개키로 잠그고, 본인만 가진 개인키로 여는 방식입니다. 두 키가 서로 다르며 RSA 가 대표적입니다.
악성 코드
— 웜은 스스로 복제해 퍼지고, 바이러스는 다른 파일에 붙어 퍼집니다. 트로이 목마는 정상 프로그램으로 위장하고, 랜섬웨어는 파일을 잠근 뒤 돈을 요구합니다.
주요 공격 유형
— DoS·DDoS 는 많은 요청으로 서비스를 멈추게 하고, 피싱은 가짜 사이트·메일로 개인정보를 빼내며, SQL 삽입은 입력 칸에 SQL 문을 넣어 데이터베이스를 공격합니다.

★ 시험 포인트

  • 보안의 3요소에 해당하지 않는 것을 고르는 문제를 대비하세요.
  • 대칭키와 공개키 방식의 차이, 대표 알고리즘(AES·RSA)을 묻습니다.
  • 웜과 바이러스, 트로이 목마의 특징을 바꿔 놓은 선지를 조심하세요.
  • 공격 설명을 읽고 공격 이름을 고르는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →

4-3. 소프트웨어 개발 방법

★★★☆☆ 30% (추정)

개요

이 단원은 소프트웨어를 계획부터 유지보수까지 어떤 단계로 만드는지, 그리고 만든 것을 어떻게 시험하는지 다룹니다. 개발 생명주기 모형, 요구사항, 테스트의 종류가 세 기둥입니다.

소프트웨어 개발 생명주기는 요구사항 분석, 설계, 구현, 테스트, 유지보수 순서로 흘러갑니다. 폭포수 모형은 이 단계를 차례대로 한 번씩 끝내고 넘어가는 방식이라 앞 단계로 돌아가기 어렵습니다. 프로토타입 모형은 견본을 먼저 만들어 사용자 의견을 듣고 고쳐 나가며, 애자일은 짧은 주기로 만들고 고치기를 되풀이합니다. 요구사항은 시스템이 무엇을 하는지 적은 기능 요구사항과, 성능·보안처럼 얼마나 잘 하는지 적은 비기능 요구사항으로 나뉩니다.

테스트는 보는 눈에 따라 두 가지로 나뉩니다. 블랙박스 테스트는 안의 코드를 보지 않고 입력과 출력이 요구한 대로 나오는지 확인하고, 화이트박스 테스트는 코드 안의 흐름과 조건을 직접 살펴봅니다. 진행 순서로는 작은 단위를 시험하는 단위 테스트, 묶어서 시험하는 통합 테스트, 전체를 시험하는 시스템 테스트, 사용자가 확인하는 인수 테스트가 있습니다.

핵심 정리

개발 생명주기
— 소프트웨어가 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수 단계를 거쳐 만들어지고 쓰이는 전체 흐름입니다.
폭포수 모형
— 개발 단계를 차례대로 한 번씩 끝내고 다음 단계로 넘어가는 방식입니다. 단계마다 결과가 분명하지만 앞 단계로 되돌아가기 어렵습니다.
프로토타입 모형
— 실제 제품을 만들기 전에 견본(시제품)을 먼저 만들어 사용자에게 보여 주고, 의견을 반영해 요구사항을 다듬는 방식입니다.
블랙박스와 화이트박스 테스트
— 블랙박스 테스트는 내부 코드를 보지 않고 기능(입력과 출력)을 확인합니다. 화이트박스 테스트는 내부 코드의 흐름과 조건을 직접 살펴봅니다.
테스트 단계
— 단위 테스트(작은 모듈 하나) → 통합 테스트(모듈을 묶어서) → 시스템 테스트(전체) → 인수 테스트(사용자가 확인) 순서로 진행합니다.

★ 시험 포인트

  • 폭포수 모형의 특징(차례대로, 되돌아가기 어려움)을 묻는 문제를 대비하세요.
  • 블랙박스와 화이트박스 테스트의 차이를 묻습니다.
  • 기능 요구사항과 비기능 요구사항을 구분하는 문제가 나옵니다.
  • 테스트 단계의 순서를 바르게 나열한 것을 고르는 문제가 나옵니다.
외우는 요령·비교표·대표 문제 보기 →