[계리직 컴퓨터일반] 10년 1회차
계리직 컴퓨터일반 기출문제

10년 1회차

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

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

10년 1회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
마이크로 연산(operation)에 대한 설명으로 옳지 않은 것은?
1한 개의 클럭 펄스 동안 실행되는 기본 동작이다.
2한 개의 마이크로 연산 수행시간을 마이크로 사이클 타임이라 부르며 CPU 속도를 나타내는 척도로 사용된다.
3하나의 명령어는 항상 하나의 마이크로 연산이 동작되어 실행된다.
4시프트(shift), 로드(load) 등이 있다.
정답 및 해설

옳지 않은 것은 하나의 명령어는 항상 하나의 마이크로 연산으로 실행된다는 설명이다.

하나의 명령어는 인출·간접·실행 사이클 등을 거치며 여러 개의 마이크로 연산이 순서대로 수행되어 완료된다.

  • 마이크로 연산은 한 개의 클럭 펄스 동안 레지스터 간에 실행되는 기본 동작이다.
  • 마이크로 연산 하나의 수행 시간을 마이크로 사이클 타임이라 하며 CPU 속도의 척도로 쓰인다.
  • 시프트, 로드, 클리어, 증가 등이 대표적인 마이크로 연산이다.
문제 2
주기억장치에서 사용가능한 부분은 다음과 같다. M1은 16KB (kilobyte), M2는 14KB, M3는 5KB, M4는 30KB이며 주기억장치의 시작 부분부터 M1, M2, M3, M4 순서가 유지되고 있다. 이때 13KB를 요구하는 작업이 최초적합(First Fit) 방법, 최적적합(Best Fit) 방법, 최악적합(Worst Fit) 방법으로 주기억장치에 각각 배치될 때 결과로 옳은 것은? 단, 배열순서는 왼쪽에서 첫 번째가 최초적합 결과이며 두 번째가 최적적합 결과 그리고 세 번째가 최악적합 결과를 의미한다.
1M1, M2, M3
2M1, M2, M4
3M2, M1, M4
4M4, M2, M3
정답 및 해설

배치 결과는 순서대로 M1, M2, M4이다.

13KB를 담을 수 있는 공간은 M1(16KB), M2(14KB), M4(30KB)이고 M3(5KB)는 너무 작아 제외된다.

  • 최초적합: 앞에서부터 처음 들어가는 공간인 M1에 배치한다.
  • 최적적합: 남는 공간(단편화)이 가장 작은 M2에 배치한다(1KB 남음).
  • 최악적합: 남는 공간이 가장 큰 M4에 배치한다(17KB 남음).
문제 3
웹 애플리케이션을 개발하기 위한 스크립트 언어 중 성격이 다른 것은?
1Javascript
2JSP
3ASP
4PHP
정답 및 해설

성격이 다른 것은 Javascript로, 웹 브라우저에서 실행되는 클라이언트 측 스크립트 언어이다.

나머지는 모두 웹 서버에서 실행되어 결과 HTML을 만들어 보내는 서버 측 스크립트 기술이다.

  • JSP: 자바 기반의 서버 측 스크립트 기술이다.
  • ASP: 마이크로소프트 IIS에서 동작하는 서버 측 스크립트 기술이다.
  • PHP: 웹 서버에서 해석·실행되는 서버 측 스크립트 언어이다.
문제 4
해시(hash) 탐색에서 제산법(division)은 키(key) 값을 배열(array)의 크기로 나누어 그 나머지 값을 해시 값으로 사용하는 방법이다. 다음 데이터의 해시 값을 제산법으로 구하여 11개의 원소를 갖는 배열에 저장하려고 한다. 해시 값의 충돌(collision)이 발생하는 데이터를 열거해 놓은 것은?

111, 112, 113, 220, 221, 222

1111, 112
2112, 222
3113, 221
4220, 222
정답 및 해설

11로 나눈 나머지가 같아 충돌하는 데이터는 112와 222이다.

각 키를 11로 나눈 나머지는 111→1, 112→2, 113→3, 220→0, 221→1, 222→2 이다. 나머지 2가 겹치는 112와 222가 같은 주소로 들어가 충돌하며, 나머지 1이 겹치는 111과 221도 충돌 쌍이다.

  • 111, 112: 해시 값이 1과 2로 서로 다르다.
  • 113, 221: 해시 값이 3과 1로 서로 다르다.
  • 220, 222: 해시 값이 0과 2로 서로 다르다.
문제 5
회사에서 211.168.83.0(클래스 C)의 네트워크를 사용하고 있다. 내부적으로 5개의 서브넷을 사용하기 위해 서브넷 마스크를 255.255.255.224로 설정하였다. 이때 211.168.83.34가 속한 서브넷의 브로드캐스트 주소는 어느 것인가?
1211.168.83.15
2211.168.83.47
3211.168.83.63
4211.168.83.255
정답 및 해설

211.168.83.34가 속한 서브넷의 브로드캐스트 주소는 211.168.83.63이다.

서브넷 마스크 255.255.255.224에서 서브넷 하나의 크기는 256−224=32256 - 224 = 32이다.
따라서 마지막 옥텟이 0~31, 32~63, 64~95 … 단위로 나뉜다.

34는 32~63 구간에 속하므로 네트워크 주소는 211.168.83.32, 브로드캐스트 주소는 구간의 마지막 주소인 211.168.83.63이 된다.

  • 211.168.83.15는 0~31 구간 안의 주소로, 해당 구간의 브로드캐스트 주소도 아니다.
  • 211.168.83.47은 32~63 구간의 중간 주소일 뿐이다.
  • 211.168.83.255는 서브넷을 나누지 않은 전체 C클래스 네트워크의 브로드캐스트 주소이다.
문제 6
데이터베이스 설계 시에 양질의 데이터베이스를 구축하기 위하여 데이터베이스 릴레이션을 정규화한다. 이때 고려해야 할 사항과 가장 관련이 없는 것은?
1원하지 않는 데이터의 중복을 제거한다.
2원하지 않는 데이터의 종속을 제거한다.
3한 릴레이션 내의 속성들 간의 관계를 고려한다.
4한 릴레이션 내의 투플들 간의 관계를 고려한다.
정답 및 해설

정규화와 가장 관련이 없는 것은 릴레이션 내 투플들 간의 관계를 고려한다는 내용이다.

