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

24년 1회차

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

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

24년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
이미지 파일 형식에 해당하지 않는 것은?
1WAV
2BMP
3TIFF
4JPEG
정답 및 해설

WAV는 이미지가 아니라 오디오(음성) 파일 형식이다.

WAV는 마이크로소프트와 IBM이 정의한 무압축 PCM 기반의 소리 저장 형식이다.

  • BMP: 윈도우 표준 비트맵 이미지 형식으로, 보통 압축 없이 픽셀을 저장한다.
  • TIFF: 태그 구조를 가진 고품질 이미지 형식으로, 인쇄·출판에 널리 쓰인다.
  • JPEG: 손실 압축을 쓰는 사진용 이미지 형식이다.
문제 2
DDL(Data Definition Language) 명령어에 해당하지 않는 것은?
1ALTER
2DROP
3SELECT
4CREATE
정답 및 해설

SELECT는 데이터를 조회하는 DML(데이터 조작어)이므로 DDL이 아니다.

DDL은 테이블·뷰·인덱스 같은 스키마 객체를 정의·변경·삭제하는 명령어이다.

  • ALTER: 기존 테이블 구조를 변경하는 DDL이다.
  • DROP: 스키마 객체를 삭제하는 DDL이다.
  • CREATE: 스키마 객체를 새로 생성하는 DDL이다.
문제 3
8진수 543(8)543_{(8)}과 10진수 124(10)124_{(10)}의 합을 8진수로 표현한 것은?
1626(8)626_{(8)}
2637(8)637_{(8)}
3726(8)726_{(8)}
4737(8)737_{(8)}
정답 및 해설

두 수를 10진수로 바꿔 더한 뒤 8진수로 바꾸면 737(8)737_{(8)}이다.

543(8)=5×64+4×8+3=355543_{(8)} = 5 \times 64 + 4 \times 8 + 3 = 355
355+124=479355 + 124 = 479

479=7×64+3×8+7479 = 7 \times 64 + 3 \times 8 + 7이므로 8진수로 737(8)737_{(8)}이다.

  • 626(8)626_{(8)}, 637(8)637_{(8)}, 726(8)726_{(8)}는 각각 10진수 406, 415, 470으로 합계 479와 다르다.
문제 4
OSI 모델에서 데이터 링크 계층의 프로토콜 데이터 단위(protocol data unit)는?
1비트(bit)
2패킷(packet)
3프레임(frame)
4세그먼트(segment)
정답 및 해설

데이터 링크 계층의 PDU는 프레임(frame)이다.

데이터 링크 계층은 상위 계층 패킷에 MAC 주소 헤더와 오류 검출용 트레일러를 붙여 프레임 단위로 전송한다.

  • 비트: 물리 계층의 전송 단위이다.
  • 패킷: 네트워크 계층의 PDU이다.
  • 세그먼트: 전송 계층(TCP)의 PDU이다.
문제 5
이메일 송신 또는 수신을 위한 프로토콜에 해당하지 않는 것은?
1POP3
2SMTP
3FTP
4IMAP
정답 및 해설

FTP는 파일 전송 프로토콜로, 이메일 송수신용이 아니다.

이메일은 송신에 SMTP, 수신(메일함 접근)에 POP3·IMAP을 사용한다.

  • POP3: 서버의 메일을 클라이언트로 내려받는 수신 프로토콜이다.
  • SMTP: 메일을 송신·전달하는 프로토콜이다.
  • IMAP: 서버에 메일을 보관한 채 동기화하며 읽는 수신 프로토콜이다.
문제 6
UML 버전 2.0에서 구조 다이어그램에 해당하는 것만을 모두 고르면?
ㄱ. 활동 다이어그램
ㄴ. 클래스 다이어그램
ㄷ. 컴포넌트 다이어그램
ㄹ. 시퀀스 다이어그램
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

구조 다이어그램에 해당하는 것은 클래스 다이어그램(ㄴ)과 컴포넌트 다이어그램(ㄷ)이다.

UML 2.0은 시스템의 정적 구성을 표현하는 구조 다이어그램과 동적 동작을 표현하는 행위 다이어그램으로 나뉜다.

  • ㄱ 활동 다이어그램: 처리 흐름을 표현하는 행위 다이어그램이다.
  • ㄴ 클래스 다이어그램: 클래스와 관계를 표현하는 구조 다이어그램이다.
  • ㄷ 컴포넌트 다이어그램: 컴포넌트 간 의존 관계를 표현하는 구조 다이어그램이다.
  • ㄹ 시퀀스 다이어그램: 객체 간 메시지 순서를 표현하는 행위(상호작용) 다이어그램이다.
문제 7
블랙박스 테스트 기법에 해당하는 것은?
1조건 커버리지(condition coverage)
2기본 경로 테스트(basis path test)
3문장 커버리지(statement coverage)
4동등 분할(equivalence partitioning)
정답 및 해설

