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

18년 1회차

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

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

18년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
선형 자료구조에 해당하지 않는 것은?
1큐
2스택
3이진 트리
4단순 연결 리스트
정답 및 해설

선형 자료구조가 아닌 것은 이진 트리이다.

선형 자료구조는 원소가 앞뒤 1:1 순서로 한 줄로 이어지고, 비선형 자료구조는 한 원소가 여러 원소와 계층·망 형태로 연결된다. 이진 트리는 한 노드가 최대 두 자식을 갖는 계층 구조이므로 비선형이다.

  • 큐: 한쪽에서 삽입하고 반대쪽에서 삭제하는 선형 구조(FIFO)이다.
  • 스택: 한쪽 끝에서만 삽입·삭제하는 선형 구조(LIFO)이다.
  • 단순 연결 리스트: 각 노드가 다음 노드 하나만 가리키며 한 줄로 이어지는 선형 구조이다.
문제 2
비트열(bit string) A를 2의 보수로 표현된 부호 있는(signed) 2진 정수로 해석한 값은 -5이다. 비트열 A를 1의 보수로 표현된 부호 있는 2진 정수로 해석한 값은?
1-4
2-5
3-6
4-7
정답 및 해설

비트열 A를 1의 보수로 해석하면 -4이다.

4비트로 보면 +5는 0101이고, 2의 보수 -5는 각 비트를 반전(1010)한 뒤 1을 더한 1011이다.

1011을 1의 보수로 해석하면 부호 비트가 1이므로 음수이고, 크기는 비트를 반전한 0100 = 4이다.
따라서 값은 -4이다(비트 수를 늘려 부호 확장해도 결과는 같다).

일반적으로 같은 음수 비트열은 1의 보수 해석값이 2의 보수 해석값보다 절댓값이 1 작다.

문제 3
직원 테이블 emp의 모든 레코드를 근무연수 wyear에 대해서는 내림차순으로, 동일 근무연수에 대해서는 나이 age의 오름차순으로 정렬한 결과를 얻기 위한 SQL 질의문은?
1SELECT * FROM emp ORDER BY age, wyear DESC;
2SELECT * FROM emp ORDER BY age ASC, wyear;
3SELECT * FROM emp ORDER BY wyear DESC, age;
4SELECT * FROM emp ORDER BY wyear, age ASC;
정답 및 해설

올바른 질의문은 ORDER BY wyear DESC, age를 쓴 것이다.

ORDER BY는 앞에 적은 열이 1차 정렬 기준이고, 값이 같을 때 다음 열로 정렬한다. 정렬 방향을 생략하면 기본값은 오름차순(ASC)이므로 age만 적어도 오름차순이 된다.

  • ORDER BY age, wyear DESC: 나이가 1차 기준이 되어 요구와 순서가 반대이다.
  • ORDER BY age ASC, wyear: 나이가 1차 기준이고 근무연수도 오름차순이다.
  • ORDER BY wyear, age ASC: 근무연수가 오름차순으로 정렬되어 내림차순 조건에 맞지 않는다.
문제 4
다음에서 설명하는 디스크 스케줄링은?
  • 디스크 헤드가 한쪽 방향으로 트랙의 끝까지 이동하면서 만나는 요청을 모두 처리한다. 트랙의 끝에 도달하면 반대 방향으로 이동하면서 만나는 요청을 모두 처리한다. 이러한 방식으로 헤드가 디스크 양쪽을 계속 왕복하면서 남은 요청을 처리한다.
1선입 선처리(FCFS) 스케줄링
2최소 탐색 시간 우선(SSTF) 스케줄링
3스캔(SCAN) 스케줄링
4라운드 로빈(RR) 스케줄링
정답 및 해설

설명된 방식은 스캔(SCAN) 스케줄링이다.

헤드가 한 방향으로 트랙 끝까지 이동하며 요청을 처리하고, 끝에 닿으면 방향을 바꿔 되돌아오며 처리한다. 엘리베이터처럼 왕복하므로 엘리베이터 알고리즘이라고도 한다.

  • 선입 선처리(FCFS)는 요청이 도착한 순서대로 처리할 뿐 헤드 이동 방향을 고려하지 않는다.
  • 최소 탐색 시간 우선(SSTF)은 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리하므로 방향이 수시로 바뀐다.
  • 라운드 로빈(RR)은 시간 할당량 단위로 프로세스를 돌아가며 실행하는 CPU 스케줄링 기법으로, 디스크 스케줄링이 아니다.
문제 5
정보량의 크기가 작은 것에서 큰 순서대로 바르게 나열한 것은? (단, PB, TB, ZB, EB는 각각 petabyte, terabyte, zettabyte, exabyte이다)
11PB, 1TB, 1ZB, 1EB
21PB, 1TB, 1EB, 1ZB
31TB, 1PB, 1ZB, 1EB
41TB, 1PB, 1EB, 1ZB
정답 및 해설

작은 것부터 나열하면 1TB, 1PB, 1EB, 1ZB 순이다.

정보량 단위는 한 단계 올라갈 때마다 1,024배(10진 접두어로는 1,000배)씩 커지며, 순서는 KB → MB → GB → TB → PB → EB → ZB → YB이다.

  • PB를 TB보다 앞에 둔 나열은 페타바이트가 테라바이트보다 큰 단위라는 점에 어긋난다.
  • ZB를 EB보다 앞에 둔 나열은 제타바이트가 엑사바이트보다 큰 단위라는 점에 어긋난다.
문제 6
다음에서 설명하는 RAID 레벨은?
  • 블록 단위 스트라이핑(striping)을 통해 데이터를 여러 디스크에 분산 저장한다.
  • 패리티를 패리티 전용 디스크에 저장한다.