정규화는 속성들 사이의 함수적 종속을 분석해 릴레이션을 분해하는 과정이며, 개별 투플(행) 간의 관계를 따지지 않는다.

  • 불필요한 데이터 중복을 제거해 이상(anomaly)을 방지하는 것이 정규화의 목적이다.
  • 부분·이행 종속처럼 원하지 않는 종속을 제거하는 것이 정규화의 핵심 절차이다.
  • 정규화는 한 릴레이션 안 속성들 간의 관계(종속성)를 기준으로 진행된다.
문제 7
Windows XP에서 프린터 설정에 관한 설명으로 옳지 않은 것은?
1기본 프린터는 오직 1대만 설정할 수 있다.
2네트워크 프린터는 기본 프린터로 설정할 수 없다.
3한 대의 프린터를 여러 대의 컴퓨터에서 네트워크로 공유 가능하다.
4[네트워크 설정 마법사]를 통해 파일 및 프린터도 공유할 수 있다.
정답 및 해설

옳지 않은 것은 네트워크 프린터는 기본 프린터로 설정할 수 없다는 설명이다.

Windows XP에서는 로컬 프린터뿐 아니라 네트워크 프린터도 기본 프린터로 지정할 수 있다.

  • 기본 프린터는 한 시점에 한 대만 지정된다.
  • 한 대의 프린터를 공유하면 네트워크상의 여러 컴퓨터에서 사용할 수 있다.
  • 네트워크 설정 마법사로 파일 및 프린터 공유를 설정할 수 있다.
문제 8
운영체제는 일괄처리(batch), 대화식(interactive), 실시간(real-time)시스템 그리고 일괄처리와 대화식이 결합된 혼합(hybrid) 시스템 등으로 분류될 수 있다. 이와 같은 분류 근거로 가장 알맞은 것은?
1고급 프로그래밍 언어의 사용 여부
2응답 시간과 데이터 입력 방식
3버퍼링(buffering) 기능 수행 여부
4데이터 보호의 필요성 여부
정답 및 해설

분류 근거로 가장 알맞은 것은 응답 시간과 데이터 입력 방식이다.

일괄처리는 데이터를 모아 한꺼번에 처리하고, 대화식은 사용자와 즉시 주고받으며, 실시간은 정해진 시간 제약 안에 응답해야 한다는 점에서 구분된다.

  • 고급 프로그래밍 언어의 사용 여부는 운영체제 처리 방식과 무관하다.
  • 버퍼링은 입출력 속도 차이를 줄이는 기법으로 어느 방식에서나 쓰일 수 있다.
  • 데이터 보호의 필요성은 모든 시스템에 공통된 요구로, 분류 기준이 되지 않는다.
문제 9
다음 그래프를 너비 우선 탐색(Breadth First Search BFS), 깊이 우선 탐색(Depth First Search DFS) 방법으로 방문할 때 각 정점을 방문하는 순서로 옳은 것은? 단, 둘 이상의 정점을 선택할 수 있을 때는 알파벳 순서로 방문한다. (순서대로 BFS, DFS)
1A-B-F-C-E-D, A-B-C-D-E-F
2A-B-C-D-E-F, A-B-F-C-E-D
3A-B-F-C-D-E, A-B-C-D-E-F
4A-B-C-D-E-F, A-B-C-D-F-E
정답 및 해설

BFS는 A-B-F-C-D-E, DFS는 A-B-C-D-E-F 순서로 방문한다.

그래프의 간선은 A-B, A-F, B-C, B-F, C-D, C-F, D-E, D-F, E-F 이다. BFS는 A의 이웃 B, F를 먼저 방문하고, 이어서 B의 이웃 C, F의 이웃 D, E를 알파벳 순으로 방문한다.

DFS는 A에서 B, B에서 C, C에서 D, D에서 E로 계속 깊이 들어간 뒤 E의 미방문 이웃 F를 마지막에 방문한다.

  • BFS를 A-B-F-C-E-D로 둔 배열: F의 이웃 중 D가 E보다 알파벳 순으로 앞서므로 D를 먼저 방문한다.
  • BFS를 A-B-C-D-E-F로 둔 배열: 너비 우선이면 A와 인접한 F가 C·D·E보다 먼저 방문된다.
  • DFS를 A-B-C-D-F-E로 둔 배열: D의 미방문 이웃 E, F 중 알파벳 순으로 E를 먼저 방문한다.
문제 10
SQL에서는 데이터베이스 검색의 성능 및 편의 향상을 위하여 내장함수를 제공한다. 다음 중 SQL의 내장 집계함수(aggregate function)가 아닌 것은?
1COUNT
2SUM
3TOTAL
4MAX
정답 및 해설

SQL의 내장 집계함수가 아닌 것은 TOTAL이다.

표준 SQL의 집계함수는 COUNT, SUM, AVG, MAX, MIN 등이며, 합계는 TOTAL이 아니라 SUM으로 구한다.

  • COUNT: 행(값)의 개수를 구한다.
  • SUM: 값의 합계를 구한다.
  • MAX: 값 중 최댓값을 구한다.
문제 11
다음의 Java 프로그램에서 사용되지 않은 기법은?
class Adder {
public int add(int a, int b) { return a+b}
public double add(double a, double b) {
return a+b}
}
class Computer extends Adder {
private int x;
public int calc(int a, int b, int c) { if (a ==
1) return add(b, c)
else return x;}
Computer() { x = 0}
}
public class Adder_Main {
public static void main(String args[]) {
Computer c = new Computer()
System.out.println("100 + 200 = " +
c.calc(1, 100, 200))
System.out.println("5.7 + 9.8 = " +
c.add(5.7, 9.8))
}
}
1캡슐화(Encapsulation)
2상속(Inheritance)
3오버라이딩(Overriding)
4오버로딩(Overloading)
정답 및 해설

이 프로그램에 쓰이지 않은 기법은 오버라이딩(Overriding)이다.

오버라이딩은 하위 클래스가 상위 클래스의 메서드를 같은 시그니처로 재정의하는 것인데, Computer 클래스는 calc라는 새 메서드만 추가하고 Adder의 add를 다시 정의하지 않는다.

  • 캡슐화: Computer의 필드 x를 private으로 숨기고 메서드를 통해서만 값을 쓴다.
  • 상속: Computer가 extends Adder로 Adder의 add 메서드를 물려받아 사용한다.
  • 오버로딩: Adder에 매개변수 자료형이 다른 add(int, int)와 add(double, double)가 함께 정의되어 있다.
