[9급 지방직 컴퓨터일반] 25년 1회차
9급 지방직 컴퓨터일반 기출문제

25년 1회차

총 20문항 · 객관식 · A4 약 1장

1 / 1
A4정답 포함
9급 지방직 컴퓨터일반 기출문제모두CBT · moducbt.com

25년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
데이터베이스에서 트랜잭션(transaction)의 성질이 아닌 것은?
1원자성(atomicity)
2일관성(consistency)
3독립성(isolation)
4의존성(dependency)
정답 및 해설

트랜잭션의 성질(ACID)에 의존성(dependency)은 포함되지 않는다.

ACID는 원자성·일관성·독립성(격리성)·지속성의 네 가지 성질을 말한다.

  • 원자성: 트랜잭션의 연산은 모두 반영되거나 전혀 반영되지 않아야 한다.
  • 일관성: 트랜잭션 수행 전후에 데이터베이스가 무결성 제약을 만족하는 일관된 상태를 유지해야 한다.
  • 독립성: 동시에 실행되는 트랜잭션은 서로의 중간 결과에 간섭하지 않아야 한다.
문제 2
IP 주소에 대한 설명으로 옳은 것은?
1IPv4는 8바이트 주소 체계이다.
2IPv6는 16바이트 주소 체계이다.
3IPv6의 헤더 크기는 20바이트이다.
4IPv4 주소가 143.248.166.12이면 클래스 C에 해당한다.
정답 및 해설

IPv6 주소는 128비트, 즉 16바이트 주소 체계이므로 옳다.

IPv4 주소는 32비트(4바이트)이고, 첫 옥텟 범위로 클래스를 구분한다.

  • IPv4는 8바이트가 아니라 4바이트(32비트) 주소 체계이다.
  • 20바이트는 IPv4 기본 헤더 크기이며, IPv6의 기본 헤더는 40바이트 고정 길이이다.
  • 143.248.166.12는 첫 옥텟이 128~191 범위이므로 클래스 C가 아니라 클래스 B에 해당한다.
문제 3
EBCDIC(Extended Binary Coded Decimal Interchange Code)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 표현할 수 있는 문자 수는 총 256개이다.
ㄴ. 6비트를 사용하여 하나의 문자를 표시하는 방식이다.
ㄷ. 7개의 데이터 비트와 1개의 패리티 비트로 구성되어 총 8개의 비트를 사용한다.
1ㄱ
2ㄴ
3ㄱ, ㄷ
4ㄴ, ㄷ
정답 및 해설

옳은 것은 표현 가능한 문자 수가 256개라는 설명 하나뿐이다.

EBCDIC는 IBM이 만든 8비트 확장 BCD 코드로, 28=2562^8 = 256개의 문자를 표현한다.

  • 6비트로 한 문자를 표시하는 방식은 BCD 코드이며, EBCDIC는 8비트를 사용한다.
  • 7개의 데이터 비트에 1개의 패리티 비트를 붙이는 구성은 ASCII 코드의 특징이며, EBCDIC는 데이터 비트만 8개이다(패리티를 붙이면 9비트).
문제 4
다음은 입력으로 들어온 배열 [70, 11, 31, 3, 17, 9, 32, 23]에 대하여 오름차순으로 버블 정렬 알고리즘의 수행 과정을 단계별로 나타낸 것으로 (가)에 해당하는 것은?
<초기 상태> 단계 0: [70, 11, 31, 3, 17, 9, 32, 23]
단계 1: [11, 31, 3, 17, 9, 32, 23, 70]
단계 2: [11, 3, 17, 9, 31, 23, 32, 70]
단계 3: [ (가) ]
⋮
13, 9, 11, 23, 17, 31, 32, 70
23, 11, 9, 17, 23, 31, 32, 70
311, 3, 9, 17, 23, 31, 32, 70
411, 3, 17, 9, 23, 31, 32, 70
정답 및 해설

(가)는 [3, 11, 9, 17, 23, 31, 32, 70]이다.

버블 정렬은 한 단계마다 인접한 두 값을 앞에서부터 비교해 앞의 값이 크면 교환한다. 단계 2의 결과 [11, 3, 17, 9, 31, 23, 32, 70]에 이를 적용한다.

11과 3 교환 → [3, 11, 17, 9, …]
17과 9 교환 → [3, 11, 9, 17, 31, …]
31과 23 교환 → [3, 11, 9, 17, 23, 31, 32, 70]
나머지 비교(11·17, 17·31, 31·32)는 교환이 없다.

  • 3, 9, 11로 시작하는 배열은 한 단계에서 9가 두 칸 앞으로 이동한 것이어서 버블 정렬 한 단계 결과가 될 수 없다.
  • 11, 3으로 시작하는 두 배열은 맨 앞의 11과 3을 교환하지 않은 상태이므로 틀리다.
문제 5
프로그램 내장 방식을 적용한 컴퓨터만을 모두 고르면?
ㄱ. EDSAC(Electronic Delay Storage Automatic Computer)
ㄴ. EDVAC(Electronic Discrete Variable Automatic Computer)
ㄷ. ENIAC(Electronic Numerical Integrator And Computer)
ㄹ. MARK I
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

프로그램 내장 방식을 적용한 컴퓨터는 EDSAC과 EDVAC이다.

