문제지 PDF · 웹 정답 해설

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

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

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

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

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

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

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

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

1. 럼바우의 OMT에서 ㉠ 정적 대상과 관계, ㉡ 사건에 따른 상태 변화, ㉢ 입력에서 출력으로의 데이터 변환을 나타내는 모델을 ㉠→㉡→㉢ 순으로 나열한 것은?

[학습용 개정문항]

  1. 객체 모델링 → 기능 모델링 → 동적 모델링
  2. 기능 모델링 → 동적 모델링 → 객체 모델링
  3. 기능 모델링 → 객체 모델링 → 동적 모델링
  4. 객체 모델링 → 동적 모델링 → 기능 모델링
정답과 해설 보기

정답: 4

정답은 ④이다. OMT의 객체 모델은 객체와 속성, 객체 사이의 관계처럼 시스템의 정적 구조를 표현한다. 동적 모델은 사건에 반응하여 상태가 어떻게 바뀌는지 다루며, 기능 모델은 입력 데이터가 어떤 처리를 거쳐 출력으로 바뀌는지 나타낸다. 따라서 제시한 세 관점은 객체 → 동적 → 기능 모델에 대응한다.

이는 관점의 대응 관계를 묻는 문제다. 실제 분석에서 세 모델은 서로 내용을 보완하고 일관성을 점검하므로, 한 번 작성한 앞 단계로 절대로 돌아갈 수 없는 고정 절차로 이해해서는 안 된다.

선지별 해설

  • ① 오답. 두 번째의 상태 변화는 동적 모델, 세 번째의 데이터 변환은 기능 모델이다.
  • ② 오답. 정적 대상과 관계를 나타내는 첫 관점은 객체 모델이다.
  • ③ 오답. 첫 번째와 두 번째 관점 모두 올바르게 대응하지 않는다.
  • ④ 정답. 정적 구조, 시간에 따른 변화, 데이터 변환에 각각 대응한다.

편집 해설 근거: Dov Dori, On Bridging the Analysis–Design and Structure–Behavior Grand Canyons with Object Paradigms (1996), 저자 제공 원문 — 인쇄 p.26, Object Modeling Technique; PDF p.2

2. 설계 검토 회의에서 다음 항목을 판단한다. 멀티터치나 동작 인식처럼 사용자의 자연스러운 움직임으로 상호작용하는 UI는?

  1. NUI(Natural User Interface)
  2. CLI(Command Line Interface)
  3. GUI(Graphical User Interface)
  4. OUI(Organic User Interface)
정답과 해설 보기

정답: 1

정답은 ① NUI이다. NUI는 터치, 몸짓, 음성처럼 사람이 익숙하게 사용하는 표현을 컴퓨터와의 상호작용에 활용하는 접근이다. 화면을 두 손가락으로 확대하거나 신체 동작으로 조작하는 사례가 이에 해당한다. 자연스럽다는 이름이 모든 사용자에게 학습이 전혀 필요 없다는 보장을 뜻하지는 않는다.

CLI는 명령 문자열, GUI는 창·아이콘 같은 그래픽 조작에 초점을 둔다. OUI는 비평면 형태나 변형 가능한 표시 장치와 물리적 형태의 상호작용을 강조한다. 한 제품이 GUI와 NUI의 특성을 함께 가질 수도 있다.

선지별 해설

  • ① 정답. 자연스러운 터치·제스처 등의 상호작용을 가리킨다.
  • ② 오답. 사용자가 명령 문자열을 입력하는 방식이다.
  • ③ 오답. 그래픽 요소 중심이라는 구분이며 자연스러운 움직임을 강조한 명칭은 NUI다.
  • ④ 오답. 장치의 비평면 형태·변형과 결합한 상호작용에 초점을 둔다.

편집 해설 근거: Microsoft, Behind the scenes of NUI at Microsoft (2011-10-17) — 본문, touch·gestures·speech와 LightSpace 사례; Holman·Vertegaal, Organic User Interfaces (CACM 51(6), 2008), 저자 연구실 공개 원문 — 인쇄 p.52, Defining Organic User Interfaces

3. 설계 검토 회의에서 다음 항목을 판단한다. 소프트웨어 설계에서 일반적으로 사용하는 추상화 기법이 해당하지 않는 것을 고르면?

  1. 강도 추상화
  2. 자료 추상화
  3. 제어 추상화
  4. 과정 추상화
정답과 해설 보기

정답: 1

정답은 ① 강도 추상화이다. 추상화는 문제를 이해하는 데 필요한 특징을 남기고 구현의 세부 사항을 감추는 방법이다. 자료 추상화는 자료의 내부 표현보다 제공하는 연산을 중심으로 사용하게 하고, 과정 추상화는 여러 처리 단계를 이름 있는 연산이나 함수로 묶는다.

제어 추상화는 반복이나 실행 순서의 세부 제어를 상위 수준의 구성으로 다루게 한다. 강도는 이 문항에서 비교하는 자료·과정·제어 추상화의 종류가 아니다. 이를 모듈 내부 관련성의 정도를 표현하는 응집도 등의 개념과 혼동하지 않는다.

선지별 해설

  • ① 정답. 제시된 추상화 분류에 해당하는 통상적인 기법 명칭이 아니다.
  • ② 오답. 자료 표현을 숨기고 연산을 통해 다루는 추상화다.
  • ③ 오답. 제어 흐름의 세부 사항을 상위 수준으로 묶는 추상화다.
  • ④ 오답. 처리 절차를 함수 등 하나의 연산으로 묶는 추상화다.

편집 해설 근거: MIT Laboratory for Computer Science, Programming Methodology Group Progress Report 1975–76, Memo 150 (1977) — Introduction, procedural·data·control abstraction 설명

4. 설계 검토 회의에서 다음 항목을 판단한다. 시스템 기능을 모듈로 나누고 계층 구조로 표현하며 가시적 도표, 총체적 도표, 세부적 도표로 구성되는 기법은?

  1. 순서도
  2. 번다운 차트
  3. 비주얼 다이어그램
  4. HIPO 차트
정답과 해설 보기

정답: 4

정답은 ④ HIPO 차트이다. HIPO는 Hierarchy plus Input-Process-Output의 약자로, 기능의 계층 관계와 각 기능의 입력·처리·출력을 함께 문서화한다. 가시적 도표는 어떤 기능이 어떤 하위 기능으로 나뉘는지 보여 주는 시각적 목차에 해당한다.

총체적 도표는 기능을 개괄하고 세부적 도표는 이를 더 자세하게 설명한다. 순서도가 실행 순서나 분기를 표현하는 데 초점을 둔다면 HIPO는 기능 계층과 IPO 설명을 묶는다. 번다운 차트의 남은 작업량 추적과도 목적이 다르다.

선지별 해설

  • ① 오답. 처리 순서와 분기를 보여 주지만 HIPO의 세 도표 구성 명칭은 아니다.
  • ② 오답. 시간에 따른 남은 작업량을 나타내는 차트다.
  • ③ 오답. 시각적인 다이어그램이라는 일반 표현만으로 HIPO 구성을 지칭하지 않는다.
  • ④ 정답. 기능 계층과 입력·처리·출력을 세 종류의 도표로 기술한다.

편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Chapter 5, 인쇄 pp.13–16, overview·detail diagrams 및 visual table of contents; Agile Alliance, Burndown Chart — Definition

5. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 분석이 어려운 원인으로 보기 힘든 것은?

  1. 사용자 요구에는 예외가 거의 없어 열거와 구조화가 쉽다.
  2. 요구사항이 모호하거나 불명확할 수 있다.
  3. 개발 과정에서도 요구사항이 계속 변할 수 있다.
  4. 개발자와 사용자 사이에 지식과 표현 방식의 차이가 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 요구사항 분석에서는 정상적인 처리뿐 아니라 예외 상황, 이해관계자의 서로 다른 기대, 빠진 조건도 찾아야 한다. 따라서 사용자 요구에 예외가 거의 없어서 쉽게 열거할 수 있다는 일반화는 분석이 어려운 원인을 설명하지 못한다.

예를 들어 주문 취소 기능은 취소 시점, 결제 완료 여부, 배송 상태에 따라 동작이 달라진다. 모호한 표현을 구체화하고 사용자가 쓰는 용어를 개발자가 같은 뜻으로 이해하는 과정이 필요하다. 사업 환경이나 이해가 바뀌면 요구사항도 변하므로 변경 관리와 반복 확인이 중요하다.

선지별 해설

  • ① 정답. 예외가 거의 없다는 전제가 일반적으로 성립하지 않으며 어려움의 원인도 아니다.
  • ② 오답. 모호한 표현은 해석 차이와 누락을 만들어 분석을 어렵게 한다.
  • ③ 오답. 요구의 변화는 기존 합의와 설계 영향의 재검토를 요구한다.
  • ④ 오답. 업무 지식과 표현 방식의 차이는 의사소통 비용을 높인다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §4.1 Unstructured Natural Language Requirements Specification; §7.1 Iterative Nature of the Requirements Process; §7.4 Requirements Stability and Volatility

6. 처리를 원으로, 자료 저장소를 두 평행선으로 나타내는 DFD 표기에서 구성 요소와 기호의 연결이 잘못된 것은?

[학습용 개정문항]

  1. 자료 저장소(Data Store) – 삼각형
  2. 단말(Terminator) – 사각형
  3. 처리(Process) – 원
  4. 자료 흐름(Data Flow) – 화살표
정답과 해설 보기

정답: 1

정답은 ①이다. 이 문항에서 사용하는 원형 처리 표기의 DFD에서는 처리를 원, 외부 개체를 사각형, 자료 흐름을 방향이 있는 선으로 나타낸다. 자료 저장소는 두 평행선으로 나타내며 삼각형이 아니다. 데이터가 어디에서 와서 어떤 처리와 저장을 거치는지 읽는 것이 핵심이다.

DFD에는 처리 기호를 모서리가 둥근 사각형으로 그리는 등 다른 표기 관례도 있다. 따라서 모든 DFD가 반드시 동일한 원을 사용한다고 외우지 말고, 문제에 지정된 표기 방식에서 요소와 기호를 대응시킨다. 단말은 여기서 시스템 밖의 외부 개체를 뜻한다.

선지별 해설

  • ① 정답. 지정한 표기에서 자료 저장소는 두 평행선이며 삼각형이 아니다.
  • ② 오답. 외부 개체를 사각형으로 나타내므로 올바른 연결이다.
  • ③ 오답. 이 문제의 표기에서 처리를 원으로 나타내므로 올바르다.
  • ④ 오답. 데이터의 이동 방향을 화살표로 나타내므로 올바르다.

편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram, 첫 번째 기호 그림

7. 설계 검토 회의에서 다음 항목을 판단한다. 익스트림 프로그래밍(XP)의 핵심 가치에 포함되지 않는 것은?

  1. 피드백
  2. 용기
  3. 의사소통
  4. 정형 분석
정답과 해설 보기

정답: 4

정답은 ④ 정형 분석이다. XP의 다섯 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 팀원이 요구와 문제를 자주 공유하고, 짧은 개발 주기에서 결과를 확인하며, 필요한 개선을 수행하는 태도를 강조한다. 피드백·용기·의사소통은 이 가치 목록에 직접 들어간다.

정형 분석은 수학적인 표현과 추론을 활용하는 분석 접근을 가리킬 수 있지만 XP의 다섯 가치에 해당하지 않는다. 프로젝트에서 어떤 분석 기법을 사용할 수 있는지와 그 기법의 이름이 XP의 핵심 가치인지 여부는 구별해야 한다.

선지별 해설

  • ① 오답. 결과를 확인하고 다음 활동을 개선하는 피드백은 XP 가치다.
  • ② 오답. 필요한 수정과 판단을 수행하는 용기는 XP 가치다.
  • ③ 오답. 팀과 이해관계자의 의사소통은 XP 가치다.
  • ④ 정답. 정형 분석은 XP의 다섯 가치 목록에 포함되지 않는다.

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

8. 설계 검토 회의에서 다음 항목을 판단한다. 사용자 인터페이스 설계 지침으로 부적절한 것은?

  1. 이해하기 쉽고 사용하기 편한 환경을 제공한다.
  2. 자주 쓰는 주요 기능은 접근하기 쉽게 배치한다.
  3. 치명적 오류의 부정적 결과를 사용자가 알아차리지 못하게 한다.
  4. 연령·직무 등 다양한 사용자 계층을 수용한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 사용자가 오류의 결과를 알아야 복구하거나 추가 손실을 피할 수 있다. 중요한 데이터가 저장되지 않았는데 정상 완료처럼 보이게 하면 사용자는 잘못된 판단을 하게 된다. 오류 메시지는 문제를 이해할 수 있는 말로 설명하고 가능한 해결 방법을 안내해야 한다.

편리한 접근, 이해하기 쉬운 표현, 다양한 사용자의 수용은 바람직한 UI 설계 방향이다. 다만 모든 내부 오류 정보나 보안상 민감한 세부 사항을 그대로 공개하라는 뜻은 아니다. 사용자의 행동 결정에 필요한 결과와 대응 방법을 적절하게 알리는 것이 핵심이다.

선지별 해설

  • ① 오답. 이해와 조작을 쉽게 하는 것은 적절한 설계 방향이다.
  • ② 오답. 자주 사용하는 주요 기능의 접근성을 높이는 것은 적절하다.
  • ③ 정답. 중대한 오류 결과를 숨기면 사용자가 복구나 예방 행동을 할 수 없다.
  • ④ 오답. 서로 다른 사용자의 능력과 환경을 고려하는 것은 적절하다.

편집 해설 근거: Microsoft, Windows 7 UX Guidelines: Error Messages — Guidelines, Writing error messages; W3C WCAG 2.2, Understanding SC 3.3.1 Error Identification — Intent

9. 액터가 목표를 달성하기 위해 시스템과 주고받는 상호작용을 기본 흐름과 대안 흐름으로 기술하는 요구사항 표현은?

[학습용 개정문항]

  1. 레이아웃
  2. 유스케이스
  3. 스토리보드
  4. 프로토타입
정답과 해설 보기

정답: 2

정답은 ② 유스케이스이다. 유스케이스는 사용자나 외부 시스템인 액터가 목표를 달성하기 위해 시스템과 주고받는 동작을 기술한다. 예를 들어 상품 주문에서는 주문 요청, 재고 확인, 결제, 주문 완료와 실패 시의 대안 흐름을 요구사항으로 정리할 수 있다.

레이아웃은 화면 요소의 배치를, 스토리보드는 화면이나 장면의 흐름을, 프로토타입은 시험하고 의견을 얻기 위한 초기 모형을 강조한다. 이들도 요구사항 이해를 도울 수 있지만, 액터의 목표와 시스템 상호작용을 기본·대안 흐름으로 기술한다는 조건은 유스케이스에 직접 대응한다.

선지별 해설

  • ① 오답. 화면 요소의 공간적 배치에 초점을 둔다.
  • ② 정답. 액터의 목표와 시스템의 상호작용 흐름을 요구사항으로 기술한다.
  • ③ 오답. 화면·장면의 전개를 표현할 수 있지만 제시한 액터 중심의 명세는 유스케이스다.
  • ④ 오답. 실제 동작이나 형태를 시험하기 위한 초기 모형이다.

편집 해설 근거: Ivar Jacobson International, Use Case Definition — Use Case Definition, use case·goal·flow of events 설명

10. 설계 검토 회의에서 다음 항목을 판단한다. 객체지향 설계의 SOLID 원칙에 해당하지 않는 것은?

  1. LSP
  2. SSO
  3. ISP
  4. DIP
정답과 해설 보기

정답: 2

정답은 ② SSO이다. SOLID는 단일 책임(S), 개방·폐쇄(O), 리스코프 치환(L), 인터페이스 분리(I), 의존 역전(D)의 다섯 설계 원칙을 묶은 이름이다. 따라서 LSP·ISP·DIP는 각각 L·I·D에 대응하지만 SSO는 이 원칙의 이름이 아니다.

리스코프 치환은 하위 타입을 상위 타입 대신 사용할 때 기대한 동작을 깨뜨리지 않는 방향이다. 인터페이스 분리는 사용하지 않는 기능에 대한 의존을 줄이고, 의존 역전은 구체 구현보다 추상에 의존하도록 관계를 구성한다. 약자와 설계 목적을 함께 연결해 기억한다.

선지별 해설

  • ① 오답. Liskov Substitution Principle은 SOLID의 L이다.
  • ② 정답. SSO는 SOLID의 다섯 설계 원칙에 포함되지 않는다.
  • ③ 오답. Interface Segregation Principle은 SOLID의 I이다.
  • ④ 오답. Dependency Inversion Principle은 SOLID의 D이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §5.4 Object-Oriented Design

11. 설계 검토 회의에서 다음 항목을 판단한다. Jacobson의 객체지향 분석 방법을 가장 잘 설명한 것은?

  1. 유스케이스를 중심으로 사용자와 시스템의 상호작용을 분석한다.
  2. E-R 다이어그램을 중심으로 객체의 행위를 데이터 모델링한다.
  3. 객체·동적·기능 모델로 나누어 분석한다.
  4. 미시적 개발 프로세스와 거시적 개발 프로세스를 함께 사용한다.
정답과 해설 보기

정답: 1

정답은 ①이다. Jacobson의 OOSE는 유스케이스를 중심으로 사용자에게 필요한 시스템의 동작을 분석하는 접근이다. 액터의 목표와 상호작용을 기술하면 요구사항이 설계와 시험으로 연결되는 출발점을 마련할 수 있다. 화면 배치나 데이터 구조만 정하는 작업으로 제한되지 않는다.

객체·동적·기능의 세 모델은 Rumbaugh의 OMT를 설명하는 조합이다. 미시적·거시적 개발 프로세스의 구분은 Booch 방법과 연결된다. E-R 다이어그램은 개체와 관계 중심의 데이터 구조 표현이므로 Jacobson의 유스케이스 중심 접근을 설명한 보기는 아니다.

선지별 해설

  • ① 정답. 사용자 목표와 시스템 상호작용을 유스케이스로 파악한다.
  • ② 오답. E-R 중심의 데이터 구조 설명은 Jacobson 방법의 핵심 특징이 아니다.
  • ③ 오답. Rumbaugh OMT의 세 모델 조합이다.
  • ④ 오답. Booch 방법의 미시적·거시적 프로세스 구분이다.

편집 해설 근거: Ivar Jacobson International, Use Case Definition — Use Case Definition, OOSE와 use-case driven approach 소개; Dov Dori, On Bridging the Analysis–Design and Structure–Behavior Grand Canyons with Object Paradigms (1996), 저자 제공 원문 — 인쇄 p.26, Object Modeling Technique 및 Object-Oriented Software Engineering; Grady Booch, Object-Oriented Analysis and Design with Applications 2판, 출판사 목차 — 목차, The Micro Development Process; The Macro Development Process

12. 설계 검토 회의에서 다음 항목을 판단한다. 한 모듈의 구성 요소들이 하나의 목적을 위해 서로 얼마나 밀접하게 연관되는지를 나타내는 척도는?

  1. 응집도(Cohesion)
  2. 결합도(Coupling)
  3. 구조(Structure)
  4. 통일성(Unity)
정답과 해설 보기

정답: 1

정답은 ① 응집도이다. 응집도는 하나의 모듈 안에 들어 있는 책임이나 기능이 서로 얼마나 관련되어 있는지 나타낸다. 예를 들어 사용자 인증을 맡은 모듈이 인증과 관계없는 인쇄 설정까지 처리하면 책임이 흩어져 이해와 변경이 어려워질 수 있다.

결합도는 모듈 사이의 의존 관계를 살피는 개념이다. 내부의 관련성을 묻는 응집도와 외부 모듈에 대한 의존을 묻는 결합도를 구별해야 한다. 구조나 통일성이라는 일반 단어가 관련된 느낌을 줄 수 있지만, 문항의 정의에 직접 대응하는 공학 용어는 응집도이다.

선지별 해설

  • ① 정답. 한 모듈 내부 요소의 관련성을 나타내는 척도다.
  • ② 오답. 서로 다른 모듈 사이의 의존 정도를 나타낸다.
  • ③ 오답. 구성과 관계를 넓게 가리키며 이 척도의 명칭이 아니다.
  • ④ 오답. 일관됨을 뜻하는 일반 표현이며 해당 척도명은 응집도다.

