문제지 PDF · 웹 정답 해설

정보처리기사 필기 2025년 3회 CBT 편집복원 100문항

정보처리기사 필기 2025년 3회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.

후기복원 100문항 시험기간 2025-08-09 ~ 2025-09-01 근거 기준일 2026-10-05

정보처리기사 필기 2025년 3회 CBT 편집복원 100문항 안내

정보처리기사 필기 2025년 3회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.

2025년 3회 범위의 후기복원 분류 대표 학습 세트입니다. CBT 원문이나 공식 정답표를 제공하는 자료가 아닙니다. 100문항의 해설을 기술 문서와 필요한 독립 계산으로 새로 편집 검토했으며, 질문·조건·보기를 바로잡은 문항은 학습용 개정문항으로 표시합니다.

정보처리기사 전체 자료 · 정보처리기사 CBT 학습실

정보처리기사 필기 기출문제 · 소프트웨어 설계

1. 설계 검토 회의에서 다음 항목을 판단한다. 애자일(Agile) 개발 방법론의 유형으로 보기 어려운 것은?

  1. Scrum
  2. SPICE
  3. Crystal
  4. XP(Extreme Programming)
정답과 해설 보기

정답: 2

정답은 ② SPICE이다. SPICE는 소프트웨어 프로세스의 능력을 평가하고 개선하는 체계와 관련된 명칭이며, 역사적으로 ISO/IEC 15504 표준군과 연결된다. 어떤 개발 절차가 요구 수준에 도달했는지 평가하는 목적과 애자일 개발 방법 자체를 구별해야 한다.

XP·Crystal·Scrum은 반복적인 전달과 피드백, 사람들의 협력에 초점을 둔 애자일 계열 접근법이다. 프로세스 평가를 한다는 이유만으로 애자일을 사용할 수 없는 것은 아니다. 또한 구 ISO/IEC 15504의 여러 부분은 후속 330xx 표준군으로 대체되었으므로 구판 번호를 현행 전체 체계와 동일시하지 않는다.

선지별 해설

  • ① 오답. Scrum은 짧은 주기의 검사와 적응을 사용하는 프레임워크다.
  • ② 정답. 프로세스 평가·능력 결정·개선 체계에 관한 명칭이다.
  • ③ 오답. Crystal은 팀과 프로젝트 상황에 맞추는 애자일 방법군이다.
  • ④ 오답. XP는 애자일 개발 실천을 제공한다.

편집 해설 근거: ISO/IEC 15504-4:2004, Process assessment, 공식 개요 및 대체 표준 표시 — Abstract 및 Withdrawn·Revised by 표시; Ron Jeffries, What is Extreme Programming? (2011) — What is Extreme Programming?; Schwaber·Sutherland, The Scrum Guide (2020) — Scrum Theory 및 Scrum Events; Alistair Cockburn, Crystal, the un-methodology (2024) — 본문 및 연결된 Crystal 발표 자료 소개

2. 설계 검토 회의에서 다음 항목을 판단한다. 디자인 패턴의 분류 중 행위(Behavioral) 패턴에 속하는 것은?

  1. Observer
  2. Proxy
  3. Bridge
  4. Decorator
정답과 해설 보기

정답: 1

정답은 ① Observer이다. 관찰 대상 객체의 상태가 바뀌면 등록된 관찰자들에게 알리는 관계를 구성한다. 예를 들어 측정값 하나가 바뀔 때 여러 화면이 통지를 받아 갱신되는 구조다. 객체 사이의 통신과 책임 배분을 다루므로 행위 패턴에 속한다.

Proxy·Bridge·Decorator는 객체나 클래스를 결합해 구조를 만드는 구조 패턴이다. 패턴의 이름만 외우기보다 상태 변화의 통지인지, 접근 대행·구현 분리·기능 장식인지 목적을 구별하면 분류하기 쉽다.

선지별 해설

  • ① 정답. 상태 변화에 따른 관찰자 통지는 행위 패턴이다.
  • ② 오답. 다른 객체에 대한 접근을 대행하는 구조 패턴이다.
  • ③ 오답. 추상 부분과 구현 부분을 분리하는 구조 패턴이다.
  • ④ 오답. 객체를 감싸 기능을 추가하는 구조 패턴이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §4.4 Design Patterns and Styles

3. 설계 검토 회의에서 다음 항목을 판단한다. UI 설계 원칙 중 사용자가 의도한 목표를 정확하고 완전하게 달성할 수 있도록 유도하는 원칙은?

  1. 유연성
  2. 직관성
  3. 유효성
  4. 학습성
정답과 해설 보기

정답: 3

정답은 ③ 유효성이다. 사용성에서 effectiveness는 사용자가 정해진 목표를 얼마나 정확하고 완전하게 달성하는가를 뜻한다. 예를 들어 주문한 상품과 수량이 정확하고 필수 배송 정보도 빠짐없이 제출되면 목표 달성의 정확성과 완전성을 평가할 수 있다.

같은 결과를 얻는 데 걸린 시간이나 노력은 효율성과 관련되므로 빠르기만 하면 유효성이 높다고 판단하지 않는다. 직관성은 이해하기 쉬운 조작, 학습성은 사용법을 익히는 정도, 유연성은 다양한 조건과 방식에 대응하는 성질에 초점을 둔다.

선지별 해설

  • ① 오답. 상황이나 사용자 방식의 차이를 수용하는 성질이다.
  • ② 오답. 조작을 직관적으로 이해하는 성질로 목표 달성의 정확성·완전성 정의와 다르다.
  • ③ 정답. 목표를 정확하고 완전하게 달성하는 정도다.
  • ④ 오답. 사용 방법을 배우는 데 관련된 성질이다.

편집 해설 근거: ISO 9241-220:2019, Human-centred design, 공개 용어 정의 — §3.4 effectiveness; §3.5 efficiency, ISO 9241-11:2018 §3.1.12·13 인용

4. 다음 중 분석·설계 모델과 산출물의 관리보다 컴파일러와 실행 환경의 역할을 직접 서술한 것은?

[학습용 개정문항]

  1. 분석·설계 등 생명주기 활동의 자동화 지원
  2. 모델링 간의 모순 검사
  3. 소스 프로그램의 목적 언어 번역 및 실행 환경에서의 실행
  4. 오류 검증 및 자료 흐름도 작성
정답과 해설 보기

정답: 3

정답은 ③이다. 컴파일러는 소스 프로그램을 분석하여 목적 언어로 번역한다. 번역된 프로그램을 실행하는 역할은 실행 환경이 담당한다. GCC의 경우에도 전처리, 컴파일, 어셈블, 링크가 구별되며 실행 자체를 컴파일과 동일시하지 않는다.

CASE는 분석·설계·검증·산출물 관리 같은 소프트웨어 공학 활동을 도구로 지원하는 넓은 개념이다. 통합 도구에 컴파일러가 포함될 수도 있으므로 CASE가 번역 기능을 절대로 제공하지 않는다는 구분은 부정확하다. 여기서는 보기 중 번역과 실행의 역할을 직접 설명한 문장을 찾는다.

선지별 해설

  • ① 오답. 생명주기 활동을 지원하는 도구의 넓은 역할이다.
  • ② 오답. 설계 모델 사이의 일관성을 검사하는 역할이다.
  • ③ 정답. 소스 번역과 실행 환경의 역할을 직접 서술한다.
  • ④ 오답. 분석 모델 작성과 검증을 지원하는 역할이다.

편집 해설 근거: GNU GCC Manual, Options Controlling the Kind of Output (2026-10-05 확인) — Overall Options, compilation stages; IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Models and Methods; Software Construction §5 Software Construction Tools

5. 설계 검토 회의에서 다음 항목을 판단한다. 소프트웨어 아키텍처 패턴 중 입력 데이터를 받아 처리한 결과를 다음 서브시스템으로 넘기는 과정을 반복하는 구조는?

  1. Pipe-Filter
  2. Layered Pattern
  3. Peer-to-Peer
  4. Master-Slave
정답과 해설 보기

정답: 1

정답은 ① Pipe-Filter이다. 입력 데이터가 여러 처리 단계를 차례로 통과하고, 각 필터의 출력이 파이프를 통해 다음 필터의 입력으로 전달된다. 로그를 읽어 필요한 행을 골라낸 뒤 요약하는 일련의 처리를 떠올리면 된다.

각 단계가 맡는 변환을 나누면 필터를 독립적으로 교체하거나 재사용하기 쉽다. 단순히 여러 서브시스템이 연결됐다는 사실보다 데이터 변환 결과를 연속해서 넘긴다는 조건이 핵심이다. 계층형·동등 참여자형·주종형은 다른 기준으로 역할과 연결 관계를 나눈다.

선지별 해설

  • ① 정답. 필터의 출력을 다음 필터로 전달하는 구조다.
  • ② 오답. 책임을 계층으로 나누는 구조이며 데이터 변환 파이프라인과는 구분한다.
  • ③ 오답. 참여 노드들이 동등한 역할로 서비스를 주고받는다.
  • ④ 오답. 주체가 작업을 분배하고 종속 작업자의 결과를 취합하는 역할 구조다.

편집 해설 근거: Microsoft Azure Architecture Center, Pipes and Filters pattern (2026-10-05 확인) — Context and problem; Solution

6. 설계 검토 회의에서 다음 항목을 판단한다. UML 다이어그램 중 정적(Static) 다이어그램에 속하지 않는 것은?

  1. 순차 다이어그램(Sequence Diagram)
  2. 컴포넌트 다이어그램(Component Diagram)
  3. 클래스 다이어그램(Class Diagram)
  4. 객체 다이어그램(Object Diagram)
정답과 해설 보기

정답: 1

정답은 ① 순차 다이어그램이다. 순차 다이어그램은 참여 객체나 요소의 생명선을 놓고 메시지가 오가는 순서를 나타내는 상호작용 다이어그램이다. 따라서 시스템의 동적인 행위를 설명하는 쪽에 속한다.

클래스 다이어그램은 클래스와 관계, 객체 다이어그램은 특정 시점의 인스턴스와 연결, 컴포넌트 다이어그램은 구성 요소와 의존 관계를 주로 나타낸다. 객체 다이어그램이 특정 시점을 보여 주더라도 시간에 따른 메시지 순서를 표현하는 순차 다이어그램과는 다르다.

선지별 해설

  • ① 정답. 시간 순서의 메시지 교환을 나타내는 행위 다이어그램이다.
  • ② 오답. 컴포넌트와 관계를 나타내는 구조 다이어그램이다.
  • ③ 오답. 클래스의 속성·연산·관계를 나타내는 구조 다이어그램이다.
  • ④ 오답. 인스턴스와 연결의 구조적 상태를 표현한다.

편집 해설 근거: OMG UML 2.5.1 (2017) — Annex A, Figure A.5 UML diagram taxonomy; §17 Interactions; IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §4.3 Behavioral Descriptions

7. 설계 검토 회의에서 다음 항목을 판단한다. XP(Extreme Programming)의 다섯 가지 핵심 가치로 보기 어려운 것은?

  1. 피드백(Feedback)
  2. 용기(Courage)
  3. 존중(Respect)
  4. 정량 설계(Quantitative Design)
정답과 해설 보기

정답: 4

정답은 ④ 정량 설계이다. XP의 다섯 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 짧은 개발 주기와 테스트로 결과를 확인하고, 팀원이 서로 정보를 나누며 필요한 변경을 수행하는 방향을 제시한다.

가치는 구체적인 실천 기법과도 구별한다. 예를 들어 테스트 우선 개발이나 짝 프로그래밍은 가치를 실현하는 실천이다. 수치 측정이나 정량 분석을 프로젝트에서 사용할 수는 있지만, 정량 설계가 XP의 다섯 가치 중 하나라는 뜻은 아니다.

선지별 해설

  • ① 오답. 결과를 자주 확인하는 피드백은 핵심 가치다.
  • ② 오답. 필요한 수정과 판단을 수행하는 용기는 핵심 가치다.
  • ③ 오답. 팀원의 기여와 관점을 존중하는 것은 핵심 가치다.
  • ④ 정답. XP의 다섯 가치 목록에 포함되지 않는다.

편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — 첫 문단, 다섯 가지 가치

8. 설계 검토 회의에서 다음 항목을 판단한다. 자료 흐름도(DFD)의 구성 요소로 보기 어려운 것은?

  1. Process
  2. Data Flow
  3. Data Store
  4. Cardinality
정답과 해설 보기

정답: 4

정답은 ④ Cardinality이다. 전통적인 자료 흐름도는 처리, 자료 흐름, 자료 저장소, 외부 개체를 통해 데이터가 어디에서 와서 어떻게 가공되고 어디로 가는지 표현한다. 따라서 보기의 Process·Data Flow·Data Store는 기본 요소에 해당한다.

카디널리티는 데이터 모델에서 관계의 대응 수를 설명할 때 쓰이며, 릴레이션의 행 수를 가리키기도 한다. 자료 흐름의 선이나 처리 과정을 뜻하지 않는다. DFD의 외부 개체가 보기에는 없더라도 기본 요소에서 빠지는 것은 아니다.

선지별 해설

  • ① 오답. 데이터를 변환하는 처리 요소다.
  • ② 오답. 요소 사이에 전달되는 데이터를 나타낸다.
  • ③ 오답. 데이터를 보관하는 저장소다.
  • ④ 정답. 대응 수 등의 개념이며 DFD의 기본 구성 요소가 아니다.

편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram, DFD element table

9. 설계 검토 회의에서 다음 항목을 판단한다. 모바일 제스처(Mobile Gesture)의 종류로 보기 어려운 것은?

  1. Drag
  2. Flick
  3. Flow
  4. Tap
정답과 해설 보기

정답: 3

정답은 ③ Flow이다. 일반적인 터치 조작에서 Tap은 짧게 누르기, Drag는 접촉을 유지하며 이동하기, Flick은 빠르게 쓸어 움직임을 전달하는 동작을 가리킨다. Android API에서도 탭·스크롤·플링을 구분하여 감지한다.

Flow는 흐름이라는 일반 단어이며 이 보기에서 손가락의 특정 조작을 나타내는 통상적인 제스처 명칭에 해당하지 않는다. 특정 제품이 Flow라는 이름을 기능에 붙일 수는 있으므로 모든 제품에서 그 단어가 존재하지 않는다고 단정하는 문제는 아니다.

선지별 해설

  • ① 오답. 접촉을 유지한 채 끄는 조작이다.
  • ② 오답. 빠르게 쓸어 움직임을 주는 조작으로 플링과 관련된다.
  • ③ 정답. 이 보기에서 일반적인 터치 조작 명칭이 아니다.
  • ④ 오답. 짧게 누르는 탭 조작이다.

편집 해설 근거: Android Developers, GestureDetector.OnGestureListener — onSingleTapUp, onScroll, onFling

10. 설계 검토 회의에서 다음 항목을 판단한다. 미들웨어(Middleware) 종류 중 메시지 기반의 비동기 통신을 제공하는 방식은?

  1. ORB
  2. WAS
  3. RPC
  4. MOM
정답과 해설 보기

정답: 4

정답은 ④ MOM이다. 메시지 지향 미들웨어는 송신자가 메시지를 전달하고 수신자가 이를 받아 처리하는 구조를 제공한다. 큐에 메시지를 보관하면 송신자와 수신자가 동시에 실행되거나 즉시 응답을 기다릴 필요를 줄일 수 있다.

JMS는 이러한 메시지 통신에 접근하는 대표적인 Java API다. ORB는 분산 객체의 요청 중개, RPC는 원격 절차 호출, WAS는 웹 애플리케이션 실행 환경을 중심으로 설명하는 용어다. 이들도 비동기 기능을 포함할 수 있지만 메시지 지향 통신이라는 분류에 직접 대응하는 것은 MOM이다.

선지별 해설

  • ① 오답. 분산 객체 호출을 중개하는 ORB를 뜻한다.
  • ② 오답. 웹 애플리케이션 실행과 관련 서비스를 제공하는 서버다.
  • ③ 오답. 원격 절차를 호출하는 통신 방식이다.
  • ④ 정답. 메시지 중심의 느슨한 결합과 비동기 전달에 대응한다.

편집 해설 근거: Oracle Java EE 7 Tutorial, Overview of the JMS API — §45.1.1 What Is Messaging?; §45.1.2; §45.1.4

11. 설계 검토 회의에서 다음 항목을 판단한다. 컴포넌트 설계에서 협약(Contract)에 의한 설계의 조건으로 보기 어려운 것은?

  1. 외부 조건(External condition)
  2. 선행 조건(Precondition)
  3. 결과 조건(Postcondition)
  4. 불변 조건(Invariant)
정답과 해설 보기

정답: 1

정답은 ① 외부 조건이다. 계약에 의한 설계는 호출자와 제공자가 지켜야 하는 약속을 명시한다. 선행 조건은 호출 전에 만족해야 할 조건, 결과 조건은 정상적인 실행 뒤 제공자가 보장하는 조건, 불변 조건은 객체의 일관된 상태를 규정하는 조건이다.

예를 들어 잔액이 충분해야 출금할 수 있다는 조건은 선행 조건, 출금 뒤 잔액이 출금액만큼 줄어든다는 조건은 결과 조건이다. 불변 조건은 공개 연산의 진입·종료 같은 계약 경계에서 유지해야 하며 내부 처리의 모든 순간에 같은 식이 성립한다고 단순화하지 않는다.

선지별 해설

  • ① 정답. 제시된 세 가지 계약 조건의 일반적인 분류명이 아니다.
  • ② 오답. 호출자가 만족시켜야 하는 선행 조건이다.
  • ③ 오답. 제공자가 실행 후 보장하는 결과 조건이다.
  • ④ 오답. 클래스의 일관성을 규정하는 불변 조건이다.

편집 해설 근거: Eiffel Software, Design by Contract Introduction — §3 The Role of Contracts; §5 Invariants

12. 설계 검토 회의에서 다음 항목을 판단한다. 시스템의 기본 요소 중 처리 결과가 기대치에 미치지 못했을 때 그 결과를 다시 입력으로 되돌리는 과정은?

  1. 입력(Input)
  2. 출력(Output)
  3. 피드백(Feedback)
  4. 제어(Control)
정답과 해설 보기

정답: 3

정답은 ③ 피드백이다. 피드백은 시스템의 출력이나 관측 결과를 다시 입력 또는 조정 정보로 되돌려 이후 동작에 영향을 주는 과정이다. 온도 조절기가 실제 온도를 읽어 목표 온도와 비교하고 가열량을 바꾸는 예를 생각할 수 있다.

입력은 시스템에 들어오는 신호, 출력은 처리 결과, 제어는 원하는 동작을 얻도록 조정하는 활동을 가리킨다. 결과를 되돌리는 경로를 직접 묻는 말은 피드백이다. 피드백은 결과가 나쁠 때만 발생하는 것이 아니며, 정상 상태에서도 계속 관측해 상태를 유지할 수 있다.

선지별 해설

  • ① 오답. 시스템으로 들어가는 신호의 역할을 뜻한다.
  • ② 오답. 처리되어 나온 결과를 뜻한다.
  • ③ 정답. 관측 결과를 되돌려 이후 동작에 반영하는 과정이다.
  • ④ 오답. 동작을 조정하는 넓은 활동이며 결과의 되돌림 자체와는 구별한다.