문제 12
다음에서 ㉠과 ㉡에 들어갈 내용이 올바르게 짝지어진 것은? (순서대로 ㉠, ㉡)

명령어를 주기억장치에서 중앙처리장치의 명령레지스터로 가져와 해독하는 것을 ( ㉠ )단계라 하고, 이 단계는 마이크로 연산(operation) ( ㉡ )로 시작한다.

1인출, MAR ← PC
2인출, MAR ← MBR(AD)
3실행, MAR ← PC
4실행, MAR ← MBR(AD)
정답 및 해설

명령어를 가져와 해독하는 단계는 인출(fetch)이고, 첫 마이크로 연산은 MAR ← PC이다.

인출 사이클은 다음 명령어의 주소가 든 PC 값을 MAR로 옮기는 것으로 시작하고, 그 주소의 내용을 MBR로 읽어 온 뒤 명령레지스터(IR)로 옮겨 해독한다.

  • 인출과 MAR ← MBR(AD)의 짝: 명령어의 주소부를 MAR로 옮기는 연산은 오퍼랜드를 가져오는 간접·실행 단계의 동작이다.
  • 실행과 MAR ← PC의 짝: 명령어를 가져와 해독하는 과정은 실행 단계가 아니라 인출 단계이다.
  • 실행과 MAR ← MBR(AD)의 짝: 단계 이름과 시작 연산이 모두 인출 사이클과 맞지 않는다.
문제 13
MS Excel의 워크시트에서 사원별 수주량과 판매금액, 그리고 수주량과 판매금액의 합계가 입력되어 있다. 이때 C열에는 전체 수주량 대비 각 사원 수주량의 비율을, E열에는 전체 판매금액 대비 각 사원 판매금액의 비율을 보이고자 한다. 이를 위해 C2셀에 수식을 입력한 다음에 이를 C열과 E열의 나머지 셀에 복사하여 사용하고자 한다. C2셀에 입력할 내용으로 옳은 것은?
ABCDE
1사원수주량비율판매금액비율
2김철수788,000,000
3홍길동567,500,000
4김민호9313,000,000
5나영철3410,000,000
6최건808,000,000
7합계34146,500,000
1=B2/B7*100
2=$B$2/B7*100
3=B2/$B$7*100
4=B2/B$7*100
정답 및 해설

C2셀에 입력할 수식은 =B2/B$7*100이다.

아래 행으로 복사할 때 합계 행 7은 고정되어야 하고, C열에서 E열로 복사할 때는 B열이 D열로 바뀌어야 한다. 따라서 열은 상대 참조, 행만 절대 참조인 혼합 참조 B$7을 쓴다.

  • =B2/B7*100: 아래로 복사하면 분모가 B8, B9…로 밀려 합계를 벗어난다.
  • =$B$2/B7*100: 분자가 B2에 고정되고 분모는 밀려 나가 행마다 다른 비율을 구할 수 없다.
  • =B2/$B$7*100: 행 복사는 맞지만 E열로 복사하면 분모가 B7에 고정되어 판매금액 합계 D7을 참조하지 못한다.
문제 14
후위(postfix) 형식으로 표기된 다음 수식을 스택(stack)으로 처리하는 경우에, 스택의 탑(TOP) 원소의 값을 올바르게 나열한 것은? 단, 연산자(operator)는 한 자리의 숫자로 구성되는 두 개의 피연산자(operand)를 필요로 하는 이진(binary) 연산자이다.

4 5 + 2 3 * -

14, 5, 2, 3, 6, -1, 3
24, 5, 9, 2, 3, 6, -3
34, 5, 9, 2, 18, 3, 16
44, 5, 9, 2, 3, 6, 3
정답 및 해설

스택 탑의 값은 차례로 4, 5, 9, 2, 3, 6, 3이 된다.

피연산자는 push하고, 연산자를 만나면 두 값을 pop해 계산한 결과를 다시 push한다. 4, 5를 넣은 뒤 +로 9, 2와 3을 넣은 뒤 *로 6, 마지막 -는 먼저 꺼낸 6을 오른쪽에 두어 9 - 6 = 3이다.

  • 2, 3, 6, -1, 3으로 이어지는 나열: + 연산 뒤의 탑 값 9가 빠져 있다.
  • 마지막이 -3인 나열: 뺄셈은 나중에 들어간 값을 빼는 9 - 6이므로 음수가 아니다.
  • 18, 3, 16이 들어간 나열: 2와 3을 곱하면 6이며 9와 곱하는 연산은 없다.
문제 15
<보기>는 자료의 표현과 관련된 설명이다. 옳은 것을 모두 고른 것은?
  • ㄱ. 2진수 0001101의 2의 보수(complement)는 1110011이다.
  • ㄴ. 부호화 2의 보수 표현방법은 영(0)이 하나만 존재한다.
  • ㄷ. 패리티(parity) 비트로 오류를 수정할 수 있다.
  • ㄹ. 해밍(Hamming) 코드로 오류를 검출할 수 있다.
1ㄱ, ㄹ
2ㄴ, ㄷ
3ㄱ, ㄴ, ㄷ
4ㄱ, ㄴ, ㄹ
정답 및 해설

옳은 설명은 2의 보수 계산, 2의 보수의 영 표현, 해밍 코드의 오류 검출이다.

0001101의 각 비트를 반전하면 1110010이고 여기에 1을 더하면 1110011이 된다. 부호화 2의 보수는 +0과 -0의 구분이 없어 0이 하나뿐이며, 해밍 코드는 오류를 검출하고 정정까지 할 수 있다.

  • 패리티 비트로 오류를 수정한다는 설명: 패리티 비트는 홀수 개 비트 오류를 검출만 할 뿐 어느 비트가 틀렸는지 알 수 없어 정정하지 못한다.
문제 16
웹 개발 기법의 하나인 Ajax(Asynchronous Javascript and XML)에 대한 설명으로 옳지 않은 것은?
1대화식 웹 애플리케이션을 개발하기 위해 사용된다.
2기술의 묶음이라기보다는 웹 개발을 위한 특정한 기술을 의미한다.
3서버 처리를 기다리지 않고 비동기 요청이 가능하다.
4Prototype, JQuery, Google Web Toolkit은 대표적인 Ajax 프레임워크이다.
정답 및 해설

