9급 지방직 공무원 컴퓨터일반 필기 기출문제복원 (2020-06-13)

9급 지방직 공무원 컴퓨터일반
(2020-06-13 기출문제)

목록

1. 인터프리터(Interpreter) 방식의 언어로 옳지 않은 것은?

  1. JavaScript
  2. C
  3. Basic
  4. LISP
(정답률: 57%)
  • C 언어는 컴파일러(Compiler) 방식의 언어이기 때문에, 인터프리터 방식의 언어로 분류되지 않습니다. 다른 보기들은 모두 인터프리터 방식의 언어입니다.
profile_image
1

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

2. CPU 스케줄링 기법 중 라운드 로빈(Round Robin) 방식에 대한 설명으로 옳지 않은 것은?

  1. 선점 스케줄링 기법이다.
  2. 여러 프로세스에 일정한 시간을 할당한다.
  3. 시간할당량이 작으면 문맥 교환수와 오버헤드가 증가한다.
  4. FIFO(First-In-First-Out) 방식 대비 높은 처리량을 제공한다.
(정답률: 66%)
  • 정답은 "FIFO(First-In-First-Out) 방식 대비 높은 처리량을 제공한다." 이다.

    라운드 로빈 방식은 선점 스케줄링 기법 중 하나로, 여러 프로세스에 일정한 시간 할당 후 다음 프로세스로 넘어가는 방식이다. 시간 할당량이 작으면 문맥 교환 수와 오버헤드가 증가하므로 적절한 시간 할당량을 설정해야 한다. 또한, FIFO 방식과 비교했을 때 처리량이 높은 것은 아니지만, 프로세스의 응답 시간을 보장할 수 있어 실시간 시스템에서 많이 사용된다.
profile_image
1

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

3. 프로세서의 수를 늘려도 속도를 개선하는 데 한계가 있다는 주장으로서, 병렬처리 프로세서의 성능 향상의 한계를 지적한 법칙은?

  1. 무어의 법칙(Moore’s Law)
  2. 암달의 법칙(Amdahl’s Law)
  3. 구스타프슨의 법칙(Gustafson’s Law)
  4. 폰노이만 아키텍처(von Neumann Architecture)
(정답률: 52%)
  • 암달의 법칙은 병렬처리 시스템에서 성능 향상을 위해 프로세서의 수를 늘리는 것이 한계가 있다는 것을 지적하는 법칙입니다. 이는 병렬화가 불가능한 부분이 있기 때문입니다. 따라서 프로세서의 수를 늘리는 것만으로는 성능 향상을 무한히 이어갈 수 없다는 것을 의미합니다.
profile_image
1

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

4. 교착상태 발생의 조건에 대한 설명으로 옳지 않은 것은?

  1. 상호 배제 조건:최소한 하나의 자원이 비공유 모드로 점유되며, 비공유 모드에서는 한 번에 한 프로세스만 해당 자원을 사용할 수 있다.
  2. 점유와 대기 조건:프로세스는 최소한 하나의 자원을 점유한 채, 현재 다른 프로세스에 의해 점유된 자원을 추가로 얻기 위해 반드시 대기해야 한다.
  3. 비선점 조건:프로세스에 할당된 자원은 사용이 끝날 때까지 다른 프로세스가 강제로 빼앗을 수 없다.
  4. 순환 대기 조건:대기 체인 내 프로세스들의 집합에서 이전 프로세스는 다음 프로세스가 점유한 자원을 대기하고, 마지막 프로세스는 자원을 대기하지 않아야 한다.
(정답률: 64%)
  • 순환 대기 조건에 대한 설명이 옳지 않습니다. 순환 대기 조건은 대기 체인 내 프로세스들이 자원을 순환하며 대기하는 상황을 말합니다. 이전 프로세스가 다음 프로세스가 점유한 자원을 대기하고, 마지막 프로세스는 자원을 대기하지 않아야 합니다. 이러한 상황이 발생하면 교착상태가 발생합니다.
profile_image
1

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