편집 해설 근거: Åström·Murray, Feedback Systems (2008, 2012 전자판), 저자 제공 원문 — Chapter 1, §1.1 What Is Feedback?

13. 설계 검토 회의에서 다음 항목을 판단한다. 기업 내 애플리케이션 통합(EAI) 구축 유형 중 중앙의 허브를 두고 데이터를 전송하는 방식은?

  1. Hub-and-Spoke
  2. Message Bus
  3. Hybrid
  4. Point-to-Point
정답과 해설 보기

정답: 1

정답은 ① Hub-and-Spoke이다. 각 애플리케이션을 중앙 허브에 연결하고 허브가 메시지의 전달·변환·라우팅 등을 중개한다. 자전거 바퀴의 중심과 바큇살처럼 연결되는 모습에서 이름이 왔다. 시스템 쌍마다 개별 연결을 늘리는 부담을 줄일 수 있다.

Message Bus는 공통 메시지 통신 기반을 강조하는 용어이며 실제 제품에서는 허브와 버스의 기능이 겹칠 수도 있다. 따라서 여기서는 중앙의 단일 중개 지점을 중심으로 방사형 연결을 구성한다는 형태에 가장 직접적인 이름을 고른다. 허브 장애의 영향 범위도 설계 시 고려해야 한다.

선지별 해설

  • ① 정답. 중앙 허브와 개별 연결로 이루어진 형태의 이름이다.
  • ② 오답. 공통 메시지 기반을 강조하며 중앙 방사형 연결의 직접적인 명칭은 아니다.
  • ③ 오답. 여러 통합 방식을 함께 사용하는 혼합형이다.
  • ④ 오답. 필요한 시스템 쌍을 직접 연결하는 방식이다.

편집 해설 근거: IBM, What Is Enterprise Application Integration? (2026-10-05 확인) — Hub and spoke integration

14. 설계 검토 회의에서 다음 항목을 판단한다. 사용자가 소프트웨어를 얼마나 쉽게 배우고 편리하게 사용할 수 있는지를 나타내는 품질 특성은?

  1. 신뢰성(Reliability)
  2. 무결성(Integrity)
  3. 가용성(Availability)
  4. 사용성(Usability)
정답과 해설 보기

정답: 4

정답은 ④ 사용성이다. 사용성은 특정 사용자가 특정 사용 맥락에서 목표를 달성할 때의 효과성·효율성·만족과 관련된다. 사용법을 배우기 쉽고 조작이 이해하기 쉬운 것은 이를 높이는 중요한 요소다. 기능이 많아도 사용자가 목적을 달성하기 어렵다면 사용성이 높다고 보기 어렵다.

신뢰성은 정해진 조건과 기간에 기능을 지속적으로 수행하는 성질, 무결성은 데이터나 시스템의 부당한 변경을 방지하는 성질, 가용성은 필요할 때 접근하고 이용할 수 있는 성질을 가리킨다. 접속 가능 여부와 쉽게 사용할 수 있는 정도는 별개로 살펴야 한다.

선지별 해설

  • ① 오답. 기능 수행의 신뢰와 지속성에 초점을 둔다.
  • ② 오답. 정보의 정확한 상태와 부당한 변경 방지에 초점을 둔다.
  • ③ 오답. 필요할 때 사용 가능하고 접근 가능한 정도다.
  • ④ 정답. 사용자의 목표 달성과 조작·학습의 용이성에 관련된다.

편집 해설 근거: ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2.4 Usability; §4.2.4.2 Learnability; §4.2.4.3 Operability

15. Boehm의 1988년 나선형 모델에서 한 반복의 네 구역을 목표 설정부터 순서대로 설명한 것은?

[학습용 개정문항]

  1. 요구분석 → 위험분석 → 설계 → 평가
  2. 목표·대안·제약 정의 → 위험 분석·해소 → 다음 산출물 개발·검증 → 다음 반복 계획
  3. 계획 → 개발 → 위험분석 → 보수
  4. 분석 → 설계 → 구현 → 테스트
정답과 해설 보기

정답: 2

정답은 ②이다. Boehm의 나선형 모델은 한 번에 완성하려 하기보다 반복마다 목표·대안·제약을 정하고, 대안의 위험을 분석하여 줄인 뒤, 다음 수준의 산출물을 개발·검증하고 다음 반복을 계획한다. 위험 분석이 다음 활동의 선택을 이끄는 것이 핵심이다.

위험을 줄이는 수단은 시제품뿐 아니라 시뮬레이션이나 분석도 될 수 있다. 고객 및 이해관계자의 검토는 각 반복의 진행 판단에 관여한다. 기존의 간단한 암기 순서가 원문의 네 구역과 혼동되지 않도록 이번 문항에서는 원문 구역의 의미를 직접 표시했다.

선지별 해설

  • ① 오답. 목표·대안·제약과 다음 반복 계획이 빠져 원문의 네 구역을 그대로 설명하지 못한다.
  • ② 정답. 목표 설정, 위험 해소, 개발·검증, 다음 반복 계획의 흐름이다.
  • ③ 오답. 위험 평가를 개발 뒤로 미루고 반복 계획 대신 보수만 제시했다.
  • ④ 오답. 일반적인 개발 활동의 나열이며 나선형의 위험 해소 반복을 드러내지 못한다.

편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — Figure 2 및 A typical cycle of the spiral, 인쇄 pp.64~66

16. 설계 검토 회의에서 다음 항목을 판단한다. 폭포수(Waterfall) 모델에 대한 기술로 알맞은 것은?

[학습용 개정문항]

  1. 단계별 산출물과 검토 기준을 정하고 순차적으로 진행한다.
  2. 개발 도중 요구사항 변경이 용이하다.
  3. 시제품을 만들어 고객의 피드백을 수시로 받는다.
  4. 위험 분석 단계를 통해 프로젝트 실패 가능성을 낮춘다.
정답과 해설 보기

정답: 1

정답은 ①이다. 전형적인 폭포수 모델은 요구사항·설계·구현·시험 같은 단계와 각 단계의 산출물을 정해 순차적으로 진행한다. 이전 단계의 결과를 다음 단계의 기준으로 삼으므로 문서와 검토 기준이 중요하다.

다만 모든 프로젝트에 동일한 매뉴얼 작성이 반드시 필요하다고 단정할 수는 없다. 요구사항이 크게 바뀌면 이미 완료한 분석·설계·구현을 다시 검토하는 비용이 커질 수 있다. 잦은 시제품 피드백이나 명시적인 위험 중심 반복은 각각 다른 개발 접근법을 더 직접적으로 설명한다.

선지별 해설

  • ① 정답. 단계별 산출물과 순차적인 진행이 대표 특성이다.
  • ② 오답. 후속 단계가 앞선 산출물에 의존하여 변경 비용이 커질 수 있다.
  • ③ 오답. 시제품 중심의 반복 피드백을 설명한다.
  • ④ 오답. 위험 분석 중심의 반복은 나선형 모델의 특징이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §7.1 Iterative Nature of the Requirements Process; Software Construction §2.1 Construction in Life Cycle Models

17. 2025년 회차의 기준에서 프로젝트 관리·품질 보증을 포함하여 소프트웨어 생명주기 프로세스의 공통 체계를 정한 국제 표준 계열은?

[학습용 개정문항]

  1. ISO/IEC 15504(SPICE)
  2. CMMI
  3. IEEE 802.11
  4. ISO/IEC 12207
정답과 해설 보기

정답: 4

정답은 ④ ISO/IEC 12207이다. 이 표준 계열은 소프트웨어의 획득·개발·운영·유지보수 등을 포함하는 생명주기 프로세스의 공통 체계를 제공한다. 프로젝트 관리와 품질 보증도 생명주기 활동 안에서 다루며, 특정 프로그래밍 언어나 한 가지 개발 방법을 지정하는 표준은 아니다.

ISO/IEC 15504는 프로세스 평가와 관련된 구 표준군이고 CMMI는 프로세스 개선 모델이다. IEEE 802.11은 무선 LAN 표준이다. 2025년 회차의 문맥에서는 2017판을 기준으로 설명하되, 2026-10-05 확인 시 ISO가 2026판으로의 대체를 표시하고 있음을 구별한다.

선지별 해설

  • ① 오답. 프로세스 평가·능력 결정 체계와 관련된 표준군이다.
  • ② 오답. 조직의 프로세스 능력과 성숙도 개선 모델이다.
  • ③ 오답. 무선 LAN을 다루는 통신 표준이다.
  • ④ 정답. 소프트웨어 생명주기 프로세스를 정하는 표준 계열이다.

편집 해설 근거: ISO/IEC/IEEE 12207:2017, Software life cycle processes, ISO 공식 개요 — Abstract 및 Withdrawn·Revised by ISO/IEC/IEEE 12207:2026 표시; ISO/IEC 15504-4:2004, Process assessment, 공식 개요 및 대체 표준 표시 — Abstract

18. 설계 검토 회의에서 다음 항목을 판단한다. 형상 관리(Configuration Management)의 절차 중 형상 항목의 변경을 검토하고 승인하는 단계는?

  1. 형상 감사
  2. 형상 기록
  3. 형상 식별
  4. 형상 통제
정답과 해설 보기

정답: 4

정답은 ④ 형상 통제이다. 형상 항목을 바꾸려는 요청의 이유와 영향을 검토하고 승인·거절·보류를 결정하는 활동이 형상 변경 통제에 속한다. 승인된 변경이 실제 버전에 반영되었는지 추적하는 절차도 필요하다.

형상 식별은 관리할 항목과 기준선을 정하는 일, 형상 기록은 항목·버전·변경 상태를 기록하고 보고하는 일, 형상 감사는 산출물이 요구와 승인 상태에 맞는지 확인하는 일이다. 변경 내용을 기록했다고 해서 변경 승인이 자동으로 이루어지는 것은 아니다.

선지별 해설

  • ① 오답. 산출물과 승인 상태의 일치 여부 등을 확인한다.
  • ② 오답. 항목·버전·변경 이력을 기록하고 보고한다.
  • ③ 오답. 관리 대상 항목과 식별 방법·기준선을 정한다.
  • ④ 정답. 변경 요청의 검토와 승인 여부를 통제한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management §3.1 Requesting, Evaluating and Approving Software Changes; §3.1.1 Configuration Control Board

19. 설계 검토 회의에서 다음 항목을 판단한다. 객체지향 기법에서 데이터와 연산을 하나로 묶고 내부 구현 내용을 외부로부터 감추는 것은?

  1. 추상화(Abstraction)
  2. 상속(Inheritance)
  3. 다형성(Polymorphism)
  4. 캡슐화(Encapsulation)
정답과 해설 보기

정답: 4

정답은 ④ 캡슐화이다. 객체는 상태를 나타내는 데이터와 이를 다루는 연산을 함께 묶는다. 내부 구현에 직접 접근하기보다 공개된 메서드로 사용하게 하면 객체의 규칙을 지키고 구현 변경이 외부에 미치는 영향을 줄일 수 있다.

예를 들어 계좌 잔액을 외부에서 마음대로 바꾸지 못하게 하고 입금·출금 메서드가 검사하도록 설계한다. 추상화는 필요한 특성을 골라 표현하는 것, 상속은 기존 타입의 특성을 이어받는 것, 다형성은 같은 인터페이스의 호출이 실제 객체에 따라 다르게 동작하는 것에 초점을 둔다.

선지별 해설

  • ① 오답. 핵심 특성을 골라 모델로 표현하는 개념이다.
  • ② 오답. 다른 클래스의 특성을 이어받아 확장하는 개념이다.
  • ③ 오답. 같은 인터페이스의 동작이 실제 타입에 따라 달라지는 성질이다.
  • ④ 정답. 상태와 연산을 묶고 내부 구현 접근을 제한한다.

편집 해설 근거: Oracle Java Tutorials (JDK 8), What Is an Object? — What Is an Object?, data encapsulation

20. 설계 검토 회의에서 다음 항목을 판단한다. 소프트웨어 공학의 기본 원칙과 관련성이 가장 낮은 방침을 고르면?

  1. 품질이 높은 소프트웨어 제작
  2. 개발 비용의 최소화
  3. 문서화의 배제 및 코드 위주 개발
  4. 개발 기간의 단축
정답과 해설 보기

정답: 3

정답은 ③이다. 소프트웨어 공학은 요구와 제약에 맞는 품질을 얻기 위해 개발과 유지보수를 체계적으로 수행한다. 비용과 일정도 관리 대상이지만 필요한 품질을 희생하면서 무조건 줄이라는 뜻은 아니다. 설계 의도·운영 방법·변경 이력처럼 필요한 문서는 협업과 유지보수의 근거가 된다.

애자일에서도 작동하는 소프트웨어를 포괄적인 문서보다 더 중시할 뿐, 문서의 가치를 없다고 말하지 않는다. 프로젝트에 필요한 만큼 문서화하는 것과 문서화를 일괄적으로 배제하는 것은 다르므로 ③이 가장 거리가 멀다.

선지별 해설

  • ① 오답. 요구를 만족하는 품질 확보는 중요한 목적이다.
  • ② 오답. 필요한 품질과 범위 안에서 비용 효율을 관리한다.
  • ③ 정답. 필요한 문서까지 배제하는 일괄 방침은 타당하지 않다.
  • ④ 오답. 품질·범위와 함께 개발 일정의 효율을 관리한다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — Four values 및 That is, while there is value 문장; IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Economics, Introduction

정보처리기사 필기 기출문제 · 소프트웨어 개발

21. 개발·시험 담당자가 다음 사례를 검토한다. 통합 테스트 기법 중 하위 모듈에서 상위 모듈로 통합하면서, 데이터 전달을 위해 드라이버(Driver)가 필요한 방식은?

  1. 상향식 통합 테스트
  2. 빅뱅 테스트
  3. 백병 테스트
  4. 하향식 통합 테스트
정답과 해설 보기

정답: 1

정답은 ① 상향식 통합 테스트이다. 먼저 하위 모듈을 결합해 시험하고 점차 상위 모듈까지 통합한다. 아직 실제 상위 호출 모듈이 없을 때 이를 대신하여 시험 데이터를 전달하고 결과를 받는 프로그램이 드라이버다.

하향식 통합에서는 반대로 아직 구현되지 않은 하위 모듈의 응답을 스텁으로 대신할 수 있다. 빅뱅은 여러 모듈을 한꺼번에 결합하는 접근이다. 드라이버와 스텁은 실제 구성과 시험 환경에 따라 함께 사용될 수도 있지만, 지문의 상위 호출 역할을 대신하는 필요는 상향식 접근에 직접 연결된다.

선지별 해설

  • ① 정답. 하위부터 통합하며 상위 호출부를 드라이버로 대신한다.
  • ② 오답. 여러 모듈을 한꺼번에 결합하는 방식이다.
  • ③ 오답. 이 통합 순서를 뜻하는 표준적인 기법 명칭이 아니다.
  • ④ 오답. 상위부터 통합하고 미완성 하위 모듈을 스텁으로 대신한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §2.1.2 Integration Testing; ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing; §2.2.2 Integration Testing

22. 단위 비용 모델에서 입력 크기 n과 무관하게 일정한 수의 기본 연산을 수행하는 알고리즘의 시간 복잡도를 보기 중 가장 긴밀한 Big-O 상한으로 나타낸 것은?

[학습용 개정문항]

  1. O(log n)
  2. O(n^2)
  3. O(1)
  4. O(n)
정답과 해설 보기

정답: 3

정답은 ③ O(1)이다. 입력 크기가 n으로 증가하더라도 필요한 기본 연산의 수가 일정한 상한 안에 머무르면 상수 시간이라고 한다. 예를 들어 이미 존재하는 배열의 특정 유효 인덱스 원소 하나를 읽는 동작을 단위 비용 모델로 보면 이에 해당한다.

이는 모든 컴퓨터에서 실제 시간이 정확히 동일한 나노초라는 뜻은 아니다. 장치·캐시·실행 환경에 따라 실제 시간은 달라진다. 또한 O 표기는 상한이므로 느슨한 큰 상한도 쓸 수 있어, 이 문항은 보기 중 가장 긴밀한 상한을 묻도록 명확히 했다.

선지별 해설

  • ① 오답. 로그 시간 상한이며 상수 비용을 가장 긴밀하게 나타내지 않는다.
  • ② 오답. 이차 시간 상한으로 지나치게 느슨하다.
  • ③ 정답. 입력 크기와 무관한 상수 비용의 긴밀한 상한이다.
  • ④ 오답. 선형 시간 상한이며 상수 비용보다 느슨하다.

편집 해설 근거: NIST DADS — Big-O notation — Definition 및 formal definition

23. 소프트웨어 결함이 일부 모듈에 집중되는 경향을 80/20이라는 경험적 비유로 설명할 때 연결되는 원칙은? (정확한 비율을 보장하는 수학 법칙을 뜻하지 않는다.)

[학습용 개정문항]

  1. 오류 부재의 궤변
  2. 살충제 패러독스
  3. 파레토 법칙
  4. 브룩스의 법칙
정답과 해설 보기

정답: 3

정답은 ③ 파레토 법칙이다. 시험에서 발견한 결함이 모든 모듈에 고르게 분포하지 않고 일부 모듈에 많이 모이는 현상과 연결해 이해한다. 자주 바뀌거나 복잡한 모듈 등 결함이 집중되는 부분을 찾아 시험의 우선순위를 정하는 데 참고할 수 있다.

80 대 20은 분포의 불균형을 설명하는 경험적인 비유이며 모든 프로그램이 정확히 그 비율을 만족한다는 법칙은 아니다. 결함 집중도가 낮은 모듈의 시험을 무조건 생략해도 된다는 뜻도 아니다. 실제 결함 자료와 위험도를 함께 살펴야 한다.

선지별 해설

  • ① 오답. 오류가 없더라도 사용자 필요를 충족하지 못하면 쓸모없다는 취지다.
  • ② 오답. 같은 시험만 반복하면 새로운 결함을 찾기 어려워지는 문제다.
  • ③ 정답. 일부 원인에 많은 결과가 집중되는 경험 원칙이다.
  • ④ 오답. 지연된 프로젝트에 인력을 추가하면 더 늦어질 수 있다는 설명이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.3 Seven Testing Principles, Defects cluster together; Joseph M. Juran, The Non-Pareto Principle; Mea Culpa (1974), Juran Institute 보존 자료 — p.1, vital few and useful many

24. 개발·시험 담당자가 다음 사례를 검토한다. 개발자의 개입 없이 사용자가 자신의 환경에서 직접 수행하는 테스트는?

  1. 알파 테스트
  2. 베타 테스트
  3. 단위 테스트
  4. 회귀 테스트
정답과 해설 보기

정답: 2

정답은 ② 베타 테스트이다. 베타 테스트는 잠재 사용자나 실제 사용자가 개발 조직 외부의 자신의 환경에서 수행하는 인수 테스트의 한 형태다. 실제 사용 조건에서의 문제와 피드백을 얻는 데 목적이 있다.

알파 테스트는 보통 개발 조직의 환경에서 개발팀 외부 역할의 시험자나 사용자가 수행한다. 단위 테스트는 개별 구성 요소, 회귀 테스트는 변경으로 기존 기능이 나빠졌는지 확인하는 시험이다. 베타 테스트에서도 개발자가 결함을 접수하고 지원할 수 있으므로 모든 관여가 금지된다는 뜻은 아니다.

