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

13년 1회차

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

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

13년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
객체 지향 프로그래밍에 대한 설명으로 옳지 않은 것은?
1하나의 클래스를 사용하여 여러 객체를 생성하는데, 각각의 객체를 클래스의 인스턴스(instance)라고 한다.
2객체는 속성(attributes)과 행동(behaviors)으로 구성된다.
3한 클래스가 다른 클래스의 속성과 행동을 상속(inheritance) 받을 수 있다.
4다형성(polymorphism)은 몇 개의 클래스 객체들을 묶어서 하나의 객체처럼 다루는 프로그래밍 기법이다.
정답 및 해설

옳지 않은 것은 다형성이 여러 클래스 객체를 묶어 하나의 객체처럼 다루는 기법이라는 설명이다.

다형성은 같은 이름의 메시지(메소드)에 대해 객체마다 다르게 동작하는 성질로, 오버로딩·오버라이딩으로 구현된다. 여러 객체를 묶어 하나처럼 다루는 것은 집단화(aggregation)에 가깝다.

  • 한 클래스로 만든 각 객체를 인스턴스라 한다 — 옳다.
  • 객체는 속성과 행동으로 구성된다 — 옳다.
  • 한 클래스가 다른 클래스의 속성과 행동을 상속받을 수 있다 — 옳다.
문제 2
다음 두 이진수에 대한 NAND 비트(bitwise) 연산 결과는?

101110002 NAND 001100112

1001100002
2101110112
3110011112
4010001002
정답 및 해설

NAND 연산 결과는 11001111211001111_{2}이다.

NAND는 AND 결과를 반전한 것이다.

  • AND: 10111000 AND 00110011 = 00110000
  • NAND: 00110000을 반전 → 11001111
  • 00110000 — 반전 전의 AND 결과이다.
  • 10111011 — OR 결과이다.
  • 01000100 — NOR 결과이다.
문제 3
컴퓨터의 입출력과 관련이 없는 것은?
1폴링(polling)
2인터럽트(interrupt)
3DMA(Direct Memory Access)
4세마포어(semaphore)
정답 및 해설

입출력과 관련이 없는 것은 세마포어(semaphore)이다.

세마포어는 여러 프로세스가 공유 자원에 접근할 때 상호 배제와 동기화를 위해 쓰는 운영체제의 도구이다.

  • 폴링 — CPU가 장치 상태를 주기적으로 검사하는 입출력 방식이다.
  • 인터럽트 — 입출력 완료 등을 장치가 CPU에 알리는 방식이다.
  • DMA — CPU를 거치지 않고 장치와 메모리가 직접 데이터를 전송하는 방식이다.
문제 4
RAID 레벨 0에서 성능 향상을 위해 채택한 기법은?
1미러링(mirroring) 기법
2패리티(parity) 정보저장 기법
3스트라이핑(striping) 기법
4쉐도잉(shadowing) 기법
정답 및 해설

RAID 0이 성능 향상을 위해 쓰는 기법은 스트라이핑(striping)이다.

RAID 0은 데이터를 블록 단위로 나누어 여러 디스크에 분산 저장해 병렬로 읽고 쓰므로 속도가 빠르지만, 중복 정보가 없어 디스크 하나만 고장 나도 데이터를 잃는다.

  • 미러링 — 같은 데이터를 두 디스크에 복제하는 RAID 1의 기법이다.
  • 패리티 정보 저장 — RAID 3·4·5 등에서 오류 복구를 위해 쓴다.
  • 쉐도잉 — 미러링과 같은 의미의 복제 기법이다.
문제 5
악성코드에 대한 설명으로 옳지 않은 것은?
1파일 감염 바이러스는 대부분 메모리에 상주하며 프로그램 파일을 감염시킨다.
2웜(worm)은 자신의 명령어를 다른 프로그램 파일의 일부분에 복사하여 컴퓨터를 오동작하게 하는 종속형 컴퓨터 악성코드이다.
3트로이 목마는 겉으로 보기에 정상적인 프로그램인 것 같으나 악성코드를 숨겨두어 시스템을 공격한다.
4매크로 바이러스는 프로그램에서 어떤 작업을 자동화하기 위해 정의한 내부 프로그래밍 언어를 사용하여 데이터 파일을 감염시킨다.
정답 및 해설

옳지 않은 것은 웜이 다른 프로그램 파일에 자신을 복사하는 종속형 악성코드라는 설명이다.

웜은 숙주 파일 없이 스스로 복제해 네트워크로 전파되는 독립형 악성코드이다. 다른 프로그램에 기생해 감염시키는 것은 바이러스의 특징이다.

  • 파일 감염 바이러스는 메모리에 상주하며 프로그램 파일을 감염시킨다 — 옳다.
  • 트로이 목마는 정상 프로그램으로 위장해 악성코드를 숨긴다 — 옳다.
  • 매크로 바이러스는 응용 프로그램의 매크로 언어로 데이터 파일을 감염시킨다 — 옳다.
