2026년 2회 정보처리기사 실기는 비교적 평이한 난이도로 출제됐습니다. 복원된 20문항을 기준으로 살펴보면 SQL, Java, Python, C, 네트워크, 소프트웨어 공학 전반에서 고르게 문제가 나왔고, 특히 코드 추적과 서브넷 계산, 정규화 판단 문제가 당락을 가른 것으로 보입니다. 이번 글에서는 복원 문제의 핵심 풀이를 정리해 수험생이 어떤 부분에 집중해서 마무리해야 할지 짚어드리겠습니다.
2026년 2회 정보처리기사 실기, 출제 경향 간단히 보기
이번 시험은 기출 유형과 익숙한 개념이 많이 나와서 기출문제를 반복 학습한 수험생이라면 접근하기 수월했다는 평가가 있습니다. 다만 몇몇 문항은 개념을 정확히 이해하지 않으면 헷갈릴 수 있는 지점을 찔렀습니다.
가장 대표적인 것이 명세 기반 테스트 기법을 묻는 1번 문항입니다. 문제에서는 점수 구간(D, C, B, A)의 대표값으로 30, 75, 85, 95를 선택하고, 오류 구간에서는 -10과 110을 선택해 테스트하라고 제시했습니다. 여기서 핵심은 "경계값이 아니라 구간 내부의 대표값을 골랐다"는 점입니다. 이 조건만 정확히 읽으면 동치 분할이 정답이라는 걸 쉽게 떠올릴 수 있습니다.
경곗값 분석이었다면 0, 69, 70, 79, 80처럼 경계와 그 주변 값을 검사했을 텐데, 문제에서 대표값 하나씩만 선택했다고 명시했기 때문입니다. 이처럼 문제에서 주어진 조건을 꼼꼼히 따지는 습관이 중요했습니다.
코드 추적 문제, 어디까지 정확히 따라가야 했나
코드 추적 문제는 이번 실기에서도 빠지지 않았습니다. C, Java, Python이 골고루 출제됐는데, 공통적으로 메서드 호출 순서와 변수 값의 변화를 정확히 따라가는 능력이 필요했습니다.
Java 상속 문제(9번)를 예로 들어보겠습니다. B 클래스의 print() 메서드가 호출되면 내부에서 먼저 super.print()를 실행합니다. 이때 A 클래스의 필드 a 값이 10이므로 "10a"가 출력되고, 이어서 B 클래스의 필드 b 값과 문자열 "b"가 결합되어 "20b"가 출력됩니다. 여기서 출력 사이에 공백이나 줄바꿈이 없다는 조건을 놓치면 답이 틀려지니 주의해야 합니다.

| 구분 | 호출 순서 | 출력 결과 |
|---|---|---|
| A 클래스 | super.print() | 10a |
| B 클래스 | b + "b" | 20b |
C언어에서도 포인터와 배열의 관계를 묻는 문제가 나왔습니다. int arr[] 매개변수는 사실상 포인터로 처리되기 때문에 sizeof(arr)이 8이 되어 8/4=2가 되지만, int (*arr)[8]처럼 배열 포인터로 선언하면 배열 전체 크기인 32를 4로 나눠 8이 됩니다. 이런 세부 차이를 정리해두면 좋습니다.
Python 문제(13번)는 딕셔너리 순회와 조건문이 결합된 형태였습니다. 딕셔너리가 작성된 순서대로 순회한다는 가정이 문제에 명시되어 있었는데, 실제 Python 3.7 이후 버전에서는 입력 순서가 보장되므로 이 가정은 자연스럽습니다. 코드를 따라가며 어떤 키가 조건에 맞는지 하나씩 확인하는 과정이 필요했습니다.
SQL과 네트워크, 정답이 갈린 계산 문제들
SQL 문제는 JOIN, 서브쿼리, LIKE, 제약조건, 정규화까지 폭넓게 출제됐습니다. 특히 서브쿼리 문제(11번)는 상관 서브쿼리 구조를 이해해야 풀 수 있었습니다. 바깥쪽 A의 각 행에 대해 현재 A.x보다 작은 A2.id를 찾고, 그 id와 일치하는 B.y의 평균을 계산하는 방식이었는데, x=10일 때는 평균이 NULL이라 비교 결과가 참이 되지 않아 결국 COUNT 결과가 3이 됩니다.
RIGHT OUTER JOIN 문제(16번)도 헷갈리기 쉬웠습니다. 오른쪽 테이블 B의 모든 행이 남기 때문에 B의 id=3, id=4는 A에 대응하는 행이 없어 조인 결과에서 A.id가 NULL이 됩니다. 이때 WHERE 조건을 만족하는 행이 몇 개인지 세는 문제였습니다.
네트워크에서는 서브넷 계산 문제가 나왔습니다. 10.0.0.1/27 네트워크를 2개로 나누면 호스트 비트에서 1비트를 빌려 /28이 된다는 걸 묻는 문제(8번)와, 세 개의 네트워크에 연결된 장비의 IP 주소를 구하는 문제(10번)가 있었습니다.