5. CPU(중앙처리장치)의 성능 향상을 위해 한 명령어 사이클 동안 여러 개의 명령어를 동시에 처리할 수 있도록 설계한 CPU구조는?

  1. 슈퍼스칼라(Superscalar)
  2. 분기 예측(Branch Prediction)
  3. VLIW(Very Long Instruction Word)
  4. SIMD(Single Instruction Multiple Data)
(정답률: 47%)
  • 슈퍼스칼라는 한 명령어 사이클 동안 여러 개의 명령어를 동시에 처리할 수 있도록 설계된 CPU 구조입니다. 이를 위해 여러 개의 실행 유닛을 가지고 있어서 동시에 여러 개의 명령어를 실행할 수 있습니다. 또한 분기 예측 기능을 통해 분기 명령어를 예측하여 미리 실행할 수 있어서 CPU의 성능을 향상시킬 수 있습니다. VLIW나 SIMD는 여러 개의 명령어를 하나의 명령어로 묶어서 처리하는 방식이지만, 슈퍼스칼라는 여러 개의 명령어를 동시에 처리하는 방식입니다.
profile_image
1

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

6. 캐시기억장치 접근시간이 20ns, 주기억장치 접근시간이 150ns, 캐시기억장치 적중률이 80%인 경우에 평균 기억장치 접근시간은? (단, 기억장치는 캐시와 주기억장치로만 구성된다)

  1. 32ns
  2. 46ns
  3. 124ns
  4. 170ns
(정답률: 55%)
  • 캐시기억장치 적중률이 80%이므로, 캐시에 접근하는 경우는 80%이고, 주기억장치에 접근하는 경우는 20%이다. 따라서 평균 기억장치 접근시간은 다음과 같이 계산할 수 있다.

    평균 기억장치 접근시간 = (캐시 접근시간 × 적중률) + (주기억장치 접근시간 × (1 - 적중률))
    = (20ns × 0.8) + (150ns × 0.2)
    = 16ns + 30ns
    = 46ns

    따라서 정답은 "46ns"이다.
profile_image
1

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

7. 아날로그 컴퓨터에 대한 설명으로 옳지 않은 것은?

  1. 입력형식은 부호, 코드화된 숫자, 문자, 기호이다.
  2. 출력형식은 곡선, 그래프 등이다.
  3. 미적분 연산방식을 가지며, 정보처리속도가 빠르다.
  4. 증폭회로 등으로 회로 구성을 한다.
(정답률: 45%)
  • 아날로그 컴퓨터는 입력과 출력이 모두 연속적인 신호로 이루어지기 때문에 "입력형식은 부호, 코드화된 숫자, 문자, 기호이다."는 옳지 않은 설명이다. 입력은 연속적인 아날로그 신호로 이루어지며, 출력도 마찬가지로 연속적인 아날로그 신호로 나타난다. 따라서 입력과 출력은 부호나 코드화된 숫자, 문자, 기호와 같은 디지털 형식이 아니라 연속적인 아날로그 형식으로 이루어진다.
profile_image
1

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

8. RAID(Redundant Array of Inexpensive Disks)에 대한 설명으로 옳지 않은 것은?

  1. RAID-0은 디스크 스트라이핑(Disk Striping) 방식으로 중복 저장과 오류 검출 및 교정이 없는 방식이다.
  2. RAID-1은 디스크 미러링(Disk Mirroring) 방식으로 높은 신뢰도를 갖는다.
  3. RAID-4는 데이터를 비트(bit) 단위로 여러 디스크에 분할하여 저장하는 방식이며, 별도의 패리티(parity) 디스크를 사용한다.
  4. RAID-5는 별도의 패리티 디스크 대신 모든 디스크에 패리티 정보를 나누어 기록하는 방식이다.
(정답률: 59%)
  • RAID-4는 데이터를 비트(bit) 단위로 여러 디스크에 분할하여 저장하는 방식이며, 별도의 패리티(parity) 디스크를 사용하는 것이 맞다. 따라서, "RAID-4는 데이터를 비트(bit) 단위로 여러 디스크에 분할하여 저장하는 방식이며, 별도의 패리티(parity) 디스크를 사용한다."는 옳은 설명이다.
profile_image
1

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