프로그램 내장 방식은 폰 노이만이 제안한 것으로, 프로그램과 데이터를 함께 기억장치에 저장해 두고 명령어를 순서대로 읽어 실행한다. EDSAC은 이 방식을 최초로 구현한 컴퓨터이고, EDVAC도 이 방식으로 설계되었다.

  • ENIAC은 최초의 전자식 범용 컴퓨터이지만, 프로그램을 바꾸려면 배선을 직접 바꿔야 하는 외부 프로그램 방식이었다.
  • MARK I은 전기 기계식 계산기로, 프로그램을 천공 테이프로 공급받았으며 내장 방식이 아니다.
문제 6
운영체제에서 가변 분할 메모리 관리 기법을 사용하고 있으며, 현재 비어 있는 메모리 상태를 순서대로 표현하면 다음과 같다. 새로운 프로세스가 12 Kbyte 크기의 메모리를 요청하여 4번 위치로 할당되었다면, 이때 적용된 메모리 할당 기법은?
위치빈 공간 크기
1번10 Kbyte
2번25 Kbyte
3번30 Kbyte
4번15 Kbyte
1중앙 적합(center fit)
2최악 적합(worst fit)
3최적 적합(best fit)
4최초 적합(first fit)
정답 및 해설

12 Kbyte 요청이 15 Kbyte 공간에 할당되었으므로 최적 적합(best fit)이다.

12 Kbyte를 수용할 수 있는 빈 공간은 25, 30, 15 Kbyte이며, 이 중 가장 작은 공간이 15 Kbyte이다. 남는 단편화가 가장 작은 공간을 고르는 기법이 최적 적합이다.

  • 최초 적합이라면 앞에서부터 처음 들어가는 25 Kbyte 공간에 할당된다.
  • 최악 적합이라면 가장 큰 30 Kbyte 공간에 할당된다.
  • 중앙 적합은 일반적인 메모리 배치 기법이 아니다.
문제 7
다음 설명에 해당하는 운영체제의 메모리 영역은?
프로세스 내에서 함수가 호출될 때 지역변수, 매개변수와 함수가 실행을 마치고 돌아갈 주소 등을 저장하기 위한 공간이다.
1데이터(data) 영역
2스택(stack) 영역
3코드(code) 영역
4힙(heap) 영역
정답 및 해설

설명은 스택(stack) 영역에 해당한다.

함수가 호출될 때마다 지역변수, 매개변수, 복귀 주소를 담은 스택 프레임이 쌓이고, 함수가 끝나면 제거된다.

  • 데이터 영역: 전역변수와 정적(static) 변수를 저장한다.
  • 코드 영역: 실행할 프로그램의 기계어 명령어를 저장한다.
  • 힙 영역: 실행 중 동적으로 할당하는 메모리(malloc, new 등)를 저장한다.
문제 8
컴퓨터 네트워크에 대한 설명으로 옳지 않은 것은?
1TCP는 연결 지향적(connection-oriented)인 프로토콜이다.
2ARP는 IP 주소로부터 MAC 주소를 구하기 위한 프로토콜이다.
3ICMP는 MAC 주소로부터 IP 주소를 구하기 위한 프로토콜이다.
4IPv4에서 클래스 B는 마지막 16비트를 호스트 주소로 사용한다.
정답 및 해설

MAC 주소로부터 IP 주소를 구하는 프로토콜은 ICMP가 아니라 RARP이므로 옳지 않다.

ICMP는 IP 통신 중 발생한 오류 보고와 제어 메시지를 전달하는 프로토콜이며, ping·traceroute가 이를 이용한다.

  • TCP는 3-way 핸드셰이크로 연결을 설정한 뒤 통신하는 연결 지향형 프로토콜이다.
  • ARP는 IP 주소를 알 때 해당 장비의 MAC 주소를 알아내는 프로토콜이다.
  • IPv4 클래스 B는 앞 16비트를 네트워크 주소, 마지막 16비트를 호스트 주소로 사용한다.
문제 9
다음 이진 트리를 중위 순회하는 경우 방문 순서는?

1A, B, D, E, H, I, C, F, G
2A, B, D, E, H, I, F, C, G
3D, B, H, E, I, A, F, C, G
4D, H, I, E, B, F, G, C, A
정답 및 해설

중위 순회 방문 순서는 D, B, H, E, I, A, F, C, G이다.

중위 순회는 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 순으로 방문한다. 루트 A의 왼쪽 서브트리(B, D, E, H, I)는 D → B → (H → E → I)가 되고, 이어 A를 방문한 뒤 오른쪽 서브트리를 F → C → G로 방문한다.

  • A, B, D, E, H, I, C, F, G: 루트를 먼저 방문하는 전위 순회 결과이다.
  • A, B, D, E, H, I, F, C, G: 루트 A를 처음에 방문하므로 왼쪽 서브트리를 먼저 끝내야 하는 중위 순회 규칙에 어긋난다.
  • D, H, I, E, B, F, G, C, A: 자식을 모두 방문한 뒤 루트를 마지막에 방문하는 후위 순회 결과이다.