편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Design Principle 2: Increase cohesion where possible (p.16); Design Principle 3: Reduce coupling where possible (p.25)

13. 설계 검토 회의에서 다음 항목을 판단한다. 소프트웨어 모델링에 관한 기술로 틀린 설명을 고르면?

  1. 모델링은 유지보수 단계에서만 활용한다.
  2. 서로 다른 분야의 엔지니어가 시스템 개념을 공유하게 한다.
  3. 자료 흐름도는 절차적 시스템의 처리 중심 모델링에 쓰인다.
  4. 개발팀이 응용 문제를 이해하는 데 도움을 준다.
정답과 해설 보기

정답: 1

정답은 ①이다. 모델은 실제 시스템의 중요한 특징을 선택하여 간단하게 표현한 것이다. 요구사항을 이해하고 설계를 비교하며 구현 결과를 검토할 때 모두 사용할 수 있으므로 유지보수 단계에만 사용된다는 설명은 틀리다. 유지보수에서도 변경 영향을 이해하는 데 도움이 된다.

모델링은 서로 다른 배경의 이해관계자가 같은 시스템을 논의하도록 돕는다. DFD는 데이터가 어떤 처리와 저장소를 거치는지 표현하여 처리 중심의 이해를 지원한다. 모델이 실제 시스템의 모든 세부를 포함하는 것은 아니므로 목적에 맞는 관점과 추상화 수준을 선택해야 한다.

선지별 해설

  • ① 정답. 모델링은 요구 분석·설계 등 다양한 생명주기 활동에서 사용한다.
  • ② 오답. 공통 표현을 통해 시스템에 관한 의사소통을 돕는다.
  • ③ 오답. DFD는 데이터 변환과 흐름을 중심으로 처리를 표현한다.
  • ④ 오답. 중요한 구조와 동작을 추려 문제 이해를 돕는다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Models and Methods §1.1 Modeling Principles; Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram

14. 설계 검토 회의에서 다음 항목을 판단한다. GoF 디자인 패턴 중 생성(Creational) 패턴은?

  1. Decorator
  2. State
  3. Singleton
  4. Adapter
정답과 해설 보기

정답: 3

정답은 ③ Singleton이다. Singleton은 특정 클래스의 인스턴스가 하나라는 제약과 그 인스턴스에 접근하는 방식을 다루므로 생성 패턴으로 분류된다. 객체 생성의 수와 접근 방식을 통제한다는 목적에 주목하면 된다. 모든 전역 변수나 모든 하나뿐인 객체가 자동으로 이 패턴이 되는 것은 아니다.

Decorator는 객체를 감싸 책임을 추가하고 Adapter는 인터페이스를 맞추는 구조 패턴이다. State는 상태 객체에 따라 행동을 바꾸는 행위 패턴이다. 이름을 외우는 데 그치지 않고 생성·구조·행위 중 무엇을 해결하는지 구별한다.

선지별 해설

  • ① 오답. 객체에 책임을 덧붙이는 구조 패턴이다.
  • ② 오답. 상태에 따라 행동을 달리하는 행위 패턴이다.
  • ③ 정답. 인스턴스 생성과 접근을 통제하는 생성 패턴이다.
  • ④ 오답. 서로 맞지 않는 인터페이스를 연결하는 구조 패턴이다.

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

15. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 명세 기법에 관한 기술로 잘못된 것은?

  1. 정형 명세는 엄밀하고 간결하게 표현할 수 있다.
  2. 비정형 명세는 자연어를 기반으로 요구를 서술한다.
  3. 비정형 명세에서 Z 표기법을 사용한다.
  4. 정형 명세는 수학적 원리와 표기법을 사용한다.
정답과 해설 보기

정답: 3

정답은 ③이다. Z는 집합론과 술어 논리를 바탕으로 시스템의 상태와 연산을 기술하는 정형 명세 표기법이다. 따라서 Z를 비정형 명세의 예로 분류한 문장이 틀리다. 자연어로 요구를 서술하는 방식과 수학적 의미를 갖는 표기법을 사용하는 방식을 구별한다.

정형 명세는 가정과 조건을 엄밀하게 표현하여 일관성이나 성질을 분석하는 데 도움이 된다. 하지만 수학적 표기를 썼다는 이유만으로 사용자 요구가 올바르게 파악되었다고 보장되지는 않는다. 자연어 설명과 정형 모델을 함께 사용하여 이해와 검증을 보완할 수도 있다.

선지별 해설

  • ① 오답. 정형 명세는 수학적 의미에 따라 엄밀하고 간결하게 표현할 수 있다.
  • ② 오답. 자연어 기반 서술은 비정형 명세의 대표 방식이다.
  • ③ 정답. Z는 집합론·술어 논리를 바탕으로 하는 정형 명세 표기다.
  • ④ 오답. 수학적 원리와 표기를 사용하는 것이 정형 명세의 특징이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG19, Formal Specification Languages, 2001 보존 문서 — Formal Specification languages; The Z Notation project; IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Models and Methods §4.2 Formal Methods

16. 설계 검토 회의에서 다음 항목을 판단한다. GoF 패턴을 생성·구조·행위로 나눌 때 구조 패턴이 해당하지 않는 것을 고르면?

  1. Adapter
  2. Bridge
  3. Builder
  4. Proxy
정답과 해설 보기

정답: 3

정답은 ③ Builder이다. Builder는 복잡한 객체를 단계적으로 구성하는 과정을 다루는 생성 패턴이다. 객체를 어떤 순서와 조합으로 만들어 낼지를 분리한다는 목적이므로 구조 패턴을 찾는 목록에서는 제외된다. 예를 들어 여러 설정을 조합하여 완성된 객체를 만드는 경우를 생각할 수 있다.

Adapter는 인터페이스를 맞추고, Bridge는 추상 부분과 구현 부분을 분리하며, Proxy는 다른 객체에 대한 접근을 대신한다. 이 세 패턴은 객체나 클래스의 연결 구조를 구성하는 구조 패턴이다.

선지별 해설

  • ① 오답. 인터페이스를 맞추는 구조 패턴이다.
  • ② 오답. 추상과 구현의 결합 구조를 분리하는 구조 패턴이다.
  • ③ 정답. 객체의 단계적 생성을 다루는 생성 패턴이다.
  • ④ 오답. 다른 객체에 대한 접근을 대행하는 구조 패턴이다.

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

17. 설계 검토 회의에서 다음 항목을 판단한다. UML 다이어그램 중 시스템의 동작을 표현하는 행위 다이어그램이 해당하지 않는 것을 고르면?

  1. 시퀀스 다이어그램
  2. 활동 다이어그램
  3. 배치 다이어그램
  4. 유스케이스 다이어그램
정답과 해설 보기

정답: 3

정답은 ③ 배치 다이어그램이다. 배치 다이어그램은 실행 환경의 노드와 그곳에 배치되는 산출물 등의 관계를 표현하는 구조 다이어그램이다. 예를 들어 서버와 장치, 그 위에 배치된 소프트웨어를 나타내는 데 사용할 수 있다.

시퀀스 다이어그램은 메시지 교환 순서를, 활동 다이어그램은 작업과 제어 흐름을, 유스케이스 다이어그램은 액터와 시스템 기능의 관계를 나타낸다. UML의 공식 분류에서는 시퀀스는 상호작용 다이어그램에 속하고, 상호작용 다이어그램은 행위 다이어그램의 하위 분류이다.

선지별 해설

  • ① 오답. 상호작용 다이어그램이며 행위 다이어그램에 속한다.
  • ② 오답. 활동과 흐름을 표현하는 행위 다이어그램이다.
  • ③ 정답. 노드와 배치 관계를 표현하는 구조 다이어그램이다.
  • ④ 오답. UML 분류에서 행위 다이어그램에 속한다.

편집 해설 근거: OMG UML 2.5.1 (2017) — Annex A, Figure A.5 UML diagram taxonomy; §19 Deployments

18. 설계 검토 회의에서 다음 항목을 판단한다. 분산 시스템의 미들웨어에 관한 기술로 틀린 설명을 고르면?

  1. 여러 컴포넌트가 공통으로 쓰는 서비스를 제공할 수 있다.
  2. 애플리케이션과 사용자 사이에서만 분산 서비스를 제공한다.
  3. 서로 다른 구성 요소의 통신과 데이터 교환을 중개한다.
  4. 위치 투명성을 제공할 수 있다.
정답과 해설 보기

정답: 2

정답은 ②이다. 미들웨어는 애플리케이션과 서비스 또는 여러 구성 요소 사이의 통신, 메시지 전달, 원격 호출 등을 지원하는 소프트웨어다. 서로 다른 환경을 연결하고 공통 서비스를 제공할 수 있으므로 애플리케이션과 사용자 사이에서만 동작한다고 제한하는 설명은 틀리다.

예를 들어 ORB는 분산 객체에 대한 요청을 중개하고 메시징 미들웨어는 송수신자 사이의 메시지를 전달한다. 위치 투명성은 사용 측이 상대의 구체적인 위치를 직접 다루는 부담을 줄이는 성질이다. 모든 미들웨어가 모든 투명성을 같은 수준으로 제공하는 것은 아니다.

선지별 해설

  • ① 오답. 공통 통신과 서비스 기능을 제공할 수 있다는 설명은 맞다.
  • ② 정답. 사용자와 애플리케이션 사이로만 역할을 제한할 수 없다.
  • ③ 오답. 구성 요소 사이의 통신과 데이터 교환 중개는 대표 역할이다.
  • ④ 오답. 제품과 방식에 따라 위치 투명성을 지원할 수 있다.

편집 해설 근거: Oracle Tuxedo 22, ORB Software — ORB Software, Object Request Broker; Oracle Java EE 7 Tutorial, Overview of the JMS API — What Is Messaging?; What Is the JMS API?

19. 설계 검토 회의에서 다음 항목을 판단한다. 모듈 결합도에 관한 기술로 적절하지 않은 설명을 고르면?

[학습용 개정문항]

  1. 결합도는 모듈 사이의 상호작용과 의존 정도를 나타낸다.
  2. 일부 필드만 필요한데도 자료 구조 전체를 매개변수로 전달하면 데이터 결합도이다.
  3. 한 모듈이 다른 모듈의 내부 내용을 직접 참조하면 내용 결합도이다.
  4. 여러 모듈이 같은 전역 데이터를 사용하면 공통 결합도이다.
정답과 해설 보기

정답: 2

정답은 ②이다. 일부 필드만 필요한데 자료구조 전체를 넘기면 수신 모듈이 필요 이상의 구조에 의존하게 된다. 전통적인 결합도 분류에서는 이를 스탬프 결합으로 구별한다. 필요한 값만 매개변수로 주고받는 데이터 결합과 혼동하지 않는다.

내용 결합은 다른 모듈의 내부 데이터나 구현에 직접 의존하는 경우이며, 공통 결합은 여러 모듈이 공통된 전역 데이터를 사용하는 경우이다. 결합도는 모듈 사이의 관계를 설명한다. 현대 언어에서 객체를 전달했다는 이유만으로 설계가 항상 나쁘다고 단정하는 문제는 아니다.

선지별 해설

  • ① 오답. 결합도는 모듈 사이의 의존 관계를 나타낸다는 설명이 맞다.
  • ② 정답. 불필요한 필드까지 포함한 구조 전체의 전달은 여기서 스탬프 결합이다.
  • ③ 오답. 다른 모듈의 내부에 직접 의존하면 내용 결합으로 분류한다.
  • ④ 오답. 공유 전역 데이터를 통한 의존은 공통 결합으로 분류한다.

편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Content Coupling (p.26), Common Coupling (p.28), Stamp Coupling (pp.31–33), Data Coupling (p.34)

20. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 분석 활동과 관련성이 가장 낮은 방침을 고르면?

  1. 비용과 일정 제약 파악
  2. 타당성 조사
  3. 요구사항 정의와 문서화
  4. 상세 설계 명세서 작성
정답과 해설 보기

정답: 4

정답은 ④ 상세 설계 명세서 작성이다. 요구사항 분석은 사용자가 필요로 하는 기능, 품질과 제약을 이해하고 서로 충돌하거나 빠진 조건을 정리하는 활동이다. 비용과 일정의 제약 및 실현 가능성을 검토하고 합의한 요구를 문서화하는 일은 이러한 판단과 직접 연결된다.

상세 설계는 요구를 구현하기 위한 내부 구성, 자료구조, 알고리즘과 인터페이스 등을 구체화한다. 따라서 보기 중 요구사항 분석과 가장 거리가 있는 것은 상세 설계 명세서 작성이다. 실제 개발에서 분석과 설계가 반복되거나 영향을 주고받을 수 있다는 사실과 활동의 주된 목적은 구별한다.

선지별 해설

  • ① 오답. 비용·일정 제약은 요구의 실현 가능성과 우선순위 판단에 필요하다.
  • ② 오답. 요구를 실현할 수 있는지 확인하는 타당성 조사는 관련성이 있다.
  • ③ 오답. 요구를 정의하고 명시하는 일은 요구공학의 핵심 활동이다.
  • ④ 정답. 구현 방법의 세부를 정하는 설계 활동에 더 직접적으로 해당한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §3 Requirements Analysis; §4 Requirements Specification; Software Design §1.1 General Design Concepts

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

21. 개발·시험 담당자가 다음 사례를 검토한다. EAI(Enterprise Application Integration)의 대표 구축 유형이 해당하지 않는 것을 고르면?

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

정답: 3

정답은 ③ Tree이다. Point-to-Point는 연결이 필요한 시스템 사이에 직접 통합 경로를 만들고, Hub & Spoke는 중앙 허브를 통해 각 시스템을 연결한다. Message Bus는 공통 메시지 통신 기반과 인터페이스를 통해 시스템을 연계하는 방식이다. 세 명칭은 기업 애플리케이션 통합 구조를 설명할 때 쓰인다.

Tree는 부모와 자식 관계의 계층 구조를 뜻하는 일반적인 자료구조·위상 명칭이다. 이 문항의 대표 통합 방식과 같은 분류의 이름은 아니다. 실제 통합 시스템 내부에 트리 형태의 연결이나 자료구조가 사용될 수 없다는 뜻으로 확대해서는 안 된다.

선지별 해설

  • ① 오답. 중앙 허브와 주변 시스템을 연결하는 통합 방식이다.
  • ② 오답. 공통 메시지 통신 기반으로 애플리케이션을 연결하는 방식이다.
  • ③ 정답. 이 보기에서 대표 EAI 연계 방식과 같은 분류로 제시된 명칭이 아니다.
  • ④ 오답. 시스템 사이를 직접 연결하는 통합 방식이다.

편집 해설 근거: IBM, What Is Enterprise Application Integration? (2026-10-05 확인) — What are enterprise integration architectures or patterns?, Point-to-point integration; Hub and spoke integration; Hohpe·Woolf, Enterprise Integration Patterns, Message Bus — Message Bus, solution 및 common communication infrastructure

22. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 형상 관리의 의미로 가장 적절한 것은?

  1. 테스트 단계에서 모듈을 통합하는 활동
  2. 개발 인력을 배치하는 활동
  3. 개발 비용을 관리하는 활동
  4. 개발 과정의 변경 사항과 버전을 통제하는 활동
정답과 해설 보기

정답: 4

정답은 ④이다. 소프트웨어 형상 관리는 코드, 문서, 설정 등 관리 대상을 식별하고 변경과 버전의 상태를 통제하는 활동이다. 어떤 요구로 무엇이 바뀌었는지 추적하고, 승인된 구성으로 제품을 재현할 수 있게 하는 것이 중요하다. 단순히 파일을 복사해 두는 백업과도 범위가 다르다.

모듈 통합 시험, 인력 배치, 비용 관리는 각각 필요하지만 형상 관리 자체의 정의는 아니다. 버전 관리 도구는 형상 관리의 일부를 지원하며 변경 승인, 상태 기록, 감사 같은 절차와 함께 사용된다.

선지별 해설

  • ① 오답. 모듈을 결합해 상호작용을 확인하는 통합 활동이다.
  • ② 오답. 인적 자원 관리에 해당한다.
  • ③ 오답. 프로젝트 비용 관리에 해당한다.
  • ④ 정답. 변경·버전·구성 상태를 통제하고 추적하는 활동이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management §2 Software Configuration Identification; §3 Software Configuration Control; §4 Software Configuration Status Accounting

23. ISO/IEC 25010:2011의 제품 품질 모델에서 최상위 품질 특성의 명칭에 해당하지 않는 것은?

[학습용 개정문항]

  1. 간결성
  2. 기능 적합성
  3. 신뢰성
  4. 사용성
정답과 해설 보기

정답: 1

정답은 ① 간결성이다. 이 문제는 ISO/IEC 25010:2011의 제품 품질 모델에서 최상위 특성의 이름을 묻는다. 기능 적합성, 신뢰성, 사용성은 해당 판본의 최상위 특성이지만 간결성은 그 여덟 특성의 명칭이 아니다.

간결한 코드가 이해와 유지보수에 도움이 될 수 있다는 사실과 표준의 분류명인지는 다른 판단이다. 2011년 판본은 기능 적합성·성능 효율성·호환성·사용성·신뢰성·보안성·유지보수성·이식성을 구분한다. 후속 판본은 구성과 용어가 달라질 수 있으므로 이 문제에서는 명시한 2011년 모델을 기준으로 판정한다.

선지별 해설

  • ① 정답. 간결성은 2011년 제품 품질 모델의 최상위 여덟 특성명에 없다.
  • ② 오답. 기능 적합성은 최상위 품질 특성이다.
  • ③ 오답. 신뢰성은 최상위 품질 특성이다.
  • ④ 오답. 사용성은 2011년 판본의 최상위 품질 특성이다.

편집 해설 근거: ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2 Product quality model, §§4.2.1–4.2.8

24. 개발·시험 담당자가 다음 사례를 검토한다. 알파 테스트와 베타 테스트가 속하는 테스트 단계는?

  1. 단위 테스트
  2. 인수 테스트
  3. 통합 테스트
  4. 시스템 테스트
정답과 해설 보기

정답: 2

정답은 ② 인수 테스트이다. 알파·베타 테스트는 사용자나 고객이 실제로 제품을 받아 사용할 수 있을지 확인하는 인수 테스트의 형태다. 기능을 구현 단위로만 검사하는 것보다 사용 목적과 실제 운영 상황에서의 적합성에 관심을 둔다.

알파 테스트는 보통 개발 조직의 환경에서 개발팀 외 고객·사용자 또는 독립 시험 인력이 참여한다. 베타 테스트는 잠재적·기존 사용자가 자신의 환경에서 수행한다. 항상 알파 뒤에 베타를 해야 하거나 알파가 개발자만의 테스트라는 뜻은 아니다. 단위·통합·시스템 테스트와 목적과 수준을 구별한다.

선지별 해설

  • ① 오답. 개별 구성 요소를 시험하는 단계다.
  • ② 정답. 알파·베타 테스트는 제품의 수용 여부를 평가하는 인수 테스트에 포함된다.
  • ③ 오답. 구성 요소나 시스템 사이의 인터페이스를 시험하는 단계다.
  • ④ 오답. 전체 시스템 시험과 인수 테스트는 목적에 따라 구별된다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §2.2.4 Acceptance Testing, Alpha and beta testing, pp.37~38

25. 개발·시험 담당자가 다음 사례를 검토한다. 제품 소프트웨어 패키징 도구를 선택·활용할 때 고려할 사항이 해당하지 않는 것을 고르면?

  1. 여러 이기종 환경과의 연동
  2. 사용자 편의성과 불필요한 복잡성
  3. 내부 콘텐츠의 보안은 고려하지 않음
  4. 제품 특성에 맞는 암호화 알고리즘
정답과 해설 보기

정답: 3

정답은 ③이다. 패키징은 사용자에게 전달할 구성 요소와 설치·사용에 필요한 정보를 준비하는 과정이므로, 내부 콘텐츠의 보안을 무조건 제외해서는 안 된다. 배포 대상과 권한 정책에 따라 콘텐츠 보호, 변조 방지, 적절한 키 처리 등을 검토해야 한다.

도구가 지원하는 환경, 사용 편의성, 불필요한 복잡성, 보호가 필요한 제품에 적합한 암호 방식은 모두 고려 대상이 될 수 있다. 모든 패키지의 모든 파일을 반드시 암호화해야 한다는 뜻은 아니다. 제품의 요구사항에 따라 필요한 보호를 선택하는 것과 보안을 아예 고려하지 않는 것은 다르다.