동등 분할은 명세만 보고 입력을 유효·무효 영역으로 나누는 블랙박스 테스트 기법이다.

블랙박스 테스트는 내부 코드를 보지 않고 요구사항·명세를 기준으로 시험한다.

  • 조건 커버리지: 각 조건식의 참·거짓을 수행하는 화이트박스 기법이다.
  • 기본 경로 테스트: 순환 복잡도로 독립 경로를 도출하는 화이트박스 기법이다.
  • 문장 커버리지: 모든 문장을 한 번 이상 실행하는 화이트박스 기법이다.
문제 8
운영체제에서 일괄 처리 시스템(batch processing system)에 대한 설명으로 옳은 것은?
1사용자로부터 작업이 요구되는 즉시 처리한다.
2일정량 또는 일정 기간의 작업을 모아 한꺼번에 처리한다.
3네트워크로 연결된 여러 대의 컴퓨터에서 작업을 분산하여 처리한다.
4CPU 운영시간을 골고루 할당하여 여러 사용자가 순환하며 작업을 수행한다.
정답 및 해설

일괄 처리 시스템은 일정량·일정 기간의 작업을 모아 한꺼번에 처리하는 방식이다.

사용자와 상호작용 없이 모아 둔 작업을 순서대로 처리하므로 급여 계산 같은 정기 작업에 적합하다.

  • 요구 즉시 처리하는 것은 실시간 처리 시스템이다.
  • 여러 컴퓨터에 작업을 나누어 처리하는 것은 분산 처리 시스템이다.
  • CPU 시간을 고르게 나눠 여러 사용자가 번갈아 쓰는 것은 시분할 시스템이다.
문제 9
다음은 front 다음 위치부터 rear 위치까지 유효한 원소가 들어있는 선형 큐를 보여준다. 두 개의 원소를 제거한 후 큐의 상태는?

1[그림]
2[그림]
3[그림]
4[그림]
정답 및 해설

두 번 삭제하면 front 쪽 원소 A, B가 빠지고 front만 두 칸 이동하여 C, D, E, F가 남고 rear는 F 위치 그대로인 상태가 된다.

큐는 선입선출(FIFO) 구조이므로 삭제는 front 쪽에서만 일어난다. 원소를 하나 꺼낼 때마다 front가 한 칸 증가하고, 삽입이 없으므로 rear는 변하지 않는다.

  • A, B, C, D가 남고 rear가 D로 당겨진 상태: rear 쪽 E, F를 꺼낸 것으로, 나중에 들어온 것을 먼저 꺼내는 스택 동작이다.
  • B, C, D, E가 남고 front·rear가 한 칸씩 움직인 상태: 원소 A와 F를 함께 제거한 것으로, 양쪽 끝에서 삭제하는 덱 동작이지 큐 삭제가 아니다.
  • A, C, D, E가 남은 상태: 중간의 B와 끝의 F를 빼낸 것으로, front 쪽에서만 삭제하는 큐 규칙과 맞지 않는다.
문제 10
운영체제의 목적으로 옳지 않은 것은?
1신뢰도(reliability) 향상
2처리량(throughput) 향상
3응답 시간(response time) 증가
4사용 가능도(availability) 향상
정답 및 해설

응답 시간 증가는 운영체제의 목적이 아니며, 응답 시간은 단축하는 것이 목적이다.

운영체제의 성능 평가 기준은 처리 능력 향상, 반환(응답) 시간 단축, 사용 가능도 향상, 신뢰도 향상이다.

  • 신뢰도 향상: 시스템이 오류 없이 동작하도록 하는 목적에 해당한다.
  • 처리량 향상: 단위 시간당 처리하는 작업량을 늘리는 목적에 해당한다.
  • 사용 가능도 향상: 필요할 때 즉시 자원을 쓸 수 있도록 하는 목적에 해당한다.
문제 11
현재의 출력값이 현재의 입력값에 의해서만 결정되는 논리회로에 해당하지 않는 것은?
1반가산기(half adder)
2링 카운터(ring counter)
3멀티플렉서(multiplexer)
4디멀티플렉서(demultiplexer)
정답 및 해설

링 카운터는 플립플롭으로 상태를 기억하는 순서 논리회로이므로 해당하지 않는다.

현재 입력만으로 출력이 정해지는 회로는 조합 논리회로이며, 기억 소자가 없다.

  • 반가산기: 두 비트의 합과 자리올림을 내는 조합 논리회로이다.
  • 멀티플렉서: 선택 신호에 따라 여러 입력 중 하나를 출력하는 조합 논리회로이다.
  • 디멀티플렉서: 하나의 입력을 선택된 출력선으로 보내는 조합 논리회로이다.