문제 10
다음 설명에 해당하는 기술은?
현실을 디지털 기반의 가상 세계로 확장해 가상 공간에서 모든 활동을 할 수 있게 만드는 기술이다. 정치, 경제, 사회, 문화 등 전반적 측면에서 현실과 비현실이 공존하는 생활형, 게임형 가상 세계라는 의미로 넓게 사용한다.
1메타버스(metaverse)
2사물인터넷(Internet of Things)
3텔레메틱스(telematics)
4NFT(Non-Fungible Token)
정답 및 해설

설명에 해당하는 기술은 메타버스(metaverse)이다.

메타버스는 가상·초월(meta)과 세계(universe)의 합성어로, 현실과 가상이 결합된 3차원 공간에서 사회·경제·문화 활동을 하는 것을 뜻한다.

  • 사물인터넷: 사물에 센서와 통신 기능을 넣어 인터넷으로 정보를 주고받는 기술이다.
  • 텔레매틱스: 통신과 정보과학을 결합해 차량 등에 위치·교통·원격 진단 정보를 제공하는 서비스이다.
  • NFT: 블록체인으로 디지털 자산의 고유성과 소유권을 증명하는 대체 불가능한 토큰이다.
문제 11
40 KHz로 샘플링하고 10비트로 양자화하여 60초의 스테레오 음악 파일을 만들었을 때, 파일의 크기는? (단, 압축은 하지 않는다)
1약 2 Mbyte
2약 6 Mbyte
3약 16 Mbyte
4약 48 Mbyte
정답 및 해설

파일 크기는 약 6 Mbyte이다.

크기 = 샘플링 주파수 × 양자화 비트 수 × 채널 수 × 시간

40000×10×2×60=48000000 bit40000 \times 10 \times 2 \times 60 = 48000000\ \mathrm{bit}
48000000÷8=6000000 byte48000000 \div 8 = 6000000\ \mathrm{byte}

스테레오는 2채널이므로 2를 곱하며, 비트를 바이트로 바꾸려면 8로 나눈다. 8로 나누지 않으면 약 48, 채널 수를 빼면 약 3이 되어 계산이 틀어진다.

문제 12
다음 12비트 명령어 형식에 대하여 직접 주소 지정 방식(direct addressing mode)으로 지정할 수 있는 메모리의 최대 크기는? (단, 하나의 주소공간 크기는 1바이트이다)
연산코드(5비트)주소부(7비트)
1128바이트
2256바이트
3512바이트
41,024바이트
정답 및 해설

지정할 수 있는 메모리의 최대 크기는 128바이트이다.

직접 주소 지정 방식에서는 주소부 값이 곧 유효 주소이므로, 주소부 7비트로 구별할 수 있는 주소 수가 메모리 크기를 결정한다.

27=1282^7 = 128개 주소 × 1바이트 = 128바이트

연산코드 5비트는 명령어 종류(최대 32가지)를 나타낼 뿐 주소 범위와는 무관하다.

문제 13
값이 (01100000)2(01100000)_2가 아닌 것은? (단, 오른쪽 괄호 밖의 아래 첨자는 진법을 의미하고, +는 덧셈, ×는 곱셈 연산을 의미한다)
1(60)16(60)_{16}
2(60)8+(60)8(60)_8 + (60)_8
3(00110000)2×(00000010)2(00110000)_2 \times (00000010)_2
4(46)10(46)_{10}에 대하여 왼쪽 산술 시프트 1회
정답 및 해설

(46)10(46)_{10}을 왼쪽 산술 시프트 1회 하면 92가 되어 (01100000)2=96(01100000)_2 = 96과 다르다.

왼쪽 산술 시프트 1회는 값에 2를 곱하는 것과 같다: 46×2=92=(01011100)246 \times 2 = 92 = (01011100)_2

  • (60)16=6×16=96(60)_{16} = 6 \times 16 = 96이다.
  • (60)8=6×8=48(60)_8 = 6 \times 8 = 48이므로 두 번 더하면 9696이다.
  • (00110000)2=48(00110000)_2 = 48, (00000010)2=2(00000010)_2 = 2이므로 곱은 9696이다.
문제 14
크기가 32 Kbyte이고 4-방향 집합 연관 사상(4-way set associative mapping)을 따르는 캐시(cache)가 있다. 각 캐시 블록의 크기가 64바이트일 때, 캐시 집합의 개수는?
132
264
3128
4256
정답 및 해설

캐시 집합의 개수는 128이다.

블록 수 = 캐시 크기 ÷ 블록 크기
32×1024÷64=51232 \times 1024 \div 64 = 512개

집합 수 = 블록 수 ÷ 연관도(way)
512÷4=128512 \div 4 = 128개

4-방향 집합 연관 사상은 한 집합에 블록 4개를 두므로 전체 블록 수를 4로 나눈다.

문제 15
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
int main(void) {
int x = 100, y = 200;
int* px = &x, *py = &y, *tmp;
(*px) -= 10;
(*py) += 50;
tmp = px;
px = py;
py = tmp;
(*px) += 50;
(*py) -= 10;
printf("x: %d, y: %d \n", x, y);
return 0;
}
1x: 80, y: 300
2x: 140, y: 240
3x: 240, y: 140
4x: 300, y: 80
정답 및 해설

출력은 x: 80, y: 300이다.

처음 px는 x, py는 y를 가리킨다.
(*px) -= 10 → x = 90
(*py) += 50 → y = 250