옳지 않은 것은 Ajax가 특정한 단일 기술을 의미한다는 설명이다.

Ajax는 JavaScript, XMLHttpRequest, XML/JSON, HTML·CSS, DOM 등을 조합해 쓰는 기술의 묶음(개발 기법)이다.

  • 페이지 전체를 새로 고치지 않고 일부만 갱신하므로 대화식 웹 애플리케이션 개발에 쓰인다.
  • 서버 응답을 기다리지 않고 비동기 요청을 보낼 수 있다.
  • Prototype, jQuery, Google Web Toolkit은 대표적인 Ajax 프레임워크(라이브러리)이다.
문제 17
C 프로그램의 실행 결과로 옳은 것은?
#define VALUE1 1
#define VALUE2 2
main()
{
float i;
int j,k,m;
i = 100/300;
j = VALUE1 & VALUE2;
k = VALUE1 | VALUE2;
if (j && k || i) m = i + j;
else m = j + k;
printf("i = %.1f j = %d k = %d m = %03d\n", i,j,k,m)
}
1i = 0.0 j = 0 k = 3 m = 003
2i = 0.3 j = 0 k = 3 m = 000
3i = 0.0 j = 1 k = 1 m = 001
4i = 0.3 j = 1 k = 1 m = 001
정답 및 해설

실행 결과는 i = 0.0 j = 0 k = 3 m = 003이다.

100/300은 정수끼리의 나눗셈이라 0이 되어 i에는 0.0이 들어간다. 비트 연산 1 & 2 는 0, 1 | 2 는 3이므로 j = 0, k = 3 이다.

조건 (j && k || i)에서 j가 0이라 앞부분이 거짓이고 i도 0.0이라 전체가 거짓이므로 else의 m = j + k = 3 이 실행되고, %03d 서식으로 003이 출력된다.

  • i = 0.3 j = 0 k = 3 m = 000: 정수 나눗셈 결과 0이 float로 저장되어 i는 0.0이고, m도 j + k = 3이므로 003이다.
  • i = 0.0 j = 1 k = 1 m = 001: &와 |는 비트 연산이라 1 & 2 는 0, 1 | 2 는 3이다.
  • i = 0.3 j = 1 k = 1 m = 001: i의 소수부와 j, k의 비트 연산 결과가 모두 틀렸다.
문제 18
화소(pixel)당 24비트 컬러를 사용하고 해상도가 352×240 화소인 TV영상프레임(frame)을 초당 30개 전송할 때 필요한 통신 대역폭으로 가장 가까운 것은?
1약 10Mbps
2약 20Mbps
3약 30Mbps
4약 60Mbps
정답 및 해설

필요한 통신 대역폭은 약 60Mbps이다.

대역폭 = 프레임당 화소 수 × 화소당 비트 수 × 초당 프레임 수
352×240=84480352 \times 240 = 84480
84480×24=2027520 bit84480 \times 24 = 2027520\ \mathrm{bit}
2027520×30=60825600 bps≈60.8 Mbps2027520 \times 30 = 60825600\ \mathrm{bps} \approx 60.8\ \mathrm{Mbps}

따라서 가장 가까운 값은 약 60Mbps이다.

  • 약 10Mbps는 계산값의 6분의 1 수준으로 크게 부족하다.
  • 약 20Mbps는 계산값의 3분의 1 수준으로 부족하다.
  • 약 30Mbps는 계산값의 절반 수준으로, 초당 15프레임 정도에 해당한다.
문제 19
데이터베이스 관리시스템(DBMS)에서 질의 처리를 빠르게 수행하기 위해 질의를 최적화한다. 질의 최적화 시에 사용하는 경험적 규칙으로서 알맞지 않은 것은?
1추출(project) 연산은 일찍 수행한다.
2조인(join) 연산은 가능한 한 일찍 수행한다.
3선택(select) 연산은 가능한 한 일찍 수행한다.
4중간 결과를 적게 산출하면서 빠른 시간에 결과를 줄 수 있어야 한다.
정답 및 해설

알맞지 않은 규칙은 조인 연산을 가능한 한 일찍 수행한다는 것이다.

조인은 중간 결과를 크게 늘리는 비용이 큰 연산이므로, 선택·추출로 데이터를 먼저 줄인 뒤 가능한 한 늦게 수행하는 것이 경험적 규칙이다.

  • 추출(project) 연산을 일찍 수행해 불필요한 속성을 줄인다.
  • 선택(select) 연산을 가능한 한 일찍 수행해 처리할 투플 수를 줄인다.
  • 중간 결과를 적게 만들면서 빠르게 결과를 내는 것이 최적화의 목표이다.
문제 20
컴퓨터 시스템의 성능을 측정하는 척도에 대한 설명으로 알맞지 않은 것은?
1처리량(throughput)은 보통 안정된 상태에서 측정되며 하루에 처리되는 작업의 개수 또는 시간당 처리되는 온라인 처리의 개수 등으로 측정된다.
2병목(bottleneck) 현상은 시스템 자원이 용량(capacity) 또는 처리량에 있어서 최대 한계에 도달할 때 발생될 수 있다.
3응답 시간(response time)은 주어진 작업의 수행을 위해 시스템에 도착한 시점부터 완료되어 그 작업의 출력이 사용자에게 제출되는 시점까지의 시간으로 정의된다.
4자원 이용도(utilization)는 일반적으로 전체 시간에 대해 주어진 자원이 실제로 사용되는 시간의 백분율로 나타낸다.
정답 및 해설

알맞지 않은 것은 응답 시간을 작업이 도착해서 완료되어 출력이 제출될 때까지로 정의한 설명이다.

도착부터 완료·출력까지의 전체 시간은 반환 시간(turnaround time)이고, 응답 시간은 요청 후 첫 응답이 나올 때까지의 시간이다.

  • 처리량은 안정 상태에서 단위 시간당 처리되는 작업 수로 측정한다.
  • 병목 현상은 자원이 용량이나 처리량의 최대 한계에 도달할 때 발생한다.
  • 자원 이용도는 전체 시간 중 자원이 실제 사용된 시간의 백분율이다.