선지별 해설

  • ① 오답. 배포·사용 환경과의 호환 여부는 고려할 항목이다.
  • ② 오답. 사용 편의성과 관리 복잡성은 도구 선택에 영향을 준다.
  • ③ 정답. 콘텐츠의 보호 요구를 검토 대상에서 일괄 제외하면 안 된다.
  • ④ 오답. 보호가 필요한 콘텐츠에는 적합한 암호 방식의 검토가 필요하다.

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

26. 이진 트리의 루트가 A일 때 전위 순회에서 가장 먼저 방문하는 노드는?

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

정답: 1

정답은 ① A이다. 전위 순회는 현재 노드를 먼저 방문하고 왼쪽 부분 트리, 오른쪽 부분 트리 순으로 방문하는 방식이다. 전체 순회를 루트에서 시작하므로 루트가 A라는 조건만으로 첫 방문 노드는 A로 확정된다. B·D·G의 위치를 알지 못해도 첫 노드 판단에는 영향이 없다.

중위 순회는 왼쪽 부분 트리 → 현재 노드 → 오른쪽 부분 트리이고, 후위 순회는 두 부분 트리 뒤에 현재 노드를 방문한다. 전위·중위·후위라는 이름은 현재 노드를 부분 트리들과 비교해 언제 방문하는지 나타낸다.

선지별 해설

  • ① 정답. 전위 순회는 루트 A를 가장 먼저 방문한다.
  • ② 오답. 루트로 주어진 노드는 B가 아니라 A이다.
  • ③ 오답. 하위 노드는 루트 방문 이후에 처리한다.
  • ④ 오답. G의 하위 위치와 무관하게 첫 방문은 루트 A이다.

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

27. 다음 중 본래 목적이 통신의 암호화·보호가 아니라 전자우편 메시지 전달인 프로토콜은? 구형 명칭도 역사적 분류를 위해 포함한다.

[학습용 개정문항]

  1. S-HTTP
  2. IPSec
  3. SSL/TLS
  4. SMTP
정답과 해설 보기

정답: 4

정답은 ④ SMTP이다. SMTP의 기본 목적은 전자우편 메시지를 전달하는 것이다. TLS와 함께 메일 전송을 보호할 수 있지만, SMTP 자체를 암호화된 통신을 제공하는 보안 프로토콜과 같은 역할로 분류하지는 않는다. IPsec은 IP 계층 통신 보호, TLS는 통신 채널 보호와 관련된다.

S-HTTP는 HTTP 메시지를 보호하기 위해 제안되었던 별도의 역사적 프로토콜이며 HTTPS와 같은 말이 아니다. SSL과 S-HTTP를 보기에서 언급하는 것은 과거 용어를 구분하기 위한 것이며 현재 시스템에 그 구형 방식을 적용하라는 권장은 아니다.

선지별 해설

  • ① 오답. 역사적으로 HTTP 메시지 보호를 위해 제안된 보안 프로토콜이다.
  • ② 오답. IP 계층에서 보안 서비스를 제공하는 구조다.
  • ③ 오답. 통신 보호와 관련된 프로토콜 계열이며 현재는 적절한 TLS 판본을 사용한다.
  • ④ 정답. 본래 전자우편 전달을 위한 프로토콜이다.

편집 해설 근거: IETF RFC 5321, Simple Mail Transfer Protocol (2008) — §1.2 History and Context; §2.1 Basic Structure; IETF RFC 2660, Secure HTTP (1999), 현재 Historic 분류 — Abstract; §1.1 Summary of Features 및 Historic 표시; IETF RFC 4301 — IPsec architecture — §2.1 Goals/Objectives/Requirements/Problem Description; IETF RFC 8446, TLS 1.3 (2018) — §1 Introduction

28. 콘텐츠 제공·패키징·배포·라이선스 발급·클라이언트 권리 집행을 별도 논리 역할로 나눈 DRM 모델에서 역할 설명이 잘못된 것은?

[학습용 개정문항]

  1. 콘텐츠 제공자: 권한을 가진 원천 콘텐츠를 제공한다.
  2. 콘텐츠 분배자: 콘텐츠를 암호화하고 보호 메타데이터를 넣어 배포 단위를 만드는 패키저 역할을 뜻한다.
  3. 라이선스 발급 기능: 키와 콘텐츠 이용 권한 정보를 관리한다.
  4. 클라이언트 권리 집행 기능: 배포된 콘텐츠의 허용된 이용을 통제한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 콘텐츠 포장과 배포의 역할을 나누어 설명하는 DRM 구조에서, 암호화와 보호 정보를 포함하여 배포 단위를 만드는 것은 패키저의 역할이다. 배포 서버는 그렇게 준비된 콘텐츠를 저장하고 사용자에게 전달한다. 따라서 배포 역할에 패키징의 주된 책임을 대응시킨 보기가 틀리다.

콘텐츠 제공자는 원천 콘텐츠를 공급하고, 라이선스 발급 기능은 이용 권한과 복호화에 필요한 정보를 관리한다. 클라이언트의 권리 집행 기능은 허용된 이용 규칙을 적용한다. 실제 사업자나 프로그램 하나가 여러 역할을 겸할 수 있으므로 여기서는 논리적 역할을 구별한다.

선지별 해설

  • ① 오답. 제공자는 콘텐츠를 공급하는 역할이므로 적절하다.
  • ② 정답. 배포 단위의 보호·포장은 구별된 패키저의 역할이다.
  • ③ 오답. 이 모델의 라이선스 발급 기능은 키와 이용 권한 정보를 관리한다.
  • ④ 오답. 클라이언트의 권리 집행 기능은 콘텐츠의 허용된 이용을 통제한다.

편집 해설 근거: Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — How does Microsoft PlayReady work?, Content Packaging Server·License Server·Distribution servers·Clients; Microsoft PlayReady, Content Packaging and Delivery — Content Packaging and Delivery

29. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 설치 매뉴얼 작성 원칙으로 부적절한 것은?

  1. 설치 시작부터 완료까지 절차를 순서대로 제시한다.
  2. 개발자의 내부 구현 관점을 기준으로 작성한다.
  3. 목차·개요·기본 사항 등 필요한 항목을 포함한다.
  4. 설치 중 발생할 수 있는 예외 상황을 별도로 설명한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 설치 매뉴얼의 독자는 제품을 설치하는 사람이다. 따라서 내부 구현을 이미 알고 있다는 전제로 설명하기보다, 필요한 환경과 준비 사항부터 실행 순서, 성공 확인, 오류 시 대응까지 독자의 작업을 따라 안내해야 한다.

목차나 개요는 필요한 내용을 찾도록 돕고, 순서가 있는 절차는 작업의 누락을 줄인다. 예외 상황을 따로 설명하면 설치 중 막혔을 때 대응할 수 있다. 개발자의 지식이 문서 작성에 필요하더라도 문서의 관점과 표현 수준은 실제 설치 담당자의 필요에 맞추어야 한다.

선지별 해설

  • ① 오답. 실행 순서에 맞춘 절차는 설치 작업을 돕는다.
  • ② 정답. 독자가 아닌 개발자의 내부 구현 관점을 기준으로 삼는 것은 부적절하다.
  • ③ 오답. 필요한 정보를 찾을 수 있도록 문서 구조를 갖추는 것은 적절하다.
  • ④ 오답. 예상 가능한 실패와 복구 방법을 안내하는 것은 적절하다.

편집 해설 근거: Google Developer Documentation Style Guide, Procedures (2026-10-05 확인) — Introductory sentences; Order of multiple components in a step; Multi-action procedures

30. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 블랙박스 테스트 기법은?

  1. 기초 경로 검사
  2. 루프 검사
  3. 경계값 분석
  4. 조건 검사
정답과 해설 보기

정답: 3

정답은 ③ 경계값 분석이다. 입력 범위의 경계 부근에서는 비교 연산의 등호 누락이나 한 칸 차이 같은 결함이 자주 드러난다. 예를 들어 허용 나이가 18~65세이면 18·65와 그 주변 값을 검사하는 식이다. 명세에 나타난 입력 조건을 바탕으로 시험을 설계하므로 블랙박스 기법이다.

기초 경로, 루프, 조건 검사는 프로그램의 내부 제어 구조를 바탕으로 시험 대상을 정한다. 경계값 분석을 하려면 모든 내부 코드를 알아야 하는 것은 아니지만, 명세의 경계와 기대 결과는 정확히 이해해야 한다.

선지별 해설

  • ① 오답. 제어 흐름의 독립 경로를 바탕으로 하는 구조 기반 기법이다.
  • ② 오답. 반복문의 내부 구조와 실행을 살피는 구조 기반 기법이다.
  • ③ 정답. 명세의 입력 경계를 바탕으로 하는 블랙박스 기법이다.
  • ④ 오답. 내부 조건식의 평가를 살피는 구조 기반 기법이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.2.2 Boundary Value Analysis; §4.3 White-box Test Techniques

31. 스택의 추상적 동작과 통상적인 top 기반 구현에 관한 설명으로 부적절한 것은?

[학습용 개정문항]

  1. 빈 스택에서 삭제하면 언더플로가 발생한다.
  2. 삽입과 삭제가 한쪽 끝에서 이루어진다.
  3. Head(front)와 Tail(rear)의 두 포인터를 사용한다.
  4. LIFO 구조이다.
정답과 해설 보기

정답: 3

정답은 ③이다. 스택은 같은 끝에서 삽입과 삭제를 수행하는 LIFO 자료구조다. 마지막에 넣은 항목이 먼저 나오므로 보통 그 끝을 top으로 관리한다. front와 rear를 구별하여 입력과 출력을 관리하는 설명은 일반적인 큐 구현과 연결된다.

빈 스택에서 꺼낼 항목이 없는 상태를 언더플로라고 한다. 언더플로를 어떤 예외나 반환값으로 알리는지는 구현마다 다를 수 있다. 스택 내부를 연결 리스트 등으로 구현할 때 여러 포인터를 사용할 수는 있지만, 두 끝에서 FIFO로 처리하는 것이 스택의 추상적 동작이라는 뜻은 아니다.

선지별 해설

  • ① 오답. 비어 있는 스택의 삭제 요청은 언더플로 상황이다.
  • ② 오답. 삽입과 삭제가 동일한 끝에서 이루어지는 것이 스택의 특징이다.
  • ③ 정답. front·rear를 중심으로 두 끝을 관리하는 설명은 통상적인 큐 구현에 해당한다.
  • ④ 오답. 마지막에 넣은 값을 먼저 꺼내는 LIFO가 맞다.

편집 해설 근거: NIST DADS, stack — Definition; NIST DADS — queue — Definition; Python 공식 자습서: Data Structures — §5.1.1 Using Lists as Stacks

32. 암호화된 콘텐츠의 이용 권한을 직접 집행하는 DRM 기능과 구별되는 일반적인 네트워크 접근 통제 수단은?

[학습용 개정문항]

  1. 키 관리
  2. 방화벽
  3. 암호화
  4. 크랙 방지
정답과 해설 보기

정답: 2

정답은 ② 방화벽이다. DRM의 직접적인 콘텐츠 보호 기능에는 암호화된 콘텐츠, 그 콘텐츠를 사용할 수 있게 하는 키와 권한의 관리, 권한 집행 기능의 변조나 우회를 어렵게 하는 보호가 포함된다. 이들은 파일을 전달한 뒤에도 허용된 이용을 통제하려는 목적과 연결된다.

방화벽은 네트워크 통신을 허용하거나 차단하는 경계 보호 기능이다. DRM 서비스를 운영하는 서버를 보호하는 데 도움을 줄 수 있지만 콘텐츠의 복호화 키나 재생 권한을 직접 집행하는 기능 자체는 아니다. 보조 보안 수단과 콘텐츠 권리 관리 기능을 구별한다.

선지별 해설

  • ① 오답. 키의 발급·보관·전달 관리는 콘텐츠 보호에 직접 연결된다.
  • ② 정답. 네트워크 접근 통제이며 콘텐츠의 이용 권한 집행 기능 자체가 아니다.
  • ③ 오답. 권한 없는 콘텐츠 이용을 막는 직접적인 보호 수단이다.
  • ④ 오답. 권리 집행 기능의 변조·우회를 어렵게 하는 보호다.

편집 해설 근거: Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Content Encryption; Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — How does Microsoft PlayReady work?; What is individualization?; Does Microsoft PlayReady support renewability?

33. 개발·시험 담당자가 다음 사례를 검토한다. 버전 관리에서 작업한 파일을 저장소의 새 버전으로 반영하는 행위는?

  1. 롤백
  2. 단위 테스트
  3. 체크인
  4. 형상 감사
정답과 해설 보기

정답: 3

정답은 ③ 체크인이다. 체크인은 작업한 변경을 버전 관리 저장소에 새 이력으로 반영하는 동작을 가리킨다. 예를 들어 Subversion의 commit은 작업 사본의 변경을 저장소에 전송하고 새 리비전을 만든다. 변경 설명과 버전 이력을 남겨 이후에 무엇이 바뀌었는지 확인할 수 있다.

롤백은 이전 상태로 되돌리는 작업이고, 단위 테스트는 개별 구성 요소의 동작을 검증하는 활동이다. 형상 감사는 정해진 구성과 기록이 일치하는지 등을 확인한다. 분산 버전 관리에서는 로컬 커밋과 원격 전송이 별도일 수 있으므로 모든 도구의 명령을 동일시하지 않는다.

선지별 해설

  • ① 오답. 변경을 새 버전으로 등록하는 것이 아니라 이전 상태로 되돌리는 작업이다.
  • ② 오답. 개별 구성 요소의 동작을 시험하는 활동이다.
  • ③ 정답. 변경을 저장소의 버전 이력에 반영하는 동작이다.
  • ④ 오답. 형상과 기록의 적합성을 검토하는 활동이다.

편집 해설 근거: Collins-Sussman·Fitzpatrick·Pilato, Version Control with Subversion 1.7, svn commit — Name; Description; Examples; IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management §5 Software Configuration Auditing

34. 서로 다른 N개 값의 입력 순서가 임의일 때, 기본 구현의 평균 시간 복잡도가 Θ(N log N)인 정렬 알고리즘은?

[학습용 개정문항]

  1. 선택 정렬
  2. 삽입 정렬
  3. 합병 정렬
  4. 버블 정렬
정답과 해설 보기

정답: 3

정답은 ③ 합병 정렬이다. 일반적인 합병 정렬은 자료를 반씩 나누고 정렬된 두 부분을 다시 합친다. 분할 단계가 대략 log₂N개이고 각 단계에서 전체 N개 자료를 합치는 일을 하므로 평균 시간은 Θ(N log N)이다.

이 문제에서 비교하는 기본 선택·삽입·버블 정렬은 임의 순서 입력의 평균 시간이 Θ(N²)이다. 이미 정렬된 입력에서 삽입 정렬이나 조기 종료를 둔 버블 정렬이 빨라지는 최선 경우와 평균 경우를 혼동하면 안 된다. 단순한 O 표기는 넓은 상한이므로 여기서는 평균 증가율을 명확히 묻는다.

선지별 해설

  • ① 오답. 기본 선택 정렬의 평균 비교 횟수는 이차적으로 증가한다.
  • ② 오답. 기본 삽입 정렬의 평균 시간은 Θ(N²)이다.
  • ③ 정답. 분할과 합병으로 평균 Θ(N log N) 시간이 걸린다.
  • ④ 오답. 기본 버블 정렬의 평균 시간은 Θ(N²)이다.

편집 해설 근거: NIST DADS, merge sort — Definition; NIST DADS — selection sort — Definition; NIST DADS — bubble sort — Definition

35. 개발·시험 담당자가 다음 사례를 검토한다. 클린 코드 작성 원칙에 어긋나는 것은?

  1. 가능한 한 단순하게 표현한다.
  2. 중복을 줄인다.
  3. 다른 모듈에 미치는 영향을 최대화한다.
  4. 누구나 쉽게 읽을 수 있도록 작성한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 이해하기 쉬운 코드는 필요한 책임을 분명히 하고, 같은 지식을 여러 곳에서 반복 관리하는 부담을 줄인다. 한 모듈을 고칠 때 무관한 모듈까지 크게 바뀌도록 만드는 것은 변경 비용과 결함 가능성을 늘리므로 바람직하지 않다.

단순함은 필요한 기능이나 검증을 생략한다는 뜻이 아니며, 중복 제거도 의미가 다른 코드를 무조건 하나로 합치라는 뜻은 아니다. 실제로 같은 책임과 지식을 적절히 묶고 불필요한 의존을 줄여 다른 개발자가 읽고 수정하기 쉽게 만드는 것이 목적이다.

선지별 해설

  • ① 오답. 불필요한 복잡성을 줄이는 것은 바람직하다.
  • ② 오답. 같은 지식의 불필요한 중복을 줄이는 것은 바람직하다.
  • ③ 정답. 다른 모듈로의 변경 파급을 최대화하면 이해와 유지보수가 어려워진다.
  • ④ 오답. 독자가 목적과 동작을 이해할 수 있게 작성하는 것은 바람직하다.

편집 해설 근거: Google Engineering Practices, What to look for in a code review — Complexity; Design; Naming; Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Design Principle 3: Reduce coupling where possible (p.25)

36. 시험에서 입력값을 선정하는 기준과 달리, 주된 역할이 호출 환경이나 의존 구성 요소를 대신하는 것인 항목은?

[학습용 개정문항]

  1. 스텁과 드라이버 사용
  2. 입력 도메인 분석
  3. 무작위 테스트
  4. 자료 흐름 분석
정답과 해설 보기

정답: 1

정답은 ①이다. 스텁과 드라이버는 시험 대상이 호출하는 구성 요소나 시험 대상을 호출하는 환경을 대신하여 실행을 가능하게 하는 시험 대역이다. 그 자체가 입력 공간에서 어떤 값을 고를지 결정하는 시험 데이터 선정 기준은 아니다.

입력 도메인 분석은 유효·무효 범위와 경계를 보고 값을 고르고, 무작위 시험은 정해진 공간에서 값을 추출한다. 자료 흐름 분석은 변수의 정의와 사용 관계를 시험하도록 입력을 찾는 데 활용한다. 자동화 도구가 대역과 생성 기능을 함께 제공할 수 있다는 점과 각 기능의 역할은 구별한다.

선지별 해설

  • ① 정답. 호출 환경이나 의존 구성 요소를 대신하는 대역의 역할이다.
  • ② 오답. 입력 범위와 경계를 분석해 시험 값을 선정할 수 있다.
  • ③ 오답. 입력 공간에서 무작위로 값을 선택하는 방법이다.
  • ④ 오답. 변수의 정의·사용 관계를 실행하는 시험 입력 선정에 활용한다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing, stubs and drivers; IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §3.1.1 Equivalence Partitioning; §3.1.9 Random Testing; §3.2.2 Data Flow Testing

37. 개발·시험 담당자가 다음 사례를 검토한다. 입력 순서가 A, B, C, D인 자료를 하나의 스택에 push하고 임의 시점에 pop할 때 만들 수 없는 출력 순서는?

  1. B, C, D, A
  2. C, B, A, D
  3. D, B, C, A
  4. D, C, B, A
정답과 해설 보기

정답: 3

정답은 ③ D, B, C, A이다. D를 가장 먼저 출력하려면 A·B·C·D를 차례로 모두 push한 뒤 D를 pop해야 한다. 이때 스택의 꼭대기는 C이므로 C를 꺼내지 않고 그 아래의 B를 먼저 꺼낼 수 없다. 따라서 D 다음에 B가 오는 ③은 만들 수 없다.

①은 A·B를 넣고 B를 꺼낸 뒤 C와 D를 각각 넣었다 꺼내고 마지막에 A를 꺼내면 된다. ②는 A·B·C를 넣어 C·B·A를 꺼낸 뒤 D를 넣었다 꺼내면 된다. ④는 네 항목을 모두 넣은 뒤 연속으로 꺼내면 된다. pop은 언제나 현재 꼭대기에서만 수행된다.

선지별 해설

  • ① 오답. B·C·D를 차례로 꺼내는 동안 A를 스택 아래에 남겨 두면 가능하다.
  • ② 오답. A·B·C를 넣어 역순으로 꺼낸 다음 D를 처리하면 가능하다.
  • ③ 정답. D를 꺼낸 직후 C가 B 위에 있으므로 B를 먼저 꺼낼 수 없다.
  • ④ 오답. 모두 push한 뒤 연속 pop하면 D·C·B·A가 된다.

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

