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

25년 1회차

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

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

25년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
사용자가 언제 어디서나 필요한 컴퓨팅 자원(하드웨어/소프트웨어)에 접근하여 활용할 수 있는 유연한 환경을 의미하는 기술은?
1빅데이터
2가상현실
3사물인터넷
4클라우드 컴퓨팅
정답 및 해설

해당 기술은 클라우드 컴퓨팅이다.

클라우드 컴퓨팅은 서버·스토리지·소프트웨어 같은 컴퓨팅 자원을 인터넷을 통해 필요할 때 필요한 만큼 빌려 쓰는 환경이다.

  • 빅데이터는 대용량·다양·고속 데이터를 수집·분석하는 기술이다.
  • 가상현실은 컴퓨터로 만든 가상 공간을 실제처럼 체험하게 하는 기술이다.
  • 사물인터넷은 사물에 센서·통신 기능을 넣어 인터넷으로 연결하는 기술이다.
문제 2
스택을 이용하여 구현할 수 있는 것이 아닌 것은?
1괄호 매칭
2진법 변환
3후위표현 연산
4은행 대기열
정답 및 해설

스택으로 구현하는 것이 아닌 것은 은행 대기열로, 먼저 온 고객을 먼저 처리하는 큐(FIFO)의 대표 응용이다.

스택은 나중에 들어간 것이 먼저 나오는 LIFO 구조이므로, 최근 항목을 먼저 처리해야 하는 문제에 쓰인다.

  • 괄호 매칭은 여는 괄호를 쌓아 두고 닫는 괄호가 나올 때 꺼내 짝을 맞추는 스택 응용이다.
  • 진법 변환은 나머지를 쌓아 두었다가 역순으로 꺼내는 스택 응용이다.
  • 후위표현 연산은 피연산자를 쌓고 연산자가 나오면 꺼내 계산하는 스택 응용이다.
문제 3
블록체인의 특징이 아닌 것은?
1해시값을 사용하여 변조를 방지한다.
2모든 거래는 거래 당사자만 확인할 수 있다.
3모든 노드는 P2P 네트워크를 이용해 연결되어 있다.
4원장을 조작한 이중 지불을 방지하기 위해 합의 알고리즘을 사용한다.
정답 및 해설

블록체인의 특징이 아닌 것은 모든 거래를 거래 당사자만 확인할 수 있다는 설명이다.

블록체인은 원장을 참여 노드들이 함께 공유하므로, 특히 퍼블릭 블록체인에서는 거래 내역을 누구나 조회할 수 있다.

  • 이전 블록의 해시값을 연결해 변조를 방지한다는 설명은 옳다.
  • 모든 노드가 P2P 네트워크로 연결된다는 설명은 옳다.
  • 이중 지불 같은 원장 조작을 막기 위해 합의 알고리즘을 쓴다는 설명은 옳다.
문제 4
기억장치에 저장될 데이터 또는 기억장치로부터 읽은 데이터가 일시적으로 저장되는 CPU 내부 레지스터는?
1프로그램 카운터
2명령어 레지스터
3메모리 주소 레지스터
4메모리 버퍼 레지스터
정답 및 해설

해당 레지스터는 메모리 버퍼 레지스터(MBR)이다.

MBR은 기억장치에 쓸 데이터나 기억장치에서 읽어 온 데이터를 일시적으로 보관하며, 주소는 MAR이 맡는다.

  • 프로그램 카운터는 다음에 실행할 명령어의 주소를 보관한다.
  • 명령어 레지스터는 현재 실행 중인 명령어를 보관한다.
  • 메모리 주소 레지스터는 접근할 기억장치의 주소를 보관한다.
문제 5
언어 번역 프로그램에 해당하지 않는 것은?
1어셈블러
2컴파일러
3인터프리터
4워드프로세서
정답 및 해설

언어 번역 프로그램이 아닌 것은 워드프로세서로, 문서를 작성·편집하는 응용 소프트웨어이다.

언어 번역 프로그램은 사람이 작성한 프로그램을 기계가 실행할 수 있는 형태로 바꾸는 시스템 소프트웨어이다.

  • 어셈블러는 어셈블리어를 기계어로 번역한다.
  • 컴파일러는 고급 언어 프로그램 전체를 목적 코드로 번역한다.
  • 인터프리터는 고급 언어 프로그램을 한 문장씩 해석해 실행한다.
문제 6
데이터베이스 정규화에 대한 설명으로 옳지 않은 것은?
1정규화 과정에서 고려해야 하는 속성 간의 관련성을 함수적 종속성이라고 한다.
2정규화는 이상 현상이 발생하는 릴레이션을 분해하여 이상 현상을 없애는 과정이다.
3릴레이션의 함수 종속 관계에서 모든 결정자가 슈퍼키면 보이스/코드 정규형(BCNF)에 속한다.
4릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)만으로 구성되어 있으면 제1 정규형에 속한다.
정답 및 해설

옳지 않은 것은 모든 결정자가 슈퍼키이면 BCNF에 속한다는 설명이다. BCNF의 정의는 모든 결정자가 후보키인 릴레이션이다.

후보키는 유일성과 최소성을 모두 갖춘 키이고, 슈퍼키는 유일성만 갖춘 키이다. 이 진술은 정의의 후보키 자리를 슈퍼키로 바꿔 쓴 것이므로 BCNF의 정의로 옳지 않다.

  • 정규화에서 고려하는 속성 간 관련성을 함수적 종속성이라고 한다는 설명은 옳다.
  • 정규화가 이상 현상이 있는 릴레이션을 분해해 이상 현상을 없애는 과정이라는 설명은 옳다.
  • 모든 속성의 도메인이 원자 값만으로 이루어지면 제1 정규형이라는 설명은 옳다.
