[해양경찰 컴퓨터일반] 26년 2회차
해양경찰 컴퓨터일반 기출문제

26년 2회차

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

1 / 1
A4정답 포함
해양경찰 컴퓨터일반 기출문제모두CBT · moducbt.com

26년 2회차

총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음 중 클라우드에 관련된 내용으로 가장 옳은 것은?
1민간 클라우드는 상용 서비스만 가능하며 지방 정부 등 공공영역의 서비스에 이용할 수 없다.
2클라우드에서 시스템을 임차할 경우 IaaS, 소프트웨어 서비스를 임차할 경우 SaaS라 한다.
3클라우드에서 웹서비스를 구현할 경우 서버의 저장 데이터량에 따라 과금되며, 서버의 데이터 전송량에 따르는 과금 차이를 두지 않는다.
4클라우드는 일반적으로 물리적 시스템 단위로 임차 서비스를 제공한다.
정답 및 해설

클라우드에서 시스템(인프라)을 임차하면 IaaS, 소프트웨어를 서비스로 임차하면 SaaS라 한다.

IaaS는 서버·스토리지·네트워크 같은 가상화된 인프라를, SaaS는 완성된 응용 소프트웨어를 서비스 형태로 빌려 쓰는 모델이다.

  • 민간 클라우드는 공공 영역에 쓸 수 없다는 설명: 민간 클라우드도 보안 인증 등을 거쳐 지방 정부 등 공공 서비스에 이용된다.
  • 데이터 전송량에 따른 과금 차이가 없다는 설명: 클라우드는 저장량뿐 아니라 데이터 전송량(특히 외부로 나가는 트래픽)에 따라서도 과금한다.
  • 물리적 시스템 단위로 임차한다는 설명: 일반적으로 가상 머신·스토리지 등 가상화된 자원 단위로 제공한다.
문제 2
다음 중 플립플롭(Flip-Flop)을 사용하는 회로를 모두 고르면?
< 보 기 >
㉠ 레지스터(Register)
㉡ 디코더(Decoder)
㉢ 무어 머신(Moore Machine)
㉣ 동기식 카운터(Synchronous Counter)
1㉠, ㉡, ㉢
2㉡, ㉢
3㉠, ㉢, ㉣
4㉠, ㉣
정답 및 해설

플립플롭을 쓰는 회로는 레지스터·무어 머신·동기식 카운터이다.

플립플롭은 1비트를 기억하는 소자로, 이전 상태를 기억해야 하는 순서 논리 회로의 기본 구성 요소다.

  • 레지스터: 여러 개의 플립플롭을 묶어 여러 비트의 데이터를 저장한다.
  • 무어 머신: 출력이 현재 상태에만 의존하는 유한 상태 기계로, 상태를 플립플롭에 저장한다.
  • 동기식 카운터: 모든 플립플롭이 공통 클록에 맞춰 동시에 상태를 바꾼다.
  • 디코더: 입력 조합에 따라 출력이 바로 정해지는 조합 논리 회로라 플립플롭이 필요 없다.
문제 3
다음 중 프로그램 카운터(Program Counter)의 역할에 대한 설명으로 가장 옳지 않은 것은?
1다음에 실행할 명령어의 메모리 주소를 보관한다.
2명령어를 인출(Fetch)한 후에는 일반적으로 값이 자동으로 증가한다.
3분기 명령어(Jump, Branch)가 실행되면 해당 목적지 주소로 값이 변경된다.
4현재 CPU에서 실행 중인 명령어의 실제 내용을 저장하고 있다.
정답 및 해설

현재 실행 중인 명령어의 내용을 저장하는 것은 프로그램 카운터가 아니라 명령어 레지스터(IR)이다.

프로그램 카운터는 다음에 인출할 명령어의 주소를 담는 레지스터다.

  • 다음 명령어 주소 보관: 프로그램 카운터의 본래 역할이다.
  • 인출 후 자동 증가: 명령어를 인출하면 다음 명령어를 가리키도록 값이 증가한다.
  • 분기 시 목적지 주소로 변경: 점프·분기 명령어는 프로그램 카운터에 목적지 주소를 적재해 실행 흐름을 바꾼다.
문제 4
다음 <보기> 에서 옳은 것을 모두 고르면?
< 보 기 >
㉠ SRAM(Static RAM)은 전원이 공급되는 동안에는 데이터가 유지되므로 리프레시(Refresh) 동작이 필요 없다.
㉡ DRAM(Dynamic RAM)은 커패시터(Capacitor)에 전하를 저장한다.
㉢ SRAM은 DRAM보다 집적도가 높고 구조가 단순하다.
㉣ SRAM은 일반적으로 DRAM보다 속도가 매우 빠르다.
1㉠, ㉡, ㉢
2㉡, ㉢, ㉣
3㉠, ㉡, ㉣
4㉠, ㉢, ㉣
정답 및 해설

옳은 것은 SRAM의 리프레시 불필요, DRAM의 커패시터 저장, SRAM의 빠른 속도이다.

SRAM은 플립플롭(여러 개의 트랜지스터)으로 1비트를 저장해 빠르지만 셀 구조가 복잡하고, DRAM은 트랜지스터 하나와 커패시터 하나로 셀이 단순해 집적도가 높다.

  • SRAM은 리프레시가 필요 없다: 전원이 있는 동안 상태가 유지되므로 옳다.
  • DRAM은 커패시터에 전하를 저장한다: 전하가 새어 나가 주기적 리프레시가 필요하며, 옳다.
  • SRAM이 DRAM보다 빠르다: 그래서 캐시 메모리에 쓰이며, 옳다.
  • SRAM이 집적도가 높고 구조가 단순하다: 반대로 DRAM이 집적도가 높고 단순하므로 틀리다.
문제 5
다음은 캐시 메모리의 주소 지정 방식에 대한 설명이다. 주소 지정 방식이 가장 다른 하나는?
1메인 메모리의 블록마다 캐시에 저장될 수 있는 위치가 한 곳으로 정해져 있어 빠르게 접근된다.
2데이터를 찾기 위해 캐시 내 모든 라인의 태그(Tag)를 비교하여야 한다.
3충돌 미스(Conflict Miss)가 적어 캐시 히트율을 높이는 데 유리하다.
4메인 메모리의 블록을 캐시 내의 어느 라인(Line)에나 자유롭게 배치할 수 있다.
정답 및 해설

블록이 들어갈 캐시 위치가 한 곳으로 정해진 것은 직접 사상(Direct Mapping)이고, 나머지는 모두 완전 연관 사상(Fully Associative Mapping)의 설명이다.

직접 사상은 위치가 고정돼 태그를 한 번만 비교하므로 빠르고 단순하지만, 같은 위치에 매핑되는 블록끼리 충돌 미스가 잦다.

  • 모든 라인의 태그를 비교해야 한다: 블록이 어디에나 있을 수 있는 완전 연관 사상의 특징이다.
  • 충돌 미스가 적어 히트율에 유리하다: 배치가 자유로운 완전 연관 사상의 장점이다.
  • 어느 라인에나 자유롭게 배치한다: 완전 연관 사상의 정의 그 자체다.
