정보처리기사 실기 코딩 압축 공부법 - Python편
요약
2026년 3회 정보처리기사 실기 Python 코딩 출제 경향 분석 기반 압축 공부법입니다. 26년 2회 실제 출제 내용을 반영한 학습 우선순위와 문제 범위를 안내합니다.
다음과 같은 분들을 위한 정보처리기사 실기 Python 코딩 공부법을 소개하는 글입니다.
- 코딩을 처음 접하는 코린이, 비전공자다.
- 어디서부터 공부해야 할지 모르겠다.
- 중요한 주제부터 효율적으로 공부하고 싶다.
코딩 문제를 몇 개 맞춰야 할까?
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회 코딩에는 매번 난이도 '상' 문제가 있었습니다. 한 언어를 버리면 어려운 문제까지 전부 맞혀야 하는 상황에 몰릴 수 있습니다.
Python 어떻게 공부해야 할까?

- Python 문제의 핵심은 "자료형(리스트/문자열/딕셔너리) + 내장함수 + 사용자 정의 함수"의 결합입니다. 단편 문법보다 이 세 축이 어떻게 맞물리는지 익혀야 합니다.
- Python 코드에 익숙해져야 합니다. Python 코드를 보고 낯설지 않은 느낌을 받아야 합니다. 코드가 익숙해지려면 코드를 많이 봐야 합니다. 코드를 우리가 가장 열심히 보는 순간은 문제를 푸는 순간입니다.
- 그래서 문제 위주로 공부를 해야 합니다. 문제에 있는 Python 코드를 많이 보면서 이해가 되어야 합니다.
- 하지만 코드에 익숙하지 않다면 쌩 기초부터 차근차근 공부해야 합니다.
쌩기초 공부 범위
쌩기초 확인 문제 - 기출 15선
문제를 풀면서 모르더라도 정답을 내보세요. 그다음 풀이를 보면서 모르는 개념들을 링크를 따라가며 배워가세요! 가장 효율적인 방법입니다!
| 기출 문제 | 난이도 | 문제 범위 |
|---|---|---|
| 21년 3회 문제 | 하 | 변수 선언, 비교 연산자 ==와 대입 =의 차이 |
| 22년 1회 문제 | 하 | 리스트 메서드 extend·pop·reverse |
| 20년 2회 문제 | 하 | 집합 메서드 add·remove·update |
| 23년 3회 문제 | 하 | 문자열 split(), input() |
| 23년 2회 문제 | 하 | 문자열 슬라이싱, 문자열 연결 |
| 26년 2회 문제 | 하 | 문자열 슬라이싱·인덱싱, 인덱스 세기 |
| 24년 1회 문제 | 하 | 반복문(for), 문자열 인덱싱, 문자열 누적 대입 |
| 21년 1회 문제 | 하 | 클래스 속성, 반복문(for), 문자열 인덱싱 |
| 26년 2회 문제 | 하 | 딕셔너리 items() 순회, 문자열 인덱싱, 복합 대입 += |
| 26년 1회 문제 | 하 | 내장함수 range()·list(), 리스트 스텝 슬라이싱, print(end=) |
| 22년 1회 문제 | 하 | 사용자 정의 함수(기본 매개변수), print()의 공백 규칙 |
| 20년 4회 문제 | 중 | 2차원 리스트, 중첩 반복문, print(end=) |
| 22년 2회 문제 | 중 | 문자열 슬라이싱, % 포맷팅, 문자열 연결 |
| 24년 3회 문제 | 중 | 사용자 정의 함수, 조건문 elif, 내장함수 type()·len(), 자료형 |
| 24년 2회 문제 | 중 | 사용자 정의 함수, 반복문과 range()·len(), 문자열 슬라이싱, f-string |
2026년 3회 Python 출제 경향 핵심
2020년 2회부터 2026년 2회까지 Python 기출 23문제를 분석한 결과입니다.
26년 2회에도 Python은 2문제가 출제됐습니다