문제 7
다음 프로세스 메모리 배치에 대한 설명으로 옳은 것만을 모두 고르면?
  • ㄱ. 전역 변수는 스택(stack) 영역에 할당된다.
  • ㄴ. 프로그램 코드는 텍스트(text) 영역에 적재된다.
  • ㄷ. 힙(heap) 영역은 프로세스 실행 중 동적으로 할당된 메모리이다.
  • ㄹ. 함수의 매개변수, 복귀 주소 및 지역변수는 데이터(data) 영역에 할당된다.
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

옳은 것은 프로그램 코드는 텍스트 영역에 적재되고, 힙은 실행 중 동적으로 할당되는 메모리라는 두 설명이다.

프로세스 메모리는 텍스트(코드), 데이터(전역·정적 변수), 힙(동적 할당), 스택(매개변수·복귀 주소·지역 변수) 영역으로 나뉜다.

  • 전역 변수가 스택 영역에 할당된다는 설명 — 전역 변수는 데이터 영역에 할당된다.
  • 매개변수·복귀 주소·지역변수가 데이터 영역에 할당된다는 설명 — 이들은 함수 호출마다 만들어지는 스택 프레임, 즉 스택 영역에 할당된다.
문제 8
다음 TCP와 UDP의 공통 설명으로 옳은 것만을 모두 고르면?
  • ㄱ. 연결 지향 프로토콜이다.
  • ㄴ. 헤더에 근원지(source)와 목적지(destination) 포트 번호가 존재한다.
  • ㄷ. 네트워크에서 손실된 패킷에 대한 재전송 기능이 있다.
  • ㄹ. 체크섬(checksum)이 헤더에 존재한다.
  • ㅁ. 헤더 크기가 동일하다.
1ㄱ, ㄴ
2ㄴ, ㄹ
3ㄷ, ㄹ
4ㄹ, ㅁ
정답 및 해설

TCP와 UDP에 공통인 것은 헤더에 근원지·목적지 포트 번호와 체크섬이 있다는 점이다.

두 프로토콜 모두 전송 계층에서 포트 번호로 응용 프로세스를 구분하고, 헤더에 오류 검출용 체크섬 필드를 둔다.

  • 연결 지향 프로토콜이라는 설명 — TCP에만 해당하며 UDP는 비연결형이다.
  • 손실 패킷 재전송 기능 — TCP만 확인응답과 재전송으로 신뢰성을 보장한다.
  • 헤더 크기가 동일하다는 설명 — UDP 헤더는 8바이트 고정이고 TCP 헤더는 옵션 없이도 20바이트로 서로 다르다.
문제 9
다음과 같이 접근 시간이 주어졌을 때, 캐시 적중률은? (단, 캐시 적재 시간과 캐시 적중 여부 검사 시간은 제외한다)
  • 평균 기억장치 접근 시간 = 2.5ms
  • 주기억 장치 접근 시간 = 11.5ms
  • 캐시 기억장치 접근 시간 = 1.5ms
10.8
20.85
30.9
40.95
정답 및 해설

캐시 적중률을 h라 하면 h = 0.9이다.

평균 접근 시간은 적중 시 캐시 접근 시간, 실패 시 주기억장치 접근 시간의 가중 평균이다.
2.5=1.5h+11.5(1−h)2.5 = 1.5h + 11.5(1-h)

2.5=11.5−10h2.5 = 11.5 - 10h이므로 h=0.9h = 0.9, 즉 접근의 90%가 캐시에서 처리된다.

문제 10
다음 그림은 TCP 기반 서버와 클라이언트 간 소켓 통신을 위한 함수 호출 관계를 나타낸다. (가)~(다)에 들어갈 내용을 바르게 연결한 것은?
1①
2②
3③
4④
정답 및 해설

(가) listen( ), (나) accept( ), (다) 데이터 송수신으로 연결해야 한다.

TCP 서버는 socket( )과 bind( ) 후 listen( )으로 연결 요청 대기 상태가 되고, 클라이언트의 connect( ) 요청을 accept( )로 수락해 통신용 소켓을 얻는다. 이후 양쪽 read( )/write( ) 사이에 오가는 것은 데이터이며, 연결 종료는 close( ) 사이에 따로 표시되어 있다.

  • request( ), accept( ), 연결 종료 요청 연결 — 서버가 연결 대기에 쓰는 request( ) 함수는 없고, read( )/write( ) 사이는 연결 종료가 아닌 데이터 송수신이다.
  • accept( ), connect( ), 연결 종료 요청 연결 — connect( )는 클라이언트가 호출하는 함수이고 accept( ) 앞에는 listen( )이 와야 한다.
  • request( ), connect( ), 데이터 송수신 연결 — (다)는 맞지만 (가)·(나)에 서버가 호출하지 않는 함수가 들어갔다.
문제 11
프로세스 간 통신에 대한 설명으로 옳지 않은 것은?
1파이프(pipe)는 두 프로세스가 통신할 수 있게 하는 전달자로서 동작한다.
2지명 파이프(named pipe)는 서로 통신하는 프로세스 간 부모-자식 관계가 반드시 필요하다.
3신호(signal)는 알려 줄 사건의 근원지나 이유에 따라 비동기식으로도 전달될 수 있다.
4공유 메모리를 사용하는 프로세스 간 통신에서 프로세스들은 동시에 동일한 위치에 쓰지 않도록 책임져야 한다.
정답 및 해설