문제 6
다음 <보기>에서 NAND 플래시 메모리(NAND Flash Memory)가 사용되는 장치를 모두 고르면?
< 보 기 >
㉠ SSD(Solid State Drive) 저장장치
㉡ USB 메모리 스틱(USB Flash Drive)
㉢ 스마트폰에 내장된 UFS/eMMC 등 내부 저장소
㉣ 마이크로프로세서 내부의 캐시 메모리
1㉠
2㉠, ㉡
3㉠, ㉡, ㉢
4㉠, ㉡, ㉢, ㉣
정답 및 해설

NAND 플래시가 쓰이는 장치는 SSD, USB 메모리, 스마트폰 내장 저장소(UFS/eMMC)이다.

NAND 플래시는 전원이 꺼져도 데이터가 남는 비휘발성 메모리로 대용량 저장장치에 쓰이고, 프로세서 내부 캐시는 고속의 SRAM으로 만든다.

  • SSD: NAND 플래시 칩과 컨트롤러로 구성된 저장장치다.
  • USB 메모리: NAND 플래시를 USB 인터페이스로 연결한 휴대용 저장장치다.
  • UFS/eMMC: 스마트폰 기판에 내장된 NAND 플래시 기반 저장소다.
  • 마이크로프로세서 내부 캐시: 쓰기가 느리고 수명이 제한된 플래시는 캐시에 맞지 않으며, 캐시는 SRAM으로 구성한다.
문제 7
다음 중 컴퓨터 구조의 파이프라인(Pipeline)에 대한 설명으로 가장 옳지 않은 것은?
1파이프라인은 한 개의 명령어가 실행되는데 걸리는 전체 실행 시간을 단축시킨다.
2파이프라인으로 인한 해저드(Hazard)가 발생할 수 있으며, 이는 성능 저하의 원인이 된다.
3한 명령어를 단계별로 나누어 여러 명령을 겹쳐 실행함으로써 명령어 처리량(Throughput)을 높인다.
4파이프라인을 세분화하여 단계 개수를 늘리면 더 높은 클록 주파수(Clock Frequency)로 동작시킬 수 있다.
정답 및 해설

파이프라인은 명령어 한 개의 실행 시간(지연 시간)을 줄이지 않고, 단위 시간당 처리하는 명령어 수인 처리량을 높인다.

단계 사이에 파이프라인 레지스터가 들어가므로 명령어 하나가 모든 단계를 거치는 시간은 같거나 오히려 약간 늘어난다.

  • 해저드로 인한 성능 저하: 구조·데이터·제어 해저드가 생기면 지연(스톨)이 발생해 성능이 떨어지므로 옳다.
  • 겹쳐 실행해 처리량 향상: 파이프라인의 기본 원리로 옳다.
  • 단계 세분화로 클록 주파수 상향: 단계당 처리 시간이 짧아지므로 더 높은 클록으로 동작할 수 있어 옳다.
문제 8
다음 중 타입 1(Bare-metal) 과 타입 2(Hosted) 하이퍼바이저(Hypervisor)에 대한 설명으로 가장 옳지 않은 것은?
1타입 1 하이퍼바이저는 호스트 운영체제 없이 실행되므로, 타입 2보다 오버헤드가 적고 성능이 효율적이다.
2타입 2 하이퍼바이저는 운영체제 위에서 실행되므로 다양한 시스템 명령을 사용할 수 있어 관리 편의성이 좋다.
3타입 1 하이퍼바이저는 일반적으로 기업용 서버나 데이터센터와 같이 높은 신뢰성과 성능이 요구되는 환경에 적절하다.
4타입 2 하이퍼바이저는 일반적으로 타입 1보다 보안성이 높으며, 시스템 장애 발생 소지가 적다.
정답 및 해설

타입 2 하이퍼바이저는 호스트 운영체제 위에서 동작하므로 호스트 OS의 취약점·장애에도 영향을 받아 일반적으로 타입 1보다 보안성과 안정성이 낮다.

타입 1은 하드웨어 위에서 직접 실행되고(예: VMware ESXi, Xen), 타입 2는 일반 OS 위에서 응용 프로그램처럼 실행된다(예: VirtualBox, VMware Workstation).

  • 타입 1은 오버헤드가 적다: 호스트 OS 계층이 없어 성능이 효율적이므로 옳다.
  • 타입 2는 관리 편의성이 좋다: 익숙한 호스트 OS의 기능과 도구를 그대로 쓸 수 있어 옳다.
  • 타입 1은 기업 서버·데이터센터에 적합하다: 높은 성능과 신뢰성이 필요한 환경에 쓰이므로 옳다.
문제 9
다음 중 기아(Starvation) 현상이 발생할 수 있는 스케줄링 알고리즘들로만 묶인 것은?
1FCFS(First Come First Served), Round Robin
2SJF(Shortest Job First), Priority Scheduling
3Round Robin, Multi Level Queue
4FCFS, SRT(Shortest Remaining Time)
정답 및 해설

기아 현상이 생길 수 있는 조합은 SJF와 우선순위(Priority) 스케줄링이다.

두 기법은 실행 시간이 짧거나 우선순위가 높은 작업을 계속 먼저 고르므로, 긴 작업이나 우선순위가 낮은 작업이 무한히 밀릴 수 있다. 이는 에이징(Aging)으로 완화한다.

  • FCFS와 Round Robin: 도착 순서대로 처리하거나 시간 할당량을 돌아가며 주므로 모든 프로세스가 결국 실행되어 기아가 없다.
  • Round Robin과 다단계 큐: Round Robin에는 기아가 없으므로 기아 가능한 알고리즘으로만 묶인 조합이 아니다.
  • FCFS와 SRT: SRT는 기아가 생길 수 있지만 FCFS는 기아가 없다.
문제 10
다음 중 DBMS의 데이터 독립성에 대한 설명으로 옳지 않은 것을 모두 고르면?
< 보 기 >
㉠ 데이터베이스 관리자가 데이터를 독점적으로 소유하는 것을 의미한다.
㉡ 각 부서가 서로 다른 DBMS를 사용하여 독립적으로 운영하는 것을 의미한다.
㉢ 네트워크 연결 없이도 데이터를 조회할 수 있는 능력을 말한다.
㉣ 하위 단계(물리적 구조)의 변경이 상위 단계(응용 프로그램)에 영향을 주지 않는 것이다.
1㉠, ㉡, ㉢
2㉠, ㉡, ㉣
3㉠, ㉢, ㉣
4㉡, ㉢, ㉣
정답 및 해설

데이터 독립성을 바르게 설명한 것은 하위 단계 변경이 상위 단계에 영향을 주지 않는다는 내용뿐이므로, 나머지 세 설명이 옳지 않다.

데이터 독립성은 3단계 스키마 구조에서 논리적 독립성(개념 스키마 변경이 외부 스키마·응용에 영향 없음)과 물리적 독립성(내부 스키마 변경이 개념 스키마에 영향 없음)으로 나뉜다.

  • DBA가 데이터를 독점 소유: 데이터 독립성과 무관하며, DBMS는 오히려 데이터 공유를 지향한다.
  • 부서마다 다른 DBMS로 독립 운영: 독립성이 아니라 데이터 분산·중복에 가까운 내용이다.
  • 네트워크 없이 데이터 조회: 오프라인 접근 능력일 뿐 데이터 독립성이 아니다.