계리직 컴퓨터일반 기출문제모두CBT · moducbt.com
10년 1회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
마이크로 연산(operation)에 대한 설명으로 옳지 않은 것은?
1한 개의 클럭 펄스 동안 실행되는 기본 동작이다.
2한 개의 마이크로 연산 수행시간을 마이크로 사이클 타임이라 부르며 CPU 속도를 나타내는 척도로 사용된다.
3하나의 명령어는 항상 하나의 마이크로 연산이 동작되어 실행된다.
4시프트(shift), 로드(load) 등이 있다.
정답 및 해설

옳지 않은 것은 하나의 명령어는 항상 하나의 마이크로 연산으로 실행된다는 설명이다.

하나의 명령어는 인출·간접·실행 사이클 등을 거치며 여러 개의 마이크로 연산이 순서대로 수행되어 완료된다.

  • 마이크로 연산은 한 개의 클럭 펄스 동안 레지스터 간에 실행되는 기본 동작이다.
  • 마이크로 연산 하나의 수행 시간을 마이크로 사이클 타임이라 하며 CPU 속도의 척도로 쓰인다.
  • 시프트, 로드, 클리어, 증가 등이 대표적인 마이크로 연산이다.
문제 2
주기억장치에서 사용가능한 부분은 다음과 같다. M1은 16KB (kilobyte), M2는 14KB, M3는 5KB, M4는 30KB이며 주기억장치의 시작 부분부터 M1, M2, M3, M4 순서가 유지되고 있다. 이때 13KB를 요구하는 작업이 최초적합(First Fit) 방법, 최적적합(Best Fit) 방법, 최악적합(Worst Fit) 방법으로 주기억장치에 각각 배치될 때 결과로 옳은 것은? 단, 배열순서는 왼쪽에서 첫 번째가 최초적합 결과이며 두 번째가 최적적합 결과 그리고 세 번째가 최악적합 결과를 의미한다.
1M1, M2, M3
2M1, M2, M4
3M2, M1, M4
4M4, M2, M3
정답 및 해설

배치 결과는 순서대로 M1, M2, M4이다.

13KB를 담을 수 있는 공간은 M1(16KB), M2(14KB), M4(30KB)이고 M3(5KB)는 너무 작아 제외된다.

  • 최초적합: 앞에서부터 처음 들어가는 공간인 M1에 배치한다.
  • 최적적합: 남는 공간(단편화)이 가장 작은 M2에 배치한다(1KB 남음).
  • 최악적합: 남는 공간이 가장 큰 M4에 배치한다(17KB 남음).
문제 3
웹 애플리케이션을 개발하기 위한 스크립트 언어 중 성격이 다른 것은?
1Javascript
2JSP
3ASP
4PHP
정답 및 해설

성격이 다른 것은 Javascript로, 웹 브라우저에서 실행되는 클라이언트 측 스크립트 언어이다.

나머지는 모두 웹 서버에서 실행되어 결과 HTML을 만들어 보내는 서버 측 스크립트 기술이다.

  • JSP: 자바 기반의 서버 측 스크립트 기술이다.
  • ASP: 마이크로소프트 IIS에서 동작하는 서버 측 스크립트 기술이다.
  • PHP: 웹 서버에서 해석·실행되는 서버 측 스크립트 언어이다.
문제 4
해시(hash) 탐색에서 제산법(division)은 키(key) 값을 배열(array)의 크기로 나누어 그 나머지 값을 해시 값으로 사용하는 방법이다. 다음 데이터의 해시 값을 제산법으로 구하여 11개의 원소를 갖는 배열에 저장하려고 한다. 해시 값의 충돌(collision)이 발생하는 데이터를 열거해 놓은 것은?

111, 112, 113, 220, 221, 222

1111, 112
2112, 222
3113, 221
4220, 222
정답 및 해설

11로 나눈 나머지가 같아 충돌하는 데이터는 112와 222이다.

각 키를 11로 나눈 나머지는 111→1, 112→2, 113→3, 220→0, 221→1, 222→2 이다. 나머지 2가 겹치는 112와 222가 같은 주소로 들어가 충돌하며, 나머지 1이 겹치는 111과 221도 충돌 쌍이다.

  • 111, 112: 해시 값이 1과 2로 서로 다르다.
  • 113, 221: 해시 값이 3과 1로 서로 다르다.
  • 220, 222: 해시 값이 0과 2로 서로 다르다.
문제 5
회사에서 211.168.83.0(클래스 C)의 네트워크를 사용하고 있다. 내부적으로 5개의 서브넷을 사용하기 위해 서브넷 마스크를 255.255.255.224로 설정하였다. 이때 211.168.83.34가 속한 서브넷의 브로드캐스트 주소는 어느 것인가?
1211.168.83.15
2211.168.83.47
3211.168.83.63
4211.168.83.255
정답 및 해설

211.168.83.34가 속한 서브넷의 브로드캐스트 주소는 211.168.83.63이다.

서브넷 마스크 255.255.255.224에서 서브넷 하나의 크기는 256−224=32256 - 224 = 32이다.
따라서 마지막 옥텟이 0~31, 32~63, 64~95 … 단위로 나뉜다.

34는 32~63 구간에 속하므로 네트워크 주소는 211.168.83.32, 브로드캐스트 주소는 구간의 마지막 주소인 211.168.83.63이 된다.

  • 211.168.83.15는 0~31 구간 안의 주소로, 해당 구간의 브로드캐스트 주소도 아니다.
  • 211.168.83.47은 32~63 구간의 중간 주소일 뿐이다.
  • 211.168.83.255는 서브넷을 나누지 않은 전체 C클래스 네트워크의 브로드캐스트 주소이다.
문제 6
데이터베이스 설계 시에 양질의 데이터베이스를 구축하기 위하여 데이터베이스 릴레이션을 정규화한다. 이때 고려해야 할 사항과 가장 관련이 없는 것은?
1원하지 않는 데이터의 중복을 제거한다.
2원하지 않는 데이터의 종속을 제거한다.
3한 릴레이션 내의 속성들 간의 관계를 고려한다.
4한 릴레이션 내의 투플들 간의 관계를 고려한다.
정답 및 해설

정규화와 가장 관련이 없는 것은 릴레이션 내 투플들 간의 관계를 고려한다는 내용이다.