옳지 않은 것은 지명 파이프가 부모-자식 관계를 반드시 필요로 한다는 설명이다.

지명 파이프(FIFO)는 파일 시스템에 이름을 가진 특수 파일로 존재하므로 관련 없는 프로세스끼리도 그 이름으로 통신할 수 있고, 부모-자식 관계가 필요한 것은 익명(일반) 파이프이다.

  • 파이프가 두 프로세스 사이의 전달자로 동작한다는 설명은 옳다.
  • 신호가 사건의 근원지나 이유에 따라 비동기식으로도 전달될 수 있다는 설명은 옳다.
  • 공유 메모리 방식에서 동시 쓰기를 피할 책임이 프로세스들에 있다는 설명은 옳다.
문제 12
파이프라이닝 기법에 대한 설명으로 옳지 않은 것은?
1데이터 해저드는 앞의 명령 결과가 다음 명령의 입력으로 사용될 때 발생한다.
2이론적으로는 파이프라인의 단계 수만큼 빨라지지만, 이것을 방해하는 요소인 해저드가 발생할 수 있다.
3파이프라이닝은 명령어 하나를 여러 단계로 나누어 각각을 독립적인 장치에서 동시에 실행하는 기법이다.
4제어 해저드는 서로 다른 단계에서 실행되는 명령이 컴퓨터 내의 장치 하나를 동시에 사용하려고 할 때 발생한다.
정답 및 해설

옳지 않은 것은 제어 해저드가 장치 하나를 동시에 쓰려 할 때 발생한다는 설명이다. 그것은 구조적 해저드의 정의이다.

제어 해저드는 분기·점프 명령의 결과가 정해지기 전에 다음 명령어를 가져와야 해서 생기는 해저드이다.

  • 데이터 해저드가 앞 명령의 결과를 다음 명령이 입력으로 쓸 때 발생한다는 설명은 옳다.
  • 이론상 단계 수만큼 빨라지지만 해저드가 이를 방해한다는 설명은 옳다.
  • 명령어 처리를 여러 단계로 나누어 독립 장치에서 중첩 실행한다는 설명은 옳다.
문제 13
원형 연결 리스트에 대한 설명으로 옳은 것은?
1하나의 노드에서 모든 노드로의 접근이 가능하다.
2하나의 노드에서 링크를 계속 따라가면 모든 노드를 거쳐도 자기 자신으로 되돌아올 수 없다.
3마지막 노드의 링크 필드 값은 NULL이다.
4리스트의 끝에 노드를 삽입하는 연산이 단순 연결 리스트보다 비효율적이다.
정답 및 해설

옳은 것은 하나의 노드에서 모든 노드로 접근이 가능하다는 설명이다.

원형 연결 리스트는 마지막 노드의 링크가 첫 노드를 가리키므로, 어느 노드에서 출발해도 링크를 따라 모든 노드를 거쳐 자기 자신으로 돌아온다.

  • 링크를 따라가면 자기 자신으로 되돌아올 수 없다는 설명은 원형 구조와 반대이다.
  • 마지막 노드의 링크가 NULL인 것은 단순 연결 리스트이며, 원형에서는 첫 노드를 가리킨다.
  • 마지막 노드를 가리키는 포인터를 두면 끝에 삽입하는 연산이 오히려 효율적이므로 비효율적이라는 설명은 틀리다.
문제 14
다음 파이썬(Python) 프로그램의 출력 결과는?
a = [1, 3, 5, 7]
b = {1, 3, 5, 7}
c = (1, 3, 5, 7)

a.append(3)
b.add(3)

print(len(a) + len(b) + len(c))
110
212
313
414
정답 및 해설

출력 결과는 13이다.

리스트 a는 append(3)으로 3이 하나 더 추가되어 [1, 3, 5, 7, 3]이 되므로 길이 5이고, 집합 b는 중복을 허용하지 않아 add(3)이 무시되어 길이 4이며, 튜플 c는 길이 4이다.

5 + 4 + 4 = 13

문제 15
외부 인터럽트(External Interrupt)의 요인에 해당하지 않는 것은?
1입ㆍ출력
2오버플로
3전원 이상
4기계 오작동
정답 및 해설

외부 인터럽트 요인이 아닌 것은 오버플로로, 명령어 실행 중 CPU 내부에서 발생하는 내부 인터럽트(트랩)이다.

외부 인터럽트는 CPU 외부의 하드웨어 사건으로 발생하고, 내부 인터럽트는 오버플로·0으로 나누기·잘못된 명령어처럼 프로그램 실행 오류로 발생한다.

  • 입·출력 장치의 완료·요청 신호는 외부 인터럽트 요인이다.
  • 정전 같은 전원 이상은 외부 인터럽트 요인이다.
  • 기계 오작동(하드웨어 고장)은 외부 인터럽트 요인이다.
문제 16
컴퓨터의 버스에 대한 설명으로 옳지 않은 것은?
1시스템 버스의 종류에는 제어 버스, 데이터 버스, 주소 버스가 있다.
2제어 버스는 제어 신호를 전달하기 위해 사용된다.
3버스의 폭은 전송량을 의미하며, 컴퓨터의 성능에 영향을 준다.
4컴퓨터의 각 장치 간에 데이터를 전달할 때 사용하는 데이터 버스는 단방향성을 가지고 있다.
정답 및 해설

