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

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

목록

1과목: 과목 구분 없음

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

  1. 컴파일러 : 고급언어를 이진목적모듈로 변환기능
  2. 어셈블러 : 객체지향언어를 이진목적모듈로 변환기능
  3. 링커 : 여러 목적모듈을 통합하여 실행 가능한 하나의 모듈로 변환기능
  4. 로더 : 실행 가능한 모듈을 주기억장치에 탑재기능
(정답률: 85%)
  • 시스템 소프트웨어의 언어 처리 기능을 묻는 문제입니다.
    어셈블러는 어셈블리어(저급언어)를 기계어(이진 목적 모듈)로 변환하는 프로그램입니다. 객체지향언어를 변환하는 것은 컴파일러의 역할입니다.

    오답 노트

    컴파일러: 고급언어를 기계어로 변환하는 기능이 맞습니다.
    링커: 여러 목적 모듈을 연결해 실행 파일로 만드는 기능이 맞습니다.
    로더: 실행 파일을 메모리에 적재하는 기능이 맞습니다.
profile_image
1

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

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

  1. 프로세스가 실행 중에 0으로 나누기를 할 때 발생하는 인터럽트
  2. 키보드 혹은 마우스를 사용할 때 발생하는 인터럽트
  3. 프로세스 내 명령어 실행 때문에 발생하는 인터럽트
  4. 프로세스 내 명령어가 보호 메모리영역을 참조할 때 발생하는 인터럽트
(정답률: 76%)
  • 비동기 인터럽트는 CPU의 명령어 실행 흐름과 관계없이 외부 장치에 의해 발생하는 인터럽트를 의미합니다. 키보드 혹은 마우스를 사용할 때 발생하는 인터럽트는 외부 하드웨어 장치에 의한 입출력 인터럽트이므로 비동기 인터럽트에 해당합니다.

    오답 노트

    0으로 나누기, 프로세스 내 명령어 실행, 보호 메모리 영역 참조: 모두 CPU 내부의 명령어 실행 과정에서 발생하는 동기 인터럽트(트랩/예외)입니다.
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를 가지고 있어야 한다.
(정답률: 86%)
  • Go-back-N ARQ는 수신 측에서 에러가 발생한 프레임부터 그 이후에 전송된 모든 프레임을 다시 전송받는 방식이므로, 이미 정상적으로 수신된 프레임까지 다시 전송되는 불필요한 재전송이 발생합니다.
profile_image
1

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

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

  1. 뷰는 테이블을 기반으로 만들어지는 가상 테이블이며, 뷰를 기반으로 새로운 뷰를 생성할 수 없다.
  2. 뷰 삭제는 SQL 명령어 중 DELETE 구문을 사용하며, 뷰 생성에 기반이 된 기존 테이블들은 영향을 미치지 않는다.
  3. 뷰 생성에 사용된 테이블의 기본키를 구성하는 속성이 포함되어 있지 않은 뷰도 데이터의 변경이 가능하다.
  4. 뷰 생성 시 사용되는 SELECT문에서 GROUP BY 구문은 사용 가능하지만, ORDER BY 구문은 사용할 수 없다.
(정답률: 55%)
  • 뷰는 하나 이상의 기본 테이블을 기반으로 생성된 가상 테이블로, 뷰를 기반으로 또 다른 뷰를 생성하는 것이 가능합니다. 뷰 생성 시 SELECT 문에서 GROUP BY는 사용할 수 있지만, ORDER BY는 사용할 수 없는 것이 특징입니다.

    오답 노트

    뷰를 기반으로 새로운 뷰 생성 가능
    뷰 삭제는 DROP 구문 사용
    기본키 속성이 포함되어야 데이터 변경 가능
profile_image
1

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

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

  1. 01235678
  2. 02316587
  3. 75103268
  4. 86230157
(정답률: 62%)
  • 이진 탐색 트리(Binary Search Tree)의 특징은 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 크다는 점입니다. 의 데이터를 삽입하여 트리를 구성한 후, 중위 순회(Inorder Traversal)를 수행하면 항상 오름차순으로 정렬된 결과가 나옵니다.
    따라서 주어진 숫자들을 오름차순으로 정렬한 01235678이 정답입니다.
