2026 정보처리기사 필기 시험 모의고사 : 4과목: 프로그래밍 언어 활용 고빈도 예상문제

제4과목: 프로그래밍 언어 활용

2026년 정보처리기사 필기시험 대비 최빈출 예상문제 (문항 61 ~ 80)

문항 61. [프로그래밍 언어 (C 표준 라이브러리)]

문제: C 언어 프로그래밍에서 동적 메모리 할당(malloc), 해제(free), 난수 생성(rand), 데이터 타입 변환 기능들을 제공하는 표준 라이브러리 헤더 파일은?

① stdio.h

② string.h

③ math.h

④ stdlib.h

정답: ④

해설: <stdlib.h>(Standard Library)는 C언어에서 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공하는 표준 라이브러리 헤더 파일입니다. 운영체제와의 상호작용 및 메모리 제어에 필수적인 인터페이스를 제공합니다.

문항 62. [운영체제 동기화 (세마포어)]

문제: 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하게 함으로써 임계 구역(Critical Section)의 상호 배제를 보장하는 다익스트라(Dijkstra)의 동기화 기법은?

① 세마포어(Semaphore)

② 모니터(Monitor)

③ 컨텍스트 스위칭

④ 페이징

정답: ①

해설: 세마포어는 정수 변수와 원자적 연산인 P연산(Wait, 감소)과 V연산(Signal, 증가)을 사용하여 스레드 간의 경쟁 상태를 예방하고 순서를 제어하는 동기화 기법입니다.[1]

문항 63. [가상 메모리 관리 (페이징)]

문제: 프로세스의 논리적 메모리를 동일한 크기의 고정된 단위(페이지)로 나누어 물리적 메모리의 프레임에 적재하는 방식으로, 외부 단편화는 해결하나 내부 단편화가 발생할 수 있는 기법은?

① 세그먼테이션

② 페이징(Paging)

③ 스와핑

④ 오버레이

정답: ②

해설: 페이징 기법은 메모리를 고정된 크기로 나누어 외부 단편화를 해결하지만, 프로세스의 크기가 페이지 크기의 배수가 아닐 경우 마지막 페이지에 사용되지 않는 잉여 공간(내부 단편화)이 발생하게 됩니다.[1]

문항 64. [메모리 참조 특성 (구역성)]

문제: 프로그램이 실행되는 동안 메모리의 특정 영역만을 집중적으로 참조하는 경향으로, 시간적 구역성과 공간적 구역성으로 나뉘며 캐시 메모리와 가상 메모리 설계의 근본 바탕이 되는 원리는?

① 스래싱(Thrashing)

② 구역성(Locality)

③ 워킹 셋

④ 페이지 부재

정답: ②

해설: 구역성(Locality)의 원리에 따라 한 번 참조된 데이터나 그 주변의 데이터가 곧 다시 사용될 확률이 높으므로, 운영체제는 페이지 교체 알고리즘에서 이러한 통계적 확률을 이용합니다.[1]

문항 65.

문제: 페이지 부재(Page Fault) 발생 시, 물리적 메모리에 적재된 페이지 중에서 가장 오랫동안 참조되지 않은(가장 예전에 사용된) 페이지를 희생양으로 선택하여 교체하는 알고리즘은?

① FIFO

② LFU

③ LRU(Least Recently Used)

④ OPT

정답: ③

해설: LRU 알고리즘은 시간 구역성에 가장 충실한 방식으로, 최근에 가장 적게 사용된(오랫동안 사용되지 않은) 페이지를 교체하여 메모리 효율성을 극대화합니다.[1]

문항 66. [CPU 스케줄링 (비선점형)]

문제: 준비 큐에 도착한 순서대로 CPU를 할당하며, 일단 CPU를 점유하면 작업이 끝날 때까지 반환하지 않아 긴 프로세스가 짧은 프로세스를 무한정 대기하게 만드는 스케줄링 기법은?

① SJF

② Round Robin

③ FCFS (First Come First Served)

④ SRT

정답: ③

해설: FCFS는 가장 단순한 공평성을 제공하는 비선점형 스케줄링 방식이지만, 먼저 도착한 프로세스의 처리 시간이 길 경우 뒤에 도착한 프로세스들의 대기 시간이 길어지는 호위 효과(Convoy Effect)가 발생합니다.

문항 67.

문제: OSI 모델에서 송수신 측 간의 관련성을 유지하고 대화(회화) 제어를 담당하며, 데이터 교환 관리 및 동기점을 삽입하여 오류 발생 시 회복을 돕는 계층은?