9. 다음 재귀 함수를 동일한 기능의 반복 함수로 바꿀 때, ㉠과 ㉡에 들어갈 내용을 바르게 연결한 것은? (순서대로 ㉠, ㉡)

  1. n < 0, f = f * n--;
  2. n < 0, f = f * n++;
  3. n > 0, f = f * n--;
  4. n > 0, f = f * n++;
(정답률: 60%)
  • ㉠: while(n > 0) { f = f * n; n--; }
    ㉡: while(n > 0) { f *= n--; }

    재귀 함수에서는 n이 0보다 클 때까지 함수를 계속 호출하며 n을 1씩 감소시키면서 f에 n을 곱해나갑니다. 이를 반복문으로 바꾸면 while문을 사용하여 n이 0보다 클 때까지 f에 n을 곱하고 n을 1씩 감소시키면 됩니다. 따라서 ㉠와 ㉡의 내용은 각각 "n > 0, f = f * n; n--;"과 "n > 0, f *= n--;"이 됩니다.

    그리고 "n > 0, f = f * n--;"인 이유는, n이 0보다 클 때까지 반복하면서 n을 1씩 감소시키면서 f에 n을 곱해나가기 때문입니다. n--는 후위 감소 연산자로, 현재 n값을 사용한 후에 n을 1 감소시킵니다. 따라서 n이 5일 때 f에 5를 곱하고 n을 1 감소시킨 후, n이 4일 때 f에 4를 곱하고 n을 1 감소시키는 식으로 계속 진행됩니다.
profile_image
1

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

10. 데이터의 종류 및 처리에 대한 설명으로 옳지 않은 것은?

  1. 크롤링(Crawling)을 통해 얻은 웹문서의 텍스트 데이터는 대표적인 정형 데이터(Structured Data)이다.
  2. XML로 작성된 IoT 센서 데이터는 반정형 데이터(Semi-structured Data)로 분류할 수 있다.
  3. 반정형 데이터는 데이터 구조에 대한 메타 데이터(Meta-data)를 포함한다.
  4. NoSQL과 Hadoop은 대규모 비정형 데이터(Unstructured Data) 처리에 적합하다.
(정답률: 40%)
  • "크롤링(Crawling)을 통해 얻은 웹문서의 텍스트 데이터는 대표적인 정형 데이터(Structured Data)이다."가 옳지 않은 설명이다. 크롤링을 통해 얻은 데이터는 비정형 데이터(Unstructured Data)에 해당한다.
profile_image
1

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

11. 페이지 부재율(Page Fault Ratio)과 스래싱(Trashing)에 대한 설명으로 옳은 것은?

  1. 페이지 부재율이 크면 스래싱이 적게 일어난다.
  2. 페이지 부재율과 스래싱은 전혀 관계가 없다.
  3. 스래싱이 많이 발생하면 페이지 부재율이 감소한다.
  4. 다중 프로그램의 정도가 높을수록 스래싱이 증가한다.
(정답률: 75%)
  • 정답은 "다중 프로그램의 정도가 높을수록 스래싱이 증가한다." 이다.

    다중 프로그램이 많을수록 메모리에 할당된 각 프로그램의 페이지 수가 줄어들게 되고, 이로 인해 페이지 부재율이 증가하게 된다. 이 때, 페이지 부재율이 높아지면 메모리에 존재하는 페이지들이 부족해지게 되고, 이를 해결하기 위해 페이지 교체가 빈번하게 일어나게 된다. 이러한 상황에서 CPU는 페이지 교체에 많은 시간을 소비하게 되고, 이로 인해 실제 작업에 필요한 페이지를 찾는데 시간이 오래 걸리게 된다. 이러한 현상을 스래싱이라고 하며, 다중 프로그램의 정도가 높을수록 스래싱이 증가하게 된다.
profile_image
1

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

12. 전자상거래 관련 기술 중 고객의 요구에 맞춰 자재조달에서부터 생산, 판매, 유통에 이르기까지 공급사슬 전체의 기능통합과 최적화를 지향하는 정보시스템은?

  1. ERP(Enterprise Resource Planning)
  2. EDI(Electronic Data Interchange)
  3. SCM(Supply Chain Management)
  4. KMS(Knowledge Management System)
