정보처리기사 실기 코딩 압축 공부법 - Java편
요약
2026년 3회 정보처리기사 실기 Java 코딩 출제 경향 분석 기반 압축 공부법입니다. 26년 2회 실제 출제 내용을 반영한 OOP 중심 학습 우선순위와 문제 범위를 안내합니다.
다음과 같은 분들을 위한 정보처리기사 실기 Java 코딩 공부법을 소개하는 글입니다.
- 코딩을 처음 접하는 코린이, 비전공자다.
- 어디서부터 공부해야 할지 모르겠다.
- 중요한 주제부터 효율적으로 공부하고 싶다.
코딩 문제를 몇 개 맞춰야 할까?
26년 2회 정처기 실기는 코딩 11문제(SQL 4문제 + C·Java·Python 7문제) + 이론 9문제로, 코딩 비중이 역대 가장 컸습니다. SQL은 26년 1회 3문제에서 2회 4문제로 늘며 완전히 코딩 과목으로 자리 잡았습니다. 26년 3회도 코딩 9 ~ 11문제 구성으로 보고 대비하면 됩니다.
| 언어 | 준비 범위 | 최소 목표 |
|---|---|---|
| SQL | 1 ~ 4문제 (중심 2 ~ 3) | 2문제 |
| C언어 | 2 ~ 4문제 (기준 3) | 1문제 |
| Java | 2 ~ 4문제 (중심 3) | 1문제 |
| Python | 1 ~ 3문제 (기준 2) | 2문제 |
| 총 | 9 ~ 11문제 | 6문제 |
준비 범위는 한 회차에 언어별로 나올 수 있는 문제 수입니다. 최소 목표는 그중 SQL 2 + C언어 1 + Java 1 + Python 2 = 코딩 6문제는 반드시 맞히자는 목표입니다. 코딩 6문제(30점) + 이론 6문제(30점) = 60점이 합격 커트라인입니다. 한 언어에 몰아서 공부하기보다 C·Java·Python·SQL을 골고루 준비하는 것이 안전합니다.
한 언어만 공부하면 왜 위험할까?
한 언어를 버리기에는 위험이 너무 큽니다. 최근 5회(25년 1회 ~ 26년 2회)만 봐도 C·Java·SQL은 각각 4문제까지 나온 적이 있고, 어느 언어가 많이 나올지는 미리 알 수 없습니다. 버린 언어에서 4문제가 나오면 남은 문제를 거의 다 맞혀야 합니다. 25년 2회는 코딩 9문제 중 C가 4문제였는데, C를 버렸다면 남은 5문제를 하나도 틀리지 않아야 목표를 채울 수 있었습니다. 게다가 최근 5회 코딩에는 매번 난이도 '상' 문제가 있었습니다. 한 언어를 버리면 어려운 문제까지 전부 맞혀야 하는 상황에 몰릴 수 있습니다.
Java 어떻게 공부해야 할까?

- Java 문제의 핵심은 OOP(객체지향)입니다. "상속 구조에서 어떤 메서드가 호출되는가", "오버로드 메서드 선택은 컴파일 시점 정적 타입1으로 결정된다" 같은 개념을 정확히 알아야 합니다.
- Java 코드에 익숙해져야 합니다. Java 코드를 보고 낯설지 않은 느낌을 받아야 합니다. 코드가 익숙해지려면 코드를 많이 봐야 합니다. 코드를 우리가 가장 열심히 보는 순간은 문제를 푸는 순간입니다.
- 그래서 문제 위주로 공부를 해야 합니다. 문제에 있는 Java 코드를 많이 보면서 이해가 되어야 합니다.
- 하지만 코드에 익숙하지 않다면 쌩 기초부터 차근차근 공부해야 합니다.
쌩기초 공부 범위
쌩기초 확인 문제 - 기출 19선
문제를 풀면서 모르더라도 정답을 내보세요. 그다음 풀이를 보면서 모르는 개념들을 링크를 따라가며 배워가세요! 가장 효율적인 방법입니다!
표는 쌩기초 공부 범위 순서대로 정렬했습니다. 위에서부터 차례로 풀면 방금 배운 항목을 바로 확인할 수 있습니다. 막히는 문제가 있다면 그 항목을 아직 제대로 모르는 것이니 해당 쌩기초 페이지로 돌아가세요.
| 기출 문제 | 난이도 | 문제 범위 |
|---|---|---|
| 20년 1회 문제 | 하 | 변수 선언, 반복문, 배열 |
| 22년 3회 문제 | 하 | 배열, 반복문, 메서드 |
| 21년 1회 문제 | 중 | 반복문, 조건문, 복합 대입 연산자 |
| 20년 3회 문제 | 중 | 반복문(while), 조건문, 나머지 연산자 |
| 22년 3회 문제 | 중 | 논리 연산자, 비교 연산자, 조건문 |
| 24년 2회 문제 | 중 | 논리 연산자, 반복문, 배열 |
| 24년 3회 문제 | 중 | 문자열 equals, 배열, 반복문, for-each문 |
| 22년 2회 문제 | 중 | 클래스와 객체, 생성자, 반복문 |
| 25년 3회 문제 | 하 | 상속, super |
| 24년 1회 문제 | 중 | 상속, super, 생성자 |
| 21년 2회 문제 | 중 | 상속, super, 오버라이딩 |
| 26년 2회 문제 | 중 | 상속, super, 오버라이딩, 생성자 |
| 26년 2회 문제 | 중 | 상속, 오버라이딩, 생성자 |
| 25년 1회 문제 | 중 | 오버로딩, 재귀, 기본 제공 클래스(Integer) |
| 21년 2회 문제 | 하 | static 메서드 |
| 23년 1회 문제 | 중 | static 변수, 후위 증가 연산자 |
| 23년 3회 문제 | 중 | static 메서드와 인스턴스 변수 |
| 26년 2회 문제 | 하 | 재귀, 조건문 |
| 23년 3회 문제 | 중 | 재귀, 조건문 |
2026년 3회 Java 출제 경향 핵심
2020년 1회부터 2026년 2회까지 Java 기출 59문제를 분석한 결과입니다.
Java는 OOP(객체지향) 중심입니다