1RAID 레벨 1
2RAID 레벨 2
3RAID 레벨 4
4RAID 레벨 5
정답 및 해설

블록 단위 스트라이핑과 패리티 전용 디스크를 쓰는 구성은 RAID 레벨 4이다.

RAID 4는 데이터를 블록 단위로 여러 디스크에 나누어 저장하고, 패리티는 별도의 한 디스크에 모아 둔다. 쓰기마다 패리티 디스크에 접근이 몰리는 병목이 단점이다.

  • RAID 레벨 1은 같은 데이터를 두 디스크에 그대로 복제하는 미러링 방식으로 패리티를 쓰지 않는다.
  • RAID 레벨 2는 비트 단위로 분산하고 해밍 코드로 오류를 정정하는 방식이다.
  • RAID 레벨 5는 블록 단위 스트라이핑을 하되 패리티를 전용 디스크가 아니라 모든 디스크에 분산 저장한다.
문제 7
소프트웨어 개발을 위한 애자일 기법에 대한 설명으로 옳은 것은?
1소프트웨어를 점증적으로 개발한다.
2작동하는 소프트웨어보다 포괄적인 문서에 더 가치를 둔다.
3계획에 따라 단계적으로 개발하므로 변화에 대응하기 어렵다.
4고객과의 협업보다 계약 협상을 더 중요시한다.
정답 및 해설

애자일 기법에 대한 옳은 설명은 소프트웨어를 점증적으로 개발한다는 것이다.

애자일은 짧은 반복 주기마다 동작하는 결과물을 조금씩 늘려 가는 반복·점증적 개발 방식이며, 애자일 선언문은 문서보다 작동하는 소프트웨어, 계약보다 고객 협업, 계획보다 변화 대응을 더 중시한다.

  • 포괄적인 문서를 작동하는 소프트웨어보다 중시한다는 설명은 선언문과 반대이다.
  • 계획에 따라 단계적으로 진행해 변화 대응이 어렵다는 것은 폭포수 모형의 특징이다.
  • 계약 협상을 고객 협업보다 중시한다는 설명은 선언문과 반대이다.
문제 8
2-way 집합 연관 사상(set-associative mapping) 방식을 사용하는 캐시 기억장치를 가진 컴퓨터가 있다. 캐시 기억장치 접근(access)을 위해 주기억장치 주소가 다음 세 필드(field)로 구분된다면, 캐시 기억장치의 총 라인(line) 개수는?
태그(tag) 필드세트(set) 필드오프셋(offset) 필드
8비트9비트7비트
1128개
2256개
3512개
41,024개
정답 및 해설

캐시의 총 라인 수는 1,024개이다.

세트 필드가 9비트이므로 세트 수는 29=5122^{9} = 512개이다.
2-way 집합 연관 사상은 세트당 라인이 2개이므로 512×2=1024512 \times 2 = 1024개가 된다.

  • 128개는 오프셋 필드 7비트로 계산되는 블록 내 바이트 수(272^{7})와 혼동한 값이다.
  • 256개는 태그 필드 8비트(282^{8})로 계산한 값으로, 태그는 라인 수와 무관하다.
  • 512개는 세트 수만 센 값으로, 세트당 2개 라인이라는 점을 빠뜨린 것이다.
문제 9
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
#define SIZE 3
void func(int *m, int *a, int b);

int main(void){
int num[SIZE] = { 1, 3, 6 };
int a=10, b=30;

func(num, &a, b);
printf("a = %d, b = %d\n", a, b);

return 0;
}
void func(int *m, int *x, int y){
int i = 0, n = 0;
y = *x;
n = *(m + 1) + (*m + 2);
*x = ++n;
}
1a = 7, b = 10
2a = 7, b = 30
3a = 10, b = 10
4a = 10, b = 30
정답 및 해설

출력은 a = 7, b = 30이다.

func에서 m은 num 배열을 가리키므로 *(m + 1)은 3, (*m + 2)는 1 + 2 = 3이 되어 n = 6이다.
이어서 ++n으로 n이 7이 된 뒤 *x에 저장되는데, x는 main의 a 주소이므로 a가 7로 바뀐다.

b는 값으로 전달되어 func 안의 y = *x 대입은 지역 변수 y만 바꾸므로 main의 b는 30 그대로이다.

  • a = 7, b = 10은 y에 대입한 값이 main의 b에 반영된다고 본 결과로, 값에 의한 전달을 잘못 이해한 것이다.
  • a = 10, b = 10과 a = 10, b = 30은 포인터 x를 통한 a의 변경을 반영하지 않은 결과이다.
문제 10
TCP 프로토콜에 대한 설명으로 옳지 않은 것은?
1전이중(full duplex) 연결 서비스를 제공한다.
23-way 핸드셰이크(handshake)를 사용하여 연결을 설정한다.
3흐름제어(flow control)와 혼잡제어(congestion control)를 제공한다.
4TCP 세그먼트(segment)에서 검사합(checksum)의 포함은 선택 사항이다.
정답 및 해설

옳지 않은 설명은 TCP 세그먼트의 검사합 포함이 선택 사항이라는 것이다. TCP에서 검사합은 필수 필드이다.

TCP는 신뢰성 있는 연결형 전송 프로토콜로, 헤더의 검사합(checksum)을 반드시 계산해 넣어 오류를 검출한다. 검사합 사용이 IPv4에서 선택인 것은 UDP의 경우이다.

  • 전이중 연결: 하나의 연결에서 양방향으로 동시에 데이터를 주고받는다.
  • 3-way 핸드셰이크: SYN, SYN+ACK, ACK 세 번의 교환으로 연결을 설정한다.
  • 흐름제어와 혼잡제어: 슬라이딩 윈도우로 흐름을 조절하고 혼잡 윈도우로 네트워크 혼잡에 대응한다.