선지별 해설

  • ① 오답. 일반적으로 개발 조직의 환경에서 수행하는 인수 시험 형태다.
  • ② 정답. 사용자의 실제 환경에서 수행하는 시험 형태다.
  • ③ 오답. 개별 구성 요소의 동작을 확인하는 수준이다.
  • ④ 오답. 변경이 기존 기능에 준 영향을 확인하는 시험이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.4 Acceptance Testing, Alpha and beta testing

25. 이진 트리의 연결이 A의 왼쪽 B·오른쪽 E, B의 왼쪽 C·오른쪽 D, E의 왼쪽 F·오른쪽 G이다. 전위 순회 결과는?

  1. C-D-B-G-F-E-A
  2. A-B-C-D-E-F-G
  3. B-C-D-A-E-F-G
  4. A-B-E-C-D-F-G
정답과 해설 보기

정답: 2

정답은 ② A-B-C-D-E-F-G이다. 전위 순회는 현재 노드를 먼저 방문하고 왼쪽 부분 트리, 오른쪽 부분 트리를 차례로 방문한다. 루트 A를 먼저 기록하고, 왼쪽 B에서 B-C-D를 모두 방문한 다음 오른쪽 E에서 E-F-G를 방문한다.

같은 트리라도 중위 순회는 왼쪽·현재·오른쪽, 후위 순회는 왼쪽·오른쪽·현재 순서이므로 결과가 달라진다. 전위의 “전”은 부모 노드를 두 자식 부분 트리보다 먼저 처리한다는 뜻으로 연결하면 순서를 기억하기 쉽다.

선지별 해설

  • ① 오답. 루트 A가 마지막이라 전위 순회가 아니다.
  • ② 정답. 현재-왼쪽-오른쪽 순서로 모든 노드를 방문했다.
  • ③ 오답. 루트 A보다 B가 먼저 나와 전위 규칙을 어겼다.
  • ④ 오답. 왼쪽 부분 트리를 끝내기 전에 오른쪽 E를 방문했다.

편집 해설 근거: NIST DADS, preorder traversal — Definition

26. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 설계에서 지향해야 할 방향으로 알맞은 것은?

  1. 결합도와 응집도 모두 높인다.
  2. 결합도와 응집도 모두 낮춘다.
  3. 결합도는 높이고, 응집도는 낮춘다.
  4. 결합도는 낮추고, 응집도는 높인다.
정답과 해설 보기

정답: 4

정답은 ④ 결합도를 낮추고 응집도를 높인다이다. 결합도는 모듈 사이의 의존 정도이고 응집도는 한 모듈 안의 요소들이 하나의 책임을 위해 얼마나 밀접하게 관련되는가를 나타낸다. 필요한 인터페이스로만 협력하고 내부에는 관련된 기능을 모으는 설계를 지향한다.

예를 들어 결제 모듈에 무관한 화면 출력과 파일 관리까지 뒤섞으면 응집도가 낮아질 수 있다. 한 모듈의 작은 변경 때문에 여러 모듈을 함께 고쳐야 한다면 결합도를 살펴볼 필요가 있다. 실제로 모듈 간 협력은 필요하므로 결합을 무조건 0으로 만들라는 뜻은 아니다.

선지별 해설

  • ① 오답. 응집도를 높이는 것은 적절하지만 불필요한 결합 증가는 피한다.
  • ② 오답. 결합도는 낮추되 관련 기능의 응집도는 높이는 편이 좋다.
  • ③ 오답. 의존을 높이고 내부 관련성을 낮추는 방향은 바람직하지 않다.
  • ④ 정답. 모듈 간 의존을 줄이고 모듈 내부의 책임을 일관되게 만든다.

편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Coupling and cohesion

27. 개발·시험 담당자가 다음 사례를 검토한다. 제품 소프트웨어 패키징 시 고려사항으로 틀린 설명을 고르면?

  1. 소스코드의 전체 공개 원칙 준수
  2. 사용자 편의성을 고려한 설치 프로그램 제공
  3. 하드웨어 환경 및 OS의 호환성 확인
  4. 버전 관리를 위한 릴리즈 노트 작성
정답과 해설 보기

정답: 1

정답은 ①이다. 소프트웨어를 배포 가능한 형태로 묶을 때 모든 제품의 소스코드를 반드시 전부 공개해야 한다는 공통 원칙은 없다. 배포 형식과 공개 범위는 제품의 목적 및 적용 조건에 맞게 정해야 한다. 오픈 소스의 소스 제공 요건을 모든 소프트웨어에 그대로 적용할 수는 없다.

사용자가 설치할 수 있는 절차, 지원하는 운영체제·하드웨어, 버전 및 변경 사항은 배포 품질에 직접 영향을 준다. 릴리즈 노트는 무엇이 달라졌는지와 알려진 제약을 전달하여 설치·업데이트 판단을 돕는다.

선지별 해설

  • ① 정답. 모든 제품에 전체 소스 공개를 강제하는 일반 패키징 원칙은 없다.
  • ② 오답. 설치 과정의 이해와 수행이 쉬워야 한다.
  • ③ 오답. 대상 장치와 운영환경에서 사용할 수 있는지 확인해야 한다.
  • ④ 오답. 버전별 변경과 알려진 제약을 전달하는 데 필요하다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management §6 Software Release Management and Delivery; Open Source Initiative, The Open Source Definition — §2 Source Code

28. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 재공학(Re-engineering) 활동 중 기존 코드를 분석해 설계 정보를 추출하는 과정은?

  1. 역공학(Reverse Engineering)
  2. 재구성(Restructuring)
  3. 이식(Migration)
  4. 분석(Analysis)
정답과 해설 보기

정답: 1

정답은 ① 역공학이다. 이미 존재하는 프로그램이나 시스템을 분석해 구성 요소와 관계, 설계 수준의 정보를 알아내는 작업이다. 코드를 읽어 모듈 관계와 처리 흐름을 문서화하는 것이 한 예다. 구현에서 더 높은 추상 수준의 표현을 찾아가는 방향에 주목한다.

역공학 자체는 대상 시스템을 바꾸지 않는 분석 활동이다. 재구성은 같은 추상 수준에서 표현을 바꾸는 작업, 이식은 다른 환경으로 옮기는 작업과 관련된다. 보기의 일반적인 분석보다 구현으로부터 설계 정보를 회복한다는 목적을 구체적으로 부르는 말이 역공학이다.

선지별 해설

  • ① 정답. 기존 구현을 분석해 설계와 구조 정보를 회복한다.
  • ② 오답. 같은 수준의 표현을 변경하는 활동과 관련된다.
  • ③ 오답. 새로운 실행 환경 등으로 옮기는 활동이다.
  • ④ 오답. 넓은 일반 명칭이며 지문에 해당하는 구체적인 활동명은 역공학이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Maintenance §4.3 Reverse Engineering

29. ISO/IEC 25010:2011의 제품 품질 모델에서, 명시된 사용 조건하에 명시적·암묵적 필요를 충족하는 기능을 제공하는 정도에 해당하는 특성은?

[학습용 개정문항]

  1. 성능 효율성(Performance efficiency)
  2. 유지보수성(Maintainability)
  3. 이식성(Portability)
  4. 기능 적합성(Functional suitability)
정답과 해설 보기

정답: 4

정답은 ④ 기능 적합성이다. 명시된 사용 조건에서 사용자와 이해관계자가 명시했거나 암묵적으로 필요로 하는 기능을 제공하는 정도다. 요구한 업무를 빠뜨리지 않았는지, 결과가 정확한지, 작업 목적 달성에 적절한지가 관련된다.

처리 속도와 자원 사용은 성능 효율성, 수정의 용이성은 유지보수성, 다른 환경으로 옮기는 성질은 2011판의 이식성에 해당한다. 이 문항은 보기의 분류와 맞도록 ISO/IEC 25010:2011 모델을 명시했으며 이후 개정판의 특성 명칭과 혼용하지 않는다.

선지별 해설

  • ① 오답. 처리 성능과 사용 자원 사이의 관계다.
  • ② 오답. 유지보수자가 효과적·효율적으로 수정할 수 있는 정도다.
  • ③ 오답. 2011판에서 다른 환경으로 옮겨 사용할 수 있는 정도다.
  • ④ 정답. 명시적·암묵적 필요를 충족하는 기능 제공 정도다.

편집 해설 근거: ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2.1 Functional suitability; §4.2.2; §4.2.7; §4.2.8

30. 하나의 연결된 모듈을 나타내는 제어 흐름 그래프에서 McCabe 순환 복잡도의 계산식은? (E: 간선 수, N: 노드 수)

[학습용 개정문항]

  1. V(G) = N – E + 2
  2. V(G) = E – N + 1
  3. V(G) = E – N + 2
  4. V(G) = E + N – 2
정답과 해설 보기

정답: 3

정답은 ③ V(G)=E-N+2이다. 단일 모듈의 연결된 제어 흐름 그래프에서 간선 수 E에서 노드 수 N을 뺀 뒤 2를 더한다. 순환 복잡도는 독립적인 기본 경로의 수를 나타내며 조건 분기가 증가할수록 복잡해지는 구조를 평가하는 데 쓰인다.

예를 들어 E=5, N=4이면 V(G)=3이다. 여기서 그래프는 하나의 연결된 모듈을 나타낸다는 조건이 필요하다. 여러 연결 성분을 일반화한 식이나 일반 그래프의 순환 공간 차원과 기호만 보고 혼동하지 않아야 한다.

선지별 해설

  • ① 오답. 간선과 노드의 차를 반대로 계산했다.
  • ② 오답. 단일 모듈 제어 흐름 그래프의 보정항은 2다.
  • ③ 정답. 간선 수-노드 수+2이다.
  • ④ 오답. 간선과 노드 수를 더하는 식이 아니다.

편집 해설 근거: NIST SP 500-235, Structured Testing (1996) — §2.2 Definition of cyclomatic complexity, v(G), 인쇄 p.10

31. 통상적인 비교 정렬의 평균 시간 복잡도를 긴밀한 차수 Θ로 나타낼 때, Θ(n log n)이 아닌 것은? (각 알고리즘의 일반적인 구현과 평균 입력 모델을 가정한다.)

[학습용 개정문항]

  1. 거품 정렬
  2. 퀵 정렬
  3. 병합 정렬
  4. 힙 정렬
정답과 해설 보기

정답: 1

정답은 ① 거품 정렬이다. 일반적인 거품 정렬은 인접 원소를 반복 비교하여 위치를 바꾸므로 평균 비교 횟수가 이차적으로 증가한다. 반면 통상적인 비교 정렬 모델에서 퀵 정렬의 평균, 병합 정렬과 힙 정렬의 시간은 Θ(n log n)으로 분류한다.

퀵 정렬의 최악 시간은 Θ(n²)일 수 있으므로 평균이라는 조건을 놓치면 안 된다. 이미 정렬된 자료를 감지하는 거품 정렬의 개선도 일반적인 평균 이차 시간 분류를 바꾸지는 않는다. 느슨한 상한의 혼동을 피하도록 긴밀한 차수 Θ를 사용했다.

선지별 해설

  • ① 정답. 일반적인 평균 시간은 Θ(n²)이다.
  • ② 오답. 피벗 선택과 입력의 통상적 평균 모델에서 Θ(n log n)이다.
  • ③ 오답. 분할 후 병합하는 비교 정렬로 Θ(n log n)이다.
  • ④ 오답. 힙 구성과 반복 추출에 의해 Θ(n log n)이다.

편집 해설 근거: NIST DADS — bubble sort — Definition 및 complexity; NIST DADS, quicksort — Definition 및 analysis; NIST DADS, merge sort — Definition; NIST DADS, heapsort — Definition

32. 개발·시험 담당자가 다음 사례를 검토한다. 나중에 들어온 데이터가 먼저 나가는 LIFO(Last-In-First-Out) 구조의 자료구조는?

  1. Queue
  2. Stack
  3. Linked List
  4. Tree
정답과 해설 보기

정답: 2

정답은 ② Stack이다. 스택은 한쪽 끝인 top에서 데이터를 넣고 빼므로 가장 나중에 넣은 항목이 가장 먼저 나온다. 책을 차례로 쌓고 맨 위의 책부터 꺼내는 모습이 LIFO 구조의 예다. 넣는 연산은 push, 꺼내는 연산은 pop이라고 한다.

큐는 일반적으로 먼저 들어온 항목을 먼저 꺼내는 FIFO이고 트리는 계층 구조다. 연결 리스트는 노드 연결 방식이며 스택을 구현하는 데 사용할 수 있지만, 그 자체가 반드시 LIFO를 강제하는 추상 자료형은 아니다.

선지별 해설

  • ① 오답. 일반적인 큐의 제거 순서는 FIFO다.
  • ② 정답. 삽입의 역순으로 제거하는 LIFO 자료형이다.
  • ③ 오답. 연결 방식이며 사용 방법에 따라 여러 자료형을 구현할 수 있다.
  • ④ 오답. 부모·자식 관계의 계층 구조다.

편집 해설 근거: NIST DADS, stack — Definition

33. 개발·시험 담당자가 다음 사례를 검토한다. 큐(Queue)의 활용 사례로 가장 적절한 것은?

  1. 후위 표기법 연산
  2. 운영체제의 작업 스케줄링(대기 행렬)
  3. 수식의 괄호 검사
  4. 재귀 호출의 복귀 주소 저장
정답과 해설 보기

정답: 2

정답은 ② 운영체제의 작업 대기 행렬이다. 실행을 기다리는 작업이나 요청을 모아 두는 구조를 큐로 표현할 수 있다. 먼저 들어온 항목을 먼저 처리하는 FIFO 큐는 이 대기 흐름의 기본적인 예다.

모든 운영체제 스케줄링이 반드시 FIFO라는 뜻은 아니다. 우선순위 큐나 여러 큐를 사용하는 방식도 있다. 후위 표기 수식의 계산, 괄호 짝 검사, 함수 호출의 복귀 정보는 최근 항목부터 처리하는 스택을 대표적으로 활용하므로 이 보기에서는 작업 대기 행렬이 가장 알맞다.

선지별 해설

  • ① 오답. 피연산자를 최근 것부터 꺼내 계산하는 스택의 전형적인 응용이다.
  • ② 정답. 처리 대기 중인 작업을 큐 형태로 관리할 수 있다.
  • ③ 오답. 가장 최근에 열린 괄호와 짝짓는 스택의 응용이다.
  • ④ 오답. 중첩된 호출의 역순 복귀는 호출 스택과 연결된다.

편집 해설 근거: NIST DADS — queue — Definition; Arpaci-Dusseau, OSTEP v1.10, 7 Scheduling: Introduction — §7.2 Scheduling Metrics 및 §7.3 First In, First Out

34. 개발·시험 담당자가 다음 사례를 검토한다. 블랙박스 테스트 기법 중 입력 조건의 경계 부근에서 오류 발생 확률이 높다는 점을 이용한 기법은?

  1. 원인-결과 그래프 테스트
  2. 비교 테스트
  3. 동등 분할 테스트
  4. 경계값 분석 테스트
정답과 해설 보기

정답: 4

정답은 ④ 경계값 분석 테스트이다. 허용 범위의 시작·끝이나 그에 바로 이웃한 값을 골라 시험한다. 예를 들어 나이를 20~29세로 제한한다면 19·20과 29·30 근처에서 비교 연산의 잘못이나 범위 누락을 찾을 수 있다.

동등 분할은 같은 방식으로 처리될 것으로 기대하는 입력을 묶고 대표값을 고르는 기법이다. 경계값 분석은 그 분할의 경계를 집중해서 확인하므로 두 기법을 함께 사용할 수 있다. 내부 코드의 분기 구조를 알아야만 가능한 화이트박스 기법은 아니다.

선지별 해설

  • ① 오답. 입력 조건과 결과의 논리적인 관계를 모델링하는 접근이다.
  • ② 오답. 서로 다른 구현이나 기준 결과와 비교하는 접근이다.
  • ③ 오답. 동등한 처리를 기대하는 분할에서 대표값을 선택한다.
  • ④ 정답. 입력 분할의 경계와 인접 값을 집중 시험한다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.2.1 Equivalence Partitioning; §4.2.2 Boundary Value Analysis

35. 개발·시험 담당자가 다음 사례를 검토한다. 화이트박스 테스트에 대한 기술로 틀린 설명을 고르면?

[학습용 개정문항]

  1. 제어 구조 및 조건 분기를 검사한다.
  2. 문장 커버리지를 기준으로 실행 여부를 평가할 수 있다.
  3. 모듈의 내부 로직을 직접 관찰한다.
  4. 내부 구조는 고려하지 않고 출력이 기대 결과와 일치하는지만으로 시험을 설계한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 화이트박스 테스트는 내부 구조를 바탕으로 시험을 설계한다. 문장이나 분기 등 어느 부분이 실행되었는지 측정하고 아직 실행되지 않은 경로를 확인할 수 있다. 따라서 코드의 제어 구조와 실행 결과를 연결해서 본다.

출력 결과가 기대값과 일치하는지 확인하는 일은 화이트박스 테스트에서도 필요하다. 그러나 내부 구조를 전혀 고려하지 않고 출력 일치만으로 시험을 설계한다는 설명은 화이트박스의 특징이 아니다. 모든 화이트박스 시험이 자동으로 문장 커버리지 100%를 달성하는 것도 아니다.

선지별 해설

  • ① 오답. 제어 구조와 조건 분기는 화이트박스의 관찰 대상이다.
  • ② 오답. 문장 실행 여부를 커버리지 기준으로 평가할 수 있다.
  • ③ 오답. 내부 로직을 바탕으로 시험을 설계한다.
  • ④ 정답. 내부 구조를 고려하지 않는다고 한 부분이 특징과 어긋난다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.3 White-box Test Techniques; §4.3.1 Statement Testing and Coverage; §4.3.2 Decision Testing and Coverage

36. 개발·시험 담당자가 다음 사례를 검토한다. 테스트 하네스 구성 요소 중 하위 모듈이 호출되었을 때 가상의 결과를 반환해 주는 더미 모듈은?

  1. Driver
  2. Stub
  3. Oracle
  4. Monitor
정답과 해설 보기

정답: 2

정답은 ② Stub이다. 스텁은 시험 대상이 호출하는 하위 모듈이나 외부 의존 요소를 대신하여 정해진 응답을 돌려준다. 아직 결제 서버가 준비되지 않았다면 시험용 응답을 반환하는 대역을 두고 상위 주문 흐름을 시험하는 식이다.

드라이버는 반대로 시험 대상을 호출하고 입력을 전달하는 쪽을 대신한다. 오라클은 실제 결과가 맞는지 판단하는 기준이고 모니터는 실행 상태를 관측하는 역할과 관련된다. 대역의 방향이 호출하는 쪽인지 호출받는 쪽인지 구별하는 것이 핵심이다.

선지별 해설

  • ① 오답. 시험 대상을 호출하는 상위 역할을 대신한다.
  • ② 정답. 호출받는 의존 모듈을 대신해 응답한다.
  • ③ 오답. 결과의 정오를 판단하는 기준이다.
  • ④ 오답. 실행 상태와 이벤트를 관측하는 역할이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing, stubs and drivers

37. 루트를 1번째 레벨로 세었을 때 총 4개 레벨을 갖는 완전 이진 트리의 최대 노드 수는?

