9급 지방직 공무원 서울시 컴퓨터일반 필기 기출문제복원 (2017-06-24)

9급 지방직 공무원 서울시 컴퓨터일반
(2017-06-24 기출문제)

목록

1. 다음은 컴퓨터 언어처리에 관련된 시스템 S/W의 기능을 설명한 것이다. 옳지 않은 것은?

  1. 컴파일러 : 고급언어를 이진목적모듈로 변환기능
  2. 어셈블러 : 객체지향언어를 이진목적모듈로 변환기능
  3. 링커 : 여러 목적모듈을 통합하여 실행 가능한 하나의 모듈로 변환기능
  4. 로더 : 실행 가능한 모듈을 주기억장치에 탑재기능
(정답률: 87%)
  • 정답은 "어셈블러 : 객체지향언어를 이진목적모듈로 변환기능"이다. 어셈블러는 저급언어인 어셈블리어를 이진목적모듈로 변환하는 기능을 수행한다. 객체지향언어는 고급언어에 해당하므로 어셈블러로는 변환할 수 없다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

2. 컴퓨터에서 사건이 발생하면 이를 처리하기 위해 인터럽트 기술을 사용한다. 사건의 발생지에 따라 동기와 비동기 인터럽트로 분류된다. 다음 중 비동기 인터럽트는?

  1. 프로세스가 실행 중에 0으로 나누기를 할 때 발생하는 인터럽트
  2. 키보드 혹은 마우스를 사용할 때 발생하는 인터럽트
  3. 프로세스 내 명령어 실행 때문에 발생하는 인터럽트
  4. 프로세스 내 명령어가 보호 메모리영역을 참조할 때 발생하는 인터럽트
(정답률: 75%)
  • 정답인 "키보드 혹은 마우스를 사용할 때 발생하는 인터럽트"는 사용자의 입력에 의해 발생하는 인터럽트이기 때문입니다. 사용자가 키보드나 마우스를 클릭하면 컴퓨터는 해당 입력을 처리하기 위해 인터럽트를 발생시키고, 이를 처리하는 프로그램이 실행됩니다. 이는 사용자의 입력에 따라 발생하기 때문에 비동기 인터럽트로 분류됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

3. 데이터통신에서 에러 복구를 위해 사용되는 Go-back-N ARQ에 대한 설명으로 옳지 않은 것은?

  1. Go-back-N ARQ는 여러 개의 프레임들을 순서번호를 붙여서 송신하고, 수신 측은 이 순서번호에 따라 ACK 또는 NAK를 보낸다.
  2. Go-back-N ARQ는 송신 측은 확인응답이 올 때까지 전송된 모든 프레임의 사본을 갖고 있어야 한다.
  3. Go-back-N ARQ는 재전송 시 불필요한 재전송 프레임들이 존재하지 않는다.
  4. Go-back-N ARQ는 송신 측은 n개의 Sliding Window를 가지고 있어야 한다.
(정답률: 78%)
  • "Go-back-N ARQ는 재전송 시 불필요한 재전송 프레임들이 존재하지 않는다."는 옳지 않은 설명입니다. 이는 Selective Repeat ARQ에서 적용되는 원리이며, Go-back-N ARQ에서는 일부 프레임이 손실되면 해당 프레임 이후의 모든 프레임들이 재전송되어야 합니다. 따라서 불필요한 재전송 프레임들이 존재할 수 있습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

4. 데이터베이스에서 뷰(View)에 대한 설명으로 옳은 것은?

  1. 뷰는 테이블을 기반으로 만들어지는 가상 테이블이며, 뷰를 기반으로 새로운 뷰를 생성할 수 없다.
  2. 뷰 삭제는 SQL 명령어 중 DELETE 구문을 사용하며, 뷰 생성에 기반이 된 기존 테이블들은 영향을 미치지 않는다.
  3. 뷰 생성에 사용된 테이블의 기본키를 구성하는 속성이 포함되어 있지 않은 뷰도 데이터의 변경이 가능하다.
  4. 뷰 생성 시 사용되는 SELECT문에서 GROUP BY 구문은 사용 가능하지만, ORDER BY 구문은 사용할 수 없다.