옳지 않은 것은 데이터 버스가 단방향성을 가진다는 설명이다. 데이터 버스는 읽기·쓰기 데이터가 오가는 양방향 버스이다.

CPU가 위치를 지정하기만 하는 주소 버스가 단방향인 것과 달리, 데이터는 CPU와 기억장치·입출력장치 사이를 양쪽으로 이동한다.

  • 시스템 버스가 제어·데이터·주소 버스로 이루어진다는 설명은 옳다.
  • 제어 버스가 제어 신호를 전달한다는 설명은 옳다.
  • 버스 폭이 한 번의 전송량을 결정해 성능에 영향을 준다는 설명은 옳다.
문제 17
NoSQL의 특징으로 옳지 않은 것은?
1동적 스키마를 지원할 수 있다.
2다양한 형태의 비정형 데이터들도 다룬다.
3빠른 속도로 증가하는 대용량 데이터를 처리하는 데 적합하지 않다.
4관계형 데이터베이스보다는 ACID 특성을 중요시하지 않는다.
정답 및 해설

옳지 않은 것은 빠르게 증가하는 대용량 데이터 처리에 적합하지 않다는 설명이다. NoSQL은 오히려 대용량 데이터의 수평적 확장에 강하다.

NoSQL은 고정 스키마와 엄격한 트랜잭션 대신 분산·확장성을 우선해 빅데이터 환경에 널리 쓰인다.

  • 동적 스키마를 지원한다는 설명은 옳다.
  • 다양한 형태의 비정형 데이터를 다룬다는 설명은 옳다.
  • 관계형 데이터베이스보다 ACID 특성을 덜 중시한다(BASE 지향)는 설명은 옳다.
문제 18
힙(Heap)에 대한 설명으로 옳지 않은 것은?
1삽입 시간 복잡도는 O(1)이다.
2힙은 우선순위 큐의 한 종류이다.
3힙은 완전 이진 트리를 사용한다.
4최대 힙(Max Heap)은 부모노드의 키값이 자식노드의 키값보다 크거나 같다.
정답 및 해설

옳지 않은 것은 힙의 삽입 시간 복잡도가 O(1)이라는 설명이다. 힙 삽입은 O(log⁡n)O(\log n)이다.

새 원소를 마지막 위치에 넣은 뒤 부모와 비교·교환하며 올라가므로, 최대 트리 높이 log⁡n\log n만큼 이동한다.

  • 힙이 우선순위 큐를 구현하는 대표 자료구조라는 설명은 옳다.
  • 힙이 완전 이진 트리를 사용한다는 설명은 옳다.
  • 최대 힙에서 부모 키가 자식 키보다 크거나 같다는 설명은 옳다.
문제 19
운영체제 구조에 대한 설명으로 옳지 않은 것은?
1커널은 운영체제의 핵심 기능을 모아 놓은 것이다.
2다양한 장치를 효율적으로 사용할 수 있는 하드웨어와의 인터페이스를 디바이스 드라이버라고 한다.
3사용자 인터페이스는 커널에 명령을 전달하고, 실행 결과를 사용자와 응용 프로그램에 전달한다.
4사용자나 응용 프로그램이 커널을 거치지 않고 하드웨어에 직접 접근할 수 있도록 제공하는 함수의 집합을 시스템 호출이라고 한다.
정답 및 해설

옳지 않은 것은 시스템 호출이 커널을 거치지 않고 하드웨어에 직접 접근하게 하는 함수 집합이라는 설명이다.

시스템 호출은 사용자나 응용 프로그램이 커널의 서비스를 요청하는 인터페이스로, 하드웨어 접근은 커널을 통해서만 이루어진다.

  • 커널이 운영체제의 핵심 기능을 모아 놓은 것이라는 설명은 옳다.
  • 하드웨어와의 인터페이스를 디바이스 드라이버라고 한다는 설명은 옳다.
  • 사용자 인터페이스가 커널에 명령을 전달하고 결과를 돌려준다는 설명은 옳다.
문제 20
다음 제시된 표에서 (가)~(라)에 들어갈 애플리케이션 계층 프로토콜 및 하위 전송 계층 프로토콜을 바르게 연결한 것은?
애플리케이션 \ 프로토콜애플리케이션 계층 프로토콜하위 전송 계층 프로토콜
전자메일(가)(나)
원격접속(다)(라)
(가)(나)(다)(라)
①SMTPTCPTelnetTCP
②SNMPUDPDNSUDP
③SNMPTCPTelnetUDP
④SMTPUDPDNSTCP
1①
2②
3③
4④
정답 및 해설

(가) SMTP, (나) TCP, (다) Telnet, (라) TCP로 연결해야 한다.

전자메일 전송은 SMTP, 원격접속은 Telnet이 담당하며, 둘 다 신뢰성 있는 연결이 필요해 TCP 위에서 동작한다.

  • SNMP, UDP, DNS, UDP 연결 — SNMP는 네트워크 관리, DNS는 도메인 이름 해석 프로토콜로 전자메일·원격접속 프로토콜이 아니다.
  • SNMP, TCP, Telnet, UDP 연결 — SNMP는 전자메일 프로토콜이 아니고 Telnet은 UDP가 아닌 TCP를 쓴다.
  • SMTP, UDP, DNS, TCP 연결 — SMTP는 UDP가 아닌 TCP를 쓰고 DNS는 원격접속 프로토콜이 아니다.