[학습용 개정문항]

  1. 15개
  2. 31개
  3. 63개
  4. 7개
정답과 해설 보기

정답: 1

정답은 ① 15개이다. 루트를 1번째 레벨로 세고 총 4개 레벨이 있다면, 각 레벨에서 가능한 최대 노드 수는 1, 2, 4, 8이다. 이를 더하면 1+2+4+8=15이며 식으로는 2⁴-1이다.

높이를 간선 수로 정의하면 같은 트리의 높이는 3이다. 높이를 간선 수로 4라고 하면 최대 노드 수가 31이 되어 기존 문항과 정답이 달라진다. 따라서 레벨 수를 명확히 고정했다. 완전 이진 트리에서 마지막 레벨이 모두 차 있는 경우가 최대치에 해당한다.

선지별 해설

  • ① 정답. 총 4레벨의 최대치는 1+2+4+8=15이다.
  • ② 오답. 총 5레벨, 또는 간선 높이 4일 때의 최대치다.
  • ③ 오답. 총 6레벨의 최대치다.
  • ④ 오답. 총 3레벨의 최대치다.

편집 해설 근거: NIST DADS, perfect binary tree — Definition 및 node-count note

38. 개발·시험 담당자가 다음 사례를 검토한다. 소스코드를 실행하지 않고 결함을 찾아내는 정적 분석 도구의 특징으로 보기 어려운 것은?

  1. 실제 데이터 입력에 의한 실행 결과 확인
  2. 결함 빈도 확인
  3. 코딩 표준 준수 여부 확인
  4. 복잡도 분석
정답과 해설 보기

정답: 1

정답은 ①이다. 정적 분석은 시험 대상 코드를 실행하지 않고 코드·구조·규칙을 검사한다. 코딩 표준 위반, 잠재적인 결함 패턴, 복잡도 등을 찾거나 산출할 수 있다. 분석 결과로 발견한 결함의 종류와 개수를 집계하는 것도 가능하다.

실제 입력 데이터를 넣고 프로그램을 실행해 결과를 확인하는 것은 동적 시험이다. 정적 분석에서 집계하는 결함 빈도를 실제 실행 중 장애 발생률과 같다고 생각하면 안 된다. 정적 분석과 동적 시험은 서로 다른 종류의 문제를 발견하므로 보완적으로 사용한다.

선지별 해설

  • ① 정답. 실제 실행 결과의 확인은 동적 시험에 해당한다.
  • ② 오답. 분석으로 발견한 결함의 개수·분포를 집계할 수 있다.
  • ③ 오답. 정해진 코딩 규칙의 위반 여부를 검사할 수 있다.
  • ④ 오답. 제어 흐름 등으로 복잡도를 분석할 수 있다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.1 Static Testing Basics; §3.1.3 Differences between Static and Dynamic Testing

39. 개발·시험 담당자가 다음 사례를 검토한다. 빌드·테스트·배포 파이프라인을 자동화하는 자바 기반 오픈 소스 CI/CD 서버는?

  1. Ant
  2. Jenkins
  3. Gradle
  4. Maven
정답과 해설 보기

정답: 2

정답은 ② Jenkins이다. Jenkins는 빌드·시험·전달·배포 작업을 자동화하는 오픈 소스 자동화 서버다. 파이프라인으로 여러 작업의 순서를 정의하고 실행 결과를 확인할 수 있으며 Java 실행 환경에서 동작한다.

Ant·Gradle·Maven은 빌드와 관련된 도구이며 Jenkins가 이 도구들을 실행하도록 구성할 수 있다. 따라서 Jenkins와 나머지 도구가 서로 대체 관계만 있는 것은 아니다. 이 문항은 개별 빌드 도구보다 여러 자동화 단계를 관리하는 서버라는 역할을 묻는다.

선지별 해설

  • ① 오답. 작업과 의존 관계를 정의해 빌드 등을 수행하는 도구다.
  • ② 정답. 빌드·시험·배포 자동화를 관리하는 서버다.
  • ③ 오답. 빌드 자동화와 의존성 관리를 제공하는 도구다.
  • ④ 오답. 프로젝트 빌드·의존성·생명주기 관리 도구다.

편집 해설 근거: Jenkins User Documentation (2026-10-05 확인) — Jenkins User Documentation, 소개 문단; Apache Ant User Manual, Introduction — Introduction; Apache Maven, What is Maven? — What is Maven?; Gradle Build Tool, project introduction (2026-10-05 확인) — Introduction

40. 인스펙션의 착수·개요 설명을 계획에 포함하고, 마지막에 수정 완료를 확인하는 5단계 요약 절차로 표현할 때 알맞은 순서는?

[학습용 개정문항]

  1. 계획-준비-회의-수정-확인
  2. 회의-계획-수정-준비-확인
  3. 계획-회의-준비-확인-수정
  4. 준비-계획-회의-확인-수정
정답과 해설 보기

정답: 1

정답은 ① 계획-준비-회의-수정-확인이다. 검토 대상을 정하고 역할과 일정을 준비한 뒤, 참여자가 산출물을 개별 검토한다. 이후 검토 회의에서 발견 사항을 공유·분석하고, 작성자가 필요한 결함을 수정하며 수정 결과와 종료 조건을 확인한다.

표준이나 조직 절차에 따라 착수·개요 설명·보고 단계가 별도로 나뉠 수 있다. 따라서 모든 인스펙션이 반드시 다섯 단어로만 구성된다는 뜻은 아니다. 이 문항에서는 착수 설명을 계획에 포함하는 요약 절차라고 명시하여 준비 전 회의나 수정 전 확인 같은 순서 오류를 판별한다.

선지별 해설

  • ① 정답. 계획 후 개별 준비, 검토, 수정, 후속 확인으로 이어진다.
  • ② 오답. 계획과 준비 전에 검토 회의를 놓았다.
  • ③ 오답. 개별 준비보다 회의를 앞세우고 수정보다 확인을 앞세웠다.
  • ④ 오답. 계획 전에 준비를 놓고 수정 전에 확인을 놓았다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process; §3.2.3 Review Types, Inspection

정보처리기사 필기 기출문제 · 데이터베이스 구축

41. 데이터베이스 설계자가 다음 조건을 확인한다. SQL 명령 중 DDL(데이터 정의어)에 해당하는 항목을 고르면?

  1. UPDATE
  2. ALTER
  3. INSERT
  4. SELECT
정답과 해설 보기

정답: 2

정답은 ② ALTER이다. DDL은 데이터베이스 객체의 구조를 정의하거나 변경하는 명령을 가리킨다. ALTER TABLE로 열을 추가하거나 자료형과 제약 조건을 바꾸는 것이 대표적인 예다. 저장된 한 행의 값만 수정하는 UPDATE와 구별한다.

INSERT는 새로운 행을 넣고 SELECT는 필요한 데이터를 조회한다. SELECT를 DML에 포함하거나 DQL로 따로 분류하는 교재도 있지만, 어느 분류에서도 이 보기에서 구조를 변경하는 DDL 명령은 ALTER이다.

선지별 해설

  • ① 오답. 저장된 행의 값을 수정한다.
  • ② 정답. 객체의 정의와 구조를 변경하는 DDL 명령이다.
  • ③ 오답. 테이블에 새 행을 추가한다.
  • ④ 오답. 데이터를 조회하는 명령이다.

편집 해설 근거: PostgreSQL 18, ALTER TABLE — Synopsis 및 Description; PostgreSQL 18 — Data Manipulation — Chapter 6 Data Manipulation

42. PostgreSQL에서 학생 테이블의 주소 열과 그 열을 참조하는 뷰 등 의존 객체를 연쇄적으로 제거하는 명령은?

[학습용 개정문항]

  1. DELETE FROM 학생 WHERE 컬럼 = '주소';
  2. DROP TABLE 학생;
  3. ALTER TABLE 학생 DROP COLUMN 주소 RESTRICT;
  4. ALTER TABLE 학생 DROP COLUMN 주소 CASCADE;
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL에서 ALTER TABLE 학생 DROP COLUMN 주소 CASCADE는 학생 테이블의 주소 열을 제거하고, 그 열에 의존하는 외부 객체도 함께 제거하도록 지정한다. 예를 들어 주소 열을 참조하는 뷰가 있으면 CASCADE에 의해 삭제될 수 있다.

열에 속한 인덱스나 테이블 제약 중 일부는 열 삭제와 함께 자동 제거된다. CASCADE가 데이터베이스의 모든 객체를 지운다는 뜻은 아니며 의존 관계가 기준이다. RESTRICT는 외부 의존 객체 때문에 필요한 연쇄 삭제를 허용하지 않고 작업을 거절한다.

선지별 해설

  • ① 오답. DELETE는 조건에 맞는 행을 삭제하며 열 구조를 지우지 않는다.
  • ② 오답. 학생 테이블 자체를 제거하므로 요구보다 범위가 크다.
  • ③ 오답. 외부 의존 객체의 연쇄 삭제를 허용하지 않는다.
  • ④ 정답. 주소 열과 필요한 의존 객체를 연쇄 제거하는 구문이다.

편집 해설 근거: PostgreSQL 18, ALTER TABLE — Description, DROP [ COLUMN ]; Parameters CASCADE·RESTRICT

43. 데이터베이스 설계자가 다음 조건을 확인한다. SQL에서 이름에 '길'이 포함된 모든 데이터를 조회하는 조건절로 알맞은 것은?

  1. WHERE 이름 IN ('길')
  2. WHERE 이름 = '길%'
  3. WHERE 이름 LIKE '%길%'
  4. WHERE 이름 LIKE '길_'
정답과 해설 보기

정답: 3

정답은 ③ WHERE 이름 LIKE '%길%'이다. LIKE에서 %는 길이가 0인 경우를 포함한 임의의 문자열, _는 한 문자를 뜻한다. '길' 앞뒤에 %를 두면 길로 시작하거나 끝나거나 중간에 길이 있는 이름을 모두 찾을 수 있다.

IN ('길')은 이름이 정확히 길인 경우를 찾고, = '길%'에서는 %가 패턴 기호가 아닌 실제 문자로 취급된다. LIKE '길_'은 길 다음에 정확히 한 문자가 있는 두 글자 문자열을 찾으므로 홍길동처럼 가운데에 길이 있는 모든 이름을 찾지 못한다.

선지별 해설

  • ① 오답. 정확히 길과 같은 값만 포함된다.
  • ② 오답. 등호 비교에서 %는 일반 문자이므로 길%라는 값과 비교한다.
  • ③ 정답. 앞뒤에 임의 문자열을 허용하여 길이 포함된 모든 위치를 찾는다.
  • ④ 오답. 길 다음에 한 문자가 있는 형태만 일치한다.

편집 해설 근거: PostgreSQL 18, 9.7 Pattern Matching — §9.7.1 LIKE

44. 데이터베이스 설계자가 다음 조건을 확인한다. 제1정규형(1NF)에서 제2정규형(2NF)으로 가기 위한 조건은?

  1. 다중값 속성 제거
  2. 부분 함수적 종속 제거
  3. 이행적 함수적 종속 제거
  4. 결정자가 후보키가 아닌 함수 종속 제거
정답과 해설 보기

정답: 2

정답은 ② 부분 함수적 종속 제거이다. 제2정규형은 제1정규형을 만족하면서 비주요 속성이 후보키의 일부분에만 종속되는 경우를 없앤 형태다. 비주요 속성은 어떤 후보키에도 포함되지 않는 속성을 말한다.

예를 들어 (학생번호, 과목번호)가 후보키인데 학생이름이 학생번호만으로 결정되면 학생이름이 후보키의 일부에 종속된다. 학생 정보와 수강 정보를 적절히 나누면 중복을 줄일 수 있다. 주어진 후보키 하나만 보고 판단하기보다 관계에 존재하는 모든 후보키를 고려해야 한다.

선지별 해설

  • ① 오답. 다중값과 비원자적인 값을 정리하는 것은 주로 1NF의 원자성 문제다.
  • ② 정답. 비주요 속성의 후보키에 대한 부분 종속을 제거한다.
  • ③ 오답. 비주요 속성의 부적절한 이행 종속은 3NF와 관련된다.
  • ④ 오답. BCNF는 비자명 함수 종속의 결정자가 슈퍼키인지 검사한다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Functional Dependencies; Normal Forms; First Normal Form; California State University Northridge, COMP282, Second Normal Form 강의 자료 — Second Normal Form (2NF), 두 정의 조건

45. 데이터베이스 설계자가 다음 조건을 확인한다. 기본키(Primary Key)의 값은 NULL이 될 수 없으며 중복될 수도 없다는 무결성 원칙은?

  1. 참조 무결성
  2. 도메인 무결성
  3. 사용자 정의 무결성
  4. 개체 무결성
정답과 해설 보기

정답: 4

정답은 ④ 개체 무결성이다. 기본키는 각 행을 식별하는 기준이므로 NULL을 허용하지 않고 키 값이 중복되지 않아야 한다. 키가 여러 열로 이루어지면 각 구성 열은 NULL이 아니어야 하고, 열 전체를 합친 값의 조합이 유일해야 한다.

따라서 복합 기본키의 각 열이 따로 모두 유일해야 한다는 뜻은 아니다. 참조 무결성은 외래키와 참조 대상의 관계, 도메인 무결성은 허용하는 값의 범위나 형식, 사용자 정의 무결성은 업무별 제약에 초점을 둔다.

선지별 해설

  • ① 오답. 외래키 값과 참조 대상 키 사이의 관계다.
  • ② 오답. 열 값의 허용 영역과 형식을 제한하는 원칙이다.
  • ③ 오답. 업무에서 정의한 별도의 규칙과 관련된다.
  • ④ 정답. 기본키의 NULL 금지와 키 전체 값의 유일성에 관련된다.

편집 해설 근거: PostgreSQL 18 — Constraints — §5.5.4 Primary Keys; §5.5.5 Foreign Keys

46. SQL의 중복 허용 테이블이 아니라 고전적인 제1정규형 관계 모델의 릴레이션에 관한 설명으로 틀린 것은?

[학습용 개정문항]

  1. 한 릴레이션 내에 중복된 튜플이 존재할 수 있다.
  2. 속성들 사이에는 순서가 없다.
  3. 튜플(Tuple) 사이에는 순서가 없다.
  4. 모든 속성(Attribute) 값은 원자값이어야 한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 고전적인 제1정규형 관계 모델에서 릴레이션은 튜플의 집합이다. 같은 튜플을 두 번 넣어도 집합의 원소가 늘어나지 않으므로 중복 튜플을 별개의 원소로 두지 않는다. 튜플과 속성의 물리적인 나열 순서도 관계의 의미를 바꾸지 않는다.

각 속성값은 해당 도메인에서 하나의 원자값으로 다룬다. 실제 SQL 테이블과 SELECT 결과는 별도 제약이나 DISTINCT가 없으면 중복 행을 허용할 수 있다. 따라서 수학적 관계와 SQL의 중복 허용 동작을 구별해야 한다.

선지별 해설

  • ① 정답. 집합으로 정의한 릴레이션에는 중복 튜플이 없다.
  • ② 오답. 속성 이름과 값의 대응이 유지되면 나열 순서는 의미를 바꾸지 않는다.
  • ③ 오답. 튜플의 순서는 관계의 의미에 포함되지 않는다.
  • ④ 오답. 고전적인 1NF 관계에서는 각 속성값을 원자값으로 다룬다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 3 Relational Database: Definitions; Example Instance; PostgreSQL 18 — SELECT — Description, SELECT ALL and DISTINCT

47. 데이터베이스 설계자가 다음 조건을 확인한다. 후보키 가운데 대표로 선정되어 NULL 값을 가질 수 없는 키는?

  1. 대체키
  2. 슈퍼키
  3. 외래키
  4. 기본키
정답과 해설 보기

정답: 4

정답은 ④ 기본키이다. 후보키는 각 행을 유일하게 식별하면서 불필요한 속성을 더 포함하지 않는 최소의 속성 집합이다. 후보키 가운데 대표로 선택한 키가 기본키이며, SQL의 PRIMARY KEY 제약은 키 구성 열의 NULL을 금지한다.

선택되지 않은 나머지 후보키는 대체키이고, 슈퍼키는 유일성을 만족하지만 불필요한 속성을 포함할 수도 있다. 외래키는 다른 행이나 테이블의 키를 참조하는 역할이다. 대표 식별자로 선정했다는 조건이 기본키를 가리킨다.

선지별 해설

  • ① 오답. 기본키로 선택되지 않은 다른 후보키다.
  • ② 오답. 유일성을 만족하는 더 넓은 범주의 속성 집합이다.
  • ③ 오답. 참조 관계를 나타내는 키다.
  • ④ 정답. 후보키 중 대표로 선택한 행 식별자다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Primary Key Constraints; Primary and Candidate Keys; PostgreSQL 18 — Constraints — §5.5.4 Primary Keys

48. 사각형·타원·마름모를 사용하는 전통적인 Chen 방식의 E-R 다이어그램에서 개체 집합을 나타내는 도형은?

[학습용 개정문항]

  1. 타원
  2. 사각형
  3. 마름모
  4. 화살표
정답과 해설 보기

정답: 2

정답은 ② 사각형이다. 전통적인 Chen 방식의 E-R 도형 표기에서는 개체 집합을 사각형, 관계를 마름모, 속성을 타원으로 표현한다. 예를 들어 학생과 과목을 사각형으로 그리고 수강 관계를 마름모로 연결할 수 있다.

E-R 다이어그램에는 여러 표기 관례가 있으므로 모든 도구에서 같은 모양을 사용한다고 단정하면 안 된다. 까마귀발 표기나 UML 클래스 표기와 혼동하지 않도록 이번 문항은 사각형·타원·마름모를 사용하는 전통적인 표기법을 명시했다.

선지별 해설

  • ① 오답. 속성을 나타내는 대표 도형이다.
  • ② 정답. 개체 집합을 나타내는 도형이다.
  • ③ 오답. 관계를 나타내는 도형이다.
  • ④ 오답. 연결이나 제약 표현에 쓰일 수 있으나 개체 집합의 도형이 아니다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — ER Model Basics, Entity Sets·Relationship Sets 도식

49. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션의 특징 중 모든 연산이 데이터베이스에 전부 반영되거나 전혀 반영되지 않아야 한다는 성질은?

  1. 일관성(Consistency)
  2. 격리성(Isolation)
  3. 영속성(Durability)
  4. 원자성(Atomicity)
정답과 해설 보기

정답: 4

정답은 ④ 원자성이다. 트랜잭션으로 묶은 작업은 전체가 성공한 하나의 단위로 반영되거나 취소되어야 한다. 계좌 이체에서 출금만 반영되고 입금이 누락되는 중간 결과를 확정하지 않도록 하는 성질이다.

일관성은 트랜잭션 전후에 정의한 무결성 규칙을 만족하는 상태를 유지하는 것, 격리성은 동시 작업 사이의 부적절한 간섭을 막는 것, 영속성은 커밋된 결과를 장애 뒤에도 유지하는 것이다. 전부 또는 전무라는 조건을 보면 원자성과 연결한다.

선지별 해설

  • ① 오답. 정의한 데이터 규칙을 유지하는 성질이다.
  • ② 오답. 동시 트랜잭션의 상호 간섭과 관련된다.
  • ③ 오답. 확정된 결과의 지속성에 관련된다.
  • ④ 정답. 작업을 전부 반영하거나 전부 취소하는 성질이다.