문제 11
다음 중 운영체제의 교착 상태(Deadlock)가 발생하는 4가지 필요조건에 대한 설명으로 가장 옳지 않은 것은?
1상호 배제(Mutual Exclusion): 자원은 한 번에 한 프로세스만 사용할 수 있으며, 다른 프로세스가 해당 자원을 사용하려면 사용 중인 프로세스가 자원을 놓아줄 때까지 기다려야 한다.
2비선점(Non-Preemptive): 프로세스가 새로운 자원을 요청하기 전에 다른 프로세스가 점유하고 있는 자원을 확인하여, 자원을 대기하지 않도록 하는 것을 의미한다.
3점유 및 대기(Hold and Wait): 최소한 하나의 자원을 점유하고 있는 프로세스가 다른 프로세스에 의해 점유된 추가 자원을 할당받기 위해 대기하는 상태이다.
4순환 대기(Circular Wait): 대기 프로세스의 집합이 순환 형태로 서로가 가진 자원을 기다리며 끝없이 대기하는 상태이다.
정답 및 해설

비선점 조건의 설명이 틀렸다. 비선점은 다른 프로세스가 점유한 자원을 강제로 빼앗을 수 없는 것을 뜻한다.

요청 전에 점유 상황을 확인해 대기하지 않도록 한다는 내용은 교착 상태의 발생 조건이 아니라 예방·회피 쪽 발상이다.

  • 상호 배제: 자원을 한 번에 한 프로세스만 쓸 수 있다는 정의로 옳다.
  • 점유 및 대기: 자원을 쥔 채 다른 프로세스가 가진 자원을 기다리는 상태로 옳다.
  • 순환 대기: 프로세스들이 원형으로 서로의 자원을 기다리는 상태로 옳다.
문제 12
다음 중 페이징(Paging)과 세그멘테이션(Segmentation)의 가상기억공간 관리 방법에 대한 설명으로 가장 옳지 않은 것은?
1페이징 기법은 물리 메모리를 고정 크기로 분할하여 관리한다.
2세그멘테이션 기법은 프로그램을 논리적 단위인 세그먼트로 나누어 관리하며, 각 세그먼트는 서로 다른 크기를 가질 수 있다.
3페이징에서는 페이지 테이블을 통해 가상 주소의 페이지 번호를 물리 주소의 프레임 번호로 매핑한다.
4페이징 기법은 외부 단편화는 발생하지만 내부 단편화가 발생하지 않는다.
정답 및 해설

페이징은 내부 단편화는 생기지만 외부 단편화는 생기지 않는다. 설명이 반대로 되어 있다.

고정 크기 프레임 단위로 할당하므로 흩어진 빈 공간 때문에 못 쓰는 외부 단편화는 없고, 마지막 페이지가 프레임을 다 채우지 못해 남는 내부 단편화가 생긴다. 가변 크기인 세그멘테이션은 반대로 외부 단편화가 생긴다.

  • 물리 메모리를 고정 크기로 분할: 프레임 단위로 관리하므로 옳다.
  • 세그먼트는 논리 단위이며 크기가 서로 다를 수 있다: 옳다.
  • 페이지 테이블로 페이지 번호를 프레임 번호에 매핑: 옳다.
문제 13
다음 중 운영체제의 페이지 교체 및 가상 메모리 관리에서 지역성(Locality)에 대한 설명으로 가장 옳지 않은 것은?
1시간 지역성(Temporal Locality)은 참조된 메모리 주소가 가까운 시간 내에 다시 참조될 가능성이 높은 성질이다.
2공간 지역성(Spatial Locality)은 어떤 메모리 주소가 참조되면, 그 주변의 인접 주소들이 곧 참조될 가능성이 높은 성질이다.
3지역성의 특성을 잘 이용하여 페이지 부재(Page Fault)를 낮추어 시스템 성능을 향상시킬 수 있다.
4프로그램이 한번 실행될 때 메모리의 모든 영역에 대한 참조가 이루어지므로, 이를 페이지 교체 알고리즘에 반영한다.
정답 및 해설

프로그램은 실행 중 메모리의 일부 영역만 집중적으로 참조하므로, 모든 영역을 참조한다는 설명이 틀렸다.

이 집중 참조 성질이 지역성이며, 워킹 셋·LRU 같은 페이지 교체 기법이 이를 근거로 한다.

  • 시간 지역성: 최근 참조한 주소를 곧 다시 참조하는 성질(반복문, 카운터 변수)로 옳다.
  • 공간 지역성: 인접 주소를 이어서 참조하는 성질(배열 순차 접근)로 옳다.
  • 지역성을 이용한 페이지 부재 감소: 자주 쓰는 페이지를 메모리에 유지해 성능을 높이므로 옳다.
문제 14
다음 <보기> 자료구조에서 각각 효율적으로 자료가 배치되었을 때 검색 효율성이 가장 높은 것부터 낮은 순서대로 바르게 나열된 것은?
< 보 기 >
㉠ 연결 리스트(Linked List)
㉡ 이진 탐색 트리(Binary Search Tree)
㉢ 해시테이블(Hash Table)
1㉠ → ㉡ → ㉢
2㉡ → ㉢ → ㉠
3㉢ → ㉡ → ㉠
4㉢ → ㉠ → ㉡
정답 및 해설

검색 효율은 해시 테이블 → 이진 탐색 트리 → 연결 리스트 순으로 높다.

해시 테이블은 해시 함수로 위치를 바로 계산해 평균 O(1)O(1), 균형 잡힌 이진 탐색 트리는 O(log⁡n)O(\log n), 연결 리스트는 처음부터 차례로 따라가야 하므로 O(n)O(n)이다.

  • 연결 리스트를 가장 앞에 둔 순서: 순차 탐색이라 가장 느리므로 틀리다.
  • 이진 탐색 트리를 해시 테이블보다 앞에 둔 순서: O(log⁡n)O(\log n)은 O(1)O(1)보다 느리므로 틀리다.
  • 연결 리스트를 이진 탐색 트리보다 앞에 둔 순서: O(n)O(n)은 O(log⁡n)O(\log n)보다 느리므로 틀리다.
문제 15
다음 중 데이터베이스의 스키마(Schema)에 대한 설명으로 가장 옳은 것은?
1내부 스키마는 인덱스 구조나 데이터 저장 방식 등 성능 최적화와 관련된 물리적 관점을 다룬다.
2개념 스키마는 개별 사용자의 관점에서 필요한 데이터만을 정의하며, 사용자마다 여러 개가 존재할 수 있다.
3외부 스키마는 물리적 저장 장치에서 데이터가 실제로 어떻게 저장되는지를 정의하는 단계이다.
4외부 스키마와 내부 스키마 사이에는 데이터 종속성이 있으며, 이는 사용자의 뷰를 개별적으로 생성하기 때문이다.
정답 및 해설

내부 스키마는 인덱스·저장 방식·레코드 배치 등 물리적 저장 구조를 정의한다.

3단계 스키마는 외부(사용자 관점), 개념(조직 전체의 논리 구조), 내부(물리 저장)로 나뉘며, 단계 사이의 사상으로 데이터 독립성을 확보한다.

  • 개별 사용자 관점이며 여러 개 존재: 외부 스키마의 설명이며, 개념 스키마는 조직 전체 관점으로 하나만 존재한다.
  • 실제 물리적 저장 방식 정의: 내부 스키마의 설명이며, 외부 스키마는 사용자·응용 관점의 논리 구조다.
  • 외부·내부 스키마 사이의 데이터 종속성: 3단계 구조는 종속성을 없애 독립성을 주려는 것이고, 외부 스키마는 개념 스키마와 사상된다.