9급 국가직 컴퓨터일반 기출문제모두CBT · moducbt.com
25년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
사용자가 언제 어디서나 필요한 컴퓨팅 자원(하드웨어/소프트웨어)에 접근하여 활용할 수 있는 유연한 환경을 의미하는 기술은?
1빅데이터
2가상현실
3사물인터넷
4클라우드 컴퓨팅
정답 및 해설

해당 기술은 클라우드 컴퓨팅이다.

클라우드 컴퓨팅은 서버·스토리지·소프트웨어 같은 컴퓨팅 자원을 인터넷을 통해 필요할 때 필요한 만큼 빌려 쓰는 환경이다.

  • 빅데이터는 대용량·다양·고속 데이터를 수집·분석하는 기술이다.
  • 가상현실은 컴퓨터로 만든 가상 공간을 실제처럼 체험하게 하는 기술이다.
  • 사물인터넷은 사물에 센서·통신 기능을 넣어 인터넷으로 연결하는 기술이다.
문제 2
스택을 이용하여 구현할 수 있는 것이 아닌 것은?
1괄호 매칭
2진법 변환
3후위표현 연산
4은행 대기열
정답 및 해설

스택으로 구현하는 것이 아닌 것은 은행 대기열로, 먼저 온 고객을 먼저 처리하는 큐(FIFO)의 대표 응용이다.

스택은 나중에 들어간 것이 먼저 나오는 LIFO 구조이므로, 최근 항목을 먼저 처리해야 하는 문제에 쓰인다.

  • 괄호 매칭은 여는 괄호를 쌓아 두고 닫는 괄호가 나올 때 꺼내 짝을 맞추는 스택 응용이다.
  • 진법 변환은 나머지를 쌓아 두었다가 역순으로 꺼내는 스택 응용이다.
  • 후위표현 연산은 피연산자를 쌓고 연산자가 나오면 꺼내 계산하는 스택 응용이다.
문제 3
블록체인의 특징이 아닌 것은?
1해시값을 사용하여 변조를 방지한다.
2모든 거래는 거래 당사자만 확인할 수 있다.
3모든 노드는 P2P 네트워크를 이용해 연결되어 있다.
4원장을 조작한 이중 지불을 방지하기 위해 합의 알고리즘을 사용한다.
정답 및 해설

블록체인의 특징이 아닌 것은 모든 거래를 거래 당사자만 확인할 수 있다는 설명이다.

블록체인은 원장을 참여 노드들이 함께 공유하므로, 특히 퍼블릭 블록체인에서는 거래 내역을 누구나 조회할 수 있다.

  • 이전 블록의 해시값을 연결해 변조를 방지한다는 설명은 옳다.
  • 모든 노드가 P2P 네트워크로 연결된다는 설명은 옳다.
  • 이중 지불 같은 원장 조작을 막기 위해 합의 알고리즘을 쓴다는 설명은 옳다.
문제 4
기억장치에 저장될 데이터 또는 기억장치로부터 읽은 데이터가 일시적으로 저장되는 CPU 내부 레지스터는?
1프로그램 카운터
2명령어 레지스터
3메모리 주소 레지스터
4메모리 버퍼 레지스터
정답 및 해설

해당 레지스터는 메모리 버퍼 레지스터(MBR)이다.

MBR은 기억장치에 쓸 데이터나 기억장치에서 읽어 온 데이터를 일시적으로 보관하며, 주소는 MAR이 맡는다.

  • 프로그램 카운터는 다음에 실행할 명령어의 주소를 보관한다.
  • 명령어 레지스터는 현재 실행 중인 명령어를 보관한다.
  • 메모리 주소 레지스터는 접근할 기억장치의 주소를 보관한다.
문제 5
언어 번역 프로그램에 해당하지 않는 것은?
1어셈블러
2컴파일러
3인터프리터
4워드프로세서
정답 및 해설

언어 번역 프로그램이 아닌 것은 워드프로세서로, 문서를 작성·편집하는 응용 소프트웨어이다.

언어 번역 프로그램은 사람이 작성한 프로그램을 기계가 실행할 수 있는 형태로 바꾸는 시스템 소프트웨어이다.

  • 어셈블러는 어셈블리어를 기계어로 번역한다.
  • 컴파일러는 고급 언어 프로그램 전체를 목적 코드로 번역한다.
  • 인터프리터는 고급 언어 프로그램을 한 문장씩 해석해 실행한다.
문제 6
데이터베이스 정규화에 대한 설명으로 옳지 않은 것은?
1정규화 과정에서 고려해야 하는 속성 간의 관련성을 함수적 종속성이라고 한다.
2정규화는 이상 현상이 발생하는 릴레이션을 분해하여 이상 현상을 없애는 과정이다.
3릴레이션의 함수 종속 관계에서 모든 결정자가 슈퍼키면 보이스/코드 정규형(BCNF)에 속한다.
4릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)만으로 구성되어 있으면 제1 정규형에 속한다.
정답 및 해설

옳지 않은 것은 모든 결정자가 슈퍼키이면 BCNF에 속한다는 설명이다. BCNF의 정의는 모든 결정자가 후보키인 릴레이션이다.

후보키는 유일성과 최소성을 모두 갖춘 키이고, 슈퍼키는 유일성만 갖춘 키이다. 이 진술은 정의의 후보키 자리를 슈퍼키로 바꿔 쓴 것이므로 BCNF의 정의로 옳지 않다.

  • 정규화에서 고려하는 속성 간 관련성을 함수적 종속성이라고 한다는 설명은 옳다.
  • 정규화가 이상 현상이 있는 릴레이션을 분해해 이상 현상을 없애는 과정이라는 설명은 옳다.
  • 모든 속성의 도메인이 원자 값만으로 이루어지면 제1 정규형이라는 설명은 옳다.