정규화는 속성들 사이의 함수적 종속을 분석해 릴레이션을 분해하는 과정이며, 개별 투플(행) 간의 관계를 따지지 않는다.

  • 불필요한 데이터 중복을 제거해 이상(anomaly)을 방지하는 것이 정규화의 목적이다.
  • 부분·이행 종속처럼 원하지 않는 종속을 제거하는 것이 정규화의 핵심 절차이다.
  • 정규화는 한 릴레이션 안 속성들 간의 관계(종속성)를 기준으로 진행된다.
문제 7
Windows XP에서 프린터 설정에 관한 설명으로 옳지 않은 것은?
1기본 프린터는 오직 1대만 설정할 수 있다.
2네트워크 프린터는 기본 프린터로 설정할 수 없다.
3한 대의 프린터를 여러 대의 컴퓨터에서 네트워크로 공유 가능하다.
4[네트워크 설정 마법사]를 통해 파일 및 프린터도 공유할 수 있다.
정답 및 해설

옳지 않은 것은 네트워크 프린터는 기본 프린터로 설정할 수 없다는 설명이다.

Windows XP에서는 로컬 프린터뿐 아니라 네트워크 프린터도 기본 프린터로 지정할 수 있다.

  • 기본 프린터는 한 시점에 한 대만 지정된다.
  • 한 대의 프린터를 공유하면 네트워크상의 여러 컴퓨터에서 사용할 수 있다.
  • 네트워크 설정 마법사로 파일 및 프린터 공유를 설정할 수 있다.
문제 8
운영체제는 일괄처리(batch), 대화식(interactive), 실시간(real-time)시스템 그리고 일괄처리와 대화식이 결합된 혼합(hybrid) 시스템 등으로 분류될 수 있다. 이와 같은 분류 근거로 가장 알맞은 것은?
1고급 프로그래밍 언어의 사용 여부
2응답 시간과 데이터 입력 방식
3버퍼링(buffering) 기능 수행 여부
4데이터 보호의 필요성 여부
정답 및 해설

분류 근거로 가장 알맞은 것은 응답 시간과 데이터 입력 방식이다.

일괄처리는 데이터를 모아 한꺼번에 처리하고, 대화식은 사용자와 즉시 주고받으며, 실시간은 정해진 시간 제약 안에 응답해야 한다는 점에서 구분된다.

  • 고급 프로그래밍 언어의 사용 여부는 운영체제 처리 방식과 무관하다.
  • 버퍼링은 입출력 속도 차이를 줄이는 기법으로 어느 방식에서나 쓰일 수 있다.
  • 데이터 보호의 필요성은 모든 시스템에 공통된 요구로, 분류 기준이 되지 않는다.
문제 9
다음 그래프를 너비 우선 탐색(Breadth First Search BFS), 깊이 우선 탐색(Depth First Search DFS) 방법으로 방문할 때 각 정점을 방문하는 순서로 옳은 것은? 단, 둘 이상의 정점을 선택할 수 있을 때는 알파벳 순서로 방문한다. (순서대로 BFS, DFS)
1A-B-F-C-E-D, A-B-C-D-E-F
2A-B-C-D-E-F, A-B-F-C-E-D
3A-B-F-C-D-E, A-B-C-D-E-F
4A-B-C-D-E-F, A-B-C-D-F-E
정답 및 해설

BFS는 A-B-F-C-D-E, DFS는 A-B-C-D-E-F 순서로 방문한다.

그래프의 간선은 A-B, A-F, B-C, B-F, C-D, C-F, D-E, D-F, E-F 이다. BFS는 A의 이웃 B, F를 먼저 방문하고, 이어서 B의 이웃 C, F의 이웃 D, E를 알파벳 순으로 방문한다.

DFS는 A에서 B, B에서 C, C에서 D, D에서 E로 계속 깊이 들어간 뒤 E의 미방문 이웃 F를 마지막에 방문한다.

  • BFS를 A-B-F-C-E-D로 둔 배열: F의 이웃 중 D가 E보다 알파벳 순으로 앞서므로 D를 먼저 방문한다.
  • BFS를 A-B-C-D-E-F로 둔 배열: 너비 우선이면 A와 인접한 F가 C·D·E보다 먼저 방문된다.
  • DFS를 A-B-C-D-F-E로 둔 배열: D의 미방문 이웃 E, F 중 알파벳 순으로 E를 먼저 방문한다.
문제 10
SQL에서는 데이터베이스 검색의 성능 및 편의 향상을 위하여 내장함수를 제공한다. 다음 중 SQL의 내장 집계함수(aggregate function)가 아닌 것은?
1COUNT
2SUM
3TOTAL
4MAX
정답 및 해설

SQL의 내장 집계함수가 아닌 것은 TOTAL이다.

표준 SQL의 집계함수는 COUNT, SUM, AVG, MAX, MIN 등이며, 합계는 TOTAL이 아니라 SUM으로 구한다.

  • COUNT: 행(값)의 개수를 구한다.
  • SUM: 값의 합계를 구한다.
  • MAX: 값 중 최댓값을 구한다.
문제 11
다음의 Java 프로그램에서 사용되지 않은 기법은?
class Adder {
public int add(int a, int b) { return a+b}
public double add(double a, double b) {
return a+b}
}
class Computer extends Adder {
private int x;
public int calc(int a, int b, int c) { if (a ==
1) return add(b, c)
else return x;}
Computer() { x = 0}
}
public class Adder_Main {
public static void main(String args[]) {
Computer c = new Computer()
System.out.println("100 + 200 = " +
c.calc(1, 100, 200))
System.out.println("5.7 + 9.8 = " +
c.add(5.7, 9.8))
}
}
1캡슐화(Encapsulation)
2상속(Inheritance)
3오버라이딩(Overriding)
4오버로딩(Overloading)
정답 및 해설

이 프로그램에 쓰이지 않은 기법은 오버라이딩(Overriding)이다.

오버라이딩은 하위 클래스가 상위 클래스의 메서드를 같은 시그니처로 재정의하는 것인데, Computer 클래스는 calc라는 새 메서드만 추가하고 Adder의 add를 다시 정의하지 않는다.

  • 캡슐화: Computer의 필드 x를 private으로 숨기고 메서드를 통해서만 값을 쓴다.
  • 상속: Computer가 extends Adder로 Adder의 add 메서드를 물려받아 사용한다.
  • 오버로딩: Adder에 매개변수 자료형이 다른 add(int, int)와 add(double, double)가 함께 정의되어 있다.