문제 16
다음 중 데이터베이스의 뷰(View)에 대한 설명으로 가장 옳은 것은?
1뷰는 실제 데이터를 물리적으로 저장하고 있는 테이블이므로, 생성 시 많은 저장 공간이 필요하다.
2뷰를 사용하면 사용자에게 필요한 일부만 보여줄 수 있어, 데이터 보안성을 높일 수 있다.
3뷰는 오직 하나의 기본 테이블(Base Table)로부터만 생성될 수 있으며, 여러 테이블을 조인하여 만들 수 없다.
4기본 테이블의 구조가 변경되면 뷰를 사용하더라도 응용 프로그램의 쿼리문 수정이 필요하다.
정답 및 해설

뷰는 필요한 열과 행만 골라 보여줄 수 있어 민감한 데이터를 감추는 보안 기능을 한다.

뷰는 기본 테이블에서 유도된 가상 테이블로, 정의(질의문)만 저장되고 데이터는 실행할 때 기본 테이블에서 가져온다.

  • 데이터를 물리적으로 저장: 뷰는 데이터를 저장하지 않으므로 큰 저장 공간이 필요 없다.
  • 하나의 기본 테이블에서만 생성: 여러 테이블을 조인하거나 다른 뷰를 바탕으로도 만들 수 있다.
  • 기본 테이블이 바뀌면 쿼리 수정 필요: 뷰 정의만 고치면 응용 프로그램은 그대로 쓸 수 있어 논리적 독립성을 제공한다.
문제 17
소프트웨어 모듈에서 결합도(Coupling)와 응집도(Cohesion)에 대한 설명으로 가장 옳지 않은 것은?
1좋은 소프트웨어 설계는 강한 응집과 약한 결합을 목적해야 한다.
2응집도는 모듈 내부의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 척도이다.
3결합도가 높아질수록 모듈 간의 연결성이 높아져 유지보수가 쉬워지고 재사용성이 좋아진다.
4기능적 응집도는 응집도의 단계 중 가장 높은 수준이다.
정답 및 해설

결합도가 높아지면 모듈 간 의존성이 커져 유지보수가 어려워지고 재사용성이 떨어진다.

한 모듈의 변경이 연결된 다른 모듈로 파급되기 때문이며, 좋은 설계는 응집도는 높이고 결합도는 낮춘다.

  • 강한 응집과 약한 결합 지향: 모듈 설계의 기본 원칙으로 옳다.
  • 응집도는 모듈 내부 요소의 관련 정도: 정의 그대로 옳다.
  • 기능적 응집도가 가장 높은 수준: 응집도는 우연적 → 논리적 → 시간적 → 절차적 → 교환적 → 순차적 → 기능적 순으로 높아지므로 옳다.
문제 18
다음 중 AI와 관련된 내용으로 가장 옳지 않은 것은?
1ChatGPT와 같이 인터넷을 통한 클라우드 서비스 AI모델은 보안 위험성이 있다.
2허깅페이스(Hugging Face)에서 다운로드 가능하도록 공개된 LLM(Large Language Model)은 격리된 폐쇄망 내부에서도 구동 가능하다.
3LLM은 텍스트 형태의 입력을 받으며, 이미지, 소리 등 기타 데이터 처리 과정에 응용하지 못한다.
4RAG(Retrieval-Augmented Generation)는 AI 모델에 대하여 일정 지식정보를 추가하여 답변 결과를 전문화 하기 위한 방법이다.
정답 및 해설

LLM은 텍스트뿐 아니라 이미지·음성 등을 함께 다루는 멀티모달 모델로 확장되어 쓰이므로, 기타 데이터에 응용하지 못한다는 설명이 틀렸다.

이미지를 입력받아 내용을 설명하거나 음성을 인식·생성하는 모델이 이미 서비스되고 있다.

  • 클라우드형 AI의 보안 위험: 입력한 데이터가 외부 서버로 전송되므로 정보 유출 위험이 있어 옳다.
  • 공개 LLM의 폐쇄망 구동: 모델 파일을 내려받으면 인터넷 없이 내부 서버에서 실행할 수 있어 옳다.
  • RAG: 외부 문서를 검색해 답변 생성에 참고 정보로 넣어 응답을 전문화하는 방법으로 옳다.
문제 19
다음 <보기>의 특성과 소프트웨어 개발 생명주기 모델이 가장 옳게 짝지어진 것은?
< 보 기 >
㉠ 순차적 단계 진행
㉡ 위험 분석 수행
㉢ 반복적 점진 개발
㉣ 테스트 단계 강조
㉤ 상세 문서 작성 우선
㉥ 유연한 요구사항 변경
구분폭포수 모델V-모델나선형 모델애자일 모델
①㉠㉥㉡㉤
②㉠㉣㉡㉥
③㉢㉣㉠㉥
④㉢㉥㉠㉤
1㉠, ㉥, ㉡, ㉤
2㉠, ㉣, ㉡, ㉥
3㉢, ㉣, ㉠, ㉥
4㉢, ㉥, ㉠, ㉤
정답 및 해설

폭포수는 순차적 단계 진행, V-모델은 테스트 단계 강조, 나선형은 위험 분석 수행, 애자일은 유연한 요구사항 변경이 바른 짝이다.

V-모델은 각 개발 단계에 대응하는 테스트 단계를 짝지어 검증을 강조하고, 나선형은 반복마다 위험 분석을 수행하며, 애자일은 짧은 반복으로 요구사항 변경에 대응한다. 상세 문서 작성 우선은 오히려 폭포수 쪽 특성이다.

  • V-모델에 유연한 요구사항 변경, 애자일에 상세 문서 작성 우선을 짝지은 조합: 애자일은 포괄적 문서보다 작동하는 소프트웨어를 중시하므로 틀리다.
  • 폭포수에 반복적 점진 개발, 나선형에 순차적 단계 진행을 짝지은 조합: 폭포수가 순차적이고 반복은 나선형·애자일의 특징이므로 틀리다.
  • 폭포수에 반복적 점진 개발, V-모델에 유연한 요구사항 변경을 짝지은 조합: 폭포수와 V-모델은 모두 순차형이라 틀리다.
문제 20
다음 <보기>에서 자바 코드의 실행 결과로 출력되는 값은?
< 보 기 >
class Calculator {
public int compute(int n) {
return n * 2;
}
}

class AddCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) + 10;
}
}

class SubCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) - 5;
}
}

public class Main {
public static void main(String[] args) {
Calculator[] calcs = {
new AddCalculator(),
new SubCalculator(),
new Calculator()
};

int total = 0;
for (Calculator c : calcs) {
total += c.compute(10);
}

System.out.println(total);
}
}
145
255
360
465
정답 및 해설

배열의 세 객체가 각자 재정의된 메서드를 호출해 합계 65가 출력된다.

동적 바인딩으로 실제 객체 타입의 compute가 호출되고, super.compute(10)은 부모의 10×2=2010 \times 2 = 20을 돌려준다.

  • AddCalculator: 20+10=3020 + 10 = 30, 누적 total은 30
  • SubCalculator: 20−5=1520 - 5 = 15, 누적 total은 45
  • Calculator: 10×2=2010 \times 2 = 20, 누적 total은 65