문제 6
가상 메모리(virtual memory)에 대한 설명으로 옳지 않은 것은?
1가상 메모리는 프로그래머가 물리 메모리(physical memory)크기 문제를 염려할 필요 없이 프로그램을 작성할 수 있게 한다.
2가상 주소(virtual address)의 비트 수는 물리 주소(physical address)의 비트 수에 비해 같거나 커야 한다.
3메모리 관리 장치(memory management unit)는 가상 주소를 물리 주소로 변환하는 역할을 한다.
4가상 메모리는 페이지 공유를 통해 두 개 이상의 프로세스들이 메모리를 공유하는 것을 가능하게 한다.
정답 및 해설

옳지 않은 것은 가상 주소의 비트 수가 물리 주소의 비트 수와 같거나 커야 한다는 설명이다.

가상 주소와 물리 주소의 길이는 서로 독립적으로 정해지며, 가상 주소가 물리 주소보다 짧은 시스템도 존재한다. 반드시 같거나 커야 한다는 제약은 없다.

  • 물리 메모리 크기를 염려하지 않고 프로그램을 작성할 수 있다 — 옳다.
  • MMU가 가상 주소를 물리 주소로 변환한다 — 옳다.
  • 페이지 공유로 여러 프로세스가 메모리를 공유할 수 있다 — 옳다.
문제 7
BNF(Backus-Naur Form)로 표현된 다음 문법에 의해 생성될 수 없는 id는?

<id> ::= <letter> | <id><letter> | <id><digit>
<letter> ::= 'a' | 'b' | 'c'
<digit> ::= '1' | '2' | '3'

1a
2a1b
3abc321
43a2b1c
정답 및 해설

생성될 수 없는 id는 3a2b1c이다.

<id>는 <letter> 하나에서 시작해 오른쪽으로 letter나 digit를 덧붙이는 규칙이므로, 첫 글자는 반드시 문자(a, b, c)여야 한다.

  • a — <letter> 하나로 생성된다.
  • a1b — a에 1, b를 차례로 덧붙여 생성된다.
  • abc321 — abc에 3, 2, 1을 차례로 덧붙여 생성된다.
  • 3a2b1c — 숫자로 시작하므로 생성될 수 없다.
문제 8
다음 C 프로그램 실행 결과로 출력되는 sum 값으로 옳은 것은?
#include <stdio.h>
int foo(void)  {
  int var1 = 1;
  static int var2 = 1;
  return (var1++) + (var2++);
}
void main()  {
  int i=0, sum=0;
  while(i < 3)  {
    sum = sum + foo();
    i++;
  }
  printf("sum=%d\5Cn", sum);
}
18
29
310
411
정답 및 해설

출력되는 sum 값은 9이다.

var1은 일반 지역 변수라 호출마다 1로 초기화되지만, var2는 static 변수라 처음 한 번만 초기화되고 값이 호출 사이에 유지된다. 후위 증가이므로 증가 전 값이 더해진다.

  • 1회 호출: 1 + 1 = 2 (var2 → 2)
  • 2회 호출: 1 + 2 = 3 (var2 → 3)
  • 3회 호출: 1 + 3 = 4 (var2 → 4)

sum = 2 + 3 + 4 = 9이다. var2도 매번 1로 초기화된다고 보면 6이, 전위 증가로 보면 더 큰 값이 나온다.

문제 9
캐시 메모리가 다음과 같을 때, 캐시 메모리의 집합(set) 수는?
  • 캐시 메모리 크기: 64 Kbytes
  • 캐시 블록의 크기: 32 bytes
  • 캐시의 연관정도(associativity) : 4-way 집합 연관 사상
1256
2512
31024
42048
정답 및 해설

캐시의 집합 수는 512이다.

블록 수 = 캐시 크기 ÷ 블록 크기 = 64 × 1024 ÷ 32 = 2048개

4-way 집합 연관 사상은 한 집합에 블록 4개가 들어가므로
집합 수 = 2048 ÷ 4 = 512

  • 2048 — 블록 수를 집합 수로 착각한 값이다(직접 사상일 때의 집합 수).
  • 1024 — 2-way 집합 연관일 때의 집합 수이다.
  • 256 — 8-way 집합 연관일 때의 집합 수이다.
문제 10
다음 자료를 버블 정렬(bubble sort) 알고리즘을 적용하여 오름차순으로 정렬할 때, 세 번째 패스(pass)까지 실행한 정렬 결과로 옳은 것은?

5, 2, 3, 8, 1

12, 1, 3, 5, 8
21, 2, 3, 5, 8
32, 3, 1, 5, 8
42, 3, 5, 1, 8
정답 및 해설

세 번째 패스까지의 결과는 2, 1, 3, 5, 8이다.

버블 정렬은 인접한 두 원소를 비교해 큰 값을 뒤로 보내며, 한 패스마다 가장 큰 값이 맨 뒤에 확정된다.

  • 1패스: 5, 2, 3, 8, 1 → 2, 3, 5, 1, 8
  • 2패스: 2, 3, 5, 1, 8 → 2, 3, 1, 5, 8
  • 3패스: 2, 3, 1, 5, 8 → 2, 1, 3, 5, 8
  • 1, 2, 3, 5, 8 — 4패스 후의 결과이다.
  • 2, 3, 1, 5, 8 — 2패스 후의 결과이다.
  • 2, 3, 5, 1, 8 — 1패스 후의 결과이다.