편집 해설 근거: PostgreSQL 18, 3.4 Transactions — §3.4 Transactions, all-or-nothing와 atomic 설명

50. 데이터베이스 설계자가 다음 조건을 확인한다. 두 테이블에서 공통된 속성을 매개로 데이터를 결합하는 연산 중, 조인 조건에 맞지 않는 행도 결과에 포함하는 조인은?

  1. Outer Join
  2. Cross Join
  3. Inner Join
  4. Natural Join
정답과 해설 보기

정답: 1

정답은 ① Outer Join이다. 외부 조인은 조건에 맞는 행을 결합하면서 지정한 쪽의 일치하지 않는 행도 남긴다. 반대쪽에서 채울 값이 없으면 그쪽 열에 NULL을 넣는다. LEFT·RIGHT·FULL은 어느 쪽의 불일치 행을 보존하는지 구별한다.

내부 조인은 일치하는 행만 반환하고, 교차 조인은 두 입력의 가능한 모든 행 조합을 만든다. NATURAL은 같은 이름의 열을 이용해 조인 조건을 정하는 구문이며 LEFT NATURAL JOIN처럼 외부 조인과 결합할 수도 있다. 불일치 행 보존이라는 종류를 묻는 답은 Outer Join이다.

선지별 해설

  • ① 정답. 지정한 쪽의 조건 불일치 행도 결과에 보존한다.
  • ② 오답. 조인 조건에 따른 보존이 아니라 모든 행의 조합을 만든다.
  • ③ 오답. 조건을 만족하는 행만 반환한다.
  • ④ 오답. 공통 이름 열로 조건을 정하는 방식이며 불일치 행 보존 종류를 직접 뜻하지 않는다.

편집 해설 근거: PostgreSQL 18 — Cross Join — §7.2.1.1 Joined Tables, INNER·LEFT/RIGHT/FULL OUTER·NATURAL JOIN

51. PostgreSQL의 일반 뷰에 대한 설명으로 알맞은 것은? (구체화 뷰는 제외한다.)

[학습용 개정문항]

  1. 뷰 위에 다른 뷰를 정의할 수 없다.
  2. 물리적으로 데이터를 저장하는 테이블이다.
  3. 독자적인 인덱스를 가질 수 있다.
  4. 논리적 독립성을 제공하며 보안 관리에 유리하다.
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL의 일반 뷰는 질의로 정의한 가상 테이블이며 자체에 질의 결과를 저장하지 않는다. 필요한 열이나 행만 노출하도록 설계하여 기본 테이블 구조와 사용자의 접근을 분리할 수 있다. 다른 뷰를 참조하는 뷰도 정의할 수 있다.

일반 뷰 자체에 독립적인 인덱스를 만드는 것은 아니며 기본 테이블의 인덱스를 활용할 수 있다. 결과를 저장하는 구체화 뷰와 다른 DBMS의 인덱스드 뷰는 따로 구별해야 한다. 또한 실제 보안 효과는 뷰 정의와 권한 설정에 달려 있다.

선지별 해설

  • ① 오답. 기존 뷰를 바탕으로 다른 뷰를 정의할 수 있다.
  • ② 오답. 일반 뷰는 자체에 결과 행을 물리적으로 저장하지 않는다.
  • ③ 오답. PostgreSQL 일반 뷰에 자체 인덱스를 생성하지 않는다.
  • ④ 정답. 적절한 정의·권한을 통해 논리적 분리와 접근 제한에 도움을 준다.

편집 해설 근거: PostgreSQL 18 — CREATE VIEW — Description; Notes; Updatable Views

52. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션 제어어(TCL) 중 작업 내용을 저장하고 트랜잭션을 종료하는 명령은?

  1. ROLLBACK
  2. COMMIT
  3. GRANT
  4. REVOKE
정답과 해설 보기

정답: 2

정답은 ② COMMIT이다. 트랜잭션 안에서 수행한 변경을 확정하고 트랜잭션을 끝낸다. 반대로 ROLLBACK은 아직 확정하지 않은 작업을 취소한다. 여러 문장을 하나의 작업 단위로 처리할 때 마지막에 확정할지 되돌릴지를 결정한다.

GRANT와 REVOKE는 객체 접근 권한 등을 부여하거나 회수하는 명령이며, 그 자체를 트랜잭션 확정 명령이라고 부르지 않는다. COMMIT을 단순한 파일 저장 단축키처럼 이해하기보다 데이터베이스의 작업 단위를 확정하는 경계로 이해하는 것이 좋다.

선지별 해설

  • ① 오답. 아직 확정하지 않은 트랜잭션 작업을 취소한다.
  • ② 정답. 트랜잭션의 변경을 확정하고 종료한다.
  • ③ 오답. 접근 권한 등을 부여한다.
  • ④ 오답. 부여된 권한 등을 회수한다.

편집 해설 근거: PostgreSQL 18, 3.4 Transactions — §3.4 Transactions, BEGIN·COMMIT·ROLLBACK 예

53. 데이터베이스 설계자가 다음 조건을 확인한다. 사용자에게 특정 테이블에 대한 SELECT 권한을 부여하는 명령은?

  1. GIVE SELECT ON 테이블 TO 사용자;
  2. REVOKE SELECT ON 테이블 FROM 사용자;
  3. DENY SELECT ON 테이블 TO 사용자;
  4. GRANT SELECT ON 테이블 TO 사용자;
정답과 해설 보기

정답: 4

정답은 ④ GRANT SELECT ON 테이블 TO 사용자이다. GRANT는 지정한 객체에 대한 권한을 대상 사용자나 역할에 부여하는 명령이다. 여기서는 테이블의 행을 조회하는 SELECT 권한을 부여한다.

REVOKE는 권한 회수에 쓰이며 FROM으로 회수 대상을 지정한다. GIVE는 이 권한 부여 구문의 키워드가 아니다. DENY는 일부 제품에서 권한 거부와 관련된 명령이지만 SELECT 권한을 부여한다는 목적과는 반대다. 실제 실행에는 권한을 부여할 수 있는 자격이 필요하다.

선지별 해설

  • ① 오답. 권한 부여의 SQL 키워드는 GIVE가 아니라 GRANT다.
  • ② 오답. SELECT 권한을 회수하는 구문이다.
  • ③ 오답. 권한을 부여하는 명령이 아니며 제품별 지원도 다르다.
  • ④ 정답. 대상 테이블의 SELECT 권한을 사용자에게 부여한다.

편집 해설 근거: PostgreSQL 18, GRANT — Synopsis, GRANT SELECT ON TABLE … TO …; Description; PostgreSQL 18, REVOKE — Synopsis 및 Description

54. 데이터베이스 설계자가 다음 조건을 확인한다. 정규화가 부족할 때 발생하는 이상(Anomaly) 현상으로 보기 어려운 것은?

  1. 갱신 이상
  2. 검색 이상
  3. 삽입 이상
  4. 삭제 이상
정답과 해설 보기

정답: 2

정답은 ② 검색 이상이다. 정규화 부족과 중복 저장으로 설명하는 대표적인 이상 현상은 삽입·삭제·갱신 이상이다. 예를 들어 부서 정보가 모든 사원 행에 반복 저장되면 부서 이름 변경 때 일부 행만 고쳐 불일치가 생길 수 있다.

새 부서에 사원이 없어서 부서 정보만 넣기 어렵다면 삽입 이상, 마지막 사원을 지웠더니 부서 정보까지 사라진다면 삭제 이상이다. 검색 속도가 느리거나 질의 결과에 문제가 생길 수 있다는 일반적인 뜻과, 이 세 이상 현상의 분류를 혼동하지 않는다.

선지별 해설

  • ① 오답. 중복된 사실의 일부만 바뀌어 불일치가 발생할 수 있다.
  • ② 정답. 정규화에서 대표적으로 분류하는 세 이상 현상의 이름이 아니다.
  • ③ 오답. 무관한 정보 없이는 새 사실을 넣기 어려운 문제가 생길 수 있다.
  • ④ 오답. 필요한 사실까지 함께 삭제되는 문제가 생길 수 있다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — 슬라이드 2, The Evils of Redundancy

55. 데이터베이스 설계자가 다음 조건을 확인한다. 관계 대수 연산 중 릴레이션에서 특정 속성(열)들만 추출하는 연산은?

  1. Division
  2. Select
  3. Project
  4. Join
정답과 해설 보기

정답: 3

정답은 ③ Project이다. 투영은 릴레이션에서 지정한 속성, 즉 열을 선택하여 새 릴레이션을 만드는 연산이다. 학생(학번, 이름, 학과)에서 이름과 학과만 남기는 예를 생각할 수 있다. 수학적인 관계대수의 결과는 집합이므로 같은 결과 튜플은 하나로 취급한다.

Select는 조건에 맞는 행을 고르는 연산이고 Join은 관련된 릴레이션의 행을 결합한다. Division은 모든 관련 값에 대한 조건을 만족하는 대상을 구할 때 쓰는 연산이다. SQL의 SELECT라는 키워드와 관계대수 Select의 역할을 같다고 외우지 않도록 주의한다.

선지별 해설

  • ① 오답. 모든 관련 값에 대한 포함 조건을 처리하는 나눗셈 연산이다.
  • ② 오답. 조건에 맞는 행을 선택한다.
  • ③ 정답. 지정한 속성인 열을 추출한다.
  • ④ 오답. 관계 사이의 행을 결합한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — 슬라이드 7 Projection; 슬라이드 8 Selection

56. 데이터베이스 설계자가 다음 조건을 확인한다. 분산 데이터베이스의 특징 중 사용자가 데이터의 물리적 위치를 알지 못해도 접근할 수 있도록 보장하는 성질은?

  1. 위치 투명성
  2. 복제 투명성
  3. 분할 투명성
  4. 장애 투명성
정답과 해설 보기

정답: 1

정답은 ① 위치 투명성이다. 사용자가 자료가 어느 물리적 사이트에 저장됐는지 직접 알거나 매번 지정하지 않고도 동일한 논리적 이름으로 접근하는 성질이다. 자료의 위치 변경 때문에 모든 응용의 질의를 함께 고쳐야 하는 부담을 줄이는 데 목적이 있다.

복제 투명성은 여러 복제본의 존재, 분할 투명성은 나누어 저장한 조각의 존재를 숨기는 것에 초점을 둔다. 장애 투명성은 장애 처리와 관련된다. 여러 투명성이 함께 제공될 수 있지만 지문의 물리적 위치라는 단서는 위치 투명성이다.

선지별 해설

  • ① 정답. 데이터가 저장된 실제 위치를 사용자가 의식하지 않게 한다.
  • ② 오답. 복제본이 여러 개 있다는 사실을 숨기는 성질이다.
  • ③ 오답. 데이터 조각의 분할 사실을 숨기는 성질이다.
  • ④ 오답. 장애와 복구가 사용자 작업에 미치는 영향과 관련된다.

편집 해설 근거: Oracle Database — Distributed Database Concepts — §31.5.1.1 Location Transparency

57. 속성 집합 A의 각 값이 B의 값을 하나로 결정한다는 제약 A→B의 일반적인 명칭은? (A의 진부분집합으로도 B를 결정할 수 있는지는 주어지지 않았다.)

[학습용 개정문항]

  1. 함수적 종속
  2. 다중치 종속
  3. 결합 종속
  4. 완전 종속
정답과 해설 보기

정답: 1

정답은 ① 함수적 종속이다. 같은 A 값을 가진 두 튜플이 있다면 그 B 값도 반드시 같아야 한다는 제약을 A→B로 쓴다. A가 B를 결정하고 B가 A에 함수적으로 종속된다고 읽는다. 여기서 하나로 결정된다는 말은 B에서 A도 결정된다는 뜻은 아니다.

완전 함수적 종속은 A의 진부분집합으로는 B를 결정할 수 없다는 추가 조건을 요구한다. 지문은 그 최소성 조건을 주지 않으므로 일반적인 함수적 종속을 묻는다. 다치 종속과 조인 종속은 여러 값이나 분해·재결합에 대한 별도의 종속 개념이다.

선지별 해설

  • ① 정답. 같은 A 값이 하나의 B 값을 결정하는 일반적인 제약이다.
  • ② 오답. A에 대응하는 여러 B 값의 집합과 독립성에 관련된다.
  • ③ 오답. 릴레이션을 분해한 뒤 조인하여 복원하는 조건과 관련된다.
  • ④ 오답. 결정자 A의 어떤 진부분집합도 B를 결정하지 못한다는 추가 조건이 필요하다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Functional Dependencies, formal definition 및 Closure of Attribute Sets

58. 선택한 DBMS와 예상 업무 부하를 고려하여 파일 구성·인덱스·저장 구조를 정하는 데이터베이스 설계 단계는?

[학습용 개정문항]

  1. 논리적 설계
  2. 물리적 설계
  3. 요구사항 분석
  4. 개념적 설계
정답과 해설 보기

정답: 2

정답은 ② 물리적 설계이다. 이미 선택한 DBMS와 실제 업무 부하를 고려하여 파일 구성, 인덱스, 저장 구조 등 구현상 세부 사항을 정한다. 어떤 질의가 자주 실행되는지와 공간·갱신 비용을 함께 살펴 접근 방법을 선택한다.

요구사항 분석은 필요한 정보와 업무 제약을 파악하고, 개념적 설계는 개체와 관계 같은 업무 개념을 모델링한다. 논리적 설계는 이를 관계형 스키마 등 데이터 모델로 옮긴다. DBMS 선정 시점은 방법론마다 다를 수 있어 단계의 판별 기준을 저장 구조 설계로 명확히 했다.

선지별 해설

  • ① 오답. 데이터 모델에 맞는 논리 스키마와 관계를 구성하는 단계다.
  • ② 정답. 저장 구조와 인덱스 등 실제 접근 방법을 설계한다.
  • ③ 오답. 정보 요구와 업무 규칙을 파악하는 단계다.
  • ④ 오답. 업무의 개체·관계 등을 개념 모델로 표현한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — 슬라이드 2 Overview; 슬라이드 3 Decisions to Make

59. 데이터베이스 설계자가 다음 조건을 확인한다. SQL 집계 함수 중 그룹별 데이터의 개수를 구하는 함수는?

  1. MAX()
  2. SUM()
  3. AVG()
  4. COUNT()
정답과 해설 보기

정답: 4

정답은 ④ COUNT()이다. COUNT는 행이나 지정한 식의 값을 세는 집계 함수다. GROUP BY로 같은 값을 가진 행들을 묶으면 각 그룹에 대해 개수를 구할 수 있다.

COUNT(*)는 행 수를 세고 COUNT(열)는 그 열이 NULL이 아닌 행을 센다. COUNT(DISTINCT 열)는 NULL을 제외한 서로 다른 값의 수를 센다. 반면 SUM은 합계, AVG는 평균, MAX는 최댓값이다. 무엇을 세는지에 따라 COUNT의 인수를 정확히 선택해야 한다.

선지별 해설

  • ① 오답. 그룹의 최댓값을 구한다.
  • ② 오답. 그룹의 값들을 더한다.
  • ③ 오답. 그룹의 평균을 구한다.
  • ④ 정답. 행 또는 NULL이 아닌 값의 개수를 구한다.

편집 해설 근거: PostgreSQL 18, Aggregate Functions — Table 9.62, count(*) 및 count(any)

60. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터베이스 설계 순서로 알맞은 것은?

  1. 요구분석 → 논리 → 개념 → 물리 → 구현
  2. 요구분석 → 개념 → 논리 → 물리 → 구현
  3. 개념 → 요구분석 → 논리 → 구현 → 물리
  4. 논리 → 개념 → 물리 → 요구분석 → 구현
정답과 해설 보기

정답: 2

정답은 ② 요구분석 → 개념 → 논리 → 물리 → 구현이다. 먼저 어떤 정보를 저장하고 어떤 업무를 지원할지 파악한다. 이를 개체·관계 중심의 개념 모델로 표현한 뒤 선택한 데이터 모델의 논리 스키마로 옮기고, 저장·접근 구조를 정해 실제 데이터베이스를 구현한다.

예를 들어 학생과 수강이라는 업무 관계를 파악하고, 학생·과목·수강 테이블 및 키를 설계한 뒤, 질의 성능을 위한 인덱스를 정하는 흐름이다. 실제 프로젝트에서는 발견한 문제에 따라 앞 단계로 돌아갈 수 있지만 기본적인 산출물의 의존 순서는 이 흐름으로 이해한다.

선지별 해설

  • ① 오답. 일반적인 기본 흐름에서는 개념 모델을 먼저 만들고 논리 모델로 옮긴다.
  • ② 정답. 요구에서 개념·논리·물리 설계를 거쳐 구현한다.
  • ③ 오답. 요구 파악보다 개념 설계가 앞서고 저장 설계가 구현 뒤에 놓였다.
  • ④ 오답. 설계의 근거인 요구분석을 뒤에 배치했다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — 슬라이드 2 Overview of Database Design; Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — 슬라이드 2 Overview; 슬라이드 3 Decisions to Make

정보처리기사 필기 기출문제 · 프로그래밍 언어 활용

61. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 파이썬 리스트 a = [10, 20, 30, 40, 50, 60, 70]일 때 print(a[1:6:2])의 출력 결과를 고르면?

  1. [20, 40, 60]
  2. [20, 30, 40]
  3. [10, 20, 30]
  4. [10, 30, 50]
정답과 해설 보기

정답: 1

정답은 ① [20, 40, 60]이다. 슬라이스 a[1:6:2]는 인덱스 1에서 시작하여 끝 인덱스 6은 포함하지 않고 2씩 증가시킨다. 따라서 선택되는 인덱스는 1, 3, 5이고 그 값이 각각 20, 40, 60이다.

Python 리스트의 인덱스는 0부터 시작하므로 첫 원소 10의 인덱스가 0이다. 세 번째 숫자 2는 선택할 원소 수가 아니라 인덱스의 증가 폭이다. 원본 리스트가 이 슬라이스를 평가하는 것만으로 바뀌는 것도 아니다.

선지별 해설

  • ① 정답. 인덱스 1·3·5의 값이다.
  • ② 오답. 인덱스가 2씩 증가한다는 조건을 적용하지 않았다.
  • ③ 오답. 인덱스 0부터 연속으로 선택한 값이다.
  • ④ 오답. 시작 인덱스를 0으로 잘못 잡았다.

편집 해설 근거: Python 3.14, Built-in Types — Common Sequence Operations, s[i:j:k]

62. 자연수 n을 받아 1부터 n까지의 합을 반환하는 올바른 Python 함수는?

  1. def total(n): return sum(range(1, n + 1))
  2. def total(n): return sum(range(n))
  3. def total(n): return sum(n)
  4. def total(n): return sum(range(1, n))
정답과 해설 보기

정답: 1

정답은 ①이다. range(1, n+1)은 1부터 n까지의 정수를 만들고 sum이 이 값들을 더한다. range의 끝값은 포함하지 않으므로 n까지 더하려면 끝 인수에 n+1을 넣어야 한다. 예를 들어 n=3이면 1+2+3=6이다.

range(n)은 0부터 n-1, range(1,n)은 1부터 n-1까지라 n을 누락한다. sum(n)은 정수 n을 순회 가능한 객체처럼 전달하므로 TypeError가 난다. 일부 입력에서 우연히 같은 결과를 얻는지를 보는 것이 아니라 모든 자연수 입력에 맞는 함수를 고른다.