해양경찰 컴퓨터일반 기출문제모두CBT · moducbt.com
26년 2회차
총 20문항 · 객관식 · 정답·해설 포함
문제 1
다음 중 클라우드에 관련된 내용으로 가장 옳은 것은?
1민간 클라우드는 상용 서비스만 가능하며 지방 정부 등 공공영역의 서비스에 이용할 수 없다.
2클라우드에서 시스템을 임차할 경우 IaaS, 소프트웨어 서비스를 임차할 경우 SaaS라 한다.
3클라우드에서 웹서비스를 구현할 경우 서버의 저장 데이터량에 따라 과금되며, 서버의 데이터 전송량에 따르는 과금 차이를 두지 않는다.
4클라우드는 일반적으로 물리적 시스템 단위로 임차 서비스를 제공한다.
정답 및 해설

클라우드에서 시스템(인프라)을 임차하면 IaaS, 소프트웨어를 서비스로 임차하면 SaaS라 한다.

IaaS는 서버·스토리지·네트워크 같은 가상화된 인프라를, SaaS는 완성된 응용 소프트웨어를 서비스 형태로 빌려 쓰는 모델이다.

  • 민간 클라우드는 공공 영역에 쓸 수 없다는 설명: 민간 클라우드도 보안 인증 등을 거쳐 지방 정부 등 공공 서비스에 이용된다.
  • 데이터 전송량에 따른 과금 차이가 없다는 설명: 클라우드는 저장량뿐 아니라 데이터 전송량(특히 외부로 나가는 트래픽)에 따라서도 과금한다.
  • 물리적 시스템 단위로 임차한다는 설명: 일반적으로 가상 머신·스토리지 등 가상화된 자원 단위로 제공한다.
문제 2
다음 중 플립플롭(Flip-Flop)을 사용하는 회로를 모두 고르면?
< 보 기 >
㉠ 레지스터(Register)
㉡ 디코더(Decoder)
㉢ 무어 머신(Moore Machine)
㉣ 동기식 카운터(Synchronous Counter)
1㉠, ㉡, ㉢
2㉡, ㉢
3㉠, ㉢, ㉣
4㉠, ㉣
정답 및 해설

플립플롭을 쓰는 회로는 레지스터·무어 머신·동기식 카운터이다.

플립플롭은 1비트를 기억하는 소자로, 이전 상태를 기억해야 하는 순서 논리 회로의 기본 구성 요소다.

  • 레지스터: 여러 개의 플립플롭을 묶어 여러 비트의 데이터를 저장한다.
  • 무어 머신: 출력이 현재 상태에만 의존하는 유한 상태 기계로, 상태를 플립플롭에 저장한다.
  • 동기식 카운터: 모든 플립플롭이 공통 클록에 맞춰 동시에 상태를 바꾼다.
  • 디코더: 입력 조합에 따라 출력이 바로 정해지는 조합 논리 회로라 플립플롭이 필요 없다.
문제 3
다음 중 프로그램 카운터(Program Counter)의 역할에 대한 설명으로 가장 옳지 않은 것은?
1다음에 실행할 명령어의 메모리 주소를 보관한다.
2명령어를 인출(Fetch)한 후에는 일반적으로 값이 자동으로 증가한다.
3분기 명령어(Jump, Branch)가 실행되면 해당 목적지 주소로 값이 변경된다.
4현재 CPU에서 실행 중인 명령어의 실제 내용을 저장하고 있다.
정답 및 해설

현재 실행 중인 명령어의 내용을 저장하는 것은 프로그램 카운터가 아니라 명령어 레지스터(IR)이다.

프로그램 카운터는 다음에 인출할 명령어의 주소를 담는 레지스터다.

  • 다음 명령어 주소 보관: 프로그램 카운터의 본래 역할이다.
  • 인출 후 자동 증가: 명령어를 인출하면 다음 명령어를 가리키도록 값이 증가한다.
  • 분기 시 목적지 주소로 변경: 점프·분기 명령어는 프로그램 카운터에 목적지 주소를 적재해 실행 흐름을 바꾼다.
문제 4
다음 <보기> 에서 옳은 것을 모두 고르면?
< 보 기 >
㉠ SRAM(Static RAM)은 전원이 공급되는 동안에는 데이터가 유지되므로 리프레시(Refresh) 동작이 필요 없다.
㉡ DRAM(Dynamic RAM)은 커패시터(Capacitor)에 전하를 저장한다.
㉢ SRAM은 DRAM보다 집적도가 높고 구조가 단순하다.
㉣ SRAM은 일반적으로 DRAM보다 속도가 매우 빠르다.
1㉠, ㉡, ㉢
2㉡, ㉢, ㉣
3㉠, ㉡, ㉣
4㉠, ㉢, ㉣
정답 및 해설

옳은 것은 SRAM의 리프레시 불필요, DRAM의 커패시터 저장, SRAM의 빠른 속도이다.

SRAM은 플립플롭(여러 개의 트랜지스터)으로 1비트를 저장해 빠르지만 셀 구조가 복잡하고, DRAM은 트랜지스터 하나와 커패시터 하나로 셀이 단순해 집적도가 높다.

  • SRAM은 리프레시가 필요 없다: 전원이 있는 동안 상태가 유지되므로 옳다.
  • DRAM은 커패시터에 전하를 저장한다: 전하가 새어 나가 주기적 리프레시가 필요하며, 옳다.
  • SRAM이 DRAM보다 빠르다: 그래서 캐시 메모리에 쓰이며, 옳다.
  • SRAM이 집적도가 높고 구조가 단순하다: 반대로 DRAM이 집적도가 높고 단순하므로 틀리다.
문제 5
다음은 캐시 메모리의 주소 지정 방식에 대한 설명이다. 주소 지정 방식이 가장 다른 하나는?
1메인 메모리의 블록마다 캐시에 저장될 수 있는 위치가 한 곳으로 정해져 있어 빠르게 접근된다.
2데이터를 찾기 위해 캐시 내 모든 라인의 태그(Tag)를 비교하여야 한다.
3충돌 미스(Conflict Miss)가 적어 캐시 히트율을 높이는 데 유리하다.
4메인 메모리의 블록을 캐시 내의 어느 라인(Line)에나 자유롭게 배치할 수 있다.
정답 및 해설

블록이 들어갈 캐시 위치가 한 곳으로 정해진 것은 직접 사상(Direct Mapping)이고, 나머지는 모두 완전 연관 사상(Fully Associative Mapping)의 설명이다.

직접 사상은 위치가 고정돼 태그를 한 번만 비교하므로 빠르고 단순하지만, 같은 위치에 매핑되는 블록끼리 충돌 미스가 잦다.

  • 모든 라인의 태그를 비교해야 한다: 블록이 어디에나 있을 수 있는 완전 연관 사상의 특징이다.
  • 충돌 미스가 적어 히트율에 유리하다: 배치가 자유로운 완전 연관 사상의 장점이다.
  • 어느 라인에나 자유롭게 배치한다: 완전 연관 사상의 정의 그 자체다.
문제 6
다음 <보기>에서 NAND 플래시 메모리(NAND Flash Memory)가 사용되는 장치를 모두 고르면?
< 보 기 >
㉠ SSD(Solid State Drive) 저장장치
㉡ USB 메모리 스틱(USB Flash Drive)
㉢ 스마트폰에 내장된 UFS/eMMC 등 내부 저장소
㉣ 마이크로프로세서 내부의 캐시 메모리
1㉠
2㉠, ㉡
3㉠, ㉡, ㉢
4㉠, ㉡, ㉢, ㉣
정답 및 해설