(정답률: 62%)
  • SCM은 공급사슬 전체의 기능통합과 최적화를 지향하는 정보시스템으로, 자재조달부터 생산, 판매, 유통까지의 모든 과정을 관리하며, 고객의 요구에 맞춰 효율적인 공급망을 구축하여 비용을 절감하고 생산성을 향상시키는 것을 목적으로 합니다. 따라서 SCM은 기업의 경쟁력을 강화하는 중요한 전자상거래 기술 중 하나입니다.
profile_image
1

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

13. 프로토콜과 이에 대응하는 TCP/IP 프로토콜 계층 사이의 연결이 옳지 않은 것은?

  1. HTTP-응용 계층
  2. SMTP-데이터링크 계층
  3. IP-네트워크 계층
  4. UDP-전송 계층
(정답률: 73%)
  • SMTP은 전자 메일을 보내기 위한 프로토콜로, 데이터링크 계층에서는 물리적인 데이터 전송을 담당하므로 SMTP과 데이터링크 계층은 연결될 수 없다. 따라서 SMTP-데이터링크 계층이 옳지 않은 것이다.
profile_image
1

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

14. 관계 데이터베이스 스키마 STUDENT(SNO, NAME, AGE )에 대하여 다음과 같은 SQL 질의 문장을 사용한다고 할 때, 이 SQL 문장과 동일한 의미의 관계대수식은? (단, STUDENT 스키마에서 밑줄 친 속성은 기본키 속성을, 관계대수식에서 사용하는 관계대수 연산자 기호 π는 프로젝트 연산자를, 는 셀렉트 연산자를 나타낸다)

(정답률: 44%)
  • SELECT NAME FROM STUDENT WHERE AGE > 20

    πNAMEAGE>20(STUDENT))

    선택 연산자(σ)를 이용해 AGE가 20보다 큰 학생들을 선택하고, 프로젝트 연산자(π)를 이용해 이름만 추출한다. 따라서 정답은 ""이다.
profile_image
1

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

15. 두 프로토콜 개체 사이에서 흐름제어와 오류제어 및 메시지 전달 등의 기능을 수행하며, 연결성과 비연결성의 두 가지 운용모드를 제공하는 OSI 참조 모델 계층은?

  1. 데이터링크 계층(Datalink Layer)
  2. 네트워크 계층(Network Layer)
  3. 전송 계층(Transport Layer)
  4. 응용 계층(Application Layer)
(정답률: 64%)
  • 전송 계층은 흐름제어와 오류제어를 수행하여 안정적인 데이터 전송을 보장하며, 메시지 전달을 담당하여 데이터의 신뢰성을 유지합니다. 또한 연결성과 비연결성의 두 가지 운용모드를 제공하여 다양한 통신 요구에 대응할 수 있습니다. 따라서 OSI 참조 모델에서는 전송 계층이 데이터를 안정적으로 전송하는 핵심적인 역할을 수행하므로 정답은 "전송 계층"입니다.
profile_image
1

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

16. 소프트웨어 개발 언어에 대한 설명으로 옳지 않은 것은?

  1. C#은 마이크로소프트 닷넷 프레임워크를 지원하는 객체지향 언어이다.
  2. Python은 인터프리터 방식의 객체지향 언어로서 실행시점에 데이터 타입을 결정하는 동적 타이핑 기능을 갖는다.
  3. Kotlin은 그래픽 요소를 강화한 게임 개발 전용 언어이다.
  4. Java는 컴파일된 프로그램이 JVM상에서 인터프리터 방식으로 실행되는 플랫폼 독립적 프로그래밍 언어이다.
(정답률: 59%)
  • Kotlin은 그래픽 요소를 강화한 게임 개발 전용 언어가 아니다. Kotlin은 JVM, Android, JavaScript 등 다양한 플랫폼에서 사용할 수 있는 범용 프로그래밍 언어이다.
profile_image
1

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