(정답률: 48%)
  • 뷰는 실제 데이터를 저장하지 않고, 기존의 테이블을 기반으로 만들어지는 가상 테이블입니다. 따라서 뷰를 생성할 때 사용되는 SELECT문에서는 ORDER BY 구문을 사용할 수 없습니다. 이는 뷰가 실제 데이터를 가지고 있지 않기 때문에, 정렬된 결과를 보장할 수 없기 때문입니다. 반면 GROUP BY 구문은 사용 가능한 이유는, 그룹화된 결과를 보장할 수 있기 때문입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

5. 초기에 빈 Binary Search Tree를 생성하고, 입력되는 수는 다음과 같은 순서로 된다고 가정한다. 입력되는 값을 이용하여 Binary Search Tree를 만들고 난 후 Inorder Traversal을 했을 때의 방문하는 순서는?

  1. 01235678
  2. 02316587
  3. 75103268
  4. 86230157
(정답률: 59%)
  • Binary Search Tree는 왼쪽 자식 노드는 부모 노드보다 작은 값을 가지고, 오른쪽 자식 노드는 부모 노드보다 큰 값을 가지는 특징이 있다. 따라서 입력되는 값들을 이용하여 Binary Search Tree를 만들면 다음과 같다.

    1. 5를 루트 노드로 설정한다.
    2. 2는 5보다 작으므로 왼쪽 자식 노드로 설정한다.
    3. 8은 5보다 크므로 오른쪽 자식 노드로 설정한다.
    4. 0은 2보다 작으므로 2의 왼쪽 자식 노드로 설정한다.
    5. 3은 2와 5 사이에 위치하므로 5의 왼쪽 자식 노드인 2의 오른쪽 자식 노드로 설정한다.
    6. 1은 0과 2 사이에 위치하므로 0의 오른쪽 자식 노드인 2의 왼쪽 자식 노드로 설정한다.
    7. 6은 5와 8 사이에 위치하므로 8의 왼쪽 자식 노드인 5의 오른쪽 자식 노드로 설정한다.
    8. 7은 6과 8 사이에 위치하므로 6의 오른쪽 자식 노드인 8의 왼쪽 자식 노드로 설정한다.

    따라서 Inorder Traversal을 하면 0, 1, 2, 3, 5, 6, 7, 8 순서로 방문하게 된다. 따라서 정답은 "01235678"이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

6. 통신 S/W 구조에서 제2계층인 데이터링크 계층의 주기능이 아닌 것은?

  1. 데이터링크 계층에서 전송할 프레임(Frame) 제작 기능
  2. 점대점(Point to Point) 링크 간의 오류제어 기능
  3. 종단(End to End) 간 경로설정 기능
  4. 점대점(Point to Point) 링크 간의 흐름제어 기능
(정답률: 85%)
  • 데이터링크 계층은 주로 인접한 노드 간의 통신을 담당하며, 이를 위해 점대점 링크 간의 오류제어와 흐름제어 기능을 제공합니다. 하지만 종단 간 경로설정은 네트워크 계층에서 수행되는 기능으로, 데이터링크 계층에서는 담당하지 않습니다. 따라서 정답은 "종단(End to End) 간 경로설정 기능"입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

7. 다음 중 집적도가 가장 높은 회로와 가장 큰 저장용량 단위를 나타낸 것은?

  1. ULSI, PB
  2. VLSI, TB
  3. MSI, GB
  4. SSI, PB