선지별 해설

  • ① 정답. 1부터 n까지를 포함해 합산한다.
  • ② 오답. 0부터 n-1까지 합하여 마지막 n이 빠진다.
  • ③ 오답. sum에는 순회 가능한 값이 필요하며 정수만 주면 TypeError다.
  • ④ 오답. 끝값 n을 제외하여 1부터 n-1까지 합한다.

편집 해설 근거: Python 3.14, Built-in Types — Ranges, range(start, stop, step); Python 3.14, Built-in Functions — sum(iterable, /, start=0)

63. C11의 다음 이항 연산자 중 결합 우선순위가 가장 높은 것은? (+는 이항 덧셈을 뜻한다.)

[학습용 개정문항]

  1. "%"
  2. "+"
  3. "&&"
  4. "=="
정답과 해설 보기

정답: 1

정답은 ① %이다. C에서 %는 곱셈·나눗셈과 같은 곱셈 연산자 수준에 속한다. 이 수준은 이항 +, 동등 비교 ==, 논리 AND &&보다 결합 우선순위가 높다. 예를 들어 a+b%c는 a+(b%c)로 해석한다.

연산자 우선순위는 식이 어떤 구조로 묶이는지를 정하며 피연산자가 실제로 어느 순서에 평가되는지와는 다른 개념이다. 또한 +에는 단항 플러스도 있어 비교가 달라질 수 있으므로, 이번 문항은 +를 이항 덧셈으로 한정했다.

선지별 해설

  • ① 정답. 곱셈 연산자 수준으로 제시된 이항 연산자 중 우선순위가 가장 높다.
  • ② 오답. 이항 덧셈은 %보다 우선순위가 낮다.
  • ③ 오답. 논리 AND는 동등 비교보다도 우선순위가 낮다.
  • ④ 오답. 동등 비교는 산술 연산보다 우선순위가 낮다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.5 Multiplicative operators; §6.5.6 Additive operators; §6.5.9; §6.5.13

64. C에서 char s1[7]="ABC", s2[4]="DEF"로 두고 s1[1]과 s2[1]을 교환한 뒤 strcat(s1,s2)를 실행했다. s1은?

  1. DBFAEC
  2. ABCDEF
  3. AECDBF
  4. ADCFFB
정답과 해설 보기

정답: 3

정답은 ③ AECDBF이다. 배열 인덱스는 0부터 시작하므로 s1[1]은 B, s2[1]은 E다. 두 문자를 임시 변수 등을 이용해 교환하면 s1은 AEC, s2는 DBF가 된다. strcat(s1,s2)는 s1의 끝에 s2를 이어 붙여 AECDBF를 만든다.

결과 문자열은 6글자이며 끝의 널 문자까지 7칸이 필요하다. s1[7]은 이를 담을 수 있고 s2[4]에는 DBF와 널 문자가 들어 있다. 두 배열이 겹치지 않는다는 조건에서도 strcat 사용은 유효하다. 널 문자 자체를 문자열의 표시 글자로 세지 않는다.

선지별 해설

  • ① 오답. 붙이는 순서는 s1 다음 s2이지 반대가 아니다.
  • ② 오답. 두 번째 문자의 교환을 반영하지 않았다.
  • ③ 정답. AEC에 DBF를 이어 붙인 문자열이다.
  • ④ 오답. 인덱스 1의 B와 E를 교환한 결과가 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.2.1 Array subscripting; §7.24.3.1 The strcat function

65. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. HRN 스케줄링에서 대기 시간이 20, 서비스 시간이 10일 때 우선순위 값은?

  1. 2
  2. 3
  3. 4
  4. 1
정답과 해설 보기

정답: 2

정답은 ② 3이다. HRN 또는 HRRN의 응답비는 (대기 시간+예상 서비스 시간)/예상 서비스 시간으로 계산한다. 주어진 값에 대입하면 (20+10)/10=3이며, 1+20/10으로 계산해도 같은 결과다. 응답비가 큰 작업을 우선 선택한다.

대기 시간이 길어질수록 값이 커지므로 짧은 작업만 계속 선호할 때의 기아 문제를 완화하는 취지가 있다. 대기 시간과 서비스 시간의 단위는 같아야 한다. 서비스 시간으로만 나눈 20/10=2는 분자에 서비스 시간을 더하지 않은 값이다.

선지별 해설

  • ① 오답. 대기 시간/서비스 시간만 계산한 값이다.
  • ② 정답. (20+10)/10=3이다.
  • ③ 오답. 제시한 두 시간으로 계산한 응답비가 아니다.
  • ④ 오답. 대기 시간이 0일 때의 기본값이며 여기서는 대기가 20이다.

편집 해설 근거: Virginia Tech CS3204, Scheduling Analysis (2005) — Highest Response Ratio Next (HRRN)

66. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 교착상태(Deadlock) 발생의 4가지 필요조건으로 보기 어려운 것은?

  1. 선점(Preemption)
  2. 환상 대기(Circular Wait)
  3. 상호 배제(Mutual Exclusion)
  4. 점유 및 대기(Hold and Wait)
정답과 해설 보기

정답: 1

정답은 ① 선점이다. 교착상태의 네 필요조건은 상호 배제, 점유 및 대기, 비선점, 환상 대기다. 이미 가진 자원을 놓지 않고 다른 자원을 기다리는 작업들이 고리를 이루면 서로 진행하지 못할 수 있다.

비선점은 점유 중인 자원을 다른 작업이 임의로 빼앗을 수 없다는 조건이다. 보기의 선점은 그 반대이므로 네 필요조건에 포함되지 않는다. 네 조건이 필요하다는 설명을, 어떤 상황에서도 네 조건만 보면 반드시 이미 교착상태라고 판정할 수 있다는 충분조건으로 바꾸지 않는다.

선지별 해설

  • ① 정답. 필요한 조건은 선점이 아니라 비선점이다.
  • ② 오답. 작업들이 자원을 기다리는 고리를 이루는 필요조건이다.
  • ③ 오답. 자원을 동시에 공유할 수 없는 필요조건이다.
  • ④ 오답. 자원을 가진 채 다른 자원을 기다리는 필요조건이다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 32 Common Concurrency Problems — §32.3 Deadlock Bugs, Conditions for Deadlock

67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 기억장치 배치 전략 중 들어갈 수 있는 빈 공간 가운데 가장 큰 곳에 배치하는 전략은?

  1. Next Fit
  2. First Fit
  3. Best Fit
  4. Worst Fit
정답과 해설 보기

정답: 4

정답은 ④ Worst Fit이다. 요청 크기를 담을 수 있는 빈 공간 중 가장 큰 공간을 선택한다. 할당 후 비교적 큰 빈 공간을 남기려는 방식이지만, 항상 가장 좋은 메모리 효율을 보장하는 것은 아니다.

First Fit은 처음 찾은 충분한 공간, Best Fit은 충분한 공간 중 가장 작은 공간, Next Fit은 이전 탐색 위치 이후에서 다시 찾는 방식이다. 적재 가능한 공간이라는 전제와 가장 크다 또는 가장 작다는 선택 기준을 나누어 생각하면 쉽게 구별할 수 있다.

선지별 해설

  • ① 오답. 이전 검색 위치에서 이어서 적합한 공간을 찾는다.
  • ② 오답. 검색 순서상 처음 적합한 공간을 선택한다.
  • ③ 오답. 요청을 담을 수 있는 공간 중 가장 작은 것을 선택한다.
  • ④ 정답. 요청을 담을 수 있는 공간 중 가장 큰 것을 선택한다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 17 Free-Space Management — §17.3 Basic Strategies, Best Fit·Worst Fit·First Fit·Next Fit

68. 다음 Java 프로그램의 출력은?

public class Main {
    static void method(int x, int y) {
        try {
            int[] arr = new int[x];
            System.out.print("A");
            int value = arr[y];
            System.out.print("B");
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.print("C");
        } finally {
            System.out.print("D");
        }
    }
    public static void main(String[] args) { method(5, 5); }
}

[학습용 개정문항]

  1. AC
  2. ACD
  3. ABD
  4. ABCD
정답과 해설 보기

정답: 2

정답은 ② ACD이다. 길이가 5인 배열의 유효 인덱스는 0~4다. A를 출력한 다음 arr[5]에 접근하면 ArrayIndexOutOfBoundsException이 발생하므로 B 출력문까지 진행하지 못한다. 해당 catch가 예외를 받아 C를 출력하고 finally가 이어서 D를 출력한다.

예외를 처리했다고 실패한 arr[5] 접근 다음 문장으로 되돌아가 B를 실행하는 것은 아니다. finally는 이 정상적인 예외 처리 흐름에서 실행되며, JVM 강제 종료 같은 문항 밖의 상황까지 무조건 실행을 보장한다는 뜻은 아니다.

선지별 해설

  • ① 오답. finally의 D를 빠뜨렸다.
  • ② 정답. A 뒤 배열 범위 예외로 C, 이어서 D가 출력된다.
  • ③ 오답. 배열 읽기에 실패하여 B는 출력되지 않는다.
  • ④ 오답. 예외 이후 같은 try 블록의 B를 계속 실행하지 않는다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 15 Expressions — §15.10.4 Run-Time Evaluation of Array Access; Oracle Java SE 25 Language Specification, Chapter 14 Blocks, Statements, and Patterns — §14.20.2 Execution of try-finally and try-catch-finally

69. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 파이썬 자료형 중 순서가 있고 한 번 생성된 후 값을 변경할 수 없는 자료형은?

  1. Tuple
  2. Dictionary
  3. Set
  4. List
정답과 해설 보기

정답: 1

정답은 ① Tuple이다. 튜플은 순서가 있는 시퀀스이며 생성한 뒤 원소의 자리나 길이를 바꾸는 연산을 제공하지 않는다. 인덱스와 슬라이스로 접근할 수 있지만 원소에 다른 값을 대입하면 오류가 난다.

리스트는 원소를 바꿀 수 있고, 딕셔너리는 키와 값의 대응을 담는 가변 매핑, 집합은 고유한 원소를 담는 가변 컬렉션이다. 튜플 안에 리스트 같은 가변 객체를 넣었다면 그 객체 자체의 내용은 바뀔 수 있다. 튜플의 불변성은 안에 든 모든 객체가 재귀적으로 불변이라는 뜻은 아니다.

선지별 해설

  • ① 정답. 순서가 있는 불변 시퀀스다.
  • ② 오답. 삽입 순서를 보존하지만 값을 바꿀 수 있는 매핑이다.
  • ③ 오답. 순서 있는 시퀀스가 아니고 원소 집합도 변경 가능하다.
  • ④ 오답. 순서가 있지만 원소·길이를 변경할 수 있다.

편집 해설 근거: Python 3.14, Built-in Types — Tuples; Lists; Mapping Types — dict; Set Types

70. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. C언어에서 2차원 배열 int a[2][2];가 선언되었을 때, 첫 번째 요소인 a[0][0]의 주소를 가리키는 int * 타입 표현으로 틀린 설명을 고르면?

  1. *a
  2. &a[0]
  3. a[0]
  4. &a[0][0]
정답과 해설 보기

정답: 2

정답은 ② &a[0]이다. a[0]은 int 두 개로 이루어진 첫 번째 행 배열이다. 주소 연산자 &를 적용하면 그 행 배열을 가리키는 int (*)[2]형이 되므로 int *형이라는 조건에 맞지 않는다.

일반적인 값 문맥에서 a[0]과 *a는 첫 행 배열에서 첫 int 원소를 가리키는 포인터로 변환된다. &a[0][0]도 첫 int 원소의 주소이므로 int *형이다. 메모리의 시작 위치가 같게 표현될 수 있다는 사실과 포인터의 형 및 +1이 이동하는 단위가 같다는 것은 다른 문제다.

선지별 해설

  • ① 오답. 첫 행 배열이 일반 값 문맥에서 int *로 변환된다.
  • ② 정답. 행 배열 전체를 가리키는 int (*)[2]형이다.
  • ③ 오답. 첫 행의 첫 int 원소를 가리키는 int *로 변환된다.
  • ④ 오답. 첫 int 원소의 주소이므로 int *형이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.3.2.1 paragraph 3; §6.5.2.1; §6.5.3.2

71. Java 클래스 멤버에 적용하여 같은 패키지에서의 접근과, 다른 패키지 하위 클래스 내부의 허용된 상속 접근을 제공하는 접근 제어자는? (외부 패키지에서는 protected의 추가 접근 규칙을 적용한다.)

[학습용 개정문항]

  1. default
  2. public
  3. private
  4. protected
정답과 해설 보기

정답: 4

정답은 ④ protected이다. 같은 패키지에서는 해당 멤버에 접근할 수 있고, 다른 패키지에서는 하위 클래스의 구현 안에서 Java의 protected 접근 규칙에 맞게 접근할 수 있다. 단순히 모든 자식 클래스가 임의의 부모 객체를 통해 자유롭게 접근한다고 해석하면 안 된다.

패키지 밖의 인스턴스 멤버 접근에는 참조식의 타입 등 추가 제약이 적용된다. 접근 제어자를 생략한 package access는 같은 패키지 안에서만 허용한다. private과 public은 각각 더 제한적인 접근과 넓은 공개 접근을 나타낸다.

선지별 해설

  • ① 오답. 여기서 default는 제어자 생략에 의한 같은 패키지 접근을 뜻한다.
  • ② 오답. 같은 패키지와 하위 클래스에만 제한하는 접근 범위가 아니다.
  • ③ 오답. 일반적인 다른 클래스나 다른 패키지 하위 클래스에 직접 공개하지 않는다.
  • ④ 정답. 같은 패키지와 조건을 만족하는 외부 하위 클래스 접근을 허용한다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 6 Names — §6.6.1 Determining Accessibility; §6.6.2.1 Access to a protected Member

72. C에서 int a=5, b=3일 때 printf("%d", a & b)의 출력은?

  1. 1
  2. 3
  3. 5
  4. 8
정답과 해설 보기

정답: 1

정답은 ① 1이다. 비트 AND 연산자 &는 대응하는 두 비트가 모두 1일 때만 결과 비트를 1로 만든다. 5는 이진수 0101, 3은 0011이므로 0101 & 0011 = 0001이다. 이를 십진수로 표시하면 1이다.

논리 AND인 &&는 각 피연산자가 0인지 아닌지를 판단하지만, 여기의 &는 각 자리 비트를 비교한다. 이 예에서는 논리 AND도 우연히 1이 되므로 출력만 외우지 말고 비트별 계산을 확인하는 것이 중요하다.

선지별 해설

  • ① 정답. 공통으로 1인 최하위 비트만 남는다.
  • ② 오답. 3의 두 번째 비트는 5에서 0이므로 그대로 남지 않는다.
  • ③ 오답. 5의 세 번째 비트는 3에서 0이므로 그대로 남지 않는다.
  • ④ 오답. 8은 산술 합이며 비트 AND 결과가 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.10 Bitwise AND operator

73. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 프로세스 상태 전이 중 실행 중이던 프로세스가 할당된 시간을 모두 사용하여 준비 상태로 변하는 전이는?

  1. Block
  2. Timeout
  3. Wake up
  4. Dispatch
정답과 해설 보기

정답: 2

정답은 ② Timeout이다. 시분할 스케줄링에서 실행 중인 작업이 주어진 시간 할당량을 모두 사용하면 운영체제가 CPU를 회수하고 작업을 준비 상태로 돌려보낼 수 있다. 작업은 종료된 것이 아니라 다시 CPU를 받을 차례를 기다린다.

Dispatch는 준비 상태의 작업을 실행 상태로 보내는 전이, Block은 입출력 같은 사건을 기다려 대기 상태로 가는 전이, Wake up은 기다리던 사건이 완료되어 준비 상태로 돌아오는 전이다. 원래 상태와 다음 상태의 쌍을 함께 보면 구별하기 쉽다.

선지별 해설

  • ① 오답. 실행 중 기다릴 사건이 생겨 대기 상태로 가는 전이다.
  • ② 정답. 시간 할당량 소진으로 실행에서 준비 상태로 돌아간다.
  • ③ 오답. 대기하던 사건이 끝나 대기에서 준비 상태로 간다.
  • ④ 오답. 준비 상태의 작업을 실행 상태로 보낸다.

편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 4 The Abstraction: The Process — §4.4 Process States; Arpaci-Dusseau, OSTEP v1.10, 6 Limited Direct Execution — Timer Interrupt 설명

74. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 가상 기억장치 관리 기법 중 프로그램을 동일한 크기의 단위로 나누어 관리하는 기법은?

  1. Compaction
  2. Fragmentation
  3. Paging
  4. Segmentation
정답과 해설 보기

정답: 3

정답은 ③ Paging이다. 페이징은 가상 주소 공간을 같은 크기의 페이지로 나누고 물리 메모리를 같은 크기의 프레임으로 나누어 대응시킨다. 논리적으로 연속한 페이지들이 물리적으로 연속할 필요는 없다.

세그먼테이션은 코드·스택 같은 의미 단위에 따라 가변 크기의 영역을 나누는 접근이다. 단편화는 메모리 공간이 낭비되거나 흩어지는 현상이고 압축은 흩어진 빈 공간을 모으는 기법과 관련된다. 관리 단위를 고정 크기로 나눈다는 조건은 페이징을 가리킨다.

선지별 해설

  • ① 오답. 배치된 영역을 이동해 빈 공간을 모으는 압축이다.
  • ② 오답. 공간이 낭비되거나 나뉘는 현상이다.
  • ③ 정답. 고정 크기의 페이지와 프레임 단위로 관리한다.
  • ④ 오답. 의미 있는 가변 크기 세그먼트로 나눈다.

편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 18 Paging: Introduction — §18.1 A Simple Example and Overview; Arpaci-Dusseau, OSTEP v1.10, 16 Segmentation — §16.1 Segmentation: Generalized Base/Bounds

75. 다음 C11 프로그램의 출력은?

#include <stdio.h>
int main(void) {
    int n = 10;
    int *pt = &n;
    printf("%td", (&n + 1) - &n + *pt);
}

[학습용 개정문항]

  1. 컴파일 오류
  2. 10
  3. 11
  4. 21
정답과 해설 보기

정답: 3

정답은 ③ 11이다. 포인터 뺄셈 (&n+1)-&n은 바이트 수가 아니라 int 원소 단위의 거리를 구하므로 1이다. pt는 n을 가리켜 *pt는 10이고, 둘을 더하면 1+10=11이다.

C의 포인터 산술에서는 배열이 아닌 단일 객체도 이 연산의 목적상 길이 1인 배열의 첫 원소처럼 취급한다. 한 칸 뒤 포인터를 만드는 것은 허용되지만 그 위치를 역참조하지는 않는다. 포인터 차의 형인 ptrdiff_t에 맞는 %td로 결과를 출력한다.

선지별 해설

  • ① 오답. 올바른 선언과 같은 객체의 한 칸 뒤 포인터를 사용하여 허용되는 식이다.
  • ② 오답. 포인터 차로 얻는 1을 더하지 않은 값이다.
  • ③ 정답. 원소 단위 거리 1에 n의 값 10을 더한다.
  • ④ 오답. 포인터 산술을 n의 값 자체를 더하는 연산으로 오해한 값이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.6 paragraphs 7~9; §7.21.6.1 t length modifier

76. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. Java에서 상위 클래스의 메소드를 하위 클래스에서 같은 시그니처로 재정의하는 것을 무엇이라 하는가?

  1. Overloading
  2. Overriding
  3. Encapsulation
  4. Inheritance
정답과 해설 보기

정답: 2

정답은 ② Overriding이다. 하위 클래스가 상위 클래스에서 상속한 인스턴스 메서드와 맞는 시그니처로 자신의 구현을 제공하는 것을 오버라이딩이라고 한다. 실제 객체의 타입에 따라 실행할 구현을 선택하는 다형성과 연결된다.

반환형·접근 수준·예외 등에도 규칙이 있고, final 메서드는 재정의할 수 없다. static 메서드는 오버라이딩이 아니라 숨김으로 다룬다. 오버로딩은 같은 이름의 메서드에 서로 다른 매개변수 목록을 정의하는 것이므로 같은 시그니처의 재정의와 구별한다.

선지별 해설

  • ① 오답. 같은 이름에 서로 다른 매개변수 목록을 두는 것이다.
  • ② 정답. 상속한 인스턴스 메서드의 구현을 하위 클래스에서 재정의한다.
  • ③ 오답. 상태와 연산을 묶고 내부 구현을 감추는 개념이다.
  • ④ 오답. 상위 타입의 특성을 이어받는 관계를 가리키는 더 넓은 개념이다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 8 Classes — §8.4.8.1 Overriding (by Instance Methods); §8.4.8.2 Hiding; §8.4.9 Overloading

77. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 파이썬에서 a = "Hello"일 때 a[:-1]의 출력 결과를 고르면?

  1. olleH
  2. Hell
  3. o
  4. Hello
정답과 해설 보기

정답: 2

정답은 ② Hell이다. a[:-1]은 시작 위치를 생략했으므로 처음부터 시작하고, 끝 위치 -1인 마지막 문자는 포함하지 않는다. Hello의 마지막 문자는 o이므로 그 앞까지의 문자열 Hell을 얻는다.

이것은 문자열을 뒤집는 a[::-1]과 다르다. 가운데 콜론 뒤의 -1은 종료 위치이지만 두 번째 콜론 뒤의 -1은 진행 방향을 포함한 단계값이다. 문자열은 불변이므로 슬라이스 결과를 만들더라도 원래 a는 Hello로 유지된다.

선지별 해설

  • ① 오답. 역순 문자열은 a[::-1]의 결과다.
  • ② 정답. 마지막 o 직전까지 남는다.
  • ③ 오답. a[-1]로 얻는 마지막 한 문자다.
  • ④ 오답. 끝 위치를 -1로 지정하여 마지막 문자를 제외했다.

편집 해설 근거: Python 3.14, Built-in Types — Common Sequence Operations, slicing 및 negative indices

78. 연속 바이트 주소를 사용하는 학습용 모델에서 int는 4바이트다. 충분한 길이의 int 배열 원소를 가리키는 int *p의 주소가 100이고 p+2도 같은 배열 안에 있다면, p+2의 주소는?

[학습용 개정문항]

  1. 108
  2. 112
  3. 102
  4. 104
정답과 해설 보기

정답: 1

정답은 ① 108이다. int 포인터에 2를 더하면 바이트 두 개가 아니라 int 원소 두 개만큼 이동한다. 이 문항의 int 크기가 4바이트이므로 이동량은 2×4=8바이트이고, 주소 100에서 108로 이동한다.

이 계산은 주소를 연속된 바이트 번호로 표현하고 같은 배열 안의 유효한 위치로 이동한다는 학습용 조건에 따른다. 임의의 정수 100을 실제 C 포인터로 바꿔 사용해도 항상 유효하다는 뜻은 아니다. 원소 형과 배열 범위를 먼저 확인하는 습관이 중요하다.

선지별 해설

  • ① 정답. 100+2×4=108이다.
  • ② 오답. 세 원소인 12바이트만큼 이동한 값이다.
  • ③ 오답. int 원소 단위를 무시하고 바이트 두 개만 더했다.
  • ④ 오답. int 한 원소인 4바이트만 이동한 값이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.6 paragraphs 7~8

79. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 페이지 참조 순서가 1, 2, 3, 4, 1, 2, 5, 3인 8개의 페이지가 있고, 비어 있는 3개의 페이지 프레임이 있다. FIFO(First-In-First-Out) 알고리즘을 적용했을 때, 마지막 페이지 3까지 참조를 마친 뒤 프레임에 남아 있는 페이지 번호는? (순서는 무관)

  1. 1, 2, 5
  2. 4, 1, 2
  3. 3, 4, 5
  4. 2, 5, 3
정답과 해설 보기

정답: 4

정답은 ④ 2, 5, 3이다. 빈 프레임에 처음 1·2·3을 넣는다. 이후 4가 오면 가장 먼저 적재된 1을, 다음 1은 2를, 다음 2는 3을, 5는 4를, 마지막 3은 1을 교체한다. 결과적으로 남는 집합은 {2,5,3}이다.

FIFO는 가장 오래전에 적재된 페이지를 교체하며, 적중했을 때 최근 사용 시각으로 순서를 갱신하는 LRU와 다르다. 이번 참조열은 3프레임에서 모든 참조가 부재이므로 교체 순서대로 큐를 갱신하면 확인하기 쉽다. 보기에서는 프레임의 나열 순서가 아닌 남아 있는 페이지 집합을 비교한다.

선지별 해설

  • ① 오답. 마지막 3을 참조하기 직전의 프레임 집합이다.
  • ② 오답. 여섯 번째 참조 2를 처리한 시점의 집합이다.
  • ③ 오답. FIFO 적재 시각의 교체 순서와 맞지 않는다.
  • ④ 정답. 마지막 3이 가장 오래된 1을 교체하여 2·5·3이 남는다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 22 Beyond Physical Memory: Policies — §22.3 A Simple Policy: FIFO

80. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 운영체제의 목적과 관련성이 가장 낮은 방침을 고르면?

  1. 처리 능력 향상
  2. 반환 시간 단축
  3. 신뢰도 향상
  4. 사용자 편의성 배제
정답과 해설 보기

정답: 4

정답은 ④ 사용자 편의성 배제이다. 운영체제는 하드웨어 자원을 관리하고 프로그램 실행과 사용자 작업을 지원한다. 처리 능력, 작업 완료까지 걸리는 시간, 신뢰성 및 사용 편의성을 적절히 높이는 방향을 추구한다.

처리 능력은 일정 시간에 처리한 작업량, 반환 시간은 작업을 제출한 때부터 완료될 때까지의 시간과 관련된다. 최초 응답까지의 응답 시간과 반환 시간은 다르다. 목적 사이에 상충이 있을 수 있지만 사용 편의성을 일괄적으로 배제하는 것은 일반적인 운영체제 목적과 맞지 않는다.

선지별 해설

  • ① 오답. 주어진 시간에 더 많은 작업을 처리하는 것은 성능 목적이다.
  • ② 오답. 작업 제출부터 완료까지의 시간을 줄이는 것은 성능 목적이다.
  • ③ 오답. 안정적으로 기능을 수행하는 것은 중요한 목적이다.
  • ④ 정답. 사용 편의성을 일부러 배제하는 방향은 일반적 목적과 맞지 않는다.

편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 2 Introduction to Operating Systems — Introduction, virtualization·concurrency·persistence 및 design goals; Arpaci-Dusseau, OSTEP v1.10, 7 Scheduling: Introduction — §7.2 Scheduling Metrics

정보처리기사 필기 기출문제 · 정보시스템 구축관리

81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 정보 보안의 3대 요소 중 인가된 사용자만이 정보에 접근할 수 있도록 보장하는 것은?

  1. 무결성(Integrity)
  2. 가용성(Availability)
  3. 부인 방지(Non-repudiation)
  4. 기밀성(Confidentiality)
정답과 해설 보기

정답: 4

정답은 ④ 기밀성이다. 기밀성은 허가되지 않은 정보 공개와 접근을 막아 인가된 대상에게만 정보를 제공하는 성질이다. 예를 들어 권한 없는 사람이 시험 응시자의 개인 정보를 읽지 못하게 제한하는 경우에 해당한다.

무결성은 정보가 부당하게 바뀌거나 파괴되지 않도록 보호하는 것, 가용성은 필요할 때 적절하게 접근하고 이용할 수 있도록 하는 것이다. 부인 방지는 행위의 발생을 나중에 부정하지 못하도록 증거를 제공하는 성질이며 CIA의 세 글자에는 포함되지 않는다.

선지별 해설

  • ① 오답. 부당한 변경이나 파괴에 대한 보호와 관련된다.
  • ② 오답. 필요할 때 정보와 서비스를 이용할 수 있는 성질이다.
  • ③ 오답. 행위가 있었다는 사실을 부정하지 못하도록 하는 성질이다.
  • ④ 정답. 정보 접근·공개를 인가된 범위로 제한한다.

편집 해설 근거: NIST FIPS 199 — §2 Information and Information Systems, Confidentiality·Integrity·Availability

82. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 사용자 인증 요소 중 지식(Something you know)에 해당하는 항목을 고르면?

  1. 패스워드
  2. 홍채
  3. 지문
  4. 스마트카드
정답과 해설 보기

정답: 1

정답은 ① 패스워드이다. 지식 기반 인증 요소는 사용자가 알고 있는 비밀에 근거한다. 기억한 암호나 PIN이 이에 해당한다. 스마트카드는 소유한 물건, 지문과 홍채는 신체적 특성이라는 다른 종류의 요소다.

여러 요소를 결합한다는 것은 같은 종류의 비밀을 두 번 묻는 것과 다르다. 패스워드 두 개를 사용한다고 지식과 소유라는 서로 다른 요소가 되는 것은 아니다. 이 문항은 요소의 종류를 묻는 것이며 특정 방식 하나만으로 모든 보안 요구를 만족한다는 뜻은 아니다.

선지별 해설

  • ① 정답. 사용자가 기억하고 있는 지식에 해당한다.
  • ② 오답. 사용자의 신체 특성에 해당한다.
  • ③ 오답. 사용자의 신체 특성에 해당한다.
  • ④ 오답. 사용자가 소유한 인증 수단에 해당한다.

편집 해설 근거: Peter Reiher, OSTEP v1.10, 54 Authentication — Authentication factors, something you know·have·are

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. OSI 7계층 중 물리적 매체를 통해 비트(Bit) 흐름을 전송하는 계층은?

  1. 전송 계층
  2. 물리 계층
  3. 데이터 링크 계층
  4. 네트워크 계층
정답과 해설 보기

정답: 2

정답은 ② 물리 계층이다. 물리 계층은 상위에서 전달된 비트열을 실제 매체로 전송할 수 있도록 신호와 물리 연결을 다룬다. 전기·광·무선 등 매체에 따른 전송 특성과 인터페이스가 여기에 관련된다.

데이터 링크 계층은 인접 장치 사이의 프레임 전송, 네트워크 계층은 여러 네트워크를 통한 전달과 경로, 전송 계층은 종단 시스템 사이의 전송 서비스를 다룬다. 비트·프레임·패킷이라는 표현을 해당 계층의 역할과 연결해서 이해해야 한다.

선지별 해설

  • ① 오답. 종단 사이의 전송 서비스와 관련된다.
  • ② 정답. 물리 매체를 통한 비트 흐름의 전달을 다룬다.
  • ③ 오답. 인접 노드 사이 프레임 전송을 다룬다.
  • ④ 오답. 네트워크 간 전달과 경로 선택을 다룬다.

편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — §7.7 Physical Layer; §7.6 Data Link Layer; §7.5 Network Layer; §7.4 Transport Layer

84. 다음 중 포트 번호를 이용하여 응용 프로세스 사이에 비연결형 데이터그램 전송을 제공하는 전송 계층 프로토콜은?

[학습용 개정문항]

  1. IP
  2. RARP
  3. ICMP
  4. UDP
정답과 해설 보기

정답: 4

정답은 ④ UDP이다. UDP는 포트 번호를 이용해 응용 프로세스 사이에 데이터그램을 전달하는 전송 계층 프로토콜이다. TCP처럼 연결을 설정하거나 전달 순서·재전송을 보장하는 기능을 기본적으로 제공하지 않는다. 필요한 신뢰성은 응용이나 다른 계층에서 보완할 수 있다.

IP는 인터넷 계층의 패킷 전달, ICMP는 IP 관련 오류와 제어 정보, RARP는 과거 링크 환경의 주소 해석에 관련된다. RARP를 무조건 네트워크 계층으로 묶어 틀린 보기를 하나 고르게 하면 계층 분류가 모호하므로 UDP의 고유한 역할을 직접 묻도록 개정했다.

선지별 해설

  • ① 오답. IP 주소 기반 패킷 전달을 담당한다.
  • ② 오답. 하드웨어 주소로 프로토콜 주소를 알아내던 주소 해석 방식이다.
  • ③ 오답. IP 동작과 관련된 오류·제어 메시지를 전달한다.
  • ④ 정답. 포트 기반의 비연결형 데이터그램 전송을 제공한다.

편집 해설 근거: IETF RFC 768, User Datagram Protocol (1980) — Introduction 및 Format; IETF RFC 1122 (1989), Requirements for Internet Hosts — §1.1.3 Internet Protocol Suite; §2 Link Layer; §4 Transport Protocols

85. IPv4 이더넷 환경에서 같은 링크에 있는 다음 홉의 IPv4 주소를 해당 MAC 주소로 해석하는 프로토콜은?

[학습용 개정문항]

  1. ARP
  2. DHCP
  3. DNS
  4. RARP
정답과 해설 보기

정답: 1

정답은 ① ARP이다. IPv4 이더넷 환경에서 같은 링크의 다음 홉 IPv4 주소에 대응하는 MAC 주소를 알아내는 데 사용한다. 대상이 다른 네트워크에 있으면 일반적으로 최종 원격 서버의 MAC 주소가 아니라 같은 링크에 있는 라우터의 MAC 주소를 구한다.

DHCP는 주소와 설정 정보를 제공하고 DNS는 이름과 주소 등 자원 정보를 조회한다. RARP는 하드웨어 주소로 프로토콜 주소를 알아내는 과거 방식이다. IPv6에서는 ARP 대신 이웃 탐색을 사용하므로 적용 환경을 명시했다.

선지별 해설

  • ① 정답. 같은 링크의 IPv4 다음 홉 주소를 하드웨어 주소로 해석한다.
  • ② 오답. 호스트의 주소와 네트워크 설정 배포에 관련된다.
  • ③ 오답. 도메인 이름과 자원 레코드의 조회에 관련된다.
  • ④ 오답. 하드웨어 주소에서 프로토콜 주소를 얻는 반대 방향의 방식이다.

편집 해설 근거: IETF RFC 826, Ethernet Address Resolution Protocol (1982) — Abstract 및 Packet Reception

86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. IPv6에 대한 기술로 틀린 설명을 고르면?

[학습용 개정문항]

  1. IPv4와 공존하기 위한 듀얼 스택·터널링·변환 같은 방법이 전혀 없다.
  2. 유니캐스트, 멀티캐스트, 애니캐스트 주소 방식을 사용한다.
  3. 128비트 주소 체계를 사용한다.
  4. 기본 헤더의 크기가 40바이트로 고정되어 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. IPv6와 IPv4는 패킷 형식이 달라 그대로 동일하게 처리되지는 않지만, 듀얼 스택·터널링·변환 같은 공존 및 전환 방법이 존재한다. 따라서 그런 방법이 전혀 없다는 설명은 틀리다.

IPv6 주소는 128비트이며 유니캐스트·멀티캐스트·애니캐스트를 정의한다. 기본 IPv6 헤더는 40바이트이고 필요한 추가 정보는 확장 헤더로 표현할 수 있다. 기본 헤더의 길이가 고정이라는 사실과 확장 헤더까지 포함한 모든 헤더 길이가 항상 40바이트라는 주장은 구별해야 한다.

선지별 해설

  • ① 정답. IPv4와 공존하거나 전환하기 위한 여러 방법이 존재한다.
  • ② 오답. IPv6 주소 구조에 해당하는 분류다.
  • ③ 오답. IPv6 주소의 길이는 128비트다.
  • ④ 오답. 기본 헤더는 40바이트이며 확장 헤더는 별도다.

편집 해설 근거: IETF RFC 8200, Internet Protocol Version 6 Specification (2017) — §3 IPv6 Header Format; §4 IPv6 Extension Headers; IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §2 IPv6 Addressing; IETF RFC 4213 (2005), Basic Transition Mechanisms for IPv6 Hosts and Routers — §2 Dual IP Layer Operation; §3 Configured Tunneling; IETF RFC 7915 (2016), IP/ICMP Translation Algorithm — §1 Introduction

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 시스템에 과도한 데이터를 보내 자원을 고갈시켜 서비스를 중단시키는 공격 방식은?

  1. Phishing
  2. DoS
  3. Sniffing
  4. Spoofing
정답과 해설 보기

정답: 2

정답은 ② DoS이다. 서비스 거부 공격은 정상 사용자가 시스템이나 네트워크 자원을 이용하지 못하게 하는 데 목적이 있다. 많은 요청이나 트래픽으로 처리 용량을 소모시키는 자원 고갈은 대표적인 형태다.

모든 DoS가 대량 트래픽을 필요로 하는 것은 아니며 결함을 이용한 작은 입력으로도 서비스가 중단될 수 있다. 여러 출발지에서 분산하여 수행하는 경우는 DDoS라고 부른다. 피싱·스니핑·스푸핑은 각각 속임수에 의한 정보 유도, 도청, 신원이나 주소 위장을 중심으로 구별한다.

선지별 해설

  • ① 오답. 신뢰하는 대상으로 속여 정보나 행동을 유도한다.
  • ② 정답. 정상적인 서비스 이용을 방해하는 공격이다.
  • ③ 오답. 통신 내용을 수집·도청하는 행위다.
  • ④ 오답. 주소나 신원 등을 위장하는 행위다.

편집 해설 근거: IETF RFC 4732, Internet Denial-of-Service Considerations (2006) — §1 Introduction; §2 Types of DoS Attacks

88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 대칭키 암호화 알고리즘에 해당하는 항목을 고르면?

  1. RSA
  2. AES
  3. ECC
  4. ElGamal
정답과 해설 보기

정답: 2

정답은 ② AES이다. AES는 같은 비밀키를 암호화와 복호화에 사용하는 대칭키 블록 암호다. 블록 크기는 128비트이고 정해진 키 길이는 128·192·256비트이다. 키 길이와 블록 크기를 같은 값이라고 일반화하면 안 된다.

RSA와 ElGamal은 공개키·개인키 쌍을 사용하는 비대칭 방식의 예다. ECC는 타원곡선을 이용하는 공개키 기법의 계열로, 그 안에서 키 합의·서명 등의 방식이 구체화된다. 이 보기에서 대칭키 암호에 해당하는 이름은 AES이다.

선지별 해설

  • ① 오답. 공개키·개인키를 사용하는 비대칭 기법이다.
  • ② 정답. 비밀키 기반의 대칭 블록 암호다.
  • ③ 오답. 타원곡선 기반 공개키 기법의 계열이다.
  • ④ 오답. 비대칭키 암호 방식이다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §1 Introduction 및 §3 Definitions; AES parameter table; Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Encryption basics; ECC algorithms