문제 12
캐시기억장치에 대한 설명으로 옳지 않은 것은?
1주로 SRAM을 사용하여 구현된다.
2주기억장치보다 용량은 작지만 접근 속도가 빠르다.
3성능 향상을 위해 지역성의 원리(principle of locality)를 이용한다.
4직접 사상(direct mapping) 방식을 사용하면, 특정 주기억장치 블록을 여러 개의 캐시기억장치 블록으로 사상할 수 있다.
정답 및 해설

직접 사상은 주기억장치 블록마다 캐시의 한 위치에만 대응하므로, 여러 캐시 블록으로 사상할 수 있다는 설명이 옳지 않다.

직접 사상에서는 블록 번호를 캐시 라인 수로 나눈 나머지로 위치가 고정된다. 여러 위치에 둘 수 있는 것은 연관 사상·집합 연관 사상이다.

  • 캐시는 빠른 SRAM으로 구현하는 것이 일반적이다.
  • 캐시는 주기억장치보다 용량은 작고 접근 속도는 빠르다.
  • 캐시는 시간적·공간적 지역성을 이용해 적중률을 높인다.
문제 13
데이터 크기에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 1바이트(byte)는 8비트이다.
ㄴ. 1니블(nibble)은 2비트이다.
ㄷ. 워드(word) 크기는 컴퓨터 시스템에 따라 다를 수 있다.
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄱ, ㄴ, ㄷ
정답 및 해설

옳은 것은 ㄱ과 ㄷ이다.

니블은 바이트의 절반인 4비트이므로 ㄴ이 틀렸다.

  • ㄱ: 1바이트는 8비트로, 옳다.
  • ㄴ: 1니블은 4비트이므로 2비트라는 설명은 틀렸다.
  • ㄷ: 워드는 CPU가 한 번에 처리하는 단위로 시스템마다 크기가 다르다.
문제 14
다음 C 프로그램의 출력 결과는?
#include <stdio.h>

int repeat(int a, int b) {
if (b == 0)
return a;
else if (b % 2 == 0)
return repeat(a + a, b / 2);
else
return repeat(a + a, b / 2) + a;
}

int main() {
printf("%d", repeat(3, 6));
return 0;
}
112
224
330
442
정답 및 해설

재귀 호출을 추적하면 출력값은 42이다.

repeat(3, 6): b가 짝수 → repeat(6, 3)
repeat(6, 3): b가 홀수 → repeat(12, 1) + 6
repeat(12, 1): b가 홀수 → repeat(24, 0) + 12
repeat(24, 0): b가 0 → 24 반환

되돌아오며 계산하면 24 + 12 = 36, 36 + 6 = 42이다. 기저 조건에서 0이 아니라 a를 반환하므로 단순 곱 3 × 6 = 18과는 다른 값이 나온다.

  • 12, 24, 30은 재귀 추적 결과와 다르다.
문제 15
IPv4 주소 체계의 A 클래스 주소에서 호스트 ID의 비트 수는?
18
216
324
432
정답 및 해설

A 클래스 주소에서 호스트 ID는 24비트이다.

IPv4 주소는 32비트이며, A 클래스는 앞 8비트가 네트워크 ID(최상위 비트 0)이고 나머지 24비트가 호스트 ID이다.

  • 8비트: A 클래스의 네트워크 ID 길이이다.
  • 16비트: B 클래스의 호스트 ID 길이이다.
  • 32비트: IPv4 주소 전체 길이이다.
문제 16
블록체인에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 비트코인은 블록체인 기술을 기반으로 만들어진 암호화폐이다.
ㄴ. 블록체인 유형에는 퍼블릭 블록체인, 프라이빗 블록체인 등이 있다.
ㄷ. 블록체인에서 사용되는 합의 알고리즘에는 작업 증명(PoW: Proof of Work), 지분 증명(PoS: Proof of Stake) 등이 있다.
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄱ, ㄴ, ㄷ
정답 및 해설

ㄱ, ㄴ, ㄷ이 모두 옳다.

블록체인은 거래 기록 블록을 해시로 연결해 분산 저장하는 기술로, 참여자 간 합의 알고리즘으로 위변조를 막는다.

  • ㄱ: 비트코인은 블록체인을 기반으로 한 최초의 대표적 암호화폐이다.
  • ㄴ: 누구나 참여하는 퍼블릭, 허가된 기관만 참여하는 프라이빗(및 컨소시엄) 블록체인이 있다.
  • ㄷ: 연산 경쟁 방식인 작업 증명(PoW), 보유 지분 기반인 지분 증명(PoS) 등이 합의 알고리즘이다.
문제 17
다음은 프로세스가 준비 큐에 도착하는 시간과 프로세스를 처리하는데 필요한 실행시간을 보여준다. 비선점 SJF(Shortest Job First) 스케줄링 알고리즘을 사용한 경우, P1, P2, P3, P4 프로세스 중에서 두 번째로 실행되는 프로세스는? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하며, 주어진 4개의 프로세스 외에 처리할 다른 프로세스는 없다고 가정한다)
프로세스도착시간실행시간
P106
P214
P321
P432
1P1
2P2
3P3
4P4
정답 및 해설