tmp를 이용해 포인터만 교환하므로 이후 px는 y, py는 x를 가리킨다(변수 값은 바뀌지 않음).
(*px) += 50 → y = 300
(*py) -= 10 → x = 80

포인터 교환을 값 교환으로 착각하면 x와 y가 뒤바뀐 결과를 얻게 된다.

문제 16
다음과 같이 준비 상태 큐에 프로세스가 도착했을 때, 타임 슬라이스가 4 ms인 라운드 로빈(round-robin) 스케줄링으로 실행하면 프로세스의 평균 대기 시간은? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하고, 주어진 4개 프로세스 외에 처리할 다른 프로세스는 없다)
프로세스도착 시간(ms)실행 시간(ms)
P1P_108
P2P_214
P3P_326
P4P_435
14 ms
211 ms
318 ms
444 ms
정답 및 해설

평균 대기 시간은 11 ms이다.

실행 순서(타임 슬라이스 4 ms): P1P_1(0~4) → P2P_2(4~8, 종료) → P3P_3(8~12) → P4P_4(12~16) → P1P_1(16~20, 종료) → P3P_3(20~22, 종료) → P4P_4(22~23, 종료)

대기 시간 = 종료 시각 − 도착 시간 − 실행 시간
P1=20−0−8=12P_1 = 20 - 0 - 8 = 12, P2=8−1−4=3P_2 = 8 - 1 - 4 = 3
P3=22−2−6=14P_3 = 22 - 2 - 6 = 14, P4=23−3−5=15P_4 = 23 - 3 - 5 = 15

합계 4444를 프로세스 수 4로 나누면 44÷4=1144 \div 4 = 11이다. 총합 44를 평균으로 착각하지 않도록 주의한다.

문제 17
다음 파이썬 프로그램의 출력 결과는?
val = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
rst = 0
for i in range(2, len(val), 3):
rst = rst + val[i]
print(rst)
121
224
326
430
정답 및 해설

출력 결과는 30이다.

len(val)은 12이므로 range(2, 12, 3)은 2, 5, 8, 11의 인덱스를 만든다.

val[2] = 3, val[5] = 6, val[8] = 9, val[11] = 12
rst = 3 + 6 + 9 + 12 = 30

파이썬 인덱스는 0부터 시작하므로 인덱스 2의 값은 3이다.

문제 18
애자일(agile) 방법론에 대한 설명으로 옳지 않은 것은?
1고객의 요구 사항 변화를 허용하는 개발 방식이다.
2익스트림 프로그래밍(XP)은 애자일 기법 중 하나이다.
3구현 단계에서는 고객의 추가 요구 사항을 반영하지 않는다.
4포괄적인 문서보다는 작동하는 프로그램에 더 가치를 둔다.
정답 및 해설

애자일은 구현 단계에서도 고객의 추가 요구 사항을 반영하므로, 반영하지 않는다는 설명이 옳지 않다.

애자일은 짧은 반복 주기마다 고객 피드백을 받아 변화에 대응하는 것을 계획을 따르는 것보다 중시한다.

  • 고객의 요구 사항 변화를 허용하는 것은 애자일의 핵심 특징이다.
  • 익스트림 프로그래밍(XP)은 스크럼과 함께 대표적인 애자일 기법이다.
  • 애자일 선언은 포괄적인 문서보다 작동하는 소프트웨어에 더 가치를 둔다.
문제 19
객체지향 설계에서의 SOLID 원칙 중 ‘구체화가 아닌 추상화에 의존해야 한다’는 원칙은?
1개방-폐쇄 원칙(open-closed principle)
2단일 책임 원칙(single responsibility principle)
3인터페이스 분리 원칙(interface segregation principle)
4의존관계 역전 원칙(dependency inversion principle)
정답 및 해설

추상화에 의존해야 한다는 원칙은 의존관계 역전 원칙(DIP)이다.

DIP는 상위 모듈과 하위 모듈이 모두 구체 클래스가 아닌 인터페이스·추상 클래스에 의존해야 한다는 원칙이다.

  • 개방-폐쇄 원칙: 확장에는 열려 있고 수정에는 닫혀 있어야 한다.
  • 단일 책임 원칙: 클래스는 하나의 책임만 가져야 한다.
  • 인터페이스 분리 원칙: 클라이언트는 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 작게 나눠야 한다.
문제 20
위상 정렬(topological sort)이 가능한 그래프만을 모두 고르면?

1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

위상 정렬이 가능한 그래프는 ㄱ과 ㄹ이다.

위상 정렬은 사이클이 없는 방향 그래프(DAG)에서만 가능하다. ㄱ은 A, B, D, C 순으로, ㄹ은 A, B, C, D, E, F, G 순으로 모든 간선이 앞에서 뒤로 향하게 나열할 수 있다.

  • ㄱ, ㄴ: ㄴ은 간선에 방향이 없는 무방향 그래프라 선후 관계를 정할 수 없으므로 위상 정렬 대상이 아니다.
  • ㄴ, ㄷ: ㄴ은 무방향 그래프이고, ㄷ은 A → B → C → A로 되돌아오는 사이클이 있어 둘 다 불가능하다.
  • ㄷ, ㄹ: ㄷ에는 A → B → C → A와 C → E → F → C의 사이클이 있어 위상 정렬이 불가능하다.