38. 개발·시험 담당자가 다음 사례를 검토한다. 프로젝트의 위험 요소를 식별하고 영향도를 분석해 사전에 대응하는 활동은?

  1. 작업 분할 구조
  2. 폭포수 모델
  3. 임계 경로 분석
  4. 위험 분석
정답과 해설 보기

정답: 4

정답은 ④ 위험 분석이다. 프로젝트에 영향을 줄 수 있는 불확실한 사건을 찾아 발생 가능성과 영향을 살피면 대응 우선순위를 정할 수 있다. 예를 들어 외부 연동 지연의 가능성과 일정 손실을 평가하고 대체 수단을 준비하는 식이다. 위험을 알아본 뒤 대응하고 계속 추적하는 활동은 더 넓은 위험 관리에 속한다.

WBS는 수행할 일을 계층적으로 나누고, 폭포수 모델은 개발 활동의 흐름을 설명한다. 임계 경로 분석은 작업 간 선후 관계와 기간으로 일정에 직접 영향을 주는 경로를 찾는다. 이들도 위험 파악에 도움을 줄 수 있지만 정의의 중심은 다르다.

선지별 해설

  • ① 오답. 작업을 계층적으로 분해하는 구조다.
  • ② 오답. 개발 생명주기의 단계 흐름을 설명하는 모델이다.
  • ③ 오답. 작업 의존 관계와 소요 시간에 따른 일정 경로를 분석한다.
  • ④ 정답. 불확실한 사건의 가능성과 영향을 평가하여 대응 판단을 돕는다.

편집 해설 근거: CMU Software Engineering Institute, Continuous Risk Management Guidebook (1996) — Continuous Risk Management의 Identify·Analyze·Plan·Track·Control·Communicate 설명

39. 개발·시험 담당자가 다음 사례를 검토한다. 시스템 인터페이스에서 데이터 교환 형식으로 쓰이지 않는 것은?

  1. YAML
  2. AJTML
  3. JSON
  4. XML
정답과 해설 보기

정답: 2

정답은 ② AJTML이다. JSON은 이름과 값, 배열 등의 구조로 데이터를 표현하고, XML은 요소와 속성에 기반한 표기법을 사용한다. YAML도 구조화된 데이터를 표현하기 위한 직렬화 언어다. 세 형식 모두 서로 다른 시스템이 데이터를 교환할 때 사용할 수 있다.

AJTML은 이 문항에서 비교하는 공개 표준 데이터 표현 형식의 명칭이 아니다. 특정 조직이 임의의 이름을 붙인 형식을 만들 가능성까지 부정하는 뜻은 아니다. 인터페이스를 설계할 때는 형식 이름뿐 아니라 인코딩, 스키마, 필수 필드와 오류 처리도 합의해야 한다.

선지별 해설

  • ① 오답. YAML은 구조화된 데이터를 표현하는 직렬화 언어다.
  • ② 정답. 나머지 보기와 같은 공개 데이터 표현 표준의 명칭이 아니다.
  • ③ 오답. JSON은 가벼운 데이터 교환 형식이다.
  • ④ 오답. XML은 요소와 속성으로 구조화된 데이터를 기술하는 표기법이다.

편집 해설 근거: YAML 1.2.2 specification — §1.1 Goals; §2 Language Overview; IETF RFC 8259 — JSON — §1 Introduction; W3C Recommendation — XML 1.0 — §1 Introduction

40. 개발·시험 담당자가 다음 사례를 검토한다. 정형 기술 검토(FTR)의 일반 지침으로 부적절한 것은?

  1. 검토 의제를 제한한다.
  2. 논쟁과 반박이 길어지지 않게 통제한다.
  3. 문제 영역을 명확하게 표현한다.
  4. 참가자 수에 제한을 두지 않는다.
정답과 해설 보기

정답: 4

정답은 ④이다. 기술 검토는 산출물의 결함과 불일치를 효과적으로 찾는 활동이다. 검토 범위와 목적을 정하고 필요한 역량을 가진 참여자를 선정해야 토론이 집중된다. 인원수를 무제한으로 늘리는 것이 검토 품질을 자동으로 높여 주지는 않는다.

오랜 논쟁으로 회의를 소모하기보다 문제를 명확히 기록하고 해결이 필요한 사항을 후속 작업으로 넘길 수 있다. 사람을 비난하거나 평가하는 자리가 아니라 산출물을 개선하는 과정이어야 한다. 모든 검토에 동일한 인원수를 강제한다는 뜻은 아니며 목적에 맞는 규모와 역할을 정하는 것이 핵심이다.

선지별 해설

  • ① 오답. 목적과 의제를 한정하면 검토를 집중할 수 있다.
  • ② 오답. 소모적인 논쟁을 통제하여 결함 파악에 집중하는 것은 적절하다.
  • ③ 오답. 문제를 명확히 표현하고 기록해야 후속 수정이 가능하다.
  • ④ 정답. 목적과 역할을 고려하지 않고 무제한으로 참여시키는 것은 부적절하다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.5 Success Factors for Reviews; IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Chapter 6 Structured Walk-Throughs, 인쇄 pp.18–19, Basic Characteristics 및 Procedure

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

41. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션의 연산이 모두 반영되거나 하나도 반영되지 않아야 한다는 특성은?

  1. 공유성
  2. 일관성
  3. 원자성
  4. 지속성
정답과 해설 보기

정답: 3

정답은 ③ 원자성이다. 하나의 트랜잭션에 묶인 연산은 전체가 성공한 것으로 확정되거나, 실패 시 그 트랜잭션의 효과가 남지 않도록 처리되어야 한다. 계좌 이체에서 출금만 반영되고 입금은 빠지는 상태를 피하려고 두 작업을 하나로 묶는 경우를 생각하면 된다.

일관성은 정해진 제약을 만족하는 상태 사이에서 처리되는 성질이고, 지속성은 커밋한 결과를 장애 후에도 보존하는 성질이다. 원자성은 이러한 성질과 함께 ACID를 이루지만, 여기서는 전부 아니면 전무라는 조건이 핵심이다.

선지별 해설

  • ① 오답. 공유성은 여러 사용자의 공동 이용과 관련되며 전부 아니면 전무의 특성이 아니다.
  • ② 오답. 일관성은 데이터의 규칙과 제약을 만족하는 상태에 관한 성질이다.
  • ③ 정답. 트랜잭션의 효과를 전체 성공 또는 전체 취소로 다루는 원자성이다.
  • ④ 오답. 지속성은 커밋된 결과의 보존에 관한 성질이다.

편집 해설 근거: PostgreSQL 18, 3.4 Transactions — §3.4 Transactions, all-or-nothing 및 COMMIT·ROLLBACK 예시

42. 데이터베이스 설계자가 다음 조건을 확인한다. 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합은?

  1. 엔티티
  2. 다형성
  3. 도메인
  4. 튜플
정답과 해설 보기

정답: 3

정답은 ③ 도메인이다. 관계 모델에서 속성의 도메인은 그 속성에 허용되는 값들의 집합이다. 예를 들어 성적 속성의 도메인을 0~100의 정수로 정했다면 101이나 문자열은 그 도메인에 맞지 않는 값이다. 단순히 현재 테이블에 들어 있는 서로 다른 값들만을 뜻하는 것은 아니다.

튜플은 여러 속성값으로 이루어진 하나의 행이고, 엔티티는 모델링하려는 대상이다. 다형성은 같은 인터페이스 등에 서로 다른 구현의 동작을 대응시키는 객체지향 개념이다. 허용값의 범위와 실제 한 행을 구분하면 도메인과 튜플을 혼동하지 않는다.

선지별 해설

  • ① 오답. 데이터로 표현하려는 대상이며 속성의 허용값 집합은 아니다.
  • ② 오답. 객체지향에서 서로 다른 동작을 같은 인터페이스로 다루는 개념이다.
  • ③ 정답. 해당 속성에 허용되는 원자값의 집합이다.
  • ④ 오답. 릴레이션의 한 행이며 여러 속성값으로 이루어진다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Database: Definitions; SQL의 domain constraints 설명; PostgreSQL 18, 8.18 Domain Types — §8.18 Domain Types

43. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터 삽입·수정·삭제 같은 이벤트가 발생할 때 관련 작업을 자동 실행하는 절차형 SQL 객체는?

  1. 롤백
  2. 트리거
  3. 무결성
  4. 잠금
정답과 해설 보기

정답: 2

정답은 ② 트리거이다. 트리거는 지정한 테이블 등에 특정 이벤트가 일어나면 연결된 동작을 수행하도록 정의한 데이터베이스 객체다. 예를 들어 행을 수정한 후 변경 이력을 남기는 동작을 UPDATE 이벤트에 연결할 수 있다. 실행 시점과 행별·문장별 실행 여부는 정의한 조건에 따라 달라진다.

롤백은 트랜잭션의 변경을 취소하는 작업이고, 무결성은 데이터가 지켜야 할 규칙과 그 정확성에 관련된 개념이다. 잠금은 동시에 접근하는 작업을 조정하는 수단이다. 이벤트에 반응하는 저장된 실행 규칙이라는 특징은 트리거에 해당한다.

선지별 해설

  • ① 오답. 이미 수행한 트랜잭션 변경을 취소하는 작업이다.
  • ② 정답. 지정한 이벤트가 발생하면 연결된 동작을 실행한다.
  • ③ 오답. 데이터가 지켜야 할 제약과 올바른 상태에 관한 개념이다.
  • ④ 오답. 동시 접근의 충돌을 조정하는 수단이다.

편집 해설 근거: PostgreSQL 18, CREATE TRIGGER — Description; Synopsis, INSERT·UPDATE·DELETE와 BEFORE·AFTER·FOR EACH

44. STUDENT의 학과 값이 독일어과 50행, 중국어과 30행, 영어영문학과 50행이다. (a) SELECT 학과 FROM STUDENT와 (b) SELECT DISTINCT 학과 FROM STUDENT의 행 수는?

  1. (a) 3, (b) 3
  2. (a) 50, (b) 3
  3. (a) 130, (b) 3
  4. (a) 130, (b) 130
정답과 해설 보기

정답: 3

정답은 ③ (a) 130, (b) 3이다. 첫 질의는 DISTINCT가 없으므로 학생 행마다 학과 값을 하나씩 반환한다. 전체 행 수는 50+30+50=130이므로 같은 학과 이름이 반복되어도 130행이다. 두 번째 질의는 선택한 학과 값의 중복을 제거하므로 서로 다른 세 학과만 남는다.

DISTINCT는 원본 테이블을 삭제하거나 바꾸는 명령이 아니라 질의 결과의 중복을 제거하는 지정이다. 여러 열을 SELECT했다면 그 열들의 조합 전체를 기준으로 중복 여부를 판단하지만 이 문제에서는 학과 한 열만 선택했다.

선지별 해설

  • ① 오답. DISTINCT가 없는 첫 질의는 중복 학과도 학생 행마다 반환한다.
  • ② 오답. 첫 질의는 특정 학과의 50행이 아니라 전체 130행을 반환한다.
  • ③ 정답. 일반 SELECT는 130행, DISTINCT 학과는 세 종류인 3행이다.
  • ④ 오답. 두 번째 질의는 중복 학과 값을 제거하므로 130행이 아니다.

편집 해설 근거: PostgreSQL 18 — SELECT — Description의 DISTINCT 및 DISTINCT Clause

45. 관계대수에서 두 릴레이션의 모든 튜플 쌍을 조합하는 연산은?

[학습용 개정문항]

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

정답: 1

정답은 ① Cartesian Product이다. 카티션 곱은 왼쪽 릴레이션의 각 튜플과 오른쪽 릴레이션의 모든 튜플을 조합한다. 예를 들어 각각 2행과 3행이라면 조건 없는 조합은 2×3=6행이다. 두 릴레이션 사이의 대응 조건으로 행을 걸러 내는 연산과 구별한다.

Select는 조건을 만족하는 행을 고르고, Project는 필요한 속성을 선택한다. Division은 다른 릴레이션의 모든 관련 값과 대응하는 항목을 찾는 데 사용하는 연산이다. 연산의 분류명을 막연히 외우기보다 실제로 어떤 결과를 만드는지 확인한다.

선지별 해설

  • ① 정답. 두 릴레이션의 모든 튜플 쌍을 조합한다.
  • ② 오답. 다른 릴레이션의 모든 요구 값에 대응하는 항목을 찾는 나눗셈 연산이다.
  • ③ 오답. 릴레이션에서 필요한 속성을 선택하는 투영 연산이다.
  • ④ 오답. 조건을 만족하는 튜플을 선택하는 연산이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Cross-product; Selection; Projection; Division

46. 데이터베이스 설계자가 다음 조건을 확인한다. 함수 종속 X → Y와 Y → Z가 성립할 때 X → Z를 도출하는 규칙은?

  1. 반사 규칙
  2. 결합 규칙
  3. 분해 규칙
  4. 이행 규칙
정답과 해설 보기

정답: 4

정답은 ④ 이행 규칙이다. X→Y는 X가 같으면 Y도 같아야 한다는 함수 종속을 뜻한다. Y→Z도 성립하면 X가 같은 두 튜플은 Y가 같고, 그 결과 Z도 같으므로 X→Z를 도출할 수 있다. 두 종속을 연쇄적으로 연결한 것이 이행 규칙이다.

반사 규칙은 Y가 X의 부분집합이면 X→Y가 성립한다는 규칙이다. 결합 규칙은 같은 결정자로부터 도출되는 속성을 합치고, 분해 규칙은 오른쪽 속성 집합을 나누어 도출한다. 화살표가 이어지는 방향을 확인하여 이들과 구별한다.

선지별 해설

  • ① 오답. 부분집합 관계를 이용하는 반사 규칙과 다르다.
  • ② 오답. X→Y와 X→Z에서 X→YZ를 도출하는 결합 규칙과 다르다.
  • ③ 오답. X→YZ에서 X→Y 등을 얻는 분해 규칙과 다르다.
  • ④ 정답. X→Y와 Y→Z를 연결해 X→Z를 얻는 이행 규칙이다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — 슬라이드 7.39 Closure of a Set of Functional Dependencies; 7.41 Additional rules

47. 질의 결과를 별도로 저장하지 않는 일반적인 비물리화 뷰(View)의 장점으로 볼 수 없는 것은?

[학습용 개정문항]

  1. 사용자별 데이터 표현을 단순화한다.
  2. 뷰 자체가 독립적인 인덱스를 가진다.
  3. 데이터 보안을 강화할 수 있다.
  4. 논리적 데이터 독립성을 제공한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 결과를 별도로 저장하지 않는 일반 뷰는 질의로 정의한 가상 테이블이다. 필요한 열과 행을 보여 주어 사용자의 질의를 단순하게 만들고, 적절한 권한 설정과 함께 노출 범위를 제한하는 데 사용할 수 있다. 기본 테이블의 변경을 뷰 정의에서 흡수하면 외부 인터페이스를 유지하는 데도 도움이 된다.

이러한 일반 뷰 자체에 독립적인 저장 구조와 인덱스가 생기는 것은 아니다. 질의 처리에서 기본 테이블의 인덱스가 사용될 수는 있다. 결과를 저장하는 물리화 뷰나 특정 DBMS의 인덱스 뷰는 이 문제에서 구별한 별도 기능이다.

선지별 해설

  • ① 오답. 복잡한 질의를 뷰 이름으로 감추어 사용자 표현을 단순하게 할 수 있다.
  • ② 정답. 일반적인 비물리화 뷰 자체가 독립 인덱스를 갖는다는 설명은 틀리다.
  • ③ 오답. 필요한 데이터만 노출하고 권한을 적절히 구성하면 보안에 도움이 된다.
  • ④ 오답. 기본 구조와 사용자에게 보이는 표현을 분리하는 데 도움이 된다.

편집 해설 근거: PostgreSQL 18 — CREATE VIEW — Description, view is not physically materialized; Notes, access to underlying tables

48. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터베이스 물리적 설계 단계에서 수행하는 작업이 해당하지 않는 것을 고르면?

  1. 저장 레코드 형식 설계
  2. 레코드 집중화 분석과 설계
  3. 접근 경로와 인덱스 설계
  4. 목표 DBMS에 맞춘 논리 스키마 설계
정답과 해설 보기

정답: 4

정답은 ④이다. 논리적 설계는 목표 데이터 모델과 DBMS에 맞게 테이블, 속성, 키와 관계 등의 논리 스키마를 정한다. 물리적 설계는 그렇게 정한 데이터를 어떤 저장 구조와 접근 경로로 효율적으로 읽고 쓸지 결정한다. 따라서 논리 스키마 설계는 물리적 설계의 대표 작업과 구별된다.

레코드 형식, 관련 레코드를 가까이 두는 배치, 인덱스와 접근 경로는 저장 공간과 실제 접근 비용에 영향을 준다. 실무에서는 성능 평가 결과에 따라 논리 설계를 다시 조정할 수 있지만, 활동을 구별하는 기준은 데이터의 논리 구조인지 저장·접근 방식인지이다.

선지별 해설

  • ① 오답. 실제 저장 형식은 물리적 설계의 고려 사항이다.
  • ② 오답. 관련 레코드의 저장 배치와 집중화는 물리적 접근 비용에 관계된다.
  • ③ 오답. 접근 경로와 인덱스 선택은 물리적 설계의 주요 작업이다.
  • ④ 정답. 테이블과 키 등 논리 스키마의 정의는 논리적 설계에 해당한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Chapter 20, Overview 및 Decisions to Make 슬라이드; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Creating Relations in SQL; Integrity Constraints

49. 릴레이션의 튜플을 유일하게 식별하는 속성 집합으로, 최소성은 정의의 필수 조건이 아닌 것은?

[학습용 개정문항]

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

정답: 2

정답은 ② 슈퍼키이다. 슈퍼키는 릴레이션의 튜플을 유일하게 식별하는 속성 집합이다. 최소성이 정의의 필수 조건은 아니므로, 유일한 학번에 이름을 추가한 {학번, 이름}도 슈퍼키가 될 수 있다. 학번만으로 식별된다면 이름은 식별에 불필요한 속성이다.

후보키는 슈퍼키 중에서 어떤 속성도 더 뺄 수 없는 최소한의 집합이고, 기본키는 후보키 중 선택한 하나이다. 따라서 모든 후보키는 슈퍼키이지만 모든 슈퍼키가 후보키는 아니다. 슈퍼키가 반드시 최소성을 위반해야 한다는 뜻으로 외우지 않는다.

선지별 해설

  • ① 오답. 기본키는 선택된 후보키이므로 최소성도 만족한다.
  • ② 정답. 유일성을 만족하며 최소성은 필수 조건이 아닌 속성 집합이다.
  • ③ 오답. 다른 릴레이션의 키 등을 참조하는 역할이며 자기 행의 유일성을 뜻하지 않는다.
  • ④ 오답. 유일성과 최소성을 모두 만족하는 키이다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — 슬라이드 7.15 Keys and Functional Dependencies

50. 데이터베이스 설계자가 다음 조건을 확인한다. 정규화의 필요성과 관련성이 가장 낮은 방침을 고르면?

  1. 삽입·삭제·갱신 이상 최소화
  2. 테이블 간 불일치 위험 감소
  3. 데이터 구조의 안정성 향상
  4. 중복 데이터의 적극적 확대
정답과 해설 보기

정답: 4

정답은 ④이다. 정규화는 함수 종속 등의 제약을 분석하여 불필요하게 반복 저장되는 사실을 분리하고 삽입·삭제·갱신 이상을 줄이는 설계 과정이다. 예를 들어 부서 정보가 직원마다 반복되면 부서명 변경 때 일부 행만 수정되어 불일치가 생길 수 있다.

관련 사실을 적절한 릴레이션으로 나누면 같은 정보를 여러 곳에서 따로 관리하는 부담을 줄일 수 있다. 중복을 적극적으로 늘리는 것은 이러한 목적과 반대다. 성능 때문에 중복을 도입하는 비정규화는 별도의 판단이며, 정규화의 목표 자체를 중복 확대라고 설명하지는 않는다.