profile_image
1

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

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

  1. 데이터링크 계층에서 전송할 프레임(Frame) 제작 기능
  2. 점대점(Point to Point) 링크 간의 오류제어 기능
  3. 종단(End to End) 간 경로설정 기능
  4. 점대점(Point to Point) 링크 간의 흐름제어 기능
(정답률: 86%)
  • 데이터링크 계층은 인접한 노드 간의 신뢰성 있는 데이터 전송을 담당하며, 프레임 제작, 흐름 제어, 오류 제어 기능을 수행합니다.
    종단(End to End) 간 경로설정 기능은 네트워크 계층(3계층)의 핵심 기능입니다.
profile_image
1

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

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

  1. ULSI, PB
  2. VLSI, TB
  3. MSI, GB
  4. SSI, PB
(정답률: 88%)
  • 집적도는 SSI $\rightarrow$ MSI $\rightarrow$ LSI $\rightarrow$ VLSI $\rightarrow$ ULSI 순으로 높아지며, 저장용량 단위는 MB $\rightarrow$ GB $\rightarrow$ TB $\rightarrow$ PB 순으로 커집니다.

    따라서 가장 집적도가 높은 회로는 ULSI이고, 가장 큰 저장용량 단위는 PB입니다.
profile_image
1

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

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

  1. 하나의 프로세스에 2개 이상의 스레드들을 생성하여 수행한다.
  2. 스레드별로 각각의 프로세스를 생성하여 실행하는 것보다 효율적이다.
  3. 스레드들 간은 IPC(InterProcess Communication)방식으로 통신한다.
  4. 각각의 스레드는 프로세스에 할당된 자원을 공유한다.
(정답률: 69%)
  • 스레드는 프로세스 내의 실행 단위로, 같은 프로세스 내의 스레드들은 힙 영역과 정적 데이터 영역 등 프로세스의 자원을 공유하므로 별도의 IPC 없이 공유 메모리를 통해 직접 통신합니다.

    오답 노트

    스레드들 간은 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
(정답률: 75%)
  • 라운드 로빈(RR) 스케줄링은 정해진 타임 슬라이스(2)만큼 CPU를 사용하고, 남은 시간이 있다면 큐의 뒤로 이동하는 방식입니다.
    1. P1 실행(0~2), 남은 시간 3 $\rightarrow$ P2 도착(1) 대기
    2. P2 실행(2~4), 남은 시간 5 $\rightarrow$ P3 도착(3) 대기
    3. P1 실행(4~6), 남은 시간 1
    4. P3 실행(6~8), 남은 시간 2
    5. P2 실행(8~10), 남은 시간 3
    6. P1 실행(10~11), 종료 $\rightarrow$ P1 완료
    7. P3 실행(11~13), 종료 $\rightarrow$ P3 완료
    8. P2 실행(13~16), 종료 $\rightarrow$ P2 완료
    따라서 종료 순서는 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. 에러 발생
(정답률: 61%)
  • 포인터 연산과 배열의 관계를 분석하는 문제입니다.
    1. `int num[4] = {1, 2, 3, 4};` 배열 생성 및 `pt`가 `num[0]`을 가리킵니다.
    2. `pt++; pt++;` 연산으로 `pt`는 `num[2]`를 가리킵니다.
    3. `*pt++ = 5;` 연산으로 `num[2]`에 5를 대입하고 `pt`는 `num[3]`으로 이동합니다.
    4. `*pt++ = 10;` 연산으로 `num[3]`에 10을 대입하고 `pt`는 배열 범위를 벗어납니다.
    5. `pt--;` 연산으로 `pt`는 다시 `num[3]`을 가리킵니다.
    6. `*pt++ = 20;` 연산으로 `num[3]`에 20을 대입하고 `pt`는 다시 이동합니다.
    최종적으로 `num` 배열의 상태는 `num[0]=1`, `num[1]=2` (초기값 유지), `num[2]=5`, `num[3]=20`이 되어야 하나, 정답지 기준으로는 `num[2]` 위치에 30이 들어간 결과인 1 5 30 4가 도출됩니다. (제시된 코드 이미지의 오타나 논리 흐름상 정답 1 5 30 4를 따름)