문제 11
사용자가 인터넷 등을 통해 하드웨어, 소프트웨어 등의 컴퓨팅 자원을 원격으로 필요한 만큼 빌려서 사용하는 방식의 서비스 기술은?
1클라우드 컴퓨팅
2유비쿼터스 센서 네트워크
3웨어러블 컴퓨터
4소셜 네트워크
정답 및 해설

설명에 해당하는 기술은 클라우드 컴퓨팅이다.

클라우드 컴퓨팅은 서버·저장장치·소프트웨어 같은 자원을 인터넷으로 필요한 만큼 빌려 쓰고 사용량에 따라 비용을 내는 서비스 방식이다(IaaS, PaaS, SaaS 등).

  • 유비쿼터스 센서 네트워크: 센서 노드들이 주변 정보를 수집해 무선으로 전달하는 네트워크이다.
  • 웨어러블 컴퓨터: 안경·시계·의복처럼 몸에 착용하는 컴퓨터 기기이다.
  • 소셜 네트워크: 사용자 간 관계를 기반으로 정보를 공유하는 온라인 서비스이다.
문제 12
다음 이진 트리의 노드를 전위 순회(preorder traversal)할 경우의 방순서는?
1A-B-C-D-E-F-G-H
2A-B-D-E-G-C-F-H
3D-B-G-E-A-F-H-C
4D-G-E-B-H-F-C-A
정답 및 해설

전위 순회 결과는 A-B-D-E-G-C-F-H이다.

전위 순회는 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 순으로 방문한다. A 다음 왼쪽 서브트리 B, D, E, G를 차례로 방문하고, 오른쪽 서브트리 C, F, H로 넘어간다.

  • A-B-C-D-E-F-G-H는 같은 깊이의 노드를 위에서부터 차례로 방문한 레벨 순회 결과이다.
  • D-B-G-E-A-F-H-C는 왼쪽 → 루트 → 오른쪽 순서인 중위 순회 결과이다.
  • D-G-E-B-H-F-C-A는 왼쪽 → 오른쪽 → 루트 순서인 후위 순회 결과이다.
문제 13
전자메일의 송신 또는 수신을 목적으로 하는 응용 계층 프로토콜에 해당하지 않는 것은?
1IMAP
2POP3
3SMTP
4SNMP
정답 및 해설

전자메일 송수신용이 아닌 프로토콜은 SNMP이다.

SNMP(Simple Network Management Protocol)는 라우터·스위치 등 네트워크 장비를 감시·관리하기 위한 응용 계층 프로토콜이다.

  • IMAP: 메일 서버에 저장된 메일을 서버에 둔 채로 조회·관리하는 수신 프로토콜이다.
  • POP3: 메일 서버의 메일을 클라이언트로 내려받는 수신 프로토콜이다.
  • SMTP: 메일을 송신하고 서버 간에 전달하는 프로토콜이다.
문제 14
모바일 기기에 특화된 운영체제에 해당하지 않는 것은?
1iOS
2Android
3Symbian
4Solaris
정답 및 해설

모바일 기기 전용 운영체제가 아닌 것은 Solaris이다.

Solaris는 썬 마이크로시스템즈(현 오라클)가 개발한 서버·워크스테이션용 유닉스 계열 운영체제이다.

  • iOS: 애플의 아이폰·아이패드용 모바일 운영체제이다.
  • Android: 구글이 주도하는 리눅스 커널 기반 모바일 운영체제이다.
  • Symbian: 노키아 등의 휴대전화에 쓰인 모바일 운영체제이다.
문제 15
다음 표는 단일 중앙처리장치에 진입한 프로세스의 도착 시간과 그 프로세스를 처리하는 데 필요한 실행 시간을 나타낸 것이다. 비선점 SJF(Shortest Job First) 스케줄링 알고리즘을 사용한 경우, P1, P2, P3, P4 프로세스 4개의 평균 대기 시간은? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하며, 주어진 4개의 프로세스 외에 처리할 다른 프로세스는 없다고 가정한다)
프로세서도착 시간(ms)실행 시간(ms)
P105
P236
P343
P464
13ms
23.5ms
34ms
44.5ms
정답 및 해설

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

시각 0에는 P1만 있으므로 P1이 0~5ms에 실행된다. 시각 5에는 P2(6ms)와 P3(3ms)가 대기 중이므로 짧은 P3가 5~8ms에 실행된다.
시각 8에는 P2(6ms)와 P4(4ms) 중 P4가 8~12ms, 마지막으로 P2가 12~18ms에 실행된다.

대기 시간은 P1 0, P2 12 − 3 = 9, P3 5 − 4 = 1, P4 8 − 6 = 2ms이다.
합계 12ms를 4로 나누면 평균 3ms가 된다.

  • 3.5ms는 대기 시간 합이 14ms일 때의 값으로, 비선점 SJF 순서(P1→P3→P4→P2)로 구한 합 12ms와 맞지 않는다.
  • 4ms는 대기 시간 합이 16ms일 때의 값으로, 짧은 작업을 먼저 고르는 SJF 순서를 따르지 않은 결과이다.
  • 4.5ms는 대기 시간 합이 18ms일 때의 값으로, 위 실행 순서에서 나오지 않는다.
문제 16
IPv4와 IPv6에 대한 설명으로 옳지 않은 것은?
1IPv4는 비연결형 프로토콜이다.
2IPv6 주소의 비트 수는 IPv4 주소 비트 수의 2배이다.
3IPv6는 애니캐스트(anycast) 주소를 지원한다.
4IPv6는 IPv4 네트워크와의 호환성을 위한 방법을 제공한다.
정답 및 해설

옳지 않은 설명은 IPv6 주소 비트 수가 IPv4의 2배라는 것이다.