17. 소프트웨어 시스템은 기능 관점, 동적 관점 및 정보 관점으로 분류할 수 있다. 동적 관점에서 시스템을 기술할 때 사용할 수 있는 도구로 옳지 않은 것은?

  1. 사건 추적도(Event Trace Diagram)
  2. 자료 흐름도(Data Flow Diagram)
  3. 상태 변화도(State Transition Diagram)
  4. 페트리넷(Petri Net)
(정답률: 38%)
  • 자료 흐름도는 시스템의 정보 관점에서 데이터의 흐름을 나타내는 도구이며, 동적 관점에서는 사용되지 않는다. 따라서 자료 흐름도가 옳지 않은 도구이다.

    간단하게 말해, 자료 흐름도는 시스템의 데이터 흐름을 나타내는 도구이며, 시스템의 동작 과정을 표현하지 않는다. 따라서 동적 관점에서는 사용되지 않는다.
profile_image
1

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

18. 다음에서 설명하는 네트워크 데이터 오류 검출 방법은?

  1. 수직 중복 검사(Vertical Redundancy Check)
  2. 세로 중복 검사(Longitudinal Redundancy Check)
  3. 순환 중복 검사(Cyclic Redundancy Check)
  4. 체크섬(Checksum)
(정답률: 52%)
  • 이 그림에서 사용된 방법은 순환 중복 검사(CRC)입니다. 이 방법은 데이터를 전송하기 전에 추가된 일종의 검사 코드를 이용하여 데이터 오류를 검출하는 방법입니다. 이 검사 코드는 데이터를 나누어서 계산된 값으로, 수신측에서도 같은 방법으로 계산하여 검사 코드가 일치하지 않으면 데이터에 오류가 있다고 판단합니다. 이 방법은 체크섬보다 더 강력하고 신뢰성이 높은 방법입니다.
profile_image
1

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

19. 다음 이진검색트리에서 28을 삭제한 후, 28의 오른쪽 서브트리에 있는 가장 작은 원소로 28을 대치하여 만들어지는 이진검색트리에서 41의 왼쪽 자식 노드는?

  1. 13
  2. 17
  3. 32
  4. 37
(정답률: 53%)
  • 먼저 28을 삭제하면, 28의 오른쪽 서브트리에서 가장 작은 원소는 32이다. 따라서 28을 32로 대치하여 새로운 이진검색트리를 만들면 다음과 같다.
    이제 41의 왼쪽 자식 노드를 찾아야 하는데, 41은 32보다 크기 때문에 오른쪽 서브트리를 탐색해야 한다. 오른쪽 서브트리에서 41보다 작은 가장 큰 원소는 37이므로, 41의 왼쪽 자식 노드는 37이 된다. 따라서 정답은 "37"이다.
profile_image
1

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

20. 다음은 리눅스 환경에서 fork() 시스템 호출을 이용하여 자식 프로세스를 생성하는 C 프로그램이다. 출력 결과로 옳은 것은? (단, “pid = fork();” 문장의 수행 결과 자식 프로세스의 생성을 성공하였다고 가정한다)

  1. b=120, a=6
  2. c=16, b=120
  3. b=120, c=16
  4. a=6, c=16
(정답률: 34%)
  • 정답은 "b=120, a=6"이다.

    fork() 시스템 호출을 통해 자식 프로세스가 생성되면, 부모 프로세스와 자식 프로세스는 동일한 코드를 실행하게 된다. 따라서, 먼저 실행되는 부분은 부모 프로세스에서 실행되는 부분이다.

    부모 프로세스에서는 a와 b를 각각 3과 5로 초기화하고, a에 1을 더한 후 b에 a를 곱한다. 따라서, b는 5 * 4 = 20이 된다. 그리고 자식 프로세스를 생성한 후, a에 1을 더하고 b에 a를 곱한다. 따라서, b는 6 * 21 = 126이 된다.

    자식 프로세스에서는 c와 b를 각각 2와 4로 초기화하고, b에 c를 더한 후 a에 b를 더한다. 따라서, b는 4 + 2 = 6이 되고, a는 20 + 6 = 26이 된다.

    따라서, 최종적으로 부모 프로세스에서는 b가 120이 되고, 자식 프로세스에서는 a가 6이 된다.
profile_image
1

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

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