두 번째로 실행되는 프로세스는 P3이다.

시각 0에는 P1만 도착해 있으므로 P1이 먼저 실행되고, 비선점이므로 시각 6까지 끝까지 수행한다.

시각 6에는 P2(4), P3(1), P4(2)가 모두 대기 중이며, 실행시간이 가장 짧은 P3이 다음으로 선택된다. 이후 순서는 P4, P2이다.

  • P1: 첫 번째로 실행된다.
  • P2: 실행시간이 가장 길어 마지막에 실행된다.
  • P4: P3 다음, 세 번째로 실행된다.
문제 18
다음 C 언어로 작성된 코드의 시간 복잡도는? (단, n은 임의의 양의 정수이다)
for (i = 0; i < n; i++)
for(j = 0; j < 500; j++)
printf("i * j = %d\n", i * j);
1Θ(n)\Theta(n)
2Θ(n2)\Theta(n^2)
3Θ(log⁡n)\Theta(\log n)
4Θ(nlog⁡n)\Theta(n\log n)
정답 및 해설

바깥 반복은 n회, 안쪽 반복은 n과 무관하게 500회이므로 시간 복잡도는 Θ(n)\Theta(n)이다.

총 실행 횟수는 500×n=500n500 \times n = 500n이고, 상수 계수는 점근 표기에서 무시된다.

  • Θ(n2)\Theta(n^2): 안쪽 반복도 n에 비례할 때의 복잡도이다.
  • Θ(log⁡n)\Theta(\log n): 반복마다 문제 크기가 절반씩 줄 때의 복잡도이다.
  • Θ(nlog⁡n)\Theta(n\log n): 안쪽 반복이 log⁡n\log n회일 때의 복잡도로, 여기서는 상수 500회이므로 해당하지 않는다.
문제 19
페이지 테이블(page table)을 사용하는 가상기억장치 컴퓨터 시스템에서 TLB(Translation Lookaside Buffer)에 대한 설명으로 옳은 것은?
1페이지 테이블의 캐시로서 동작한다.
2한 시스템 내에 여러 개가 존재할 수 없다.
3TLB 실패(miss)가 발생할 때마다 페이지 부재(page fault)가 발생한다.
4물리 주소(physical address)를 가상 주소(virtual address)로 빠르게 변환하기 위한 것이다.
정답 및 해설

TLB는 페이지 테이블의 캐시로서 최근 변환 정보를 보관한다.

가상 주소를 물리 주소로 바꿀 때 메모리의 페이지 테이블을 매번 읽는 대신, 자주 쓰는 항목을 TLB에서 바로 찾아 변환 속도를 높인다.

  • TLB는 명령어용·데이터용 분리나 다단계 구성, 코어별 배치 등으로 한 시스템에 여러 개 둘 수 있다.
  • TLB 실패 시에는 페이지 테이블을 조회할 뿐이며, 해당 페이지가 메모리에 있으면 페이지 부재는 발생하지 않는다.
  • TLB는 가상 주소를 물리 주소로 변환하기 위한 것으로, 방향이 반대이다.
문제 20
다음 파이썬 프로그램의 출력 결과는?
student_list = ['A', 'B', 'C', 'D']
student_score = ['92', '85', '77', '54']
student_grade = []
i = 0
for _ in range(len(student_score)):
try:
if student_score[_] >= 90:
student_grade.append('A+')
i+=1
elif student_score[_] >= 80:
student_grade.append('B+')
i+=1
elif student_score[_] >= 70:
student_grade.append('C+')
i+=1
else:
student_grade.append('D+')
i+=1
except: student_grade.append('F')
print("%s, %s" % (student_list[i], student_grade[i]))
1A, D+
2A, F
3D, D+
4D, F
정답 및 해설

점수가 문자열이라 정수와 비교할 때마다 예외가 발생하므로 출력은 A, F이다.

student_score의 원소는 '92'처럼 문자열이고, 파이썬 3에서 문자열과 정수의 크기 비교(>=)는 TypeError를 일으킨다.

따라서 네 번 모두 except로 가서 'F'만 추가되고, i += 1은 실행되지 않아 i는 0으로 남는다. student_list[0]은 'A', student_grade[0]은 'F'이다.

  • 등급 문자열(D+ 등)이 출력되려면 비교가 정상 수행되어야 하나, 모든 비교가 예외로 끝난다.
  • D가 출력되려면 i가 증가해야 하나, 증가문 앞에서 예외가 발생한다.
9급 지방직 컴퓨터일반 기출문제모두CBT · moducbt.com
24년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
이미지 파일 형식에 해당하지 않는 것은?
1WAV
2BMP
3TIFF
4JPEG
정답 및 해설