문제 12
다음에서 ㉠과 ㉡에 들어갈 내용이 올바르게 짝지어진 것은? (순서대로 ㉠, ㉡)

명령어를 주기억장치에서 중앙처리장치의 명령레지스터로 가져와 해독하는 것을 ( ㉠ )단계라 하고, 이 단계는 마이크로 연산(operation) ( ㉡ )로 시작한다.

1인출, MAR ← PC
2인출, MAR ← MBR(AD)
3실행, MAR ← PC
4실행, MAR ← MBR(AD)
정답 및 해설

명령어를 가져와 해독하는 단계는 인출(fetch)이고, 첫 마이크로 연산은 MAR ← PC이다.

인출 사이클은 다음 명령어의 주소가 든 PC 값을 MAR로 옮기는 것으로 시작하고, 그 주소의 내용을 MBR로 읽어 온 뒤 명령레지스터(IR)로 옮겨 해독한다.

  • 인출과 MAR ← MBR(AD)의 짝: 명령어의 주소부를 MAR로 옮기는 연산은 오퍼랜드를 가져오는 간접·실행 단계의 동작이다.
  • 실행과 MAR ← PC의 짝: 명령어를 가져와 해독하는 과정은 실행 단계가 아니라 인출 단계이다.
  • 실행과 MAR ← MBR(AD)의 짝: 단계 이름과 시작 연산이 모두 인출 사이클과 맞지 않는다.
문제 13
MS Excel의 워크시트에서 사원별 수주량과 판매금액, 그리고 수주량과 판매금액의 합계가 입력되어 있다. 이때 C열에는 전체 수주량 대비 각 사원 수주량의 비율을, E열에는 전체 판매금액 대비 각 사원 판매금액의 비율을 보이고자 한다. 이를 위해 C2셀에 수식을 입력한 다음에 이를 C열과 E열의 나머지 셀에 복사하여 사용하고자 한다. C2셀에 입력할 내용으로 옳은 것은?
ABCDE
1사원수주량비율판매금액비율
2김철수788,000,000
3홍길동567,500,000
4김민호9313,000,000
5나영철3410,000,000
6최건808,000,000
7합계34146,500,000
1=B2/B7*100
2=$B$2/B7*100
3=B2/$B$7*100
4=B2/B$7*100
정답 및 해설

C2셀에 입력할 수식은 =B2/B$7*100이다.

아래 행으로 복사할 때 합계 행 7은 고정되어야 하고, C열에서 E열로 복사할 때는 B열이 D열로 바뀌어야 한다. 따라서 열은 상대 참조, 행만 절대 참조인 혼합 참조 B$7을 쓴다.

  • =B2/B7*100: 아래로 복사하면 분모가 B8, B9…로 밀려 합계를 벗어난다.
  • =$B$2/B7*100: 분자가 B2에 고정되고 분모는 밀려 나가 행마다 다른 비율을 구할 수 없다.
  • =B2/$B$7*100: 행 복사는 맞지만 E열로 복사하면 분모가 B7에 고정되어 판매금액 합계 D7을 참조하지 못한다.
문제 14
후위(postfix) 형식으로 표기된 다음 수식을 스택(stack)으로 처리하는 경우에, 스택의 탑(TOP) 원소의 값을 올바르게 나열한 것은? 단, 연산자(operator)는 한 자리의 숫자로 구성되는 두 개의 피연산자(operand)를 필요로 하는 이진(binary) 연산자이다.

4 5 + 2 3 * -

14, 5, 2, 3, 6, -1, 3
24, 5, 9, 2, 3, 6, -3
34, 5, 9, 2, 18, 3, 16
44, 5, 9, 2, 3, 6, 3
정답 및 해설

스택 탑의 값은 차례로 4, 5, 9, 2, 3, 6, 3이 된다.

피연산자는 push하고, 연산자를 만나면 두 값을 pop해 계산한 결과를 다시 push한다. 4, 5를 넣은 뒤 +로 9, 2와 3을 넣은 뒤 *로 6, 마지막 -는 먼저 꺼낸 6을 오른쪽에 두어 9 - 6 = 3이다.

  • 2, 3, 6, -1, 3으로 이어지는 나열: + 연산 뒤의 탑 값 9가 빠져 있다.
  • 마지막이 -3인 나열: 뺄셈은 나중에 들어간 값을 빼는 9 - 6이므로 음수가 아니다.
  • 18, 3, 16이 들어간 나열: 2와 3을 곱하면 6이며 9와 곱하는 연산은 없다.
문제 15
<보기>는 자료의 표현과 관련된 설명이다. 옳은 것을 모두 고른 것은?
  • ㄱ. 2진수 0001101의 2의 보수(complement)는 1110011이다.
  • ㄴ. 부호화 2의 보수 표현방법은 영(0)이 하나만 존재한다.
  • ㄷ. 패리티(parity) 비트로 오류를 수정할 수 있다.
  • ㄹ. 해밍(Hamming) 코드로 오류를 검출할 수 있다.
1ㄱ, ㄹ
2ㄴ, ㄷ
3ㄱ, ㄴ, ㄷ
4ㄱ, ㄴ, ㄹ
정답 및 해설

옳은 설명은 2의 보수 계산, 2의 보수의 영 표현, 해밍 코드의 오류 검출이다.

0001101의 각 비트를 반전하면 1110010이고 여기에 1을 더하면 1110011이 된다. 부호화 2의 보수는 +0과 -0의 구분이 없어 0이 하나뿐이며, 해밍 코드는 오류를 검출하고 정정까지 할 수 있다.

  • 패리티 비트로 오류를 수정한다는 설명: 패리티 비트는 홀수 개 비트 오류를 검출만 할 뿐 어느 비트가 틀렸는지 알 수 없어 정정하지 못한다.
문제 16
웹 개발 기법의 하나인 Ajax(Asynchronous Javascript and XML)에 대한 설명으로 옳지 않은 것은?
1대화식 웹 애플리케이션을 개발하기 위해 사용된다.
2기술의 묶음이라기보다는 웹 개발을 위한 특정한 기술을 의미한다.
3서버 처리를 기다리지 않고 비동기 요청이 가능하다.
4Prototype, JQuery, Google Web Toolkit은 대표적인 Ajax 프레임워크이다.
정답 및 해설