- 26년 1회는 3문제, 26년 2회는 2문제였고 두 문제 모두 난이도 '하'였습니다.
- 대신 한 문제에 여러 개념이 섞입니다. 26년 2회 딕셔너리 items() 순회 문제는 딕셔너리1만 알면 풀리는 문제가 아니라 문자열 인덱싱2과 문자열 누적을 함께 따라가야 했고, 26년 1회 난이도 '상' 문제에는 얕은 복사3·컴프리헨션4·제너레이터5·
def6까지 8개 개념이 한 문제에 결합됐습니다. - 26년 1회에는
range,join, 얕은 복사[:], 리스트7 연결+=, 제너레이터 표현식처럼 그전까지 기출에 나오지 않았던 문법이 한 회차에 함께 등장했습니다. 문법 하나를 좁게 외우는 방식으로는 대응하기 어렵습니다.
26년 2회에도 변함없이 나온 주제

- 문자열 선택·조립: 기출 23문제 중 9문제가 문자열을 주요 주제로 다뤘고, 26년 2회
두 문제도 모두 문자열에서 값을 골라 답을 만들었습니다. 26년 1회 3문제에는
슬라이싱(
[::-1],[::-2],[:])8이 들어 있었고, 26년 2회는 한 문제가 슬라이싱, 다른 한 문제가 단일 인덱싱을 썼습니다. 그래서 슬라이싱 하나만 익히기보다 인덱싱·슬라이싱·split으로 값을 고르고,+·join으로 문자열을 조립하는 전체 흐름을 최우선으로 준비합니다.
26년 3회에 새로 대비할 주제

아래 주제는 문자열 문제와 자주 결합되어 함께 익혀두면 좋은 범위입니다.
- 리스트: Python의 기본 자료형9이고 슬라이싱·함수·반복과 자주 결합됩니다. 기본
메서드(
append/pop)10와 2차원 리스트11를 우선 익히고, 26년 1회에서 실제로 결합됐던 얕은 복사[:]도 함께 봅니다. 제너레이터 표현식은 여력이 있을 때 추가로 대비합니다. 문자열과 함께 1순위로 준비합니다. - 내장함수12 집계 (
len·sum): 리스트를 순회하며 값을 집계하는 기본 도구라sum(x[::2])처럼 다른 개념과 결합해 대비합니다. enumerate: 2차원 리스트의 인덱스와 값을 함께 순회하는 결합 형태를 대비합니다.- 사용자 정의 함수와 클래스13: 복합 문제에서 실행 순서와 객체 상태를 묻는 재료가
됩니다. 기본 매개변수·반환값14과
__init__+ 인스턴스 메서드의 기본 흐름을 익힙니다. - 람다식15:
sorted(key=lambda)처럼 짧은 문제 형태만 4순위에서 대비합니다. - 예외 처리·파일 I/O·정규표현식·데코레이터: 기출 23문제에서 주요 문제 형태로 나온 적이 없어 대비 범위를 좁힐 근거가 부족합니다. 그래서 압축 범위에는 넣지 않습니다.
압축 - 2026년 3회 Python 코딩 공부 범위