WAV는 이미지가 아니라 오디오(음성) 파일 형식이다.

WAV는 마이크로소프트와 IBM이 정의한 무압축 PCM 기반의 소리 저장 형식이다.

  • BMP: 윈도우 표준 비트맵 이미지 형식으로, 보통 압축 없이 픽셀을 저장한다.
  • TIFF: 태그 구조를 가진 고품질 이미지 형식으로, 인쇄·출판에 널리 쓰인다.
  • JPEG: 손실 압축을 쓰는 사진용 이미지 형식이다.
문제 2
DDL(Data Definition Language) 명령어에 해당하지 않는 것은?
1ALTER
2DROP
3SELECT
4CREATE
정답 및 해설

SELECT는 데이터를 조회하는 DML(데이터 조작어)이므로 DDL이 아니다.

DDL은 테이블·뷰·인덱스 같은 스키마 객체를 정의·변경·삭제하는 명령어이다.

  • ALTER: 기존 테이블 구조를 변경하는 DDL이다.
  • DROP: 스키마 객체를 삭제하는 DDL이다.
  • CREATE: 스키마 객체를 새로 생성하는 DDL이다.
문제 3
8진수 543(8)543_{(8)}과 10진수 124(10)124_{(10)}의 합을 8진수로 표현한 것은?
1626(8)626_{(8)}
2637(8)637_{(8)}
3726(8)726_{(8)}
4737(8)737_{(8)}
정답 및 해설

두 수를 10진수로 바꿔 더한 뒤 8진수로 바꾸면 737(8)737_{(8)}이다.

543(8)=5×64+4×8+3=355543_{(8)} = 5 \times 64 + 4 \times 8 + 3 = 355
355+124=479355 + 124 = 479

479=7×64+3×8+7479 = 7 \times 64 + 3 \times 8 + 7이므로 8진수로 737(8)737_{(8)}이다.

  • 626(8)626_{(8)}, 637(8)637_{(8)}, 726(8)726_{(8)}는 각각 10진수 406, 415, 470으로 합계 479와 다르다.
문제 4
OSI 모델에서 데이터 링크 계층의 프로토콜 데이터 단위(protocol data unit)는?
1비트(bit)
2패킷(packet)
3프레임(frame)
4세그먼트(segment)
정답 및 해설

데이터 링크 계층의 PDU는 프레임(frame)이다.

데이터 링크 계층은 상위 계층 패킷에 MAC 주소 헤더와 오류 검출용 트레일러를 붙여 프레임 단위로 전송한다.

  • 비트: 물리 계층의 전송 단위이다.
  • 패킷: 네트워크 계층의 PDU이다.
  • 세그먼트: 전송 계층(TCP)의 PDU이다.
문제 5
이메일 송신 또는 수신을 위한 프로토콜에 해당하지 않는 것은?
1POP3
2SMTP
3FTP
4IMAP
정답 및 해설

FTP는 파일 전송 프로토콜로, 이메일 송수신용이 아니다.

이메일은 송신에 SMTP, 수신(메일함 접근)에 POP3·IMAP을 사용한다.

  • POP3: 서버의 메일을 클라이언트로 내려받는 수신 프로토콜이다.
  • SMTP: 메일을 송신·전달하는 프로토콜이다.
  • IMAP: 서버에 메일을 보관한 채 동기화하며 읽는 수신 프로토콜이다.
문제 6
UML 버전 2.0에서 구조 다이어그램에 해당하는 것만을 모두 고르면?
ㄱ. 활동 다이어그램
ㄴ. 클래스 다이어그램
ㄷ. 컴포넌트 다이어그램
ㄹ. 시퀀스 다이어그램
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

구조 다이어그램에 해당하는 것은 클래스 다이어그램(ㄴ)과 컴포넌트 다이어그램(ㄷ)이다.

UML 2.0은 시스템의 정적 구성을 표현하는 구조 다이어그램과 동적 동작을 표현하는 행위 다이어그램으로 나뉜다.

  • ㄱ 활동 다이어그램: 처리 흐름을 표현하는 행위 다이어그램이다.
  • ㄴ 클래스 다이어그램: 클래스와 관계를 표현하는 구조 다이어그램이다.
  • ㄷ 컴포넌트 다이어그램: 컴포넌트 간 의존 관계를 표현하는 구조 다이어그램이다.
  • ㄹ 시퀀스 다이어그램: 객체 간 메시지 순서를 표현하는 행위(상호작용) 다이어그램이다.
문제 7
블랙박스 테스트 기법에 해당하는 것은?
1조건 커버리지(condition coverage)
2기본 경로 테스트(basis path test)
3문장 커버리지(statement coverage)
4동등 분할(equivalence partitioning)
정답 및 해설