선지별 해설

  • ① 오답. 삽입·삭제·갱신 이상을 줄이는 것은 정규화의 주요 목적이다.
  • ② 오답. 같은 사실의 반복 관리에서 생기는 불일치 위험을 줄일 수 있다.
  • ③ 오답. 종속 관계에 맞게 구조를 정리하면 변경에 따른 이상을 줄일 수 있다.
  • ④ 정답. 불필요한 중복의 확대는 정규화의 목적과 반대다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Chapter 19, The Evils of Redundancy 및 Functional Dependencies

51. R1의 NULL이 아닌 외래키 값을 변경할 때 그 값이 참조 대상인 R2의 기본키에 존재하도록 유지하는 제약은?

[학습용 개정문항]

  1. 참조 무결성
  2. 정보 무결성
  3. 고유 무결성
  4. NULL 제약
정답과 해설 보기

정답: 1

정답은 ① 참조 무결성이다. 외래키는 한 릴레이션의 값이 다른 릴레이션의 키와 연결되도록 하는 제약이다. NULL이 아닌 외래키 값은 참조 대상에 실제로 존재해야 하므로, 없는 부서 번호를 직원 행에 넣는 것과 같은 잘못된 연결을 막을 수 있다.

외래키가 NULL을 허용하는지는 별도의 NULL 허용 조건에 영향을 받는다. 또한 구현에서는 참조 대상이 기본키뿐 아니라 적절한 유일 키일 수도 있다. 이 문제는 R2의 기본키를 참조한다고 지정했으므로 그 대상 값의 존재 여부를 유지하는 참조 무결성을 묻는다.

선지별 해설

  • ① 정답. 외래키와 참조 대상 키 사이의 유효한 연결을 유지하는 제약이다.
  • ② 오답. 이 관계를 지칭하는 정확한 제약명은 참조 무결성이다.
  • ③ 오답. 유일성은 같은 값의 중복을 제한하는 조건이다.
  • ④ 오답. NULL 허용 여부만으로 참조 대상 값의 존재를 보장하지는 않는다.

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

52. 데이터베이스 설계자가 다음 조건을 확인한다. 정규화되지 않은 릴레이션에서 발생하는 이상 현상에 관한 기술로 틀린 설명을 고르면?

  1. 삭제 이상은 한 사실을 지우다 필요한 다른 사실까지 함께 사라지는 현상이다.
  2. 삽입 이상은 불필요한 값을 함께 넣지 않으면 원하는 사실을 저장할 수 없는 현상이다.
  3. 갱신 이상은 중복된 일부 행만 수정되어 값이 서로 모순되는 현상이다.
  4. 종속 이상은 하나의 릴레이션에 함수 종속이 하나 이상 존재하는 현상이다.
정답과 해설 보기

정답: 4

정답은 ④이다. 함수 종속은 어떤 속성값이 다른 속성값을 결정하는 데이터의 규칙이다. 함수 종속이 존재한다는 사실 자체가 이상 현상은 아니다. 정규화에서도 이러한 규칙을 이용해 적절한 분해와 키를 판단한다.

삭제 이상은 함께 저장한 다른 사실이 원치 않게 사라지는 경우, 삽입 이상은 불필요한 다른 사실 없이는 원하는 정보를 넣을 수 없는 경우다. 갱신 이상은 같은 사실을 여러 행에 반복 저장해 일부만 수정했을 때 불일치가 생기는 경우이다. 이 세 현상과 종속 관계의 존재를 구별한다.

선지별 해설

  • ① 오답. 삭제 때문에 보존해야 할 별개 사실까지 사라지는 삭제 이상 설명이 맞다.
  • ② 오답. 원치 않는 다른 값과 함께 넣어야 하는 삽입 이상 설명이 맞다.
  • ③ 오답. 중복된 사실 일부만 바뀌어 불일치가 생기는 갱신 이상 설명이 맞다.
  • ④ 정답. 함수 종속이 존재하는 것은 이상 현상의 정의가 아니다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Chapter 19, The Evils of Redundancy; Functional Dependencies

53. Chen 방식의 기본 E-R 다이어그램에서 구성 요소와 그래픽 기호의 연결이 잘못된 것은?

[학습용 개정문항]

  1. 속성 – 타원
  2. 관계 타입 – 마름모
  3. 연결선 – 삼각형
  4. 개체 타입 – 사각형
정답과 해설 보기

정답: 3

정답은 ③이다. Chen 방식의 E-R 다이어그램에서는 개체 타입을 사각형, 관계 타입을 마름모, 속성을 타원으로 나타낸다. 이들 사이의 연결은 선으로 표현하므로 연결선의 기호가 삼각형이라는 대응은 틀리다. 학생과 수강 관계, 학생의 이름 속성을 각각 다른 기호로 구별하는 식이다.

E-R 모델에는 여러 표기법이 있으며, 확장 모델에서 삼각형 등 별도의 기호가 사용될 수도 있다. 따라서 모든 데이터 모델에서 삼각형이 없다고 말하는 것이 아니라, 이 문제에 지정한 기본 Chen 표기의 요소와 기호를 대응시키는 것이다.

선지별 해설

  • ① 오답. Chen 표기에서 속성은 타원으로 나타낸다.
  • ② 오답. 관계 타입은 마름모로 나타낸다.
  • ③ 정답. 요소 사이의 연결은 선이며 삼각형이 아니다.
  • ④ 오답. 개체 타입은 사각형으로 나타낸다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — Entity Sets; Relationship Sets, ER diagram 예시

54. 스키마·도메인·인덱스 같은 데이터베이스 객체를 새로 생성할 때 사용하는 DDL 명령 계열은?

[학습용 개정문항]

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

정답: 1

정답은 ① CREATE이다. CREATE는 새 데이터베이스 객체를 만드는 명령 계열이다. 예를 들어 CREATE SCHEMA는 스키마, CREATE DOMAIN은 도메인, CREATE INDEX는 인덱스를 정의한다. 어떤 객체를 생성하는지에 따라 뒤의 문법과 옵션이 달라진다.

ALTER도 DDL에 속하지만 기존 객체의 정의를 바꾸는 명령이다. INSERT는 테이블에 행을 넣고 SELECT는 데이터를 조회한다. 따라서 DDL인지 여부만 묻는다면 CREATE와 ALTER가 모두 포함되므로, 이 문제에서는 객체를 새로 생성한다는 조건을 기준으로 판단한다.

선지별 해설

  • ① 정답. 새 객체를 정의하고 생성하는 명령 계열이다.
  • ② 오답. 테이블에 새로운 데이터 행을 삽입한다.
  • ③ 오답. DDL이지만 기존 객체의 정의를 변경하는 명령이다.
  • ④ 오답. 데이터를 조회하는 명령이다.

편집 해설 근거: PostgreSQL 18, CREATE SCHEMA — Description; PostgreSQL 18, CREATE INDEX — Description; PostgreSQL 18, ALTER TABLE — Description

55. 데이터베이스 설계자가 다음 조건을 확인한다. 로킹 단위(Locking Granularity)에 관한 기술로 타당한 설명을 고르면?

  1. 파일만 잠글 수 있고 레코드나 필드는 잠금 단위가 될 수 없다.
  2. 로킹 단위가 커질수록 병행성은 낮아진다.
  3. 로킹 단위가 커질수록 병행 제어가 더 복잡해진다.
  4. 로킹 단위가 작아질수록 필요한 락 수가 줄어든다.
정답과 해설 보기

정답: 2

정답은 ②이다. 잠금 단위가 커지면 같은 잠금에 포함되는 데이터 범위가 넓어진다. 한 행만 수정하는 작업이 테이블 전체를 잠그면 다른 행을 처리하려는 작업도 기다릴 수 있으므로 일반적으로 동시 실행 가능성이 낮아진다.

반대로 작은 단위로 잠그면 서로 다른 데이터를 처리하는 작업을 함께 실행하기 쉬우나, 같은 양의 데이터를 다룰 때 더 많은 잠금을 관리할 수 있다. 잠금 단위는 DBMS가 지원하는 수준에 따라 달라진다. 큰 단위가 관리 부담을 항상 늘린다는 설명이나 작은 단위가 잠금 수를 줄인다는 설명은 이러한 교환 관계를 뒤집은 것이다.

선지별 해설

  • ① 오답. DBMS에 따라 테이블·페이지·행 등 다양한 단위를 지원할 수 있다.
  • ② 정답. 더 넓은 범위를 함께 잠그므로 일반적으로 병행성이 낮아진다.
  • ③ 오답. 같은 데이터 범위를 다룰 때 큰 단위는 필요한 잠금 수를 줄일 수 있다.
  • ④ 오답. 작은 단위로 같은 범위를 잠그면 보통 더 많은 잠금이 필요하다.

편집 해설 근거: IBM Db2 11.5, Lock granularity — Lock granularity, row-level concurrency and table-lock overhead paragraphs

56. R(A)의 행이 1,3이고 S(A)의 행이 1,2일 때 SELECT A FROM R UNION ALL SELECT A FROM S의 결과에 포함되는 값과 중복 횟수는? 보기의 나열 순서는 무시한다.

[학습용 개정문항]

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

정답: 4

정답은 ④이다. UNION ALL은 두 질의가 반환한 행들을 중복 제거 없이 합친다. R에서 1과 3, S에서 1과 2가 나오므로 결과에는 1이 두 번, 2와 3이 각각 한 번 나타나며 전체는 4행이다. UNION만 사용했다면 중복된 1을 제거하여 세 값이 남는다.

ORDER BY가 없는 SQL 결과의 출력 순서는 보장되지 않는다. 따라서 보기의 숫자 나열은 결과 행의 값과 중복 횟수를 나타내며 고정된 화면 순서를 뜻하지 않는다. 집합의 합집합과 SQL의 중복을 보존하는 다중집합 연산을 구별한다.

선지별 해설

  • ① 오답. 두 릴레이션에 공통인 값만 남기는 연산이 아니다.
  • ② 오답. 공통값 1을 제거하는 연산이 아니다.
  • ③ 오답. S의 행들도 합쳐야 한다.
  • ④ 정답. 1이 두 번, 3과 2가 한 번씩인 4행을 포함한다.

편집 해설 근거: PostgreSQL 18 — SELECT — UNION Clause; ORDER BY Clause

57. 데이터베이스 설계자가 다음 조건을 확인한다. 관계해석에서 '모든 값에 대하여'를 뜻하는 전칭 한정 기호는?

  1. ∈
  2. ∀
  3. ⊂
  4. ∃
정답과 해설 보기

정답: 2

정답은 ② ∀이다. 전칭 한정자는 지정된 범위의 모든 값에 대해 조건이 성립한다고 나타낸다. 예를 들어 모든 필수 과목을 이수한 학생이라는 조건에서는 과목 범위의 각 원소에 대하여 이수 관계가 성립하는지 표현할 수 있다.

∃는 조건을 만족하는 값이 적어도 하나 존재한다는 존재 한정자다. ∈는 원소가 집합에 속한다는 뜻이고 ⊂는 부분집합 관계를 표현한다. 모든 경우인지 적어도 한 경우인지에 따라 조건의 강도가 달라지므로 전칭과 존재 한정자를 특히 구별한다.

선지별 해설

  • ① 오답. 원소가 집합에 속함을 나타내는 소속 기호다.
  • ② 정답. 범위의 모든 값에 대해 성립함을 나타내는 전칭 한정자다.
  • ③ 오답. 집합 사이의 부분집합 관계를 나타낸다.
  • ④ 오답. 적어도 하나의 값이 존재함을 나타내는 존재 한정자다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Tuple Relational Calculus, formulas 및 quantifiers

58. 데이터베이스 설계자가 다음 조건을 확인한다. DELETE 명령에 관한 기술로 적절하지 않은 설명을 고르면?

  1. 용도 분류상 DML에 속한다.
  2. 기본 형식은 DELETE FROM 테이블 [WHERE 조건]이다.
  3. 테이블의 행을 삭제한다.
  4. WHERE 없는 DELETE는 DROP TABLE과 동일한 효과를 낸다.
정답과 해설 보기

정답: 4

정답은 ④이다. WHERE가 없는 DELETE FROM 테이블은 대상 테이블의 행을 모두 삭제하지만 테이블의 정의 자체는 남긴다. 따라서 이후 같은 테이블에 다시 INSERT할 수 있다. DROP TABLE은 테이블 객체를 제거하므로 둘은 같은 효과가 아니다.

DELETE는 데이터를 조작하는 DML로 분류하며 WHERE를 지정하면 조건에 맞는 행만 삭제한다. 외래키 제약이나 트리거에 따라 실행이 거절되거나 관련 처리가 일어날 수 있으므로, 행 삭제와 스키마 객체 제거라는 본래 역할을 먼저 구분하여 이해한다.

선지별 해설

  • ① 오답. DELETE는 행 데이터를 변경하는 DML에 속한다.
  • ② 오답. 일반적인 DELETE의 기본 형식으로 맞다.
  • ③ 오답. 테이블 정의가 아니라 대상 행을 삭제한다.
  • ④ 정답. 모든 행의 삭제와 테이블 객체의 제거는 서로 다르다.

편집 해설 근거: PostgreSQL 18: DELETE — Description; WHERE; PostgreSQL 18: DROP TABLE — Description

59. 데이터베이스 설계자가 다음 조건을 확인한다. 관계 데이터 모델에서 한 릴레이션에 포함된 튜플의 수를 무엇이라 하는가?

  1. 카티션 곱
  2. 차수(Degree)
  3. 카디널리티(Cardinality)
  4. 애트리뷰트(Attribute)
정답과 해설 보기

정답: 3

정답은 ③ 카디널리티이다. 릴레이션의 카디널리티는 그 릴레이션에 포함된 튜플, 즉 행의 개수이다. 학생 테이블에 100명의 행이 있다면 카디널리티는 100이다. 속성이 몇 개인지를 묻는 차수와는 구별한다.

예를 들어 학번·이름·학과 세 속성으로 이루어진 100행의 릴레이션은 차수 3, 카디널리티 100이다. 카티션 곱은 두 릴레이션의 튜플을 조합하는 연산이고 애트리뷰트는 열에 해당하는 속성이다. 같은 cardinality라는 말도 ER 관계의 대응 수를 설명할 때는 다른 문맥으로 쓰일 수 있다.

선지별 해설

  • ① 오답. 두 릴레이션의 모든 튜플 쌍을 만드는 연산이다.
  • ② 오답. 릴레이션의 속성 수를 가리킨다.
  • ③ 정답. 릴레이션에 포함된 튜플 수를 가리킨다.
  • ④ 오답. 하나의 속성, 즉 열을 가리킨다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Database: Definitions, cardinality 및 degree/arity

60. 데이터베이스 설계자가 다음 조건을 확인한다. SELECT, UPDATE, INSERT, GRANT를 DDL·DML·DCL로 분류할 때 성격이 다른 하나는?

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

정답: 4

정답은 ④ GRANT이다. 문제에 제시한 DDL·DML·DCL의 세 분류에서는 데이터를 조회하는 SELECT와 데이터를 넣거나 수정하는 INSERT·UPDATE를 DML로 묶는다. GRANT는 사용자나 역할에 객체 사용 권한 등을 부여하는 명령이므로 DCL로 구별된다.

분류 체계에 따라 SELECT를 조회 전용의 DQL로 따로 설명하기도 한다. 이 문제는 세 분류를 명시했으므로 그 기준에서 판단한다. 명령의 글자 모양을 외우기보다 데이터를 다루는지, 객체 정의를 바꾸는지, 권한을 바꾸는지를 기준으로 구별하면 된다.

선지별 해설

  • ① 오답. 이 문제의 세 분류에서는 데이터 조회를 DML에 포함한다.
  • ② 오답. 기존 행의 값을 수정하는 DML이다.
  • ③ 오답. 새로운 행을 넣는 DML이다.
  • ④ 정답. 데이터 값이 아니라 사용 권한을 부여하는 DCL이다.

편집 해설 근거: PostgreSQL 18 — SELECT — Description; PostgreSQL 18 — Data Manipulation — Chapter 6 Data Manipulation; PostgreSQL 18, GRANT — Description

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

61. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 오류 제어에 쓰이는 자동 반복 요청(ARQ) 방식이 해당하지 않는 것을 고르면?

  1. Go-Back-N ARQ
  2. Selective Repeat ARQ
  3. Non-Acknowledge ARQ
  4. Stop-and-Wait ARQ
정답과 해설 보기

정답: 3

정답은 ③ Non-Acknowledge ARQ이다. ARQ는 오류나 손실을 검출했을 때 확인 응답과 시간 제한 등의 정보를 이용해 필요한 데이터를 다시 보내는 방식이다. Stop-and-Wait는 한 번에 제한된 데이터를 보내고 응답을 기다리며, Go-Back-N은 손실 지점 이후의 여러 데이터를 다시 보낼 수 있다.

Selective Repeat는 필요한 항목을 선택적으로 재전송하는 방식이다. Non-Acknowledge ARQ는 이들과 나란히 분류하는 대표 ARQ 방식의 이름이 아니다. 부정 확인 응답 NAK를 사용하는 구현이 있다는 사실과 이 보기의 비표준 명칭을 혼동하지 않는다.

선지별 해설

  • ① 오답. 손실 지점 이후의 여러 항목을 다시 보내는 대표 ARQ 방식이다.
  • ② 오답. 필요한 항목을 선택적으로 재전송하는 대표 ARQ 방식이다.
  • ③ 정답. 이 대표 분류에 해당하는 ARQ 방식 명칭이 아니다.
  • ④ 오답. 전송 후 확인을 기다리는 대표 ARQ 방식이다.

편집 해설 근거: IETF RFC 3366, Advice to link designers on link ARQ (2002) — §1.4 Commonly-used ARQ Techniques; §1.4.1 Stop-And-Wait; §1.4.2 Sliding-Window ARQ

62. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. OSI 7계층의 네트워크 계층에 관한 기술로 적절하지 않은 설명을 고르면?

  1. 패킷에 논리 주소 정보를 사용한다.
  2. 라우터가 경로 선택과 패킷 전달을 수행한다.
  3. 발신지에서 최종 목적지까지 패킷 전달을 책임진다.
  4. 인접한 두 노드 사이에서 프레임을 전송한다.
정답과 해설 보기

정답: 4

정답은 ④이다. OSI 네트워크 계층은 여러 링크를 거쳐 목적지로 데이터를 전달하기 위한 주소와 경로 선택에 관련된다. IP 네트워크의 라우터는 목적지 주소와 경로 정보를 사용하여 다음 홉으로 패킷을 전달하는 대표적인 사례다.

인접 노드 사이에서 프레임을 전달하는 기능은 데이터 링크 계층의 설명이다. 한 패킷이 여러 링크를 지나가는 동안 링크마다 프레임이 달라질 수 있다. 네트워크 계층이 목적지 전달을 담당한다는 말이 모든 패킷의 성공적 전달이나 재전송을 보장한다는 뜻은 아니며, IP는 최선형 전달 서비스를 제공한다.

선지별 해설

  • ① 오답. 논리 주소를 이용한 전달은 네트워크 계층의 기능이다.
  • ② 오답. 경로 선택과 패킷 전달은 라우터의 대표 기능이다.
  • ③ 오답. 여러 링크를 거친 목적지까지의 전달을 다루는 계층이다.
  • ④ 정답. 인접 노드 간 프레임 전달은 데이터 링크 계층의 기능이다.

편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — §7.5 Network layer; §7.6 Data link layer; IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — §2.2.1 Internet Protocol

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

#include <stdio.h>
int main(void) {
    int a=5, b=3, c=1;
    printf("%d", (a&&b)+(a||b)+(!c));
    return 0;
}

[학습용 개정문항]

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

정답: 2

정답은 ② 2이다. C에서 논리 연산자는 피연산자가 0이면 거짓, 0이 아니면 참으로 판단하고 결과를 int형 0 또는 1로 만든다. a와 b는 모두 0이 아니므로 a&&b는 1, a||b도 1이다. c는 1로 참이므로 !c는 0이다.

세 결과를 더하면 1+1+0=2가 된다. &&와 ||는 비트 단위의 &와 |와 다르므로 5와 3의 비트 계산이나 원래 값 자체를 합산하면 안 된다. 논리 연산의 결과값을 먼저 구한 다음 바깥 덧셈을 수행한다.

선지별 해설

  • ① 오답. 두 이항 논리 연산의 결과가 모두 1이므로 합이 0이 아니다.
  • ② 정답. 1+1+0=2가 출력된다.
  • ③ 오답. 논리 연산 결과는 피연산자 5를 그대로 반환하지 않는다.
  • ④ 오답. 피연산자들의 산술 합으로 계산하는 식이 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.13 Logical AND; §6.5.14 Logical OR; §6.5.3.3 Unary arithmetic operators