문제 11
전통적인 폰 노이만(Von Neumann) 구조에 대한 설명으로 옳지 않은 것은?
1폰 노이만 구조의 최초 컴퓨터는 에니악(ENIAC)이다.
2내장 프로그램 개념(stored program concept)을 기반으로 한다.
3산술논리연산장치는 명령어가 지시하는 연산을 실행한다.
4숫자의 형태로 컴퓨터 명령어를 주기억장치에 저장한다.
정답 및 해설

옳지 않은 것은 폰 노이만 구조의 최초 컴퓨터가 에니악(ENIAC)이라는 설명이다.

ENIAC은 배선을 바꿔 프로그램하는 방식이어서 내장 프로그램 방식이 아니다. 내장 프로그램 방식을 처음 구현한 컴퓨터로는 EDSAC이 꼽힌다.

  • 내장 프로그램 개념을 기반으로 한다 — 옳다.
  • 산술논리연산장치가 명령어가 지시하는 연산을 실행한다 — 옳다.
  • 명령어를 숫자 형태로 주기억장치에 저장한다 — 옳다.
문제 12
소프트웨어 개발 프로세스 모형에 대한 설명으로 옳은 것은?
1폭포수(waterfall) 모델은 개발 초기단계에 시범 소프트웨어를 만들어 사용자에게 경험하게 함으로써 사용자 피드백을 신속하게 제공할 수 있다.
2프로토타입(prototyping) 모델은 개발이 완료되고 사용단계에 들어서야 사용자 의견을 반영할 수 있다.
3익스트림 프로그래밍(extreme programming)은 1950년대 항공방위 소프트웨어 시스템 개발경험을 토대로 처음 개발되어 1970년대부터 널리 알려졌다.
4나선형(spiral) 모델은 위험 분석을 해나가면서 시스템을 개발한다.
정답 및 해설

옳은 것은 나선형 모델은 위험 분석을 해나가면서 시스템을 개발한다는 설명이다.

나선형 모델은 계획 → 위험 분석 → 개발 → 평가를 반복하며 점진적으로 완성도를 높인다.

  • 초기 시범 소프트웨어로 빠른 피드백을 받는 것은 폭포수가 아니라 프로토타입 모델이다.
  • 사용 단계에서야 의견을 반영하는 것은 프로토타입이 아니라 폭포수 모델의 한계이다.
  • 익스트림 프로그래밍은 1990년대 후반에 등장한 애자일 방법론이다.
문제 13
범기관적 입장에서 데이터베이스를 정의한 것으로서 데이터베이스에 저장될 데이터의 종류와 데이터 간의 관계를 기술하며 데이터 보안 및 무결성 규칙에 대한 명세를 포함하는 것은?
1외부스키마
2내부스키마
3개념스키마
4물리스키마
정답 및 해설

설명하는 것은 개념스키마이다.

개념스키마는 조직 전체(범기관적) 관점에서 데이터베이스를 정의한 것으로, 데이터의 종류와 관계, 보안·무결성 규칙을 기술한다.

  • 외부스키마 — 개별 사용자·응용 프로그램 관점의 부분 정의이다.
  • 내부스키마 — 레코드 형식·인덱스 등 물리적 저장 구조를 정의한다.
  • 물리스키마 — 내부스키마와 같은 물리 수준의 정의이다.
문제 14
다음 부울 함수식 F를 간략화한 결과로 옳은 것은?

F = ABC + AB'C + A'B'C

1F=AC+B'C
2F=AC+BC'
3F=A'B+B'C
4F=A'C+BC
정답 및 해설

간략화 결과는 F=AC+B'C이다.