동등 분할은 명세만 보고 입력을 유효·무효 영역으로 나누는 블랙박스 테스트 기법이다.

블랙박스 테스트는 내부 코드를 보지 않고 요구사항·명세를 기준으로 시험한다.

  • 조건 커버리지: 각 조건식의 참·거짓을 수행하는 화이트박스 기법이다.
  • 기본 경로 테스트: 순환 복잡도로 독립 경로를 도출하는 화이트박스 기법이다.
  • 문장 커버리지: 모든 문장을 한 번 이상 실행하는 화이트박스 기법이다.
문제 8
운영체제에서 일괄 처리 시스템(batch processing system)에 대한 설명으로 옳은 것은?
1사용자로부터 작업이 요구되는 즉시 처리한다.
2일정량 또는 일정 기간의 작업을 모아 한꺼번에 처리한다.
3네트워크로 연결된 여러 대의 컴퓨터에서 작업을 분산하여 처리한다.
4CPU 운영시간을 골고루 할당하여 여러 사용자가 순환하며 작업을 수행한다.
정답 및 해설

일괄 처리 시스템은 일정량·일정 기간의 작업을 모아 한꺼번에 처리하는 방식이다.

사용자와 상호작용 없이 모아 둔 작업을 순서대로 처리하므로 급여 계산 같은 정기 작업에 적합하다.

  • 요구 즉시 처리하는 것은 실시간 처리 시스템이다.
  • 여러 컴퓨터에 작업을 나누어 처리하는 것은 분산 처리 시스템이다.
  • CPU 시간을 고르게 나눠 여러 사용자가 번갈아 쓰는 것은 시분할 시스템이다.
문제 9
다음은 front 다음 위치부터 rear 위치까지 유효한 원소가 들어있는 선형 큐를 보여준다. 두 개의 원소를 제거한 후 큐의 상태는?

1[그림]
2[그림]
3[그림]
4[그림]
정답 및 해설

두 번 삭제하면 front 쪽 원소 A, B가 빠지고 front만 두 칸 이동하여 C, D, E, F가 남고 rear는 F 위치 그대로인 상태가 된다.

큐는 선입선출(FIFO) 구조이므로 삭제는 front 쪽에서만 일어난다. 원소를 하나 꺼낼 때마다 front가 한 칸 증가하고, 삽입이 없으므로 rear는 변하지 않는다.

  • A, B, C, D가 남고 rear가 D로 당겨진 상태: rear 쪽 E, F를 꺼낸 것으로, 나중에 들어온 것을 먼저 꺼내는 스택 동작이다.
  • B, C, D, E가 남고 front·rear가 한 칸씩 움직인 상태: 원소 A와 F를 함께 제거한 것으로, 양쪽 끝에서 삭제하는 덱 동작이지 큐 삭제가 아니다.
  • A, C, D, E가 남은 상태: 중간의 B와 끝의 F를 빼낸 것으로, front 쪽에서만 삭제하는 큐 규칙과 맞지 않는다.
문제 10
운영체제의 목적으로 옳지 않은 것은?
1신뢰도(reliability) 향상
2처리량(throughput) 향상
3응답 시간(response time) 증가
4사용 가능도(availability) 향상
정답 및 해설

응답 시간 증가는 운영체제의 목적이 아니며, 응답 시간은 단축하는 것이 목적이다.

운영체제의 성능 평가 기준은 처리 능력 향상, 반환(응답) 시간 단축, 사용 가능도 향상, 신뢰도 향상이다.

  • 신뢰도 향상: 시스템이 오류 없이 동작하도록 하는 목적에 해당한다.
  • 처리량 향상: 단위 시간당 처리하는 작업량을 늘리는 목적에 해당한다.
  • 사용 가능도 향상: 필요할 때 즉시 자원을 쓸 수 있도록 하는 목적에 해당한다.
문제 11
현재의 출력값이 현재의 입력값에 의해서만 결정되는 논리회로에 해당하지 않는 것은?
1반가산기(half adder)
2링 카운터(ring counter)
3멀티플렉서(multiplexer)
4디멀티플렉서(demultiplexer)
정답 및 해설

링 카운터는 플립플롭으로 상태를 기억하는 순서 논리회로이므로 해당하지 않는다.

현재 입력만으로 출력이 정해지는 회로는 조합 논리회로이며, 기억 소자가 없다.

  • 반가산기: 두 비트의 합과 자리올림을 내는 조합 논리회로이다.
  • 멀티플렉서: 선택 신호에 따라 여러 입력 중 하나를 출력하는 조합 논리회로이다.
  • 디멀티플렉서: 하나의 입력을 선택된 출력선으로 보내는 조합 논리회로이다.