(정답률: 79%)
  • 정답은 "ULSI, PB"입니다.

    ULSI는 "Ultra Large Scale Integration"의 약자로, 집적도가 가장 높은 회로를 나타냅니다. 이는 하나의 칩 안에 수십억 개의 트랜지스터가 집적되어 있음을 의미합니다.

    PB는 "Petabyte"의 약자로, 가장 큰 저장용량 단위를 나타냅니다. 1PB는 1,000TB(테라바이트)에 해당하며, 대용량 데이터를 저장하는 데 사용됩니다.

    따라서, ULSI는 가장 높은 집적도를 가진 회로를 나타내고, PB는 가장 큰 저장용량 단위를 나타내므로, "ULSI, PB"가 정답입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

8. 다음은 다중스레드(Multi-Thread)에 관련된 설명이다. 옳지 않은 것은?

  1. 하나의 프로세스에 2개 이상의 스레드들을 생성하여 수행한다.
  2. 스레드별로 각각의 프로세스를 생성하여 실행하는 것보다 효율적이다.
  3. 스레드들 간은 IPC(InterProcess Communication)방식으로 통신한다.
  4. 각각의 스레드는 프로세스에 할당된 자원을 공유한다.
(정답률: 58%)
  • 정답은 "스레드들 간은 IPC(InterProcess Communication)방식으로 통신한다." 이다.

    이유는 스레드들은 하나의 프로세스 내에서 실행되기 때문에, 같은 메모리 공간을 공유하고 있기 때문에 별도의 IPC 방식이 필요하지 않다. 따라서, 스레드들 간의 통신은 메모리를 공유하는 방식으로 이루어진다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

9. 다음과 같이 3개의 프로세스가 있다고 가정한다. 각 프로세스의 도착 시간과 프로세스의 실행에 필요한 시간은 아래표와 같다. CPU 스케줄링 알고리즘으로 RR(Round Robin)을 사용한다고 가정한다. 3개의 프로세스가 CPU에서 작업을 하고 마치는 순서는? (단, CPU를 사용하는 타임 슬라이스(time slice)는 2이다.)

  1. P2, P1, P3
  2. P2, P3, P1
  3. P1, P2, P3
  4. P1, P3, P2
(정답률: 74%)
  • RR 알고리즘은 각 프로세스에게 일정한 시간 할당 후 다음 프로세스로 넘어가는 방식으로 동작한다. 이 문제에서는 타임 슬라이스가 2이므로, 각 프로세스는 최대 2초 동안 CPU를 사용할 수 있다.

    먼저, P1이 도착하고 2초 동안 CPU를 사용한다. 그 다음에는 P2가 도착하고 2초 동안 CPU를 사용한다. 이때 P1은 아직 실행이 끝나지 않았으므로, 다시 2초 동안 CPU를 사용한다. 그리고 P3이 도착하고 2초 동안 CPU를 사용한다. 이때 P1은 아직 실행이 끝나지 않았으므로, 다시 2초 동안 CPU를 사용한다. 이제 P1은 실행이 끝났으므로, 다음으로 P3이 2초 동안 CPU를 사용한다. 마지막으로 P2가 2초 동안 CPU를 사용하고 모든 프로세스의 실행이 끝나게 된다.

    따라서, 정답은 "P1, P3, P2"이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

10. 다음의 C프로그램을 실행한 결과로 옳은 것은?

  1. 1 5 10 20
  2. 1 5 20 4
  3. 1 5 30 4
  4. 에러 발생
(정답률: 53%)
  • 이 프로그램은 배열 arr에 4개의 정수를 저장하고, 포인터 변수 ptr에 arr의 첫 번째 요소의 주소를 저장한 후, ptr이 가리키는 값을 출력하고, ptr을 1 증가시켜서 다음 요소를 가리키도록 한 후, 그 값을 출력하는 과정을 반복한다.

    따라서, 첫 번째 출력은 arr[0]의 값인 1이 출력되고, 두 번째 출력은 arr[1]의 값인 5가 출력된다. 세 번째 출력은 arr[2]의 값인 30이 출력되고, 마지막으로 ptr이 arr[3]을 가리키고 있으므로 arr[3]의 값인 4가 출력된다.

    따라서, 정답은 "1 5 30 4"이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