NAND 플래시가 쓰이는 장치는 SSD, USB 메모리, 스마트폰 내장 저장소(UFS/eMMC)이다.

NAND 플래시는 전원이 꺼져도 데이터가 남는 비휘발성 메모리로 대용량 저장장치에 쓰이고, 프로세서 내부 캐시는 고속의 SRAM으로 만든다.

  • SSD: NAND 플래시 칩과 컨트롤러로 구성된 저장장치다.
  • USB 메모리: NAND 플래시를 USB 인터페이스로 연결한 휴대용 저장장치다.
  • UFS/eMMC: 스마트폰 기판에 내장된 NAND 플래시 기반 저장소다.
  • 마이크로프로세서 내부 캐시: 쓰기가 느리고 수명이 제한된 플래시는 캐시에 맞지 않으며, 캐시는 SRAM으로 구성한다.
문제 7
다음 중 컴퓨터 구조의 파이프라인(Pipeline)에 대한 설명으로 가장 옳지 않은 것은?
1파이프라인은 한 개의 명령어가 실행되는데 걸리는 전체 실행 시간을 단축시킨다.
2파이프라인으로 인한 해저드(Hazard)가 발생할 수 있으며, 이는 성능 저하의 원인이 된다.
3한 명령어를 단계별로 나누어 여러 명령을 겹쳐 실행함으로써 명령어 처리량(Throughput)을 높인다.
4파이프라인을 세분화하여 단계 개수를 늘리면 더 높은 클록 주파수(Clock Frequency)로 동작시킬 수 있다.
정답 및 해설

파이프라인은 명령어 한 개의 실행 시간(지연 시간)을 줄이지 않고, 단위 시간당 처리하는 명령어 수인 처리량을 높인다.

단계 사이에 파이프라인 레지스터가 들어가므로 명령어 하나가 모든 단계를 거치는 시간은 같거나 오히려 약간 늘어난다.

  • 해저드로 인한 성능 저하: 구조·데이터·제어 해저드가 생기면 지연(스톨)이 발생해 성능이 떨어지므로 옳다.
  • 겹쳐 실행해 처리량 향상: 파이프라인의 기본 원리로 옳다.
  • 단계 세분화로 클록 주파수 상향: 단계당 처리 시간이 짧아지므로 더 높은 클록으로 동작할 수 있어 옳다.
문제 8
다음 중 타입 1(Bare-metal) 과 타입 2(Hosted) 하이퍼바이저(Hypervisor)에 대한 설명으로 가장 옳지 않은 것은?
1타입 1 하이퍼바이저는 호스트 운영체제 없이 실행되므로, 타입 2보다 오버헤드가 적고 성능이 효율적이다.
2타입 2 하이퍼바이저는 운영체제 위에서 실행되므로 다양한 시스템 명령을 사용할 수 있어 관리 편의성이 좋다.
3타입 1 하이퍼바이저는 일반적으로 기업용 서버나 데이터센터와 같이 높은 신뢰성과 성능이 요구되는 환경에 적절하다.
4타입 2 하이퍼바이저는 일반적으로 타입 1보다 보안성이 높으며, 시스템 장애 발생 소지가 적다.
정답 및 해설

타입 2 하이퍼바이저는 호스트 운영체제 위에서 동작하므로 호스트 OS의 취약점·장애에도 영향을 받아 일반적으로 타입 1보다 보안성과 안정성이 낮다.

타입 1은 하드웨어 위에서 직접 실행되고(예: VMware ESXi, Xen), 타입 2는 일반 OS 위에서 응용 프로그램처럼 실행된다(예: VirtualBox, VMware Workstation).

  • 타입 1은 오버헤드가 적다: 호스트 OS 계층이 없어 성능이 효율적이므로 옳다.
  • 타입 2는 관리 편의성이 좋다: 익숙한 호스트 OS의 기능과 도구를 그대로 쓸 수 있어 옳다.
  • 타입 1은 기업 서버·데이터센터에 적합하다: 높은 성능과 신뢰성이 필요한 환경에 쓰이므로 옳다.
문제 9
다음 중 기아(Starvation) 현상이 발생할 수 있는 스케줄링 알고리즘들로만 묶인 것은?
1FCFS(First Come First Served), Round Robin
2SJF(Shortest Job First), Priority Scheduling
3Round Robin, Multi Level Queue
4FCFS, SRT(Shortest Remaining Time)
정답 및 해설

기아 현상이 생길 수 있는 조합은 SJF와 우선순위(Priority) 스케줄링이다.

두 기법은 실행 시간이 짧거나 우선순위가 높은 작업을 계속 먼저 고르므로, 긴 작업이나 우선순위가 낮은 작업이 무한히 밀릴 수 있다. 이는 에이징(Aging)으로 완화한다.

  • FCFS와 Round Robin: 도착 순서대로 처리하거나 시간 할당량을 돌아가며 주므로 모든 프로세스가 결국 실행되어 기아가 없다.
  • Round Robin과 다단계 큐: Round Robin에는 기아가 없으므로 기아 가능한 알고리즘으로만 묶인 조합이 아니다.
  • FCFS와 SRT: SRT는 기아가 생길 수 있지만 FCFS는 기아가 없다.
문제 10
다음 중 DBMS의 데이터 독립성에 대한 설명으로 옳지 않은 것을 모두 고르면?
< 보 기 >
㉠ 데이터베이스 관리자가 데이터를 독점적으로 소유하는 것을 의미한다.
㉡ 각 부서가 서로 다른 DBMS를 사용하여 독립적으로 운영하는 것을 의미한다.
㉢ 네트워크 연결 없이도 데이터를 조회할 수 있는 능력을 말한다.
㉣ 하위 단계(물리적 구조)의 변경이 상위 단계(응용 프로그램)에 영향을 주지 않는 것이다.
1㉠, ㉡, ㉢
2㉠, ㉡, ㉣
3㉠, ㉢, ㉣
4㉡, ㉢, ㉣
정답 및 해설

데이터 독립성을 바르게 설명한 것은 하위 단계 변경이 상위 단계에 영향을 주지 않는다는 내용뿐이므로, 나머지 세 설명이 옳지 않다.

데이터 독립성은 3단계 스키마 구조에서 논리적 독립성(개념 스키마 변경이 외부 스키마·응용에 영향 없음)과 물리적 독립성(내부 스키마 변경이 개념 스키마에 영향 없음)으로 나뉜다.

  • DBA가 데이터를 독점 소유: 데이터 독립성과 무관하며, DBMS는 오히려 데이터 공유를 지향한다.
  • 부서마다 다른 DBMS로 독립 운영: 독립성이 아니라 데이터 분산·중복에 가까운 내용이다.
  • 네트워크 없이 데이터 조회: 오프라인 접근 능력일 뿐 데이터 독립성이 아니다.