① 네트워크 계층

② 전송 계층

③ 세션 계층(Session Layer)

④ 표현 계층

정답: ③

해설: 세션 계층은 논리적 연결의 수립, 유지, 종료를 책임지며, 대화 구성 및 동기 제어 기능을 수행하여 응용 프로그램 간의 원활한 통신을 돕습니다.[2]

문항 68. [네트워크 장비 및 기능 (라우터)]

문제: OSI 3계층(네트워크 계층)에서 동작하며, 송신지에서 목적지까지 데이터를 가장 빠르고 안전한 최적의 경로로 전송(Routing)하기 위해 경로 정보를 관리하는 장비는?

① 리피터

② 브리지

③ 스위치

④ 라우터(Router)

정답: ④

해설: 라우터는 패킷의 IP 주소를 분석하여 자신의 라우팅 테이블과 대조하고, 다른 네트워크 대역으로 패킷을 포워딩하는 인터넷 인프라의 3계층 핵심 결절점 장비입니다.[1]

문항 69.

문제: 링크 상태(Link State) 알고리즘을 사용하며, 네트워크 토폴로지에 변화가 발생했을 때만 해당 정보를 전체 라우터에 플러딩(Flooding)하여 빠른 수렴 속도를 보장하는 대규모 망 프로토콜은?

① RIP

② BGP

③ OSPF

④ IGRP

정답: ③

해설: OSPF(Open Shortest Path First)는 링크의 상태 변화가 발생할 때만 정보를 공유하여, 기존 거리 벡터 알고리즘 기반인 RIP의 홉(Hop) 수 제한 등 치명적 단점을 해결한 프로토콜입니다.[1]

문항 70.

문제: TCP/IP 환경의 전송 계층에서 동작하며, 연결을 수립하지 않고 수신 여부도 확인하지 않아 신뢰성은 낮지만, 오버헤드가 적어 DNS나 실시간 스트리밍 서비스에 적합한 프로토콜은?

① ICMP

② TCP

③ UDP

④ ARP

정답: ③

해설: UDP(User Datagram Protocol)는 패킷의 순서 보장이나 혼잡 제어를 무시하고 데이터를 빠르게 전송하는 비연결형 서비스로, 실시간 통신망에서 TCP를 효과적으로 보완합니다.

문항 71.

문제: IPv4 주소 체계 중 첫 두 비트가 ’10’으로 시작(십진수 128~191 범위)하며, 네트워크 ID와 호스트 ID가 각각 16비트를 점유하여 중간 규모 이상의 네트워크에 할당되는 클래스는?

① Class A

② Class B

③ Class C

④ Class D

정답: ②

해설: IP 클래스는 네트워크 규모에 따른 유연한 할당을 위해 설계되었으며, 이 중 첫 비트가 ’10’으로 시작하는 대역은 중간 규모의 네트워크를 지원하는 B 클래스입니다.[1]

문항 72.

문제: 192.168.1.0/24 네트워크 대역을 4개의 서브넷으로 분할(고정 길이 방식)하고자 할 때, 이를 위해 설정해야 할 올바른 서브넷 마스크의 마지막 옥텟 값은?

① 128

② 192

③ 224

④ 240

정답: ②

해설: 4개의 네트워크로 분할하려면 기존의 호스트 8비트 중 2비트($2^2=4$)를 네트워크 ID로 편입시켜야 합니다. 즉, 이진수 11000000이 되며, 이를 십진수로 변환하면 $128+64=192$가 됩니다.[1]

문항 73.

문제: 데이터 링크 계층의 자동 반복 요청(ARQ) 기법 중, 송신 측이 여러 개의 데이터 프레임을 연속적으로 전송하다가 오류가 발생하면 오류가 발생한 지점부터 모든 프레임을 재전송하는 기법은?

① Stop-and-Wait ARQ

② Go-Back-N ARQ

③ Selective-Repeat ARQ

④ FEC

정답: ②

해설: Go-Back-N 방식은 수신 측이 복잡한 버퍼링을 할 필요 없이 단순하게 구현할 수 있으나, 오류가 발견된 시점 이후의 정상적인 프레임까지 폐기하고 재전송해야 하므로 트래픽 효율이 떨어질 수 있습니다.[1]

문항 74. [환경 변수 관리 (유닉스/리눅스)]