문제 7
다음 프로세스 메모리 배치에 대한 설명으로 옳은 것만을 모두 고르면?
  • ㄱ. 전역 변수는 스택(stack) 영역에 할당된다.
  • ㄴ. 프로그램 코드는 텍스트(text) 영역에 적재된다.
  • ㄷ. 힙(heap) 영역은 프로세스 실행 중 동적으로 할당된 메모리이다.
  • ㄹ. 함수의 매개변수, 복귀 주소 및 지역변수는 데이터(data) 영역에 할당된다.
1ㄱ, ㄴ
2ㄱ, ㄹ
3ㄴ, ㄷ
4ㄷ, ㄹ
정답 및 해설

옳은 것은 프로그램 코드는 텍스트 영역에 적재되고, 힙은 실행 중 동적으로 할당되는 메모리라는 두 설명이다.

프로세스 메모리는 텍스트(코드), 데이터(전역·정적 변수), 힙(동적 할당), 스택(매개변수·복귀 주소·지역 변수) 영역으로 나뉜다.

  • 전역 변수가 스택 영역에 할당된다는 설명 — 전역 변수는 데이터 영역에 할당된다.
  • 매개변수·복귀 주소·지역변수가 데이터 영역에 할당된다는 설명 — 이들은 함수 호출마다 만들어지는 스택 프레임, 즉 스택 영역에 할당된다.
문제 8
다음 TCP와 UDP의 공통 설명으로 옳은 것만을 모두 고르면?
  • ㄱ. 연결 지향 프로토콜이다.
  • ㄴ. 헤더에 근원지(source)와 목적지(destination) 포트 번호가 존재한다.
  • ㄷ. 네트워크에서 손실된 패킷에 대한 재전송 기능이 있다.
  • ㄹ. 체크섬(checksum)이 헤더에 존재한다.
  • ㅁ. 헤더 크기가 동일하다.
1ㄱ, ㄴ
2ㄴ, ㄹ
3ㄷ, ㄹ
4ㄹ, ㅁ
정답 및 해설

TCP와 UDP에 공통인 것은 헤더에 근원지·목적지 포트 번호와 체크섬이 있다는 점이다.

두 프로토콜 모두 전송 계층에서 포트 번호로 응용 프로세스를 구분하고, 헤더에 오류 검출용 체크섬 필드를 둔다.

  • 연결 지향 프로토콜이라는 설명 — TCP에만 해당하며 UDP는 비연결형이다.
  • 손실 패킷 재전송 기능 — TCP만 확인응답과 재전송으로 신뢰성을 보장한다.
  • 헤더 크기가 동일하다는 설명 — UDP 헤더는 8바이트 고정이고 TCP 헤더는 옵션 없이도 20바이트로 서로 다르다.
문제 9
다음과 같이 접근 시간이 주어졌을 때, 캐시 적중률은? (단, 캐시 적재 시간과 캐시 적중 여부 검사 시간은 제외한다)
  • 평균 기억장치 접근 시간 = 2.5ms
  • 주기억 장치 접근 시간 = 11.5ms
  • 캐시 기억장치 접근 시간 = 1.5ms
10.8
20.85
30.9
40.95
정답 및 해설

캐시 적중률을 h라 하면 h = 0.9이다.

평균 접근 시간은 적중 시 캐시 접근 시간, 실패 시 주기억장치 접근 시간의 가중 평균이다.
2.5=1.5h+11.5(1−h)2.5 = 1.5h + 11.5(1-h)

2.5=11.5−10h2.5 = 11.5 - 10h이므로 h=0.9h = 0.9, 즉 접근의 90%가 캐시에서 처리된다.

문제 10
다음 그림은 TCP 기반 서버와 클라이언트 간 소켓 통신을 위한 함수 호출 관계를 나타낸다. (가)~(다)에 들어갈 내용을 바르게 연결한 것은?
1①
2②
3③
4④
정답 및 해설

(가) listen( ), (나) accept( ), (다) 데이터 송수신으로 연결해야 한다.

TCP 서버는 socket( )과 bind( ) 후 listen( )으로 연결 요청 대기 상태가 되고, 클라이언트의 connect( ) 요청을 accept( )로 수락해 통신용 소켓을 얻는다. 이후 양쪽 read( )/write( ) 사이에 오가는 것은 데이터이며, 연결 종료는 close( ) 사이에 따로 표시되어 있다.

  • request( ), accept( ), 연결 종료 요청 연결 — 서버가 연결 대기에 쓰는 request( ) 함수는 없고, read( )/write( ) 사이는 연결 종료가 아닌 데이터 송수신이다.
  • accept( ), connect( ), 연결 종료 요청 연결 — connect( )는 클라이언트가 호출하는 함수이고 accept( ) 앞에는 listen( )이 와야 한다.
  • request( ), connect( ), 데이터 송수신 연결 — (다)는 맞지만 (가)·(나)에 서버가 호출하지 않는 함수가 들어갔다.
문제 11
프로세스 간 통신에 대한 설명으로 옳지 않은 것은?
1파이프(pipe)는 두 프로세스가 통신할 수 있게 하는 전달자로서 동작한다.
2지명 파이프(named pipe)는 서로 통신하는 프로세스 간 부모-자식 관계가 반드시 필요하다.
3신호(signal)는 알려 줄 사건의 근원지나 이유에 따라 비동기식으로도 전달될 수 있다.
4공유 메모리를 사용하는 프로세스 간 통신에서 프로세스들은 동시에 동일한 위치에 쓰지 않도록 책임져야 한다.
정답 및 해설