C언어가 포인터·구조체 중심이라면, Java는 상속2·오버라이딩3·오버로딩4·인터페이스5 등 OOP 개념이 핵심입니다. 반복문이나 조건문 같은 단순 문법 문제는 25년 이후 거의 사라졌고, "상속 구조에서 어떤 메서드6가 호출되는가"를 묻는 OOP7 함정 문제가 주류입니다.
26년 2회에도 변함없이 나온 주제

상속·오버라이딩 실행 순서입니다. 26년 2회 Java 3문제 중 2문제가 상속·super8·오버라이딩·접근제어자9를 묻는 문제였습니다. (26년 2회 상속·super 문제, 26년 2회 접근제어자·오버라이딩 문제) 클래스10 구조·객체 초기화·호출될 메서드를 코드 하나로 한꺼번에 물을 수 있는 Java 고유의 형태라서 핵심 학습 범위입니다.
다만 같은 상속 문제라도 실행 형태를 나눠 준비해야 합니다. 형태에 따라 손으로 따라가야 할 단계가 다릅니다.
- 객체가 만들어지는 순서를 따라가는 문제: 생성자 체이닝11,
super, 접근제어자, 부모·자식 필드12와 직접 오버라이딩의 실행 순서를 추적합니다. 26년 2회 두 문제가 이 형태였습니다. - 선언 타입과 실제 객체 타입이 다른 문제:
Parent ref = new Child()처럼 선언은 부모 타입인데 실제 객체는 자식일 때, 어떤 메서드가 호출되는지 추적합니다. 이렇게 실제 객체 타입을 보고 호출할 메서드가 정해지는 것을 동적 바인딩이라고 합니다. 26년 2회 두 문제는 이 형태가 아니었으므로 별개의 실행 문제로 따로 연습하세요. (26년 1회 동적 바인딩 문제, 25년 2회 오버라이딩·static 문제)
26년 3회에 함께 대비할 주제

아래 주제는 OOP 실행 순서 한 축에 학습량을 모두 몰지 않기 위한 범위입니다.
- 재귀13: 호출을 기저 조건까지 펼친 뒤 반환값을 거꾸로 접어 올립니다. 상속과 엮이지 않고 단독으로 나오기도 하고, 배열·문자열·오버로딩과 결합되기도 하는 형태입니다. (26년 2회 재귀 문제)
- 오버로딩: 이름이 같은 메서드 중 어떤 이름·매개변수가 컴파일 시점에14 선택되는지 묻습니다. 호출할 메서드를 고른 뒤 실행 시점에 어떤 구현이 불리는지까지 2단계로 나눠 봐야 하는 문제도 있습니다. (26년 1회 오버로딩 문제)
- 문자열·배열·
static·예외·인터페이스: OOP 밖에서 독립 실행 문제로 나올 수 있는 축입니다.equals와==의 차이, 객체 배열의 참조15 변경,static16 공유 변수, 예외17가 발생했을 때의 실행 흐름처럼 대표 동작만이라도 확인해두세요.
압축 - 2026년 3회 Java 코딩 공부 범위