9급 지방직 컴퓨터일반 기출문제모두CBT · moducbt.com
25년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
데이터베이스에서 트랜잭션(transaction)의 성질이 아닌 것은?
1원자성(atomicity)
2일관성(consistency)
3독립성(isolation)
4의존성(dependency)
정답 및 해설

트랜잭션의 성질(ACID)에 의존성(dependency)은 포함되지 않는다.

ACID는 원자성·일관성·독립성(격리성)·지속성의 네 가지 성질을 말한다.

  • 원자성: 트랜잭션의 연산은 모두 반영되거나 전혀 반영되지 않아야 한다.
  • 일관성: 트랜잭션 수행 전후에 데이터베이스가 무결성 제약을 만족하는 일관된 상태를 유지해야 한다.
  • 독립성: 동시에 실행되는 트랜잭션은 서로의 중간 결과에 간섭하지 않아야 한다.
문제 2
IP 주소에 대한 설명으로 옳은 것은?
1IPv4는 8바이트 주소 체계이다.
2IPv6는 16바이트 주소 체계이다.
3IPv6의 헤더 크기는 20바이트이다.
4IPv4 주소가 143.248.166.12이면 클래스 C에 해당한다.
정답 및 해설

IPv6 주소는 128비트, 즉 16바이트 주소 체계이므로 옳다.

IPv4 주소는 32비트(4바이트)이고, 첫 옥텟 범위로 클래스를 구분한다.

  • IPv4는 8바이트가 아니라 4바이트(32비트) 주소 체계이다.
  • 20바이트는 IPv4 기본 헤더 크기이며, IPv6의 기본 헤더는 40바이트 고정 길이이다.
  • 143.248.166.12는 첫 옥텟이 128~191 범위이므로 클래스 C가 아니라 클래스 B에 해당한다.
문제 3
EBCDIC(Extended Binary Coded Decimal Interchange Code)에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 표현할 수 있는 문자 수는 총 256개이다.
ㄴ. 6비트를 사용하여 하나의 문자를 표시하는 방식이다.
ㄷ. 7개의 데이터 비트와 1개의 패리티 비트로 구성되어 총 8개의 비트를 사용한다.
1ㄱ
2ㄴ
3ㄱ, ㄷ
4ㄴ, ㄷ
정답 및 해설

옳은 것은 표현 가능한 문자 수가 256개라는 설명 하나뿐이다.

EBCDIC는 IBM이 만든 8비트 확장 BCD 코드로, 28=2562^8 = 256개의 문자를 표현한다.

  • 6비트로 한 문자를 표시하는 방식은 BCD 코드이며, EBCDIC는 8비트를 사용한다.
  • 7개의 데이터 비트에 1개의 패리티 비트를 붙이는 구성은 ASCII 코드의 특징이며, EBCDIC는 데이터 비트만 8개이다(패리티를 붙이면 9비트).
문제 4
다음은 입력으로 들어온 배열 [70, 11, 31, 3, 17, 9, 32, 23]에 대하여 오름차순으로 버블 정렬 알고리즘의 수행 과정을 단계별로 나타낸 것으로 (가)에 해당하는 것은?
<초기 상태> 단계 0: [70, 11, 31, 3, 17, 9, 32, 23]
단계 1: [11, 31, 3, 17, 9, 32, 23, 70]
단계 2: [11, 3, 17, 9, 31, 23, 32, 70]
단계 3: [ (가) ]
⋮
13, 9, 11, 23, 17, 31, 32, 70
23, 11, 9, 17, 23, 31, 32, 70
311, 3, 9, 17, 23, 31, 32, 70
411, 3, 17, 9, 23, 31, 32, 70
정답 및 해설

(가)는 [3, 11, 9, 17, 23, 31, 32, 70]이다.

버블 정렬은 한 단계마다 인접한 두 값을 앞에서부터 비교해 앞의 값이 크면 교환한다. 단계 2의 결과 [11, 3, 17, 9, 31, 23, 32, 70]에 이를 적용한다.

11과 3 교환 → [3, 11, 17, 9, …]
17과 9 교환 → [3, 11, 9, 17, 31, …]
31과 23 교환 → [3, 11, 9, 17, 23, 31, 32, 70]
나머지 비교(11·17, 17·31, 31·32)는 교환이 없다.

  • 3, 9, 11로 시작하는 배열은 한 단계에서 9가 두 칸 앞으로 이동한 것이어서 버블 정렬 한 단계 결과가 될 수 없다.
  • 11, 3으로 시작하는 두 배열은 맨 앞의 11과 3을 교환하지 않은 상태이므로 틀리다.
문제 5
프로그램 내장 방식을 적용한 컴퓨터만을 모두 고르면?
ㄱ. EDSAC(Electronic Delay Storage Automatic Computer)
ㄴ. EDVAC(Electronic Discrete Variable Automatic Computer)
ㄷ. ENIAC(Electronic Numerical Integrator And Computer)
ㄹ. MARK I
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

프로그램 내장 방식을 적용한 컴퓨터는 EDSAC과 EDVAC이다.