문제 12
캐시기억장치에 대한 설명으로 옳지 않은 것은?
1주로 SRAM을 사용하여 구현된다.
2주기억장치보다 용량은 작지만 접근 속도가 빠르다.
3성능 향상을 위해 지역성의 원리(principle of locality)를 이용한다.
4직접 사상(direct mapping) 방식을 사용하면, 특정 주기억장치 블록을 여러 개의 캐시기억장치 블록으로 사상할 수 있다.
정답 및 해설

직접 사상은 주기억장치 블록마다 캐시의 한 위치에만 대응하므로, 여러 캐시 블록으로 사상할 수 있다는 설명이 옳지 않다.

직접 사상에서는 블록 번호를 캐시 라인 수로 나눈 나머지로 위치가 고정된다. 여러 위치에 둘 수 있는 것은 연관 사상·집합 연관 사상이다.

  • 캐시는 빠른 SRAM으로 구현하는 것이 일반적이다.
  • 캐시는 주기억장치보다 용량은 작고 접근 속도는 빠르다.
  • 캐시는 시간적·공간적 지역성을 이용해 적중률을 높인다.
문제 13
데이터 크기에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 1바이트(byte)는 8비트이다.
ㄴ. 1니블(nibble)은 2비트이다.
ㄷ. 워드(word) 크기는 컴퓨터 시스템에 따라 다를 수 있다.
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄱ, ㄴ, ㄷ
정답 및 해설

옳은 것은 ㄱ과 ㄷ이다.

니블은 바이트의 절반인 4비트이므로 ㄴ이 틀렸다.

  • ㄱ: 1바이트는 8비트로, 옳다.
  • ㄴ: 1니블은 4비트이므로 2비트라는 설명은 틀렸다.
  • ㄷ: 워드는 CPU가 한 번에 처리하는 단위로 시스템마다 크기가 다르다.
문제 14
다음 C 프로그램의 출력 결과는?
#include <stdio.h>

int repeat(int a, int b) {
if (b == 0)
return a;
else if (b % 2 == 0)
return repeat(a + a, b / 2);
else
return repeat(a + a, b / 2) + a;
}

int main() {
printf("%d", repeat(3, 6));
return 0;
}
112
224
330
442
정답 및 해설

재귀 호출을 추적하면 출력값은 42이다.

repeat(3, 6): b가 짝수 → repeat(6, 3)
repeat(6, 3): b가 홀수 → repeat(12, 1) + 6
repeat(12, 1): b가 홀수 → repeat(24, 0) + 12
repeat(24, 0): b가 0 → 24 반환

되돌아오며 계산하면 24 + 12 = 36, 36 + 6 = 42이다. 기저 조건에서 0이 아니라 a를 반환하므로 단순 곱 3 × 6 = 18과는 다른 값이 나온다.

  • 12, 24, 30은 재귀 추적 결과와 다르다.
문제 15
IPv4 주소 체계의 A 클래스 주소에서 호스트 ID의 비트 수는?
18
216
324
432
정답 및 해설

A 클래스 주소에서 호스트 ID는 24비트이다.

IPv4 주소는 32비트이며, A 클래스는 앞 8비트가 네트워크 ID(최상위 비트 0)이고 나머지 24비트가 호스트 ID이다.

  • 8비트: A 클래스의 네트워크 ID 길이이다.
  • 16비트: B 클래스의 호스트 ID 길이이다.
  • 32비트: IPv4 주소 전체 길이이다.
문제 16
블록체인에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 비트코인은 블록체인 기술을 기반으로 만들어진 암호화폐이다.
ㄴ. 블록체인 유형에는 퍼블릭 블록체인, 프라이빗 블록체인 등이 있다.
ㄷ. 블록체인에서 사용되는 합의 알고리즘에는 작업 증명(PoW: Proof of Work), 지분 증명(PoS: Proof of Stake) 등이 있다.
1ㄱ, ㄴ
2ㄱ, ㄷ
3ㄴ, ㄷ
4ㄱ, ㄴ, ㄷ
정답 및 해설

ㄱ, ㄴ, ㄷ이 모두 옳다.

블록체인은 거래 기록 블록을 해시로 연결해 분산 저장하는 기술로, 참여자 간 합의 알고리즘으로 위변조를 막는다.

  • ㄱ: 비트코인은 블록체인을 기반으로 한 최초의 대표적 암호화폐이다.
  • ㄴ: 누구나 참여하는 퍼블릭, 허가된 기관만 참여하는 프라이빗(및 컨소시엄) 블록체인이 있다.
  • ㄷ: 연산 경쟁 방식인 작업 증명(PoW), 보유 지분 기반인 지분 증명(PoS) 등이 합의 알고리즘이다.