옳지 않은 것은 지명 파이프가 부모-자식 관계를 반드시 필요로 한다는 설명이다.

지명 파이프(FIFO)는 파일 시스템에 이름을 가진 특수 파일로 존재하므로 관련 없는 프로세스끼리도 그 이름으로 통신할 수 있고, 부모-자식 관계가 필요한 것은 익명(일반) 파이프이다.

  • 파이프가 두 프로세스 사이의 전달자로 동작한다는 설명은 옳다.
  • 신호가 사건의 근원지나 이유에 따라 비동기식으로도 전달될 수 있다는 설명은 옳다.
  • 공유 메모리 방식에서 동시 쓰기를 피할 책임이 프로세스들에 있다는 설명은 옳다.
문제 12
파이프라이닝 기법에 대한 설명으로 옳지 않은 것은?
1데이터 해저드는 앞의 명령 결과가 다음 명령의 입력으로 사용될 때 발생한다.
2이론적으로는 파이프라인의 단계 수만큼 빨라지지만, 이것을 방해하는 요소인 해저드가 발생할 수 있다.
3파이프라이닝은 명령어 하나를 여러 단계로 나누어 각각을 독립적인 장치에서 동시에 실행하는 기법이다.
4제어 해저드는 서로 다른 단계에서 실행되는 명령이 컴퓨터 내의 장치 하나를 동시에 사용하려고 할 때 발생한다.
정답 및 해설

옳지 않은 것은 제어 해저드가 장치 하나를 동시에 쓰려 할 때 발생한다는 설명이다. 그것은 구조적 해저드의 정의이다.

제어 해저드는 분기·점프 명령의 결과가 정해지기 전에 다음 명령어를 가져와야 해서 생기는 해저드이다.

  • 데이터 해저드가 앞 명령의 결과를 다음 명령이 입력으로 쓸 때 발생한다는 설명은 옳다.
  • 이론상 단계 수만큼 빨라지지만 해저드가 이를 방해한다는 설명은 옳다.
  • 명령어 처리를 여러 단계로 나누어 독립 장치에서 중첩 실행한다는 설명은 옳다.
문제 13
원형 연결 리스트에 대한 설명으로 옳은 것은?
1하나의 노드에서 모든 노드로의 접근이 가능하다.
2하나의 노드에서 링크를 계속 따라가면 모든 노드를 거쳐도 자기 자신으로 되돌아올 수 없다.
3마지막 노드의 링크 필드 값은 NULL이다.
4리스트의 끝에 노드를 삽입하는 연산이 단순 연결 리스트보다 비효율적이다.
정답 및 해설

옳은 것은 하나의 노드에서 모든 노드로 접근이 가능하다는 설명이다.

원형 연결 리스트는 마지막 노드의 링크가 첫 노드를 가리키므로, 어느 노드에서 출발해도 링크를 따라 모든 노드를 거쳐 자기 자신으로 돌아온다.

  • 링크를 따라가면 자기 자신으로 되돌아올 수 없다는 설명은 원형 구조와 반대이다.
  • 마지막 노드의 링크가 NULL인 것은 단순 연결 리스트이며, 원형에서는 첫 노드를 가리킨다.
  • 마지막 노드를 가리키는 포인터를 두면 끝에 삽입하는 연산이 오히려 효율적이므로 비효율적이라는 설명은 틀리다.
문제 14
다음 파이썬(Python) 프로그램의 출력 결과는?
a = [1, 3, 5, 7]
b = {1, 3, 5, 7}
c = (1, 3, 5, 7)

a.append(3)
b.add(3)

print(len(a) + len(b) + len(c))
110
212
313
414
정답 및 해설

출력 결과는 13이다.

리스트 a는 append(3)으로 3이 하나 더 추가되어 [1, 3, 5, 7, 3]이 되므로 길이 5이고, 집합 b는 중복을 허용하지 않아 add(3)이 무시되어 길이 4이며, 튜플 c는 길이 4이다.

5 + 4 + 4 = 13

문제 15
외부 인터럽트(External Interrupt)의 요인에 해당하지 않는 것은?
1입ㆍ출력
2오버플로
3전원 이상
4기계 오작동
정답 및 해설

외부 인터럽트 요인이 아닌 것은 오버플로로, 명령어 실행 중 CPU 내부에서 발생하는 내부 인터럽트(트랩)이다.

외부 인터럽트는 CPU 외부의 하드웨어 사건으로 발생하고, 내부 인터럽트는 오버플로·0으로 나누기·잘못된 명령어처럼 프로그램 실행 오류로 발생한다.

  • 입·출력 장치의 완료·요청 신호는 외부 인터럽트 요인이다.
  • 정전 같은 전원 이상은 외부 인터럽트 요인이다.
  • 기계 오작동(하드웨어 고장)은 외부 인터럽트 요인이다.
문제 16
컴퓨터의 버스에 대한 설명으로 옳지 않은 것은?
1시스템 버스의 종류에는 제어 버스, 데이터 버스, 주소 버스가 있다.
2제어 버스는 제어 신호를 전달하기 위해 사용된다.
3버스의 폭은 전송량을 의미하며, 컴퓨터의 성능에 영향을 준다.
4컴퓨터의 각 장치 간에 데이터를 전달할 때 사용하는 데이터 버스는 단방향성을 가지고 있다.
정답 및 해설