64. TCP가 데이터를 전송할 때 사용하는 세그먼트(segment)는 OSI 기능 대응상 어느 계층의 데이터 단위인가?

[학습용 개정문항]

  1. 전송 계층
  2. 세션 계층
  3. 표현 계층
  4. 응용 계층
정답과 해설 보기

정답: 1

정답은 ① 전송 계층이다. TCP는 전송 계층의 프로토콜이며 통신하는 프로세스 사이에서 바이트 스트림을 세그먼트로 나누어 전달한다. 세그먼트에는 포트, 순서 번호와 확인 응답 등 TCP 동작에 필요한 정보가 포함된다.

세션·표현·응용은 OSI 모델의 상위 계층이다. 계층의 데이터 단위를 모두 메시지라는 한 단어로 일반화하면 프로토콜별 용어 차이를 놓칠 수 있다. 예를 들어 같은 전송 계층의 UDP는 데이터그램이라는 용어를 사용하므로, 이 문제는 TCP 세그먼트라는 구체적 대상을 기준으로 계층을 묻는다.

선지별 해설

  • ① 정답. TCP의 세그먼트는 전송 계층의 데이터 단위다.
  • ② 오답. 세션 계층은 TCP가 속한 계층이 아니다.
  • ③ 오답. 표현 계층은 TCP가 속한 계층이 아니다.
  • ④ 오답. 응용 프로토콜은 TCP가 제공하는 전송 서비스를 이용한다.

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

65. Python에서 text='riTng'일 때 print(text[::-1])의 출력은?

  1. gnTir
  2. riTng
  3. ot hl
  4. lh to
정답과 해설 보기

정답: 1

정답은 ① gnTir이다. Python의 슬라이스는 [시작:끝:간격] 형식이며 text[::-1]은 간격이 -1이므로 뒤에서 앞으로 이동한다. 시작과 끝을 생략했을 때 음수 간격에 맞는 기본 경계를 사용하므로 문자열 전체가 역순으로 선택된다.

riTng의 인덱스 4·3·2·1·0에 해당하는 문자는 g·n·T·i·r이므로 결과는 gnTir이다. 대문자 T를 소문자로 바꾸거나 공백을 추가하는 연산은 없다. 문자열 슬라이스는 새 문자열을 만들며 원래 text의 내용은 그대로 유지된다.

선지별 해설

  • ① 정답. 원래 문자열을 마지막 문자부터 역순으로 나열한 결과다.
  • ② 오답. 간격이 -1이므로 원래 순서 그대로 출력하지 않는다.
  • ③ 오답. 원문에 없는 문자와 공백을 만들지 않는다.
  • ④ 오답. 다른 문자열의 역순이며 riTng의 슬라이스 결과가 아니다.

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

66. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 프로세스 적재와 지역성에 관한 기술로 적절하지 않은 설명을 고르면?

  1. 프로세스 실행 시간보다 페이지 교체 시간이 짧을 때 스레싱이 발생한다.
  2. 스레싱을 막으려면 각 프로세스의 작업 집합에 필요한 프레임을 확보해야 한다.
  3. 반복문·스택·서브프로그램은 시간 지역성과 관련된다.
  4. 한 페이지 참조 후 인접 페이지를 참조할 가능성이 높은 성질은 공간 지역성이다.
정답과 해설 보기

정답: 1

정답은 ①이다. 스레싱은 필요한 페이지를 충분히 유지하지 못해 페이지 부재와 교체가 반복되며, 유용한 실행보다 페이징 처리에 많은 시간을 쓰는 상태다. 단순히 페이지 교체 시간이 실행 시간보다 짧다는 조건이 스레싱을 정의하지는 않는다.

현재 자주 사용하는 페이지들의 작업 집합에 맞춰 프레임을 확보하거나 동시에 실행하는 부하를 조절하면 문제를 줄일 수 있다. 시간 지역성은 최근 사용한 것을 다시 참조하는 경향이고 공간 지역성은 가까운 주소를 참조하는 경향이다. 반복 실행되는 코드와 재사용되는 스택 값은 시간 지역성의 사례가 될 수 있다.

선지별 해설

  • ① 정답. 스레싱은 페이징 부담이 유용한 실행을 압도하는 현상이며 제시한 정의는 맞지 않는다.
  • ② 오답. 작업 집합을 수용할 프레임의 확보는 과도한 부재를 줄이는 데 중요하다.
  • ③ 오답. 반복·재호출·값의 재사용은 시간 지역성의 사례가 될 수 있다.
  • ④ 오답. 참조한 위치 부근을 다시 접근하는 경향은 공간 지역성이다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 22 Beyond Physical Memory: Policies — §22.5 Using History: LRU; Aside: Types of Locality; §22.11 Thrashing; Steven Hand, Cambridge Operating Systems II (2005), 2010–11 강의 보존본 — The Risk of Thrashing; Locality of Reference; Avoiding Thrashing, 슬라이드 49–51 (PDF pp.53–55)

67. 다음 Java 17 코드에서 표준 Random 클래스를 가져오도록 빈칸에 들어갈 패키지는?

import _____.Random;
class Sample {
    int[] make() {
        Random random = new Random();
        int[] values = new int[3];
        for (int i=0; i<values.length; i++)
            values[i] = random.nextInt(10);
        return values;
    }
}

[학습용 개정문항]

  1. java.net
  2. java.lang
  3. java.util
  4. java.io
정답과 해설 보기

정답: 3

정답은 ③ java.util이다. 표준 Random 클래스의 완전한 이름은 java.util.Random이다. 따라서 import java.util.Random;으로 가져온 뒤 new Random()으로 객체를 만들고 nextInt(10)을 호출하면 0 이상 10 미만의 의사난수 정수를 얻는다.

상한 10은 결과에 포함되지 않으므로 가능한 값은 0~9이다. java.net은 네트워크 관련, java.io는 입출력 관련 기능이 있는 패키지이며 java.lang이 자동으로 가져와진다고 해서 Random까지 그 안에 있는 것은 아니다. 여기서 의사난수 생성은 암호학적 난수 요구와는 별도의 용도다.

선지별 해설

  • ① 오답. 표준 Random은 java.net 패키지에 속하지 않는다.
  • ② 오답. 자동으로 가져오는 java.lang에 Random이 포함되는 것은 아니다.
  • ③ 정답. Random의 완전한 클래스 이름은 java.util.Random이다.
  • ④ 오답. 표준 Random은 java.io 패키지에 속하지 않는다.

편집 해설 근거: Oracle Java SE 17 API, java.util.Random — Class Random; nextInt(int bound)

68. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. Bash 셸의 export에 관한 기술로 적절하지 않은 설명을 고르면?

[학습용 개정문항]

  1. 변수 값을 화면에 출력하려면 반드시 export를 사용한다.
  2. 인자 없이 export를 실행하면 내보내진 변수를 확인할 수 있다.
  3. 일반적인 비export 셸 변수는 새로 실행한 외부 명령의 환경에 자동 포함되지 않는다.
  4. export한 변수는 이후 실행한 자식 명령에 환경 변수로 전달된다.
정답과 해설 보기

정답: 1

정답은 ①이다. Bash에서 export는 변수를 이후 실행할 명령의 환경에 포함하도록 표시하는 기능이다. 화면에 값을 표시하려면 printf나 echo 등을 사용할 수 있으며 export가 필수는 아니다. 예를 들어 셸 변수 값을 printf로 출력하는 일과 외부 프로그램에 환경 변수로 넘기는 일은 다르다.

Bash에서는 인자 없이 export를 실행하면 내보내도록 표시된 변수 목록을 볼 수 있다. 일반적인 비export 변수는 새로 실행한 외부 명령의 환경에 자동 포함되지 않는다. 다만 괄호 서브셸 등은 셸 상태를 복사할 수 있으므로 모든 자식 실행 형태를 한 문장으로 동일시하지 않는다.

선지별 해설

  • ① 정답. 값 출력에는 printf나 echo 등을 쓰며 export는 필수 출력 명령이 아니다.
  • ② 오답. Bash의 인자 없는 export는 내보낸 변수 목록을 표시한다.
  • ③ 오답. 별도 외부 명령의 환경에는 비export 변수가 자동으로 포함되지 않는다.
  • ④ 오답. export로 표시한 변수는 이후 실행한 자식 명령의 환경에 포함된다.

편집 해설 근거: GNU Bash Reference Manual, Edition 5.3 (2025) — §4.1 Bourne Shell Builtins, export; §3.7.4 Environment

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

class Main {
    public static void main(String[] args) {
        int y=0;
        for (int x=7; x-- > 0;) {
            if (x%3==0) continue;
            y++;
        }
        System.out.print(y);
    }
}

[학습용 개정문항]

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

정답: 2

정답은 ② 4이다. 조건식의 후위 감소 연산은 비교에 감소 전 값을 사용한 뒤 x를 1 줄인다. 처음에는 7>0을 비교하고 본문에 들어갈 때 x는 6이다. 이후 본문에서의 x는 6,5,4,3,2,1,0의 순서가 된다.

x%3==0인 6·3·0에서는 continue가 실행되어 y++를 건너뛴다. 나머지 5·4·2·1에서만 y가 증가하므로 총 4가 된다. 마지막 조건에서 감소 전 x가 0이면 비교가 거짓이 되어 본문에 들어가지 않는다. 후위 감소의 비교 시점과 본문의 값, continue가 생략하는 문장을 나누어 추적한다.

선지별 해설

  • ① 오답. 5·4·2·1에서는 continue가 실행되지 않아 y가 증가한다.
  • ② 정답. y++가 네 번 실행되어 4가 된다.
  • ③ 오답. 본문의 x=0도 3의 배수 판정으로 건너뛰므로 다섯 번이 아니다.
  • ④ 오답. 본문은 일곱 번 실행되지만 그중 세 번은 y++를 건너뛴다.

편집 해설 근거: Oracle Java SE 17 Language Specification, Chapter 15 Expressions — §15.14.3 Postfix Decrement Operator; Oracle Java SE 17 Language Specification, Chapter 14 Blocks and Statements — §14.14.1 The basic for Statement; §14.16 The continue Statement

70. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. TCP/IP 계층 모델에서 TCP가 속하는 계층은?

  1. 전송 계층
  2. 세션 계층
  3. 데이터 링크 계층
  4. 인터넷 계층
정답과 해설 보기

정답: 1

정답은 ① 전송 계층이다. TCP는 서로 다른 호스트의 응용 프로세스가 데이터를 교환할 수 있도록 전송 계층 서비스를 제공한다. 포트로 통신 종단을 구별하고 순서 번호, 확인 응답, 재전송 등을 사용하여 순서 있는 바이트 스트림을 다룬다.

TCP/IP의 인터넷 계층은 IP와 경로를 통한 데이터그램 전달에 대응하며, 링크 계층은 개별 연결 매체의 전달을 담당한다. 세션 계층은 OSI 모델의 명칭으로, TCP/IP의 일반적인 네 계층 구분에 독립 계층으로 포함되지 않는다. TCP와 IP의 이름을 한 묶음으로 부르더라도 둘의 역할은 구별한다.

선지별 해설

  • ① 정답. TCP는 종단 프로세스 사이의 전송 서비스를 제공한다.
  • ② 오답. TCP/IP의 일반적인 계층 분류에서 TCP의 소속을 세션 계층이라 하지 않는다.
  • ③ 오답. 개별 링크의 전달 기능과 TCP의 종단 전송 기능은 다르다.
  • ④ 오답. 인터넷 계층의 대표 프로토콜은 IP이다.

편집 해설 근거: IETF RFC 1122 (1989), Requirements for Internet Hosts — §1.1.3 Internet Protocol Suite; §4.2 Transmission Control Protocol

71. Java 17의 표준 출력 스트림 System.out이 제공하는 메서드 이름이 아닌 것은? 보기의 괄호 안 인자는 생략해 표시했다.

[학습용 개정문항]

  1. System.out.printf()
  2. System.out.print()
  3. System.out.println()
  4. System.out.printing()
정답과 해설 보기

정답: 4

정답은 ④ System.out.printing()이다. System.out은 표준 출력 스트림이고 PrintStream은 print, println, printf 등의 메서드를 제공한다. print는 값을 출력하고, println은 출력 뒤 줄 구분자를 붙이며, printf는 형식 문자열에 따라 값을 출력한다.

printing이라는 이름의 표준 메서드는 존재하지 않는다. 보기의 괄호는 메서드 이름을 가리키는 표현이며 printf나 print를 실제 호출할 때 필요한 인자를 생략해도 된다는 뜻은 아니다. 사용자 정의 클래스가 비슷한 이름의 메서드를 만들 수 있다는 사실과 표준 API는 구별한다.

선지별 해설

  • ① 오답. printf는 PrintStream이 제공하는 형식화 출력 메서드다.
  • ② 오답. print는 값을 출력하는 표준 메서드다.
  • ③ 오답. println은 출력 뒤 줄 구분자를 붙이는 표준 메서드다.
  • ④ 정답. printing은 PrintStream의 표준 메서드 이름이 아니다.

편집 해설 근거: Oracle Java SE 17 API, java.io.PrintStream — Method Summary, print·println·printf overloads

72. 빈 페이지 프레임 3개에 참조열 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0을 FIFO로 처리할 때 페이지 부재 횟수는?

  1. 13
  2. 14
  3. 15
  4. 19
정답과 해설 보기

정답: 2

정답은 ② 14회이다. FIFO는 메모리에 가장 먼저 적재된 페이지를 먼저 교체하며, 이미 있는 페이지를 다시 참조해도 적재 순서를 갱신하지 않는다. 처음 7·0·1을 넣는 세 번도 빈 프레임에 대한 페이지 부재로 센다.

주어진 19번의 참조 중 적중하는 위치는 5·12·13·16·17번째의 다섯 번이다. 따라서 부재는 19-5=14회다. 교체할 때마다 가장 오래된 적재 페이지를 빼고 새 페이지를 뒤에 넣어 추적한다. 최근 사용 시점을 갱신하는 LRU 규칙을 섞으면 다른 결과가 나오므로 주의한다.

선지별 해설

  • ① 오답. 처음 적재와 모든 교체를 포함하면 부재가 14회다.
  • ② 정답. 19번의 참조 중 적중 5회를 제외한 14회가 부재다.
  • ③ 오답. 적중하는 다섯 참조를 모두 제외해야 한다.
  • ④ 오답. 모든 참조가 부재인 것은 아니며 5회는 이미 적재된 페이지에 적중한다.

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

73. 사용자가 매번 직접 실행하거나 고정 시각을 기다리지 않고, 지정한 입력 파일의 도착을 감지하면 시작하는 배치의 발생 원인을 가장 직접적으로 나타낸 명칭은?

[학습용 개정문항]

  1. 이벤트성 배치
  2. On-Demand 배치
  3. 사용자 배치
  4. 정기 배치
정답과 해설 보기

정답: 1

정답은 ① 이벤트성 배치이다. 파일 도착이나 선행 작업 완료 같은 사건을 감지하여 미리 정한 작업을 실행하면 이벤트에 의해 시작되는 배치이다. 여기서는 파일 도착이라는 조건이 실제로 발생하는 시점이 실행을 결정한다. 매일 같은 시각이라는 달력 일정이 기준인 경우와 구별된다.

사용자의 필요에 따른 직접 요청은 수동 또는 요청형 실행으로 설명할 수 있고, 정기 배치는 정해진 주기나 시각에 실행한다. 제품에 따라 이벤트 실행도 on-demand라는 넓은 용어에 포함할 수 있으므로 이 문제는 구체적인 발생 원인을 기준으로 가장 직접적인 명칭을 고른다.

선지별 해설

  • ① 정답. 지정한 파일 도착 사건에 반응하여 실행되는 배치이다.
  • ② 오답. 여기서는 사용자의 직접 요청보다 파일 도착 이벤트가 핵심 조건이다.
  • ③ 오답. 사용자의 수동 실행이라는 조건이 아니다.
  • ④ 오답. 정해진 날짜·시각의 반복 실행이라는 조건이 아니다.

편집 해설 근거: IBM Workload Automation 10.2.4, Running event-driven workload automation — Running event-driven workload automation, event rules 및 batch jobs

74. Python에서 print(4,1,2,sep=',',end='') 다음에 print(3,5,sep='/')를 실행한다. 출력은?

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

정답: 1

정답은 ① 4,1,23/5이다. 첫 print는 sep를 쉼표로 지정했으므로 세 값 사이에 쉼표를 넣어 4,1,2를 출력한다. end를 빈 문자열로 지정했으므로 끝에 줄바꿈이나 다른 문자를 붙이지 않는다.

이어서 두 번째 print가 같은 줄에 3/5를 출력하므로 두 결과가 바로 이어져 4,1,23/5가 된다. 두 번째 호출은 end를 지정하지 않아 마지막에 줄바꿈을 붙인다. 2와 3 사이에 쉼표나 공백이 자동으로 생기는 것은 아니며 sep는 한 번의 호출에서 인자 사이에만 적용된다.

선지별 해설

  • ① 정답. 첫 출력 끝에 구분자가 없어 2 바로 다음에 두 번째 출력의 3이 붙는다.
  • ② 오답. 첫 호출의 sep는 공백이 아니라 쉼표다.
  • ③ 오답. 첫 호출의 end가 빈 문자열이므로 두 호출 사이에 줄바꿈이 없다.
  • ④ 오답. 두 호출에 각각 쉼표와 슬래시가 지정되어 있다.

편집 해설 근거: Python 3.14, Built-in Functions — print(*objects, sep, end, file, flush)

75. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. Java의 예외(Exception)에 관한 기술로 틀린 설명을 고르면?

  1. 존재하지 않는 파일을 열려고 하면 예외가 발생할 수 있다.
  2. 문법 오류 때문에 컴파일이 실패한 경우도 실행 중 예외이다.
  3. 실행 중 오동작이나 결과에 악영향을 줄 수 있는 오류가 발생할 수 있다.
  4. 배열 인덱스가 범위를 벗어나면 예외가 발생한다.
정답과 해설 보기

정답: 2

정답은 ②이다. Java의 문법 오류로 컴파일에 실패한 경우는 프로그램 실행 전에 발견되는 오류다. 실행 중에 던져지는 예외와 구별해야 한다. 예를 들어 괄호를 잘못 쓴 소스가 컴파일되지 않는 상황과 실행 중 배열 범위를 벗어나는 상황은 발생 단계가 다르다.

존재하지 않는 파일을 열거나 허용 범위를 벗어난 배열 인덱스를 사용하면 실행 중 예외가 발생할 수 있다. 예외는 정상 흐름을 중단할 수 있어 적절한 처리나 호출자 전달이 필요하다. 여기서 Exception 클래스와 Error 클래스의 구별을 무시하고 모든 실패를 하나의 실행 예외로 부르지는 않는다.

선지별 해설

  • ① 오답. 파일을 열지 못하는 상황은 실행 중 예외의 원인이 될 수 있다.
  • ② 정답. 컴파일 실패는 실행 중 발생하는 예외가 아니다.
  • ③ 오답. 실행 중 문제로 정상 처리 흐름이나 결과가 영향을 받을 수 있다.
  • ④ 오답. 배열 경계를 벗어난 접근은 실행 중 예외를 발생시킨다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 11 Exceptions — §11.1 The Kinds and Causes of Exceptions; §11.2 Compile-Time Checking of Exceptions

76. 다음 Python 3 프로그램의 실행 결과는?

while True:
    print("A")
    print("B")
    break
    print("C")
print("D")

[학습용 개정문항]

  1. A, B가 계속 반복
  2. A, B, C만 출력
  3. A, B, C가 계속 반복
  4. A, B, D가 한 번씩 출력
정답과 해설 보기

정답: 4

정답은 ④이다. while True의 본문에 들어가 A와 B를 출력한 뒤 break를 만나면 가장 가까운 반복문을 즉시 종료한다. 따라서 같은 본문 아래에 있는 C 출력문은 실행되지 않고, 반복문 밖에 있는 D 출력문으로 이동한다.

실제 출력은 A, B, D가 각각 한 줄씩 한 번 나타난다. True 조건이 반복을 계속 허용해도 break가 있으면 종료할 수 있다. continue는 남은 본문을 건너뛰고 다음 반복으로 가지만 break는 반복문 자체를 벗어난다는 차이가 중요하다.