IPv4 주소는 32비트, IPv6 주소는 128비트이므로 IPv6는 IPv4의 4배이다.

  • IPv4는 연결 설정 없이 데이터그램을 개별 전송하는 비연결형 프로토콜이다.
  • IPv6는 유니캐스트·멀티캐스트와 함께, 그룹 중 가장 가까운 한 노드로 전달하는 애니캐스트 주소를 지원한다.
  • IPv6는 듀얼 스택, 터널링, 주소 변환 등 IPv4 망과의 공존·전환 방법을 제공한다.
문제 17
순차논리회로(sequential logic circuit)에 해당하는 것은?
13-to-8 디코더(decoder)
2전가산기(full adder)
3동기식 카운터(synchronous counter)
44-to-1 멀티플렉서(multiplexer)
정답 및 해설

순차논리회로에 해당하는 것은 동기식 카운터이다.

순차논리회로는 플립플롭 같은 기억 소자를 포함해 현재 입력과 이전 상태에 따라 출력이 정해진다. 동기식 카운터는 플립플롭들이 같은 클록에 맞춰 상태를 바꾸며 수를 센다.

  • 3-to-8 디코더: 입력 조합만으로 출력이 정해지는 조합논리회로이다.
  • 전가산기: 두 비트와 자리올림 입력만으로 합과 자리올림을 내는 조합논리회로이다.
  • 4-to-1 멀티플렉서: 선택 신호에 따라 입력 하나를 고르는 조합논리회로이다.
문제 18
클록(clock) 주파수가 2GHz인 중앙처리장치를 사용하는 컴퓨터 A에서 프로그램 P를 실행하는 데 10초가 소요된다. 클록 주파수가 더 높은 중앙처리장치를 사용하는 컴퓨터 B에서 프로그램 P를 실행하면, 소요되는 클록 사이클 수는 컴퓨터 A에 대비하여 1.5배로 증가하나 실행 시간은 6초로 감소한다. 컴퓨터 B에 사용된 중앙처리장치의 클록 주파수는? (단, 실행 시간은 중앙처리장치의 실행 시간만을 고려한 것이며 프로그램 P만 실행하여 측정된다)
13GHz
24GHz
35GHz
46GHz
정답 및 해설

컴퓨터 B의 클록 주파수는 5GHz이다.

실행 시간 = 클록 사이클 수 ÷ 클록 주파수 이므로, 클록 사이클 수 = 실행 시간 × 클록 주파수이다.

컴퓨터 A의 사이클 수: 10 s×2×109 Hz=2×101010\,\mathrm{s} \times 2 \times 10^{9}\,\mathrm{Hz} = 2 \times 10^{10}
컴퓨터 B의 사이클 수: 1.5×2×1010=3×10101.5 \times 2 \times 10^{10} = 3 \times 10^{10}

B의 클록 주파수: 3×10106 s=5×109 Hz\dfrac{3 \times 10^{10}}{6\,\mathrm{s}} = 5 \times 10^{9}\,\mathrm{Hz}, 즉 5GHz이다.

문제 19
다음 Java 프로그램의 출력 결과는?
public class Foo {
public static void main(String[] args) {
int i, j, k;
for (i = 1, j = 1, k = 0; i < 5; i++ ) {
if ((i % 2) == 0)
continue;
k += i * j++;
}
System.out.println(k);
}
}
15
27
311
415
정답 및 해설

출력은 7이다.

i가 짝수이면 continue로 누적을 건너뛰므로 i = 1, 3일 때만 k가 바뀐다. j++는 후위 증가라 현재 j 값으로 곱한 뒤 j를 1 늘린다.

i = 1: k = 0 + 1 × 1 = 1, j는 2가 된다.
i = 3: k = 1 + 3 × 2 = 7, j는 3이 된다.

  • 5는 위 추적에서 어느 단계의 k 값으로도 나오지 않는다.
  • 11은 j++를 전위 증가처럼 보아 1 × 2 + 3 × 3으로 계산한 결과이다.
  • 15는 continue로 짝수 i를 건너뛰는 위 추적에서 k가 가질 수 없는 값이다.