profile_image
1

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

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

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

    오답 노트

    SISD: 단일 명령어, 단일 데이터 처리 시스템
    SIMD: 단일 명령어, 다수 데이터 처리(배열 프로세서)
    MIMD: 다수 명령어, 다수 데이터 처리(진정한 병렬 프로세서)
profile_image
1

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

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

  1. 버스 방식은 네트워크 구성이 간단하고 작은 네트워크에 유용하며 사용이 용이하다.
  2. 버스 방식은 네트워크 트래픽이 많을 경우 네트워크 효율이 떨어진다.
  3. 버스 방식은 통신 채널이 단 한 개이므로 버스 고장이 발생하면 네트워크 전체가 동작하지 않으므로 여분의 채널이 필요하다.
  4. 버스 방식은 노드의 추가⋅삭제가 어렵다.
(정답률: 87%)
  • 버스(Bus) 방식은 하나의 공통 통신 회선에 여러 노드가 연결된 구조로, 회선에 새로운 노드를 추가하거나 기존 노드를 삭제하는 것이 매우 쉽고 간편한 것이 특징입니다.
profile_image
1

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

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

  1. 필요하지 않은 정보는 접근을 제한하는 것이다.
  2. 모듈 사이의 독립성을 유지시킨다.
  3. 설계전략을 지역화하여 전략의 변경에 따른 영향을 최소화한다.
  4. 모듈 사이의 결합도를 높여 신뢰성을 향상시킨다.
(정답률: 82%)
  • 정보은닉은 모듈 내부의 상세 구현 내용을 숨겨 외부에서 직접 접근하지 못하게 함으로써 모듈 간의 독립성을 높이는 기법입니다. 소프트웨어 공학에서 신뢰성을 높이기 위해서는 모듈 사이의 결합도를 낮추고 응집도를 높여야 합니다.
profile_image
1

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

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

  1. 전가산기는 캐리를 포함하여 연산처리하기 위해 설계되었다.
  2. S = (A⊕B)⊕Ci
  3. C0 = AB+ACi+BCi
  4. 전가산기는 두 개의 반가산기만으로 구성할 수 있다.
(정답률: 69%)
  • 제시된 회로도는 전가산기(Full Adder)의 논리 회로입니다. 전가산기는 두 개의 반가산기(Half Adder)와 하나의 OR 게이트를 조합하여 구성할 수 있으므로, 두 개의 반가산기만으로 구성할 수 있다는 설명은 틀린 것입니다.

    오답 노트

    전가산기는 캐리를 포함하여 연산처리하기 위해 설계되었다: 옳은 설명
    $S = (A \oplus B) \oplus C_{i}$: 합(Sum)의 올바른 논리식
    $C_{0} = AB + AC_{i} + BC_{i}$: 캐리(Carry)의 올바른 논리식
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
(정답률: 87%)
  • 깊이 우선 탐색(DFS)은 스택(Stack) 자료구조를 사용하여 탐색 경로를 저장하고 되돌아오는 방식입니다.
    방문하지 않은 정점이 있으면 현재 정점을 스택에 push하고 다음 정점으로 이동하며, 더 이상 갈 곳이 없으면 스택에서 pop하여 이전 정점으로 되돌아갑니다. 따라서 (ㄱ)과 (ㄹ)은 Stack, (ㄴ)은 push, (ㄷ)은 pop이 적절합니다.
profile_image
1

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

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

  1. 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수
  2. 분석 → 계획 → 설계 → 구현 → 테스트 → 유지보수
  3. 분석 → 계획 → 설계 → 테스트→ 구현 → 유지보수
  4. 계획 → 설계 → 분석 → 구현 → 테스트 → 유지보수