11. Flynn의 병렬컴퓨터 분류방식에 대한 설명으로 옳지 않은 것은?

  1. SISD - 명령어와 데이터를 순서대로 처리하는 단일프로세서 시스템이다.
  2. SIMD - 단일 명령어 스트림을 처리하고 배열프로세서라고도 한다.
  3. MISD - 여러 개의 프로세서를 갖는 구조로 밀결합 시스템(tightly-coupled system)과 소결합 시스템(looselycoupled system)으로 분류한다.
  4. MIMD - 여러 개의 프로세서들이 서로 다른 명령어와 데이터를 처리하는 진정한 의미의 병렬프로세서이다.
(정답률: 50%)
  • MISD는 여러 개의 프로세서를 갖는 구조로 분류되지만, 밀결합 시스템과 소결합 시스템으로 분류되지 않는다. 따라서 정답은 "MISD - 여러 개의 프로세서를 갖는 구조로 밀결합 시스템(tightly-coupled system)과 소결합 시스템(loosely-coupled system)으로 분류한다."이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

12. 네트워크 토폴로지(Topology) 중 버스(Bus) 방식에 대한 설명으로 옳지 않은 것은?

  1. 버스 방식은 네트워크 구성이 간단하고 작은 네트워크에 유용하며 사용이 용이하다.
  2. 버스 방식은 네트워크 트래픽이 많을 경우 네트워크 효율이 떨어진다.
  3. 버스 방식은 통신 채널이 단 한 개이므로 버스 고장이 발생하면 네트워크 전체가 동작하지 않으므로 여분의 채널이 필요하다.
  4. 버스 방식은 노드의 추가⋅삭제가 어렵다.
(정답률: 80%)
  • 버스 방식은 노드의 추가⋅삭제가 어렵다는 설명이 옳지 않습니다. 버스 방식은 노드를 추가하기 위해서는 새로운 노드를 버스에 연결하면 되고, 노드를 삭제하기 위해서는 해당 노드와 연결된 케이블을 제거하면 됩니다. 따라서 노드의 추가⋅삭제가 어렵다는 이유는 없습니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

13. 정보은닉(information hiding)에 대한 설명으로 옳지 않은 것은?

  1. 필요하지 않은 정보는 접근을 제한하는 것이다.
  2. 모듈 사이의 독립성을 유지시킨다.
  3. 설계전략을 지역화하여 전략의 변경에 따른 영향을 최소화한다.
  4. 모듈 사이의 결합도를 높여 신뢰성을 향상시킨다.
(정답률: 65%)
  • 정보은닉은 모듈 내부의 구현 세부사항을 외부로부터 숨기는 것을 말한다. 따라서 필요하지 않은 정보는 접근을 제한하고, 모듈 사이의 독립성을 유지시키며, 설계전략을 지역화하여 전략의 변경에 따른 영향을 최소화한다. 하지만 모듈 사이의 결합도를 높이는 것은 옳지 않다. 결합도가 높을수록 모듈 간의 의존성이 높아져 유지보수와 확장이 어려워지기 때문이다. 따라서 모듈 사이의 결합도를 낮추는 것이 신뢰성을 향상시키는 방법이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

14. 다음 전가산기 논리회로에 대한 설명으로 옳지 않은 것은?

  1. 전가산기는 캐리를 포함하여 연산처리하기 위해 설계되었다.
  2. S = (A⊕B)⊕Ci
  3. C0 = AB+ACi+BCi
  4. 전가산기는 두 개의 반가산기만으로 구성할 수 있다.
(정답률: 69%)
  • 전가산기는 반가산기 2개와 OR 게이트 1개로 구성되어 있습니다. 따라서 "전가산기는 두 개의 반가산기만으로 구성할 수 있다."는 옳은 설명입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