문제: 유닉스/리눅스 쉘 환경에서 사용자가 전역 환경 변수를 설정하거나 확인하고 변경된 변수값이 자식 프로세스에도 적용되게 하기 위해 사용하는 명령어는?

① env

② setenv

③ export

④ printenv

정답: ③

해설: export 명령어는 쉘 스크립트 실행 시 필수적인 경로(Path)나 라이브러리 환경을 시스템 전역 및 하위 프로세스에 세팅할 때 사용되며 런타임 제어에 중요한 역할을 합니다.[1]

문항 75. [소프트웨어 보안 취약점 (버퍼 오버플로우)]

문제: C 언어 등으로 작성된 프로그램에서 메모리 경계 검사를 수행하지 않아, 할당된 메모리 공간(버퍼)을 초과하는 대량의 데이터를 입력함으로써 인접한 메모리(반환 주소 등)를 덮어쓰고 악의적 코드를 실행시키는 공격은?

① SQL Injection

② 포맷 스트링 취약점

③ 버퍼 오버플로우(Buffer Overflow)

④ XSS

정답: ③

해설: 버퍼 오버플로우 공격을 방어하기 위해 시스템은 메모리 경계를 체크하지 않는 취약점을 보완하거나, ASLR(주소 무작위화), Stack Guard 기술 등의 방어 체계를 도입해야 합니다.[1]

문항 76. [객체지향 언어 논리 (다형성)]

문제: Java, C++ 등의 프로그래밍 언어에서 상속 관계에 있는 클래스들이 부모 클래스의 동일한 메서드를 상속받되, 자신의 특성에 맞게 재정의(Overriding)하여 상황에 따라 다른 행위를 수행할 수 있게 하는 특징은?

① 추상화

② 은닉화

③ 다형성(Polymorphism)

④ 의존성 주입

정답: ③

해설: 다형성은 인터페이스를 통일하여 코드의 가독성을 높이고, “동일한 메시지, 다중 응답”의 패러다임을 통해 조건문의 사용을 극적으로 줄여주는 객체지향의 강력한 특성입니다.

문항 77. [Python 자료형 구조]

문제: Python에서 값의 목록을 순서대로 저장하는 자료 구조로, 생성 후에는 요소의 값을 수정, 추가, 삭제할 수 없는 불변(Immutable)의 특성을 가지며 소괄호 ()를 사용하는 것은?

① 리스트(List)

② 딕셔너리(Dictionary)

③ 집합(Set)

④ 튜플(Tuple)

정답: ④

해설: 튜플은 값이 변경되지 않아야 하는 중요한 데이터를 보호할 때 쓰이며, 리스트보다 메모리 접근 속도가 빠르고 딕셔너리의 키로도 활용될 수 있는 불변 자료형입니다.

문항 78. [프로그래밍 언어 제어문 비교]

문제: C나 Java 언어에서 사용하는 다중 조건 분기문인 else if 문을 Python 언어에서는 어떠한 키워드로 대체하여 사용하는가?

① elseif

② elif

③ switch

④ case

정답: ②

해설: Python은 문법적 간결함을 추구하는 언어이므로, 조건 제어문 구성 시 else if를 elif로 축약하여 사용합니다.[1]

문항 79. [프로세스 최적화 (스레드)]

문제: 운영체제에서 하나의 프로세스 내에 존재하는 실행 흐름의 최소 단위로, 프로세스의 코드, 데이터, 힙(Heap) 영역은 서로 공유하면서 고유의 스택과 레지스터만을 별도로 가지는 것은?

① 프로세서

② 인터럽트

③ 스레드(Thread)

④ 세그먼트

정답: ③

해설: 사용자 수준 스레드나 커널 수준 스레드는 프로세스 간 컨텍스트 스위칭(Context Switching) 시 발생하는 막대한 전환 오버헤드를 줄여 효율적인 병렬 처리를 돕습니다.[1]

문항 80. [Java 실행 환경 (JVM)]

문제: Java 프로그래밍 언어가 운영체제에 독립적으로 실행될 수 있도록, 컴파일된 바이트코드(Bytecode)를 각 운영체제에 맞게 해석하여 실행해 주는 가상 환경 엔진은?

① JRE

② JDK

③ 컴파일러

④ JVM(Java Virtual Machine)

정답: ④

해설: JVM은 자바 언어의 “Write Once, Run Anywhere” 패러다임을 실현하는 핵심이며, 코드 실행뿐만 아니라 가비지 컬렉터(Garbage Collector)를 구동하여 동적 메모리 자원을 자동으로 관리해 줍니다.