선지별 해설

  • ① 오답. 첫 반복에서 break가 실행되어 무한 반복하지 않는다.
  • ② 오답. C는 건너뛰고 반복문 밖의 D가 실행된다.
  • ③ 오답. break 뒤의 C는 실행되지 않으며 반복도 끝난다.
  • ④ 정답. A·B를 출력하고 반복을 끝낸 뒤 D를 출력한다.

편집 해설 근거: Python 3.14 Language Reference, Simple statements — §7.9 The break statement; §7.10 The continue statement

77. 여러 사용자 스레드를 하나의 커널 스레드에 매핑하는 다대일(Many-to-One) 모델의 장점으로 적절한 것은?

[학습용 개정문항]

  1. 여러 사용자 스레드가 커널 시스템 호출을 동시에 수행할 수 있다.
  2. 커널이 각 사용자 스레드를 독립적으로 스케줄링한다.
  3. 커널 모드 전환 없이 스레드 전환이 가능해 오버헤드가 작다.
  4. 한 스레드의 시스템 호출이 블록되어도 커널이 같은 프로세스의 다른 사용자 스레드를 항상 실행한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 여러 사용자 스레드를 하나의 커널 스레드 위에서 관리하는 다대일 모델에서는 사용자 공간의 라이브러리가 스레드 전환을 수행할 수 있다. 매번 커널 모드로 들어갈 필요를 줄일 수 있어 전환 비용이 작은 장점이 있다.

그러나 커널은 그 사용자 스레드들을 각각 독립적인 실행 단위로 보지 않는다. 하나의 기반 커널 스레드가 블로킹되면 다른 사용자 스레드의 실행도 막힐 수 있고, 여러 CPU에서 동시에 실행하는 데 제약이 있다. 일대일이나 다대다 모델까지 모든 사용자 스레드 구현에 같은 제한을 일반화하지 않는다.

선지별 해설

  • ① 오답. 다대일 모델의 한 커널 스레드가 여러 시스템 호출을 동시에 실행하는 것은 아니다.
  • ② 오답. 이 모델에서 커널은 각각의 사용자 스레드를 독립적으로 스케줄링하지 않는다.
  • ③ 정답. 사용자 공간에서 전환하여 커널 모드 진입 비용을 줄일 수 있다.
  • ④ 오답. 기반 커널 스레드가 블록되면 다른 사용자 스레드도 실행을 못 할 수 있다.

편집 해설 근거: Steven Hand, Cambridge Operating Systems II (2005), 2010–11 강의 보존본 — Thread Architectures, 슬라이드 6 (PDF p.10)

78. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 페이지 교체 알고리즘이 해당하지 않는 것을 고르면?

[학습용 개정문항]

  1. NRU(Not Recently Used)
  2. SCF
  3. LRU
  4. OPT
정답과 해설 보기

정답: 2

정답은 ② SCF이다. OPT는 미래에 가장 늦게 다시 사용할 페이지를 교체하는 이론적 기준이고, LRU는 가장 오래 전에 사용한 페이지를 교체한다. NRU는 참조 비트 등을 이용하여 최근 사용하지 않은 페이지를 우선 후보로 삼는 방식이다.

SCF는 이 보기에서 비교하는 통상적인 페이지 교체 정책의 명칭이 아니다. Second-Chance를 뜻하는 SC나 작업 스케줄링의 다른 약자와 혼동하지 않는다. 페이지 교체는 메모리에 남길 페이지를 고르는 문제이고 CPU 스케줄링은 실행할 작업을 고르는 문제이므로 대상부터 구별한다.

선지별 해설

  • ① 오답. 최근 사용하지 않은 페이지를 우선하는 NRU는 페이지 교체 정책이다.
  • ② 정답. 나머지 보기와 같은 통상적인 페이지 교체 정책 명칭이 아니다.
  • ③ 오답. 가장 오래 전에 사용한 페이지를 교체하는 정책이다.
  • ④ 오답. 미래 참조를 아는 경우 가장 늦게 다시 쓰일 페이지를 교체하는 정책이다.

편집 해설 근거: Steven Hand, Cambridge Operating Systems II (2005), 2010–11 강의 보존본 — Approximating LRU (1), 슬라이드 44; Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 22 Beyond Physical Memory: Policies — §22.2 The Optimal Replacement Policy; §22.5 Using History: LRU

79. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 소프트웨어 프레임워크에 관한 기술로 타당한 설명을 고르면?

  1. 모듈화를 적용할 수 없다.
  2. 애플리케이션의 기본 구조와 공통 기능을 제공해 재사용을 돕는다.
  3. 구조가 정해져 있으므로 기능 확장이 불가능하다.
  4. 소프트웨어 아키텍처와 완전히 같은 개념이다.
정답과 해설 보기

정답: 2

정답은 ②이다. 프레임워크는 특정 종류의 응용을 만들기 위한 재사용 가능한 구조와 협력 규칙을 제공한다. 개발자는 확장 지점에 필요한 동작을 채워 넣고 공통 기능을 활용하여 애플리케이션을 구성할 수 있다. 따라서 기본 구조와 기능의 재사용을 돕는다는 설명이 맞다.

프레임워크에 구조가 있다는 것은 확장이 불가능하다는 뜻이 아니다. 오히려 정해진 규칙을 따르는 확장을 제공하는 경우가 많다. 아키텍처는 시스템의 중요한 구조와 결정에 관한 개념이고 프레임워크는 이를 구체화한 재사용 코드 등을 포함하므로 완전히 같은 말로 볼 수 없다.

선지별 해설

  • ① 오답. 프레임워크에서도 모듈화와 구성 요소 분리가 가능하다.
  • ② 정답. 공통 구조와 기능을 재사용하여 응용 개발을 돕는다.
  • ③ 오답. 확장 지점을 통해 필요한 기능을 추가할 수 있다.
  • ④ 오답. 아키텍처와 관련되지만 동일한 개념은 아니다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Overview of Frameworks (p.19); Motivation for Frameworks (p.21); Benefits of Frameworks (pp.28–30)

80. IPv4의 단편화와 재결합에 관한 설명으로 틀린 것은?

[학습용 개정문항]

  1. DF가 0인 데이터그램은 송신지나 중간 라우터에서 MTU에 맞춰 단편화될 수 있다.
  2. IPv4 조각은 최종 목적지에서 재결합된다.
  3. 나뉜 IP 데이터그램 조각은 계층과 관계없이 모두 프레임이라 부른다.
  4. DF가 설정된 데이터그램을 라우터가 단편화해서는 안 된다.
정답과 해설 보기

정답: 3

정답은 ③이다. IPv4 단편화는 IP 데이터그램을 링크가 전달할 수 있는 크기에 맞게 나누는 기능이다. DF가 설정되지 않은 경우 송신지나 중간 라우터에서 단편화가 일어날 수 있고, 조각은 최종 목적지에서 재결합된다. 조각의 위치와 식별 정보는 IPv4 헤더에 들어간다.

IP 조각 자체를 계층과 관계없이 모두 프레임이라고 부르지는 않는다. 프레임은 링크 계층의 전달 단위이며 하나의 IP 조각이 링크 프레임에 담겨 전달될 수 있다. DF가 설정된 데이터그램을 크기 때문에 전달할 수 없으면 라우터는 단편화하지 않고 관련 오류 처리에 따라 동작한다.

선지별 해설

  • ① 오답. DF가 0인 IPv4 데이터그램은 송신지나 라우터에서 단편화될 수 있다.
  • ② 오답. IPv4 조각의 재결합은 최종 목적지에서 이루어진다.
  • ③ 정답. IP 조각과 링크 계층 프레임은 서로 다른 단위다.
  • ④ 오답. DF가 설정되면 라우터가 해당 데이터그램을 단편화해서는 안 된다.

편집 해설 근거: IETF RFC 791 (1981), Internet Protocol — §2.3 Function Description, Fragmentation; §3.1 Internet Header Format, Flags·Fragment Offset; ITU-T X.200 (07/1994), OSI Basic Reference Model — §7.6 Data link layer

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

81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. TCP/IP 위에서 발행-구독 방식으로 동작하며 IoT에서 널리 쓰이는 경량 메시징 프로토콜은?

  1. MQTT
  2. Zigbee
  3. MTSP
  4. MLFQ
정답과 해설 보기

정답: 1

정답은 ① MQTT이다. MQTT는 클라이언트가 토픽에 메시지를 발행하고 해당 토픽을 구독한 클라이언트가 메시지를 받는 발행·구독 방식의 경량 메시징 프로토콜이다. 서버인 브로커가 메시지의 전달을 중개하므로 발행자가 모든 수신자와 개별 연결 관계를 직접 관리할 필요를 줄인다.

일반적으로 TCP/IP와 같은 순서 있고 손실 없는 양방향 연결 위에서 사용되며, 자원이 제한된 장치와 IoT 통신에 적합한 특징을 갖는다. Zigbee는 저전력 무선 네트워크 기술이고 MLFQ는 다단계 피드백 큐 스케줄링을 가리키므로 역할이 다르다.

선지별 해설

  • ① 정답. 토픽 기반 발행·구독 방식의 경량 메시징 프로토콜이다.
  • ② 오답. 저전력 무선 네트워크 기술이며 MQTT의 응용 메시징 역할과 다르다.
  • ③ 오답. 제시한 특징에 대응하는 표준 프로토콜 이름은 MQTT이다.
  • ④ 오답. 다단계 피드백 큐 스케줄링과 관련된 약자다.

편집 해설 근거: OASIS, MQTT Version 5.0 Standard (2019) — Abstract; §1 Introduction

82. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 기존 컴포넌트를 조합해 새 애플리케이션을 만들고 재사용으로 시간과 노력을 줄이는 개발 방법론은?

  1. Agile 방법론
  2. CBD 방법론
  3. 구조적 방법론
  4. 정보공학 방법론
정답과 해설 보기

정답: 2

정답은 ② CBD 방법론이다. 컴포넌트 기반 개발은 기능과 인터페이스가 정해진 재사용 가능한 소프트웨어 구성 요소를 선택·개발하고 통합하여 응용을 만드는 접근이다. 이미 확보한 기능을 활용하면 처음부터 구현하는 범위를 줄일 수 있다.

컴포넌트가 있다고 통합 비용이 사라지는 것은 아니다. 인터페이스, 버전, 의존성과 품질 요구가 맞는지 확인해야 한다. 애자일은 반복과 피드백 등 개발 방식을 강조하므로 컴포넌트 재사용과 함께 적용할 수 있다. 보기 중 부품의 조합과 재사용을 직접 중심에 둔 명칭은 CBD이다.

선지별 해설

  • ① 오답. 변화 대응과 협업을 강조하는 접근이며 이 문항의 부품 조합 중심 명칭은 CBD다.
  • ② 정답. 인터페이스가 정의된 컴포넌트의 재사용·조합을 중심으로 개발한다.
  • ③ 오답. 기능 분해 등 구조적 분석·설계와 관련된 방법이다.
  • ④ 오답. 정보와 데이터 중심의 계획·분석·설계를 강조하는 방법이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §5.6 Component-Based Design; Software Construction §1.4 Reusing Assets

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. CMMI의 성숙도 단계에 포함되지 않는 것은?

  1. 반복(Repeatable)
  2. 초기(Initial)
  3. 관리(Managed)
  4. 정의(Defined)
정답과 해설 보기

정답: 1

정답은 ① 반복(Repeatable)이다. CMMI의 성숙도 명칭에는 Initial, Managed, Defined, Quantitatively Managed, Optimizing 등이 있으며 Repeatable은 해당 성숙도 명칭이 아니다. 따라서 보기의 초기·관리·정의는 실제 명칭에 대응하지만 반복은 제외된다.

관리 수준은 프로젝트 차원의 계획·수행·측정·통제를, 정의 수준은 조직의 표준 프로세스를 바탕으로 한 적용을 강조한다. CMMI의 성숙도와 개별 실무 영역의 능력 수준은 평가 범위가 다르므로 같은 숫자나 비슷한 명칭만 보고 동일하게 취급하지 않는다. 공식 안내에는 0단계 Incomplete도 별도로 제시된다.

선지별 해설

  • ① 정답. Repeatable은 제시한 CMMI 성숙도 명칭에 포함되지 않는다.
  • ② 오답. Initial은 성숙도 1단계 명칭이다.
  • ③ 오답. Managed는 성숙도 2단계 명칭이다.
  • ④ 오답. Defined는 성숙도 3단계 명칭이다.

편집 해설 근거: CMMI Institute, CMMI Levels of Capability and Performance (2026-10-05 확인) — Maturity Levels, Levels 0–5; Capability Levels

84. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 대량 데이터에서 변수 사이의 관계와 반복되는 패턴을 찾아내는 분석 기술은?

  1. 데이터 마이닝
  2. WM-Bus
  3. 디지털 트윈
  4. Zigbee
정답과 해설 보기

정답: 1

정답은 ① 데이터 마이닝이다. 데이터 마이닝은 많은 데이터에서 반복되는 규칙이나 관계, 분류와 군집 같은 유용한 패턴을 찾는 분석이다. 예를 들어 함께 구매되는 상품의 관계를 찾거나 비슷한 사용 특성을 가진 집단을 나누는 작업이 이에 해당한다.

분석에서 발견한 관계가 곧 인과관계를 증명하는 것은 아니므로 결과를 별도로 검증해야 한다. WM-Bus와 Zigbee는 통신 기술과 관련된 명칭이고, 디지털 트윈은 실제 대상을 연결된 디지털 모델로 표현하는 개념이다. 데이터를 전달하거나 대상을 모델링하는 일과 패턴을 찾아 분석하는 일을 구별한다.

선지별 해설

  • ① 정답. 대규모 데이터의 관계·패턴을 발견하는 분석 기술이다.
  • ② 오답. 계량 장치 등의 통신과 관련된 기술이며 분석 방법명이 아니다.
  • ③ 오답. 실제 대상의 상태와 동작을 디지털 모델로 연결해 표현하는 개념이다.
  • ④ 오답. 저전력 무선 통신 기술이며 데이터 패턴 분석 기법이 아니다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Computing Foundations §6.6 Data Mining and Data Warehousing, pp.16-19–16-20; Digital Twin Consortium, Digital Twin Consortium Defines Digital Twin (2020-12-03) — Digital Twin Consortium Definition

85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 저장장치를 호스트 버스 어댑터에 네트워크 장비 없이 직접 연결하는 스토리지 구성은?

  1. NAS
  2. N-Screen
  3. NFC
  4. DAS
정답과 해설 보기

정답: 4

정답은 ④ DAS이다. DAS는 Direct-Attached Storage의 약자로, 저장장치를 중간의 저장 네트워크 없이 호스트에 직접 연결하는 구성이다. 내부 디스크나 직접 연결된 외장 저장장치가 대표적인 사례이며 연결 방식에는 여러 인터페이스가 사용될 수 있다.

NAS는 네트워크를 통해 파일 저장 서비스를 제공하는 방식이다. N-Screen은 여러 화면이나 기기에서 콘텐츠를 이용하는 개념, NFC는 짧은 거리의 무선 통신 기술이므로 저장장치의 직접 연결 구성을 뜻하지 않는다. 여기서는 디스크의 종류보다 호스트와 연결되는 구조를 기준으로 판단한다.

선지별 해설

  • ① 오답. NAS는 네트워크를 통해 접근하는 저장 서비스이다.
  • ② 오답. 여러 화면·기기의 콘텐츠 이용과 관련된 개념이다.
  • ③ 오답. 가까운 거리에서 사용하는 무선 통신 기술이다.
  • ④ 정답. 저장장치를 호스트에 직접 연결하는 구성이다.

편집 해설 근거: IBM, What Is Data Storage?, Data storage systems and architectures (2026-10-05 확인) — Data storage systems and architectures, Direct-attached storage (DAS); Network-based storage

86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 물리 자산을 소프트웨어의 가상 모델로 표현해 상태를 관찰하고 최적화·예측에 활용하는 기술은?

  1. 디지털 트윈
  2. N-Screen
  3. 최적화
  4. 실행 시간
정답과 해설 보기

정답: 1

정답은 ① 디지털 트윈이다. 디지털 트윈은 현실의 대상이나 프로세스를 디지털 모델과 데이터로 표현하고, 목적에 맞는 주기와 정밀도로 실제 상태와 연결하는 개념이다. 장비의 온도와 진동을 모델에 반영하여 상태를 파악하거나 향후 고장을 예측하는 활용을 생각할 수 있다.

단순히 외형을 그린 정적인 3차원 그림만을 뜻하지 않으며, 모든 경우에 분자 수준의 정밀도나 실시간 갱신이 필요한 것도 아니다. 최적화는 이를 활용하는 목적 중 하나이고 실행 시간은 성능 측정값이다. N-Screen은 여러 화면에서 콘텐츠를 사용하는 개념으로 구별된다.

선지별 해설

  • ① 정답. 현실 대상과 연결된 디지털 표현으로 상태 관찰·예측 등을 지원한다.
  • ② 오답. 여러 화면이나 기기를 통한 콘텐츠 이용에 관한 개념이다.
  • ③ 오답. 더 나은 조건을 찾는 목적·과정이지 해당 가상 표현 기술의 명칭은 아니다.
  • ④ 오답. 프로그램이나 작업이 수행되는 데 걸리는 시간이다.

편집 해설 근거: Digital Twin Consortium, Digital Twin Consortium Defines Digital Twin (2020-12-03) — Digital Twin Consortium Definition; Synchronized at a specified frequency and fidelity

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 사용자의 키보드 입력을 몰래 기록해 ID와 비밀번호를 탈취하는 공격은?

  1. 좀비 웜
  2. 키 로거 공격
  3. 웜
  4. 롤백
정답과 해설 보기

정답: 2

정답은 ② 키 로거 공격이다. 키 로거는 키보드에서 누른 키를 기록하는 기능을 이용하며, 악의적으로 사용되면 로그인 과정의 ID·비밀번호나 다른 민감한 입력을 탈취할 수 있다. 문항의 핵심은 스스로 전파되는지보다 입력 내용을 몰래 수집한다는 동작이다.

웜은 다른 시스템으로 자기 복제와 전파를 수행하는 악성코드의 분류이고, 좀비라는 말은 공격자에게 통제되는 상태와 연결된다. 한 악성코드가 전파와 키 기록 기능을 함께 가질 수는 있지만, 키 입력 탈취라는 행위를 직접 가리키는 것은 키 로깅이다. 롤백은 이전 상태로 되돌리는 작업이다.

선지별 해설

  • ① 오답. 원격 통제나 전파 성격을 나타내는 표현이며 키 기록 행위의 정확한 이름은 아니다.
  • ② 정답. 키보드 입력을 기록하여 민감한 정보를 탈취하는 공격이다.
  • ③ 오답. 자기 전파가 핵심인 악성코드 분류다.
  • ④ 오답. 이전 상태로 복원하는 작업을 뜻한다.

편집 해설 근거: NIST CSRC Glossary, key logger, SP 800-82 Rev.3 기반 정의 — SP 800-82 Rev.3 기반 Definitions

88. 여러 무선 노드가 이웃 노드를 통해 데이터를 중계하여 다중 홉 통신 경로를 구성하는 네트워크 방식은?

[학습용 개정문항]

  1. 메시 네트워크
  2. 가상 사설망
  3. 근거리 통신망
  4. 소프트웨어 정의 경계
정답과 해설 보기

정답: 1

정답은 ① 메시 네트워크이다. 무선 메시에서는 노드들이 다른 노드를 통해 데이터를 중계하며 여러 홉으로 통신 경로를 구성할 수 있다. 모든 장치가 한 중앙 장치에만 직접 연결되어야 하는 구조와 비교하여 통신 범위를 확장하거나 경로를 구성하는 데 활용한다.

모든 노드 쌍이 반드시 직접 연결되어야 한다는 뜻은 아니며, 실제 망은 일부 노드 사이의 연결만 갖는 부분 메시일 수 있다. VPN은 공용 망 위의 사설 통신 구성, LAN은 일정 지역의 네트워크라는 범위 구분이다. 여러 노드의 중계 경로라는 핵심 구조는 메시를 가리킨다.