문제 17
다음은 프로세스가 준비 큐에 도착하는 시간과 프로세스를 처리하는데 필요한 실행시간을 보여준다. 비선점 SJF(Shortest Job First) 스케줄링 알고리즘을 사용한 경우, P1, P2, P3, P4 프로세스 중에서 두 번째로 실행되는 프로세스는? (단, 프로세스 간 문맥 교환에 따른 오버헤드는 무시하며, 주어진 4개의 프로세스 외에 처리할 다른 프로세스는 없다고 가정한다)
프로세스도착시간실행시간
P106
P214
P321
P432
1P1
2P2
3P3
4P4
정답 및 해설

두 번째로 실행되는 프로세스는 P3이다.

시각 0에는 P1만 도착해 있으므로 P1이 먼저 실행되고, 비선점이므로 시각 6까지 끝까지 수행한다.

시각 6에는 P2(4), P3(1), P4(2)가 모두 대기 중이며, 실행시간이 가장 짧은 P3이 다음으로 선택된다. 이후 순서는 P4, P2이다.

  • P1: 첫 번째로 실행된다.
  • P2: 실행시간이 가장 길어 마지막에 실행된다.
  • P4: P3 다음, 세 번째로 실행된다.
문제 18
다음 C 언어로 작성된 코드의 시간 복잡도는? (단, n은 임의의 양의 정수이다)
for (i = 0; i < n; i++)
for(j = 0; j < 500; j++)
printf("i * j = %d\n", i * j);
1Θ(n)\Theta(n)
2Θ(n2)\Theta(n^2)
3Θ(log⁡n)\Theta(\log n)
4Θ(nlog⁡n)\Theta(n\log n)
정답 및 해설

바깥 반복은 n회, 안쪽 반복은 n과 무관하게 500회이므로 시간 복잡도는 Θ(n)\Theta(n)이다.

총 실행 횟수는 500×n=500n500 \times n = 500n이고, 상수 계수는 점근 표기에서 무시된다.

  • Θ(n2)\Theta(n^2): 안쪽 반복도 n에 비례할 때의 복잡도이다.
  • Θ(log⁡n)\Theta(\log n): 반복마다 문제 크기가 절반씩 줄 때의 복잡도이다.
  • Θ(nlog⁡n)\Theta(n\log n): 안쪽 반복이 log⁡n\log n회일 때의 복잡도로, 여기서는 상수 500회이므로 해당하지 않는다.
문제 19
페이지 테이블(page table)을 사용하는 가상기억장치 컴퓨터 시스템에서 TLB(Translation Lookaside Buffer)에 대한 설명으로 옳은 것은?
1페이지 테이블의 캐시로서 동작한다.
2한 시스템 내에 여러 개가 존재할 수 없다.
3TLB 실패(miss)가 발생할 때마다 페이지 부재(page fault)가 발생한다.
4물리 주소(physical address)를 가상 주소(virtual address)로 빠르게 변환하기 위한 것이다.
정답 및 해설

TLB는 페이지 테이블의 캐시로서 최근 변환 정보를 보관한다.

가상 주소를 물리 주소로 바꿀 때 메모리의 페이지 테이블을 매번 읽는 대신, 자주 쓰는 항목을 TLB에서 바로 찾아 변환 속도를 높인다.

  • TLB는 명령어용·데이터용 분리나 다단계 구성, 코어별 배치 등으로 한 시스템에 여러 개 둘 수 있다.
  • TLB 실패 시에는 페이지 테이블을 조회할 뿐이며, 해당 페이지가 메모리에 있으면 페이지 부재는 발생하지 않는다.
  • TLB는 가상 주소를 물리 주소로 변환하기 위한 것으로, 방향이 반대이다.
문제 20
다음 파이썬 프로그램의 출력 결과는?
student_list = ['A', 'B', 'C', 'D']
student_score = ['92', '85', '77', '54']
student_grade = []
i = 0
for _ in range(len(student_score)):
try:
if student_score[_] >= 90:
student_grade.append('A+')
i+=1
elif student_score[_] >= 80:
student_grade.append('B+')
i+=1
elif student_score[_] >= 70:
student_grade.append('C+')
i+=1
else:
student_grade.append('D+')
i+=1
except: student_grade.append('F')
print("%s, %s" % (student_list[i], student_grade[i]))
1A, D+
2A, F
3D, D+
4D, F
정답 및 해설

점수가 문자열이라 정수와 비교할 때마다 예외가 발생하므로 출력은 A, F이다.

student_score의 원소는 '92'처럼 문자열이고, 파이썬 3에서 문자열과 정수의 크기 비교(>=)는 TypeError를 일으킨다.

따라서 네 번 모두 except로 가서 'F'만 추가되고, i += 1은 실행되지 않아 i는 0으로 남는다. student_list[0]은 'A', student_grade[0]은 'F'이다.

  • 등급 문자열(D+ 등)이 출력되려면 비교가 정상 수행되어야 하나, 모든 비교가 예외로 끝난다.
  • D가 출력되려면 i가 증가해야 하나, 증가문 앞에서 예외가 발생한다.