89. 서로 다른 IP 네트워크를 연결하고 목적지 IP 주소와 라우팅 정보를 바탕으로 다음 홉을 선택하는 장비는?

[학습용 개정문항]

  1. 허브
  2. 브리지
  3. 라우터
  4. 리피터
정답과 해설 보기

정답: 3

정답은 ③ 라우터이다. 라우터는 목적지 IP 주소와 라우팅 정보를 이용하여 패킷을 어느 다음 홉과 인터페이스로 보낼지 결정한다. 서로 다른 IP 네트워크를 연결하는 계층 3 전달 기능이다. 연결된 링크의 물리적 방식은 서로 다를 수도 있다.

브리지는 주로 MAC 주소를 이용해 링크 계층 프레임을 전달하고, 허브와 리피터는 물리 신호의 반복·중계에 관련된다. 서로 다른 프로토콜의 변환 자체를 묻는다면 게이트웨이와 혼동되므로 이번 문항은 IP 패킷의 경로 선택으로 역할을 특정했다.

선지별 해설

  • ① 오답. 공유 매체의 신호 중계에 관련되며 IP 경로를 선택하지 않는다.
  • ② 오답. 링크 계층에서 MAC 주소 등을 바탕으로 프레임을 전달한다.
  • ③ 정답. IP 목적지와 라우팅 정보를 이용해 다음 홉을 선택한다.
  • ④ 오답. 신호를 재생·중계하는 물리 계층 장치다.

편집 해설 근거: IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — §2.2.3 Routers; §5.2.4 Determining the Next Hop Address

90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 클라우드 서비스 유형 중 인프라(서버, 스토리지 등)를 서비스 형태로 제공하는 방식은?

  1. IaaS
  2. BaaS
  3. SaaS
  4. PaaS
정답과 해설 보기

정답: 1

정답은 ① IaaS이다. 서비스 이용자가 처리 자원·저장장치·네트워크 같은 기본 컴퓨팅 자원을 제공받고 그 위에 운영체제와 응용을 설치해 사용할 수 있는 모델이다. 물리적 기반 시설은 제공자가 운영하지만 이용자는 자신의 운영체제·저장·응용 설정에 대한 책임을 가진다.

PaaS는 응용을 개발·실행할 플랫폼을, SaaS는 제공자의 완성된 응용을 사용하는 형태를 강조한다. BaaS는 문맥에 따라 Backend 또는 Blockchain as a Service를 뜻할 수 있으나 NIST의 세 기본 서비스 모델 중 인프라 제공을 뜻하는 명칭은 IaaS이다.

선지별 해설

  • ① 정답. 처리·저장·네트워크 같은 기본 인프라 자원을 제공한다.
  • ② 오답. 문맥별 뜻이 있는 용어이며 이 기본 인프라 모델의 명칭이 아니다.
  • ③ 오답. 제공자의 응용 소프트웨어를 이용하는 모델이다.
  • ④ 오답. 응용의 개발·배포·실행 플랫폼을 이용하는 모델이다.

편집 해설 근거: NIST SP 800-145, The NIST Definition of Cloud Computing (2011) — §2 The NIST Definition of Cloud Computing, Service Models

91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 네트워크 토폴로지 중 중앙의 컴퓨터를 중심으로 모든 단말기가 연결된 형태는?

  1. 망형(Mesh)
  2. 성형(Star)
  3. 링형(Ring)
  4. 버스형(Bus)
정답과 해설 보기

정답: 2

정답은 ② 성형이다. 각 단말이 중앙 연결 지점에 개별적으로 연결된 모양이다. 중앙에는 허브나 스위치 같은 장비를 둘 수 있으며, 모든 단말을 서로 직접 연결하는 구조와 구별한다.

일반적인 물리 성형 구조에서 말단 연결 하나의 장애는 그 단말에 주로 영향을 주지만 중앙 장치의 장애는 여러 단말의 통신에 영향을 줄 수 있다. 물리적인 연결 모양과 프레임이 전달되는 논리적인 방식은 별개의 관점이므로, 성형이라고 해서 반드시 특정 통신 방식 하나만 사용하는 것은 아니다.

선지별 해설

  • ① 오답. 여러 노드 사이에 다수의 직접 연결을 두는 구조다.
  • ② 정답. 중앙 연결 지점에서 각 단말로 방사형 연결을 둔다.
  • ③ 오답. 이웃 노드가 고리 모양으로 연결된다.
  • ④ 오답. 공통된 하나의 전송 경로를 공유하는 형태다.

편집 해설 근거: Cisco Systems, Networking Fundamentals (2006), Star Topology — 슬라이드 8, Network Topologies: Star Topology

92. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 거리 벡터 라우팅 프로토콜로, 최대 홉(Hop) 수를 15로 제한하는 것은?

  1. OSPF
  2. RIP
  3. BGP
  4. IGRP
정답과 해설 보기

정답: 2

정답은 ② RIP이다. RIP은 이웃 라우터와 목적지까지의 거리 정보를 교환하는 거리 벡터 계열 라우팅 프로토콜이다. 기본적으로 홉 수를 메트릭으로 사용하고 도달 가능한 거리는 최대 15로 제한한다. 16은 도달 불가를 나타내는 값이다.

이 작은 최대값은 무한대로 세어 올라가는 문제를 제한하지만 사용할 수 있는 네트워크 규모도 제약한다. OSPF는 링크 상태, BGP는 AS 경로 정보를 다루며, IGRP는 거리 벡터 계열이더라도 RIP의 15홉 조건에 해당하지 않는다.

선지별 해설

  • ① 오답. 링크 상태 기반이며 RIP의 15홉 제한으로 설명하지 않는다.
  • ② 정답. 15까지를 유효 거리로, 16을 무한대로 사용하는 RIP이다.
  • ③ 오답. AS 경로와 정책 기반의 도메인 간 라우팅 프로토콜이다.
  • ④ 오답. 거리 벡터 계열이지만 제시한 홉 수 제한은 RIP의 특징이다.

편집 해설 근거: IETF RFC 2453, RIP Version 2 (1998) — §3.2 Limitations of the Protocol; §3.4.2 Preventing Instability

93. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 비대칭키(공개키) 암호화 방식에 대한 기술로 알맞은 것은?

[학습용 개정문항]

  1. 송신자와 수신자가 동일한 비밀키 하나를 반드시 사전에 공유해야 한다.
  2. 서로 다른 공개키와 개인키를 한 쌍으로 사용한다.
  3. DES가 대표적인 알고리즘이다.
  4. 암호화 키와 복호화 키가 동일하다.
정답과 해설 보기

정답: 2

정답은 ②이다. 공개키 암호 방식은 서로 수학적으로 관련된 공개키와 개인키를 구분한다. 암호화 용도에서는 수신자의 공개키로 암호화하고 그에 대응하는 개인키로 복호화하는 구성을 사용할 수 있다. 개인키는 비밀로 유지하고 공개키는 다른 사람에게 전달할 수 있다.

대칭키 방식처럼 두 당사자가 같은 비밀키 하나를 사전에 공유해야만 하는 구조는 아니다. 다만 공개키가 정말 상대방의 것인지 확인하는 인증과 키 관리는 여전히 필요하다. 구현과 용도가 다른 알고리즘을 속도만으로 절대 비교하기보다 키의 구조로 구별한다.

선지별 해설

  • ① 오답. 동일 비밀키의 사전 공유를 필수로 하는 설명은 대칭키 방식에 해당한다.
  • ② 정답. 공개키와 개인키를 구분하는 키 쌍을 사용한다.
  • ③ 오답. DES는 대칭키 블록 암호의 예다.
  • ④ 오답. 공개키와 개인키를 구분하므로 같은 키라는 설명과 다르다.

편집 해설 근거: Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Encryption basics

94. 통신 경로에 인라인으로 개입하지 않는 수동형 네트워크 IDS의 기본 기능으로 보기 어려운 것은?

[학습용 개정문항]

  1. 침입 발생 시 즉각적인 패킷 차단 및 수정
  2. 로그 기록 및 경고 발생
  3. 네트워크 트래픽 분석
  4. 비정상적인 침입 징후 탐지
정답과 해설 보기

정답: 1

정답은 ①이다. 수동형 IDS는 트래픽이나 시스템 활동을 관측하여 침입 징후를 탐지하고 로그와 경고를 남긴다. 통신 경로에서 패킷을 직접 통과시키거나 차단하는 장치로 동작하는 인라인 IPS와 구별한다.

실제 제품은 탐지 뒤 다른 장비에 차단을 요청하거나 탐지·예방 기능을 함께 제공할 수 있다. 따라서 모든 IDS가 어떤 대응도 할 수 없다고 일반화하면 안 된다. 이 문항은 수동 감시형 IDS만을 대상으로 직접적인 패킷 차단·수정을 기본 기능으로 볼 수 있는지 묻는다.

선지별 해설

  • ① 정답. 수동형 IDS의 직접 감시·경고 역할을 넘어 인라인 예방 동작을 설명한다.
  • ② 오답. 발견한 사건을 기록하고 관리자에게 알릴 수 있다.
  • ③ 오답. 감시한 네트워크 트래픽을 분석할 수 있다.
  • ④ 오답. 의심스러운 패턴이나 이상 징후의 탐지가 핵심 기능이다.

편집 해설 근거: NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (2007) — §2.1 Intrusion Detection and Prevention Principles; §4.2.2 Network Architectures and Sensor Locations; §4.3.4 Prevention Capabilities

95. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 무선랜 보안 프로토콜 중 WEP의 취약점을 보완하기 위해 등장한 방식은?

  1. SMTP
  2. WPA
  3. HTTP
  4. FTP
정답과 해설 보기

정답: 2

정답은 ② WPA이다. 초기 무선 LAN의 WEP 취약점을 보완하기 위해 Wi-Fi Alliance가 도입한 보안 인증 체계이며, 초기 WPA는 TKIP 등을 통해 기존 장비에서의 개선을 도모했다. 이후 WPA2 등 후속 체계와 구별해야 한다.

이 설명은 기술의 등장 배경을 묻는 역사적 구분이다. 초기 WPA나 TKIP를 오늘날 새 시스템의 권장 설정이라고 뜻하지 않는다. SMTP는 메일 전송, HTTP는 웹 통신, FTP는 파일 전송에 관한 프로토콜로 무선 링크 보안 체계의 이름이 아니다.

선지별 해설

  • ① 오답. 전자우편 전송 프로토콜이다.
  • ② 정답. WEP의 문제를 보완하기 위해 도입된 무선 보안 체계다.
  • ③ 오답. 웹의 요청·응답 통신에 쓰이는 프로토콜이다.
  • ④ 오답. 파일 전송 프로토콜이다.

편집 해설 근거: NIST SP 800-97 (2007), 2025-12-31 철회·역사 자료 — §2.1.2 Wi-Fi Alliance Certification; §7.3.1 WPA Features

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 대규모 데이터를 분산 처리하기 위한 자바 기반의 오픈 소스 프레임워크는?

  1. Hadoop
  2. MySQL
  3. Oracle
  4. Python
정답과 해설 보기

정답: 1

정답은 ① Hadoop이다. Apache Hadoop은 여러 컴퓨터로 이루어진 클러스터에 대규모 데이터를 저장하고 분산 처리하기 위한 오픈 소스 소프트웨어다. HDFS는 분산 저장, YARN은 자원 관리, MapReduce는 분산 처리 모델 및 구현과 관련된다.

MySQL과 Oracle은 이 문맥에서 관계형 데이터베이스 제품, Python은 프로그래밍 언어다. Hadoop의 주요 구현은 Java 기반이지만 그 위에서 모든 사용자 프로그램을 반드시 Java로만 작성해야 한다는 뜻은 아니다. 제품의 목적과 사용자 언어를 구별한다.

선지별 해설

  • ① 정답. 대규모 데이터의 분산 저장·처리를 지원하는 프레임워크다.
  • ② 오답. 관계형 데이터베이스 제품이다.
  • ③ 오답. 이 보기에서는 데이터베이스 제품을 뜻한다.
  • ④ 오답. 여러 영역에 사용하는 프로그래밍 언어다.

편집 해설 근거: Apache Hadoop documentation — Overview; Hadoop Common·HDFS·YARN·MapReduce

97. 스위치 기반 네트워크에서 단말의 물리적 위치와 별개로 논리적 LAN을 구성하고 브로드캐스트 도메인을 구분하는 기술은?

[학습용 개정문항]

  1. VLAN
  2. WAN
  3. PAN
  4. VPN
정답과 해설 보기

정답: 1

정답은 ① VLAN이다. VLAN은 스위치 기반 네트워크에서 물리적인 연결 위치와 별개로 논리적 LAN을 나누는 기술이다. 같은 인프라의 포트를 서로 다른 브로드캐스트 도메인으로 분리하거나 여러 스위치에 걸쳐 같은 논리적 LAN을 구성할 수 있다.

WAN은 넓은 지역의 네트워크, PAN은 개인 주변의 네트워크 범위를 뜻한다. VPN은 공용 망 등을 통한 가상 사설 연결에 관련되며 원격 장치를 연결한다는 사실만으로 VLAN과 구별하기 어렵다. 따라서 이 문항은 스위치 인프라의 논리적 브로드캐스트 도메인 구성을 직접 묻는다.

선지별 해설

  • ① 정답. 물리 위치와 독립적으로 논리적 LAN과 브로드캐스트 도메인을 구성한다.
  • ② 오답. 네트워크의 광역 범위를 뜻한다.
  • ③ 오답. 개인 주변의 근거리 네트워크 범위를 뜻한다.
  • ④ 오답. 가상 사설 연결의 개념이며 스위치의 논리적 LAN 구분 자체는 VLAN이다.

편집 해설 근거: Cisco Configuration Assistant SBCS Administrator Guide 3.0.1, VLANs — Chapter 5 Port and Switch Settings, VLANs, Overview, p.158

98. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 시큐어 코딩(Secure Coding) 가이드의 분류 중 입력 데이터 검증 및 표현 영역에 해당하는 보안 약점은?

  1. 널(NULL) 포인터 역참조
  2. 시간 및 상태 오류
  3. SQL 삽입(Injection)
  4. 캡슐화 위반
정답과 해설 보기

정답: 3

정답은 ③ SQL 삽입이다. 신뢰할 수 없는 입력이 SQL 문장의 구조나 의미를 바꾸도록 섞이는 취약점이다. 예를 들어 사용자 값을 SQL 문자열에 단순 연결하면 입력이 데이터가 아니라 구문의 일부로 해석될 위험이 생긴다.

2021년 소프트웨어 개발보안 가이드에서는 이를 입력 데이터 검증 및 표현 영역에서 다룬다. 예방에는 데이터와 질의 구조를 분리하는 매개변수 바인딩 등이 중요하며, 단순한 금칙어 삭제만으로 충분하다고 볼 수 없다. NULL 포인터 역참조와 시간·상태 및 캡슐화 문제는 다른 분류와 연결된다.

선지별 해설

  • ① 오답. 가이드의 코드 오류 영역에서 다루는 약점이다.
  • ② 오답. 시간 및 상태라는 별도 영역에 해당한다.
  • ③ 정답. 외부 입력이 SQL 의미를 바꾸는 입력 검증·표현 약점이다.
  • ④ 오답. 캡슐화라는 별도 영역에 해당한다.

편집 해설 근거: 행정안전부·한국인터넷진흥원, 소프트웨어 개발보안 가이드 (2021.12.29) — 2021.12.29 첨부 PDF, 제4장 제1절 1. SQL 삽입, pp.136~139; OWASP — SQL Injection Prevention — Primary Defenses, Prepared Statements with Parameterized Queries

99. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 디지털 저작권 관리(DRM) 구성 요소 중 콘텐츠를 암호화하여 배포 가능한 형태로 만들어 주는 것은?

  1. 보안 컨테이너
  2. DRM 컨트롤러
  3. 클리어링 하우스
  4. 패키저(Packager)
정답과 해설 보기

정답: 4

정답은 ④ 패키저이다. 패키저는 배포할 콘텐츠를 암호화하고 DRM이 사용할 식별 정보나 헤더 등을 함께 구성한다. 재생할 때 이용 권한을 확인하고 필요한 키를 얻을 수 있도록 배포 가능한 보호 콘텐츠를 만드는 역할이다.

보안 컨테이너는 보호된 내용과 관련 정보를 담는 형식이나 묶음, DRM 컨트롤러는 이용 과정의 권한 적용, 클리어링 하우스는 권한·거래 처리 같은 역할과 연결된다. 제품마다 구성 명칭이 조금씩 달라도 암호화와 보호 패키징을 수행한다는 조건은 패키저를 가리킨다.

선지별 해설

  • ① 오답. 암호화 작업의 주체보다 보호 콘텐츠를 담는 구조나 묶음이다.
  • ② 오답. 이용 단계에서 권한을 적용·통제하는 역할과 관련된다.
  • ③ 오답. 권한 발급이나 거래 처리의 중개 역할과 관련된다.
  • ④ 정답. 콘텐츠 암호화와 DRM 정보를 포함한 패키징을 수행한다.

편집 해설 근거: Microsoft PlayReady, Content Packaging and Delivery — Introduction; Packaging PlayReady content — Encrypting and inserting the DRM header

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 서버 장애 발생 시 백업 서버가 즉시 업무를 이어받아 수행하도록 하는 고가용성 솔루션은?

  1. HACMP
  2. RAID
  3. UPS
  4. NAS
정답과 해설 보기

정답: 1

정답은 ① HACMP이다. IBM의 고가용성 클러스터 소프트웨어 계열을 가리키는 명칭으로, 노드나 응용의 장애를 감지하면 설정한 자원과 서비스를 다른 노드가 이어받도록 구성한다. 후속 PowerHA SystemMirror 문서에서도 장애 감지와 자원 그룹의 인계가 핵심 기능이다.

다만 즉시라는 표현이 장애 감지와 복구에 시간이 전혀 들지 않는다는 뜻은 아니다. 인계 시간은 감지 설정·자원·응용 복구 절차에 따라 달라진다. RAID는 저장장치 구성, UPS는 전원 유지, NAS는 네트워크 저장 서비스이므로 서버 응용의 자동 인계 솔루션과 구별한다.

선지별 해설

  • ① 정답. 장애 때 클러스터의 다른 노드로 자원·서비스를 인계하는 고가용성 솔루션이다.
  • ② 오답. 여러 디스크를 묶는 저장장치 구성 기술이다.
  • ③ 오답. 전원 공급 중단에 대비하는 장치다.
  • ④ 오답. 네트워크를 통해 파일 등의 저장 서비스를 제공하는 장치·시스템이다.

편집 해설 근거: IBM, HACMP 5.5 Planning Guide — Planning, Overview of planning process goals, p.1; Resource group policies for startup, fallover, and fallback, p.106; IBM Cloud Docs, Getting started with PowerHA Automation (2026-10-05 확인) — Overview 및 failure detected resource-group movement 설명

정보처리기사 필기 기출문제 학습 방법

먼저 PDF 문제지를 시간에 맞춰 푼 뒤, 이 글에서 오답의 정답·해설·근거를 확인하세요. 법규 문항은 근거 기준일 이후 개정 여부도 함께 확인하는 것이 안전합니다.

정보처리기사 과년도 전체 보기

자료 기준·검수 정보