[9급 국가직 컴퓨터일반] 20년 1회차 기출문제 정답·해설 페이지
- 표본화: 연속 신호에서 일정 간격으로 값을 추출하는 첫 단계이다.
- 양자화: 추출한 표본값을 유한한 이산 레벨로 근사하는 단계이다.
- 부호화: 양자화된 레벨을 2진 부호로 바꾸는 단계이다.
- 데이터 독립성 향상: 프로그램과 데이터를 분리하는 DBMS의 대표적 이점이다.
- 공유와 동시 접근: 동시성 제어를 통해 여러 사용자가 함께 사용할 수 있다.
- 무결성과 보안성 유지: 제약조건과 접근 권한 관리로 보장한다.
- AC: 연산 과정의 데이터를 일시 저장하는 누산기이다.
- PC: 다음에 인출할 명령어의 주소를 보관한다.
- MBR: 기억장치에 쓸 데이터나 읽어 온 데이터를 일시 저장하는 버퍼이다.
- 시제품 개발 전에 고객 평가를 두는 순서: 평가할 시제품이 아직 없으므로 틀리다.
- 요구 사항 분석 직후 고객 평가를 두는 순서: 설계·개발 없이 평가할 수 없다.
- 시제품 개발 후에 설계를 두는 순서: 설계가 개발보다 앞서야 한다.
- 버스형은 하나의 공유 회선에 노드를 연결하므로 설치가 간단하고 케이블 비용이 적게 든다(옳음).
- 링형은 각 노드가 인접한 두 노드와만 연결되어 있어, 노드를 끼우거나 뺄 때 인접한 링크만 바꾸면 된다는 점에서 재구성이 용이하다고 본다. 교재에 따라 링 전체를 끊어야 해서 어렵다고 설명하기도 하지만, 트리형 서술처럼 구조적으로 명백히 틀린 내용은 아니다.
- 성형은 모든 노드가 중앙 노드에 집중되어 있어 장애 지점 파악과 유지보수가 쉽다(옳음).
- RAID 1: 패리티 없이 데이터를 두 개 이상의 디스크에 미러링한다.
- RAID 2: 비트 단위로 분산하고 해밍 코드 검사 디스크를 여러 개 사용한다.
- RAID 4: 블록 단위로 분산하고 하나의 전용 패리티 디스크를 사용한다.
- 응답성 증가: 일부 스레드가 대기해도 다른 스레드가 사용자 요청을 처리할 수 있다.
- 자원 공유: 스레드는 소속 프로세스의 자원과 메모리를 공유한다.
- 오버헤드 감소: 스레드 생성·문맥 교환은 프로세스보다 가볍다.
- 데이터링크 계층: 데이터를 프레임 단위로 구성해 물리 계층으로 전달한다.
- 세션 계층: 두 종단 프로세스 간의 세션을 설정·유지·종료한다.
- 표현 계층: 데이터 표현 방식 변환, 암호화, 압축을 담당한다.
- LRU: 가장 오랫동안 사용되지 않은 블록을 교체한다.
- FIFO: 캐시에 적재된 지 가장 오래된 블록을 교체한다.
- Random: 사용 이력과 무관하게 임의로 교체한다.
- 암호화·복호화에 동일한 키를 쓰는 것은 공개키가 아니라 대칭키 방식이다.
- DES는 대표적인 대칭키(비밀키) 알고리즘이다.
- 비밀키 암호화는 같은 키를 쓰는 대칭 암호화이지 비대칭 암호화가 아니다.
- 세마포어: 공유 자원 접근을 제어하는 동기화 도구이다.
- 모니터: 공유 자원과 연산을 묶어 상호배제를 보장하는 동기화 구조이다.
- 상호배제: 임계 구역에 한 프로세스만 들어가도록 하는 원칙이다.
- DNS: 도메인 이름을 IP 주소로 변환하는 시스템으로 클라우드 서비스 모델이 아니다.
- SaaS: 완성된 응용 소프트웨어를 서비스로 제공한다.
- IaaS: 서버·스토리지·네트워크 등 인프라 자원을 제공한다.
- 200: 원소 값 100에 100을 더한 값으로, 첨자 0을 참조한 경우이다.
- 300: 첨자 1의 원소 200에 100을 더한 값으로, 포인터 오프셋을 잘못 센 결과이다.
- 400: 첨자 2의 원소 300에 100을 더한 값이거나, 100을 더하지 않은 array[3] 값이다.
- tmp.link에 first의 주소를 넣고 first.link를 tmp로 바꾸는 코드: first와 tmp가 서로를 가리키는 순환이 생기고 second가 끊긴다.
- tmp.link에 second의 주소를 넣고 first.link에 second.link를 넣는 코드: first.link가 NULL이 되어 tmp와 second 모두 끊긴다.
- tmp.link를 NULL로, second.link를 tmp로 바꾸는 코드: tmp가 second 뒤에 붙을 뿐 사이에 삽입되지 않는다.
- 2, 2: 대입 후 첫 분기에서 b는 a + 1 = 3이 되므로 틀리다.
- 1, 2: a = 2를 비교(==)로 잘못 보고 둘째 분기를 실행했다고 가정한 값이다.
- 2, 10: 조건식이 거짓이라 else로 갔다고 본 값인데, 대입값 2는 참이다.
- A: 루트는 후위 순회에서 마지막(일곱 번째)에 방문한다.
- C: F 다음인 여섯 번째에 방문한다.
- D: 가장 먼저(첫 번째) 방문한다.
- SJF: 짧은 작업을 먼저 실행해 평균 대기시간이 FCFS보다 짧다.
- Round-Robin: 시간 할당량마다 순환하는 우선순위 없는 선점형 방식이다.
- 다단계 큐: 우선순위별로 여러 준비 큐를 두는 방식이다.
- TCP/IP 스택에는 세션 계층이 따로 없으며, 네트워크 접근·인터넷·전송·응용 계층으로 구성된다.
- ICMP는 데이터링크 계층이 아니라 인터넷(네트워크) 계층 프로토콜이다.
- 경로를 설정하는 라우팅은 응용 계층이 아니라 인터넷(네트워크) 계층의 기능이다.
- deptno로만 그룹화하면서 position을 함께 조회하는 문장: GROUP BY에 없는 비집계 열을 SELECT할 수 없다.
- WHERE 절에 COUNT(*) > 2를 쓴 문장: 집계 함수 조건은 WHERE가 아니라 HAVING에 써야 한다.
- height 비교에 height, grade 두 열을 반환하는 서브쿼리를 쓴 문장: 단일 열 비교에 두 열이 반환되어 오류가 난다.
아날로그 신호를 디지털 신호로 변조하기 위한 펄스부호변조(PCM) 과정으로 옳지 않은 것은?
분절화(Segmentation)
표본화(Sampling)
부호화(Encoding)
양자화(Quantization)
PCM 과정에 포함되지 않는 것은 분절화(Segmentation)이다.
PCM은 표본화 → 양자화 → 부호화 순서로 아날로그 신호를 디지털 신호로 바꾼다. 분절화는 데이터를 작은 단위로 나누는 전송 계층 등의 개념으로 PCM 단계가 아니다.
오류나 개정된 내용이 보이면 알려주세요
DBMS를 사용하는 이점으로 옳지 않은 것은?
데이터를 프로그램과 분리함으로써 데이터 독립성이 향상된다.
데이터의 공유와 동시 접근이 가능하다.
데이터의 중복을 허용하여 데이터의 일관성을 유지한다.
데이터의 무결성과 보안성을 유지한다.
옳지 않은 것은 데이터의 중복을 허용하여 일관성을 유지한다는 설명이다.
DBMS는 데이터를 통합 관리해 중복을 최소화함으로써 일관성을 유지한다. 중복을 허용하면 오히려 갱신 이상과 불일치가 생긴다.
오류나 개정된 내용이 보이면 알려주세요
CPU 내의 레지스터에 대한 설명으로 옳지 않은 것은?
Accumulator(AC):연산 과정의 데이터를 일시적으로 저장하는 레지스터
Program Counter(PC):다음에 인출될 명령어의 주소를 보관하는 레지스터
Memory Address Register(MAR):가장 최근에 인출한 명령어를 보관하는 레지스터
Memory Buffer Register(MBR):기억장치에 저장될 데이터 혹은 기억장치로부터 읽힌 데이터가 일시적으로 저장되는 버퍼 레지스터
옳지 않은 것은 MAR을 가장 최근에 인출한 명령어를 보관하는 레지스터로 설명한 것이다.
MAR은 접근할 기억장치 주소를 보관하는 레지스터이고, 최근 인출한 명령어를 보관하는 것은 명령어 레지스터(IR)이다.
오류나 개정된 내용이 보이면 알려주세요
소프트웨어 개발 프로세스 중 원형(Prototyping) 모델의 단계별 진행 과정을 올바르게 나열한 것은?
요구 사항 분석→시제품 설계→고객의 시제품 평가→시제품 개발→시제품 정제→완제품 생산
요구 사항 분석→시제품 설계→시제품 개발→고객의 시제품 평가→시제품 정제→완제품 생산
요구 사항 분석→고객의 시제품 평가→시제품 개발→시제품 설계→시제품 정제→완제품 생산
요구 사항 분석→시제품 개발→시제품 설계→고객의 시제품 평가→시제품 정제→완제품 생산
원형 모델의 올바른 순서는 요구 사항 분석 → 시제품 설계 → 시제품 개발 → 고객의 시제품 평가 → 시제품 정제 → 완제품 생산이다.
시제품은 먼저 설계한 뒤 개발해야 하고, 개발된 시제품이 있어야 고객이 평가할 수 있으며, 평가 결과를 반영해 정제한다.
오류나 개정된 내용이 보이면 알려주세요
네트워크 토폴로지에 대한 설명으로 옳지 않은 것은?
버스(bus)형 토폴로지는 설치가 간단하고 비용이 저렴하다.
링(ring)형 토폴로지는 통신 회선에 컴퓨터를 추가하거나 삭제하는 등 네트워크 재구성이 용이하다.
트리(tree)형 토폴로지는 허브(hub)에 문제가 발생해도 전체 네트워크에 영향을 주지 않는다.
성(star)형 토폴로지는 중앙집중적인 구조이므로 고장 발견과 유지보수가 쉽다.
옳지 않은 설명은 트리형 토폴로지는 허브에 문제가 생겨도 전체 네트워크에 영향이 없다는 것이다.
트리형은 허브(노드)가 계층적으로 연결된 구조라서 상위 허브에 장애가 나면 그 아래에 연결된 하위 노드 전체가 통신할 수 없게 된다. 특히 최상위(루트) 허브가 고장 나면 네트워크 전체가 영향을 받으므로 영향이 없다는 서술은 명백히 틀렸다.
오류나 개정된 내용이 보이면 알려주세요
RAID(Redundant Array of Independent Disks) 레벨에 대한 설명으로 옳지 않은 것은?
RAID 1 구조는 데이터를 두 개 이상의 디스크에 패리티 없이 중복 저장한다.
RAID 2 구조는 데이터를 각 디스크에 비트 단위로 분산 저장하고 여러 개의 해밍코드 검사디스크를 사용한다.
RAID 4 구조는 각 디스크에 데이터를 블록 단위로 분산 저장하고 하나의 패리티 검사디스크를 사용한다.
RAID 5 구조는 각 디스크에 데이터와 함께 이중 분산 패리티 정보를 블록 단위로 분산 저장한다.
옳지 않은 것은 RAID 5가 이중 분산 패리티를 저장한다는 설명이다.
RAID 5는 패리티를 블록 단위로 모든 디스크에 분산하되 패리티는 하나이며, 이중 분산 패리티를 쓰는 것은 RAID 6이다.
오류나 개정된 내용이 보이면 알려주세요
다중 스레드(Multi Thread) 프로그래밍의 이점에 대한 설명으로 옳지 않은 것은?
다중 스레드는 사용자의 응답성을 증가시킨다.
스레드는 그들이 속한 프로세스의 자원들과 메모리를 공유한다.
프로세스를 생성하는 것보다 스레드를 생성하여 문맥을 교환하면 오버헤드가 줄어든다.
다중 스레드는 한 스레드에 문제가 생기더라도 전체 프로세스에 영향을 미치지 않는다.
옳지 않은 것은 한 스레드에 문제가 생겨도 전체 프로세스에 영향을 미치지 않는다는 설명이다.
스레드들은 같은 프로세스의 메모리와 자원을 공유하므로, 한 스레드의 오류(예: 잘못된 메모리 접근)가 프로세스 전체를 종료시킬 수 있다.
오류나 개정된 내용이 보이면 알려주세요
OSI(Open Systems Interconnect) 모델에 대한 설명으로 옳지 않은 것은?
네트워크 계층은 데이터 전송에 관한 서비스를 제공하는 계층으로 송신 측과 수신 측 사이의 실제적인 연결 설정 및 유지, 오류 복구와 흐름 제어 등을 수행한다.
데이터링크 계층은 네트워크 계층에서 받은 데이터를 프레임(frame)이라는 논리적인 단위로 구성하고 전송에 필요한 정보를 덧붙여 물리 계층으로 전달한다.
세션 계층은 전송하는 두 종단 프로세스 간의 접속(session)을 설정하고, 유지하고 종료하는 역할을 한다.
표현 계층은 전송하는 데이터의 표현 방식을 관리하고 암호화하거나 데이터를 압축하는 역할을 한다.
옳지 않은 것은 네트워크 계층을 종단 간 연결 설정·유지, 오류 복구, 흐름 제어 계층으로 설명한 것이다.
송신 측과 수신 측 사이의 연결 관리와 오류 복구·흐름 제어는 전송 계층의 역할이고, 네트워크 계층은 주소 지정과 경로 설정(라우팅)을 담당한다.
오류나 개정된 내용이 보이면 알려주세요
캐시기억장치 교체 알고리즘에 대한 설명으로 옳지 않은 것은?
LRU는 최근에 가장 오랫동안 사용되지 않았던 블록을 교체하는 방법이다.
FIFO는 캐시에 적재된 지 가장 오래된 블록을 먼저 교체하는 방법이다.
LFU는 캐시 블록마다 참조 횟수를 기록함으로써 가장 많이 참조된 블록을 교체하는 방법이다.
Random은 사용 횟수와 무관하게 임의로 블록을 교체하는 방법이다.
옳지 않은 것은 LFU가 가장 많이 참조된 블록을 교체한다는 설명이다.
LFU(Least Frequently Used)는 참조 횟수를 기록해 가장 적게 참조된 블록을 교체한다.
오류나 개정된 내용이 보이면 알려주세요
8진수 123.321을 16진수로 변환한 것은?
53.35
53.321
53.681
53.688
8진수 123.321을 16진수로 바꾸면 53.688이다.
8진수 각 자리를 3비트 2진수로 풀면 1→001, 2→010, 3→011이므로 정수부는 001010011, 소수부 3·2·1은 011010001이 된다.
정수부를 오른쪽부터 4비트씩 묶으면 0101 0011 → 53이다.
소수부를 왼쪽부터 4비트씩 묶고 부족한 자리를 0으로 채우면 0110 1000 1000 → 688이다.따라서 결과는 53.688이며, 소수부를 8진 숫자 그대로 옮기거나 4비트 묶음을 잘못 끊은 값들은 틀리다.
오류나 개정된 내용이 보이면 알려주세요
암호화 기술에 대한 설명으로 옳은 것은?
공개키 암호화는 암호화하거나 복호화하는 데 동일한 키를 사용한다.
공개키 암호화는 비공개키 암호화에 비해 암호화 알고리즘이 복잡하여 처리속도가 느리다.
공개키 암호화의 대표적인 알고리즘에는 데이터 암호화 표준(Data Encryption Standard)이 있다.
비밀키 암호화는 암호화와 복호화 과정에서 서로 다른 키를 사용하는 비대칭 암호화(asymmetric encryption)다.
옳은 것은 공개키 암호화는 비공개키 암호화보다 알고리즘이 복잡해 처리속도가 느리다는 설명이다.
공개키(비대칭) 방식은 큰 수의 연산에 기반해 계산량이 많으므로 대칭키 방식보다 느리다.
오류나 개정된 내용이 보이면 알려주세요
CPU를 다른 프로세스로 교환하려면 이전 프로세스의 상태를 보관하고 새로운 프로세스의 보관된 상태로 복구하는 작업이 필요하다. 이 작업으로 옳은 것은?
세마포어(Semaphore)
모니터(Monitor)
상호배제(Mutual Exclusion)
문맥교환(Context Switching)
설명하는 작업은 문맥교환(Context Switching)이다.
문맥교환은 실행 중인 프로세스의 상태(PCB의 레지스터 값 등)를 저장하고 다음 프로세스의 저장된 상태를 복구해 CPU를 넘겨주는 작업이다.
오류나 개정된 내용이 보이면 알려주세요
응용프로그램 제작에 필요한 개발환경, SDK 등 플랫폼 자체를 서비스 형태로 제공하는 클라우드 컴퓨팅 서비스 모델은?
DNS
PaaS
SaaS
IaaS
개발환경·SDK 등 플랫폼을 서비스로 제공하는 모델은 PaaS(Platform as a Service)이다.
클라우드 서비스 모델은 제공 범위에 따라 인프라(IaaS), 플랫폼(PaaS), 소프트웨어(SaaS)로 구분된다.
오류나 개정된 내용이 보이면 알려주세요
다음 프로그램의 실행 결과로 옳은 것은?#include <stdio.h> int main(void) { int array[] = {100, 200, 300, 400, 500}; int *ptr; ptr = array; printf("%d\n", *(ptr+3) + 100); }
200
300
400
500
실행 결과는 500이다.
ptr은 배열 array의 시작 주소를 가리키므로 *(ptr+3)은 array[3], 즉 네 번째 원소 400이다.
여기에 100을 더하면 400 + 100 = 500이 출력된다.
오류나 개정된 내용이 보이면 알려주세요
다음 프로그램은 연결 리스트를 만들기 위한 코드의 일부분이다.
아래 그림과 같이 두 개의 노드 first, second가 연결되었다고 가정하고, 위의 코드를 참조하여 노드 tmp를 노드 first와 노드 second 사이에 삽입하고자 할 때, 프로그램 코드로 옳은 것은?
tmp.link = &first;
first.link = &tmp;
tmp.link = first.link;
first.link = &tmp;
tmp.link = &second;
first.link = second.link;
tmp.link = NULL;
second.link = &tmp;
tmp를 first와 second 사이에 넣는 코드는 tmp.link = first.link; first.link = &tmp;이다.
먼저 tmp의 link가 first가 가리키던 second를 가리키게 하고(tmp.link = first.link), 그다음 first의 link가 tmp를 가리키게 해야 first → tmp → second 연결이 완성된다. 순서를 바꾸면 second의 주소를 잃는다.
오류나 개정된 내용이 보이면 알려주세요
다음 C 프로그램의 결과로 옳은 것은?#include <stdio.h> int main() { int a, b; a = b = 1; if (a = 2) b = a + 1; else if (a == 1) b = b + 1; else b = 10; printf("%d, %d\n", a, b); }
2, 3
2, 2
1, 2
2, 10
출력 결과는 2, 3이다.
조건 if (a = 2)는 비교가 아니라 대입이므로 a에 2가 저장되고, 식의 값 2는 0이 아니어서 참이 된다.
따라서 b = a + 1 = 3이 실행되고 나머지 else 분기는 건너뛴다.
오류나 개정된 내용이 보이면 알려주세요
다음 이진 트리에 대하여 후위 순회를 하는 경우 다섯 번째 방문하는 노드는?
A
C
D
F
후위 순회에서 다섯 번째로 방문하는 노드는 F이다.
그림의 트리는 루트 A의 왼쪽에 B(왼쪽 자식 D, 오른쪽 자식 E, E의 왼쪽 자식 G), 오른쪽에 C(오른쪽 자식 F)가 있다. 후위 순회는 왼쪽 → 오른쪽 → 루트 순서이다.
방문 순서는 D → G → E → B → F → C → A이므로 다섯 번째는 F이다.
오류나 개정된 내용이 보이면 알려주세요
프로세스 스케줄링에 대한 설명으로 옳지 않은 것은?
FCFS(First Come First Served) 스케줄링은 비선점 방식으로 대화식 시스템에 적합하다.
SJF(Shortest Job First) 스케줄링은 실행 시간이 가장 짧은 작업(프로세스)을 신속하게 실행하므로 평균 대기시간이 FCFS 스케줄링보다 짧다.
Round-Robin 스케줄링은 우선순위가 적용되지 않은 단순한 선점형 방식이다.
다단계 큐(Multilevel Queue) 스케줄링은 우선순위에 따라 준비 큐를 여러 개 사용하는 방식이다.
옳지 않은 것은 FCFS가 비선점 방식으로 대화식 시스템에 적합하다는 설명이다.
FCFS는 비선점 방식이 맞지만, 긴 작업이 CPU를 계속 점유하면 짧은 작업이 오래 기다려 응답시간이 길어지므로 대화식 시스템에는 부적합하다.
오류나 개정된 내용이 보이면 알려주세요
TCP/IP 프로토콜 스택에 대한 설명으로 옳은 것은?
데이터링크(datalink) 계층, 전송(transport) 계층, 세션(session) 계층 및 응용(application) 계층으로 구성된다.
ICMP는 데이터링크 계층에서 사용 가능한 프로토콜이다.
UDP는 전송 계층에서 사용되는 비연결형 프로토콜이다.
응용 계층은 데이터가 목적지까지 찾아갈 경로를 설정하기 위해 라우팅(routing) 프로토콜을 운영한다.
옳은 것은 UDP는 전송 계층에서 사용되는 비연결형 프로토콜이라는 설명이다.
TCP/IP 전송 계층에는 연결형 TCP와 비연결형 UDP가 있다.
오류나 개정된 내용이 보이면 알려주세요
다음 테이블 인스턴스(Instance)들에 대하여 오류 없이 동작하는 SQL(Structured Query Language) 문장은?STUDENT
| 칼럼 이름 | 데이터 타입 | 키 타입 | 설명 |
|---|---|---|---|
| studno | 숫자 | 기본키 | 학번 |
| name | 문자열 | 이름 | |
| grade | 숫자 | 학년 | |
| height | 숫자 | 키 | |
| deptno | 숫자 | 학과 번호 |
PROFESSOR
| 칼럼 이름 | 데이터 타입 | 키 타입 | 설명 |
|---|---|---|---|
| profno | 숫자 | 기본키 | 번호 |
| name | 문자열 | 이름 | |
| position | 문자열 | 직급 | |
| salary | 숫자 | 급여 | |
| deptno | 숫자 | 학과 번호 |
SELECT deptno, position, AVG(salary)
FROM PROFESSOR
GROUP BY deptno;
(SELECT studno, name
FROM STUDENT
WHERE deptno = 101)
UNION
(SELECT profno, name
FROM PROFESSOR
WHERE deptno = 101);
SELECT grade, COUNT(*), AVG(height)
FROM STUDENT
WHERE COUNT(*) > 2
GROUP BY grade;
SELECT name, grade, height
FROM STUDENT
WHERE height > (SELECT height, grade
FROM STUDENT
WHERE name = '홍길동');
오류 없이 동작하는 문장은 STUDENT와 PROFESSOR의 학과 101 조회 결과를 UNION으로 합치는 문장이다.
두 SELECT가 모두 2개 열을 반환하고, studno와 profno는 숫자, name은 문자열로 대응 열의 개수와 데이터 타입이 호환되므로 합집합 연산이 가능하다.
오류나 개정된 내용이 보이면 알려주세요
[9급 국가직 컴퓨터일반] 20년 1회차 시험지 PDF 다운로드·인쇄 →
전 회차를 한 권으로 — 9급 국가직 컴퓨터일반 기출문제 PDF 전자책(문제집·정답해설집) →
[9급 국가직 컴퓨터일반] 20년 1회차 정답과 해설은 무료인가요?
이 페이지의 20문항 정답과 해설은 로그인 없이 무료로 볼 수 있습니다. 무제한 풀이·실전 모의고사·PDF 출력·전자책 다운로드는 베이직 플랜에 포함됩니다.
이 회차를 CBT 로 직접 풀어볼 수 있나요?
9급 국가직 컴퓨터일반 기출문제 암기장에서 이 회차를 회차별·랜덤으로 풀고 오답노트에 자동으로 모을 수 있습니다. 9급 국가직 컴퓨터일반 기출문제 풀러 가기 →
시험지 PDF 나 전자책으로도 볼 수 있나요?
이 회차의 인쇄용 시험지 PDF 와, 전 회차를 문제집·정답해설집으로 묶은 PDF 전자책을 제공합니다. 9급 국가직 컴퓨터일반 기출문제 PDF 전자책 보기 →