AB'C 항을 두 번 사용(X+X = X)해 묶는다.

  • ABC + AB'C = AC(B+B') = AC
  • AB'C + A'B'C = B'C(A+A') = B'C
  • F=AC+BC' — 세 항 모두 C를 포함하는데 C'이 들어가 있어 틀렸다.
  • F=A'B+B'C — 원식에 없는 A'BC'(A'B 항)를 포함한다.
  • F=A'C+BC — 원식에 없는 A'BC를 포함한다.
문제 15
TCP/IP 프로토콜의 계층과 그 관련 요소의 연결이 옳지 않은 것은?
1데이터 링크 계층(data link layer) : IEEE 802, Ethernet, HDLC
2네트워크 계층(network layer) : IP, ICMP, IGMP, ARP
3전송 계층(transport layer) : TCP, UDP, FTP, SMTP
4응용 계층(application layer) : POP3, DNS, HTTP, TELNET
정답 및 해설

옳지 않은 연결은 전송 계층 : TCP, UDP, FTP, SMTP이다.

TCP와 UDP는 전송 계층이지만 FTP와 SMTP는 응용 계층 프로토콜이다.

  • 데이터 링크 계층 : IEEE 802, Ethernet, HDLC — 옳다.
  • 네트워크 계층 : IP, ICMP, IGMP, ARP — 옳다.
  • 응용 계층 : POP3, DNS, HTTP, TELNET — 옳다.
문제 16
DHCP(Dynamic Host Configuration Protocol)에 대한 설명으로 옳은 것은?
1자동이나 수동으로 가용한 IP 주소를 호스트(host)에 할당한다.
2서로 다른 통신규약을 사용하는 네트워크들을 상호 연결하기 위해 통신규약을 전환한다.
3데이터 전송 시 케이블에서의 신호 감쇠를 보상하기 위해 신호를 증폭하고 재생하여 전송한다.
4IP 주소를 기준으로 네트워크 패킷의 경로를 설정하며 다중 경로일 경우에는 최적의 경로를 설정한다.
정답 및 해설

옳은 것은 자동이나 수동으로 가용한 IP 주소를 호스트에 할당한다는 설명이다.

DHCP는 호스트에 IP 주소·서브넷 마스크·게이트웨이·DNS 등 네트워크 설정을 자동으로 할당하는 프로토콜이며, 관리자가 특정 주소를 수동으로 지정해 줄 수도 있다.

  • 서로 다른 통신규약 간 전환 — 게이트웨이의 기능이다.
  • 신호 감쇠 보상을 위한 증폭·재생 — 리피터의 기능이다.
  • IP 주소 기준 경로 설정 — 라우터의 기능이다.
문제 17
다중접속(multiple access) 방식에 대한 설명으로 옳지 않은 것은?
1코드분할 다중접속(CDMA)은 디지털 방식의 데이터 송수신 기술이다.
2시분할 다중접속(TDMA)은 대역확산 기법을 사용한다.
3주파수분할 다중접속(FDMA)은 할당된 유효 주파수 대역폭을 작은 주파수 영역인 채널로 분할한다.
4시분할 다중접속(TDMA)은 할당된 주파수를 시간상에서 여러 개의 조각인 슬롯으로 나누어 하나의 조각을 한 명의 사용자가 사용하는 방식이다.
정답 및 해설

옳지 않은 것은 TDMA가 대역확산 기법을 사용한다는 설명이다.

대역확산(spread spectrum)을 사용하는 것은 CDMA이다. TDMA는 같은 주파수를 시간 슬롯으로 나누어 사용자에게 할당한다.

  • CDMA는 디지털 방식의 송수신 기술이다 — 옳다.
  • FDMA는 대역폭을 작은 주파수 채널로 분할한다 — 옳다.
  • TDMA는 주파수를 시간 슬롯으로 나눠 한 슬롯을 한 사용자가 쓴다 — 옳다.
문제 18
시스템의 신뢰성 평가를 위해 사용되는 지표로 평균 무장애시간(mean time to failure, MTTF)과 평균 복구시간(mean time to repair, MTTR)이 있다. 이 두 지표를 이용하여 시스템의 가용성(availability)을 나타낸 것은?
1
2
3
4
정답 및 해설

가용성은 MTTF ÷ (MTTF + MTTR)이다.

가용성은 전체 시간 중 시스템이 정상 가동하는 시간의 비율이다. 한 주기는 고장 없이 동작하는 시간(MTTF)과 고장 후 복구하는 시간(MTTR)으로 이루어지므로 가동 시간 ÷ 전체 시간으로 나타낸다.

  • MTTR ÷ (MTTF + MTTR) — 사용할 수 없는 시간의 비율(비가용도)이다.
  • MTTF ÷ MTTR — 두 시간의 단순 비로, 전체 시간 대비 비율이 아니다.
  • MTTR ÷ MTTF — 역시 단순 비이며 가동 시간이 분자에 있지 않다.
문제 19
다음 조건에서 메인 메모리와 캐시 메모리로 구성된 메모리 계층의 평균 메모리 접근 시간은? (단, 캐시 실패 손실은 캐시 실패 시 소요되는 총 메모리 접근 시간에서 캐시 적중 시간을 뺀 시간이다)
  • 캐시 적중 시간(cache hit time) : 10㎱
  • 캐시 실패 손실(cache miss penalty) : 100㎱
  • 캐시 적중률: 90%
110㎱
215㎱
320㎱
425㎱
정답 및 해설

평균 메모리 접근 시간은 20㎱이다.

평균 접근 시간 = 적중 시간 + 실패율 × 실패 손실

= 10 + (1 − 0.9) × 100 = 10 + 10 = 20㎱

적중 시간 10㎱에 실패로 인한 평균 추가 시간 0.1 × 100 = 10㎱가 더해지므로, 적중 시간만 본 10㎱나 다른 값은 성립하지 않는다.

문제 20
다음 조건에서 A 프로그램을 실행하는데 소요되는 CPU 시간은?
  • 컴퓨터 CPU 클록(clock) 주파수: 1㎓
  • A 프로그램의 실행 명령어 수: 15만개
  • A 프로그램의 실행 명령어 당 소요되는 평균 PU 클록 사이클 수: 5
10.75㎳
275㎳
33㎲
40.3㎲
정답 및 해설

CPU 시간은 0.75㎳이다.

CPU 시간 = 명령어 수 × CPI ÷ 클록 주파수

= 150,000 × 5 ÷ (1 × 10910^{9}) = 750,000 × 10−910^{-9}초 = 7.5 × 10−410^{-4}초 = 0.75㎳

  • 75㎳ — 자릿수를 100배 잘못 계산한 값이다.
  • 3㎲ — 750,000㎱ = 750㎲이므로 맞지 않는다.
  • 0.3㎲ — 역시 750㎲와 다르다.
9급 국가직 컴퓨터일반 기출문제모두CBT · moducbt.com
13년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
객체 지향 프로그래밍에 대한 설명으로 옳지 않은 것은?
1하나의 클래스를 사용하여 여러 객체를 생성하는데, 각각의 객체를 클래스의 인스턴스(instance)라고 한다.
2객체는 속성(attributes)과 행동(behaviors)으로 구성된다.
3한 클래스가 다른 클래스의 속성과 행동을 상속(inheritance) 받을 수 있다.
4다형성(polymorphism)은 몇 개의 클래스 객체들을 묶어서 하나의 객체처럼 다루는 프로그래밍 기법이다.
정답 및 해설

옳지 않은 것은 다형성이 여러 클래스 객체를 묶어 하나의 객체처럼 다루는 기법이라는 설명이다.

다형성은 같은 이름의 메시지(메소드)에 대해 객체마다 다르게 동작하는 성질로, 오버로딩·오버라이딩으로 구현된다. 여러 객체를 묶어 하나처럼 다루는 것은 집단화(aggregation)에 가깝다.

  • 한 클래스로 만든 각 객체를 인스턴스라 한다 — 옳다.
  • 객체는 속성과 행동으로 구성된다 — 옳다.
  • 한 클래스가 다른 클래스의 속성과 행동을 상속받을 수 있다 — 옳다.
문제 2
다음 두 이진수에 대한 NAND 비트(bitwise) 연산 결과는?

101110002 NAND 001100112

1001100002
2101110112
3110011112
4010001002
정답 및 해설

NAND 연산 결과는 11001111211001111_{2}이다.

NAND는 AND 결과를 반전한 것이다.

  • AND: 10111000 AND 00110011 = 00110000
  • NAND: 00110000을 반전 → 11001111
  • 00110000 — 반전 전의 AND 결과이다.
  • 10111011 — OR 결과이다.
  • 01000100 — NOR 결과이다.
문제 3
컴퓨터의 입출력과 관련이 없는 것은?
1폴링(polling)
2인터럽트(interrupt)
3DMA(Direct Memory Access)
4세마포어(semaphore)
정답 및 해설

입출력과 관련이 없는 것은 세마포어(semaphore)이다.

세마포어는 여러 프로세스가 공유 자원에 접근할 때 상호 배제와 동기화를 위해 쓰는 운영체제의 도구이다.

  • 폴링 — CPU가 장치 상태를 주기적으로 검사하는 입출력 방식이다.
  • 인터럽트 — 입출력 완료 등을 장치가 CPU에 알리는 방식이다.
  • DMA — CPU를 거치지 않고 장치와 메모리가 직접 데이터를 전송하는 방식이다.
문제 4
RAID 레벨 0에서 성능 향상을 위해 채택한 기법은?
1미러링(mirroring) 기법
2패리티(parity) 정보저장 기법
3스트라이핑(striping) 기법
4쉐도잉(shadowing) 기법
정답 및 해설

RAID 0이 성능 향상을 위해 쓰는 기법은 스트라이핑(striping)이다.

RAID 0은 데이터를 블록 단위로 나누어 여러 디스크에 분산 저장해 병렬로 읽고 쓰므로 속도가 빠르지만, 중복 정보가 없어 디스크 하나만 고장 나도 데이터를 잃는다.

  • 미러링 — 같은 데이터를 두 디스크에 복제하는 RAID 1의 기법이다.
  • 패리티 정보 저장 — RAID 3·4·5 등에서 오류 복구를 위해 쓴다.
  • 쉐도잉 — 미러링과 같은 의미의 복제 기법이다.
문제 5
악성코드에 대한 설명으로 옳지 않은 것은?
1파일 감염 바이러스는 대부분 메모리에 상주하며 프로그램 파일을 감염시킨다.
2웜(worm)은 자신의 명령어를 다른 프로그램 파일의 일부분에 복사하여 컴퓨터를 오동작하게 하는 종속형 컴퓨터 악성코드이다.
3트로이 목마는 겉으로 보기에 정상적인 프로그램인 것 같으나 악성코드를 숨겨두어 시스템을 공격한다.
4매크로 바이러스는 프로그램에서 어떤 작업을 자동화하기 위해 정의한 내부 프로그래밍 언어를 사용하여 데이터 파일을 감염시킨다.
정답 및 해설

옳지 않은 것은 웜이 다른 프로그램 파일에 자신을 복사하는 종속형 악성코드라는 설명이다.

웜은 숙주 파일 없이 스스로 복제해 네트워크로 전파되는 독립형 악성코드이다. 다른 프로그램에 기생해 감염시키는 것은 바이러스의 특징이다.

  • 파일 감염 바이러스는 메모리에 상주하며 프로그램 파일을 감염시킨다 — 옳다.
  • 트로이 목마는 정상 프로그램으로 위장해 악성코드를 숨긴다 — 옳다.
  • 매크로 바이러스는 응용 프로그램의 매크로 언어로 데이터 파일을 감염시킨다 — 옳다.
문제 6
가상 메모리(virtual memory)에 대한 설명으로 옳지 않은 것은?
1가상 메모리는 프로그래머가 물리 메모리(physical memory)크기 문제를 염려할 필요 없이 프로그램을 작성할 수 있게 한다.
2가상 주소(virtual address)의 비트 수는 물리 주소(physical address)의 비트 수에 비해 같거나 커야 한다.
3메모리 관리 장치(memory management unit)는 가상 주소를 물리 주소로 변환하는 역할을 한다.
4가상 메모리는 페이지 공유를 통해 두 개 이상의 프로세스들이 메모리를 공유하는 것을 가능하게 한다.
정답 및 해설

옳지 않은 것은 가상 주소의 비트 수가 물리 주소의 비트 수와 같거나 커야 한다는 설명이다.

가상 주소와 물리 주소의 길이는 서로 독립적으로 정해지며, 가상 주소가 물리 주소보다 짧은 시스템도 존재한다. 반드시 같거나 커야 한다는 제약은 없다.

  • 물리 메모리 크기를 염려하지 않고 프로그램을 작성할 수 있다 — 옳다.
  • MMU가 가상 주소를 물리 주소로 변환한다 — 옳다.
  • 페이지 공유로 여러 프로세스가 메모리를 공유할 수 있다 — 옳다.
문제 7
BNF(Backus-Naur Form)로 표현된 다음 문법에 의해 생성될 수 없는 id는?

<id> ::= <letter> | <id><letter> | <id><digit>
<letter> ::= 'a' | 'b' | 'c'
<digit> ::= '1' | '2' | '3'

1a
2a1b
3abc321
43a2b1c
정답 및 해설

생성될 수 없는 id는 3a2b1c이다.

<id>는 <letter> 하나에서 시작해 오른쪽으로 letter나 digit를 덧붙이는 규칙이므로, 첫 글자는 반드시 문자(a, b, c)여야 한다.

  • a — <letter> 하나로 생성된다.
  • a1b — a에 1, b를 차례로 덧붙여 생성된다.
  • abc321 — abc에 3, 2, 1을 차례로 덧붙여 생성된다.
  • 3a2b1c — 숫자로 시작하므로 생성될 수 없다.
문제 8
다음 C 프로그램 실행 결과로 출력되는 sum 값으로 옳은 것은?
#include <stdio.h>
int foo(void)  {
  int var1 = 1;
  static int var2 = 1;
  return (var1++) + (var2++);
}
void main()  {
  int i=0, sum=0;
  while(i < 3)  {
    sum = sum + foo();
    i++;
  }
  printf("sum=%d\5Cn", sum);
}
18
29
310
411
정답 및 해설

출력되는 sum 값은 9이다.

var1은 일반 지역 변수라 호출마다 1로 초기화되지만, var2는 static 변수라 처음 한 번만 초기화되고 값이 호출 사이에 유지된다. 후위 증가이므로 증가 전 값이 더해진다.

  • 1회 호출: 1 + 1 = 2 (var2 → 2)
  • 2회 호출: 1 + 2 = 3 (var2 → 3)
  • 3회 호출: 1 + 3 = 4 (var2 → 4)

sum = 2 + 3 + 4 = 9이다. var2도 매번 1로 초기화된다고 보면 6이, 전위 증가로 보면 더 큰 값이 나온다.

문제 9
캐시 메모리가 다음과 같을 때, 캐시 메모리의 집합(set) 수는?
  • 캐시 메모리 크기: 64 Kbytes
  • 캐시 블록의 크기: 32 bytes
  • 캐시의 연관정도(associativity) : 4-way 집합 연관 사상
1256
2512
31024
42048
정답 및 해설

캐시의 집합 수는 512이다.

블록 수 = 캐시 크기 ÷ 블록 크기 = 64 × 1024 ÷ 32 = 2048개

4-way 집합 연관 사상은 한 집합에 블록 4개가 들어가므로
집합 수 = 2048 ÷ 4 = 512

  • 2048 — 블록 수를 집합 수로 착각한 값이다(직접 사상일 때의 집합 수).
  • 1024 — 2-way 집합 연관일 때의 집합 수이다.
  • 256 — 8-way 집합 연관일 때의 집합 수이다.
문제 10
다음 자료를 버블 정렬(bubble sort) 알고리즘을 적용하여 오름차순으로 정렬할 때, 세 번째 패스(pass)까지 실행한 정렬 결과로 옳은 것은?

5, 2, 3, 8, 1

12, 1, 3, 5, 8
21, 2, 3, 5, 8
32, 3, 1, 5, 8
42, 3, 5, 1, 8
정답 및 해설

세 번째 패스까지의 결과는 2, 1, 3, 5, 8이다.

버블 정렬은 인접한 두 원소를 비교해 큰 값을 뒤로 보내며, 한 패스마다 가장 큰 값이 맨 뒤에 확정된다.

  • 1패스: 5, 2, 3, 8, 1 → 2, 3, 5, 1, 8
  • 2패스: 2, 3, 5, 1, 8 → 2, 3, 1, 5, 8
  • 3패스: 2, 3, 1, 5, 8 → 2, 1, 3, 5, 8
  • 1, 2, 3, 5, 8 — 4패스 후의 결과이다.
  • 2, 3, 1, 5, 8 — 2패스 후의 결과이다.
  • 2, 3, 5, 1, 8 — 1패스 후의 결과이다.
문제 11
전통적인 폰 노이만(Von Neumann) 구조에 대한 설명으로 옳지 않은 것은?
1폰 노이만 구조의 최초 컴퓨터는 에니악(ENIAC)이다.
2내장 프로그램 개념(stored program concept)을 기반으로 한다.
3산술논리연산장치는 명령어가 지시하는 연산을 실행한다.
4숫자의 형태로 컴퓨터 명령어를 주기억장치에 저장한다.
정답 및 해설

옳지 않은 것은 폰 노이만 구조의 최초 컴퓨터가 에니악(ENIAC)이라는 설명이다.

ENIAC은 배선을 바꿔 프로그램하는 방식이어서 내장 프로그램 방식이 아니다. 내장 프로그램 방식을 처음 구현한 컴퓨터로는 EDSAC이 꼽힌다.

  • 내장 프로그램 개념을 기반으로 한다 — 옳다.
  • 산술논리연산장치가 명령어가 지시하는 연산을 실행한다 — 옳다.
  • 명령어를 숫자 형태로 주기억장치에 저장한다 — 옳다.
문제 12
소프트웨어 개발 프로세스 모형에 대한 설명으로 옳은 것은?
1폭포수(waterfall) 모델은 개발 초기단계에 시범 소프트웨어를 만들어 사용자에게 경험하게 함으로써 사용자 피드백을 신속하게 제공할 수 있다.
2프로토타입(prototyping) 모델은 개발이 완료되고 사용단계에 들어서야 사용자 의견을 반영할 수 있다.
3익스트림 프로그래밍(extreme programming)은 1950년대 항공방위 소프트웨어 시스템 개발경험을 토대로 처음 개발되어 1970년대부터 널리 알려졌다.
4나선형(spiral) 모델은 위험 분석을 해나가면서 시스템을 개발한다.
정답 및 해설

옳은 것은 나선형 모델은 위험 분석을 해나가면서 시스템을 개발한다는 설명이다.

나선형 모델은 계획 → 위험 분석 → 개발 → 평가를 반복하며 점진적으로 완성도를 높인다.

  • 초기 시범 소프트웨어로 빠른 피드백을 받는 것은 폭포수가 아니라 프로토타입 모델이다.
  • 사용 단계에서야 의견을 반영하는 것은 프로토타입이 아니라 폭포수 모델의 한계이다.
  • 익스트림 프로그래밍은 1990년대 후반에 등장한 애자일 방법론이다.
문제 13
범기관적 입장에서 데이터베이스를 정의한 것으로서 데이터베이스에 저장될 데이터의 종류와 데이터 간의 관계를 기술하며 데이터 보안 및 무결성 규칙에 대한 명세를 포함하는 것은?
1외부스키마
2내부스키마
3개념스키마
4물리스키마
정답 및 해설

설명하는 것은 개념스키마이다.

개념스키마는 조직 전체(범기관적) 관점에서 데이터베이스를 정의한 것으로, 데이터의 종류와 관계, 보안·무결성 규칙을 기술한다.

  • 외부스키마 — 개별 사용자·응용 프로그램 관점의 부분 정의이다.
  • 내부스키마 — 레코드 형식·인덱스 등 물리적 저장 구조를 정의한다.
  • 물리스키마 — 내부스키마와 같은 물리 수준의 정의이다.
문제 14
다음 부울 함수식 F를 간략화한 결과로 옳은 것은?

F = ABC + AB'C + A'B'C

1F=AC+B'C
2F=AC+BC'
3F=A'B+B'C
4F=A'C+BC
정답 및 해설

간략화 결과는 F=AC+B'C이다.

AB'C 항을 두 번 사용(X+X = X)해 묶는다.

  • ABC + AB'C = AC(B+B') = AC
  • AB'C + A'B'C = B'C(A+A') = B'C
  • F=AC+BC' — 세 항 모두 C를 포함하는데 C'이 들어가 있어 틀렸다.
  • F=A'B+B'C — 원식에 없는 A'BC'(A'B 항)를 포함한다.
  • F=A'C+BC — 원식에 없는 A'BC를 포함한다.
문제 15
TCP/IP 프로토콜의 계층과 그 관련 요소의 연결이 옳지 않은 것은?
1데이터 링크 계층(data link layer) : IEEE 802, Ethernet, HDLC
2네트워크 계층(network layer) : IP, ICMP, IGMP, ARP
3전송 계층(transport layer) : TCP, UDP, FTP, SMTP
4응용 계층(application layer) : POP3, DNS, HTTP, TELNET
정답 및 해설

옳지 않은 연결은 전송 계층 : TCP, UDP, FTP, SMTP이다.

TCP와 UDP는 전송 계층이지만 FTP와 SMTP는 응용 계층 프로토콜이다.

  • 데이터 링크 계층 : IEEE 802, Ethernet, HDLC — 옳다.
  • 네트워크 계층 : IP, ICMP, IGMP, ARP — 옳다.
  • 응용 계층 : POP3, DNS, HTTP, TELNET — 옳다.
문제 16
DHCP(Dynamic Host Configuration Protocol)에 대한 설명으로 옳은 것은?
1자동이나 수동으로 가용한 IP 주소를 호스트(host)에 할당한다.
2서로 다른 통신규약을 사용하는 네트워크들을 상호 연결하기 위해 통신규약을 전환한다.
3데이터 전송 시 케이블에서의 신호 감쇠를 보상하기 위해 신호를 증폭하고 재생하여 전송한다.
4IP 주소를 기준으로 네트워크 패킷의 경로를 설정하며 다중 경로일 경우에는 최적의 경로를 설정한다.
정답 및 해설

옳은 것은 자동이나 수동으로 가용한 IP 주소를 호스트에 할당한다는 설명이다.

DHCP는 호스트에 IP 주소·서브넷 마스크·게이트웨이·DNS 등 네트워크 설정을 자동으로 할당하는 프로토콜이며, 관리자가 특정 주소를 수동으로 지정해 줄 수도 있다.

  • 서로 다른 통신규약 간 전환 — 게이트웨이의 기능이다.
  • 신호 감쇠 보상을 위한 증폭·재생 — 리피터의 기능이다.
  • IP 주소 기준 경로 설정 — 라우터의 기능이다.
문제 17
다중접속(multiple access) 방식에 대한 설명으로 옳지 않은 것은?
1코드분할 다중접속(CDMA)은 디지털 방식의 데이터 송수신 기술이다.
2시분할 다중접속(TDMA)은 대역확산 기법을 사용한다.
3주파수분할 다중접속(FDMA)은 할당된 유효 주파수 대역폭을 작은 주파수 영역인 채널로 분할한다.
4시분할 다중접속(TDMA)은 할당된 주파수를 시간상에서 여러 개의 조각인 슬롯으로 나누어 하나의 조각을 한 명의 사용자가 사용하는 방식이다.
정답 및 해설

옳지 않은 것은 TDMA가 대역확산 기법을 사용한다는 설명이다.

대역확산(spread spectrum)을 사용하는 것은 CDMA이다. TDMA는 같은 주파수를 시간 슬롯으로 나누어 사용자에게 할당한다.

  • CDMA는 디지털 방식의 송수신 기술이다 — 옳다.
  • FDMA는 대역폭을 작은 주파수 채널로 분할한다 — 옳다.
  • TDMA는 주파수를 시간 슬롯으로 나눠 한 슬롯을 한 사용자가 쓴다 — 옳다.
문제 18
시스템의 신뢰성 평가를 위해 사용되는 지표로 평균 무장애시간(mean time to failure, MTTF)과 평균 복구시간(mean time to repair, MTTR)이 있다. 이 두 지표를 이용하여 시스템의 가용성(availability)을 나타낸 것은?
1
2
3
4
정답 및 해설

가용성은 MTTF ÷ (MTTF + MTTR)이다.

가용성은 전체 시간 중 시스템이 정상 가동하는 시간의 비율이다. 한 주기는 고장 없이 동작하는 시간(MTTF)과 고장 후 복구하는 시간(MTTR)으로 이루어지므로 가동 시간 ÷ 전체 시간으로 나타낸다.

  • MTTR ÷ (MTTF + MTTR) — 사용할 수 없는 시간의 비율(비가용도)이다.
  • MTTF ÷ MTTR — 두 시간의 단순 비로, 전체 시간 대비 비율이 아니다.
  • MTTR ÷ MTTF — 역시 단순 비이며 가동 시간이 분자에 있지 않다.
문제 19
다음 조건에서 메인 메모리와 캐시 메모리로 구성된 메모리 계층의 평균 메모리 접근 시간은? (단, 캐시 실패 손실은 캐시 실패 시 소요되는 총 메모리 접근 시간에서 캐시 적중 시간을 뺀 시간이다)
  • 캐시 적중 시간(cache hit time) : 10㎱
  • 캐시 실패 손실(cache miss penalty) : 100㎱
  • 캐시 적중률: 90%
110㎱
215㎱
320㎱
425㎱
정답 및 해설

평균 메모리 접근 시간은 20㎱이다.

평균 접근 시간 = 적중 시간 + 실패율 × 실패 손실

= 10 + (1 − 0.9) × 100 = 10 + 10 = 20㎱

적중 시간 10㎱에 실패로 인한 평균 추가 시간 0.1 × 100 = 10㎱가 더해지므로, 적중 시간만 본 10㎱나 다른 값은 성립하지 않는다.

문제 20
다음 조건에서 A 프로그램을 실행하는데 소요되는 CPU 시간은?
  • 컴퓨터 CPU 클록(clock) 주파수: 1㎓
  • A 프로그램의 실행 명령어 수: 15만개
  • A 프로그램의 실행 명령어 당 소요되는 평균 PU 클록 사이클 수: 5
10.75㎳
275㎳
33㎲
40.3㎲
정답 및 해설

CPU 시간은 0.75㎳이다.

CPU 시간 = 명령어 수 × CPI ÷ 클록 주파수

= 150,000 × 5 ÷ (1 × 10910^{9}) = 750,000 × 10−910^{-9}초 = 7.5 × 10−410^{-4}초 = 0.75㎳

  • 75㎳ — 자릿수를 100배 잘못 계산한 값이다.
  • 3㎲ — 750,000㎱ = 750㎲이므로 맞지 않는다.
  • 0.3㎲ — 역시 750㎲와 다르다.