15. 다음은 그래프 순회에서 깊이 우선 탐색 방법에 대한 수행 순서를 설명한 것이다. (ㄱ)~(ㄹ)에 알맞은 내용으로 짝지어진 것은?

  1. (ㄱ)Stack (ㄴ)push (ㄷ)pop (ㄹ)Stack
  2. (ㄱ)Stack (ㄴ)pop (ㄷ)push (ㄹ)Queue
  3. (ㄱ)Queue (ㄴ)enQueue (ㄷ)deQueue (ㄹ)Queue
  4. (ㄱ)Queue (ㄴ)enQueue (ㄷ)deQueue (ㄹ)Stack
(정답률: 90%)
  • 깊이 우선 탐색에서는 현재 노드에서 방문하지 않은 인접한 노드가 있으면 그 노드로 이동하여 탐색을 계속한다. 이 때, 방문한 노드를 기억해야 하므로 스택을 사용한다. 따라서, (ㄱ)은 스택이어야 한다. 또한, 현재 노드에서 방문하지 않은 인접한 노드를 스택에 넣어야 하므로 push 연산이 필요하다. 이후, 스택에서 노드를 꺼내서 탐색을 진행해야 하므로 pop 연산이 필요하다. 마지막으로, 스택에 남아있는 노드를 모두 꺼내야 하므로 다시 스택을 사용해야 한다. 따라서, (ㄴ)은 push, (ㄷ)는 pop, (ㄹ)은 Stack이어야 한다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

16. 소프트웨어 개발 생명 주기(Software Development Life Cycle)의 순서로 옳은 것은?

  1. 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수
  2. 분석 → 계획 → 설계 → 구현 → 테스트 → 유지보수
  3. 분석 → 계획 → 설계 → 테스트→ 구현 → 유지보수
  4. 계획 → 설계 → 분석 → 구현 → 테스트 → 유지보수
(정답률: 65%)
  • 정답은 "계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수" 입니다.

    소프트웨어 개발 생명 주기는 소프트웨어를 개발하는 과정을 일련의 단계로 나눈 것입니다. 이 중에서도 가장 일반적으로 사용되는 순서는 계획, 분석, 설계, 구현, 테스트, 유지보수입니다.

    - 계획: 프로젝트의 목표와 일정, 예산 등을 계획합니다.
    - 분석: 요구사항을 수집하고 분석하여 시스템의 기능과 제약사항을 파악합니다.
    - 설계: 시스템의 구조와 동작 방식을 설계합니다.
    - 구현: 설계된 시스템을 실제로 개발합니다.
    - 테스트: 시스템이 요구사항을 만족하는지 검증합니다.
    - 유지보수: 시스템을 운영하면서 발생하는 문제를 해결하고, 기능을 추가하거나 변경합니다.

    이러한 단계를 순서대로 진행하면서 소프트웨어를 개발하게 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

17. 다음은 postfix 수식이다. 이 postfix 수식은 스택을 이용하여 연산을 수행한다. 그리고 ^는 지수함수 연산자이다. 처음 *(곱하기 연산) 계산이 되고 난 후 스택의 top과 top-1에 있는 두 원소는 무엇인가? (단, 보기의 '(top)'은 스택의 top 위치를 나타낸다.)

  1. (top) 6, 1
  2. (top) 9, 1
  3. (top) 2, 3
  4. (top) 2, 7