옳지 않은 것은 Ajax가 특정한 단일 기술을 의미한다는 설명이다.

Ajax는 JavaScript, XMLHttpRequest, XML/JSON, HTML·CSS, DOM 등을 조합해 쓰는 기술의 묶음(개발 기법)이다.

  • 페이지 전체를 새로 고치지 않고 일부만 갱신하므로 대화식 웹 애플리케이션 개발에 쓰인다.
  • 서버 응답을 기다리지 않고 비동기 요청을 보낼 수 있다.
  • Prototype, jQuery, Google Web Toolkit은 대표적인 Ajax 프레임워크(라이브러리)이다.
문제 17
C 프로그램의 실행 결과로 옳은 것은?
#define VALUE1 1
#define VALUE2 2
main()
{
float i;
int j,k,m;
i = 100/300;
j = VALUE1 & VALUE2;
k = VALUE1 | VALUE2;
if (j && k || i) m = i + j;
else m = j + k;
printf("i = %.1f j = %d k = %d m = %03d\n", i,j,k,m)
}
1i = 0.0 j = 0 k = 3 m = 003
2i = 0.3 j = 0 k = 3 m = 000
3i = 0.0 j = 1 k = 1 m = 001
4i = 0.3 j = 1 k = 1 m = 001
정답 및 해설

실행 결과는 i = 0.0 j = 0 k = 3 m = 003이다.

100/300은 정수끼리의 나눗셈이라 0이 되어 i에는 0.0이 들어간다. 비트 연산 1 & 2 는 0, 1 | 2 는 3이므로 j = 0, k = 3 이다.

조건 (j && k || i)에서 j가 0이라 앞부분이 거짓이고 i도 0.0이라 전체가 거짓이므로 else의 m = j + k = 3 이 실행되고, %03d 서식으로 003이 출력된다.

  • i = 0.3 j = 0 k = 3 m = 000: 정수 나눗셈 결과 0이 float로 저장되어 i는 0.0이고, m도 j + k = 3이므로 003이다.
  • i = 0.0 j = 1 k = 1 m = 001: &와 |는 비트 연산이라 1 & 2 는 0, 1 | 2 는 3이다.
  • i = 0.3 j = 1 k = 1 m = 001: i의 소수부와 j, k의 비트 연산 결과가 모두 틀렸다.
문제 18
화소(pixel)당 24비트 컬러를 사용하고 해상도가 352×240 화소인 TV영상프레임(frame)을 초당 30개 전송할 때 필요한 통신 대역폭으로 가장 가까운 것은?
1약 10Mbps
2약 20Mbps
3약 30Mbps
4약 60Mbps
정답 및 해설

필요한 통신 대역폭은 약 60Mbps이다.

대역폭 = 프레임당 화소 수 × 화소당 비트 수 × 초당 프레임 수
352×240=84480352 \times 240 = 84480
84480×24=2027520 bit84480 \times 24 = 2027520\ \mathrm{bit}
2027520×30=60825600 bps≈60.8 Mbps2027520 \times 30 = 60825600\ \mathrm{bps} \approx 60.8\ \mathrm{Mbps}

따라서 가장 가까운 값은 약 60Mbps이다.

  • 약 10Mbps는 계산값의 6분의 1 수준으로 크게 부족하다.
  • 약 20Mbps는 계산값의 3분의 1 수준으로 부족하다.
  • 약 30Mbps는 계산값의 절반 수준으로, 초당 15프레임 정도에 해당한다.
문제 19
데이터베이스 관리시스템(DBMS)에서 질의 처리를 빠르게 수행하기 위해 질의를 최적화한다. 질의 최적화 시에 사용하는 경험적 규칙으로서 알맞지 않은 것은?
1추출(project) 연산은 일찍 수행한다.
2조인(join) 연산은 가능한 한 일찍 수행한다.
3선택(select) 연산은 가능한 한 일찍 수행한다.
4중간 결과를 적게 산출하면서 빠른 시간에 결과를 줄 수 있어야 한다.
정답 및 해설

알맞지 않은 규칙은 조인 연산을 가능한 한 일찍 수행한다는 것이다.

조인은 중간 결과를 크게 늘리는 비용이 큰 연산이므로, 선택·추출로 데이터를 먼저 줄인 뒤 가능한 한 늦게 수행하는 것이 경험적 규칙이다.

  • 추출(project) 연산을 일찍 수행해 불필요한 속성을 줄인다.
  • 선택(select) 연산을 가능한 한 일찍 수행해 처리할 투플 수를 줄인다.
  • 중간 결과를 적게 만들면서 빠르게 결과를 내는 것이 최적화의 목표이다.
문제 20
컴퓨터 시스템의 성능을 측정하는 척도에 대한 설명으로 알맞지 않은 것은?
1처리량(throughput)은 보통 안정된 상태에서 측정되며 하루에 처리되는 작업의 개수 또는 시간당 처리되는 온라인 처리의 개수 등으로 측정된다.
2병목(bottleneck) 현상은 시스템 자원이 용량(capacity) 또는 처리량에 있어서 최대 한계에 도달할 때 발생될 수 있다.
3응답 시간(response time)은 주어진 작업의 수행을 위해 시스템에 도착한 시점부터 완료되어 그 작업의 출력이 사용자에게 제출되는 시점까지의 시간으로 정의된다.
4자원 이용도(utilization)는 일반적으로 전체 시간에 대해 주어진 자원이 실제로 사용되는 시간의 백분율로 나타낸다.
정답 및 해설

알맞지 않은 것은 응답 시간을 작업이 도착해서 완료되어 출력이 제출될 때까지로 정의한 설명이다.

도착부터 완료·출력까지의 전체 시간은 반환 시간(turnaround time)이고, 응답 시간은 요청 후 첫 응답이 나올 때까지의 시간이다.

  • 처리량은 안정 상태에서 단위 시간당 처리되는 작업 수로 측정한다.
  • 병목 현상은 자원이 용량이나 처리량의 최대 한계에 도달할 때 발생한다.
  • 자원 이용도는 전체 시간 중 자원이 실제 사용된 시간의 백분율이다.