옳지 않은 것은 데이터 버스가 단방향성을 가진다는 설명이다. 데이터 버스는 읽기·쓰기 데이터가 오가는 양방향 버스이다.

CPU가 위치를 지정하기만 하는 주소 버스가 단방향인 것과 달리, 데이터는 CPU와 기억장치·입출력장치 사이를 양쪽으로 이동한다.

  • 시스템 버스가 제어·데이터·주소 버스로 이루어진다는 설명은 옳다.
  • 제어 버스가 제어 신호를 전달한다는 설명은 옳다.
  • 버스 폭이 한 번의 전송량을 결정해 성능에 영향을 준다는 설명은 옳다.
문제 17
NoSQL의 특징으로 옳지 않은 것은?
1동적 스키마를 지원할 수 있다.
2다양한 형태의 비정형 데이터들도 다룬다.
3빠른 속도로 증가하는 대용량 데이터를 처리하는 데 적합하지 않다.
4관계형 데이터베이스보다는 ACID 특성을 중요시하지 않는다.
정답 및 해설

옳지 않은 것은 빠르게 증가하는 대용량 데이터 처리에 적합하지 않다는 설명이다. NoSQL은 오히려 대용량 데이터의 수평적 확장에 강하다.

NoSQL은 고정 스키마와 엄격한 트랜잭션 대신 분산·확장성을 우선해 빅데이터 환경에 널리 쓰인다.

  • 동적 스키마를 지원한다는 설명은 옳다.
  • 다양한 형태의 비정형 데이터를 다룬다는 설명은 옳다.
  • 관계형 데이터베이스보다 ACID 특성을 덜 중시한다(BASE 지향)는 설명은 옳다.
문제 18
힙(Heap)에 대한 설명으로 옳지 않은 것은?
1삽입 시간 복잡도는 O(1)이다.
2힙은 우선순위 큐의 한 종류이다.
3힙은 완전 이진 트리를 사용한다.
4최대 힙(Max Heap)은 부모노드의 키값이 자식노드의 키값보다 크거나 같다.
정답 및 해설

옳지 않은 것은 힙의 삽입 시간 복잡도가 O(1)이라는 설명이다. 힙 삽입은 O(log⁡n)O(\log n)이다.

새 원소를 마지막 위치에 넣은 뒤 부모와 비교·교환하며 올라가므로, 최대 트리 높이 log⁡n\log n만큼 이동한다.

  • 힙이 우선순위 큐를 구현하는 대표 자료구조라는 설명은 옳다.
  • 힙이 완전 이진 트리를 사용한다는 설명은 옳다.
  • 최대 힙에서 부모 키가 자식 키보다 크거나 같다는 설명은 옳다.
문제 19
운영체제 구조에 대한 설명으로 옳지 않은 것은?
1커널은 운영체제의 핵심 기능을 모아 놓은 것이다.
2다양한 장치를 효율적으로 사용할 수 있는 하드웨어와의 인터페이스를 디바이스 드라이버라고 한다.
3사용자 인터페이스는 커널에 명령을 전달하고, 실행 결과를 사용자와 응용 프로그램에 전달한다.
4사용자나 응용 프로그램이 커널을 거치지 않고 하드웨어에 직접 접근할 수 있도록 제공하는 함수의 집합을 시스템 호출이라고 한다.
정답 및 해설

옳지 않은 것은 시스템 호출이 커널을 거치지 않고 하드웨어에 직접 접근하게 하는 함수 집합이라는 설명이다.

시스템 호출은 사용자나 응용 프로그램이 커널의 서비스를 요청하는 인터페이스로, 하드웨어 접근은 커널을 통해서만 이루어진다.

  • 커널이 운영체제의 핵심 기능을 모아 놓은 것이라는 설명은 옳다.
  • 하드웨어와의 인터페이스를 디바이스 드라이버라고 한다는 설명은 옳다.
  • 사용자 인터페이스가 커널에 명령을 전달하고 결과를 돌려준다는 설명은 옳다.
문제 20
다음 제시된 표에서 (가)~(라)에 들어갈 애플리케이션 계층 프로토콜 및 하위 전송 계층 프로토콜을 바르게 연결한 것은?
애플리케이션 \ 프로토콜애플리케이션 계층 프로토콜하위 전송 계층 프로토콜
전자메일(가)(나)
원격접속(다)(라)
(가)(나)(다)(라)
①SMTPTCPTelnetTCP
②SNMPUDPDNSUDP
③SNMPTCPTelnetUDP
④SMTPUDPDNSTCP
1①
2②
3③
4④
정답 및 해설

(가) SMTP, (나) TCP, (다) Telnet, (라) TCP로 연결해야 한다.

전자메일 전송은 SMTP, 원격접속은 Telnet이 담당하며, 둘 다 신뢰성 있는 연결이 필요해 TCP 위에서 동작한다.

  • SNMP, UDP, DNS, UDP 연결 — SNMP는 네트워크 관리, DNS는 도메인 이름 해석 프로토콜로 전자메일·원격접속 프로토콜이 아니다.
  • SNMP, TCP, Telnet, UDP 연결 — SNMP는 전자메일 프로토콜이 아니고 Telnet은 UDP가 아닌 TCP를 쓴다.
  • SMTP, UDP, DNS, TCP 연결 — SMTP는 UDP가 아닌 TCP를 쓰고 DNS는 원격접속 프로토콜이 아니다.