(정답률: 64%)
  • Postfix 수식은 스택을 이용하여 연산을 수행한다. 따라서, 수식을 왼쪽에서 오른쪽으로 읽어가면서 피연산자는 스택에 push하고 연산자를 만나면 스택에서 필요한 개수만큼 pop하여 연산을 수행하고 그 결과를 다시 스택에 push한다.

    먼저, 2와 3을 스택에 push한다. 그 다음, * 연산자를 만나서 스택에서 2와 3을 pop하여 곱셈을 수행하고 그 결과인 6을 스택에 push한다. 그 다음, 7을 스택에 push한다. 그 다음, ^ 연산자를 만나서 스택에서 7을 pop하여 1의 7제곱을 계산하고 그 결과인 7을 스택에 push한다. 마지막으로, * 연산자를 만나서 스택에서 6과 7을 pop하여 곱셈을 수행하고 그 결과인 42를 스택에 push한다.

    따라서, 스택의 top과 top-1에 있는 두 원소는 (top) 6, 1 이다. 이유는 * 연산자를 만나서 스택에서 pop한 순서대로 3과 2가 top과 top-1에 위치하고 있었기 때문이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

18. 빅데이터에 대한 설명으로 옳은 것은?

  1. 빅데이터는 정형데이터로만 구성되며, 소셜 미디어 데이터는 해당되지 않는다.
  2. 빅데이터를 구현하기 위한 대표적인 프레임워크는 하둡이 있으며, 하둡의 필수 핵심 구성 요소는 맵리듀스(MapReduce)와 하둡분산파일시스템(Hadoop Distributed File System)이다.
  3. 빅데이터 처리과정은 크게 수집 → 저장 → 처리 → 시각화(표현) → 분석 순서대로 수행된다.
  4. NoSQL은 관계 데이터 모델을 사용하는 RDBMS 중 하나이다.
(정답률: 74%)
  • 빅데이터를 구현하기 위한 대표적인 프레임워크는 하둡이 있으며, 하둡의 필수 핵심 구성 요소는 맵리듀스(MapReduce)와 하둡분산파일시스템(Hadoop Distributed File System)이다. 이는 빅데이터 처리를 위한 기술적인 구성 요소를 설명한 것으로, 다른 보기들은 빅데이터의 특징이나 처리 과정 등을 설명한 것이다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

19. 최근 컴퓨팅 환경이 클라우드 환경으로 진화됨에 따라 가상화 기술이 중요한 기술로 부각되고 있다. 이에 대한 설명으로 옳지 않은 것은?

  1. 하나의 컴퓨터에 2개 이상의 운영체제 운용이 가능하다.
  2. VM(Virtual Machine)하에서 동작되는 운영체제(Guest OS)는 실 머신에서 동작되는 운영체제보다 효율적이다.
  3. 특정 S/W를 여러 OS플랫폼에서 실행할 수 있어 S/W 이식성이 제고된다.
  4. VM하에서 동작되는 운영체제(Guest OS)의 명령어는 VM명령어로 시뮬레이션되어 실행된다.
(정답률: 69%)
  • "VM(Virtual Machine)하에서 동작되는 운영체제(Guest OS)는 실 머신에서 동작되는 운영체제보다 효율적이다." 이것이 옳지 않은 이유는, VM 하에서 동작되는 운영체제는 하이퍼바이저(Hypervisor)라는 소프트웨어 계층 위에서 동작하기 때문에, 실제 물리적인 하드웨어와의 상호작용이 필요하고, 이로 인해 오버헤드가 발생하여 실 머신에서 동작되는 운영체제보다는 성능이 떨어질 수 있다는 것입니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

20. 다음 C프로그램의 실행 결과는?

  1. a=60 b=70 c=50 d=30
  2. a=60 b=70 c=30 d=40
  3. a=10 b=20 c=50 d=30
  4. a=10 b=20 c=30 d=40
(정답률: 69%)
  • 이 프로그램은 변수 a, b, c, d에 각각 10, 20, 30, 40을 대입하고, 변수 a와 b를 더한 값을 변수 c에 대입하고, 변수 c와 d를 빼서 변수 d에 대입한 후, 변수 a와 b, c, d의 값을 출력하는 프로그램입니다. 따라서, a=60, b=70, c=30, d=40이 됩니다.
profile_image
1

*오류신고 접수시 100포인트 지급해드립니다.

< 이전회차목록 다음회차 >