주제별 공부 범위로 이동
우선순위 표기 - 💯: 99.9%, ⭐️: 핵심, 🔥: 보조, 🤔: 후순위
1순위 - 핵심 범위
Java 문제를 준비할 때 가장 먼저 익힐 핵심 범위입니다.
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| OOP 실행 순서 | 💯 상속·오버라이딩 실행 순서 — 상속·다형성, super·생성자 체이닝, 접근제어자, 오버라이딩·동적 바인딩, 컴파일 시점·실행 시점 메서드 선택 |
2순위 - 우선 대비
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 오버로딩 | ⭐️메서드 오버로딩, ⭐️컴파일 시점 메서드 선택, 🔥오버로딩과 재귀 |
| 재귀 | ⭐️재귀 호출, 🔥오버로딩과 재귀 |
3순위 - 추가 대비
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 문자열 | 🔥equals·String Pool, 🔥문자열 연결·char 연산 |
| 배열·객체 참조 | 🔥객체 배열, 🤔클래스 참조 |
| static | 🤔static 변수·메서드, 🤔static 초기화 블록 |
| 예외·인터페이스 | 🤔예외처리, 🤔인터페이스 |
4순위 - 심화 추가 대비
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 연산자 | 🤔비트 연산자 |
| 희귀·확장 주제 | 🤔제네릭, 🤔람다식, 🤔추상 클래스, 🤔스레드, 🤔instanceof·안전 형변환, 🤔오토박싱·Integer 캐시, 🤔default 메서드, 🤔다중 default 충돌, 🤔열거형, 🤔String 불변성과 StringBuilder |
시험 합격을 위한 필수 학습 범위는 아닙니다. 1 ~ 3순위를 먼저 끝낸 다음, 시간 여유가 있을 때 대표 동작만 보강하세요.
Footnotes
-
정적 타입은 변수를 선언할 때 적은 타입입니다.
Parent ref = new Child()에서ref의 정적 타입은Parent이고, 이 타입만 보고 컴파일 시점에 오버로드가 결정됩니다. ↩ -
상속은 이미 만들어 둔 클래스의 기능을 그대로 물려받아 새 클래스를 만드는 것입니다. 물려주는 쪽을 부모, 물려받는 쪽을 자식이라고 부릅니다. ↩
-
오버로딩은 이름이 같은 메서드를 매개변수만 다르게 여러 개 만들어 두는 것입니다. 상속과는 관계가 없습니다. ↩
-
인터페이스는 "이런 메서드는 반드시 만들어라"라고 목록만 정해 두는 틀입니다.
implements로 이어받은 클래스가 그 내용을 채웁니다. ↩ -
OOP(객체지향 프로그래밍)는 데이터와 동작을 객체 단위로 묶어 프로그램을 만드는 방식입니다. 절차지향과 어떻게 다른지는 객체지향 vs 절차지향에서 다룹니다. ↩
-
super는 자식 클래스 안에서 부모 클래스 쪽을 가리키는 키워드입니다.super()는 부모 생성자를,super.메서드()는 부모 메서드를 호출합니다. ↩ -
접근제어자는
public,private처럼 다른 클래스에서 이 필드·메서드에 접근할 수 있는지를 정하는 키워드입니다. ↩ -
클래스는 객체를 찍어내는 설계도이고, 객체는 그 설계도로 실제로 만들어진 결과물입니다.
new로 객체를 만듭니다. ↩ -
생성자는 객체가 만들어질 때 자동으로 한 번 실행되는 코드입니다. 자식 생성자가 부모 생성자를 먼저 부르며 위로 이어지는 것을 생성자 체이닝이라고 합니다. ↩
-
재귀는 메서드가 자기 자신을 다시 호출하는 것입니다. 더 이상 호출하지 않고 멈추는 조건을 기저 조건이라고 합니다. ↩
-
컴파일 시점은 소스 코드를 실행 가능한 형태로 번역하는 단계, 실행 시점(런타임)은 번역 결과가 실제로 돌아가는 단계입니다. 둘의 차이는 컴파일과 런타임에서 다룹니다. ↩
-
참조는 객체가 있는 위치를 가리키는 값입니다. 변수에는 객체 자체가 아니라 참조가 들어 있어서, 배열 요소끼리 참조를 바꾸면 같은 자리가 다른 객체를 가리키게 됩니다. ↩
-
static이 붙은 변수·메서드는 객체마다 따로 생기지 않고 클래스에 하나만 만들어져, 모든 객체가 함께 씁니다. ↩
-
예외는 실행 도중에 생긴 오류 상황입니다.
try-catch로 잡으면 프로그램이 멈추지 않고catch블록으로 흐름이 넘어갑니다. ↩