선지별 해설

  • ① 정답. 노드 간 연결과 중계로 여러 홉의 경로를 구성하는 방식이다.
  • ② 오답. 공용 망 등에서 사설 통신을 구성하는 개념이다.
  • ③ 오답. 네트워크의 지역 범위를 나타내며 이 연결 위상 자체를 특정하지 않는다.
  • ④ 오답. 접근 주체와 정책에 따른 보안 경계 개념이다.

편집 해설 근거: IEEE 802.11 Working Group, Task Group s 개요 — IEEE 802.11 Task Group s, mesh networking 개요

89. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 접근통제에 관한 기술로 틀린 설명을 고르면?

  1. 불법 접근과 자원 파괴를 예방한다.
  2. 임의적 접근통제(DAC)는 주체와 객체의 보안 등급을 비교해 권한을 부여한다.
  3. 역할 기반 접근통제(RBAC)는 사용자의 역할에 권한을 연결한다.
  4. 주체와 객체 사이의 정보 흐름을 제한한다.
정답과 해설 보기

정답: 2

정답은 ②이다. DAC는 객체에 대한 접근 권한을 소유자 등의 재량에 따라 부여·관리하는 방식이다. 주체와 객체의 보안 등급을 중앙 정책에 따라 비교하는 설명은 전형적인 MAC의 특징이며 DAC의 정의로 볼 수 없다.

RBAC는 사용자에게 부여된 역할을 통해 권한을 연결한다. 예를 들어 회계 담당자 역할에 특정 문서의 조회 권한을 부여하는 식이다. 접근통제는 주체가 어떤 자원에 어떤 동작을 할 수 있는지 제한하여 무단 접근과 변경을 줄인다. 적절한 정책·구현이 필요하며 접근통제 하나로 모든 공격이 사라진다는 뜻은 아니다.

선지별 해설

  • ① 오답. 무단 접근과 자원 손상을 줄이는 것은 접근통제의 목적이다.
  • ② 정답. 보안 등급 비교는 전형적인 MAC 설명이며 DAC의 재량적 권한 관리와 다르다.
  • ③ 오답. RBAC는 역할에 연결된 권한을 사용자에게 적용한다.
  • ④ 오답. 정책에 따라 주체의 객체 접근과 정보 흐름을 제한할 수 있다.

편집 해설 근거: Peter Reiher, OSTEP v1.10, 55 Access Control — §55.5 Mandatory And Discretionary Access Control; §55.6 Practicalities Of Access Control Mechanisms (RBAC)

90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 같은 비밀번호도 서로 다른 해시값으로 저장되게 비밀번호마다 추가하는 임의 값은?

  1. Opcode
  2. Salt
  3. Pass flag
  4. Bucket
정답과 해설 보기

정답: 2

정답은 ② Salt이다. 솔트는 비밀번호를 해시하여 저장할 때 함께 입력하는 비밀일 필요가 없는 값이다. 계정마다 적절히 서로 다른 솔트를 사용하면 같은 비밀번호라도 동일한 저장 해시를 공유하는 것을 피하고, 미리 계산한 결과를 여러 계정에 한꺼번에 재사용하기 어렵게 한다.

솔트는 해시와 함께 보관할 수 있으며 암호화 키처럼 반드시 숨겨야 하는 값과는 역할이 다르다. 솔트만 붙인 빠른 단순 해시로 충분하다는 뜻은 아니다. 비밀번호 저장에는 적절한 비용 매개변수를 갖는 비밀번호 해싱 방식이 필요하며 비밀 추가 키를 쓰는 경우 그 키는 별도로 관리한다.

선지별 해설

  • ① 오답. 명령 코드와 관련된 용어이며 비밀번호 해시의 계정별 추가 값이 아니다.
  • ② 정답. 비밀번호 해싱에 추가하여 같은 입력의 공통 해시 사용을 줄이는 값이다.
  • ③ 오답. 비밀번호 저장의 표준 솔트 명칭이 아니다.
  • ④ 오답. 해시 테이블 등의 저장 구획을 가리키며 비밀번호별 추가 값과 다르다.

편집 해설 근거: NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management (2025) — §3.1.1.2 Password Verifiers, password hashing 및 salt 저장 규정

91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 소프트웨어 개발 프레임워크 적용의 기대 효과와 관련성이 가장 낮은 방침을 고르면?

  1. 변경 용이성 향상
  2. 품질 보증 향상
  3. 특정 기술에 대한 종속성 증가
  4. 개발 편의성 향상
정답과 해설 보기

정답: 3

정답은 ③이다. 프레임워크를 적절히 적용하면 검증된 공통 기능과 일정한 구조를 재사용하여 개발 편의성과 유지보수성을 높일 수 있다. 같은 문제를 각자 다시 구현하는 범위를 줄이고 공통 규칙으로 품질 활동을 수행하기 쉬워지는 효과도 기대할 수 있다.

반면 특정 기술이나 제품에 강하게 묶이면 교체와 이식 비용이 커질 수 있다. 이는 도입 시 검토할 제약이나 비용이지 일반적으로 추구하는 이점은 아니다. 프레임워크를 사용했다는 사실만으로 품질이 보장되는 것은 아니므로 적합성, 확장 방식, 시험과 운영 지원을 함께 평가해야 한다.

선지별 해설

  • ① 오답. 적절한 확장 구조는 변경을 쉽게 하는 데 도움이 될 수 있다.
  • ② 오답. 공통 구조와 재사용은 품질 활동을 돕는 기대 효과가 될 수 있다.
  • ③ 정답. 기술 종속성 증가는 도입 시 검토할 제약이며 일반적인 이점이 아니다.
  • ④ 오답. 공통 기능과 개발 규칙은 구현 편의를 높일 수 있다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Benefits of Frameworks (pp.28–30); Limitations of Frameworks (p.31); IEEE Computer Society, SWEBOK Guide V4.0a — Software Construction §1.4 Reusing Assets

92. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 애자일 방법론의 특징과 관련성이 가장 낮은 방침을 고르면?

  1. 각 단계 산출물이 완전히 확정된 뒤에만 다음 단계로 이동한다.
  2. 개발 참여자 사이의 긴밀한 의사소통을 중시한다.
  3. 환경과 요구 변화에 빠르게 대응한다.
  4. 프로젝트 상황에 맞춰 주기적으로 계획을 조정한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 애자일은 작동하는 결과를 자주 확인하고 이해관계자와 협력하며 요구와 환경의 변화에 대응하는 가치를 강조한다. 단계별 산출물을 모두 완전히 확정해야만 다음 활동을 할 수 있다는 경직된 전제를 일반적인 특징으로 삼지 않는다.

계획이 필요 없다는 뜻도 아니다. 가까운 작업을 구체적으로 계획하고 실제 결과와 새 정보를 반영해 계획을 조정한다. 문서나 절차가 가치 없다는 주장과도 구별한다. 무엇을 만들고 있는지 자주 확인하고 배운 내용을 다음 작업에 반영하는 것이 핵심이다.

선지별 해설

  • ① 정답. 모든 산출물을 완전히 확정한 뒤에만 이동한다는 경직된 전제는 애자일의 특징과 거리가 있다.
  • ② 오답. 개발 참여자 간의 직접적인 협력과 의사소통을 중시한다.
  • ③ 오답. 변화에 대응하는 것은 애자일 선언의 주요 가치다.
  • ④ 오답. 반복적인 확인과 배움을 통해 계획을 조정할 수 있다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — Four values; Principles 4, 6, 12; Schwaber·Sutherland, The Scrum Guide (2020) — Sprint Planning; Sprint Review; Sprint Retrospective

93. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 침입자가 백도어를 만들거나 중요 설정 파일을 바꿨는지 무결성을 점검하는 도구는?

  1. tcpdump
  2. cron
  3. netcat
  4. Tripwire
정답과 해설 보기

정답: 4

정답은 ④ Tripwire이다. Tripwire는 알려진 정상 상태의 파일·디렉터리 기준과 현재 상태를 비교하여 변경을 탐지하는 무결성 점검 도구다. 정책에 따라 파일 해시, 권한과 소유자 등 관찰할 속성을 정하고 예상하지 않은 변경을 알릴 수 있다.

중요 설정이나 실행 파일의 변조를 찾는 데 도움이 되지만, 변경을 찾았다는 사실만으로 그 원인이 항상 침입이라고 확정하는 것은 아니다. 승인된 업데이트도 파일을 바꾸므로 검토 후 기준을 관리해야 한다. tcpdump는 패킷 관찰, cron은 작업 예약, netcat은 네트워크 입출력과 관련된다.

선지별 해설

  • ① 오답. 주된 기능은 네트워크 패킷의 수집·분석이다.
  • ② 오답. 정해진 시각에 작업을 실행하는 예약 기능이다.
  • ③ 오답. 네트워크 연결을 통한 데이터 입출력 도구다.
  • ④ 정답. 정상 기준과 파일 상태를 비교하는 무결성 점검 도구다.

편집 해설 근거: Tripwire, Open Source Tripwire 공식 저장소 README (2026-10-05 확인) — Overview; Creating a baseline; Running a check

94. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 클라우드에서 블록체인 개발 환경과 노드 인프라를 제공해 응용 프로그램 구축을 돕는 서비스는?

  1. SDDC
  2. Wi-SUN
  3. OTT
  4. BaaS
정답과 해설 보기

정답: 4

정답은 ④ BaaS이다. 이 문제에서 BaaS는 Blockchain as a Service를 뜻하며 블록체인 네트워크와 노드 운영에 필요한 인프라를 관리형 서비스로 제공하는 개념이다. 개발자는 기반 환경 구축 부담을 줄이고 스마트 계약이나 응용 기능의 개발에 집중할 수 있다.

BaaS라는 약자가 다른 문맥에서는 Backend as a Service를 가리키기도 하므로 블록체인이라는 조건을 함께 읽어야 한다. SDDC는 데이터센터 자원을 소프트웨어로 제어하는 개념, Wi-SUN은 무선 네트워크, OTT는 인터넷을 통한 콘텐츠 제공과 관련되어 역할이 다르다.

선지별 해설

  • ① 오답. 소프트웨어 정의 데이터센터를 가리키며 블록체인 관리형 서비스 자체는 아니다.
  • ② 오답. 무선 스마트 유틸리티 네트워크와 관련된 기술이다.
  • ③ 오답. 인터넷을 통한 콘텐츠 제공과 관련된 서비스 개념이다.
  • ④ 정답. 이 문맥에서는 Blockchain as a Service를 뜻한다.

편집 해설 근거: Oracle Blockchain Platform, What Are the Advantages? (2026-10-05 확인) — What Are the Advantages?, managed blockchain platform benefits

95. 익명 의견의 반복 수렴 같은 델파이 절차 없이, 경험 많은 전문가 한 명 이상이 경험에 근거해 직접 비용을 추정하는 기법은?

[학습용 개정문항]

  1. Putnam 모형
  2. 전문가 감정 기법
  3. 델파이 기법
  4. LOC 기법
정답과 해설 보기

정답: 2

정답은 ② 전문가 감정 기법이다. 경험 있는 전문가가 과거의 유사한 작업, 복잡성, 환경과 제약을 고려하여 필요한 비용이나 노력을 판단하는 방식이다. 구체적인 자료가 부족한 초기에도 적용할 수 있지만 참여자의 경험, 기억과 편향에 영향을 받을 수 있다.

델파이 기법도 전문가 판단을 사용하지만 의견을 반복적으로 모으고 피드백하여 조정하는 별도 절차가 특징이다. 이 문제는 그런 절차 없이 경험에 근거한 직접 판단을 묻는다. Putnam은 수학적 비용·일정 모델, LOC는 예상 코드 규모에 근거한 추정과 관련된다.

선지별 해설

  • ① 오답. 인력·일정·규모 등을 수학적 관계로 다루는 모델이다.
  • ② 정답. 경험 많은 전문가의 직접적인 판단으로 비용을 추정한다.
  • ③ 오답. 반복적인 의견 수렴과 조정 절차가 명시된 기법이며 이 문제는 이를 제외했다.
  • ④ 오답. 예상 코드 줄 수 등의 규모를 추정의 기초로 사용하는 방식이다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — §III.A Major Software Cost Estimation Techniques, Table I 및 2) Expert Judgment

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 전자 칩처럼 재사용 가능한 소프트웨어 부품을 조립해 시스템을 완성하는 재사용 방식은?

  1. 합성 중심
  2. 생성 중심
  3. 분리 중심
  4. 구조 중심
정답과 해설 보기

정답: 1

정답은 ① 합성 중심이다. 합성 중심 재사용은 이미 존재하는 소프트웨어 부품을 선택하고 필요한 연결을 구성하여 더 큰 시스템을 만드는 접근이다. 인터페이스가 맞는 여러 컴포넌트를 조립하는 모습을 전자 부품의 조립에 비유할 수 있다.

생성 중심 접근은 명세나 모델·설정으로부터 도구가 코드를 만들어 내는 방식에 초점을 둔다. 두 접근을 한 프로젝트에서 함께 쓸 수도 있지만 문제의 핵심은 기존 부품의 조합이다. 부품을 가져왔더라도 요구에 맞는지, 의존성이 충돌하지 않는지와 통합 후 동작을 확인하는 작업은 필요하다.

선지별 해설

  • ① 정답. 기존 부품을 조합해 새 시스템을 구성하는 접근이다.
  • ② 오답. 명세나 설정에 따라 결과 코드를 생성하는 접근에 초점을 둔다.
  • ③ 오답. 문제의 부품 조립 중심 재사용을 가리키는 명칭이 아니다.
  • ④ 오답. 구조라는 일반 표현만으로 제시한 재사용 방식의 명칭을 설명하지 못한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Construction §1.4 Reusing Assets; §3.2 Construction Languages; Software Design §5.6 Component-Based Design

97. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 널 포인터 역참조 취약점을 예방하기 위해 가장 직접적으로 해야 할 일은?

  1. 모든 변수 선언 시 메모리를 0으로 초기화한다.
  2. 포인터를 사용하기 전에 NULL인지 검사한다.
  3. 자원 반환 코드의 누락 여부만 확인한다.
  4. 반환된 포인터가 가리키는 주소에 접근할 수 없도록 포인터를 초기화한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 널 포인터 역참조는 가리키는 유효한 객체가 없는 NULL 포인터를 통해 값을 읽거나 쓰려는 경우다. 메모리 할당이나 검색 함수가 실패하여 NULL을 반환할 수 있으므로, 역참조 전에 검사하고 NULL이면 접근을 중단하거나 오류 경로로 처리해야 한다.

검사만 한 뒤 그대로 접근하면 예방이 되지 않으며, 이미 역참조한 다음 검사하는 것도 늦다. 포인터를 NULL로 초기화하는 습관은 미정 상태를 줄일 수 있지만 초기화된 NULL을 역참조해도 안전해지는 것은 아니다. C에서는 널 포인터 역참조가 정의되지 않은 동작에 해당한다.

선지별 해설

  • ① 오답. 0 초기화만으로 이후 NULL 역참조를 막지는 못한다.
  • ② 정답. 접근 전에 NULL을 확인하고 NULL이면 접근하지 않도록 처리해야 한다.
  • ③ 오답. 자원 반환의 누락 점검은 널 포인터 검사와 다른 문제다.
  • ④ 오답. 포인터 초기화만으로 이후 역참조가 안전해지지 않으며 사용 전에 유효성을 확인해야 한다.

편집 해설 근거: CMU SEI CERT C, EXP34-C Do not dereference null pointers (2026-10-05 확인) — 규칙 설명; Compliant Solution, malloc 실패 및 검사 순서

98. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 사용자가 ID와 비밀번호로 자신이 누구인지 시스템에 증명하는 과정은?

  1. Authorization
  2. Authentication
  3. Aging
  4. Accounting
정답과 해설 보기

정답: 2

정답은 ② Authentication, 인증이다. 인증은 사용자가 주장하는 신원을 비밀번호나 다른 인증 수단으로 확인하는 과정이다. ID는 어떤 계정인지를 지목하고 비밀번호는 그 계정의 사용자라는 주장을 검증하는 수단 중 하나로 쓰인다.

Authorization은 인증된 주체 등이 어떤 자원에 어떤 동작을 할 수 있는지 결정하는 인가이다. Accounting은 사용 내역과 활동을 기록하는 회계·기록 기능과 관련된다. Aging은 기다린 작업의 우선순위를 높이는 스케줄링 등의 문맥에서 사용되므로 신원 확인 절차와 다르다.

선지별 해설

  • ① 오답. 어떤 작업을 할 권한이 있는지 결정하는 인가이다.
  • ② 정답. 주장한 신원을 인증 수단으로 확인하는 과정이다.
  • ③ 오답. 신원 확인을 뜻하는 용어가 아니다.
  • ④ 오답. 사용 내역과 활동을 기록하는 기능과 관련된다.

편집 해설 근거: Peter Reiher, OSTEP v1.10, 54 Authentication — Introduction 및 Passwords; Peter Reiher, OSTEP v1.10, 55 Access Control — Introduction

99. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 프로젝트 일정 관리의 PERT 차트를 가장 잘 설명한 것은?

  1. 작업 간 선후 관계, 경로, 여유 시간과 자원 계획을 네트워크로 분석한다.
  2. 작업 시작과 종료를 막대 길이로 표시한다.
  3. 시간선 차트라고도 부른다.
  4. 수평 막대 길이로 각 작업 기간을 나타낸다.
정답과 해설 보기

정답: 1

정답은 ①이다. PERT는 작업이나 사건의 선후 관계를 네트워크로 표현하여 일정 경로와 완료 시점의 불확실성을 분석하는 기법이다. 작업 기간을 낙관적·가장 가능성 높은·비관적 값 등으로 추정하고 의존 관계를 살피는 접근으로 잘 알려져 있다.

작업 기간을 시간축의 수평 막대로 나타내는 것은 간트 차트의 특징이다. 네트워크를 통해 어떤 작업이 지연되면 뒤의 작업에 영향을 주는지, 어떤 경로가 일정에 중요할지 살펴볼 수 있다. 자원 계획은 일정 검토와 함께 수행할 수 있지만 네트워크만으로 모든 자원 충돌이 자동 해결되는 것은 아니다.

선지별 해설

  • ① 정답. 작업 선후 관계를 네트워크로 분석하는 PERT의 특징에 가장 가깝다.
  • ② 오답. 시간축에 작업을 막대로 나타내는 간트 차트의 특징이다.
  • ③ 오답. 시간선 중심의 막대 차트 표현에 해당한다.
  • ④ 오답. 수평 막대 길이로 기간을 보여 주는 것은 간트 차트 방식이다.

편집 해설 근거: R. G. Batson, NASA TM-100311 Program Risk Analysis Handbook (1987) — E. Analytical Technique for Schedule Risk Assessment, p.24 (PDF p.30), Steps 1–3

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. Hadoop과 관계형 데이터베이스 사이에서 데이터를 가져오고 내보내도록 설계된 도구는?

  1. APNIC
  2. Topology
  3. Sqoop
  4. SDB
정답과 해설 보기

정답: 3

정답은 ③ Sqoop이다. Apache Sqoop은 관계형 데이터베이스 등 구조화된 저장소와 Hadoop 사이에서 대량의 데이터를 가져오거나 내보내는 용도로 만들어진 도구다. import는 외부 저장소의 데이터를 Hadoop 쪽으로 가져오고 export는 Hadoop 쪽 데이터를 외부 저장소로 보내는 동작을 가리킨다.

이 문제는 도구의 역사적 역할을 묻는다. Apache의 공식 기록에 따르면 Sqoop은 2021년 은퇴하여 Attic으로 이동했으므로 현재 활발히 유지되는 신규 도입 권장 도구라고 소개해서는 안 된다. APNIC은 인터넷 번호 자원 관리 기관이고 Topology는 연결 구조를 뜻하는 일반 용어다.

선지별 해설

  • ① 오답. 아시아·태평양 지역 인터넷 번호 자원 관리 기관이다.
  • ② 오답. 네트워크 등의 연결 구조를 가리키는 일반 용어다.
  • ③ 정답. Hadoop과 구조화된 데이터 저장소 사이의 대량 전송을 위해 만들어진 도구다.
  • ④ 오답. 이 역사적 역할의 Apache 도구 이름은 Sqoop이다.

편집 해설 근거: Apache Sqoop 1.4.7 User Guide (보존 문서) — §1 Introduction; sqoop-import·sqoop-export 명령 설명; Apache Attic, Apache Sqoop, 2021년 은퇴 기록 — Apache Sqoop, retirement 및 mission

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

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

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

자료 기준·검수 정보