문제 11
다음 중 운영체제의 교착 상태(Deadlock)가 발생하는 4가지 필요조건에 대한 설명으로 가장 옳지 않은 것은?
1상호 배제(Mutual Exclusion): 자원은 한 번에 한 프로세스만 사용할 수 있으며, 다른 프로세스가 해당 자원을 사용하려면 사용 중인 프로세스가 자원을 놓아줄 때까지 기다려야 한다.
2비선점(Non-Preemptive): 프로세스가 새로운 자원을 요청하기 전에 다른 프로세스가 점유하고 있는 자원을 확인하여, 자원을 대기하지 않도록 하는 것을 의미한다.
3점유 및 대기(Hold and Wait): 최소한 하나의 자원을 점유하고 있는 프로세스가 다른 프로세스에 의해 점유된 추가 자원을 할당받기 위해 대기하는 상태이다.
4순환 대기(Circular Wait): 대기 프로세스의 집합이 순환 형태로 서로가 가진 자원을 기다리며 끝없이 대기하는 상태이다.
정답 및 해설

비선점 조건의 설명이 틀렸다. 비선점은 다른 프로세스가 점유한 자원을 강제로 빼앗을 수 없는 것을 뜻한다.

요청 전에 점유 상황을 확인해 대기하지 않도록 한다는 내용은 교착 상태의 발생 조건이 아니라 예방·회피 쪽 발상이다.

  • 상호 배제: 자원을 한 번에 한 프로세스만 쓸 수 있다는 정의로 옳다.
  • 점유 및 대기: 자원을 쥔 채 다른 프로세스가 가진 자원을 기다리는 상태로 옳다.
  • 순환 대기: 프로세스들이 원형으로 서로의 자원을 기다리는 상태로 옳다.
문제 12
다음 중 페이징(Paging)과 세그멘테이션(Segmentation)의 가상기억공간 관리 방법에 대한 설명으로 가장 옳지 않은 것은?
1페이징 기법은 물리 메모리를 고정 크기로 분할하여 관리한다.
2세그멘테이션 기법은 프로그램을 논리적 단위인 세그먼트로 나누어 관리하며, 각 세그먼트는 서로 다른 크기를 가질 수 있다.
3페이징에서는 페이지 테이블을 통해 가상 주소의 페이지 번호를 물리 주소의 프레임 번호로 매핑한다.
4페이징 기법은 외부 단편화는 발생하지만 내부 단편화가 발생하지 않는다.
정답 및 해설

페이징은 내부 단편화는 생기지만 외부 단편화는 생기지 않는다. 설명이 반대로 되어 있다.

고정 크기 프레임 단위로 할당하므로 흩어진 빈 공간 때문에 못 쓰는 외부 단편화는 없고, 마지막 페이지가 프레임을 다 채우지 못해 남는 내부 단편화가 생긴다. 가변 크기인 세그멘테이션은 반대로 외부 단편화가 생긴다.

  • 물리 메모리를 고정 크기로 분할: 프레임 단위로 관리하므로 옳다.
  • 세그먼트는 논리 단위이며 크기가 서로 다를 수 있다: 옳다.
  • 페이지 테이블로 페이지 번호를 프레임 번호에 매핑: 옳다.
문제 13
다음 중 운영체제의 페이지 교체 및 가상 메모리 관리에서 지역성(Locality)에 대한 설명으로 가장 옳지 않은 것은?
1시간 지역성(Temporal Locality)은 참조된 메모리 주소가 가까운 시간 내에 다시 참조될 가능성이 높은 성질이다.
2공간 지역성(Spatial Locality)은 어떤 메모리 주소가 참조되면, 그 주변의 인접 주소들이 곧 참조될 가능성이 높은 성질이다.
3지역성의 특성을 잘 이용하여 페이지 부재(Page Fault)를 낮추어 시스템 성능을 향상시킬 수 있다.
4프로그램이 한번 실행될 때 메모리의 모든 영역에 대한 참조가 이루어지므로, 이를 페이지 교체 알고리즘에 반영한다.
정답 및 해설

프로그램은 실행 중 메모리의 일부 영역만 집중적으로 참조하므로, 모든 영역을 참조한다는 설명이 틀렸다.

이 집중 참조 성질이 지역성이며, 워킹 셋·LRU 같은 페이지 교체 기법이 이를 근거로 한다.

  • 시간 지역성: 최근 참조한 주소를 곧 다시 참조하는 성질(반복문, 카운터 변수)로 옳다.
  • 공간 지역성: 인접 주소를 이어서 참조하는 성질(배열 순차 접근)로 옳다.
  • 지역성을 이용한 페이지 부재 감소: 자주 쓰는 페이지를 메모리에 유지해 성능을 높이므로 옳다.
문제 14
다음 <보기> 자료구조에서 각각 효율적으로 자료가 배치되었을 때 검색 효율성이 가장 높은 것부터 낮은 순서대로 바르게 나열된 것은?
< 보 기 >
㉠ 연결 리스트(Linked List)
㉡ 이진 탐색 트리(Binary Search Tree)
㉢ 해시테이블(Hash Table)
1㉠ → ㉡ → ㉢
2㉡ → ㉢ → ㉠
3㉢ → ㉡ → ㉠
4㉢ → ㉠ → ㉡
정답 및 해설

검색 효율은 해시 테이블 → 이진 탐색 트리 → 연결 리스트 순으로 높다.

해시 테이블은 해시 함수로 위치를 바로 계산해 평균 O(1)O(1), 균형 잡힌 이진 탐색 트리는 O(log⁡n)O(\log n), 연결 리스트는 처음부터 차례로 따라가야 하므로 O(n)O(n)이다.

  • 연결 리스트를 가장 앞에 둔 순서: 순차 탐색이라 가장 느리므로 틀리다.
  • 이진 탐색 트리를 해시 테이블보다 앞에 둔 순서: O(log⁡n)O(\log n)은 O(1)O(1)보다 느리므로 틀리다.
  • 연결 리스트를 이진 탐색 트리보다 앞에 둔 순서: O(n)O(n)은 O(log⁡n)O(\log n)보다 느리므로 틀리다.
문제 15
다음 중 데이터베이스의 스키마(Schema)에 대한 설명으로 가장 옳은 것은?
1내부 스키마는 인덱스 구조나 데이터 저장 방식 등 성능 최적화와 관련된 물리적 관점을 다룬다.
2개념 스키마는 개별 사용자의 관점에서 필요한 데이터만을 정의하며, 사용자마다 여러 개가 존재할 수 있다.
3외부 스키마는 물리적 저장 장치에서 데이터가 실제로 어떻게 저장되는지를 정의하는 단계이다.
4외부 스키마와 내부 스키마 사이에는 데이터 종속성이 있으며, 이는 사용자의 뷰를 개별적으로 생성하기 때문이다.
정답 및 해설

내부 스키마는 인덱스·저장 방식·레코드 배치 등 물리적 저장 구조를 정의한다.

3단계 스키마는 외부(사용자 관점), 개념(조직 전체의 논리 구조), 내부(물리 저장)로 나뉘며, 단계 사이의 사상으로 데이터 독립성을 확보한다.

  • 개별 사용자 관점이며 여러 개 존재: 외부 스키마의 설명이며, 개념 스키마는 조직 전체 관점으로 하나만 존재한다.
  • 실제 물리적 저장 방식 정의: 내부 스키마의 설명이며, 외부 스키마는 사용자·응용 관점의 논리 구조다.
  • 외부·내부 스키마 사이의 데이터 종속성: 3단계 구조는 종속성을 없애 독립성을 주려는 것이고, 외부 스키마는 개념 스키마와 사상된다.
