자격증 공부 관련/정보처리기사

정보처리기사 실기 합격 전략 — 프로그래밍 완전 정복

영구원(09One) 2026. 8. 4. 03:00

정보처리기사 실기 합격 전략 — 프로그래밍 완전 정복

"실기가 진짜 벽이다. 어떻게 넘는가"


정보처리기사 실기는 필기와 완전히 다른 시험입니다. 필기가 개념의 이해를 묻는다면, 실기는 "짜여진 코드를 보고 결과를 맞추는 능력"을 평가합니다. 실제 시험의 대부분 문제는 코드를 직접 작성하는 것이 아니라, 주어진 코드를 읽고 출력값을 예측하거나 빈칸을 채우는 방식입니다.

 

실기 합격률은 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;
}

 

풀이 전략:

  1. int *p = &a; → p는 a의 주소를 가리킴
  2. *p → a의 값인 10 출력
  3. p = &b; → 이제 p는 b의 주소를 가리킴
  4. *p → b의 값인 20 출력
  5. *p = 30; → b의 값을 30으로 변경
  6. 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. 실전 꿀팁

  1. 코드 추적 시 메모를 아끼지 마세요. 종이에 변수의 변화를 한 줄씩 적어나가면 실수를 크게 줄일 수 있습니다.
  2. 반복문은 2~3바퀴만 돌려보세요. 패턴이 보이면 전체를 돌릴 필요 없이 바로 답을 도출합니다.
  3. SQL 문제는 먼저 테이블 구조를 파악하세요. 컬럼명, 데이터 타입, 관계를 먼저 이해하고 쿼리를 작성합니다.
  4. 신기술은 체감 시간이 짧습니다. 아는 개념이면 10초, 모르면 10분도 소용없습니다. 모르면 빠르게 넘어가세요.
  5. 시간이 부족하면 전산영어부터 포기하세요. 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, 그리고 앞으로 나올 가능성이 높은 문제 유형까지 분석하겠습니다.


 

참고 자료


#정보처리기사실기 #실기합격전략 #프로그래밍공부 #코딩자격증 #정보처리기사실기공부법 #주제3번