문제 20
다음 카르노 맵(Karnaugh map)으로 표현된 부울 함수 F(A, B, C, D)를 곱의 합(sum of products) 형태로 최소화(minimization)한 결과는? (단, X는 무관(don't care) 조건을 나타낸다)
CD\AB00011110
0001X1
010X00
11X100
1001X1
1F(A, B, C, D) = AD' + BC'D' + A'BC
2F(A, B, C, D) = AB'D' + BC'D' + A'BC
3F(A, B, C, D) = A'B + AD'
4F(A, B, C, D) = A'C + AD'
정답 및 해설

최소화 결과는 F(A, B, C, D) = A'B + AD'이다.

AB = 01 열의 네 칸은 1, X, 1, 1이므로 무관 조건을 1로 보고 4칸을 묶으면 A'B가 된다.
AB = 11, 10 열에서 CD = 00, 10 행의 네 칸은 X, 1, X, 1이므로 맵의 위아래 경계를 이어 4칸을 묶으면 AD'가 된다.

두 묶음으로 1인 칸이 모두 덮이고 0인 칸은 하나도 포함되지 않는다.

  • AD' + BC'D' + A'BC는 A'B로 한 번에 묶을 수 있는 칸을 작은 묶음으로 나눠 최소형이 아니다.
  • AB'D' + BC'D' + A'BC도 1인 칸을 모두 덮지만 더 작은 묶음으로 나눠 항이 많아진 식으로 최소형이 아니다.
  • A'C + AD'는 A'C 묶음이 AB = 00, CD = 10의 0인 칸을 포함하고, AB = 01, CD = 00의 1인 칸을 덮지 못한다.
9급 지방직 컴퓨터일반 기출문제모두CBT · moducbt.com
18년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
선형 자료구조에 해당하지 않는 것은?
1큐
2스택
3이진 트리
4단순 연결 리스트
정답 및 해설

선형 자료구조가 아닌 것은 이진 트리이다.

선형 자료구조는 원소가 앞뒤 1:1 순서로 한 줄로 이어지고, 비선형 자료구조는 한 원소가 여러 원소와 계층·망 형태로 연결된다. 이진 트리는 한 노드가 최대 두 자식을 갖는 계층 구조이므로 비선형이다.

  • 큐: 한쪽에서 삽입하고 반대쪽에서 삭제하는 선형 구조(FIFO)이다.
  • 스택: 한쪽 끝에서만 삽입·삭제하는 선형 구조(LIFO)이다.
  • 단순 연결 리스트: 각 노드가 다음 노드 하나만 가리키며 한 줄로 이어지는 선형 구조이다.
문제 2
비트열(bit string) A를 2의 보수로 표현된 부호 있는(signed) 2진 정수로 해석한 값은 -5이다. 비트열 A를 1의 보수로 표현된 부호 있는 2진 정수로 해석한 값은?
1-4
2-5
3-6
4-7
정답 및 해설

비트열 A를 1의 보수로 해석하면 -4이다.

4비트로 보면 +5는 0101이고, 2의 보수 -5는 각 비트를 반전(1010)한 뒤 1을 더한 1011이다.

1011을 1의 보수로 해석하면 부호 비트가 1이므로 음수이고, 크기는 비트를 반전한 0100 = 4이다.
따라서 값은 -4이다(비트 수를 늘려 부호 확장해도 결과는 같다).

일반적으로 같은 음수 비트열은 1의 보수 해석값이 2의 보수 해석값보다 절댓값이 1 작다.

문제 3
직원 테이블 emp의 모든 레코드를 근무연수 wyear에 대해서는 내림차순으로, 동일 근무연수에 대해서는 나이 age의 오름차순으로 정렬한 결과를 얻기 위한 SQL 질의문은?
1SELECT * FROM emp ORDER BY age, wyear DESC;
2SELECT * FROM emp ORDER BY age ASC, wyear;
3SELECT * FROM emp ORDER BY wyear DESC, age;
4SELECT * FROM emp ORDER BY wyear, age ASC;
정답 및 해설

올바른 질의문은 ORDER BY wyear DESC, age를 쓴 것이다.

ORDER BY는 앞에 적은 열이 1차 정렬 기준이고, 값이 같을 때 다음 열로 정렬한다. 정렬 방향을 생략하면 기본값은 오름차순(ASC)이므로 age만 적어도 오름차순이 된다.

  • ORDER BY age, wyear DESC: 나이가 1차 기준이 되어 요구와 순서가 반대이다.
  • ORDER BY age ASC, wyear: 나이가 1차 기준이고 근무연수도 오름차순이다.
  • ORDER BY wyear, age ASC: 근무연수가 오름차순으로 정렬되어 내림차순 조건에 맞지 않는다.
문제 4
다음에서 설명하는 디스크 스케줄링은?
  • 디스크 헤드가 한쪽 방향으로 트랙의 끝까지 이동하면서 만나는 요청을 모두 처리한다. 트랙의 끝에 도달하면 반대 방향으로 이동하면서 만나는 요청을 모두 처리한다. 이러한 방식으로 헤드가 디스크 양쪽을 계속 왕복하면서 남은 요청을 처리한다.
1선입 선처리(FCFS) 스케줄링
2최소 탐색 시간 우선(SSTF) 스케줄링
3스캔(SCAN) 스케줄링
4라운드 로빈(RR) 스케줄링
정답 및 해설

설명된 방식은 스캔(SCAN) 스케줄링이다.

헤드가 한 방향으로 트랙 끝까지 이동하며 요청을 처리하고, 끝에 닿으면 방향을 바꿔 되돌아오며 처리한다. 엘리베이터처럼 왕복하므로 엘리베이터 알고리즘이라고도 한다.

  • 선입 선처리(FCFS)는 요청이 도착한 순서대로 처리할 뿐 헤드 이동 방향을 고려하지 않는다.
  • 최소 탐색 시간 우선(SSTF)은 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리하므로 방향이 수시로 바뀐다.
  • 라운드 로빈(RR)은 시간 할당량 단위로 프로세스를 돌아가며 실행하는 CPU 스케줄링 기법으로, 디스크 스케줄링이 아니다.
문제 5
정보량의 크기가 작은 것에서 큰 순서대로 바르게 나열한 것은? (단, PB, TB, ZB, EB는 각각 petabyte, terabyte, zettabyte, exabyte이다)
11PB, 1TB, 1ZB, 1EB
21PB, 1TB, 1EB, 1ZB
31TB, 1PB, 1ZB, 1EB
41TB, 1PB, 1EB, 1ZB
정답 및 해설

작은 것부터 나열하면 1TB, 1PB, 1EB, 1ZB 순이다.

정보량 단위는 한 단계 올라갈 때마다 1,024배(10진 접두어로는 1,000배)씩 커지며, 순서는 KB → MB → GB → TB → PB → EB → ZB → YB이다.

  • PB를 TB보다 앞에 둔 나열은 페타바이트가 테라바이트보다 큰 단위라는 점에 어긋난다.
  • ZB를 EB보다 앞에 둔 나열은 제타바이트가 엑사바이트보다 큰 단위라는 점에 어긋난다.
문제 6
다음에서 설명하는 RAID 레벨은?
  • 블록 단위 스트라이핑(striping)을 통해 데이터를 여러 디스크에 분산 저장한다.
  • 패리티를 패리티 전용 디스크에 저장한다.
1RAID 레벨 1
2RAID 레벨 2
3RAID 레벨 4
4RAID 레벨 5
정답 및 해설

블록 단위 스트라이핑과 패리티 전용 디스크를 쓰는 구성은 RAID 레벨 4이다.

RAID 4는 데이터를 블록 단위로 여러 디스크에 나누어 저장하고, 패리티는 별도의 한 디스크에 모아 둔다. 쓰기마다 패리티 디스크에 접근이 몰리는 병목이 단점이다.

  • RAID 레벨 1은 같은 데이터를 두 디스크에 그대로 복제하는 미러링 방식으로 패리티를 쓰지 않는다.
  • RAID 레벨 2는 비트 단위로 분산하고 해밍 코드로 오류를 정정하는 방식이다.
  • RAID 레벨 5는 블록 단위 스트라이핑을 하되 패리티를 전용 디스크가 아니라 모든 디스크에 분산 저장한다.
문제 7
소프트웨어 개발을 위한 애자일 기법에 대한 설명으로 옳은 것은?
1소프트웨어를 점증적으로 개발한다.
2작동하는 소프트웨어보다 포괄적인 문서에 더 가치를 둔다.
3계획에 따라 단계적으로 개발하므로 변화에 대응하기 어렵다.
4고객과의 협업보다 계약 협상을 더 중요시한다.
정답 및 해설

애자일 기법에 대한 옳은 설명은 소프트웨어를 점증적으로 개발한다는 것이다.

애자일은 짧은 반복 주기마다 동작하는 결과물을 조금씩 늘려 가는 반복·점증적 개발 방식이며, 애자일 선언문은 문서보다 작동하는 소프트웨어, 계약보다 고객 협업, 계획보다 변화 대응을 더 중시한다.

  • 포괄적인 문서를 작동하는 소프트웨어보다 중시한다는 설명은 선언문과 반대이다.
  • 계획에 따라 단계적으로 진행해 변화 대응이 어렵다는 것은 폭포수 모형의 특징이다.
  • 계약 협상을 고객 협업보다 중시한다는 설명은 선언문과 반대이다.
문제 8
2-way 집합 연관 사상(set-associative mapping) 방식을 사용하는 캐시 기억장치를 가진 컴퓨터가 있다. 캐시 기억장치 접근(access)을 위해 주기억장치 주소가 다음 세 필드(field)로 구분된다면, 캐시 기억장치의 총 라인(line) 개수는?
태그(tag) 필드세트(set) 필드오프셋(offset) 필드
8비트9비트7비트
1128개
2256개
3512개
41,024개
정답 및 해설

캐시의 총 라인 수는 1,024개이다.

세트 필드가 9비트이므로 세트 수는 29=5122^{9} = 512개이다.
2-way 집합 연관 사상은 세트당 라인이 2개이므로 512×2=1024512 \times 2 = 1024개가 된다.

  • 128개는 오프셋 필드 7비트로 계산되는 블록 내 바이트 수(272^{7})와 혼동한 값이다.
  • 256개는 태그 필드 8비트(282^{8})로 계산한 값으로, 태그는 라인 수와 무관하다.
  • 512개는 세트 수만 센 값으로, 세트당 2개 라인이라는 점을 빠뜨린 것이다.
문제 9
다음 C 프로그램의 출력 결과는?
#include <stdio.h>
#define SIZE 3
void func(int *m, int *a, int b);

int main(void){
int num[SIZE] = { 1, 3, 6 };
int a=10, b=30;

func(num, &a, b);
printf("a = %d, b = %d\n", a, b);

return 0;
}
void func(int *m, int *x, int y){
int i = 0, n = 0;
y = *x;
n = *(m + 1) + (*m + 2);
*x = ++n;
}
1a = 7, b = 10
2a = 7, b = 30
3a = 10, b = 10
4a = 10, b = 30
정답 및 해설

출력은 a = 7, b = 30이다.

func에서 m은 num 배열을 가리키므로 *(m + 1)은 3, (*m + 2)는 1 + 2 = 3이 되어 n = 6이다.
이어서 ++n으로 n이 7이 된 뒤 *x에 저장되는데, x는 main의 a 주소이므로 a가 7로 바뀐다.

b는 값으로 전달되어 func 안의 y = *x 대입은 지역 변수 y만 바꾸므로 main의 b는 30 그대로이다.

  • a = 7, b = 10은 y에 대입한 값이 main의 b에 반영된다고 본 결과로, 값에 의한 전달을 잘못 이해한 것이다.
  • a = 10, b = 10과 a = 10, b = 30은 포인터 x를 통한 a의 변경을 반영하지 않은 결과이다.
문제 10
TCP 프로토콜에 대한 설명으로 옳지 않은 것은?
1전이중(full duplex) 연결 서비스를 제공한다.
23-way 핸드셰이크(handshake)를 사용하여 연결을 설정한다.
3흐름제어(flow control)와 혼잡제어(congestion control)를 제공한다.
4TCP 세그먼트(segment)에서 검사합(checksum)의 포함은 선택 사항이다.
정답 및 해설

옳지 않은 설명은 TCP 세그먼트의 검사합 포함이 선택 사항이라는 것이다. TCP에서 검사합은 필수 필드이다.

TCP는 신뢰성 있는 연결형 전송 프로토콜로, 헤더의 검사합(checksum)을 반드시 계산해 넣어 오류를 검출한다. 검사합 사용이 IPv4에서 선택인 것은 UDP의 경우이다.

  • 전이중 연결: 하나의 연결에서 양방향으로 동시에 데이터를 주고받는다.
  • 3-way 핸드셰이크: SYN, SYN+ACK, ACK 세 번의 교환으로 연결을 설정한다.
  • 흐름제어와 혼잡제어: 슬라이딩 윈도우로 흐름을 조절하고 혼잡 윈도우로 네트워크 혼잡에 대응한다.
문제 11
사용자가 인터넷 등을 통해 하드웨어, 소프트웨어 등의 컴퓨팅 자원을 원격으로 필요한 만큼 빌려서 사용하는 방식의 서비스 기술은?
1클라우드 컴퓨팅
2유비쿼터스 센서 네트워크
3웨어러블 컴퓨터
4소셜 네트워크
정답 및 해설

설명에 해당하는 기술은 클라우드 컴퓨팅이다.

클라우드 컴퓨팅은 서버·저장장치·소프트웨어 같은 자원을 인터넷으로 필요한 만큼 빌려 쓰고 사용량에 따라 비용을 내는 서비스 방식이다(IaaS, PaaS, SaaS 등).

  • 유비쿼터스 센서 네트워크: 센서 노드들이 주변 정보를 수집해 무선으로 전달하는 네트워크이다.
  • 웨어러블 컴퓨터: 안경·시계·의복처럼 몸에 착용하는 컴퓨터 기기이다.
  • 소셜 네트워크: 사용자 간 관계를 기반으로 정보를 공유하는 온라인 서비스이다.
문제 12
다음 이진 트리의 노드를 전위 순회(preorder traversal)할 경우의 방순서는?
1A-B-C-D-E-F-G-H
2A-B-D-E-G-C-F-H
3D-B-G-E-A-F-H-C
4D-G-E-B-H-F-C-A
정답 및 해설

전위 순회 결과는 A-B-D-E-G-C-F-H이다.

전위 순회는 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 순으로 방문한다. A 다음 왼쪽 서브트리 B, D, E, G를 차례로 방문하고, 오른쪽 서브트리 C, F, H로 넘어간다.

  • A-B-C-D-E-F-G-H는 같은 깊이의 노드를 위에서부터 차례로 방문한 레벨 순회 결과이다.
  • D-B-G-E-A-F-H-C는 왼쪽 → 루트 → 오른쪽 순서인 중위 순회 결과이다.
  • D-G-E-B-H-F-C-A는 왼쪽 → 오른쪽 → 루트 순서인 후위 순회 결과이다.
문제 13
전자메일의 송신 또는 수신을 목적으로 하는 응용 계층 프로토콜에 해당하지 않는 것은?
1IMAP
2POP3
3SMTP
4SNMP
정답 및 해설

전자메일 송수신용이 아닌 프로토콜은 SNMP이다.

SNMP(Simple Network Management Protocol)는 라우터·스위치 등 네트워크 장비를 감시·관리하기 위한 응용 계층 프로토콜이다.

  • IMAP: 메일 서버에 저장된 메일을 서버에 둔 채로 조회·관리하는 수신 프로토콜이다.
  • POP3: 메일 서버의 메일을 클라이언트로 내려받는 수신 프로토콜이다.
  • SMTP: 메일을 송신하고 서버 간에 전달하는 프로토콜이다.
문제 14
모바일 기기에 특화된 운영체제에 해당하지 않는 것은?
1iOS
2Android
3Symbian
4Solaris
정답 및 해설

모바일 기기 전용 운영체제가 아닌 것은 Solaris이다.

Solaris는 썬 마이크로시스템즈(현 오라클)가 개발한 서버·워크스테이션용 유닉스 계열 운영체제이다.

  • iOS: 애플의 아이폰·아이패드용 모바일 운영체제이다.
  • Android: 구글이 주도하는 리눅스 커널 기반 모바일 운영체제이다.
  • Symbian: 노키아 등의 휴대전화에 쓰인 모바일 운영체제이다.
문제 15
다음 표는 단일 중앙처리장치에 진입한 프로세스의 도착 시간과 그 프로세스를 처리하는 데 필요한 실행 시간을 나타낸 것이다. 비선점 SJF(Shortest Job First) 스케줄링 알고리즘을 사용한 경우, P1, P2, P3, P4 프로세스 4개의 평균 대기 시간은? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하며, 주어진 4개의 프로세스 외에 처리할 다른 프로세스는 없다고 가정한다)
프로세서도착 시간(ms)실행 시간(ms)
P105
P236
P343
P464
13ms
23.5ms
34ms
44.5ms
정답 및 해설

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

시각 0에는 P1만 있으므로 P1이 0~5ms에 실행된다. 시각 5에는 P2(6ms)와 P3(3ms)가 대기 중이므로 짧은 P3가 5~8ms에 실행된다.
시각 8에는 P2(6ms)와 P4(4ms) 중 P4가 8~12ms, 마지막으로 P2가 12~18ms에 실행된다.

대기 시간은 P1 0, P2 12 − 3 = 9, P3 5 − 4 = 1, P4 8 − 6 = 2ms이다.
합계 12ms를 4로 나누면 평균 3ms가 된다.

  • 3.5ms는 대기 시간 합이 14ms일 때의 값으로, 비선점 SJF 순서(P1→P3→P4→P2)로 구한 합 12ms와 맞지 않는다.
  • 4ms는 대기 시간 합이 16ms일 때의 값으로, 짧은 작업을 먼저 고르는 SJF 순서를 따르지 않은 결과이다.
  • 4.5ms는 대기 시간 합이 18ms일 때의 값으로, 위 실행 순서에서 나오지 않는다.
문제 16
IPv4와 IPv6에 대한 설명으로 옳지 않은 것은?
1IPv4는 비연결형 프로토콜이다.
2IPv6 주소의 비트 수는 IPv4 주소 비트 수의 2배이다.
3IPv6는 애니캐스트(anycast) 주소를 지원한다.
4IPv6는 IPv4 네트워크와의 호환성을 위한 방법을 제공한다.
정답 및 해설

옳지 않은 설명은 IPv6 주소 비트 수가 IPv4의 2배라는 것이다.

IPv4 주소는 32비트, IPv6 주소는 128비트이므로 IPv6는 IPv4의 4배이다.

  • IPv4는 연결 설정 없이 데이터그램을 개별 전송하는 비연결형 프로토콜이다.
  • IPv6는 유니캐스트·멀티캐스트와 함께, 그룹 중 가장 가까운 한 노드로 전달하는 애니캐스트 주소를 지원한다.
  • IPv6는 듀얼 스택, 터널링, 주소 변환 등 IPv4 망과의 공존·전환 방법을 제공한다.
문제 17
순차논리회로(sequential logic circuit)에 해당하는 것은?
13-to-8 디코더(decoder)
2전가산기(full adder)
3동기식 카운터(synchronous counter)
44-to-1 멀티플렉서(multiplexer)
정답 및 해설

순차논리회로에 해당하는 것은 동기식 카운터이다.

순차논리회로는 플립플롭 같은 기억 소자를 포함해 현재 입력과 이전 상태에 따라 출력이 정해진다. 동기식 카운터는 플립플롭들이 같은 클록에 맞춰 상태를 바꾸며 수를 센다.

  • 3-to-8 디코더: 입력 조합만으로 출력이 정해지는 조합논리회로이다.
  • 전가산기: 두 비트와 자리올림 입력만으로 합과 자리올림을 내는 조합논리회로이다.
  • 4-to-1 멀티플렉서: 선택 신호에 따라 입력 하나를 고르는 조합논리회로이다.
문제 18
클록(clock) 주파수가 2GHz인 중앙처리장치를 사용하는 컴퓨터 A에서 프로그램 P를 실행하는 데 10초가 소요된다. 클록 주파수가 더 높은 중앙처리장치를 사용하는 컴퓨터 B에서 프로그램 P를 실행하면, 소요되는 클록 사이클 수는 컴퓨터 A에 대비하여 1.5배로 증가하나 실행 시간은 6초로 감소한다. 컴퓨터 B에 사용된 중앙처리장치의 클록 주파수는? (단, 실행 시간은 중앙처리장치의 실행 시간만을 고려한 것이며 프로그램 P만 실행하여 측정된다)
13GHz
24GHz
35GHz
46GHz
정답 및 해설

컴퓨터 B의 클록 주파수는 5GHz이다.

실행 시간 = 클록 사이클 수 ÷ 클록 주파수 이므로, 클록 사이클 수 = 실행 시간 × 클록 주파수이다.

컴퓨터 A의 사이클 수: 10 s×2×109 Hz=2×101010\,\mathrm{s} \times 2 \times 10^{9}\,\mathrm{Hz} = 2 \times 10^{10}
컴퓨터 B의 사이클 수: 1.5×2×1010=3×10101.5 \times 2 \times 10^{10} = 3 \times 10^{10}

B의 클록 주파수: 3×10106 s=5×109 Hz\dfrac{3 \times 10^{10}}{6\,\mathrm{s}} = 5 \times 10^{9}\,\mathrm{Hz}, 즉 5GHz이다.

문제 19
다음 Java 프로그램의 출력 결과는?
public class Foo {
public static void main(String[] args) {
int i, j, k;
for (i = 1, j = 1, k = 0; i < 5; i++ ) {
if ((i % 2) == 0)
continue;
k += i * j++;
}
System.out.println(k);
}
}
15
27
311
415
정답 및 해설

출력은 7이다.

i가 짝수이면 continue로 누적을 건너뛰므로 i = 1, 3일 때만 k가 바뀐다. j++는 후위 증가라 현재 j 값으로 곱한 뒤 j를 1 늘린다.

i = 1: k = 0 + 1 × 1 = 1, j는 2가 된다.
i = 3: k = 1 + 3 × 2 = 7, j는 3이 된다.

  • 5는 위 추적에서 어느 단계의 k 값으로도 나오지 않는다.
  • 11은 j++를 전위 증가처럼 보아 1 × 2 + 3 × 3으로 계산한 결과이다.
  • 15는 continue로 짝수 i를 건너뛰는 위 추적에서 k가 가질 수 없는 값이다.
문제 20
다음 카르노 맵(Karnaugh map)으로 표현된 부울 함수 F(A, B, C, D)를 곱의 합(sum of products) 형태로 최소화(minimization)한 결과는? (단, X는 무관(don't care) 조건을 나타낸다)
CD\AB00011110
0001X1
010X00
11X100
1001X1
1F(A, B, C, D) = AD' + BC'D' + A'BC
2F(A, B, C, D) = AB'D' + BC'D' + A'BC
3F(A, B, C, D) = A'B + AD'
4F(A, B, C, D) = A'C + AD'
정답 및 해설

최소화 결과는 F(A, B, C, D) = A'B + AD'이다.

AB = 01 열의 네 칸은 1, X, 1, 1이므로 무관 조건을 1로 보고 4칸을 묶으면 A'B가 된다.
AB = 11, 10 열에서 CD = 00, 10 행의 네 칸은 X, 1, X, 1이므로 맵의 위아래 경계를 이어 4칸을 묶으면 AD'가 된다.

두 묶음으로 1인 칸이 모두 덮이고 0인 칸은 하나도 포함되지 않는다.

  • AD' + BC'D' + A'BC는 A'B로 한 번에 묶을 수 있는 칸을 작은 묶음으로 나눠 최소형이 아니다.
  • AB'D' + BC'D' + A'BC도 1인 칸을 모두 덮지만 더 작은 묶음으로 나눠 항이 많아진 식으로 최소형이 아니다.
  • A'C + AD'는 A'C 묶음이 AB = 00, CD = 10의 0인 칸을 포함하고, AB = 01, CD = 00의 1인 칸을 덮지 못한다.