프로그램 내장 방식은 폰 노이만이 제안한 것으로, 프로그램과 데이터를 함께 기억장치에 저장해 두고 명령어를 순서대로 읽어 실행한다. EDSAC은 이 방식을 최초로 구현한 컴퓨터이고, EDVAC도 이 방식으로 설계되었다.

  • ENIAC은 최초의 전자식 범용 컴퓨터이지만, 프로그램을 바꾸려면 배선을 직접 바꿔야 하는 외부 프로그램 방식이었다.
  • MARK I은 전기 기계식 계산기로, 프로그램을 천공 테이프로 공급받았으며 내장 방식이 아니다.
문제 6
운영체제에서 가변 분할 메모리 관리 기법을 사용하고 있으며, 현재 비어 있는 메모리 상태를 순서대로 표현하면 다음과 같다. 새로운 프로세스가 12 Kbyte 크기의 메모리를 요청하여 4번 위치로 할당되었다면, 이때 적용된 메모리 할당 기법은?
위치빈 공간 크기
1번10 Kbyte
2번25 Kbyte
3번30 Kbyte
4번15 Kbyte
1중앙 적합(center fit)
2최악 적합(worst fit)
3최적 적합(best fit)
4최초 적합(first fit)
정답 및 해설

12 Kbyte 요청이 15 Kbyte 공간에 할당되었으므로 최적 적합(best fit)이다.

12 Kbyte를 수용할 수 있는 빈 공간은 25, 30, 15 Kbyte이며, 이 중 가장 작은 공간이 15 Kbyte이다. 남는 단편화가 가장 작은 공간을 고르는 기법이 최적 적합이다.

  • 최초 적합이라면 앞에서부터 처음 들어가는 25 Kbyte 공간에 할당된다.
  • 최악 적합이라면 가장 큰 30 Kbyte 공간에 할당된다.
  • 중앙 적합은 일반적인 메모리 배치 기법이 아니다.
문제 7
다음 설명에 해당하는 운영체제의 메모리 영역은?
프로세스 내에서 함수가 호출될 때 지역변수, 매개변수와 함수가 실행을 마치고 돌아갈 주소 등을 저장하기 위한 공간이다.
1데이터(data) 영역
2스택(stack) 영역
3코드(code) 영역
4힙(heap) 영역
정답 및 해설

설명은 스택(stack) 영역에 해당한다.

함수가 호출될 때마다 지역변수, 매개변수, 복귀 주소를 담은 스택 프레임이 쌓이고, 함수가 끝나면 제거된다.

  • 데이터 영역: 전역변수와 정적(static) 변수를 저장한다.
  • 코드 영역: 실행할 프로그램의 기계어 명령어를 저장한다.
  • 힙 영역: 실행 중 동적으로 할당하는 메모리(malloc, new 등)를 저장한다.
문제 8
컴퓨터 네트워크에 대한 설명으로 옳지 않은 것은?
1TCP는 연결 지향적(connection-oriented)인 프로토콜이다.
2ARP는 IP 주소로부터 MAC 주소를 구하기 위한 프로토콜이다.
3ICMP는 MAC 주소로부터 IP 주소를 구하기 위한 프로토콜이다.
4IPv4에서 클래스 B는 마지막 16비트를 호스트 주소로 사용한다.
정답 및 해설

MAC 주소로부터 IP 주소를 구하는 프로토콜은 ICMP가 아니라 RARP이므로 옳지 않다.

ICMP는 IP 통신 중 발생한 오류 보고와 제어 메시지를 전달하는 프로토콜이며, ping·traceroute가 이를 이용한다.

  • TCP는 3-way 핸드셰이크로 연결을 설정한 뒤 통신하는 연결 지향형 프로토콜이다.
  • ARP는 IP 주소를 알 때 해당 장비의 MAC 주소를 알아내는 프로토콜이다.
  • IPv4 클래스 B는 앞 16비트를 네트워크 주소, 마지막 16비트를 호스트 주소로 사용한다.
문제 9
다음 이진 트리를 중위 순회하는 경우 방문 순서는?

1A, B, D, E, H, I, C, F, G
2A, B, D, E, H, I, F, C, G
3D, B, H, E, I, A, F, C, G
4D, H, I, E, B, F, G, C, A
정답 및 해설

중위 순회 방문 순서는 D, B, H, E, I, A, F, C, G이다.

중위 순회는 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 순으로 방문한다. 루트 A의 왼쪽 서브트리(B, D, E, H, I)는 D → B → (H → E → I)가 되고, 이어 A를 방문한 뒤 오른쪽 서브트리를 F → C → G로 방문한다.

  • A, B, D, E, H, I, C, F, G: 루트를 먼저 방문하는 전위 순회 결과이다.
  • A, B, D, E, H, I, F, C, G: 루트 A를 처음에 방문하므로 왼쪽 서브트리를 먼저 끝내야 하는 중위 순회 규칙에 어긋난다.
  • D, H, I, E, B, F, G, C, A: 자식을 모두 방문한 뒤 루트를 마지막에 방문하는 후위 순회 결과이다.