문제 16
다음 중 데이터베이스의 뷰(View)에 대한 설명으로 가장 옳은 것은?
1뷰는 실제 데이터를 물리적으로 저장하고 있는 테이블이므로, 생성 시 많은 저장 공간이 필요하다.
2뷰를 사용하면 사용자에게 필요한 일부만 보여줄 수 있어, 데이터 보안성을 높일 수 있다.
3뷰는 오직 하나의 기본 테이블(Base Table)로부터만 생성될 수 있으며, 여러 테이블을 조인하여 만들 수 없다.
4기본 테이블의 구조가 변경되면 뷰를 사용하더라도 응용 프로그램의 쿼리문 수정이 필요하다.
정답 및 해설

뷰는 필요한 열과 행만 골라 보여줄 수 있어 민감한 데이터를 감추는 보안 기능을 한다.

뷰는 기본 테이블에서 유도된 가상 테이블로, 정의(질의문)만 저장되고 데이터는 실행할 때 기본 테이블에서 가져온다.

  • 데이터를 물리적으로 저장: 뷰는 데이터를 저장하지 않으므로 큰 저장 공간이 필요 없다.
  • 하나의 기본 테이블에서만 생성: 여러 테이블을 조인하거나 다른 뷰를 바탕으로도 만들 수 있다.
  • 기본 테이블이 바뀌면 쿼리 수정 필요: 뷰 정의만 고치면 응용 프로그램은 그대로 쓸 수 있어 논리적 독립성을 제공한다.
문제 17
소프트웨어 모듈에서 결합도(Coupling)와 응집도(Cohesion)에 대한 설명으로 가장 옳지 않은 것은?
1좋은 소프트웨어 설계는 강한 응집과 약한 결합을 목적해야 한다.
2응집도는 모듈 내부의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 척도이다.
3결합도가 높아질수록 모듈 간의 연결성이 높아져 유지보수가 쉬워지고 재사용성이 좋아진다.
4기능적 응집도는 응집도의 단계 중 가장 높은 수준이다.
정답 및 해설

결합도가 높아지면 모듈 간 의존성이 커져 유지보수가 어려워지고 재사용성이 떨어진다.

한 모듈의 변경이 연결된 다른 모듈로 파급되기 때문이며, 좋은 설계는 응집도는 높이고 결합도는 낮춘다.

  • 강한 응집과 약한 결합 지향: 모듈 설계의 기본 원칙으로 옳다.
  • 응집도는 모듈 내부 요소의 관련 정도: 정의 그대로 옳다.
  • 기능적 응집도가 가장 높은 수준: 응집도는 우연적 → 논리적 → 시간적 → 절차적 → 교환적 → 순차적 → 기능적 순으로 높아지므로 옳다.
문제 18
다음 중 AI와 관련된 내용으로 가장 옳지 않은 것은?
1ChatGPT와 같이 인터넷을 통한 클라우드 서비스 AI모델은 보안 위험성이 있다.
2허깅페이스(Hugging Face)에서 다운로드 가능하도록 공개된 LLM(Large Language Model)은 격리된 폐쇄망 내부에서도 구동 가능하다.
3LLM은 텍스트 형태의 입력을 받으며, 이미지, 소리 등 기타 데이터 처리 과정에 응용하지 못한다.
4RAG(Retrieval-Augmented Generation)는 AI 모델에 대하여 일정 지식정보를 추가하여 답변 결과를 전문화 하기 위한 방법이다.
정답 및 해설

LLM은 텍스트뿐 아니라 이미지·음성 등을 함께 다루는 멀티모달 모델로 확장되어 쓰이므로, 기타 데이터에 응용하지 못한다는 설명이 틀렸다.

이미지를 입력받아 내용을 설명하거나 음성을 인식·생성하는 모델이 이미 서비스되고 있다.

  • 클라우드형 AI의 보안 위험: 입력한 데이터가 외부 서버로 전송되므로 정보 유출 위험이 있어 옳다.
  • 공개 LLM의 폐쇄망 구동: 모델 파일을 내려받으면 인터넷 없이 내부 서버에서 실행할 수 있어 옳다.
  • RAG: 외부 문서를 검색해 답변 생성에 참고 정보로 넣어 응답을 전문화하는 방법으로 옳다.
문제 19
다음 <보기>의 특성과 소프트웨어 개발 생명주기 모델이 가장 옳게 짝지어진 것은?
< 보 기 >
㉠ 순차적 단계 진행
㉡ 위험 분석 수행
㉢ 반복적 점진 개발
㉣ 테스트 단계 강조
㉤ 상세 문서 작성 우선
㉥ 유연한 요구사항 변경
구분폭포수 모델V-모델나선형 모델애자일 모델
①㉠㉥㉡㉤
②㉠㉣㉡㉥
③㉢㉣㉠㉥
④㉢㉥㉠㉤
1㉠, ㉥, ㉡, ㉤
2㉠, ㉣, ㉡, ㉥
3㉢, ㉣, ㉠, ㉥
4㉢, ㉥, ㉠, ㉤
정답 및 해설

폭포수는 순차적 단계 진행, V-모델은 테스트 단계 강조, 나선형은 위험 분석 수행, 애자일은 유연한 요구사항 변경이 바른 짝이다.

V-모델은 각 개발 단계에 대응하는 테스트 단계를 짝지어 검증을 강조하고, 나선형은 반복마다 위험 분석을 수행하며, 애자일은 짧은 반복으로 요구사항 변경에 대응한다. 상세 문서 작성 우선은 오히려 폭포수 쪽 특성이다.

  • V-모델에 유연한 요구사항 변경, 애자일에 상세 문서 작성 우선을 짝지은 조합: 애자일은 포괄적 문서보다 작동하는 소프트웨어를 중시하므로 틀리다.
  • 폭포수에 반복적 점진 개발, 나선형에 순차적 단계 진행을 짝지은 조합: 폭포수가 순차적이고 반복은 나선형·애자일의 특징이므로 틀리다.
  • 폭포수에 반복적 점진 개발, V-모델에 유연한 요구사항 변경을 짝지은 조합: 폭포수와 V-모델은 모두 순차형이라 틀리다.
문제 20
다음 <보기>에서 자바 코드의 실행 결과로 출력되는 값은?
< 보 기 >
class Calculator {
public int compute(int n) {
return n * 2;
}
}

class AddCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) + 10;
}
}

class SubCalculator extends Calculator {
@Override
public int compute(int n) {
return super.compute(n) - 5;
}
}

public class Main {
public static void main(String[] args) {
Calculator[] calcs = {
new AddCalculator(),
new SubCalculator(),
new Calculator()
};

int total = 0;
for (Calculator c : calcs) {
total += c.compute(10);
}

System.out.println(total);
}
}
145
255
360
465
정답 및 해설

배열의 세 객체가 각자 재정의된 메서드를 호출해 합계 65가 출력된다.

동적 바인딩으로 실제 객체 타입의 compute가 호출되고, super.compute(10)은 부모의 10×2=2010 \times 2 = 20을 돌려준다.

  • AddCalculator: 20+10=3020 + 10 = 30, 누적 total은 30
  • SubCalculator: 20−5=1520 - 5 = 15, 누적 total은 45
  • Calculator: 10×2=2010 \times 2 = 20, 누적 total은 65