[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차
법원직 9급 전산·사서 컴퓨터일반 기출문제

26년 1회차

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

1 / 1
A4정답 포함
법원직 9급 전산·사서 컴퓨터일반 기출문제모두CBT · moducbt.com

26년 1회차

총 25문항 · 객관식 · 정답·해설 포함
문제 1
다음 중 전 가상화(full virtualization) 기반의 가상머신 방식과 비교해서 컨테이너 방식이 가지는 장점으로 가장 적절한 것은?
1게스트 OS를 포함하지 않고 호스트 OS 커널을 공유하므로 오버헤드가 적고 시작 속도가 빠르다.
2하드웨어를 완전히 에뮬레이션하므로 보안 격리 수준이 가상머신 방식보다 높다.
3서로 다른 커널 버전의 OS를 하나의 호스트 위에서 자유롭게 실행할 수 있다.
4하드웨어와 호스트 OS 사이에 하이퍼바이저(hypervisor)를 배치하여 자원을 효율적으로 분배한다.
정답 및 해설

컨테이너의 장점은 호스트 OS 커널을 공유해 오버헤드가 적고 시작이 빠르다는 점이다.

가상머신은 인스턴스마다 게스트 OS를 통째로 부팅하지만, 컨테이너는 게스트 OS 없이 프로세스 격리만으로 동작하므로 가볍다.

  • 하드웨어 완전 에뮬레이션과 높은 격리 수준: 가상머신 쪽의 특징이다. 커널을 공유하는 컨테이너는 격리가 오히려 약하다.
  • 서로 다른 커널 버전의 OS 실행: 호스트 커널 하나를 함께 쓰는 컨테이너로는 불가능하고, 가상머신이 가능한 일이다.
  • 하이퍼바이저를 통한 자원 분배: 가상머신의 구성 요소이며, 컨테이너는 컨테이너 런타임이 관리한다.
문제 2
수강 정보를 관리하기 위한 [수강] 테이블을 아래와 같이 설계하려고 한다. 다음 중 [수강] 테이블의 STUDENT_ID가 [학생] 테이블에 존재하는 학생만을 참조하도록 보장하기 위한 가장 적절한 모델링 방법은?
[학생] 테이블
STUDENT_ID, STUDENT_NAME
[수강] 테이블
ENROLLMENT_ID, STUDENT_ID, COURSE_ID
1[수강] 테이블에 STUDENT_ID 대신 학생의 이름을 직접 저장하여 중복 관리한다.
2[수강] 테이블의 STUDENT_ID를 [학생] 테이블과 관계없는 독립적인 후보키(Candidate Key)로 지정하여 운용한다.
3[수강] 테이블의 STUDENT_ID를 [학생] 테이블을 참조하는 기본키(Primary Key)로 선언하여 두 테이블을 하나의 키로 통합한다.
4[수강] 테이블의 STUDENT_ID를 [학생] 테이블의 기본키인 STUDENT_ID를 참조하는 외래키(Foreign Key)로 정의한다.
정답 및 해설

[수강].STUDENT_ID를 [학생]의 기본키를 참조하는 외래키(Foreign Key)로 정의해야 한다.

외래키는 참조되는 테이블에 있는 값만 입력되도록 DBMS가 강제하는 참조 무결성 제약이다.

  • 학생 이름을 직접 저장: 데이터가 중복되고, 존재하는 학생인지 보장하는 제약도 생기지 않는다.
  • 관계없는 독립 후보키로 지정: 후보키는 자기 테이블 안의 유일성만 보장하므로 [학생]의 값을 참조하지 못한다.
  • STUDENT_ID를 기본키로 선언해 통합: 수강 내역에서 STUDENT_ID가 유일해져 한 학생이 한 과목만 수강할 수 있게 된다.
문제 3
입력 데이터의 크기가 5×5이고, 3×3 크기의 커널(필터)을 사용하여 패딩(Padding) 없이 스트라이드(Stride)를 1로 설정하여 합성곱(Convolution) 연산을 수행하였다. 다음 <보기> 중 이에 관한 설명으로 옳은 것을 모두 고른 것은?
< 보 기 >
ㄱ.출력되는 특징 맵(Feature Map)의 크기는 2×2이다.
ㄴ.커널(필터)을 이동시키는 간격인 스트라이드(Stride) 값을 크게 할수록 출력 특징 맵의 크기는 작아진다.
ㄷ.합성곱 전후의 크기를 동일하게 맞추기 위해 입력 데이터의 외곽에 특정 값을 채워 넣는 패딩 방법을 수행해야 한다.
ㄹ.합성곱 연산은 커널(필터)의 각 요소와 입력 데이터의 대응 요소를 각각 곱한 9개 값의 평균을 계산하는 방식이다.
1ㄱ, ㄴ
2ㄴ, ㄷ
3ㄷ, ㄹ
4ㄱ, ㄹ
정답 및 해설

옳은 설명은 스트라이드 효과를 말한 ㄴ과 패딩의 역할을 말한 ㄷ이다.

출력 크기 = (입력 − 커널 + 2 × 패딩) ÷ 스트라이드 + 1 이다.
(5−3+0)÷1+1=3(5-3+0)\div 1+1=3

  • ㄱ: 출력 특징 맵의 크기는 2×2가 아니라 3×3이다.
  • ㄹ: 합성곱은 대응 요소끼리 곱한 값의 평균이 아니라 합을 구하는 연산이다.
문제 4
비어 있는 최소힙(min heap)에 다음과 같은 데이터를 차례로 삽입했을 때 루트 노드의 오른쪽 자식노드에 존재하는 값은 얼마인가?
15, 3, 27, 1
11
23
315
427
정답 및 해설

삽입을 마친 뒤 루트의 오른쪽 자식에 있는 값은 27이다.

최소힙은 맨 끝에 넣은 뒤 부모보다 작으면 교환하며 올린다.
15 삽입: [15]
3 삽입: 15와 교환해 [3, 15]
27 삽입: 교환 없이 [3, 15, 27]
1 삽입: 15의 자식으로 들어가 15, 3과 차례로 교환해 [1, 3, 27, 15]

  • 1: 가장 작은 값이라 루트에 있다.
  • 3: 루트의 왼쪽 자식에 있다.
  • 15: 3의 왼쪽 자식으로 내려가 있다.
문제 5
교착상태(Deadlock)에 관한 다음 설명 중 가장 옳지 않은 것은?
1점유하며 대기(Hold and wait) 조건은 최소 하나의 자원을 보유한 상태에서, 타인이 점유한 추가 자원을 얻기 위해 대기하는 상태를 말한다.
2비선점(No preemption) 조건을 방지하는 방식은 자원 요청 시 즉시 할당이 불가하다면, 보유 자원을 모두 해제하고 필요 자원 확보 시에만 재시작한다.
3은행원 알고리즘(Banker’s Algorithm)은 최대 자원 요구량을 미리 선언하며, 시스템이 안전 상태를 유지할 수 있을 때만 자원을 배분한다.
4교착상태를 해소하기 위해 항상 가장 많은 자원을 점유한 프로세스를 먼저 종료하고, 종료된 프로세스에게 할당된 모든 자원을 회수한다.
정답 및 해설

틀린 설명은 항상 가장 많은 자원을 점유한 프로세스를 먼저 종료한다는 내용이다.

희생 프로세스는 자원 점유량만으로 정해지지 않고, 우선순위·수행 시간·복구 비용 등을 고려해 최소 비용이 되도록 고른다.

  • 점유하며 대기: 자원을 보유한 채 추가 자원을 기다리는 상태라는 정의가 맞다.
  • 비선점 방지: 즉시 할당받지 못하면 보유 자원을 내놓게 하여 사실상 선점을 허용하는 방식이다.
  • 은행원 알고리즘: 최대 요구량을 미리 선언받고 안전 상태가 유지될 때만 할당하는 회피 기법이다.
문제 6
다음 C 언어 프로그램의 실행결과로 옳은 것은?
#include <stdio.h>
int main()
{ char a[] = "KOREA";
char *p = &a[1];
*(p+3) = 'D';
p++;
printf("%s", p);
}
1READ
2KORED
3RED
4KOREA
정답 및 해설

문자열이 KORED로 바뀐 뒤 a[2]부터 출력되므로 결과는 RED이다.

p = &a[1] 이므로 p는 'O'를 가리킨다.
*(p+3) = 'D' 는 a[4]를 바꾸어 a가 KORED가 된다.
p++ 로 p는 a[2]인 'R'을 가리킨다.
%s는 그 위치부터 널 문자 전까지 출력한다.

  • READ: 'D'는 뒤에 덧붙는 것이 아니라 a[4]의 'A'를 덮어쓰므로 나올 수 없다.
  • KORED: a[0]부터 출력할 때의 값인데, p는 a[2]를 가리킨다.
  • KOREA: 원래 문자열로, 수정과 포인터 이동이 모두 빠진 값이다.
문제 7
메모리 참조의 2가지 지역성(locality)에 관한 아래 설명에서 괄호 안에 들어갈 표현으로 가장 옳은 것은?
•시간지역성(temporal locality): ( 가 ) 사용된 데이터가 가까운 미래에 다시 사용될 가능성이 높은 성질
•공간지역성(spatial locality): 특정 위치의 데이터가 사용되었을 때, ( 나 ) 위치의 데이터가 가까운 미래에 사용될 가능성이 높은 성질
1(가) 최근에(recently) / (나) 동일한(same)
2(가) 최근에(recently) / (나) 인접한(nearby)
3(가) 빈번히(frequently) / (나) 인접한(nearby)
4(가) 빈번히(frequently) / (나) 동일한(same)
정답 및 해설

(가)는 최근에, (나)는 인접한이 들어간다.

시간지역성은 방금 쓴 데이터를 곧 다시 쓰는 성질이고, 공간지역성은 쓴 데이터의 주변을 곧 쓰는 성질이다. 배열 순차 접근이 공간지역성의 대표 예이다.

  • 최근에 / 동일한: 동일한 위치를 다시 쓰는 것은 시간지역성의 내용이라 공간지역성 설명에 맞지 않는다.
  • 빈번히 / 인접한: 시간지역성의 기준은 사용 빈도가 아니라 사용 시점이다.
  • 빈번히 / 동일한: 두 괄호 모두 지역성의 정의와 어긋난다.
문제 8
[도서] 테이블에서 출판사별 평균 가격이 20,000원 이상인 출판사의 출판사명과 평균 가격을 검색하고자 한다. 또한 결과는 평균 가격이 높은 순서대로 출력하려고 한다.
다음 SQL문에서 빈칸 ( )에 들어갈 내용으로 가장 적절한 것은?
SELECT 출판사명, AVG(가격) FROM 도서 ( ) ORDER BY AVG(가격) DESC;
1GROUP BY 가격 HAVING 출판사명 >= 20000
2HAVING AVG(가격) >= 20000 WHERE 출판사명
3WHERE AVG(가격) >= 20000 GROUP BY 출판사명
4GROUP BY 출판사명 HAVING AVG(가격) >= 20000
정답 및 해설

출판사별로 묶고 그룹 조건을 거는 GROUP BY 출판사명 HAVING AVG(가격) >= 20000이 알맞다.

집계 함수에 대한 조건은 그룹을 만든 뒤에 적용하므로 HAVING을 쓰고, 절의 순서는 WHERE → GROUP BY → HAVING → ORDER BY이다.

  • GROUP BY 가격 HAVING 출판사명 >= 20000: 출판사가 아니라 가격으로 묶었고, 문자열인 출판사명을 금액과 비교한다.
  • HAVING AVG(가격) >= 20000 WHERE 출판사명: HAVING이 WHERE보다 앞에 올 수 없고, WHERE에 조건식도 없다.
  • WHERE AVG(가격) >= 20000 GROUP BY 출판사명: WHERE 절에는 집계 함수를 쓸 수 없다.
문제 9
다음과 같이 정의된 C 언어 함수들을 가정할 때, 아래의 for-반복문이 실행되는 동안 함수 decr()이 호출되는 횟수는 몇 번인가?
#include <stdio.h>
long min(long x, long y) { return x < y ? x : y; }
long max(long x, long y) { return x < y ? y : x; }
void decr(long *xp, long v) { *xp -= v; }
long sq(long x) { return x*x; }
void main() {
long x = 20, y = 50, t = 0, i;
for (i = max(x, y) - 1; i >= min(x, y); decr(&i, 1))
t += sq(i);
}
120
230
340
450
정답 및 해설

decr()은 반복 본문이 끝날 때마다 한 번씩 호출되므로 총 30회 호출된다.

i의 초기값은 max(20, 50) − 1 = 49이고, 반복 조건은 i >= 20이다.
본문 실행 횟수: 49−20+1=3049-20+1=30

for 문의 증감식은 조건이 참이어서 본문을 수행한 뒤에만 실행된다. i가 19가 되는 마지막 decr() 호출까지 포함해 호출 수와 본문 실행 수가 같다.

문제 10
다음 C 언어 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h>
int main() {
int data[] = {10, 20, 30, 40, 50};
int *ptr = data;
ptr++;
*ptr += 5;
printf("%d", *(ptr+1) + *(ptr));
return 0;
}
135
250
355
475
정답 및 해설

*(ptr+1)이 30, *ptr이 25이므로 출력값은 55이다.

ptr = data 이므로 ptr은 data[0]을 가리킨다.
ptr++ 로 data[1]을 가리킨다.
*ptr += 5 로 data[1]이 20에서 25로 바뀐다.
30+25=5530+25=55

값 20을 그대로 더하면 50이 되지만, 앞 문장에서 data[1]이 이미 25로 바뀌었으므로 맞지 않다.

문제 11
클라우드 컴퓨팅에 관한 다음 설명 중 가장 옳지 않은 것은?
1IaaS(Infrastructure as a Service) 환경에서 소비자는 가상 서버와 네트워크 등 인프라 자원을 제공받으며, 해당 자원의 설정과 운영에 대한 직접적인 제어권과 관리 책임을 갖는다.
2PaaS(Platform as a Service)는 완성된 소프트웨어를 서비스로 제공하는 모델로, 소비자는 제공되는 기능만을 이용하며 전체적인 컴퓨팅 자원에 대해 매우 제한적인 관리 제어 권한을 갖는다.
3자원 풀링(Resource Pooling)은 물리 및 가상 자원을 하나의 풀로 관리하며, 소비자의 수요에 따라 자원을 동적으로 할당하는 방식으로, 일반적으로 통계적 다중화 방식을 기반으로 운영된다.
4가상화(Virtualization)는 물리 자원을 가상 자원으로 전환시키는 과정으로, 물리 서버는 가상 서버로, 물리 스토리지는 가상 디스크로 추상화되어 사용자에게 제공된다.
정답 및 해설

틀린 설명은 PaaS를 완성된 소프트웨어 제공 모델이라고 한 내용이다.

그 설명은 SaaS에 해당한다. PaaS는 개발·실행 플랫폼을 제공하며, 소비자는 그 위에 자신의 애플리케이션을 배포하고 제어한다.

  • IaaS: 가상 서버·네트워크 같은 인프라를 받아 소비자가 설정과 운영을 맡는다는 설명이 맞다.
  • 자원 풀링: 자원을 풀로 묶어 수요에 따라 동적으로 할당하고 통계적 다중화를 활용한다.
  • 가상화: 물리 서버와 스토리지를 가상 서버와 가상 디스크로 추상화해 제공한다.
문제 12
분산 시스템(distributed system)이 가지는 특징으로 다음 설명 중 가장 옳지 않은 것은?
1여러 개의 단위 시스템들이 네트워크를 통해 상호 간 연결되어 있는 시스템이다.
2각 단위 시스템들은 CPU, 메모리 및 운영체제(operating system)를 탑재하여 독립적으로 동작할 수 있도록 한다.
3분산 시스템의 전체 상태를 유지하고 관리하는 중앙 서버를 두어야 한다.
4활용 분야에 따라 그에 맞는 수준의 투명성(transparency)을 제공할 수 있어야 한다.
정답 및 해설

틀린 설명은 중앙 서버를 반드시 두어야 한다는 내용이다.

분산 시스템은 중앙 관리 서버가 필수가 아니며, P2P 구조처럼 노드들이 메시지 교환과 합의로 상태를 유지할 수도 있다. 중앙 서버 의존은 오히려 단일 장애점이 될 수 있다.

  • 네트워크 연결: 여러 단위 시스템이 네트워크로 연결된다는 것이 분산 시스템의 기본 정의이다.
  • 독립적 동작: 각 단위 시스템은 자체 CPU·메모리·운영체제를 갖추어 독립적으로 동작한다.
  • 투명성: 사용자에게 하나의 시스템처럼 보이도록 용도에 맞는 수준의 투명성을 제공해야 한다.
문제 13
이진 탐색 트리에 관한 다음 설명 중 가장 옳지 않은 것은?
1모든 노드는 키를 가지며, 그 키는 유일한 값을 가진다.
2부모 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 부모노드의 키보다 작다.
3자식 노드가 두 개인 경우, 삭제된 노드의 자식을 삭제된 노드의 자리에 위치시킨다.
4균형 탐색 트리(balanced search tree)는 최악의 상황에도 탐색 시간 복잡도 을 보장한다.
정답 및 해설

틀린 설명은 자식이 둘인 노드를 삭제할 때 자식을 그 자리에 올린다는 내용이다.

자식이 둘이면 왼쪽 서브트리의 최댓값이나 오른쪽 서브트리의 최솟값으로 대체해야 한다. 자식을 바로 올리는 것은 자식이 하나일 때의 처리이다.

  • 키의 유일성: 이진 탐색 트리의 정의에서 모든 노드는 유일한 키를 가진다.
  • 왼쪽 서브트리: 부모보다 작은 키만 모인다는 설명이 맞다.
  • 균형 탐색 트리: 높이를 로그 수준으로 유지하므로 최악에도 탐색 시간이 O(log⁡n)O(\log n)이다.
문제 14
기억장치 계층 구조 및 반도체 메모리(DRAM, SRAM)의 특성에 관한 다음 설명 중 옳은 것을 모두 고른 것은?
ㄱ.보조기억장치(Auxiliary Memory)는 대용량이지만 주기억장치보다 느리고 저렴하다.
ㄴ.SRAM(Static RAM)은 플립플롭(Flip-flop)을 사용하여 재충전(Refresh)이 필요없고 전원 공급 시 데이터가 유지된다.
ㄷ.DRAM(Dynamic RAM)은 SRAM에 비해 속도가 더 빨라서 주로 높은 속도가 필요한 캐시로 사용된다.
ㄹ.기억장치의 상위 계층(CPU에 가까운 쪽)일수록 접근 속도는 빠르나 용량은 작고 비트 당 가격은 비싸진다.
1ㄱ, ㄴ
2ㄱ, ㄴ, ㄹ
3ㄴ, ㄷ, ㄹ
4ㄱ, ㄴ, ㄷ, ㄹ
정답 및 해설

옳은 설명은 ㄱ, ㄴ, ㄹ이고, DRAM을 SRAM보다 빠르다고 한 ㄷ만 틀렸다.

캐시에 쓰이는 것은 더 빠른 SRAM이고, DRAM은 집적도가 높고 저렴해 주기억장치에 쓰인다.

  • ㄱ: 보조기억장치는 주기억장치보다 용량이 크고 느리며 저렴하다.
  • ㄴ: SRAM은 플립플롭으로 저장해 재충전 없이 전원이 있는 동안 데이터를 유지한다.
  • ㄹ: CPU에 가까운 계층일수록 빠르고, 용량은 작고, 비트당 가격은 비싸다.
문제 15
최신 ICT 기술 및 패러다임에 관한 다음 설명 중 가장 옳지 않은 것은?
1공간 컴퓨팅(Spatial Computing)은 가상․증강현실 기술을 기반으로 디지털 정보와 물리적 공간을 결합하여 상호작용하는 기술이다.
2대규모 언어모델(Large Language Model)은 방대한 텍스트를 학습하여 인간 수준의 자연스러운 언어 생성과 추론을 수행한다.
3소버린 클라우드(Sovereign Cloud)는 국가적 데이터 주권을 보호하기 위해 해당 국가의 법령과 규제 요건을 엄격히 준수하는 모델이다.
4인물 합성 기술(Deepfake)은 생성형 대립 신경망(GAN)을 활용하며, 두 신경망이 협력하여 데이터의 평균값으로 인물을 합성한다.
정답 및 해설

틀린 설명은 딥페이크의 GAN에서 두 신경망이 협력해 평균값으로 합성한다는 내용이다.

GAN은 가짜를 만드는 생성자와 진위를 가리는 판별자가 경쟁하며 학습하고, 이 과정에서 실제와 비슷한 데이터를 생성한다.

  • 공간 컴퓨팅: 가상·증강현실을 기반으로 디지털 정보와 물리 공간을 결합하는 기술이다.
  • 대규모 언어모델: 방대한 텍스트를 학습해 자연스러운 언어 생성과 추론을 수행한다.
  • 소버린 클라우드: 데이터 주권을 지키기 위해 해당 국가의 법령과 규제 요건을 준수하는 모델이다.
문제 16
한 시스템에 3개의 프로세스 P1, P2, P3가 존재하며, 이들이 준비 큐(ready queue)에 도착하는 시간이 각각 0, 1, 4이고, 이 때 이들이 사용할 CPU burst time이 각각 5, 4, 2라 가정한다. 시간 할당량(time quantum) 3인 RR(Round-Robin) 스케줄링 기법을 사용할 경우 이들이 CPU burst를 모두 완료할 때까지 CPU를 할당받는 순서로 옳은 것은?
1P1 → P2 → P3
2P3 → P2 → P1
3P1 → P2 → P3 → P1 → P2
4P1 → P2 → P1 → P3 → P2
정답 및 해설

CPU 할당 순서는 P1 → P2 → P1 → P3 → P2이다.

0~3: P1 실행, 2 남음. 1에 도착한 P2가 큐에 있고 P1이 그 뒤로 간다.
3~6: P2 실행, 1 남음. 4에 P3가 도착해 P1 뒤에 서고, P2는 P3 뒤로 간다.
6~8: P1 실행 후 완료
8~10: P3 실행 후 완료
10~11: P2 실행 후 완료

핵심은 시각 6에 큐가 P1, P3, P2 순서라는 점이다. 시각 3에 P1이 큐로 돌아갈 때 P3는 아직 도착하지 않아 P1이 P3보다 앞선다.

  • P1 → P2 → P3: P1과 P2의 남은 시간이 처리되지 않은 순서이다.
  • P3 → P2 → P1: 도착 시각이 가장 늦은 P3가 처음 실행될 수 없다.
  • P1 → P2 → P3 → P1 → P2: P1이 P3보다 먼저 큐에 들어간 점을 놓친 순서이다.
문제 17
인공지능 모델의 데이터 처리 방식에 관한 다음 설명 중 가장 옳지 않은 것은?
1합성곱신경망(CNN)은 이미지의 공간적 특징(spatial feature)을 추출하는 데에 최적화되어 있어 객체 인식 등에 주로 사용된다.
2트랜스포머(transformer)는 문장 내 단어 간의 관계를 파악하는 어텐션(attention) 메커니즘을 통해 자연어처리 분야에서 널리 사용된다.
3순환신경망(RNN)은 병렬처리에 효율적이어서 대규모 시계열 데이터를 빠르게 처리하는 데에 널리 사용된다.
4멀티모달(multimodal) AI는 텍스트, 이미지, 오디오 등 서로 다른 형태의 데이터를 통합적으로 학습하여 복합적인 정보를 처리한다.
정답 및 해설

틀린 설명은 RNN이 병렬처리에 효율적이라는 내용이다.

RNN은 앞 시점의 은닉 상태를 받아 다음 시점을 계산하므로 순차 처리가 필요해 병렬화가 어렵다.

  • CNN: 공간적 특징 추출에 강해 객체 인식 등에 주로 쓰인다.
  • 트랜스포머: 어텐션으로 단어 간 관계를 파악해 자연어처리에 널리 쓰인다.
  • 멀티모달 AI: 텍스트·이미지·오디오 등 서로 다른 형태의 데이터를 통합해 학습한다.
문제 18
소프트웨어 생명 주기(SDLC) 모형 중 나선형(Spiral) 모형의 특징으로 다음 설명 중 가장 옳은 것은?
1시스템의 핵심 기능을 실험적으로 만들어 사용자에게 보여주고 평가하게 한다.
2개발의 각 단계 사이에 결과물이 있어 명확히 구분되며 이전 작업으로 돌아가는 재작업이 없다.
3제약조건 결정, 위험 요소 분석 및 해결, 개발과 평가, 다음 단계 계획의 4단계를 반복하며 개발한다.
4프로젝트에 대한 피드백을 빨리 받고 방향을 평가하기 위해 짧은 사이클을 반복하며 실행 가능한 소프트웨어를 개발한다.
정답 및 해설

나선형 모형은 위험 분석을 포함한 4단계를 반복하는 모형이다.

목표·제약조건 결정, 위험 분석, 개발과 평가, 다음 단계 계획을 나선처럼 돌며 점진적으로 완성해, 위험 관리가 가장 큰 특징이다.

  • 핵심 기능을 실험적으로 만들어 평가: 프로토타이핑 모형의 설명이다.
  • 단계가 명확하고 재작업 없음: 폭포수 모형의 설명이다.
  • 짧은 사이클로 실행 가능한 소프트웨어 개발: 애자일 방식의 설명이다.
문제 19
소프트웨어 유지보수의 4가지 유형 중 다음 <보기>에 해당하는 작업으로 가장 옳은 것은?
< 보 기 >
한 기업에서 사용 중인 급여 관리 시스템이 기존 Windows 10 환경에서 최신 운영체제인 Windows 11로 업그레이드됨에 따라, 시스템이 새로운 운영체제 환경에서도 오류 없이 정상적으로 동작할 수 있도록 내부 코드를 수정하고 환경 설정을 변경하였다.
1수정(Corrective) 유지보수
2적응(Adaptive) 유지보수
3완전(Perfective) 유지보수
4예방(Preventive) 유지보수
정답 및 해설

운영체제 변경에 맞춰 코드를 고친 작업은 적응(Adaptive) 유지보수이다.

적응 유지보수는 운영체제·하드웨어 같은 외부 환경 변화에 소프트웨어를 맞추는 활동이다.

  • 수정 유지보수: 사용 중 발견된 결함을 고치는 활동이다.
  • 완전 유지보수: 기능 추가나 성능 개선처럼 사용자 요구를 반영하는 활동이다.
  • 예방 유지보수: 앞으로 생길 문제를 막으려고 구조를 미리 개선하는 활동이다.
문제 20
머신러닝(Machine Learning)의 학습 방식에 관한 다음 설명 중 가장 옳은 것은?
1지도학습은 정답(Label)이 없는 데이터를 분석하여 데이터 내부의 유용한 패턴이나 군집을 찾는다.
2비지도학습의 대표적인 응용은 데이터를 여러 범주 중 하나로 나누는 분류와 연속적인 값을 예측하는 회귀 분석이다.
3전이학습은 라벨링이 된 대량의 데이터로만 처음부터 끝까지 학습시키는 방법이다.
4강화학습은 환경과 상호작용하여 보상을 최대화하는 방향으로 스스로 학습하는 방식이다.
정답 및 해설

옳은 설명은 강화학습에 대한 내용이다.

강화학습은 에이전트가 행동하고 환경에서 받은 보상이 최대가 되도록 정책을 스스로 개선한다.

  • 정답 없는 데이터에서 패턴·군집 탐색: 지도학습이 아니라 비지도학습의 설명이다.
  • 분류와 회귀: 비지도학습이 아니라 지도학습의 대표 응용이다.
  • 대량의 라벨 데이터로 처음부터 학습: 전이학습은 이미 학습된 모델의 지식을 새 문제에 재사용하는 방법이다.
문제 21
다음 릴레이션 학생(R)과 수강(S)이 주어졌을 때, 아래 관계대수식을 수행한 최종 결과값으로 옳은 것은?
[학생(R) 릴레이션][수강(S) 릴레이션]
학번이름학과
101김영희컴퓨터
102박철수전자
103홍길동컴퓨터
학번과목성적
101DBA
101OSB
102DBA
103DBB

1{김영희}
2{김영희, 박철수}
3{김영희, 홍길동}
4{김영희, 박철수, 홍길동}
문제 22
다음 정렬(sorting) 기법들 중 평균 시간 복잡도(average time complexity)가 이 아닌 기법은?
1병합 정렬(merge sort)
2힙 정렬(heap sort)
3삽입 정렬(insertion sort)
4퀵 정렬(quick sort)
정답 및 해설

평균 시간 복잡도가 O(nlog⁡n)O(n \log n)이 아닌 것은 삽입 정렬이다.

삽입 정렬은 각 원소를 앞쪽 정렬 구간과 비교해 끼워 넣으므로 평균 O(n2)O(n^2)이다.

  • 병합 정렬: 절반씩 나누어 병합하므로 평균과 최악 모두 O(nlog⁡n)O(n \log n)이다.
  • 힙 정렬: 삭제와 재정렬을 원소 수만큼 반복해 평균 O(nlog⁡n)O(n \log n)이다.
  • 퀵 정렬: 최악은 O(n2)O(n^2)이지만 평균은 O(nlog⁡n)O(n \log n)이다.
문제 23
Python 언어의 리스트(list), 튜플(tuple), 집합(set) 자료형에 관한 다음 설명 중 가장 옳지 않은 것은?
1[1, 2, 3]은 리스트에 해당하며 (1, 2, 3)은 튜플에 해당한다.
2하나의 리스트가 다른 리스트의 원소가 될 수 있다.
3리스트나 튜플에서는 인덱싱(indexing)이 가능하지만 집합에서는 인덱싱이 불가능하다.
4리스트의 원소값은 변경할 수 없으나 튜플의 원소값은 변경할 수 있다.
정답 및 해설

틀린 설명은 리스트는 변경 불가, 튜플은 변경 가능이라는 내용으로, 두 자료형의 성질이 뒤바뀌었다.

리스트는 원소를 바꿀 수 있는 가변(mutable) 자료형이고, 튜플은 바꿀 수 없는 불변(immutable) 자료형이다.

  • 대괄호와 소괄호 표기: 대괄호는 리스트, 소괄호는 튜플이 맞다.
  • 리스트의 중첩: 리스트 안에 다른 리스트를 원소로 넣을 수 있다.
  • 인덱싱: 순서가 있는 리스트와 튜플은 가능하고, 순서가 없는 집합은 불가능하다.
문제 24
다음 데이터베이스 트랜잭션의 4가지 특성(ACID) 중 “트랜잭션의 실행이 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.”는 성질로 옳은 것은?
1원자성(Atomicity)
2일관성(Consistency)
3고립성(Isolation)
4지속성(Durability)
정답 및 해설

모두 반영되거나 전혀 반영되지 않아야 하는 성질은 원자성(Atomicity)이다.

원자성은 트랜잭션을 더 나눌 수 없는 하나의 단위로 다루는 성질로, All or Nothing으로 요약한다.

  • 일관성: 트랜잭션 전후에 데이터베이스가 무결성 제약을 지키는 성질이다.
  • 고립성: 동시에 실행되는 트랜잭션이 서로 간섭하지 않는 성질이다.
  • 지속성: 완료된 트랜잭션의 결과가 장애 후에도 유지되는 성질이다.
문제 25
암 진단 모델에서 실제 암 환자 100명 중 90명을 암 환자로 찾아냈고, 정상인 100명 중 20명을 암 환자로 오진했다면, 이 모델의 재현율(recall)과 정밀도(precision)로 옳은 것은?(단, 결과 수치는 소수점 셋째 자리에서 반올림하여 표기함)
1재현율 0.90 / 정밀도 0.82
2재현율 0.90 / 정밀도 0.85
3재현율 0.85 / 정밀도 0.90
4재현율 0.82 / 정밀도 0.90
정답 및 해설

재현율은 0.90, 정밀도는 0.82이다.

TP = 90, FN = 10, FP = 20이다.
재현율 = TP ÷ (TP + FN): 9090+10=0.90\dfrac{90}{90+10}=0.90
정밀도 = TP ÷ (TP + FP): 9090+20≈0.82\dfrac{90}{90+20}\approx 0.82

  • 재현율 0.90 / 정밀도 0.85: 정밀도 계산값과 다르다.
  • 재현율 0.85 / 정밀도 0.90: 두 값 모두 계산 결과와 다르다.
  • 재현율 0.82 / 정밀도 0.90: 두 지표의 값이 서로 뒤바뀌었다.
법원직 9급 전산·사서 컴퓨터일반 기출문제모두CBT · moducbt.com
26년 1회차
총 25문항 · 객관식 · 정답·해설 포함
문제 1
다음 중 전 가상화(full virtualization) 기반의 가상머신 방식과 비교해서 컨테이너 방식이 가지는 장점으로 가장 적절한 것은?
1게스트 OS를 포함하지 않고 호스트 OS 커널을 공유하므로 오버헤드가 적고 시작 속도가 빠르다.
2하드웨어를 완전히 에뮬레이션하므로 보안 격리 수준이 가상머신 방식보다 높다.
3서로 다른 커널 버전의 OS를 하나의 호스트 위에서 자유롭게 실행할 수 있다.
4하드웨어와 호스트 OS 사이에 하이퍼바이저(hypervisor)를 배치하여 자원을 효율적으로 분배한다.
정답 및 해설

컨테이너의 장점은 호스트 OS 커널을 공유해 오버헤드가 적고 시작이 빠르다는 점이다.

가상머신은 인스턴스마다 게스트 OS를 통째로 부팅하지만, 컨테이너는 게스트 OS 없이 프로세스 격리만으로 동작하므로 가볍다.

  • 하드웨어 완전 에뮬레이션과 높은 격리 수준: 가상머신 쪽의 특징이다. 커널을 공유하는 컨테이너는 격리가 오히려 약하다.
  • 서로 다른 커널 버전의 OS 실행: 호스트 커널 하나를 함께 쓰는 컨테이너로는 불가능하고, 가상머신이 가능한 일이다.
  • 하이퍼바이저를 통한 자원 분배: 가상머신의 구성 요소이며, 컨테이너는 컨테이너 런타임이 관리한다.
문제 2
수강 정보를 관리하기 위한 [수강] 테이블을 아래와 같이 설계하려고 한다. 다음 중 [수강] 테이블의 STUDENT_ID가 [학생] 테이블에 존재하는 학생만을 참조하도록 보장하기 위한 가장 적절한 모델링 방법은?
[학생] 테이블
STUDENT_ID, STUDENT_NAME
[수강] 테이블
ENROLLMENT_ID, STUDENT_ID, COURSE_ID
1[수강] 테이블에 STUDENT_ID 대신 학생의 이름을 직접 저장하여 중복 관리한다.
2[수강] 테이블의 STUDENT_ID를 [학생] 테이블과 관계없는 독립적인 후보키(Candidate Key)로 지정하여 운용한다.
3[수강] 테이블의 STUDENT_ID를 [학생] 테이블을 참조하는 기본키(Primary Key)로 선언하여 두 테이블을 하나의 키로 통합한다.
4[수강] 테이블의 STUDENT_ID를 [학생] 테이블의 기본키인 STUDENT_ID를 참조하는 외래키(Foreign Key)로 정의한다.
정답 및 해설

[수강].STUDENT_ID를 [학생]의 기본키를 참조하는 외래키(Foreign Key)로 정의해야 한다.

외래키는 참조되는 테이블에 있는 값만 입력되도록 DBMS가 강제하는 참조 무결성 제약이다.

  • 학생 이름을 직접 저장: 데이터가 중복되고, 존재하는 학생인지 보장하는 제약도 생기지 않는다.
  • 관계없는 독립 후보키로 지정: 후보키는 자기 테이블 안의 유일성만 보장하므로 [학생]의 값을 참조하지 못한다.
  • STUDENT_ID를 기본키로 선언해 통합: 수강 내역에서 STUDENT_ID가 유일해져 한 학생이 한 과목만 수강할 수 있게 된다.
문제 3
입력 데이터의 크기가 5×5이고, 3×3 크기의 커널(필터)을 사용하여 패딩(Padding) 없이 스트라이드(Stride)를 1로 설정하여 합성곱(Convolution) 연산을 수행하였다. 다음 <보기> 중 이에 관한 설명으로 옳은 것을 모두 고른 것은?
< 보 기 >
ㄱ.출력되는 특징 맵(Feature Map)의 크기는 2×2이다.
ㄴ.커널(필터)을 이동시키는 간격인 스트라이드(Stride) 값을 크게 할수록 출력 특징 맵의 크기는 작아진다.
ㄷ.합성곱 전후의 크기를 동일하게 맞추기 위해 입력 데이터의 외곽에 특정 값을 채워 넣는 패딩 방법을 수행해야 한다.
ㄹ.합성곱 연산은 커널(필터)의 각 요소와 입력 데이터의 대응 요소를 각각 곱한 9개 값의 평균을 계산하는 방식이다.
1ㄱ, ㄴ
2ㄴ, ㄷ
3ㄷ, ㄹ
4ㄱ, ㄹ
정답 및 해설

옳은 설명은 스트라이드 효과를 말한 ㄴ과 패딩의 역할을 말한 ㄷ이다.

출력 크기 = (입력 − 커널 + 2 × 패딩) ÷ 스트라이드 + 1 이다.
(5−3+0)÷1+1=3(5-3+0)\div 1+1=3

  • ㄱ: 출력 특징 맵의 크기는 2×2가 아니라 3×3이다.
  • ㄹ: 합성곱은 대응 요소끼리 곱한 값의 평균이 아니라 합을 구하는 연산이다.
문제 4
비어 있는 최소힙(min heap)에 다음과 같은 데이터를 차례로 삽입했을 때 루트 노드의 오른쪽 자식노드에 존재하는 값은 얼마인가?
15, 3, 27, 1
11
23
315
427
정답 및 해설

삽입을 마친 뒤 루트의 오른쪽 자식에 있는 값은 27이다.

최소힙은 맨 끝에 넣은 뒤 부모보다 작으면 교환하며 올린다.
15 삽입: [15]
3 삽입: 15와 교환해 [3, 15]
27 삽입: 교환 없이 [3, 15, 27]
1 삽입: 15의 자식으로 들어가 15, 3과 차례로 교환해 [1, 3, 27, 15]

  • 1: 가장 작은 값이라 루트에 있다.
  • 3: 루트의 왼쪽 자식에 있다.
  • 15: 3의 왼쪽 자식으로 내려가 있다.
문제 5
교착상태(Deadlock)에 관한 다음 설명 중 가장 옳지 않은 것은?
1점유하며 대기(Hold and wait) 조건은 최소 하나의 자원을 보유한 상태에서, 타인이 점유한 추가 자원을 얻기 위해 대기하는 상태를 말한다.
2비선점(No preemption) 조건을 방지하는 방식은 자원 요청 시 즉시 할당이 불가하다면, 보유 자원을 모두 해제하고 필요 자원 확보 시에만 재시작한다.
3은행원 알고리즘(Banker’s Algorithm)은 최대 자원 요구량을 미리 선언하며, 시스템이 안전 상태를 유지할 수 있을 때만 자원을 배분한다.
4교착상태를 해소하기 위해 항상 가장 많은 자원을 점유한 프로세스를 먼저 종료하고, 종료된 프로세스에게 할당된 모든 자원을 회수한다.
정답 및 해설

틀린 설명은 항상 가장 많은 자원을 점유한 프로세스를 먼저 종료한다는 내용이다.

희생 프로세스는 자원 점유량만으로 정해지지 않고, 우선순위·수행 시간·복구 비용 등을 고려해 최소 비용이 되도록 고른다.

  • 점유하며 대기: 자원을 보유한 채 추가 자원을 기다리는 상태라는 정의가 맞다.
  • 비선점 방지: 즉시 할당받지 못하면 보유 자원을 내놓게 하여 사실상 선점을 허용하는 방식이다.
  • 은행원 알고리즘: 최대 요구량을 미리 선언받고 안전 상태가 유지될 때만 할당하는 회피 기법이다.
문제 6
다음 C 언어 프로그램의 실행결과로 옳은 것은?
#include <stdio.h>
int main()
{ char a[] = "KOREA";
char *p = &a[1];
*(p+3) = 'D';
p++;
printf("%s", p);
}
1READ
2KORED
3RED
4KOREA
정답 및 해설

문자열이 KORED로 바뀐 뒤 a[2]부터 출력되므로 결과는 RED이다.

p = &a[1] 이므로 p는 'O'를 가리킨다.
*(p+3) = 'D' 는 a[4]를 바꾸어 a가 KORED가 된다.
p++ 로 p는 a[2]인 'R'을 가리킨다.
%s는 그 위치부터 널 문자 전까지 출력한다.

  • READ: 'D'는 뒤에 덧붙는 것이 아니라 a[4]의 'A'를 덮어쓰므로 나올 수 없다.
  • KORED: a[0]부터 출력할 때의 값인데, p는 a[2]를 가리킨다.
  • KOREA: 원래 문자열로, 수정과 포인터 이동이 모두 빠진 값이다.
문제 7
메모리 참조의 2가지 지역성(locality)에 관한 아래 설명에서 괄호 안에 들어갈 표현으로 가장 옳은 것은?
•시간지역성(temporal locality): ( 가 ) 사용된 데이터가 가까운 미래에 다시 사용될 가능성이 높은 성질
•공간지역성(spatial locality): 특정 위치의 데이터가 사용되었을 때, ( 나 ) 위치의 데이터가 가까운 미래에 사용될 가능성이 높은 성질
1(가) 최근에(recently) / (나) 동일한(same)
2(가) 최근에(recently) / (나) 인접한(nearby)
3(가) 빈번히(frequently) / (나) 인접한(nearby)
4(가) 빈번히(frequently) / (나) 동일한(same)
정답 및 해설

(가)는 최근에, (나)는 인접한이 들어간다.

시간지역성은 방금 쓴 데이터를 곧 다시 쓰는 성질이고, 공간지역성은 쓴 데이터의 주변을 곧 쓰는 성질이다. 배열 순차 접근이 공간지역성의 대표 예이다.

  • 최근에 / 동일한: 동일한 위치를 다시 쓰는 것은 시간지역성의 내용이라 공간지역성 설명에 맞지 않는다.
  • 빈번히 / 인접한: 시간지역성의 기준은 사용 빈도가 아니라 사용 시점이다.
  • 빈번히 / 동일한: 두 괄호 모두 지역성의 정의와 어긋난다.
문제 8
[도서] 테이블에서 출판사별 평균 가격이 20,000원 이상인 출판사의 출판사명과 평균 가격을 검색하고자 한다. 또한 결과는 평균 가격이 높은 순서대로 출력하려고 한다.
다음 SQL문에서 빈칸 ( )에 들어갈 내용으로 가장 적절한 것은?
SELECT 출판사명, AVG(가격) FROM 도서 ( ) ORDER BY AVG(가격) DESC;
1GROUP BY 가격 HAVING 출판사명 >= 20000
2HAVING AVG(가격) >= 20000 WHERE 출판사명
3WHERE AVG(가격) >= 20000 GROUP BY 출판사명
4GROUP BY 출판사명 HAVING AVG(가격) >= 20000
정답 및 해설

출판사별로 묶고 그룹 조건을 거는 GROUP BY 출판사명 HAVING AVG(가격) >= 20000이 알맞다.

집계 함수에 대한 조건은 그룹을 만든 뒤에 적용하므로 HAVING을 쓰고, 절의 순서는 WHERE → GROUP BY → HAVING → ORDER BY이다.

  • GROUP BY 가격 HAVING 출판사명 >= 20000: 출판사가 아니라 가격으로 묶었고, 문자열인 출판사명을 금액과 비교한다.
  • HAVING AVG(가격) >= 20000 WHERE 출판사명: HAVING이 WHERE보다 앞에 올 수 없고, WHERE에 조건식도 없다.
  • WHERE AVG(가격) >= 20000 GROUP BY 출판사명: WHERE 절에는 집계 함수를 쓸 수 없다.
문제 9
다음과 같이 정의된 C 언어 함수들을 가정할 때, 아래의 for-반복문이 실행되는 동안 함수 decr()이 호출되는 횟수는 몇 번인가?
#include <stdio.h>
long min(long x, long y) { return x < y ? x : y; }
long max(long x, long y) { return x < y ? y : x; }
void decr(long *xp, long v) { *xp -= v; }
long sq(long x) { return x*x; }
void main() {
long x = 20, y = 50, t = 0, i;
for (i = max(x, y) - 1; i >= min(x, y); decr(&i, 1))
t += sq(i);
}
120
230
340
450
정답 및 해설

decr()은 반복 본문이 끝날 때마다 한 번씩 호출되므로 총 30회 호출된다.

i의 초기값은 max(20, 50) − 1 = 49이고, 반복 조건은 i >= 20이다.
본문 실행 횟수: 49−20+1=3049-20+1=30

for 문의 증감식은 조건이 참이어서 본문을 수행한 뒤에만 실행된다. i가 19가 되는 마지막 decr() 호출까지 포함해 호출 수와 본문 실행 수가 같다.

문제 10
다음 C 언어 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h>
int main() {
int data[] = {10, 20, 30, 40, 50};
int *ptr = data;
ptr++;
*ptr += 5;
printf("%d", *(ptr+1) + *(ptr));
return 0;
}
135
250
355
475
정답 및 해설

*(ptr+1)이 30, *ptr이 25이므로 출력값은 55이다.

ptr = data 이므로 ptr은 data[0]을 가리킨다.
ptr++ 로 data[1]을 가리킨다.
*ptr += 5 로 data[1]이 20에서 25로 바뀐다.
30+25=5530+25=55

값 20을 그대로 더하면 50이 되지만, 앞 문장에서 data[1]이 이미 25로 바뀌었으므로 맞지 않다.

문제 11
클라우드 컴퓨팅에 관한 다음 설명 중 가장 옳지 않은 것은?
1IaaS(Infrastructure as a Service) 환경에서 소비자는 가상 서버와 네트워크 등 인프라 자원을 제공받으며, 해당 자원의 설정과 운영에 대한 직접적인 제어권과 관리 책임을 갖는다.
2PaaS(Platform as a Service)는 완성된 소프트웨어를 서비스로 제공하는 모델로, 소비자는 제공되는 기능만을 이용하며 전체적인 컴퓨팅 자원에 대해 매우 제한적인 관리 제어 권한을 갖는다.
3자원 풀링(Resource Pooling)은 물리 및 가상 자원을 하나의 풀로 관리하며, 소비자의 수요에 따라 자원을 동적으로 할당하는 방식으로, 일반적으로 통계적 다중화 방식을 기반으로 운영된다.
4가상화(Virtualization)는 물리 자원을 가상 자원으로 전환시키는 과정으로, 물리 서버는 가상 서버로, 물리 스토리지는 가상 디스크로 추상화되어 사용자에게 제공된다.
정답 및 해설

틀린 설명은 PaaS를 완성된 소프트웨어 제공 모델이라고 한 내용이다.

그 설명은 SaaS에 해당한다. PaaS는 개발·실행 플랫폼을 제공하며, 소비자는 그 위에 자신의 애플리케이션을 배포하고 제어한다.

  • IaaS: 가상 서버·네트워크 같은 인프라를 받아 소비자가 설정과 운영을 맡는다는 설명이 맞다.
  • 자원 풀링: 자원을 풀로 묶어 수요에 따라 동적으로 할당하고 통계적 다중화를 활용한다.
  • 가상화: 물리 서버와 스토리지를 가상 서버와 가상 디스크로 추상화해 제공한다.
문제 12
분산 시스템(distributed system)이 가지는 특징으로 다음 설명 중 가장 옳지 않은 것은?
1여러 개의 단위 시스템들이 네트워크를 통해 상호 간 연결되어 있는 시스템이다.
2각 단위 시스템들은 CPU, 메모리 및 운영체제(operating system)를 탑재하여 독립적으로 동작할 수 있도록 한다.
3분산 시스템의 전체 상태를 유지하고 관리하는 중앙 서버를 두어야 한다.
4활용 분야에 따라 그에 맞는 수준의 투명성(transparency)을 제공할 수 있어야 한다.
정답 및 해설

틀린 설명은 중앙 서버를 반드시 두어야 한다는 내용이다.

분산 시스템은 중앙 관리 서버가 필수가 아니며, P2P 구조처럼 노드들이 메시지 교환과 합의로 상태를 유지할 수도 있다. 중앙 서버 의존은 오히려 단일 장애점이 될 수 있다.

  • 네트워크 연결: 여러 단위 시스템이 네트워크로 연결된다는 것이 분산 시스템의 기본 정의이다.
  • 독립적 동작: 각 단위 시스템은 자체 CPU·메모리·운영체제를 갖추어 독립적으로 동작한다.
  • 투명성: 사용자에게 하나의 시스템처럼 보이도록 용도에 맞는 수준의 투명성을 제공해야 한다.
문제 13
이진 탐색 트리에 관한 다음 설명 중 가장 옳지 않은 것은?
1모든 노드는 키를 가지며, 그 키는 유일한 값을 가진다.
2부모 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 부모노드의 키보다 작다.
3자식 노드가 두 개인 경우, 삭제된 노드의 자식을 삭제된 노드의 자리에 위치시킨다.
4균형 탐색 트리(balanced search tree)는 최악의 상황에도 탐색 시간 복잡도 을 보장한다.
정답 및 해설

틀린 설명은 자식이 둘인 노드를 삭제할 때 자식을 그 자리에 올린다는 내용이다.

자식이 둘이면 왼쪽 서브트리의 최댓값이나 오른쪽 서브트리의 최솟값으로 대체해야 한다. 자식을 바로 올리는 것은 자식이 하나일 때의 처리이다.

  • 키의 유일성: 이진 탐색 트리의 정의에서 모든 노드는 유일한 키를 가진다.
  • 왼쪽 서브트리: 부모보다 작은 키만 모인다는 설명이 맞다.
  • 균형 탐색 트리: 높이를 로그 수준으로 유지하므로 최악에도 탐색 시간이 O(log⁡n)O(\log n)이다.
문제 14
기억장치 계층 구조 및 반도체 메모리(DRAM, SRAM)의 특성에 관한 다음 설명 중 옳은 것을 모두 고른 것은?
ㄱ.보조기억장치(Auxiliary Memory)는 대용량이지만 주기억장치보다 느리고 저렴하다.
ㄴ.SRAM(Static RAM)은 플립플롭(Flip-flop)을 사용하여 재충전(Refresh)이 필요없고 전원 공급 시 데이터가 유지된다.
ㄷ.DRAM(Dynamic RAM)은 SRAM에 비해 속도가 더 빨라서 주로 높은 속도가 필요한 캐시로 사용된다.
ㄹ.기억장치의 상위 계층(CPU에 가까운 쪽)일수록 접근 속도는 빠르나 용량은 작고 비트 당 가격은 비싸진다.
1ㄱ, ㄴ
2ㄱ, ㄴ, ㄹ
3ㄴ, ㄷ, ㄹ
4ㄱ, ㄴ, ㄷ, ㄹ
정답 및 해설

옳은 설명은 ㄱ, ㄴ, ㄹ이고, DRAM을 SRAM보다 빠르다고 한 ㄷ만 틀렸다.

캐시에 쓰이는 것은 더 빠른 SRAM이고, DRAM은 집적도가 높고 저렴해 주기억장치에 쓰인다.

  • ㄱ: 보조기억장치는 주기억장치보다 용량이 크고 느리며 저렴하다.
  • ㄴ: SRAM은 플립플롭으로 저장해 재충전 없이 전원이 있는 동안 데이터를 유지한다.
  • ㄹ: CPU에 가까운 계층일수록 빠르고, 용량은 작고, 비트당 가격은 비싸다.
문제 15
최신 ICT 기술 및 패러다임에 관한 다음 설명 중 가장 옳지 않은 것은?
1공간 컴퓨팅(Spatial Computing)은 가상․증강현실 기술을 기반으로 디지털 정보와 물리적 공간을 결합하여 상호작용하는 기술이다.
2대규모 언어모델(Large Language Model)은 방대한 텍스트를 학습하여 인간 수준의 자연스러운 언어 생성과 추론을 수행한다.
3소버린 클라우드(Sovereign Cloud)는 국가적 데이터 주권을 보호하기 위해 해당 국가의 법령과 규제 요건을 엄격히 준수하는 모델이다.
4인물 합성 기술(Deepfake)은 생성형 대립 신경망(GAN)을 활용하며, 두 신경망이 협력하여 데이터의 평균값으로 인물을 합성한다.
정답 및 해설

틀린 설명은 딥페이크의 GAN에서 두 신경망이 협력해 평균값으로 합성한다는 내용이다.

GAN은 가짜를 만드는 생성자와 진위를 가리는 판별자가 경쟁하며 학습하고, 이 과정에서 실제와 비슷한 데이터를 생성한다.

  • 공간 컴퓨팅: 가상·증강현실을 기반으로 디지털 정보와 물리 공간을 결합하는 기술이다.
  • 대규모 언어모델: 방대한 텍스트를 학습해 자연스러운 언어 생성과 추론을 수행한다.
  • 소버린 클라우드: 데이터 주권을 지키기 위해 해당 국가의 법령과 규제 요건을 준수하는 모델이다.
문제 16
한 시스템에 3개의 프로세스 P1, P2, P3가 존재하며, 이들이 준비 큐(ready queue)에 도착하는 시간이 각각 0, 1, 4이고, 이 때 이들이 사용할 CPU burst time이 각각 5, 4, 2라 가정한다. 시간 할당량(time quantum) 3인 RR(Round-Robin) 스케줄링 기법을 사용할 경우 이들이 CPU burst를 모두 완료할 때까지 CPU를 할당받는 순서로 옳은 것은?
1P1 → P2 → P3
2P3 → P2 → P1
3P1 → P2 → P3 → P1 → P2
4P1 → P2 → P1 → P3 → P2
정답 및 해설

CPU 할당 순서는 P1 → P2 → P1 → P3 → P2이다.

0~3: P1 실행, 2 남음. 1에 도착한 P2가 큐에 있고 P1이 그 뒤로 간다.
3~6: P2 실행, 1 남음. 4에 P3가 도착해 P1 뒤에 서고, P2는 P3 뒤로 간다.
6~8: P1 실행 후 완료
8~10: P3 실행 후 완료
10~11: P2 실행 후 완료

핵심은 시각 6에 큐가 P1, P3, P2 순서라는 점이다. 시각 3에 P1이 큐로 돌아갈 때 P3는 아직 도착하지 않아 P1이 P3보다 앞선다.

  • P1 → P2 → P3: P1과 P2의 남은 시간이 처리되지 않은 순서이다.
  • P3 → P2 → P1: 도착 시각이 가장 늦은 P3가 처음 실행될 수 없다.
  • P1 → P2 → P3 → P1 → P2: P1이 P3보다 먼저 큐에 들어간 점을 놓친 순서이다.
문제 17
인공지능 모델의 데이터 처리 방식에 관한 다음 설명 중 가장 옳지 않은 것은?
1합성곱신경망(CNN)은 이미지의 공간적 특징(spatial feature)을 추출하는 데에 최적화되어 있어 객체 인식 등에 주로 사용된다.
2트랜스포머(transformer)는 문장 내 단어 간의 관계를 파악하는 어텐션(attention) 메커니즘을 통해 자연어처리 분야에서 널리 사용된다.
3순환신경망(RNN)은 병렬처리에 효율적이어서 대규모 시계열 데이터를 빠르게 처리하는 데에 널리 사용된다.
4멀티모달(multimodal) AI는 텍스트, 이미지, 오디오 등 서로 다른 형태의 데이터를 통합적으로 학습하여 복합적인 정보를 처리한다.
정답 및 해설

틀린 설명은 RNN이 병렬처리에 효율적이라는 내용이다.

RNN은 앞 시점의 은닉 상태를 받아 다음 시점을 계산하므로 순차 처리가 필요해 병렬화가 어렵다.

  • CNN: 공간적 특징 추출에 강해 객체 인식 등에 주로 쓰인다.
  • 트랜스포머: 어텐션으로 단어 간 관계를 파악해 자연어처리에 널리 쓰인다.
  • 멀티모달 AI: 텍스트·이미지·오디오 등 서로 다른 형태의 데이터를 통합해 학습한다.
문제 18
소프트웨어 생명 주기(SDLC) 모형 중 나선형(Spiral) 모형의 특징으로 다음 설명 중 가장 옳은 것은?
1시스템의 핵심 기능을 실험적으로 만들어 사용자에게 보여주고 평가하게 한다.
2개발의 각 단계 사이에 결과물이 있어 명확히 구분되며 이전 작업으로 돌아가는 재작업이 없다.
3제약조건 결정, 위험 요소 분석 및 해결, 개발과 평가, 다음 단계 계획의 4단계를 반복하며 개발한다.
4프로젝트에 대한 피드백을 빨리 받고 방향을 평가하기 위해 짧은 사이클을 반복하며 실행 가능한 소프트웨어를 개발한다.
정답 및 해설

나선형 모형은 위험 분석을 포함한 4단계를 반복하는 모형이다.

목표·제약조건 결정, 위험 분석, 개발과 평가, 다음 단계 계획을 나선처럼 돌며 점진적으로 완성해, 위험 관리가 가장 큰 특징이다.

  • 핵심 기능을 실험적으로 만들어 평가: 프로토타이핑 모형의 설명이다.
  • 단계가 명확하고 재작업 없음: 폭포수 모형의 설명이다.
  • 짧은 사이클로 실행 가능한 소프트웨어 개발: 애자일 방식의 설명이다.
문제 19
소프트웨어 유지보수의 4가지 유형 중 다음 <보기>에 해당하는 작업으로 가장 옳은 것은?
< 보 기 >
한 기업에서 사용 중인 급여 관리 시스템이 기존 Windows 10 환경에서 최신 운영체제인 Windows 11로 업그레이드됨에 따라, 시스템이 새로운 운영체제 환경에서도 오류 없이 정상적으로 동작할 수 있도록 내부 코드를 수정하고 환경 설정을 변경하였다.
1수정(Corrective) 유지보수
2적응(Adaptive) 유지보수
3완전(Perfective) 유지보수
4예방(Preventive) 유지보수
정답 및 해설

운영체제 변경에 맞춰 코드를 고친 작업은 적응(Adaptive) 유지보수이다.

적응 유지보수는 운영체제·하드웨어 같은 외부 환경 변화에 소프트웨어를 맞추는 활동이다.

  • 수정 유지보수: 사용 중 발견된 결함을 고치는 활동이다.
  • 완전 유지보수: 기능 추가나 성능 개선처럼 사용자 요구를 반영하는 활동이다.
  • 예방 유지보수: 앞으로 생길 문제를 막으려고 구조를 미리 개선하는 활동이다.
문제 20
머신러닝(Machine Learning)의 학습 방식에 관한 다음 설명 중 가장 옳은 것은?
1지도학습은 정답(Label)이 없는 데이터를 분석하여 데이터 내부의 유용한 패턴이나 군집을 찾는다.
2비지도학습의 대표적인 응용은 데이터를 여러 범주 중 하나로 나누는 분류와 연속적인 값을 예측하는 회귀 분석이다.
3전이학습은 라벨링이 된 대량의 데이터로만 처음부터 끝까지 학습시키는 방법이다.
4강화학습은 환경과 상호작용하여 보상을 최대화하는 방향으로 스스로 학습하는 방식이다.
정답 및 해설

옳은 설명은 강화학습에 대한 내용이다.

강화학습은 에이전트가 행동하고 환경에서 받은 보상이 최대가 되도록 정책을 스스로 개선한다.

  • 정답 없는 데이터에서 패턴·군집 탐색: 지도학습이 아니라 비지도학습의 설명이다.
  • 분류와 회귀: 비지도학습이 아니라 지도학습의 대표 응용이다.
  • 대량의 라벨 데이터로 처음부터 학습: 전이학습은 이미 학습된 모델의 지식을 새 문제에 재사용하는 방법이다.
문제 21
다음 릴레이션 학생(R)과 수강(S)이 주어졌을 때, 아래 관계대수식을 수행한 최종 결과값으로 옳은 것은?
[학생(R) 릴레이션][수강(S) 릴레이션]
학번이름학과
101김영희컴퓨터
102박철수전자
103홍길동컴퓨터
학번과목성적
101DBA
101OSB
102DBA
103DBB

1{김영희}
2{김영희, 박철수}
3{김영희, 홍길동}
4{김영희, 박철수, 홍길동}
문제 22
다음 정렬(sorting) 기법들 중 평균 시간 복잡도(average time complexity)가 이 아닌 기법은?
1병합 정렬(merge sort)
2힙 정렬(heap sort)
3삽입 정렬(insertion sort)
4퀵 정렬(quick sort)
정답 및 해설

평균 시간 복잡도가 O(nlog⁡n)O(n \log n)이 아닌 것은 삽입 정렬이다.

삽입 정렬은 각 원소를 앞쪽 정렬 구간과 비교해 끼워 넣으므로 평균 O(n2)O(n^2)이다.

  • 병합 정렬: 절반씩 나누어 병합하므로 평균과 최악 모두 O(nlog⁡n)O(n \log n)이다.
  • 힙 정렬: 삭제와 재정렬을 원소 수만큼 반복해 평균 O(nlog⁡n)O(n \log n)이다.
  • 퀵 정렬: 최악은 O(n2)O(n^2)이지만 평균은 O(nlog⁡n)O(n \log n)이다.
문제 23
Python 언어의 리스트(list), 튜플(tuple), 집합(set) 자료형에 관한 다음 설명 중 가장 옳지 않은 것은?
1[1, 2, 3]은 리스트에 해당하며 (1, 2, 3)은 튜플에 해당한다.
2하나의 리스트가 다른 리스트의 원소가 될 수 있다.
3리스트나 튜플에서는 인덱싱(indexing)이 가능하지만 집합에서는 인덱싱이 불가능하다.
4리스트의 원소값은 변경할 수 없으나 튜플의 원소값은 변경할 수 있다.
정답 및 해설

틀린 설명은 리스트는 변경 불가, 튜플은 변경 가능이라는 내용으로, 두 자료형의 성질이 뒤바뀌었다.

리스트는 원소를 바꿀 수 있는 가변(mutable) 자료형이고, 튜플은 바꿀 수 없는 불변(immutable) 자료형이다.

  • 대괄호와 소괄호 표기: 대괄호는 리스트, 소괄호는 튜플이 맞다.
  • 리스트의 중첩: 리스트 안에 다른 리스트를 원소로 넣을 수 있다.
  • 인덱싱: 순서가 있는 리스트와 튜플은 가능하고, 순서가 없는 집합은 불가능하다.
문제 24
다음 데이터베이스 트랜잭션의 4가지 특성(ACID) 중 “트랜잭션의 실행이 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.”는 성질로 옳은 것은?
1원자성(Atomicity)
2일관성(Consistency)
3고립성(Isolation)
4지속성(Durability)
정답 및 해설

모두 반영되거나 전혀 반영되지 않아야 하는 성질은 원자성(Atomicity)이다.

원자성은 트랜잭션을 더 나눌 수 없는 하나의 단위로 다루는 성질로, All or Nothing으로 요약한다.

  • 일관성: 트랜잭션 전후에 데이터베이스가 무결성 제약을 지키는 성질이다.
  • 고립성: 동시에 실행되는 트랜잭션이 서로 간섭하지 않는 성질이다.
  • 지속성: 완료된 트랜잭션의 결과가 장애 후에도 유지되는 성질이다.
문제 25
암 진단 모델에서 실제 암 환자 100명 중 90명을 암 환자로 찾아냈고, 정상인 100명 중 20명을 암 환자로 오진했다면, 이 모델의 재현율(recall)과 정밀도(precision)로 옳은 것은?(단, 결과 수치는 소수점 셋째 자리에서 반올림하여 표기함)
1재현율 0.90 / 정밀도 0.82
2재현율 0.90 / 정밀도 0.85
3재현율 0.85 / 정밀도 0.90
4재현율 0.82 / 정밀도 0.90
정답 및 해설

재현율은 0.90, 정밀도는 0.82이다.

TP = 90, FN = 10, FP = 20이다.
재현율 = TP ÷ (TP + FN): 9090+10=0.90\dfrac{90}{90+10}=0.90
정밀도 = TP ÷ (TP + FP): 9090+20≈0.82\dfrac{90}{90+20}\approx 0.82

  • 재현율 0.90 / 정밀도 0.85: 정밀도 계산값과 다르다.
  • 재현율 0.85 / 정밀도 0.90: 두 값 모두 계산 결과와 다르다.
  • 재현율 0.82 / 정밀도 0.90: 두 지표의 값이 서로 뒤바뀌었다.