정보처리기사 실기 합격 전략 — 프로그래밍 완전 정복
"실기가 진짜 벽이다. 어떻게 넘는가"
정보처리기사 실기는 필기와 완전히 다른 시험입니다. 필기가 개념의 이해를 묻는다면, 실기는 "짜여진 코드를 보고 결과를 맞추는 능력"을 평가합니다. 실제 시험의 대부분 문제는 코드를 직접 작성하는 것이 아니라, 주어진 코드를 읽고 출력값을 예측하거나 빈칸을 채우는 방식입니다.
실기 합격률은 NCS 개정 첫해 기준 17.7%에 그쳤습니다. 비전공자가 벼락치기로 한 번에 합격하기는 현실적으로 매우 어렵습니다. 하지만 올바른 전략으로 접근하면, 전공자가 아니더라도 충분히 합격할 수 있는 시험입니다.
이 글에서는 실기 시험의 구조부터 시작해서, 언어별 핵심 출제 유형, 코드 읽기 전략, 시간 관리법, 그리고 합격자들의 실제 후기에서 추출한 인사이트까지 모두 담았습니다. 이 글 하나로 실기 대비의 전체 그림을 잡을 수 있을 것입니다.

1. 실기 시험 구조 완전 분석
1-1. 시험 개요
| 항목 | 내용 |
|---|---|
| 시험 형태 | 필답형 (필기 + 코딩) |
| 문항 수 | 20문항 내외 |
| 시험 시간 | 약 150분 |
| 합격 기준 | 60점 이상 (100점 만점) |
| 출제 언어 | C, Java, Python (세 언어 모두 출제) |
| 응시료 | 22,600원 |
1-2. 영역별 배점 분석
NCS 개정 이후 실기의 영역별 배점은 다음과 같이 변경되었습니다.
| 영역 | 배점 | 비중 | 변화 추이 |
|---|---|---|---|
| 알고리즘 | 25점 | ★★★★ | 하락 (30→25점) |
| 데이터베이스 | 25점 | ★★★★ | 하락 (30→25점) |
| 업무프로세스 | 15점 | ★★★ | 유지 |
| 신기술 | 25점 | ★★★★ | 상승 (20→25점) |
| 전산영어 | 10점 | ★★ | 유지 |
| 합계 | 100점 |
핵심 변화 포인트:
- 신기술 배점이 5점 상승하여 25점이 되었습니다
- 알고리즘과 데이터베이스가 각각 5점씩 하락했습니다
- 출제 문제 수도 조정되어, 한두 영역만으로 합격하기가 더 어려워졌습니다
1-3. 영역별 우선순위 전략
시간이 제한적이라면, 배점이 높은 영역부터 공략해야 합니다.
| 우선순위 | 영역 | 이유 |
|---|---|---|
| 1순위 | 알고리즘(25점) + DB(25점) | 배점 합계 50점, 절반 확보 |
| 2순위 | 신기술(25점) | 배점 상승, 암기로 커버 가능 |
| 3순위 | 업무프로세스(15점) | 이론 중심, 기출 반복으로 대비 |
| 4순위 | 전산영어(10점) | 배점 최저, 시간 부족 시 과감히 포기 가능 |
*"나는 과감하게 CD부분은 아예 보지 않고 넘겼고, AB만 집중적으로 공부했다."* — 한 합격자의 전략에서, 시간이 제한적일 때는 중요도가 높은 문제부터 공부하는 것이 핵심입니다.
2. 알고리즘 영역 — 코드를 읽는 눈을 기른다
2-1. 출제 유형 분석
알고리즘 영역은 실기에서 가장 높은 비중을 차지합니다. 2년 연속 가장 많은 문제가 출제된 영역이기도 합니다. 주요 출제 유형은 다음과 같습니다.
| 유형 | 설명 | 출제 빈도 |
|---|---|---|
| 출력값 예측 | 코드를 보고 최종 출력값 맞추기 | 매우 높음 |
| 빈칸 채우기 | 코드의 빈칸에 들어갈 알맞은 코드 선택 | 높음 |
| 코드 완성 | 주어진 조건에 맞는 코드 조각 선택 | 중간 |
| 오류 찾기 | 코드의 오류를 찾아 수정 | 낮음 |
2-2. C언어 핵심 출제 패턴
C언어는 실기에서 가장 높은 출제 빈도를 보이는 언어입니다. 특히 포인터 문제가 기본적으로 무조건 나온다고 생각하고 연습해야 합니다.
포인터 — 반드시 출제되는 핵심
포인터 문제를 풀기 위해 반드시 이해해야 할 개념들:
| 개념 | 코드 | 의미 | 주의점 |
|---|---|---|---|
| 포인터 선언 | int *p; |
p는 int를 가리키는 포인터 | *는 선언 시 "포인터" 의미 |
| 주소 대입 | p = &a; |
p에 a의 주소를 저장 | & = 주소 연산자 |
| 역참조 | *p |
p가 가리키는 주소의 값 | *는 사용 시 "값 접근" 의미 |
| 포인터 증가 | p++ |
타입 크기만큼 주소 이동 | int=4바이트, char=1바이트 이동 |
| 포인터 산술 | *(p+n) |
p에서 n번째 요소의 값 | p[n]과 동일 |
실전 예제 1 — 기본 포인터 연산:
#include <stdio.h>
int main() {
int a = 10, b = 20;
int *p = &a;
printf("%d\n", *p); // 출력: 10 (a의 값)
p = &b;
printf("%d\n", *p); // 출력: 20 (b의 값)
*p = 30;
printf("%d\n", b); // 출력: 30 (*p를 바꾸면 b가 바뀜)
return 0;
}
풀이 전략:
int *p = &a;→ p는 a의 주소를 가리킴*p→ a의 값인 10 출력p = &b;→ 이제 p는 b의 주소를 가리킴*p→ b의 값인 20 출력*p = 30;→ b의 값을 30으로 변경b→ 30 출력
실전 예제 2 — 배열과 포인터:
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40, 50};
int *p = arr; // 배열명 = 첫 요소의 주소
printf("%d\n", *p); // 출력: 10 (arr[0])
printf("%d\n", *(p+2)); // 출력: 30 (arr[2])
printf("%d\n", p[3]); // 출력: 40 (arr[3])
p++;
printf("%d\n", *p); // 출력: 20 (arr[1])
return 0;
}
포인터 연산 시각화:
arr: [10] [20] [30] [40] [50]
↑ ↑ ↑ ↑ ↑
p=arr p+1 p+2 p+3 p+4
p++ 후: ↑
p
배열 — 두 번째로 많이 출제
| 유형 | 코드 패턴 | 핵심 |
|---|---|---|
| 1차원 배열 | int arr[5] = {1,2,3,4,5}; |
인덱스 0부터 시작 |
| 2차원 배열 | int arr[3][2]; |
행(row) x 열(column) |
| 배열과 포인터 | int *p = arr; |
배열명 = 포인터 상수 |
| 문자열 배열 | char str[] = "hello"; |
NULL 문자(\0) 포함 6바이트 |
실전 예제 3 — 2차원 배열:
#include <stdio.h>
int main() {
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int sum = 0;
for(int i = 0; i < 3; i++) {
sum += arr[i][i]; // 대각선 원소: 1, 5, 9
}
printf("%d\n", sum); // 출력: 15
return 0;
}
반복문과 조건문 — 코드 흐름 추적의 기본
반복문은 직접 루프를 한 바퀴씩 돌려보는 것이 가장 정확합니다.
#include <stdio.h>
int main() {
int x = 1, i;
for(i = 0; i < 4; i++) {
x = x * 2 + 1;
printf("%d ", x);
}
return 0;
}
수기 추적표:
| 반복 | i | x (계산 과정) | 출력 |
|---|---|---|---|
| 1 | 0 | 1×2+1 = 3 | 3 |
| 2 | 1 | 3×2+1 = 7 | 7 |
| 3 | 2 | 7×2+1 = 15 | 15 |
| 4 | 3 | 15×2+1 = 31 | 31 |
최종 출력:
3 7 15 31
후위 연산 (i++, i--) — 자주 틀리는 포인트
| 표현식 | a = i++ | a = ++i |
|---|---|---|
| 실행 순서 | 먼저 a에 i 대입, 그 후 i 증가 | 먼저 i 증가, 그 후 a에 대입 |
| 초기값 i=5일 때 | a=5, i=6 | a=6, i=6 |
int i = 5;
int a = i++; // a=5, i=6
int b = ++i; // b=7, i=7 (이미 i는 6이었으므로)
재귀 함수 — 머릿속으로 그려야 풀린다
int factorial(int n) {
if(n <= 1) return 1; // base case
return n * factorial(n-1); // recursive case
}
// factorial(5) = 5 * 4 * 3 * 2 * 1 = 120
재귀 함수 추적법:
factorial(5)
→ 5 * factorial(4)
→ 4 * factorial(3)
→ 3 * factorial(2)
→ 2 * factorial(1)
→ 1 (base case)
→ 2 * 1 = 2
→ 3 * 2 = 6
→ 4 * 6 = 24
→ 5 * 24 = 120
2-3. Java 핵심 출제 패턴
Java에서는 상속과 다형성, 오버라이딩/오버로딩이 핵심 출제 영역입니다.
오버라이딩 vs 오버로딩
이 둘의 구분은 매 시험 출제됩니다:
| 구분 | 오버라이딩 (Overriding) | 오버로딩 (Overloading) |
|---|---|---|
| 위치 | 부모-자식 클래스 간 | 같은 클래스 내 |
| 메소드명 | 동일 | 동일 |
| 매개변수 | 반드시 동일 | 반드시 다름 (개수 또는 타입) |
| 리턴 타입 | 동일 또는 자식 타입 | 무관 |
| 접근 제한자 | 부모보다 같거나 넓어야 | 무관 |
| 목적 | 다형성 구현 | 편의성 제공 |
상속과 다형성 코드 분석
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("야옹");
}
}
public class Main {
public static void main(String[] args) {
Animal a1 = new Dog(); // 부모 타입 참조 = 다형성
Animal a2 = new Cat();
a1.sound(); // 출력: 멍멍 (실제 객체의 메소드 호출)
a2.sound(); // 출력: 야옹
}
}
핵심 원리: 참조 타입(Animal)이 아니라 실제 객체 타입(Dog, Cat)의 메소드가 호출됩니다. 이것이 다형성(Polymorphism)입니다.
instanceof 연산자
Animal a = new Dog();
System.out.println(a instanceof Dog); // true
System.out.println(a instanceof Animal); // true (Dog는 Animal의 자식)
System.out.println(a instanceof Cat); // false
배열과 ArrayList
int[] arr = {1, 2, 3, 4, 5};
System.out.println(arr.length); // 출력: 5
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
System.out.println(list.size()); // 출력: 3
System.out.println(list.get(1)); // 출력: B (0부터 시작)
2-4. Python 핵심 출제 패턴
Python은 C/Java보다 비교적 쉬운 문제 위주로 출제되지만, 슬라이싱과 리스트 컴프리헨션에서 실수가 잦습니다.
리스트 슬라이싱 — 반드시 정리할 것
| 표현 | 의미 | 예시 | 결과 |
|---|---|---|---|
[start:end] |
start 이상, end 미만 | [1,2,3,4,5][1:4] |
[2, 3, 4] |
[start:] |
start부터 끝까지 | [1,2,3,4,5][2:] |
[3, 4, 5] |
[:end] |
처음부터 end 미만 | [1,2,3,4,5][:3] |
[1, 2, 3] |
[::step] |
step 간격으로 | [1,2,3,4,5][::2] |
[1, 3, 5] |
[::-1] |
역순 | [1,2,3,4,5][::-1] |
[5, 4, 3, 2, 1] |
[-n] |
뒤에서 n번째 | [1,2,3,4,5][-2] |
4 |
리스트 컴프리헨션
# 기본
squares = [x**2 for x in range(5)]
# 결과: [0, 1, 4, 9, 16]
# 조건 포함
evens = [x for x in range(10) if x % 2 == 0]
# 결과: [0, 2, 4, 6, 8]
# 중첩
matrix = [[i*j for j in range(3)] for i in range(3)]
# 결과: [[0,0,0], [0,1,2], [0,2,4]]
딕셔너리와 튜플
d = {'a': 1, 'b': 2, 'c': 3}
print(d['b']) # 출력: 2
print(d.get('d', 0)) # 출력: 0 (없으면 기본값)
t = (1, 2, 3)
print(t[1]) # 출력: 2
# t[0] = 10 ← 에러! 튜플은 불변(immutable)
Python 문자열 메소드
| 메소드 | 기능 | 예시 | 결과 |
|---|---|---|---|
upper() |
대문자 변환 | 'hello'.upper() |
'HELLO' |
lower() |
소문자 변환 | 'HELLO'.lower() |
'hello' |
split() |
분리 | 'a,b,c'.split(',') |
['a','b','c'] |
join() |
결합 | '-'.join(['a','b','c']) |
'a-b-c' |
replace() |
치환 | 'hello'.replace('l','r') |
'herro' |
strip() |
공백 제거 | ' hi '.strip() |
'hi' |
find() |
위치 찾기 | 'hello'.find('l') |
2 (첫 번째 위치) |
count() |
개수 세기 | 'hello'.count('l') |
2 |
3. 데이터베이스 영역 — SQL 작성이 승부처
3-1. 출제 유형 분석
DB 영역에서는 SQL 작성과 정규화가 핵심입니다. 필기와 실기 모두에서 출제되므로, 이 영역을 제대로 공부하면 두 시험을 동시에 대비할 수 있습니다.
| 유형 | 설명 | 출제 빈도 |
|---|---|---|
| SQL 작성 | 주어진 조건에 맞는 SQL 쿼리 작성 | 매우 높음 |
| 출력값 예측 | SQL 실행 결과 맞추기 | 높음 |
| 정규화 | 정규형 단계 판단 | 높음 |
| ERD 분석 | 다이어그램 기반 테이블 설계 | 중간 |
3-2. SQL 핵심 문법 총정리
SELECT 기본 구조
SELECT [DISTINCT] 컬럼명
FROM 테이블명
[WHERE 조건]
[GROUP BY 컬럼명 [HAVING 집계조건]]
[ORDER BY 컬럼명 [ASC|DESC]];
실행 순서를 반드시 기억하세요:
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
자주 틀리는 포인트: SELECT절에서 정의한 별명(alias)은 ORDER BY에서 사용 가능하지만, WHERE에서는 사용할 수 없습니다. 실행 순서상 SELECT보다 WHERE이 먼저 실행되기 때문입니다.
JOIN — 실기 단골 출제
| JOIN 유형 | 결과 | 설명 |
|---|---|---|
| INNER JOIN | 양쪽 모두 일치하는 행만 | 가장 기본 |
| LEFT JOIN | 왼쪽 테이블의 모든 행 + 일치하는 오른쪽 | 미일치 행은 NULL |
| RIGHT JOIN | 오른쪽 테이블의 모든 행 + 일치하는 왼쪽 | 미일치 행은 NULL |
| CROSS JOIN | 모든 조합 (카티션 곱) | m × n 행 |
| SELF JOIN | 자기 자신의 조인 | 같은 테이블을 두 번 참조 |
-- INNER JOIN 예시
SELECT e.이름, d.부서명
FROM 사원 e
INNER JOIN 부서 d ON e.부서번호 = d.부서번호;
-- LEFT JOIN 예시
SELECT e.이름, d.부서명
FROM 사원 e
LEFT JOIN 부서 d ON e.부서번호 = d.부서번호;
-- 부서가 없는 사원도 출력됨 (부서명은 NULL)
GROUP BY와 집계 함수
-- 부서별 평균 급여 (평균 3000 이상인 부서만)
SELECT 부서번호, AVG(급여) AS 평균급여, COUNT(*) AS 인원수
FROM 사원
GROUP BY 부서번호
HAVING AVG(급여) >= 3000
ORDER BY 평균급여 DESC;
| 집계 함수 | 기능 | NULL 처리 |
|---|---|---|
COUNT(*) |
행 수 세기 | NULL 포함 |
COUNT(컬럼) |
해당 컬럼의 행 수 | NULL 제외 |
SUM(컬럼) |
합계 | NULL 제외 |
AVG(컬럼) |
평균 | NULL 제외 |
MAX(컬럼) |
최대값 | NULL 제외 |
MIN(컬럼) |
최소값 | NULL 제외 |
자주 틀리는 포인트:
COUNT(*)는 NULL을 포함하지만,COUNT(컬럼명)은 NULL을 제외합니다. 이 차이가 시험에서 정확한 답을 가릅니다.
서브쿼리 (Subquery)
-- 평균 급여보다 많이 받는 사원
SELECT 이름, 급여
FROM 사원
WHERE 급여 > (SELECT AVG(급여) FROM 사원);
-- 가장 높은 급여를 받는 사원의 부서
SELECT 이름, 부서번호
FROM 사원
WHERE 급여 = (SELECT MAX(급여) FROM 사원);
기타 자주 출제되는 SQL 패턴
-- BETWEEN (범위)
SELECT * FROM 사원 WHERE 급여 BETWEEN 2000 AND 5000;
-- IN (목록 중 하나)
SELECT * FROM 사원 WHERE 부서번호 IN (10, 20, 30);
-- LIKE (패턴 매칭)
SELECT * FROM 사원 WHERE 이름 LIKE '김%'; -- 김으로 시작
SELECT * FROM 사원 WHERE 이름 LIKE '%수'; -- 수로 끝남
SELECT * FROM 사원 WHERE 이름 LIKE '_준%'; -- 두 번째 글자가 준
-- NULL 처리
SELECT * FROM 사원 WHERE 커미션 IS NULL;
SELECT * FROM 사원 WHERE 커미션 IS NOT NULL;
-- DISTINCT (중복 제거)
SELECT DISTINCT 부서번호 FROM 사원;
-- UNION (합집합, 중복 제거)
SELECT 이름 FROM 사원 UNION SELECT 이름 FROM 인턴;
-- UNION ALL (합집합, 중복 포함)
SELECT 이름 FROM 사원 UNION ALL SELECT 이름 FROM 인턴;
3-3. 정규화 실전 풀이
정규화 문제는 "주어진 테이블이 몇 정규형인지 판단"하거나 "정규화 과정을 수행"하는 유형으로 출제됩니다.
실전 예제:
다음 테이블을 정규화하시오.
| 학번 | 이름 | 과목코드 | 과목명 | 교수명 | 학과 |
|---|---|---|---|---|---|
| 1001 | 김철수 | C001 | DB | 이교수 | 컴퓨터 |
| 1001 | 김철수 | C002 | OS | 박교수 | 컴퓨터 |
| 1002 | 이영희 | C001 | DB | 이교수 | 수학 |
판단 과정:
1단계. 현재 정규형 판별
- 후보키: (학번, 과목코드)
- 과목명은 과목코드에만 종속 → 부분적 종속 존재
- 교수명은 과목코드에 종속 → 부분적 종속 존재
- 학과는 학번에만 종속 → 부분적 종속 존재
→ 제1정규형만 만족 (반복 그룹은 없으나 부분적 종속 존재)
2단계. 2NF 변환 (부분적 종속 제거)
- 학생(학번, 이름, 학과)
- 과목(과목코드, 과목명, 교수명)
- 수강(학번, 과목코드) ← 관계 테이블
3단계. 3NF 변환 (이행적 종속 확인)
- 학생 테이블: 학번→학과 → 학과에 따라 학과 정보가 달라지지 않으므로 OK
- 과목 테이블: 과목코드→교수명 → 만약 교수가 여러 과목을 담당하면 OK
- 이행적 종속이 있다면 추가 분리
3-4. 정규화 암기 요약
| 정규형 | 조건 | 제거 대상 | 암기법 |
|---|---|---|---|
| 1NF | 모든 속성이 원자값 | 반복 그룹 | "원자" |
| 2NF | 1NF + 완전 함수적 종속 | 부분적 종속 | "완전" |
| 3NF | 2NF + 이행적 종속 제거 | 이행적 종속 | "이행" |
| BCNF | 결정자 = 후보키 | 후보키 아닌 결정자 | "결정자" |
암기: "도(원자)부(부분↓)이(이행↓)결(결정자=후보키)"
4. 신기술 영역 — 25점, 절대 놓칠 수 없다
4-1. 출제 경향
신기술 영역의 배점이 25점으로 상승하면서, 이 영역을 소홀히 하면 합격이 매우 어려워졌습니다. 출제 범위는 클라우드, AI/머신러닝, 빅데이터, IoT, 블록체인, 5G 등이며, 개념을 정확히 이해하고 있으면 풀 수 있는 문제가 대부분입니다.
4-2. 핵심 기술별 정리
클라우드 컴퓨팅
| 모델 | 제공 범위 | 관리 주체 | 비유 |
|---|---|---|---|
| IaaS | 인프라 (서버, 스토리지, 네트워크) | 사용자가 OS 이상 관리 | 빈 건물 임대 |
| PaaS | 플랫폼 (OS, 미들웨어, 런타임) | 제공자가 OS까지 관리 | 인테리어 완료 건물 |
| SaaS | 소프트웨어 (앱, 서비스) | 제공자가 전부 관리 | 완성된 가게 입점 |
PaaS-TA는 국내 개방형 PaaS 오픈소스 플랫폼으로, 정보처리기사 시험에서 반복 출제됩니다.
AI/머신러닝
| 기술 | 정의 | 핵심 키워드 |
|---|---|---|
| CNN (합성곱 신경망) | 이미지 처리에 특화된 신경망 | 합성곱 연산, 풀링, 이미지 인식 |
| RNN (순환 신경망) | 연속 데이터 처리, 은닉 노드 값 저장 | 시계열, 자연어 처리, 기울기 소실 |
| LSTM | RNN의 기울기 소실 문제 해결 | 장단기 기억, 게이트 구조 |
| GPT | 대규모 사전학습 생성 모델 | 트랜스포머 기반, 프롬프트 |
| NLP (자연어 처리) | 인간 언어 이해·처리 기술 | 음성 인식, 번역, 감정 분석 |
| PCA | 고차원→저차원 변환 | 차원 축소, 주성분 분석 |
| TensorFlow | 구글 오픈소스 ML 라이브러리 | 딥러닝 모델 개발 |
| AutoML | ML 모델 자동 생성 | 하이퍼파라미터 자동 탐색 |
블록체인
| 개념 | 설명 |
|---|---|
| 분산 원장 | 중앙 서버 없이 모든 참여자가 거래 기록 공유 |
| 합의 알고리즘 | PoW(작업증명), PoS(지분증명) 등 |
| 스마트 계약 | 조건 충족 시 자동 실행되는 계약 |
| BaaS | 블록체인 개발환경을 클라우드로 서비스 |
IoT (사물인터넷)
| 프로토콜 | 특징 |
|---|---|
| MQTT | 경량 메시지 프로토콜, Publish/Subscribe 모델 |
| CoAP | 제약된 환경용 경량 프로토콜 |
| AMQP | 메시지 지향 미들웨어 프로토콜 |
5G/네트워크 신기술
| 기술 | 정의 |
|---|---|
| 5G | 초고속·초저지연·초연결 네트워크 |
| 네트워크 슬라이싱 | 하나의 물리 네트워크를 다수의 논리 네트워크로 분리 |
| MEC | 네트워크 엣지에서 컴퓨팅 자원 제공 |
| 디지털 트윈 | 현실 세계의 물리적 자산을 가상 모델로 구현 |
| 메타버스 | 가상 세계에서의 사회·경제적 활동 |
데이터 기술
| 기술 | 정의 |
|---|---|
| 빅데이터 | 3V (Volume, Velocity, Variety) |
| 하둡 | 대용량 분산 저장·처리 프레임워크 (HDFS, MapReduce) |
| NoSQL | 관계형이 아닌 다양한 데이터 모델 DB |
| 데이터 레이크 | 정형·비정형 데이터를 원본 그대로 저장 |
| 데이터 웨어하우스 | 분석을 위해 정제된 구조화 데이터 저장소 |
DevOps/컨테이너
| 기술 | 정의 |
|---|---|
| DevOps | 개발(Dev)과 운영(Ops)의 통합 문화·방법론 |
| CI/CD | 지속적 통합/지속적 배포 |
| 도커 (Docker) | 컨테이너 기반 배포 자동화 엔진 |
| 쿠버네티스 (K8s) | 컨테이너 오케스트레이션 플랫폼 |
| 마이크로서비스 | 애플리케이션을 독립적 소규모 서비스로 분리 |
4-3. 신기술 암기 전략
신기술은 "용어의 정의"를 정확히 아는 것이 핵심입니다. 시험에서는 "
에 대한 설명으로 옳은 것은?" 또는 "
는 무엇인가?" 형태로 출제되므로, 각 용어의 한 줄 정의를 정확히 기억해야 합니다.
| 주제 | 핵심 한 줄 정의 |
|---|---|
| SDN | 제어부와 데이터 전달부를 분리하여 중앙 관리 |
| NFV | 범용 하드웨어에 가상화 기술 적용, 네트워크 기능을 가상 모듈로 제공 |
| 클라우드 컴퓨팅 | 인터넷을 통해 IT 자원을 필요한 만큼 제공 |
| 블록체인 | 중앙 관리 없이 분산 원장으로 거래 기록 공유 |
| 딥러닝 | 다층 신경망으로 자동 특징 추출 |
| CNN | 이미지 처리 특화 신경망 |
| RNN | 연속 데이터 처리 신경망 |
| 컨테이너 | 앱과 실행 환경을 함께 패키징하여 어디서든 동일 실행 |
| DevOps | 개발과 운영의 통합으로 빠른 배포·안정적 운영 |
| 마이크로서비스 | 앱을 독립적 소규모 서비스로 분리하여 개발·배포 |
5. 업무프로세스 영역 — 이론으로 15점 챙기기
5-1. 출제 유형
업무프로세스 영역은 시스템 분석, 설계 개념, 프로젝트 관리, 요구사항 분석 등 이론적 지식을 묻는 문제가 출제됩니다.
5-2. 핵심 개념 정리
| 개념 | 설명 | 포인트 |
|---|---|---|
| 요구사항 분석 | 도출→분석→명세→확인 (검증) | "구현"은 포함 안 됨 |
| UML | 표준 모델링 언어 | 유스케이스, 클래스, 시퀀스, 상태, 활동 |
| MVC 패턴 | Model-View-Controller | Controller가 Model↔View 전달 |
| DFD | 자료 흐름도 | Data Store는 평행선(두 줄) 안에 기입 |
| ERD | 개체 관계 다이어그램 | 개체, 속성, 관계 표현 |
| CBD | 컴포넌트 기반 개발 | 재사용 가능한 컴포넌트 조립 |
| 형상 관리 | 변경 사항 체계적 관리 | 형상 식별, 통제, 감사, 기록 |
| SW 품질 특성 | 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성 | ISO/IEC 25010 |
5-3. UML 다이어그램 비교표
| 다이어그램 | 분류 | 핵심 용도 |
|---|---|---|
| 유스케이스 | 행위 | 시스템 기능과 사용자(액터) 관계 |
| 클래스 | 구조 | 정적 구조, 클래스 간 관계 |
| 시퀀스 | 행위 | 객체 간 메시지 교환 순서 |
| 상태 | 행위 | 객체의 상태 변화 |
| 활동 | 행위 | 업무 흐름 |
| 배치 | 구조 | 물리적 배치 구조 |
| 컴포넌트 | 구조 | 소프트웨어 컴포넌트 구조 |
6. 전산영어 영역 — 10점, 버릴까 챙길까
6-1. 전략적 판단
전산영어의 배점은 10점으로 전체의 10%입니다. 다른 영역에 비해 상대적으로 낮지만, 시간이 허락한다면 챙기는 것이 안전합니다.
6-2. 자주 출제되는 IT 영어 용어 TOP 30
| 영어 용어 | 한글 의미 | 출제 빈도 |
|---|---|---|
| Encapsulation | 캡슐화 | 높음 |
| Polymorphism | 다형성 | 높음 |
| Inheritance | 상속 | 높음 |
| Abstraction | 추상화 | 높음 |
| Normalization | 정규화 | 높음 |
| Transaction | 트랜잭션 | 높음 |
| Scalability | 확장성 | 중간 |
| Reliability | 신뢰성 | 중간 |
| Middleware | 미들웨어 | 중간 |
| Firewall | 방화벽 | 중간 |
| Encryption | 암호화 | 중간 |
| Authentication | 인증 | 중간 |
| Authorization | 권한 부여 | 중간 |
| Integrity | 무결성 | 중간 |
| Availability | 가용성 | 중간 |
| Redundancy | 이중성/중복성 | 낮음 |
| Latency | 지연 시간 | 낮음 |
| Throughput | 처리량 | 낮음 |
| Bandwidth | 대역폭 | 낮음 |
| Protocol | 프로토콜/규약 | 중간 |
| Repository | 저장소 | 낮음 |
| Artifact | 산출물 | 낮음 |
| Deployment | 배포 | 중간 |
| Refactoring | 리팩토링 | 중간 |
| Iteration | 반복 | 중간 |
| Sprint | 스프린트(짧은 개발 주기) | 중간 |
| Backlog | 작업 목록 | 낮음 |
| Stakeholder | 이해관계자 | 중간 |
| Compliance | 규정 준수 | 낮음 |
| Legacy | 레거시(구형 시스템) | 중간 |
6-3. 전산영어 대비 전략
- 공부 시간: 전체 실기 공부 시간의 10% 이하로 배분
- 대비 방법: IT 용어집을 2~3회 읽고, 기출에서 나왔던 영어 지문을 확인
- 시험 전략: 시간이 부족하면 가장 마지막에 풀기. 찍더라도 확률적으로 2~3문항은 맞출 수 있음
7. 코드 읽기 전략 — 실기 합격의 핵심 역량
7-1. 코드 추적 5단계법
실기의 대부분 문제는 코드를 "읽고" 출력값을 "맞추는" 유형입니다. 다음 5단계를 체화하세요.
1단계. 변수의 초기값을 적는다
┌─────────────────────────────┐
│ a=10, b=20, c=0, i=0 │
└─────────────────────────────┘
2단계. 한 줄씩 실행하면서 값의 변화를 메모한다
c = a + b → c=30
a = b → a=20
3단계. 반복문은 루프를 직접 2~3바퀴 돌려본다
for(i=0; i<3; i++)
i=0: result = ...
i=1: result = ...
i=2: result = ...
4단계. 조건문의 분기점을 정확히 파악한다
if(a > b) → a=20, b=20 → 조건 거짓 → else 분기
5단계. 최종 출력값을 확인한다
printf("%d", result) → ?
7-2. 실전 수기 추적 예제
#include <stdio.h>
int main() {
int a[5] = {3, 1, 4, 1, 5};
int i, j, temp;
for(i = 0; i < 4; i++) {
for(j = 0; j < 4-i; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i = 0; i < 5; i++)
printf("%d ", a[i]);
return 0;
}
수기 추적 (버블 정렬):
초기: [3, 1, 4, 1, 5]
i=0:
j=0: 3>1 → swap → [1, 3, 4, 1, 5]
j=1: 3>4 → No → [1, 3, 4, 1, 5]
j=2: 4>1 → swap → [1, 3, 1, 4, 5]
j=3: 4>5 → No → [1, 3, 1, 4, 5]
i=1:
j=0: 1>3 → No → [1, 3, 1, 4, 5]
j=1: 3>1 → swap → [1, 1, 3, 4, 5]
j=2: 3>4 → No → [1, 1, 3, 4, 5]
i=2:
j=0: 1>1 → No → [1, 1, 3, 4, 5]
j=1: 1>3 → No → [1, 1, 3, 4, 5]
i=3:
j=0: 1>1 → No → [1, 1, 3, 4, 5]
최종 출력: 1 1 3 4 5
시간 절약 팁: 실제 시험에서는 처음 2~3단계만 추적하면 패턴이 보이는 경우가 많습니다. 전체를 다 추적할 필요 없이, 패턴을 파악한 후 바로 답을 도출하는 연습을 하세요.
7-3. 코드 읽기 연습 도구
| 도구 | 활용 방법 | 장점 |
|---|---|---|
| 백준 (boj.kr) | C/Java/Python 기초 문제 풀이 | 즉시 결과 확인, 다양한 난이도 |
| 프로그래머스 | SQL + 알고리즘 실습 | 실기와 유사한 환경 |
| Python IDLE | 코드 한 줄씩 실행 | 즉시 결과 확인으로 학습 속도↑ |
| Visual Studio Code | 디버깅 모드로 단계별 실행 | 변수 변화를 한눈에 확인 |
| 시나공 기억상자 앱 | 모르는 문제만 반복 학습 | 효율적 오답 노트 |
8. 시간 관리 전략 — 시험장에서의 150분
8-1. 시간 배분 플랜
| 영역 | 문제 수 (예상) | 배점 | 권장 시간 | 전략 |
|---|---|---|---|---|
| 알고리즘 | 5~6문항 | 25점 | 40분 | 코드 추적 꼼꼼히 |
| 데이터베이스 | 4~5문항 | 25점 | 30분 | SQL 빠르게 작성 |
| 신기술 | 4~5문항 | 25점 | 25분 | 아는 것부터 빠르게 |
| 업무프로세스 | 3~4문항 | 15점 | 20분 | 개념 기반 빠르게 |
| 전산영어 | 2~3문항 | 10점 | 15분 | 마지막에, 찍기 포함 |
| 검토 | - | - | 20분 | 전체 답안 확인 |
8-2. 풀이 순서 전략
시작
│
├─ 1단계. 전체 문제를 2분간 훑어본다
│ → 쉬운 문제와 어려운 문제를 구분
│
├─ 2단계. 아는 문제부터 푼다
│ → 신기술(암기) → DB(SQL) → 업무프로세스(이론)
│
├─ 3단계. 코드 분석 문제를 푼다
│ → 알고리즘(C/Java/Python 코드 추적)
│
├─ 4단계. 전산영어를 푼다
│ → 모르면 찍기 (25% 확률)
│
└─ 5단계. 검토 (20분)
→ 빈칸 확인, 계산 재검증
8-3. 실전 꿀팁
- 코드 추적 시 메모를 아끼지 마세요. 종이에 변수의 변화를 한 줄씩 적어나가면 실수를 크게 줄일 수 있습니다.
- 반복문은 2~3바퀴만 돌려보세요. 패턴이 보이면 전체를 돌릴 필요 없이 바로 답을 도출합니다.
- SQL 문제는 먼저 테이블 구조를 파악하세요. 컬럼명, 데이터 타입, 관계를 먼저 이해하고 쿼리를 작성합니다.
- 신기술은 체감 시간이 짧습니다. 아는 개념이면 10초, 모르면 10분도 소용없습니다. 모르면 빠르게 넘어가세요.
- 시간이 부족하면 전산영어부터 포기하세요. 10점이지만, 확률적으로 찍어도 2~3점은 얻을 수 있습니다.
9. 합격자 후기에서 추출한 실전 인사이트
9-1. 비전공자의 3수 끝 합격 전략
한 비전공자 수험생은 필기를 4일 벼락치기로 합격했지만, 실기는 3번 응시 끝에 합격했습니다. 그의 전략 변화를 정리하면:
| 시도 | 공부 방법 | 결과 | 분석 |
|---|---|---|---|
| 1차 | 유튜브 강의 + 시나공 전체 공부 | 불합격 (42점) | 범위가 넓어 분산됨 |
| 2차 | 인강 패키지 + 전체 기출 | 불합격 (53점) | 이론은 늘었으나 코드 읽기 부족 |
| 3차 | 시나공 1권만 + AB 중요도만 집중 | 합격 (68점) | 전략적 선택과 집중 |
핵심 교훈:
- 교재 1권을 제대로 돌리는 것이 여러 자료를 얕게 보는 것보다 낫습니다
- 시나공 교재의 ABCD 중요도 표시를 활용하여, AB 등급 문제부터 집중 학습하는 전략이 시간 대비 효과적입니다
- 처음 문제를 풀 때 코드를 처음부터 이해하려 하지 말고, 해설부터 보면서 실행 순서를 이해하는 것이 효율적입니다
9-2. 전공자의 2주 합격 전략
전공자의 경우 준비 기간이 짧아도 합격이 가능하지만, 다음과 같은 전략을 사용합니다:
| 기간 | 학습 내용 | 비중 |
|---|---|---|
| 1~3일 | 실기 기출 3년치 전체 훑어보기 + 출제 유형 파악 | 분석 100% |
| 4~7일 | C/Java 코드 읽기 연습 + SQL 작성 연습 | 실습 70% / 이론 30% |
| 8~10일 | 신기술 + 업무프로세스 이론 정리 | 이론 100% |
| 11~14일 | 실기 모의고사 2~3회 + 오답 정리 | 실전 100% |
9-3. 합격자들이 공통으로 강조하는 것
1. "교재 1권이면 충분하다. 여러 권 사지 마세요."
2. "코드를 보는 연습을 많이 해야 합니다. 이론만으로는 실기에서 점수를 올리기 어렵습니다."
3. "신기술 배점이 올랐으니, 최신 트렌드를 반드시 학습하세요."
4. "SQL은 직접 손으로 써보는 연습이 필수입니다."
5. "시험장에서 시간이 부족할 수 있으므로, 평소 시간 재고 연습하세요."
10. 실기 대비 주차별 학습 플랜
10-1. 8주 플랜 (비전공자 추천)
| 주차 | 학습 내용 | 비중 | 목표 |
|---|---|---|---|
| 1주차 | C언어 기초 — 변수, 배열, 반복문, 조건문 | 코딩 100% | 기본 문법 이해 |
| 2주차 | C언어 심화 — 포인터, 함수, 재귀, 동적 메모리 | 코딩 100% | 코드 추적 능력 확보 |
| 3주차 | Java 기초 — 클래스, 상속, 오버라이딩/오버로딩 | 코딩 100% | 다형성 코드 읽기 |
| 4주차 | SQL — SELECT, JOIN, GROUP BY, 서브쿼리 | DB 100% | SQL 작성 능력 확보 |
| 5주차 | Python — 리스트, 딕셔너리, 슬라이싱, 컴프리헨션 | 코딩 100% | Python 코드 읽기 |
| 6주차 | 신기술 + 업무프로세스 이론 정리 | 이론 100% | 핵심 용어 암기 |
| 7주차 | 실기 기출 모의고사 3회분 | 실전 100% | 시간 관리 + 실전 감각 |
| 8주차 | 오답 정리 + 취약 영역 보완 + 최종 점검 | 실전 100% | 최종 마무리 |
10-2. 4주 플랜 (전공자 또는 재도전자)
| 주차 | 학습 내용 |
|---|---|
| 1주차 | C/Java 코드 읽기 + SQL 작성 집중 연습 |
| 2주차 | Python + 신기술 이론 + 업무프로세스 정리 |
| 3주차 | 실기 기출 모의고사 3~4회분 + 오답 분석 |
| 4주차 | 취약 영역 집중 보완 + 시간 관리 연습 |
10-3. 2주 플랜 (벼락치기 — 전공자만)
| 기간 | 학습 내용 |
|---|---|
| 1~3일 | 기출 3년치 훑어보기 + 유형 파악 |
| 4~7일 | C/Java 포인터·상속 + SQL 집중 |
| 8~10일 | 신기술 키워드 + 업무프로세스 이론 |
| 11~14일 | 모의고사 2회 + 오답 + 최종 정리 |
주의: 벼락치기는 전공자에 한합니다. 비전공자가 2주로 합격하는 것은 현실적으로 매우 어렵습니다. 최소 4주 이상의 준비를 권장합니다.
11. 실기 대비 추천 학습 도구 종합 비교
| 도구 | 유형 | 비용 | 특징 | 추천 대상 |
|---|---|---|---|---|
| 시나공 실기 교재 | 교재 | 약 25,000원 | 중요도 ABCD 표기, 무료 QR 강의, 기억상자 앱 | 모든 수험생 (필수) |
| 시나공 필기+실기 세트 | 교재 | 약 45,000원 | 필기+실기 동시 대비 | 첫 도전자 |
| 유튜브 무료 강의 | 영상 | 무료 | 개념 입문, 코드 실행 설명 | 비전공자 |
| 백준 (boj.kr) | 사이트 | 무료 | C/Java/Python 기초 연습 | 코딩 실력 향상 |
| 프로그래머스 | 사이트 | 무료/유료 | SQL + 알고리즘 실습 | DB + 알고리즘 대비 |
| 오늘학습 앱 | 앱 | 무료 | 기출 문제 풀이 | 이동 중 복습 |
| 기억상자 앱 | 앱 | 무료 | 시나공 교재 연동 오답 학습 | 시나공 사용자 |
| Python IDLE | 프로그램 | 무료 | Python 한 줄씩 즉시 실행 | Python 학습자 |
12. 실기 시험장 체크리스트
시험 당일, 다음 사항을 반드시 확인하세요.
| 항목 | 확인 사항 |
|---|---|
| 신분증 | 주민등록증, 운전면허증, 여권 중 하나 |
| 필기구 | 컴퓨터용 사인펜 (OMR 마킹용), 일반 펜 (코드 메모용) |
| 시계 | 디지털 시계 불가, 아날로그 시계 권장 |
| 접수 확인 | 큐넷에서 시험장소·시간 재확인 |
| 마음가짐 | 모르는 문제는 과감하게 넘기기 |
마무리
정보처리기사 실기는 분명 어려운 시험입니다. 합격률 17%대라는 숫자가 이를 증명합니다. 하지만 이 숫자에는 준비 없이 시험장에 들어가는 사람들도 포함되어 있습니다. 체계적으로 2~3개월을 준비한 수험생의 실제 합격률은 훨씬 높습니다.
실기 합격의 핵심을 한 문장으로 정리하면:
"코드를 읽는 눈을 기르고, 핵심 영역에 집중하고, 시간을 관리하라."
코드를 직접 짤 필요는 없습니다. 주어진 코드를 정확히 읽고, 변수의 변화를 한 줄씩 추적하고, 최종 출력값을 맞추는 능력. 이것이 실기 시험이 요구하는 역량입니다.
교재 1권, 기출 3년분, 하루 2~3시간의 꾸준한 학습. 이것만으로도 충분히 합격할 수 있습니다.
다음 글에서는 최근 5개년 기출문제 완벽 분석 & 출제 예측으로 찾아뵙겠습니다. 연도별 출제 패턴 변화, 반복 출제 개념 TOP 30, 그리고 앞으로 나올 가능성이 높은 문제 유형까지 분석하겠습니다.
참고 자료
- https://blog.kakaocdn.net (비전공자 정보처리기사 실기 합격 후기)
- https://www.machuda.kr (맞추다 - 무조건 합격 정보처리기사 필기 과목별 공부법)
- https://blog.kakaocdn.net (2025 정보처리기사 시험 정보 총정리)
- https://blog.kakaocdn.net (정보처리기사 실기 후기 - 시나공 교재 활용법)
- https://blog.kakaocdn.net (비전공자 독학 정보처리기사 합격 수기)
- https://www.metacodes.co.kr (메타코드 - 2025 정보처리기사 필기 합격 올인원)
- https://blog.kakaocdn.net (정보처리기사 실기 공부법 - 코드 읽기 전략)
- https://blog.kakaocdn.net (NCS 개정 정보처리기사 실기 난이도 변화)
- https://cafe.naver.com/soojebi (수제비 카페 - 정보처리기사 합격 수기)
- https://blog.kakaocdn.net (정보처리기사 응시자격 및 학습 전략)
#정보처리기사실기 #실기합격전략 #프로그래밍공부 #코딩자격증 #정보처리기사실기공부법 #주제3번
'자격증 공부 관련 > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 취득 후 — 활용 로드맵 & 커리어 전략 (0) | 2026.08.04 |
|---|---|
| 정보처리기사 최근 5개년 기출문제 완벽 분석 & 출제 예측 (0) | 2026.08.04 |
| 정보처리기사 필기 합격 전략 — 과목별 핵심 총정리 (0) | 2026.08.04 |
| 정보처리기사 완벽 입문 가이드 — 자격증의 모든 것을 파헤친다 (0) | 2026.08.04 |