주제별 공부 범위로 이동
학습 우선순위 표시 - ⭐️: 핵심, 🔥: 보조, 🤔: 후순위
1순위 - 최우선
문자열의 값을 선택·조립하고, 리스트를 만들고 바꾸는 흐름을 먼저 연습하세요.
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 문자열 선택·조립 | ⭐️인덱싱, ⭐️슬라이싱, ⭐️split(), ⭐️join() |
| 리스트 변형 | ⭐️리스트 기초·메서드, 🔥리스트 슬라이싱, 🔥2차원 리스트, 🔥리스트 연결, 🔥얕은 복사·변경 가능성 |
2순위 - 우선 학습
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 딕셔너리 조회·갱신 | 🔥키 조회·값 수정, 🔥빈도 카운팅 |
반복문/조건문은 "도구"입니다: 그 자체로 주인공이 되진 않지만 거의 모든 Python 문제에 등장하므로 기본기로 반드시 익혀두세요.
3순위 - 추가 대비
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 사용자 정의 함수 | 🔥함수 정의와 호출, 🔥기본 매개변수 |
| 내장함수 집계 | 🔥len과 sum 함수, 🔥range, 🔥enumerate |
| 클래스 | 🔥__init__ 생성자, 🔥인스턴스 메서드 |
| 집합 연산 | 🔥집합 연산, 🤔집합 메서드 |
| f-string 포맷 | 🔥f-string 포맷 지정자 심화 |
| 제너레이터 / 컴프리헨션 | 🤔제너레이터 표현식, 🤔리스트 컴프리헨션 |
| 재귀함수 | 🤔재귀 함수, 🤔피보나치 예제 |
4순위 - 후순위
| 주요항목 | 예상 문제 범위(클릭시 이동) |
|---|---|
| 딕셔너리 순회 | 🤔keys·values·items 순회 |
| 람다식 + sorted | 🤔sorted + key=lambda, 🤔lambda 표현식 |
| 고급 클래스 | 🤔클래스 상속·super |
| 비트 연산 | 🤔비트 시프트 연산자 |
| 기타 확장 문법 | 🤔 예외 처리·파일 I/O·정규표현식·데코레이터 |
Footnotes
-
딕셔너리는
{"키": 값}형태로 이름표(키)에 값을 짝지어 저장하는 자료형입니다. 만들고 꺼내는 방법은 딕셔너리 기초에서 다룹니다. ↩ -
인덱싱은
s[0]처럼 순서 번호로 값 하나를 꺼내는 것이고, 번호는 0부터 셉니다. 뒤에서 세는 음수 번호까지 문자열 인덱싱에 정리돼 있습니다. ↩ -
얕은 복사는 바깥 리스트만 새로 만들고 안쪽 리스트는 원본과 그대로 함께 쓰는 복사입니다. 그래서 한쪽을 바꾸면 다른 쪽도 같이 바뀌는데, 그 과정은 얕은 복사란?에서 확인하세요. ↩
-
컴프리헨션은
[x*2 for x in lst]처럼 반복문을 한 줄로 줄여 리스트나 딕셔너리를 만드는 문법입니다. 리스트 컴프리헨션부터 보면 됩니다. ↩ -
제너레이터는 값을 미리 다 만들어 두지 않고 필요할 때 하나씩 꺼내주는 도구입니다. 시험에는 소괄호를 쓴 제너레이터 표현식 형태로 주로 나옵니다. ↩
-
def는 사용자 정의 함수, 즉 내가 직접 만들어 쓰는 함수를 선언할 때 붙이는 키워드입니다. 만드는 법과 호출 시 실행 흐름은 함수에서 익히세요. ↩ -
리스트는
[1, 2, 3]처럼 여러 값을 순서대로 담는 자료형으로, Python에서는 배열 역할을 대신합니다. 리스트 기초에서 만들기와 인덱스 접근을 다룹니다. ↩ -
슬라이싱은
s[1:4],s[::-1]처럼 시작·끝·간격을 지정해 여러 값을 한 번에 잘라내는 문법입니다. 간격과 역순 규칙은 문자열 슬라이싱에 정리돼 있습니다. ↩ -
자료형은 값의 종류(정수·실수·문자열·리스트 등)를 뜻하고, 종류에 따라 쓸 수 있는 연산과 함수가 달라집니다. Python의 자료형은 자료형이란?에서 한 번에 볼 수 있습니다. ↩
-
메서드는
x.append(4)처럼 값 뒤에 점(.)을 찍어 부르는, 그 자료형 전용 함수입니다. 시험에 나오는 것들은 리스트 주요 메서드에 모여 있습니다. ↩ -
2차원 리스트는 리스트 안에 리스트를 넣어 표(행·열)처럼 쓰는 형태로,
x[1][2]처럼 번호를 두 번 붙여 값을 꺼냅니다. 순회 방법은 2차원 리스트에서 다룹니다. ↩ -
내장함수는
len,sum처럼 Python에 이미 만들어져 있어 선언 없이 바로 쓸 수 있는 함수입니다. 시험에 나오는 것들은 기본 제공 함수에 모아 두었습니다. ↩ -
클래스는 데이터(속성)와 기능(메서드)을 하나로 묶은 설계도이고, 그 설계도로 찍어낸 실제 값을 객체(인스턴스)라고 합니다. 기본 형태는 클래스란?에서 익히세요. ↩
-
매개변수는 함수가 받아서 쓰는 입력값, 반환값은 함수가 계산을 끝내고 돌려주는 결과입니다. 기본 매개변수는 값을 넘기지 않았을 때 쓰일 기본값을 미리 정해둔 매개변수로, 함수에서 함께 다룹니다. ↩
-
람다식은
lambda x: x * 2처럼 이름 없이 한 줄로 만드는 간단한 함수입니다. 일반 함수와의 차이는 lambda 표현식이란?에서 비교합니다. ↩