문제 10
다음 설명에 해당하는 기술은?
현실을 디지털 기반의 가상 세계로 확장해 가상 공간에서 모든 활동을 할 수 있게 만드는 기술이다. 정치, 경제, 사회, 문화 등 전반적 측면에서 현실과 비현실이 공존하는 생활형, 게임형 가상 세계라는 의미로 넓게 사용한다.
1메타버스(metaverse)
2사물인터넷(Internet of Things)
3텔레메틱스(telematics)
4NFT(Non-Fungible Token)
정답 및 해설

설명에 해당하는 기술은 메타버스(metaverse)이다.

메타버스는 가상·초월(meta)과 세계(universe)의 합성어로, 현실과 가상이 결합된 3차원 공간에서 사회·경제·문화 활동을 하는 것을 뜻한다.

  • 사물인터넷: 사물에 센서와 통신 기능을 넣어 인터넷으로 정보를 주고받는 기술이다.
  • 텔레매틱스: 통신과 정보과학을 결합해 차량 등에 위치·교통·원격 진단 정보를 제공하는 서비스이다.
  • NFT: 블록체인으로 디지털 자산의 고유성과 소유권을 증명하는 대체 불가능한 토큰이다.
문제 11
40 KHz로 샘플링하고 10비트로 양자화하여 60초의 스테레오 음악 파일을 만들었을 때, 파일의 크기는? (단, 압축은 하지 않는다)
1약 2 Mbyte
2약 6 Mbyte
3약 16 Mbyte
4약 48 Mbyte
정답 및 해설

파일 크기는 약 6 Mbyte이다.

크기 = 샘플링 주파수 × 양자화 비트 수 × 채널 수 × 시간

40000×10×2×60=48000000 bit40000 \times 10 \times 2 \times 60 = 48000000\ \mathrm{bit}
48000000÷8=6000000 byte48000000 \div 8 = 6000000\ \mathrm{byte}

스테레오는 2채널이므로 2를 곱하며, 비트를 바이트로 바꾸려면 8로 나눈다. 8로 나누지 않으면 약 48, 채널 수를 빼면 약 3이 되어 계산이 틀어진다.

문제 12
다음 12비트 명령어 형식에 대하여 직접 주소 지정 방식(direct addressing mode)으로 지정할 수 있는 메모리의 최대 크기는? (단, 하나의 주소공간 크기는 1바이트이다)
연산코드(5비트)주소부(7비트)
1128바이트
2256바이트
3512바이트
41,024바이트
정답 및 해설

지정할 수 있는 메모리의 최대 크기는 128바이트이다.

직접 주소 지정 방식에서는 주소부 값이 곧 유효 주소이므로, 주소부 7비트로 구별할 수 있는 주소 수가 메모리 크기를 결정한다.

27=1282^7 = 128개 주소 × 1바이트 = 128바이트

연산코드 5비트는 명령어 종류(최대 32가지)를 나타낼 뿐 주소 범위와는 무관하다.

문제 13
값이 (01100000)2(01100000)_2가 아닌 것은? (단, 오른쪽 괄호 밖의 아래 첨자는 진법을 의미하고, +는 덧셈, ×는 곱셈 연산을 의미한다)
1(60)16(60)_{16}
2(60)8+(60)8(60)_8 + (60)_8
3(00110000)2×(00000010)2(00110000)_2 \times (00000010)_2
4(46)10(46)_{10}에 대하여 왼쪽 산술 시프트 1회
정답 및 해설

(46)10(46)_{10}을 왼쪽 산술 시프트 1회 하면 92가 되어 (01100000)2=96(01100000)_2 = 96과 다르다.

왼쪽 산술 시프트 1회는 값에 2를 곱하는 것과 같다: 46×2=92=(01011100)246 \times 2 = 92 = (01011100)_2

  • (60)16=6×16=96(60)_{16} = 6 \times 16 = 96이다.
  • (60)8=6×8=48(60)_8 = 6 \times 8 = 48이므로 두 번 더하면 9696이다.
  • (00110000)2=48(00110000)_2 = 48, (00000010)2=2(00000010)_2 = 2이므로 곱은 9696이다.
문제 14
크기가 32 Kbyte이고 4-방향 집합 연관 사상(4-way set associative mapping)을 따르는 캐시(cache)가 있다. 각 캐시 블록의 크기가 64바이트일 때, 캐시 집합의 개수는?
132
264
3128
4256
정답 및 해설

캐시 집합의 개수는 128이다.

블록 수 = 캐시 크기 ÷ 블록 크기
32×1024÷64=51232 \times 1024 \div 64 = 512개

집합 수 = 블록 수 ÷ 연관도(way)
512÷4=128512 \div 4 = 128개

4-방향 집합 연관 사상은 한 집합에 블록 4개를 두므로 전체 블록 수를 4로 나눈다.

문제 15
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
int main(void) {
int x = 100, y = 200;
int* px = &x, *py = &y, *tmp;
(*px) -= 10;
(*py) += 50;
tmp = px;
px = py;
py = tmp;
(*px) += 50;
(*py) -= 10;
printf("x: %d, y: %d \n", x, y);
return 0;
}
1x: 80, y: 300
2x: 140, y: 240
3x: 240, y: 140
4x: 300, y: 80
정답 및 해설

출력은 x: 80, y: 300이다.

처음 px는 x, py는 y를 가리킨다.
(*px) -= 10 → x = 90
(*py) += 50 → y = 250