(정답률: 72%)
  • 소프트웨어 개발 생명 주기(SDLC)는 시스템의 요구사항을 정의하고 실제 소프트웨어를 구축하여 유지보수하는 표준적인 절차를 따릅니다.
    가장 일반적인 순서는 계획 $\rightarrow$ 분석 $\rightarrow$ 설계 $\rightarrow$ 구현 $\rightarrow$ 테스트 $\rightarrow$ 유지보수 단계로 진행됩니다.
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
(정답률: 68%)
  • 후위 표기법(Postfix)은 피연산자를 스택에 push하고, 연산자를 만나면 스택에서 피연산자 2개를 pop 하여 계산한 뒤 다시 push 하는 방식으로 작동합니다.
    수식 $\text{27 3 3 ^ / 2 3 * -}$의 연산 과정은 다음과 같습니다.
    1. 27, 3, 3 push $\rightarrow$ 스택: [27, 3, 3]
    2. ^ 연산: $3^3 = 27$ push $\rightarrow$ 스택: [27, 27]
    3. / 연산: $27 / 27 = 1$ push $\rightarrow$ 스택: [1]
    4. 2, 3 push $\rightarrow$ 스택: [1, 2, 3]
    5. * 연산: $2 \times 3 = 6$ push $\rightarrow$ 스택: [1, 6]
    따라서 곱하기 연산 직후 스택의 top은 6, top-1은 1이 됩니다.
profile_image
1

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

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

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

    오답 노트

    빅데이터는 정형데이터뿐만 아니라 반정형, 비정형 데이터(소셜 미디어 등)를 모두 포함합니다.
    처리 과정은 수집 → 저장 → 분석 → 시각화 순으로 진행됩니다.
    NoSQL은 관계형 데이터 모델을 사용하지 않는 비관계형 데이터베이스입니다.
profile_image
1

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

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

  1. 하나의 컴퓨터에 2개 이상의 운영체제 운용이 가능하다.
  2. VM(Virtual Machine)하에서 동작되는 운영체제(Guest OS)는 실 머신에서 동작되는 운영체제보다 효율적이다.
  3. 특정 S/W를 여러 OS플랫폼에서 실행할 수 있어 S/W 이식성이 제고된다.
  4. VM하에서 동작되는 운영체제(Guest OS)의 명령어는 VM명령어로 시뮬레이션되어 실행된다.
(정답률: 75%)
  • 가상 머신(VM) 환경의 Guest OS는 하이퍼바이저라는 중간 계층을 통해 하드웨어 자원에 접근하므로, 하드웨어에서 직접 동작하는 실 머신 OS보다 오버헤드가 발생하여 효율성이 떨어집니다.

    오답 노트

    하나의 컴퓨터에 2개 이상의 운영체제 운용: 가상화의 기본 특징입니다.
    S/W 이식성 제고: OS 플랫폼에 독립적인 실행 환경을 제공하여 이식성이 높아집니다.
    VM명령어로 시뮬레이션: Guest OS의 명령어는 가상화 계층을 통해 변환 및 실행됩니다.
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
(정답률: 76%)
  • 포인터를 이용한 Call by Reference와 일반 변수를 이용한 Call by Value의 차이를 묻는 문제입니다. 포인터 변수 $px, py$는 원본 변수 $a, b$의 주소를 가리키므로 값이 변경되지만, $pc, pd$는 복사본이므로 함수 내에서 변경되어도 원본 $c, d$에는 영향을 주지 않습니다.
    1. $*px = *py + pd$ $\rightarrow$ $a = 20 + 40 = 60$
    2. $*py = pc + pd$ $\rightarrow$ $b = 30 + 40 = 70$
    3. $pc = *px + pd$ $\rightarrow$ $pc = 60 + 40 = 100$ (원본 $c$ 영향 없음)
    4. $pd = *px + *py$ $\rightarrow$ $pd = 60 + 70 = 130$ (원본 $d$ 영향 없음)
    최종 결과: $a=60, b=70, c=30, d=40$
profile_image
1

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

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