| 네트워크 | 프리픽스 | 사용 가능한 IP 범위 |
|---|---|---|
| A | /24 | 192.168.35.1 ~ 192.168.35.254 |
| B | /22 | 129.200.8.1 ~ 129.200.11.254 |
| C | /24 | 192.168.36.1 ~ 192.168.36.254 |
B 네트워크의 경우 /22를 서브넷 마스크로 바꾸면 255.255.252.0이 되는데, 세 번째 옥텟이 4씩 묶이므로 129.200.8.0 ~ 129.200.11.255 범위가 됩니다. 네트워크 주소와 브로드캐스트 주소, 이미 제시된 주소를 제외한 나머지 중 아무거나 답으로 쓰면 되므로 129.200.8.249처럼 조건을 만족하는 주소를 고르면 됩니다.
소프트웨어 공학 용어, 암기보다 이해가 중요한 문제들
결합도와 테스트 기법, 디자인 패턴, 해시 함수, 제약조건, 정규화까지 소프트웨어 공학 용어 문제도 빠짐없이 나왔습니다. 이 중에서도 정규화 문제(20번)는 가장 까다로웠을 것 같습니다.
(고객아이디, 강좌명)이 기본키인 [강좌신청] 릴레이션에서 "한 강사가 하나의 강좌를 담당한다"는 업무 규칙이 주어졌을 때, 강사번호 → 강좌명이 성립합니다. 후보키는 (고객아이디, 강좌명)과 (고객아이디, 강사번호) 두 개입니다. 모든 값이 원자값이고 부분 함수 종속이 없으므로 제2정규형은 만족합니다. 여기서 강사번호 → 강좌명의 결정자인 강사번호는 후보키가 아니므로 BCNF는 아니지만, 종속되는 강좌명이 후보키를 구성하는 주요 속성이므로 제3정규형 조건은 충족합니다.

| 판단 기준 | 충족 여부 |
|---|---|
| 제2정규형 | 충족 |
| 제3정규형 | 충족 |
| BCNF | 미충족 |
결국 가장 높은 정규형은 제3정규형입니다. 이런 문제는 용어만 외워서는 풀기 어렵고, 함수 종속 관계를 직접 따져봐야 합니다.
디자인 패턴 문제(15번)는 "구체적인 클래스를 명시하지 않고 서로 관련되거나 의존적인 객체들의 집합을 생성하기 위한 인터페이스"라는 설명이 나왔는데, 이는 Abstract Factory 패턴입니다. 관련 제품군을 한꺼번에 생성하는 특징을 기억해두면 됩니다.
실기 합격을 위한 마무리 학습 전략
복원 문제를 기준으로 보면 이번 시험은 특정 과목에 치우치지 않고 전 영역에서 기본기를 확인하는 데 초점을 맞췄습니다. 따라서 마무리 학습은 다음과 같은 순서로 진행하는 것이 좋습니다.
- 코드 추적 문제는 직접 손으로 따라가며 풀이 과정을 쓰는 연습을 반복하세요. 눈으로 읽는 것만으로는 호출 순서나 변수 변화를 놓치기 쉽습니다.
- 서브넷 계산은 /24, /22, /27처럼 다양한 프리픽스 길이를 직접 변환해보면서 네트워크 범위를 빠르게 구하는 훈련이 필요합니다.
- 정규화 문제는 함수 종속 관계를 먼저 파악한 뒤 후보키를 찾고, 각 정규형 조건을 순서대로 적용하는 습관을 들이세요.
- SQL은 JOIN 종류별 결과 행 수를 예측하는 연습과 상관 서브쿼리 동작 방식을 이해하는 데 시간을 투자하세요.
Q. 이번 시험에서 특히 어려웠던 부분은 어디였나요?
복원 문제 기준으로는 정규화 판단 문제와 서브넷 계산 문제가 상대적으로 까다로웠을 것입니다. 두 유형 모두 개념을 이해하지 않으면 단순 암기로는 풀기 어렵기 때문입니다. 실제 시험 합격률이 발표되면 난이도 평도 함께 확인할 수 있을 것으로 보입니다.
Q. 답안 작성 시 단위나 약어 표기는 어떻게 해야 하나요?
문제에서 단위가 이미 제시된 경우 숫자만 쓰는 것이 안전합니다. 예를 들어 평균 대기시간 문제에서 "ms"가 답안 칸 뒤에 인쇄되어 있었다면 6.5만 쓰면 됩니다. 약어 문제는 OSPF처럼 대문자로 쓰는 편이 채점상 안전합니다.
Q. 기출문제만 반복해서 풀어도 충분할까요?
이번 시험 출제 경향을 보면 기출에서 다뤘던 개념이 반복해서 나왔습니다. 다만 같은 개념도 문제에서 주는 조건을 다르게 하면 얼마든지 새로운 형태로 출제될 수 있으므로, 기출을 풀 때는 단순히 답을 맞히는 데 그치지 말고 왜 그 답이 나왔는지 풀이 과정을 꼼꼼히 정리해두는 것이 좋습니다.