tmp를 이용해 포인터만 교환하므로 이후 px는 y, py는 x를 가리킨다(변수 값은 바뀌지 않음).
(*px) += 50 → y = 300
(*py) -= 10 → x = 80

포인터 교환을 값 교환으로 착각하면 x와 y가 뒤바뀐 결과를 얻게 된다.

문제 16
다음과 같이 준비 상태 큐에 프로세스가 도착했을 때, 타임 슬라이스가 4 ms인 라운드 로빈(round-robin) 스케줄링으로 실행하면 프로세스의 평균 대기 시간은? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하고, 주어진 4개 프로세스 외에 처리할 다른 프로세스는 없다)
프로세스도착 시간(ms)실행 시간(ms)
P1P_108
P2P_214
P3P_326
P4P_435
14 ms
211 ms
318 ms
444 ms
정답 및 해설

평균 대기 시간은 11 ms이다.

실행 순서(타임 슬라이스 4 ms): P1P_1(0~4) → P2P_2(4~8, 종료) → P3P_3(8~12) → P4P_4(12~16) → P1P_1(16~20, 종료) → P3P_3(20~22, 종료) → P4P_4(22~23, 종료)

대기 시간 = 종료 시각 − 도착 시간 − 실행 시간
P1=20−0−8=12P_1 = 20 - 0 - 8 = 12, P2=8−1−4=3P_2 = 8 - 1 - 4 = 3
P3=22−2−6=14P_3 = 22 - 2 - 6 = 14, P4=23−3−5=15P_4 = 23 - 3 - 5 = 15

합계 4444를 프로세스 수 4로 나누면 44÷4=1144 \div 4 = 11이다. 총합 44를 평균으로 착각하지 않도록 주의한다.

문제 17
다음 파이썬 프로그램의 출력 결과는?
val = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
rst = 0
for i in range(2, len(val), 3):
rst = rst + val[i]
print(rst)
121
224
326
430
정답 및 해설

출력 결과는 30이다.

len(val)은 12이므로 range(2, 12, 3)은 2, 5, 8, 11의 인덱스를 만든다.

val[2] = 3, val[5] = 6, val[8] = 9, val[11] = 12
rst = 3 + 6 + 9 + 12 = 30

파이썬 인덱스는 0부터 시작하므로 인덱스 2의 값은 3이다.

문제 18
애자일(agile) 방법론에 대한 설명으로 옳지 않은 것은?
1고객의 요구 사항 변화를 허용하는 개발 방식이다.
2익스트림 프로그래밍(XP)은 애자일 기법 중 하나이다.
3구현 단계에서는 고객의 추가 요구 사항을 반영하지 않는다.
4포괄적인 문서보다는 작동하는 프로그램에 더 가치를 둔다.
정답 및 해설

애자일은 구현 단계에서도 고객의 추가 요구 사항을 반영하므로, 반영하지 않는다는 설명이 옳지 않다.

애자일은 짧은 반복 주기마다 고객 피드백을 받아 변화에 대응하는 것을 계획을 따르는 것보다 중시한다.

  • 고객의 요구 사항 변화를 허용하는 것은 애자일의 핵심 특징이다.
  • 익스트림 프로그래밍(XP)은 스크럼과 함께 대표적인 애자일 기법이다.
  • 애자일 선언은 포괄적인 문서보다 작동하는 소프트웨어에 더 가치를 둔다.
문제 19
객체지향 설계에서의 SOLID 원칙 중 ‘구체화가 아닌 추상화에 의존해야 한다’는 원칙은?
1개방-폐쇄 원칙(open-closed principle)
2단일 책임 원칙(single responsibility principle)
3인터페이스 분리 원칙(interface segregation principle)
4의존관계 역전 원칙(dependency inversion principle)
정답 및 해설

추상화에 의존해야 한다는 원칙은 의존관계 역전 원칙(DIP)이다.

DIP는 상위 모듈과 하위 모듈이 모두 구체 클래스가 아닌 인터페이스·추상 클래스에 의존해야 한다는 원칙이다.

  • 개방-폐쇄 원칙: 확장에는 열려 있고 수정에는 닫혀 있어야 한다.
  • 단일 책임 원칙: 클래스는 하나의 책임만 가져야 한다.
  • 인터페이스 분리 원칙: 클라이언트는 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 작게 나눠야 한다.
문제 20
위상 정렬(topological sort)이 가능한 그래프만을 모두 고르면?

1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

위상 정렬이 가능한 그래프는 ㄱ과 ㄹ이다.

위상 정렬은 사이클이 없는 방향 그래프(DAG)에서만 가능하다. ㄱ은 A, B, D, C 순으로, ㄹ은 A, B, C, D, E, F, G 순으로 모든 간선이 앞에서 뒤로 향하게 나열할 수 있다.

  • ㄱ, ㄴ: ㄴ은 간선에 방향이 없는 무방향 그래프라 선후 관계를 정할 수 없으므로 위상 정렬 대상이 아니다.
  • ㄴ, ㄷ: ㄴ은 무방향 그래프이고, ㄷ은 A → B → C → A로 되돌아오는 사이클이 있어 둘 다 불가능하다.
  • ㄷ, ㄹ: ㄷ에는 A → B → C → A와 C → E → F → C의 사이클이 있어 위상 정렬이 불가능하다.