2026년 정보처리기사 실기, 이 5문제만 알면 합격한다 (복원 문제 공개)
정보처리기사 실기를 앞둔 수험생이라면 "어떤 유형이 나올지", "핵심은 무엇인지"가 가장 궁금할 것입니다. 2026년 1회·2회 복원 문제를 분석해 보면, 데이터베이스 SQL, 네트워크 주소 계산, 소프트웨어 공학 용어, 보안 공격 기법, 프로그래밍 언어 코드 해석이 빠지지 않고 등장합니다. 특히 5-6문제는 거의 동일한 패턴으로 반복 출제되므로, 이 문제들만 철저히 대비해도 합격선(60점)을 넘길 수 있습니다. 아래 5개 유형을 실제 복원 문제와 함께 정리했습니다.
정보처리기사 실기, 반드시 맞춰야 할 5가지 유형
1. SQL 문 실행 결과 COUNT, DISTINCT, JOIN의 정확한 이해
실기에서 가장 자주 틀리는 부분 중 하나가 SQL 실행 후 반환되는 행(Row)의 수입니다. 단순히 COUNT(*)만 물어보는 것이 아니라, DISTINCT와 WHERE 조건이 결합된 복합 문제가 출제됩니다.
2026년 2회 복원 문제를 보면 이런 식입니다:
STUDENT 테이블에는 컴퓨터과 50명, 인터넷과 100명, 사무자동화과 50명이 저장되어 있다.
SELECT DEPT FROM STUDENT;SELECT DISTINCT DEPT FROM STUDENT;SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '컴퓨터과';
- 첫 번째는 전체 행 수인 200을 반환합니다.
- 두 번째는 중복을 제거한 학과명, 즉 3행을 반환합니다.
- 세 번째가 까다롭습니다.
WHERE DEPT = '컴퓨터과'조건에 해당하는 행은 50개이지만,COUNT(DISTINCT DEPT)는 컴퓨터과라는 값 하나만 세므로 답은 1입니다.
이처럼 조건과 집계 함수가 함께 나오면 반드시 "어떤 테이블에서, 어떤 조건으로, 무엇을 세는가"를 단계별로 따져야 합니다. JOIN과 서브쿼리가 포함된 문제(예: SELECT COUNT(*) FROM employee e JOIN dept d ON e.dep_id = d.dept_id WHERE d.budget > (SELECT AVG(budget) FROM dept))도 자주 나오니, 서브쿼리 결과를 먼저 계산한 후 메인 쿼리를 해석하는 연습이 필요합니다.
2. 서브넷 마스크와 CIDR 표기법 255.255.254.0은 무슨 뜻일까
네트워크 문제는 계산 자체는 어렵지 않지만, 개념을 정확히 모르면 틀리기 쉽습니다. 2026년 2회 복원 문제에서는 다음과 같은 조건이 나왔습니다.
호스트 a: 192.168.11.20
호스트 b: 192.168.12.200
서브넷 마스크: 255.255.254.0각 호스트가 속한 네트워크 주소를 CIDR 표기법으로 쓰시오.
핵심은 서브넷 마스크 255.255.254.0을 2진수로 바꾸면 11111111.11111111.11111110.00000000이라는 점입니다. 즉, 세 번째 옥텟의 마지막 1비트(128 자리)가 네트워크 부분입니다. 이 말인즉, 192.168.11.0과 192.168.12.0이 같은 네트워크에 속할 수도, 아닐 수도 있다는 뜻이죠.
계산 방법은 IP 주소와 서브넷 마스크를 AND 연산하는 것입니다.
- 호스트 a(192.168.11.20): 세 번째 옥텟 11을 2진수로 바꾸면
00001011. 여기에11111110을 AND 하면00001010= 10. 따라서 네트워크 주소는 192.168.10.0/23. - 호스트 b(192.168.12.200): 세 번째 옥텟 12는
00001100. AND 연산 결과00001100= 12. 네트워크 주소는 192.168.12.0/23.
두 호스트는 서로 다른 네트워크에 속합니다. 이 문제를 풀 때 자주 하는 실수는 "255.255.254.0은 /23이니까 세 번째 옥텟이 짝수로 시작하는 네트워크"라고만 외우고, 실제 AND 연산을 생략하는 것입니다. 반드시 직접 계산하는 습관을 들이세요.
3. 디자인 패턴과 응집도 용어만 외우면 점수가 되는 파트
소프트웨어 공학 파트는 암기만으로도 점수를 얻을 수 있는 구간입니다. 2026년 2회 복원 문제에서는 디자인 패턴 2가지와 응집도 유형 3가지가 출제되었습니다.
디자인 패턴 문제는 다음과 같은 설명이 주어집니다.
( ㄱ ) 패턴은 기능의 클래스 계층과 구현의 클래스 계층을 연결
( ㄴ ) 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 자동으로 통보
- (ㄱ)은 Bridge 패턴입니다. 기능과 구현을 분리하여 각각 독립적으로 확장할 수 있도록 만드는 구조 패턴이죠.
- (ㄴ)은 Observer 패턴입니다. 상태 변화를 관찰하는 객체들이 통보를 받는 구조로, 이벤트 처리 시스템에서 자주 사용됩니다.
응집도 문제는 이런 식입니다.
( 1 ) 모듈이 다수의 관련 기능을 가질 때, 구성요소들이 그 기능을 순차적으로 수행하는 경우
( 2 ) 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 활동들이 모여 있는 경우
( 3 ) 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
- (1)은 순차적 응집도(Sequential Cohesion)
- (2)는 교환적 응집도(Communicational Cohesion). 같은 데이터를 다루는 기능들이 모여 있을 때를 말합니다.
- (3)은 기능적 응집도(Functional Cohesion). 가장 이상적인 응집도로, 하나의 모듈이 하나의 기능만 수행합니다.
응집도는 높은 순서(기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적)를 함께 외워두면 어떤 문제가 나와도 대응할 수 있습니다.
4. 보안 공격 기법 심볼릭 링크, 워터링홀, 레이스 컨디션
보안 파트는 실제 사례와 절차를 연결하는 문제가 주를 이룹니다. 2026년 2회 복원 문제에서는 다음 두 가지가 나왔습니다.
첫 번째 공격 설명:
원본 데이터 파일은 별도로 존재하며, 공격자는 해당 파일의 경로를 가리키는 특수 파일을 생성한다. 프로그램이 임시 파일을 생성하는 순간을 틈타 해당 임시 파일을 미리 준비한 특수 파일로 교체한다.
이것은 심볼릭 링크 공격(Symbolic Link Attack)입니다. 유닉스/리눅스 시스템에서 임시 파일 생성 시점을 노려 심볼릭 링크(바로가기)로 실제 파일을 덮어쓰거나 접근 권한을 우회하는 기법이죠.
두 번째 공격 설명:
공격자는 목표 대상이 자주 방문하는 합법적인 웹사이트에 악성코드를 삽입한다. 피해자가 해당 사이트에 접속하는 순간 악성 프로그램이 자동으로 설치되도록 유도한다.
이것은 워터링홀 공격(Watering Hole Attack)입니다. 물웅덩이(watering hole)에 먹잇감이 찾아오길 기다린다는 의미로, 특정 조직이나 개인이 자주 방문하는 사이트를 미리 감염시켜 공격합니다.
이 외에도 레이스 컨디션(Race Condition) 공격도 자주 나옵니다. 두 개 이상의 프로세스가 동시에 자원에 접근할 때 발생하는 타이밍 차이를 노리는 기법으로, 임시 파일 생성과 관련된 문제에서 심볼릭 링크와 함께 출제되는 경우가 많습니다.
5. C, Java, Python 코드 해석 출력값 예측 문제의 공통 패턴
프로그래밍 언어 문제는 문법보다 로직 흐름을 이해하는 것이 중요합니다. 복원 문제에서 자주 보이는 패턴은 크게 세 가지입니다.
첫째, 반복문과 조건문의 중첩.
C언어 문제에서는 보통 for문 안에 if문이 있고, break나 continue가 언제 실행되는지 묻습니다. 예를 들어 for(i=0; i<10; i++) { if(i%3==0) continue; sum += i; } 같은 코드에서 sum의 최종 값을 구하는 식이죠.
둘째, Java의 상속과 오버라이딩.
2026년 문제에서는 부모 클래스와 자식 클래스가 있고, 각각 같은 이름의 메서드를 가지고 있을 때 객체 생성 방식에 따라 어떤 메서드가 호출되는지 묻습니다. 핵심은 "동적 바인딩"입니다. 부모 타입 변수로 자식 객체를 참조하면, 오버라이딩된 자식 메서드가 실행된다는 점을 기억하세요.
셋째, 파이썬의 문자열 처리와 슬라이싱.
파이썬 문제는 input()으로 받은 문자열을 인덱싱하거나 슬라이싱해서 출력하는 유형이 많습니다. 예를 들어 입력값이 "HumanDev"일 때 print(input()[::-1]) 같은 코드는 문자열을 뒤집어 출력합니다. split(), join(), len() 정도만 숙지해도 대부분 해결됩니다.
코드 문제를 풀 때는 직접 손으로 따라 그리면서 변수 값의 변화를 기록하는 습관이 가장 효과적입니다. 머릿속으로만 풀면 실수가 나기 쉽습니다.
Q. 정보처리기사 실기에서 SQL 문제가 가장 어려운데, 어떤 부분을 더 공부해야 하나요?
A. GROUP BY와 HAVING 절의 차이, JOIN 시 NULL 값 처리, 서브쿼리 결과가 단일 행인지 다중 행인지에 따른 비교 연산자 사용을 집중적으로 익히세요. 특히 IN, EXISTS, ANY, ALL의 차이는 실전에서 자주 헷갈리는 포인트입니다.
Q. CIDR 표기법 문제에서 서브넷 마스크가 255.255.255.192처럼 불규칙할 때도 계산해야 하나요?
A. 네, 그런 문제도 출제됩니다. 2진수 변환과 AND 연산은 손으로 직접 할 수 있을 정도로 연습해야 합니다. 255.255.255.192는 /26이며, 네트워크 주소가 64개 단위로 나뉜다는 특징을 이해하면 계산이 훨씬 빨라집니다.
Q. 보안 문제에서 '심볼릭 링크'와 '레이스 컨디션'은 어떻게 구분하나요?
A. 심볼릭 링크는 파일 경로를 속이는 기법이고, 레이스 컨디션은 실행 타이밍을 속이는 기법입니다. 두 가지가 결합된 문제도 나올 수 있으니, 각각의 절차를 설명할 수 있을 정도로 정리해 두세요.
Q. 디자인 패턴은 몇 개나 외워야 할까요?
A. GoF 패턴 23개를 모두 외울 필요는 없습니다. 실기에서는 생성 패턴: Singleton, Factory Method, Abstract Factory, 구조 패턴: Adapter, Bridge, Decorator, 행위 패턴: Observer, Strategy, Template Method가 가장 자주 등장합니다. 각 패턴의 목적과 예시 코드 한 줄씩만 연결할 수 있으면 충분합니다.