문제지 PDF · 웹 정답 해설

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

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

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

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

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

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

해설 편집 검토 대상: 25, 29, 46, 62, 64, 70, 74, 99번. 이번 내용 검토 범위는 25·29·46·62·64·70·74·99번, 8문항입니다. 나머지 92문항은 이번 검토에 포함되지 않았으며 자료 전체의 정확성을 보증하지 않습니다. 새 후보의 PDF·웹·CBT 공개 수용은 별도 단계입니다.

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

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

1. 설계 검토 회의에서 다음 항목을 판단한다. 정형 기술 검토(FTR)의 지침 사항으로 적절하지 않은 설명을 고르면?

  1. 문제 영역을 명확히 표현한다.
  2. 참가자의 수를 제한하고 사전 준비를 강요한다.
  3. 논쟁이나 반박을 제한하지 않는다.
  4. 제품의 검토에만 집중한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 정형 기술 검토는 산출물의 결함과 개선점을 찾아 기록하는 활동이다. 끝없는 논쟁이나 인신 비판으로 흐르면 준비한 검토 범위를 끝내기 어렵고, 발견한 결함의 판단과 후속 처리가 지연된다. 진행자는 시간을 관리하고 의견 차이를 객관적인 근거로 조정한다.

문제 영역을 명확히 하고 필요한 사람이 사전 검토를 하며 제품 자체에 집중하는 것은 이런 목적을 돕는다. 여기서 논쟁을 제한한다는 것은 타당한 반론을 금지하거나 작성자에게 무조건 동의하라는 뜻이 아니다. 해결에 긴 토론이 필요한 사항은 따로 기록하여 후속 논의로 넘길 수 있다.

선지별 해설

  • ① 오답. 검토할 문제와 범위를 분명히 하는 올바른 지침이다.
  • ② 오답. 필요한 참여자를 선정하고 사전 준비 시간을 확보해야 한다.
  • ③ 정답. 목적과 시간을 벗어난 논쟁을 무제한 허용하는 것은 부적절하다.
  • ④ 오답. 작성자의 인격이나 인사 평가보다 산출물의 품질에 집중한다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §3.2.2 Facilitator; §3.2.3 Technical review; §3.2.5 Success Factors for Reviews, pp.49,51,54

2. 설계 검토 회의에서 다음 항목을 판단한다. 유스케이스 다이어그램의 기본 구성요소에 포함되지 않는 것을 고르면?

  1. 시스템(System)
  2. 클래스(Class)
  3. 유스케이스(Usecase)
  4. 액터(Actor)
정답과 해설 보기

정답: 2

정답은 ② 클래스이다. 기본 유스케이스 다이어그램은 서비스를 제공하는 대상 시스템의 경계, 목표나 기능을 나타내는 유스케이스, 시스템과 상호작용하는 외부 역할인 액터를 중심으로 읽는다. 예를 들어 도서 대출 시스템에서 회원은 액터, 도서 대출은 유스케이스가 된다.

클래스는 객체들이 공통으로 갖는 속성과 연산을 표현하는 개념으로 클래스 다이어그램의 중심 요소다. 다만 UML에서는 유스케이스의 대상도 분류자로 모델링할 수 있으므로 클래스가 유스케이스와 어떤 관계도 없다는 뜻은 아니다. 질문은 기본적인 도식 구성의 역할 구분을 묻는다.

선지별 해설

  • ① 오답. 시스템 경계는 모델링할 대상과 외부 액터를 구별한다.
  • ② 정답. 속성·연산을 가진 클래스의 구조 표현은 기본 유스케이스 도식의 주된 요소가 아니다.
  • ③ 오답. 시스템이 제공할 행동을 나타내는 핵심 요소다.
  • ④ 오답. 시스템과 상호작용하는 외부 역할을 나타낸다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §18.1 UseCases, Actors·UseCases 및 subject 표기; §11 Structured Classifiers

3. 설계 검토 회의에서 다음 항목을 판단한다. User Interface 설계 시 오류 메시지나 경고에 관한 지침으로 관련성이 가장 낮은 방침을 고르면?

[학습용 개정문항]

  1. 오류는 색상이나 소리만으로 알리고 텍스트 설명은 생략한다.
  2. 메시지는 이해하기 쉬워야 한다.
  3. 오류로부터 회복을 위한 구체적인 설명이 제공되어야 한다.
  4. 오류로 인해 발생할 수 있는 부정적인 내용을 사용자에게 명확하게 알려야 한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 오류의 위치와 원인을 색상이나 소리로만 알려 주면 색을 구별하기 어렵거나 소리를 들을 수 없는 사용자는 오류를 파악하기 어렵다. 자동으로 감지한 입력 오류에는 어느 항목이 왜 잘못됐는지 텍스트 설명을 제공해야 한다.

예를 들어 전화번호 칸을 빨갛게 만드는 데 그치지 않고 필요한 형식과 수정 방법을 적는다. 알려진 수정 방법은 보안이나 목적을 해치지 않는 범위에서 안내한다. 텍스트만 사용했다는 이유로 오류 안내가 부적절한 것은 아니므로, 기존의 텍스트 전용 안내를 오답 처리하던 보기를 바로잡았다.

선지별 해설

  • ① 정답. 색·소리만 제공하고 텍스트 설명을 생략하면 오류를 인지하기 어렵다.
  • ② 오답. 사용자가 이해할 수 있는 표현은 적절하다.
  • ③ 오답. 가능한 회복·수정 방법을 안내하는 것이 좋다.
  • ④ 오답. 데이터 손실 등 실제 결과를 명확히 알려야 하며 불필요한 공포를 주어서는 안 된다.

편집 해설 근거: W3C WCAG 2.2, Understanding SC 3.3.1 Error Identification — Success Criterion 및 Intent; W3C WCAG 2.2, Understanding SC 3.3.3 Error Suggestion — Success Criterion 및 Intent

4. 파이프·필터 아키텍처의 핵심 데이터 처리 방식을 가장 구체적으로 설명한 것은?

[학습용 개정문항]

  1. 노드와 간선으로 구성된다.
  2. 서브시스템이 입력 데이터를 받아 처리하고, 결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.
  3. 계층 모델이라고도 한다.
  4. 3개의 서브 시스템(모델, 뷰, 제어)으로 구성되어 있다.
정답과 해설 보기

정답: 2

정답은 ②이다. 파이프·필터 구조에서는 각각의 필터가 입력 데이터를 받아 변환하고, 파이프가 그 결과를 다음 필터로 전달한다. 로그를 읽기, 필요한 행 고르기, 형식 바꾸기, 집계하기처럼 연속 처리 단계로 나누는 예를 생각하면 된다.

필터를 바꾸거나 재사용하려면 앞 단계 출력과 다음 단계 입력의 형식이 맞아야 한다. 노드와 간선으로 표현할 수 있다는 설명은 여러 아키텍처와 그래프에 두루 적용되므로 이 구조만의 핵심 특징은 아니다. 계층 구조나 MVC처럼 책임을 다른 기준으로 나누는 방식과 구별한다.

선지별 해설

  • ① 오답. 여러 구조에 공통인 일반적인 표현으로 핵심 처리 방식을 특정하지 않는다.
  • ② 정답. 입력을 변환하는 필터들과 출력을 전달하는 파이프를 설명한다.
  • ③ 오답. 추상화 수준별로 서비스를 나누는 계층 구조와 다르다.
  • ④ 오답. 모델·뷰·제어는 MVC의 구성이다.

편집 해설 근거: Microsoft Azure Architecture Center, Pipes and Filters pattern (2026-10-05 확인) — Solution, filters와 pipes의 책임 및 입출력 스키마 설명

5. 모델 작성·생명주기 지원 도구와 비교할 때, 컴파일러가 소스 프로그램을 목적 언어로 바꾸는 핵심 역할에 해당하는 것은?

[학습용 개정문항]

  1. 소프트웨어 생명주기 전 단계의 연결
  2. 언어 번역
  3. 다양한 소프트웨어 개발 모형 지원
  4. 그래픽 지원
정답과 해설 보기

정답: 2

정답은 ② 언어 번역이다. 컴파일러는 소스 프로그램을 분석하고 목적 언어로 변환한다. 예를 들어 GCC에서 전처리된 C 코드를 어셈블리 코드로 만드는 단계가 컴파일에 해당하며, 이후 어셈블과 링크가 이어질 수 있다.

CASE는 소프트웨어 공학 활동을 컴퓨터 도구로 지원한다는 넓은 개념이다. 모델 작성, 산출물 연결, 그래픽 표현 등을 지원하는 도구가 있고 컴파일러를 함께 통합한 개발 환경도 가능하다. 따라서 CASE는 언어 번역을 절대 지원하지 않는다는 기존의 경직된 구분 대신, 보기 중 컴파일러의 고유한 번역 역할을 직접 묻도록 고쳤다.

선지별 해설

  • ① 오답. 여러 생명주기 활동과 산출물을 연결하는 지원 기능이다.
  • ② 정답. 소스 언어를 목적 언어로 바꾸는 컴파일러의 핵심 역할이다.
  • ③ 오답. 개발 접근법이나 모델을 지원하는 도구 기능이다.
  • ④ 오답. 모델·도식을 시각적으로 작성·표시하는 지원 기능이다.

편집 해설 근거: GNU GCC Manual, Options Controlling the Kind of Output (2026-10-05 확인) — §3.2 첫 단락 및 -S 옵션

6. 설계 검토 회의에서 다음 항목을 판단한다. 다음에서 설명하는 응집도의 유형은 어떤 용어인가? 모듈 안의 구성 요소들이 같은 입력 자료를 사용하거나 같은 출력 자료를 만들어 내는 형태이다. 자료를 매개로 묶여 있을 뿐, 각 기능의 실행 순서나 실행 시점은 서로 무관하다.

  1. 시간적 응집도
  2. 교환적 응집도
  3. 논리적 응집도
  4. 절차적 응집도
정답과 해설 보기

정답: 2

정답은 ② 교환적 응집도이다. 교환적 또는 통신적 응집도는 여러 기능이 같은 자료를 읽거나 갱신한다는 이유로 한 모듈에 모인 경우다. 예를 들어 동일 고객 자료로 주소를 출력하고 별도로 고객 등급을 계산하는 기능을 묶으면 자료의 공통성이 중심이 된다.

같은 시점에 실행된다는 이유로 묶으면 시간적 응집도이고, 정해진 실행 순서가 중심이면 절차적 응집도이다. 앞 기능의 출력이 바로 다음 기능의 입력이 되는 순차적 응집도와도 구별한다. 문제에서는 실행 시점이나 순서가 아니라 같은 입력·출력 자료라는 단서를 준다.

선지별 해설

  • ① 오답. 시작·종료 같은 같은 실행 시점에 수행하는 기능을 묶는 경우다.
  • ② 정답. 공통 자료를 사용하는 기능의 관련성이 기준이다.
  • ③ 오답. 입력 처리 등 논리적으로 비슷한 종류의 기능을 묶는 경우다.
  • ④ 오답. 공통 자료보다 정해진 절차·순서가 기준이다.

편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — 슬라이드 20 Communicational Cohesion; 21~23 Sequential·Procedural·Temporal Cohesion

7. 설계 검토 회의에서 다음 항목을 판단한다. 모듈 내부 요소 간의 관련성을 무엇이라고 하는가?

  1. chaining
  2. cohesion
  3. coupling
  4. method
정답과 해설 보기

정답: 2

정답은 ② cohesion, 즉 응집도이다. 응집도는 한 모듈 안의 요소들이 얼마나 같은 목적이나 책임에 관련되는지를 나타낸다. 주문 계산에 필요한 검증과 합계 계산이 모여 있으면 내부 기능의 연결 이유를 이해하기 쉽다.

coupling인 결합도는 서로 다른 모듈이 얼마나 의존하는지를 말한다. 설계에서는 보통 내부 책임을 일관되게 모아 응집도를 높이고, 다른 모듈의 세부 구현에 대한 불필요한 의존을 줄인다. method는 객체가 제공하는 동작이고 chaining은 연결 방식에 쓰이는 말이므로 이 관계의 측정 개념과 다르다.

선지별 해설

  • ① 오답. 연결이나 연쇄를 가리키는 말로 모듈 내부 관련성의 표준 명칭이 아니다.
  • ② 정답. 한 모듈 내부 요소의 관련성이다.
  • ③ 오답. 서로 다른 모듈 사이의 의존성이다.
  • ④ 오답. 객체 등에 정의한 연산·동작이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §1.4 Software Design Principles, Coupling·Cohesion

8. 설계 검토 회의에서 다음 항목을 판단한다. 애자일(Agile) 프로세스 모델에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 변화에 대한 대응보다는 자세한 계획을 중심으로 소프트웨어를 개발한다.
  2. 프로세스와 도구 중심이 아닌 개개인과의 상호 소통을 통해 의견을 수렴한다.
  3. 협상과 계약보다는 고객과의 협력을 중시한다.
  4. 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 애자일 선언은 계획을 따르는 것보다 변화에 대응하는 것에 더 높은 가치를 둔다. 개발 중 새로 알게 된 요구나 실제 사용 결과를 반영하여 계획을 조정하는 방향이므로, 자세한 기존 계획을 변화 대응보다 우선한다는 설명은 가치의 우선순위를 뒤집었다.

다른 가치도 개인과 상호작용, 작동하는 소프트웨어, 고객 협력을 각각 더 중시한다. 그렇다고 계획·도구·계약·문서가 모두 불필요하다는 뜻은 아니다. 선언은 양쪽에 가치가 있음을 인정하면서 실제 결과와 협력을 판단의 중심에 놓는다.

선지별 해설

  • ① 정답. 변화 대응과 계획 준수의 우선순위를 반대로 설명했다.
  • ② 오답. 개인과 상호작용을 중시하는 가치에 부합한다.
  • ③ 오답. 계약 협상보다 고객 협력을 중시한다.
  • ④ 오답. 포괄적인 문서보다 작동하는 소프트웨어를 중시한다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — 네 가지 가치 및 마지막 문장

9. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 객체에게 어떤 행위를 하도록 지시하는 방법은 어떤 용어인가?

  1. Method
  2. Message
  3. Instance
  4. Object
정답과 해설 보기

정답: 2

정답은 ② Message이다. 객체에게 어떤 작업을 요청하는 것을 메시지 전달로 이해할 수 있다. 객체는 요청받은 동작을 자신이 제공하는 메서드를 통해 수행한다. 예를 들어 계좌 객체에게 출금을 요청하는 것이 메시지이고, 출금 금액과 잔액을 확인하는 구현은 메서드의 내용이다.

Message는 요청·상호작용에, Method는 그 요청에 대응하는 동작의 구현에 초점을 둔다. Instance는 클래스에서 만들어진 개별 사례이고 Object는 상태와 행동을 가진 객체다. 언어마다 실제 호출 표현과 전달 방식은 다르므로 메시지가 반드시 네트워크 패킷이라는 뜻은 아니다.

선지별 해설

  • ① 오답. 메서드는 객체가 제공하는 연산의 구현 측면을 말한다.
  • ② 정답. 객체에게 행동을 요청하는 상호작용이다.
  • ③ 오답. 클래스의 개별 인스턴스를 가리킨다.
  • ④ 오답. 메시지를 보내거나 받는 대상 객체다.

편집 해설 근거: Oracle Java Tutorials (JDK 8), What Is an Object? — What Is an Object?, methods 및 code reuse·message-passing 설명; OMG UML 2.5.1 (2017) — §17.4 Messages; OMG UML 2.5.1 (2017) — §17.4 Messages, §17.4.3.1 Messages

10. 설계 검토 회의에서 다음 항목을 판단한다. 다음에서 설명하는 디자인 패턴의 유형은? 객체의 자료 구조와 그 구조에 가해지는 처리 기능을 분리하여 별도의 클래스로 정의한다. 처리 기능을 담은 객체를 구조의 각 원소에 전달하는 방식이라, 기존 클래스를 수정하지 않고 새로운 연산을 추가할 수 있다.

  1. Command
  2. Strategy
  3. Visitor
  4. State
정답과 해설 보기

정답: 3

정답은 ③ Visitor이다. Visitor는 구조를 이루는 여러 종류의 요소에 수행할 연산을 별도 방문자 객체로 분리한다. 예를 들어 문서의 제목·본문·표 요소를 방문하면서 출력 형식이나 통계를 처리하는 연산을 방문자에 둘 수 있다.

요소 구조가 안정적이면 새 연산을 추가할 때 기존 요소마다 처리 코드를 계속 덧붙이는 부담을 줄인다. 반대로 새로운 요소 종류가 자주 추가되면 방문자도 함께 고쳐야 할 수 있다. Command는 요청을 객체로 묶고, Strategy는 알고리즘을 교체하며, State는 상태에 따른 동작 변경을 다룬다.

선지별 해설

  • ① 오답. 요청 자체를 객체로 캡슐화한다.
  • ② 오답. 같은 목적을 수행하는 알고리즘을 교체한다.
  • ③ 정답. 객체 구조와 그 요소들에 적용할 연산을 분리한다.
  • ④ 오답. 내부 상태에 따라 동작을 달리하는 책임을 분리한다.

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

11. 설계 검토 회의에서 다음 항목을 판단한다. 간접 연계 방식의 특징으로 틀린 설명을 고르면?

  1. 구성이 단순하며 중간 시스템 장애의 영향을 받지 않는다.
  2. 서로 다른 시스템 사이에 연계 솔루션이나 중계 서버를 둔다.
  3. 직접 연계보다 연계 절차가 복잡할 수 있다.
  4. 중간 처리로 인해 성능 저하가 발생할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 간접 연계에서는 두 시스템 사이에 중계 서버나 연계 솔루션이 요청을 전달한다. 송신 시스템이 수신 시스템의 위치·형식·통신 세부를 모두 직접 처리하는 부담을 줄일 수 있지만, 중간 구성요소의 설정과 운영이 추가된다.

중계 서버가 멈추거나 처리 속도가 느리면 전체 연계에도 영향을 줄 수 있으므로 장애 대응과 용량 설계가 필요하다. 따라서 구성이 항상 단순하고 중간 시스템 장애와 무관하다는 주장은 성립하지 않는다. 지연이나 복잡성은 생길 수 있는 비용이지 모든 구현에서 반드시 심각하게 발생한다는 뜻은 아니다.

선지별 해설

  • ① 정답. 중간 구성요소가 있으므로 그 장애의 영향을 받을 수 있다.
  • ② 오답. 중계 계층을 두는 것이 간접 연계의 핵심이다.
  • ③ 오답. 중계·변환·라우팅 등 추가 단계로 절차가 복잡해질 수 있다.
  • ④ 오답. 중간 처리 비용으로 지연이나 성능 손실이 생길 수 있다.

편집 해설 근거: Oracle Tuxedo 22, ORB Software — Oracle Tuxedo ORB Software, intermediary 설명; Microsoft Azure Architecture Center, Pipes and Filters pattern (2026-10-05 확인) — Issues and considerations, Complexity·Reliability·Error handling

12. 설계 검토 회의에서 다음 항목을 판단한다. 애자일 기법 중 스크럼(Scrum)과 관련된 용어에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 스크럼 마스터(Scrum Master)는 스크럼 프로세스를 따르고, 팀이 스크럼을 효과적으로 활용할 수 있도록 보장하는 역할 등을 맡는다.
  2. 제품 백로그(Product Backlog)는 스크럼 팀이 해결해야 하는 목록으로 소프트웨어 요구사항, 아키텍처 정의 등이 포함될 수 있다.
  3. 스프린트(Sprint)는 하나의 완성된 최종 결과물을 만들기 위한 주기로 3달 이상의 장기간으로 결정된다.
  4. 속도(Velocity)는 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정치로 볼 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. Scrum Guide 2020에서 스프린트는 한 달 이하의 고정된 길이로 운영한다. 짧은 주기 안에 목표를 세우고 가치 있는 증분을 만들며 결과를 점검하고 적응하는 기회이므로, 3개월 이상의 장기간이라는 설명은 맞지 않는다.

스크럼 마스터는 스크럼의 정착과 팀 효과성을 돕고, 제품 백로그는 제품 개선에 필요한 작업을 순서대로 관리한다. Velocity는 팀이 과거 완료량을 참고하여 다음 작업량을 예상할 때 쓰는 관행이지만 스크럼 가이드의 필수 산출물이나 팀 간 생산성 비교 기준은 아니다.

선지별 해설

  • ① 오답. 스크럼의 이해·실천과 팀 효과성을 돕는 역할 설명이다.
  • ② 오답. 제품 개선에 필요한 작업을 순서대로 담는 목록이다.
  • ③ 정답. 스프린트 길이는 한 달 이하이며 3개월 이상이 아니다.
  • ④ 오답. 팀의 완료량을 이용하는 계획 관행으로 이해할 수 있으나 공식 필수 지표는 아니다.

편집 해설 근거: Schwaber·Sutherland, The Scrum Guide (2020) — Scrum Master; The Sprint; Product Backlog

13. 설계 검토 회의에서 다음 항목을 판단한다. 현행 시스템 파악 절차의 조사 항목으로 보기 어려운 것은?

  1. 기능 현황
  2. 인터페이스 현황
  3. 신규 시스템 사용자 교육 일정
  4. 시스템 구성 현황
정답과 해설 보기

정답: 3

정답은 ③ 신규 시스템 사용자 교육 일정이다. 현행 시스템 파악은 지금 어떤 기능을 제공하는지, 외부 시스템과 어떤 정보를 주고받는지, 어떤 구성과 제약 아래 운영되는지 조사하는 일이다. 이 내용을 알아야 바꿀 범위와 유지할 연결 관계를 판단할 수 있다.

신규 시스템의 교육 일정은 앞으로 도입할 시스템을 사용하도록 준비하는 계획이다. 중요하지 않아서 제외되는 것이 아니라 현재 상태 조사와 미래 전환 계획의 범주가 다르기 때문이다. 기존 운영자의 업무와 어려움을 조사하는 것은 현행 파악과 요구 도출에 포함될 수 있다.

선지별 해설

  • ① 오답. 현재 제공하는 업무 기능은 조사 대상이다.
  • ② 오답. 다른 시스템과의 연결·입출력 관계는 조사 대상이다.
  • ③ 정답. 새 시스템을 위한 향후 도입·교육 계획에 해당한다.
  • ④ 오답. 현재 하드웨어·소프트웨어 등의 구성은 조사 대상이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §2.1 Requirements Sources; §1.2.1 Software Product Requirements and Software Project Requirements

14. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 검증에서 소프트웨어가 사용자의 실제 요구를 충족하는지를 나타내는 품질 특성은?

  1. 이식성(Portability)
  2. 상호운용성(Interoperability)
  3. 유효성(Validity)
  4. 유연성(Flexibility)
정답과 해설 보기

정답: 3

정답은 ③ 유효성이다. 요구사항 검증에서는 문장과 형식이 잘 갖춰졌는지뿐 아니라 그 요구가 이해관계자의 실제 필요를 정확히 나타내는지도 확인한다. 사용자가 필요한 일을 해결하지 못하는 기능은 명세대로 구현됐어도 목적에 맞지 않을 수 있다.

예를 들어 현장에서는 오프라인 기록이 필요한데 온라인 입력만 요구했다면 구현 이전에 요구의 타당성을 다시 봐야 한다. 이식성은 다른 환경으로 옮기는 용이성, 상호운용성은 다른 시스템과 협력하는 능력, 유연성은 변화에 대응하는 성질이다. 여기서 유효성은 요구의 타당성을 묻는 용어다.

선지별 해설

  • ① 오답. 다른 플랫폼이나 환경으로 옮기는 성질이다.
  • ② 오답. 다른 시스템과 정보를 교환하고 활용하는 성질이다.
  • ③ 정답. 명세한 요구가 실제 사용자 필요를 대표하는지에 관한 판단이다.
  • ④ 오답. 변경이나 다양한 조건에 적응하는 성질이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §5 Requirements Validation, p.1-15

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

  1. 클래스 다이어그램
  2. 활동 다이어그램
  3. 상태 다이어그램
  4. 시퀀스 다이어그램
정답과 해설 보기

정답: 1

정답은 ① 클래스 다이어그램이다. 클래스 다이어그램은 클래스의 속성·연산과 클래스 사이 관계 등 정적인 구조를 나타내므로 구조 다이어그램에 속한다. 객체가 시간에 따라 어떤 활동을 하는지보다 시스템을 어떤 요소로 구성하는지 보여 준다.

활동 다이어그램은 작업과 제어·데이터 흐름, 상태 머신 다이어그램은 사건에 따른 상태 변화, 시퀀스 다이어그램은 참여자 사이 메시지 순서를 표현한다. 시퀀스는 상호작용 다이어그램이면서 UML의 큰 분류에서는 행위 다이어그램에 포함된다. 이름에 구조가 직접 들어가는지로 분류하지 않는다.

선지별 해설

  • ① 정답. 클래스와 관계를 나타내는 구조 다이어그램이다.
  • ② 오답. 활동의 실행 흐름을 표현하는 행위 다이어그램이다.
  • ③ 오답. 상태 변화와 전이를 표현하는 행위 다이어그램이다.
  • ④ 오답. 메시지 상호작용을 표현하며 행위 다이어그램에 포함된다.

편집 해설 근거: OMG UML 2.5.1 (2017) — Annex A, UML Diagram taxonomy; §11 Classes; §14 StateMachines; §15 Activities; §17 Interactions

16. 설계 검토 회의에서 다음 항목을 판단한다. 객체지향 설계에서 정보 은닉의 효과로 틀린 설명을 고르면?

  1. 변경의 파급 효과를 줄인다.
  2. 모듈의 독립성을 높인다.
  3. 유지보수성을 높인다.
  4. 모듈 간 결합도를 높인다.
정답과 해설 보기

정답: 4

정답은 ④이다. 정보 은닉은 다른 모듈이 알 필요가 없는 내부 표현과 설계 결정을 경계 안에 감추고 필요한 인터페이스로만 사용하도록 하는 원칙이다. 저장 방식을 바꾸더라도 공개한 계약을 유지하면 호출하는 쪽의 변경을 줄일 수 있다.

이렇게 하면 내부 구현에 대한 불필요한 의존이 줄어 모듈의 독립성과 유지보수성이 좋아진다. 결합도를 높이는 것이 목표가 아니다. 다만 필요한 협력까지 완전히 없애거나 모든 정보를 무조건 숨기라는 뜻도 아니다. 사용에 필요한 입력·출력과 오류 조건은 명확히 알려야 한다.

선지별 해설

  • ① 오답. 내부 변경이 다른 부분으로 퍼지는 범위를 줄이는 효과다.
  • ② 오답. 내부 표현 의존을 낮춰 모듈의 독립성을 돕는다.
  • ③ 오답. 변경 영향을 줄여 유지보수를 쉽게 한다.
  • ④ 정답. 불필요한 결합도를 높이는 것은 정보 은닉의 목적과 반대다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §1.4 Software Design Principles, Encapsulation and Information Hiding 및 Coupling

17. 설계 검토 회의에서 다음 항목을 판단한다. GoF 디자인 패턴 중 행위 패턴이 해당하지 않는 것을 고르면?

  1. Observer
  2. Command
  3. Proxy
  4. Strategy
정답과 해설 보기

정답: 3

정답은 ③ Proxy이다. Proxy는 실제 대상 객체에 접근하는 일을 대신 맡는 대리 객체를 두는 구조 패턴이다. 접근 검사, 지연 초기화, 원격 대상 연결처럼 대상 사용 방식에 추가 제어를 둘 때 활용할 수 있다.

Observer는 상태 변화를 구독자에게 알리는 협력, Command는 요청을 객체로 표현하는 방법, Strategy는 알고리즘을 서로 교체하는 방법을 다룬다. 이 세 가지는 행위 패턴이다. 패턴 이름을 암기하는 데 그치지 않고 구조를 연결하는 문제인지, 객체의 책임·행동을 나누는 문제인지 구별하면 된다.

선지별 해설

  • ① 오답. 관찰자에게 변경을 통지하는 행위 패턴이다.
  • ② 오답. 요청을 객체로 캡슐화하는 행위 패턴이다.
  • ③ 정답. 대상 접근을 대리하는 구조 패턴이다.
  • ④ 오답. 교체 가능한 알고리즘을 캡슐화하는 행위 패턴이다.

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

18. 별도의 자원·날짜 제약이 없는 기본 CPM(Critical Path Method) 설명으로 틀린 것은?

[학습용 개정문항]

  1. 작업의 선후관계와 정해진 기간을 네트워크로 표현해 계산한다.
  2. 각 작업에 낙관·최빈·비관의 세 시간 추정치를 반드시 사용한다.
  3. 작업 기간을 주어진 고정값으로 보는 확정적 모델이다.
  4. 가장 긴 경로가 프로젝트를 완료하는 데 필요한 최소 기간을 결정한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 기본적인 CPM 계산은 작업마다 정해진 기간과 선후관계를 두고, 프로젝트 완료까지 필요한 가장 긴 경로를 찾는다. 서로 병행하는 경로가 있으면 짧은 경로가 끝나도 긴 경로의 작업이 남아 있으므로 완료 시점은 그 경로에 의해 결정된다.

낙관·최빈·비관의 세 추정치로 기간의 불확실성을 다루는 것은 전통적인 PERT와 연관된 설명이다. CPM에서도 별도의 위험 분석을 결합할 수 있지만 기본 계산의 필수 정의는 아니다. 자원이나 날짜 제약, 달력 등이 추가된 실제 일정에서는 단순한 경로 합만으로 완료일을 단정하면 안 된다.

선지별 해설

  • ① 오답. 주어진 선후관계와 확정 기간으로 기본 네트워크를 계산한다는 설명은 맞다.
  • ② 정답. 세 시간 추정치를 필수로 삼는다는 설명은 기본 CPM과 다르다.
  • ③ 오답. 기본 CPM은 각 작업에 정해진 기간을 사용한다.
  • ④ 오답. 제시한 단순 조건에서는 최장 경로가 완료 기간을 결정한다.

편집 해설 근거: U.S. GAO, Schedule Assessment Guide GAO-16-89G (2015) — Best Practice 6, p.77 Critical Path; Best Practice 8, pp.105~107 Three-Point Duration Estimates

19. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 애자일 기법이 해당하지 않는 것을 고르면?

  1. spice
  2. xp
  3. crystal
  4. scrum
정답과 해설 보기

정답: 1

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

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

선지별 해설

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

편집 해설 근거: 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 발표 자료 소개

20. 설계 검토 회의에서 다음 항목을 판단한다. 다음에서 설명하는 사용자 인터페이스의 설계 원칙은? 사용자의 목적이 정확하고 완전하게 달성되도록 인터페이스를 구성해야 한다. 목표한 결과를 빠짐없이 얻게 하여 업무의 수행 성과를 높이는 것을 지향한다.

  1. 직관성(Intuitiveness)
  2. 유효성(Effectiveness)
  3. 학습성(Learnability)
  4. 유연성(Flexibility)
정답과 해설 보기

정답: 2

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

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

선지별 해설

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

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

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

21. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업을 가리키는 용어를 고르면?

  1. Migration
  2. Restructuring
  3. Reverse Engineering
  4. Analysis
정답과 해설 보기

정답: 1

정답은 ① Migration이다. 마이그레이션은 기존 응용 프로그램이나 자료를 다른 운영 환경으로 옮겨 사용할 수 있도록 하는 작업이다. 예를 들어 노후 서버의 응용 프로그램을 새 운영체제와 서버 환경으로 옮기면서 필요한 호환성 조정을 하는 경우가 해당한다.

Restructuring은 기능을 유지하면서 코드·자료의 내부 구조를 정돈하는 데, Reverse Engineering은 구현에서 상위 설계나 구조를 알아내는 데 초점이 있다. Analysis는 대상을 조사·분석하는 포괄적인 활동이다. 이 활동들이 함께 수행될 수 있지만 문제의 핵심인 새 환경으로의 이동은 Migration이다.

선지별 해설

  • ① 정답. 기존 시스템을 다른 기술·하드웨어 환경으로 옮기는 작업이다.
  • ② 오답. 코드·자료 등의 내부 구조를 개선하는 데 초점이 있다.
  • ③ 오답. 기존 구현을 분석하여 구조나 설계 정보를 파악한다.
  • ④ 오답. 대상을 이해하는 분석 활동의 일반 명칭이다.

편집 해설 근거: AWS, What is Application Migration? (2026-10-05 확인) — What is Application Migration? 첫 정의 및 migration strategies; IEEE Computer Society, SWEBOK Guide V4.0a — Software Maintenance §4.2 Software Reengineering; §4.3 Reverse Engineering

22. 개발·시험 담당자가 다음 사례를 검토한다. 알파, 베타 테스트와 가장 밀접한 연관이 있는 테스트 단계는?

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

정답: 4

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

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

선지별 해설

  • ① 오답. 통합 테스트는 구성요소 사이 연결과 상호작용을 중심으로 검사한다.
  • ② 오답. 시스템 테스트는 완성 시스템의 요구 충족을 검사하지만 알파·베타의 대표 분류는 인수다.
  • ③ 오답. 단위 테스트는 개별 구성요소 수준이다.
  • ④ 정답. 사용자 관점의 수용 가능성을 확인하는 인수 테스트 형태다.

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

23. 개발·시험 담당자가 다음 사례를 검토한다. 비선형 자료 구조에 해당하는 항목을 고르면?

  1. 스택(Stack)
  2. 큐(Queue)
  3. 그래프(Graph)
  4. 데크(Deque)
정답과 해설 보기

정답: 3

정답은 ③ 그래프이다. 그래프는 정점과 정점 사이의 관계인 간선으로 구성된다. 한 정점이 여러 정점에 연결되거나 관계가 순환할 수 있어 원소를 단순한 일렬 순서로만 다루는 선형 구조와 구별된다. 도로망이나 시스템 사이 의존 관계가 예다.

스택·큐·데크는 원소들이 줄을 이루는 선형 자료구조이며 삽입·삭제하는 위치나 순서가 다르다. 스택은 한쪽 끝, 큐는 들어오는 끝과 나가는 끝, 데크는 양쪽 끝을 사용한다. 이들을 내부적으로 배열이나 연결 노드로 구현할 수 있다는 사실은 추상 자료구조의 선형 분류를 바꾸지 않는다.

선지별 해설

  • ① 오답. 원소를 한쪽 끝에서 넣고 빼는 선형 구조다.
  • ② 오답. 먼저 들어온 원소를 먼저 처리하는 선형 구조다.
  • ③ 정답. 정점 사이의 다양한 연결을 표현하는 비선형 구조다.
  • ④ 오답. 양쪽 끝에서 삽입·삭제할 수 있는 선형 구조다.

편집 해설 근거: NIST DADS, graph — Definition, vertices와 edges; NIST DADS, stack — Definition; NIST DADS — queue — Definition

24. 호출 스택과 인터럽트 복귀 주소 저장에 사용하는 자료구조를 검토한다. 스택의 성질로 맞는 ㉠~㉣ 조합은? ㉠ 먼저 들어온 항목이 먼저 나온다. ㉡ 양쪽 끝 모두에서 삽입·삭제한다. ㉢ 한쪽 끝 Top에서만 삽입·삭제한다. ㉣ 서브루틴 복귀 주소 관리에 이용한다.

  1. ㉠, ㉡
  2. ㉡, ㉢
  3. ㉢, ㉣
  4. ㉠, ㉣
정답과 해설 보기

정답: 3

정답은 ③ ㉢, ㉣이다. 스택은 마지막에 넣은 원소를 먼저 꺼내는 LIFO 구조이며, 삽입과 삭제를 Top이라는 같은 끝에서 수행한다. 그래서 ㉢이 맞고 먼저 들어온 원소가 먼저 나온다는 ㉠은 큐의 FIFO 설명이다.

함수 A가 B를 호출하고 B가 C를 호출하면 C가 끝난 뒤 B로, 다음 A로 돌아가야 한다. 복귀에 필요한 정보를 역순으로 꺼내는 스택이 이런 중첩 호출을 관리하는 데 적합하므로 ㉣도 맞다. ㉡은 양쪽 끝에서 삽입·삭제하는 데크의 성질이다. 모든 CPU가 모든 복귀 정보를 같은 방식으로 저장한다는 뜻은 아니다.

선지별 해설

  • ① 오답. ㉠은 큐, ㉡은 데크의 설명이다.
  • ② 오답. ㉢은 맞지만 ㉡은 스택의 기본 연산 위치와 다르다.
  • ③ 정답. 한쪽 끝의 LIFO 연산과 중첩 호출 관리가 스택에 해당한다.
  • ④ 오답. ㉣은 맞지만 ㉠은 FIFO 설명이다.

편집 해설 근거: NIST DADS, stack — Definition 및 push·top·pop의 형식적 정의

25. [학습용 변형] 입력 P, Q, R, S를 차례로 사용해 Push, Push, Pop, Push, Push, Pop, Pop, Pop을 수행한다. Pop으로 꺼내는 순서는? (처음 스택은 비어 있다.)

  1. P, Q, R, S
  2. Q, P, R, S
  3. P, Q, S, R
  4. Q, S, R, P
정답과 해설 보기

정답: 4

정답은 ④ Q, S, R, P이다. 처음 P를 넣고 Q를 넣으면 아래부터 P, Q가 놓인다. 첫 Pop은 가장 위의 Q를 꺼내므로 P만 남는다. 이어 R과 S를 차례로 넣으면 아래부터 P, R, S가 된다.

그다음 세 번의 Pop은 위에 있는 S, 그 아래 R, 마지막 P를 꺼낸다. 따라서 전체 출력 순서는 Q, S, R, P이다. 입력 순서 전체를 단순히 뒤집는 문제가 아니라 중간에 Pop이 섞여 있으므로 각 연산 직후 스택 상태를 적어야 한다. 마지막에는 모든 원소가 빠져 빈 스택으로 돌아간다.

선지별 해설

  • ① 오답. 입력 순서대로 나오는 것은 이 스택 연산 결과가 아니다.
  • ② 오답. 두 번째 Pop 시점에 P 위에 S와 R이 남아 있다.
  • ③ 오답. 첫 Pop은 P보다 나중에 들어온 Q를 꺼낸다.
  • ④ 정답. 중간 Pop과 이후 두 Push를 반영한 출력 순서다.

편집 해설 근거: NIST DADS, stack — Definition 및 popoff(push(v,S))=S

26. 소수의 모듈에 많은 결함이 집중되는 경향을 흔히 80 대 20으로 표현하는 경험적 원리는?

[학습용 개정문항]

  1. Pareto의 법칙
  2. Jackson의 법칙
  3. Brooks의 법칙
  4. Boehm의 법칙
정답과 해설 보기

정답: 1

정답은 ① Pareto의 법칙이다. 시험 분야에서는 소수의 모듈에 많은 결함이 집중되는 경향을 파레토 원리, 흔히 80 대 20이라는 비율로 설명한다. 따라서 과거 결함이나 복잡도가 높은 부분을 위험 분석에 반영하여 시험 노력을 배분할 수 있다.

80%와 20%가 모든 제품에서 정확히 성립하는 수학적 보장이라는 뜻은 아니다. 실제 결함 분포를 측정해야 하고, 나머지 모듈의 테스트를 생략해도 된다는 결론도 낼 수 없다. Brooks의 법칙은 지연 프로젝트에 인력을 뒤늦게 투입하는 문제이므로 이 결함 집중 현상과 다르다.

선지별 해설

  • ① 정답. 소수 원인·모듈에 다수 결과·결함이 집중되는 경험적 원리다.
  • ② 오답. 여기서 묻는 80 대 20의 결함 집중 원리 명칭이 아니다.
  • ③ 오답. 늦어진 프로젝트에 인력을 추가할 때의 지연 문제다.
  • ④ 오답. 80 대 20의 결함 집중 원리를 가리키는 명칭이 아니다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §1.3 Seven Testing Principles, Defects cluster together, p.16; Joseph M. Juran, The Non-Pareto Principle; Mea Culpa (1974), Juran Institute 보존 자료 — p.1 Setting the record straight 및 Key Takeaways

27. 개발·시험 담당자가 다음 사례를 검토한다. 블랙박스 테스트 기법으로 관련성이 낮은 것은?

  1. 원인 결과 그래프
  2. 기초 경로 검사
  3. 동치 클래스 분해
  4. 경곗값 분석
정답과 해설 보기

정답: 2

정답은 ② 기초 경로 검사이다. 기초 경로 검사는 프로그램의 제어 흐름을 분석하여 독립적인 실행 경로를 시험하는 구조 기반, 즉 화이트박스 기법이다. 내부 분기와 흐름을 알아야 경로를 정할 수 있다는 점이 구별 기준이다.

블랙박스 기법은 구현의 내부 구조보다 명세된 입력·출력과 동작에 근거해 테스트를 설계한다. 동치 분할은 비슷하게 처리할 입력 집합을 나누고, 경곗값 분석은 구간의 경계를 살핀다. 원인 결과 그래프는 입력 조건과 출력 결과의 논리 관계를 모델링하므로 이 비교에서는 명세 기반 기법이다.

선지별 해설

  • ① 오답. 입력 조건과 결과의 관계에서 테스트를 도출하는 블랙박스 기법이다.
  • ② 정답. 내부 제어 흐름과 독립 경로를 사용하므로 화이트박스 기법이다.
  • ③ 오답. 명세에 따라 입력을 같은 처리 집합으로 나눈다.
  • ④ 오답. 명세한 입력·출력 범위의 경계를 시험한다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §4.1 Categories of Test Techniques; §4.2 Black-box Test Techniques; §4.3 White-box Test Techniques; IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §3 Testing Techniques, control-flow-based 및 specification-based techniques

28. 다음 알고리즘의 일반적인 비교 기반 구현 중, 입력 원소가 n개일 때 최악의 시간복잡도가 Θ(n log₂ n)인 것은?

[학습용 개정문항]

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

정답: 4

정답은 ④ 합병 정렬이다. 일반적인 합병 정렬은 데이터를 둘로 나누어 각각 정렬한 뒤 두 정렬 구간을 합친다. 분할 깊이는 log n 수준이고 각 깊이에서 전체 n개 원소를 합치는 작업을 하므로 최악의 시간 증가율은 n log n에 비례한다.

일반적인 선택·삽입·버블 정렬은 최악의 경우 비교나 이동이 n²에 비례한다. 이미 정렬된 입력에서는 삽입 정렬이나 조기 종료를 둔 버블 정렬이 빨라질 수 있으므로, 기존 질문의 정렬된 입력이라는 조건만으로 비교하면 혼동이 생긴다. 여기서는 최악의 경우와 정확한 점근 차수를 뜻하는 Theta를 명시했다.

선지별 해설

  • ① 오답. 일반적인 선택 정렬의 최악 시간은 Θ(n²)이다.
  • ② 오답. 삽입 정렬은 역순 같은 최악 입력에서 Θ(n²)이다.
  • ③ 오답. 버블 정렬도 최악 입력에서 Θ(n²)이다.
  • ④ 정답. 표준 합병 정렬은 최악에도 Θ(n log n)이다.

편집 해설 근거: NIST DADS, merge sort — Definition 및 Run time is Θ(n log n); NIST DADS — selection sort — Definition 및 quadratic time 설명; NIST DADS — bubble sort — Definition 및 complexity 설명

29. 배열 8, 3, 7, 2, 6을 왼쪽부터 인접 비교하는 버블 정렬로 오름차순 정렬한다. 두 번째 전체 패스가 끝난 배열은?

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

정답: 2

정답은 ② 3, 2, 6, 7, 8이다. 첫 번째 왼쪽→오른쪽 패스에서는 8과 3, 8과 7, 8과 2, 8과 6을 차례로 바꿔 3, 7, 2, 6, 8이 된다. 가장 큰 8이 오른쪽 끝에 자리 잡는다.

두 번째 패스에서 3과 7은 그대로 두고, 7과 2를 바꾸면 3, 2, 7, 6, 8이다. 이어 7과 6을 바꾸면 3, 2, 6, 7, 8이 된다. 이번에는 7까지 제자리에 놓이지만 앞의 3과 2는 아직 정렬되지 않았다. 한 패스를 인접한 원소 한 번 비교와 혼동하지 않는다.

선지별 해설

  • ① 오답. 첫 번째 전체 패스가 끝난 상태다.
  • ② 정답. 두 번째 전체 패스 후 7과 8이 오른쪽에 정렬된 상태다.
  • ③ 오답. 큰 원소 8보다 작은 7이 오른쪽에 있어 해당 패스 결과가 아니다.
  • ④ 오답. 완전히 정렬된 상태이며 두 번째 패스 직후에는 앞의 3, 2가 남는다.

편집 해설 근거: NIST DADS — bubble sort — Definition, adjacent comparisons와 반복 패스

30. 다음 중 자동화된 소프트웨어 테스트 도구가 아니라 데이터베이스 개발 제품인 것은?

  1. Watir
  2. xUnit
  3. Microsoft Visual FoxPro
  4. STAF
정답과 해설 보기

정답: 3

정답은 ③ Microsoft Visual FoxPro이다. Visual FoxPro는 데이터베이스와 응용 프로그램 개발을 위한 제품이며, 이름에 개발 도구라는 공통점이 있다고 테스트 자동화 도구로 분류하지 않는다. 질문은 각 항목의 대표적인 목적을 비교한다.

Watir는 Ruby로 브라우저 조작과 검증을 자동화하는 라이브러리다. xUnit은 단위 테스트 프레임워크 계열을 가리키며 xUnit.net 같은 구현이 있다. STAF는 여러 환경에서 프로세스 실행·로깅 등의 서비스를 조합하여 시험 자동화 기반을 제공한다. 역사적 제품의 성격을 묻는 것이며 신규 도입 권장 목록은 아니다.

선지별 해설

  • ① 오답. 브라우저를 조작하여 테스트를 자동화하는 라이브러리다.
  • ② 오답. 단위 테스트 프레임워크 계열의 명칭이다.
  • ③ 정답. 데이터베이스 응용 프로그램 개발 제품이다.
  • ④ 오답. 테스트 환경과 실행을 자동화하는 프레임워크다.

편집 해설 근거: Microsoft, Visual FoxPro 5.0 출시 설명 (1996-08-28) — 제품 개요의 database application development 설명; Watir Project, 제품 소개 (2026-10-05 확인) — Watir is…; xUnit.net, About xUnit.net (2026-10-05 확인) — About xUnit.net; STAF V3 User Guide, Version 3.4.26 (2016) — §1.0 Overview

31. 개발·시험 담당자가 다음 사례를 검토한다. 복잡한 문제를 해결 가능한 작은 문제로 나누어 해결하는 접근법은?

  1. Top-down Testing
  2. Divide and Conquer
  3. Information Hiding
  4. Data Abstraction
정답과 해설 보기

정답: 2

정답은 ② Divide and Conquer, 즉 분할 정복이다. 큰 문제를 더 작은 하위 문제로 나누고, 각각을 해결한 뒤 필요에 따라 그 결과를 합쳐 원래 문제의 답을 얻는 접근이다. 합병 정렬에서 반씩 나눈 구간을 정렬하고 합치는 과정이 대표적 예다.

Top-down Testing은 상위 구성요소부터 아래로 통합하여 시험하는 전략이다. 정보 은닉은 내부 설계 결정을 감추는 원칙이고 자료 추상화는 자료 표현보다 허용 연산에 집중하는 방법이다. 모두 복잡성 관리에 도움을 줄 수 있지만 ‘작은 문제로 나누어 해결’이라는 단서에 직접 대응하는 것은 분할 정복이다.

선지별 해설

  • ① 오답. 상위 모듈부터 통합·시험하는 순서에 관한 전략이다.
  • ② 정답. 하위 문제로 분할하고 해결·결합하는 접근이다.
  • ③ 오답. 다른 모듈에 불필요한 내부 정보를 감추는 원칙이다.
  • ④ 오답. 자료의 구체적인 표현과 사용 연산을 분리하는 추상화다.

편집 해설 근거: NIST DADS, divide and conquer — Definition

32. 개발·시험 담당자가 다음 사례를 검토한다. 입력값, 실행 조건, 기대 결과 등을 명세한 테스트 구성 요소는?

  1. Test Driver
  2. Test Stub
  3. Test Suite
  4. Test Case
정답과 해설 보기

정답: 4

정답은 ④ Test Case이다. 테스트 케이스에는 어떤 상태에서 무엇을 입력·실행하고 어떤 결과를 기대하는지를 구체적으로 적는다. 예를 들어 잔액 10,000원인 계좌에서 3,000원을 출금할 때 성공 응답과 잔액 7,000원을 기대한다는 명세가 한 사례다.

기대 결과가 있어야 실제 실행 결과와 비교하여 통과 여부를 판단할 수 있다. Test Suite는 여러 테스트 케이스를 묶은 집합이다. Driver는 시험 대상을 호출하는 쪽을 대신하고 Stub은 시험 대상이 호출하는 하위 구성요소를 대신한다. 도구나 대체 모듈과 시험 조건의 명세를 혼동하지 않는다.

선지별 해설

  • ① 오답. 대상 구성요소를 호출하는 시험용 대체 프로그램이다.
  • ② 오답. 대상이 호출하는 구성요소를 대신하는 시험용 구현이다.
  • ③ 오답. 관련 테스트 케이스들을 묶은 집합이다.
  • ④ 정답. 입력·실행 조건과 기대 결과 등을 명세한 시험 사례다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §1.4.3 Test Design; §1.4.4 Test Work Products; IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §8.2 Categories of Tools, Test harnesses

33. 루트가 있는 트리에서 노드의 차수는 자식 수, 트리의 차수는 노드 차수의 최댓값으로 정의한다. 트리의 차수를 올바르게 설명한 것은?

[학습용 개정문항]

  1. 각 노드가 가진 자식 수 중 최댓값
  2. 트리에 포함된 모든 간선의 수
  3. 리프 노드의 전체 개수
  4. 루트에서 가장 먼 리프까지의 간선 수
정답과 해설 보기

정답: 1

정답은 ①이다. 이 문항에서 루트 있는 트리의 노드 차수는 자식 수이고, 트리 차수는 그 자식 수의 최댓값이다. 한 노드의 자식이 3개이고 나머지 노드가 각각 2개 이하라면 트리 차수는 3이다. 자식이 없는 리프의 노드 차수는 0이다.

전체 간선 수, 리프 개수, 루트에서 가장 먼 리프까지의 간선 수는 각각 다른 양이다. 마지막 값은 간선 기준 높이에 해당한다. 일반 무방향 그래프에서 정점 차수는 부모 쪽 간선도 세므로, 여기의 자식 수를 세는 트리 용례와 혼동하지 않도록 정의를 명시했다.

선지별 해설

  • ① 정답. 각 노드의 자식 수 가운데 가장 큰 값이다.
  • ② 오답. 전체 연결 간선 수를 나타내는 다른 양이다.
  • ③ 오답. 자식이 없는 노드의 개수다.
  • ④ 오답. 간선 수로 정의한 트리의 높이에 해당한다.

편집 해설 근거: NIST DADS, degree — Definition (1)과 (3)

34. 오름차순으로 정렬된 배열에서 가운데 원소와 비교하며 탐색 범위를 절반씩 줄이는 방법은?

  1. 보간 탐색
  2. 이진 탐색
  3. 선형 탐색
  4. 깊이 우선 탐색
정답과 해설 보기

정답: 2

정답은 ② 이진 탐색이다. 오름차순 배열에서 가운데 값과 찾는 값을 비교하면, 찾는 값이 작을 때 가운데보다 오른쪽 절반을 제외할 수 있다. 찾는 값이 크면 왼쪽 절반을 제외한다. 이 과정을 반복하여 탐색 범위를 절반씩 줄인다.

정렬되어 있다는 조건이 핵심이며, 임의 순서의 배열에 그대로 적용하면 올바른 원소를 놓칠 수 있다. 배열에서 인덱스로 가운데에 접근할 수 있을 때 최악의 비교 횟수는 log n 수준이다. 보간 탐색은 값의 분포로 위치를 추정하고 선형 탐색은 차례로 검사하며, 깊이 우선 탐색은 그래프·트리의 경로 탐색 전략이다.

선지별 해설

  • ① 오답. 값의 분포를 이용하여 예상 위치를 계산하는 방법이다.
  • ② 정답. 정렬된 구간의 가운데와 비교하며 절반씩 줄인다.
  • ③ 오답. 원소를 순서대로 하나씩 확인한다.
  • ④ 오답. 그래프·트리에서 한 경로를 깊게 따라가는 방법이다.

편집 해설 근거: NIST DADS, binary search — Definition 및 Note

35. 개발·시험 담당자가 다음 사례를 검토한다. 신택스 테스트(Syntax Test)에 대한 기술로 타당한 설명을 고르면?

[학습용 개정문항]

  1. 모듈 사이의 호출 관계만 검사한다.
  2. 입력의 문법 규칙을 모델로 하여 유효·무효 입력의 테스트 케이스를 설계한다.
  3. 모든 독립 경로를 한 번 이상 실행한다.
  4. 경곗값만 선택하여 결함을 찾는다.
정답과 해설 보기

정답: 2

정답은 ②이다. 구문 테스트는 시험 대상이 받는 입력의 문법·구조를 모델로 삼아 테스트 케이스를 만드는 명세 기반 기법이다. 허용된 형식의 입력뿐 아니라 규칙을 일부러 어긴 입력도 만들어 적절하게 처리하거나 거부하는지 확인한다.

예를 들어 입력이 ‘영문자 뒤에 숫자 두 자리’라면 A12 같은 형식과 숫자가 빠지거나 순서가 틀린 형식을 나눠 시험할 수 있다. 소스 코드를 정적 문법 검사기로 읽는 일만을 뜻하지 않는다. 기존 보기의 ‘데이터나 코드의 문법 검증’이라는 넓은 표현을 입력 문법으로 케이스를 설계하는 의미로 명확히 했다.

선지별 해설

  • ① 오답. 구성요소 사이 호출 관계에 대한 시험과 다르다.
  • ② 정답. 입력 문법 모델에서 유효·무효 입력 사례를 만든다.
  • ③ 오답. 독립 실행 경로는 내부 제어 흐름 기반 기법이다.
  • ④ 오답. 구간 경계값에만 집중하는 것은 경곗값 분석이다.

편집 해설 근거: ISO/IEC/IEEE 29119-4:2015, Test techniques (강의용 보존 사본) — §5.2.4.1 Derive Test Conditions; §5.2.4.2 Derive Test Coverage Items, p.11

36. 개발·시험 담당자가 다음 사례를 검토한다. 여러 개발자가 읽고 수정하기 쉽도록 명확하게 작성한 코드를 무엇이라 하는가?

  1. Spaghetti Code
  2. Clean Code
  3. Dead Code
  4. Object Code
정답과 해설 보기

정답: 2

정답은 ② Clean Code이다. 클린 코드는 다른 개발자가 의도와 동작을 이해하고 수정하기 쉽도록 명료하게 작성한 코드를 가리키는 관용적인 표현이다. 목적이 드러나는 이름, 일관된 구조, 불필요하게 복잡하지 않은 흐름 등이 이해를 돕는다.

단순히 줄 수가 짧거나 주석이 많다는 이유만으로 좋은 코드가 되는 것은 아니다. 예를 들어 한 줄에 여러 부작용을 압축하면 읽기 더 어려워질 수 있다. Spaghetti Code는 흐름이 뒤얽힌 코드, Dead Code는 실행되지 않거나 사용되지 않는 코드, Object Code는 번역된 목적 코드와 관련된 말이다.

선지별 해설

  • ① 오답. 제어 흐름이 뒤얽혀 이해·수정이 어려운 코드를 가리킨다.
  • ② 정답. 읽고 이해하며 변경하기 쉬운 코드를 지향하는 표현이다.
  • ③ 오답. 사용되거나 실행되지 않는 코드를 가리킨다.
  • ④ 오답. 컴파일·어셈블 결과의 목적 코드라는 의미다.

편집 해설 근거: Google Engineering Practices, What to look for in a code review — Complexity; Naming; Comments; Style

37. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 프로젝트가 지연될 때 말기에 인력을 추가하면 프로젝트가 더 지연된다는 법칙은?

  1. Mayer의 법칙
  2. Brooks의 법칙
  3. Boehm의 법칙
  4. Putnam의 법칙
정답과 해설 보기

정답: 2

정답은 ② Brooks의 법칙이다. 지연된 프로젝트에 사람을 뒤늦게 투입하면 새 인력이 업무와 설계를 익히는 동안 기존 인력이 교육·설명에 시간을 쓰고, 협업 조정 비용도 늘어나 일정이 더 늦어질 수 있다는 경험적 관찰이다.

개발 일을 인원수로 단순히 나누어 완료 시간을 줄일 수 있다고 가정하면 순서상 기다려야 하는 작업과 인수인계 비용을 놓친다. 이는 인력 충원이 언제나 실패한다는 수학적 정리가 아니다. 작업을 독립적으로 분리할 수 있는지, 적응에 필요한 시간과 투입 시점이 어떤지 함께 판단해야 한다.

선지별 해설

  • ① 오답. 지연 프로젝트에 대한 이 인력 투입 관찰의 명칭이 아니다.
  • ② 정답. 늦은 프로젝트의 추가 인력과 교육·조정 비용을 다룬다.
  • ③ 오답. 이 문장으로 알려진 법칙은 Brooks의 법칙이다.
  • ④ 오답. 인력·개발 기간 추정과 관련된 다른 이름이며 제시한 관찰의 명칭이 아니다.

편집 해설 근거: Frederick P. Brooks Jr., The Mythical Man-Month, Chapter 2 (Duke 강의용 발췌 사본) — Chapter 2, Regenerative Schedule Disaster, p.25 및 앞선 training·communication 논의

38. 개발·시험 담당자가 다음 사례를 검토한다. 워크스루와 인스펙션에 대한 기술로 틀린 설명을 고르면?

  1. 두 기법 모두 결함의 조기 발견에 활용할 수 있다.
  2. 워크스루와 인스펙션은 절차와 참여자 역할이 완전히 동일하다.
  3. 워크스루는 작성자가 검토 자료를 설명하며 의견을 받는 방식이다.
  4. 인스펙션은 역할과 절차가 정의된 공식 검토 방식이다.
정답과 해설 보기

정답: 2

정답은 ②이다. 워크스루는 보통 작성자가 산출물의 내용과 시나리오를 설명하며 참여자의 의견을 받는 검토다. 인스펙션은 명확한 역할, 준비, 진입·종료 기준, 결함 기록 등 정해진 절차를 갖춘 공식 검토 형태다.

둘 다 프로그램을 실행하기 전 산출물의 결함을 일찍 찾는 데 사용할 수 있지만 절차와 역할이 완전히 같지는 않다. 워크스루 역시 조직에 따라 상당히 형식적으로 운영할 수 있으므로 언제나 아무 절차가 없는 회의라는 뜻은 아니다. 검토 유형의 기본 목적과 대표적 운영 특성을 비교해야 한다.

선지별 해설

  • ① 오답. 두 방식 모두 산출물의 결함을 조기에 찾는 데 도움이 된다.
  • ② 정답. 작성자 주도 설명과 공식 역할·절차 등에서 차이가 있다.
  • ③ 오답. 작성자가 설명하며 의견을 모으는 것은 워크스루의 대표 특성이다.
  • ④ 오답. 정의된 절차와 역할은 인스펙션의 핵심 특성이다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §3.2.3 Review Types, Walkthrough·Inspection, pp.51~52

39. 결함을 등록하고 중복·재현 여부를 검토한 뒤, 해결할 개발자나 담당자에게 넘기는 단계는?

  1. 결함 수정(Correction)
  2. 결함 등록(Registration)
  3. 결함 검토(Review)
  4. 결함 할당(Assignment)
정답과 해설 보기

정답: 4

정답은 ④ 결함 할당이다. 결함이 보고되면 재현 가능한지, 중복 보고인지, 어떤 영향을 주는지 검토한 뒤 실제 해결 책임을 맡을 개발자나 팀을 지정한다. 이처럼 담당자를 배정하는 동작이 Assignment에 해당한다.

등록은 결함 정보를 기록하는 단계, 검토는 내용과 처리 필요성을 판단하는 단계, 수정은 코드를 비롯한 산출물을 실제로 고치는 단계다. 담당자를 정했다고 수정이 이미 끝난 것은 아니다. 조직마다 결함 상태 이름과 전이는 다를 수 있으므로 이 문항에서는 ‘담당자에게 넘긴다’는 업무 의미로 판단한다.

선지별 해설

  • ① 오답. 결함 원인을 실제로 고치는 활동이다.
  • ② 오답. 발견한 현상과 재현 조건을 기록하는 활동이다.
  • ③ 오답. 중복·재현·영향 등을 판단하는 앞 단계다.
  • ④ 정답. 해결 책임을 맡을 사람이나 팀을 지정하는 활동이다.

편집 해설 근거: ISTQB CTFL Syllabus 2018 v3.1.1 — §5.6 Defect Management, pp.75~76

40. 개발·시험 담당자가 다음 사례를 검토한다. 다음에서 설명하는 테스트의 종류는? 입력 자료를 처리 결과가 같을 것으로 기대되는 몇 개의 묶음으로 나눈다. 각 묶음마다 대표값 하나씩만 골라 테스트 케이스를 설계하여 시험 횟수를 줄인다.

  1. equivalence partitioning test
  2. boundary value analysis
  3. comparison testing
  4. cause-effect graphing testing
정답과 해설 보기

정답: 1

정답은 ① equivalence partitioning, 동치 분할이다. 같은 방식으로 처리될 것으로 기대되는 입력값들을 하나의 동치 집합으로 묶고 각 집합의 대표값을 골라 테스트한다. 예를 들어 정수 나이를 0~120만 허용한다면 0 미만, 허용 범위, 120 초과를 각각 다른 집합으로 볼 수 있다.

유효한 입력 집합뿐 아니라 무효한 집합도 고려해야 한다. 한 대표값이 통과했다고 그 집합의 모든 값에 결함이 없다는 증명은 아니지만, 합리적인 수의 케이스로 서로 다른 처리를 살피는 데 유용하다. 경곗값 분석은 이런 집합의 경계 부근에 추가로 집중하는 별도 기법이다.

선지별 해설

  • ① 정답. 비슷하게 처리되는 집합을 나누고 대표값을 선정한다.
  • ② 오답. 동치 집합 자체보다 경계에 집중하는 기법이다.
  • ③ 오답. 여러 구현 등의 결과를 비교하는 접근이다.
  • ④ 오답. 입력 조건과 결과의 논리 관계를 그래프로 모델링한다.

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

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

41. 데이터베이스 설계자가 다음 조건을 확인한다. SQL의 명령은 사용 용도에 따라 DDL, DML, DCL로 분류할 수 있다. 다음 명령 중 그 성격이 나머지 셋과 다른 하나는?

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

정답: 4

정답은 ④ CREATE이다. CREATE TABLE처럼 새 테이블이나 다른 데이터베이스 객체의 구조를 정의하는 명령은 DDL에 해당한다. INSERT는 행 추가, UPDATE는 행 값 변경, SELECT는 조건에 맞는 데이터 조회를 수행한다.

이 문항의 넓은 DML 분류에서는 조회까지 데이터 조작에 포함하여 ①~③을 같은 편으로 본다. 자료에 따라 SELECT를 DQL로 따로 분류하기도 있으므로, 약어 목록만 외우기보다 구조를 정의하는지 기존 구조의 데이터를 조회·변경하는지 구별하면 된다. CREATE로 구조를 만든다는 것이 실제 행을 입력한다는 뜻은 아니다.

선지별 해설

  • ① 오답. 데이터를 조회하며 이 문항의 넓은 분류에서는 DML에 포함한다.
  • ② 오답. 테이블에 새 행을 추가하는 데이터 조작 명령이다.
  • ③ 오답. 기존 행의 값을 바꾸는 데이터 조작 명령이다.
  • ④ 정답. 테이블 등 객체의 구조를 정의하는 DDL 명령이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 6~11 SQL Query Language, Creating Relations, Adding and Deleting Tuples; PostgreSQL 18 — Data Manipulation — Chapter 6 Data Manipulation

42. 일반적인 SQL 뷰에 대한 설명으로 맞는 것만 고른 것은? ㉠ 뷰는 질의로 정의되는 가상 테이블이다. ㉡ 모든 뷰는 제한 없이 삽입·수정·삭제할 수 있다. ㉢ 사용자별로 노출할 행과 열을 제한하는 데 활용할 수 있다. ㉣ 뷰는 언제나 자체 데이터 파일을 별도로 저장한다.

  1. ㉠, ㉡
  2. ㉠, ㉢
  3. ㉡, ㉣
  4. ㉠, ㉢, ㉣
정답과 해설 보기

정답: 2

정답은 ② ㉠, ㉢이다. 일반 뷰는 저장된 질의로 정의한 가상 테이블이다. 필요한 열만 선택하거나 WHERE 조건으로 행을 제한한 뷰를 만들어 사용자에게 보여 줄 자료의 범위를 조정할 수 있다. 그래서 ㉠과 ㉢이 맞다.

집계·그룹화·여러 테이블의 조인 등을 포함한 뷰는 기본 테이블의 어떤 행을 어떻게 바꿀지 정하기 어려울 수 있어 모든 뷰의 갱신이 자동으로 허용되지는 않는다. 일반 뷰가 항상 자체 데이터 파일에 결과를 저장하는 것도 아니다. 결과를 저장하는 구체화 뷰는 별도의 개념이며, 접근 통제에는 적절한 권한 설정도 필요하다.

선지별 해설

  • ① 오답. ㉠은 맞지만 모든 뷰를 제한 없이 갱신할 수 있다는 ㉡은 틀리다.
  • ② 정답. 질의로 정의한 가상 테이블이며 노출 행·열을 제한하는 데 쓸 수 있다.
  • ③ 오답. ㉡은 갱신 조건을 무시하고 ㉣은 일반 뷰와 구체화 뷰를 혼동한다.
  • ④ 오답. ㉠·㉢은 맞지만 ㉣은 일반 뷰의 설명이 아니다.

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

43. 데이터베이스 설계자가 다음 조건을 확인한다. 관계 해석에 대한 기술로 틀린 설명을 고르면?

  1. 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 특성을 가진다.
  2. 수학의 프레디킷 해석에 기반을 두고 있다.
  3. 관계 데이터 모델의 제안자인 코드(Codd)가 관계 데이터베이스에 적용할 수 있도록 설계하여 제안하였다.
  4. 튜플 관계 해석과 도메인 관계 해석이 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 관계 해석은 결과에 포함될 자료가 만족해야 할 논리 조건을 기술하는 비절차적 방식이다. 원하는 결과가 무엇인지 표현하고, 그 결과를 어떤 순서의 연산으로 구할지는 직접 지정하지 않는다. 따라서 ‘어떻게 유도하는가를 기술하는 절차적 특성’이라는 설명이 반대다.

튜플 관계 해석은 튜플을 변수로, 도메인 관계 해석은 개별 속성의 값을 변수로 사용한다. 술어·논리 연결·한정자를 이용하며 관계 모델의 이론적 질의 기반이다. 관계 대수의 연산 조합과 대비하되, 실제 DBMS는 이런 선언적 질의를 실행할 구체적인 계획을 따로 마련한다.

선지별 해설

  • ① 정답. 관계 해석은 절차를 나열하는 방식이 아니라 만족할 조건을 선언한다.
  • ② 오답. 술어 논리에 기반한 형식이다.
  • ③ 오답. Codd의 관계 데이터 모델·질의 이론과 연결되는 설명이다.
  • ④ 오답. 튜플 변수 방식과 도메인 변수 방식이 있다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Domain Relational Calculus, Query와 Formula 정의; Summary; IEEE Computer Society, SWEBOK Guide V4.0a — Computing Foundations §6.2 Data Models and Storage Models

44. 동시에 실행되는 트랜잭션이 서로의 미완료 중간 상태에 영향을 받지 않고, 논리적으로 독립 실행처럼 보이게 하는 ACID 특성은?

  1. Log
  2. Consistency
  3. Isolation
  4. Durability
정답과 해설 보기

정답: 3

정답은 ③ Isolation, 격리성이다. 동시에 실행되는 트랜잭션들이 서로의 처리 중간 단계를 부적절하게 보거나 방해하지 않도록 하는 성질이다. 계좌 이체에서 한쪽 잔액만 줄고 반대쪽은 아직 늘지 않은 중간 상태를 다른 거래가 완결된 결과처럼 보지 않게 하는 예를 생각할 수 있다.

ACID에서 원자성은 전부 수행하거나 전부 취소, 일관성은 제약을 만족하는 상태 유지, 지속성은 커밋된 결과 보존에 해당한다. 완전히 독립적인 직렬 실행처럼 보이는 것은 강한 격리의 기준이고 실제 DBMS는 허용할 이상 현상이 다른 격리 수준을 제공하므로 모든 수준이 같은 보장을 하지는 않는다.

선지별 해설

  • ① 오답. 로그는 복구 등에 쓰는 기록 수단이며 ACID 성질의 이름이 아니다.
  • ② 오답. 일관성은 트랜잭션 전후 제약과 데이터 규칙의 유지에 관한 성질이다.
  • ③ 정답. 동시 트랜잭션 간 중간 상태의 부적절한 간섭을 제어한다.
  • ④ 오답. 지속성은 커밋된 결과가 장애 후에도 보존되는 성질이다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — ACID Properties 및 Example of Fund Transfer; PostgreSQL 18 — Transaction Isolation — §13.2 첫 설명 및 격리 수준 표

45. 데이터베이스 설계자가 다음 조건을 확인한다. 관계 해석에서 ‘for all: 모든 것에 대하여’의 의미를 나타내는 논리 기호는?

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

정답: 2

정답은 ② ∀이다. 전칭 한정자 ∀는 정해진 범위의 모든 대상이 뒤의 조건을 만족한다는 뜻이다. 예를 들어 ∀x P(x)는 x가 가리키는 모든 대상에 대해 P가 참임을 요구한다. 어느 한 대상만 찾으면 되는 존재 한정자와 다르다.

∃x P(x)는 조건을 만족하는 x가 적어도 하나 있다는 뜻이다. ∈는 원소가 집합에 속함을, ∪는 두 집합을 합한 합집합을 나타낸다. 관계 해석의 논리식에서는 변수의 범위와 조건을 함께 읽어야 하며, 한정자 기호만 보고 결과의 행 수를 판단하지 않는다.

선지별 해설

  • ① 오답. 원소가 집합에 속하는 관계다.
  • ② 정답. 모든 대상에 대한 전칭 한정자다.
  • ③ 오답. 집합의 합집합 연산이다.
  • ④ 오답. 적어도 하나의 대상이 존재한다는 존재 한정자다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Formula 정의, ∃와 ∀ quantifiers 및 examples

46. SQL 조건 `age BETWEEN 20 AND 29`와 같은 결과를 반환하는 조건은?

  1. age > 20 AND age < 29
  2. age >= 20 AND age < 29
  3. age >= 20 AND age <= 29
  4. age > 20 AND age <= 29
정답과 해설 보기

정답: 3

정답은 ③ age >= 20 AND age <= 29이다. SQL의 일반적인 BETWEEN은 범위의 양쪽 끝값을 포함한다. 따라서 나이가 20인 행과 29인 행도 조건을 만족하며, 19와 30은 만족하지 않는다.

하한을 >로 쓰면 20을 제외하고 상한을 <로 쓰면 29를 제외하므로 다른 보기와는 경계에서 결과가 달라진다. age가 NULL이면 BETWEEN과 두 비교를 AND로 연결한 식 모두 알 수 없음이 되어 WHERE에서 참인 행으로 선택되지 않는다. 계산에서는 경계값뿐 아니라 NULL도 함께 대조했다.

선지별 해설

  • ① 오답. 하한 20과 상한 29를 모두 제외한다.
  • ② 오답. 20은 포함하지만 29는 제외한다.
  • ③ 정답. 양쪽 끝을 포함하는 BETWEEN 조건과 같다.
  • ④ 오답. 29는 포함하지만 20은 제외한다.

편집 해설 근거: PostgreSQL 18, Comparison Functions and Operators — BETWEEN 설명 및 a >= x AND a <= y 동치식

47. 데이터베이스 설계자가 다음 조건을 확인한다. 병행 제어의 로킹(Locking) 단위에 대한 기술로 틀린 설명을 고르면?

  1. 한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 한다.
  2. 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
  3. 로킹 단위가 작아지면 로킹 오버헤드가 감소한다.
  4. 로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 로킹 단위는 한 번의 잠금이 보호하는 자료의 범위다. 큰 단위로 잠그면 적은 수의 잠금으로 넓은 범위를 보호할 수 있지만, 서로 다른 행을 쓰는 거래까지 기다리게 할 수 있다.

같은 자료 범위를 더 작은 단위로 잠그면 필요한 잠금의 수와 관리 비용이 늘어나는 경향이 있다. 대신 다른 거래가 겹치지 않는 부분을 처리할 기회가 많아져 병행성이 좋아질 수 있다. 따라서 작은 단위일수록 오버헤드가 감소한다는 단순 설명은 반대다. 실제 비용은 접근 범위와 잠금 구현·승격 정책 등에 따라 달라진다.

선지별 해설

  • ① 오답. 한 잠금으로 보호하는 객체 범위라는 설명은 맞다.
  • ② 오답. 데이터베이스·파일·페이지·레코드 등 다양한 범위를 사용할 수 있다.
  • ③ 정답. 작은 단위에서는 같은 범위를 보호하는 잠금 수와 관리 비용이 보통 늘어난다.
  • ④ 오답. 잠금 충돌 범위를 줄여 병행 처리 기회를 높일 수 있다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Concurrency Control — Multiple-Granularity Locks 및 granularity 선택 논의

48. 기본 테이블을 조인한 뷰 V_1과 V_1에 의존하는 뷰 V_2가 있다. `DROP VIEW V_1 CASCADE`의 결과는?

  1. V_1만 삭제된다
  2. V_2만 삭제된다
  3. V_1과 V_2가 함께 삭제된다
  4. 두 뷰 모두 유지된다
정답과 해설 보기

정답: 3

정답은 ③ V_1과 V_2가 함께 삭제된다이다. CASCADE는 지정한 뷰를 삭제할 때 그 뷰에 의존하는 객체도 연쇄적으로 삭제하도록 한다. V_2는 V_1을 사용해 정의되므로 V_1이 없어지면 그 정의가 유지될 수 없어 함께 삭제 대상이 된다.

의존 방향은 V_2에서 V_1 쪽으로 향한다. V_1이 참조하는 기본 테이블은 V_1에 의존하는 객체가 아니므로 이 명령 때문에 함께 없어지는 것이 아니다. 실제 실행에는 뷰 소유권 등 적절한 권한이 필요하다. 여기서는 명령이 허용된 상황의 의존성 처리 결과를 묻는다.

선지별 해설

  • ① 오답. CASCADE가 V_1에 의존하는 V_2도 삭제한다.
  • ② 오답. 명령에 지정된 삭제 대상은 V_1도 포함한다.
  • ③ 정답. 지정한 뷰와 그 뷰에 의존하는 뷰가 삭제된다.
  • ④ 오답. RESTRICT와 달리 종속 객체 삭제를 허용했다.

편집 해설 근거: PostgreSQL 18, DROP VIEW — Parameters: CASCADE; Description

49. 데이터베이스 설계자가 다음 조건을 확인한다. 제2정규형에서 제3정규형이 되기 위한 조건은?

[학습용 개정문항]

  1. 부분적 함수 종속 제거
  2. 다치 종속 제거
  3. 모든 비자명 함수 종속에서 결정자가 슈퍼키가 되도록 한다
  4. 후보키에 대한 비주요 속성의 이행적 함수 종속 제거
정답과 해설 보기

정답: 4

정답은 ④이다. 제2정규형에서 제3정규형으로 나아갈 때는 후보키에 대한 비주요 속성의 부적절한 이행적 함수 종속을 제거한다. 예를 들어 사원번호→부서번호, 부서번호→부서명이 성립하고 부서번호가 사원 테이블의 키가 아니면, 사원마다 같은 부서명을 반복 저장하는 문제가 생긴다.

부서번호·부서명 관계를 별도 테이블로 분리하면 부서명을 여러 행에서 반복 수정할 필요가 줄어든다. 정확한 3NF 정의는 모든 비자명 함수 종속 X→A에 대해 X가 슈퍼키이거나 A가 후보키에 포함되는 속성이어야 한다는 것이다. 모든 종류의 이행 관계를 금지한다는 뜻은 아니다.

선지별 해설

  • ① 오답. 비주요 속성의 부분 함수 종속 제거는 제2정규형을 만들 때의 핵심이다.
  • ② 오답. 다치 종속은 제4정규형 등에서 다룬다.
  • ③ 오답. 모든 비자명 결정자가 슈퍼키가 되도록 하는 것은 BCNF의 기준이다.
  • ④ 정답. 2NF에서 남는 비주요 속성의 이행 종속을 제거하는 단계다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — 슬라이드 7.28 Third Normal Form; 7.67 Testing for 3NF

50. 데이터베이스 설계자가 다음 조건을 확인한다. 시스템 카탈로그에 대한 기술로 적절하지 않은 설명을 고르면?

  1. DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블 집합체이다.
  2. 카탈로그에 저장된 정보를 메타 데이터라고도 한다.
  3. 시스템 카탈로그의 갱신은 무결성 유지를 위하여 SQL을 이용하여 사용자가 직접 갱신하여야 한다.
  4. 데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지 관리한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 시스템 카탈로그는 테이블·열·자료형·제약·권한 등 데이터베이스 객체를 설명하는 메타데이터를 저장한다. 사용자가 CREATE나 ALTER 같은 정의 명령을 실행하면 DBMS가 관련 카탈로그를 갱신하여 구조 정보를 일관되게 관리한다.

일반 사용자가 무결성을 위해 카탈로그 행을 직접 고쳐야 한다는 설명은 잘못됐다. PostgreSQL처럼 카탈로그가 일반 테이블과 비슷한 형태이고 권한에 따라 직접 접근 가능한 시스템도 있지만, 수동 갱신을 정상적인 관리 방법으로 일반화해서는 안 된다. 읽어서 구조를 조사하는 것과 내부 정보를 임의로 바꾸는 것은 다르다.

선지별 해설

  • ① 오답. DBMS가 관리하는 특별한 구조 정보 테이블 집합이라는 설명은 맞다.
  • ② 오답. 데이터에 대한 설명인 메타데이터를 담는다.
  • ③ 정답. 사용자가 직접 갱신해야 하는 것이 아니라 DBMS의 정의·관리 명령으로 관리한다.
  • ④ 오답. 테이블 등 객체의 정의와 명세를 보관한다.

편집 해설 근거: PostgreSQL 18, Chapter 52 System Catalogs — Chapter 52 첫 두 단락

51. 데이터베이스 설계자가 다음 조건을 확인한다. R을 기반으로 V1, V1을 기반으로 V2, V2와 R을 기반으로 V3를 만들었다. 이때 DROP VIEW V1 RESTRICT의 결과는?

  1. R, V1, V2, V3가 모두 삭제된다.
  2. V1만 삭제된다.
  3. V1, V2, V3가 삭제된다.
  4. 종속 뷰가 있으므로 아무 뷰도 삭제되지 않는다.
정답과 해설 보기

정답: 4

정답은 ④이다. RESTRICT는 삭제하려는 뷰에 다른 객체가 의존하고 있으면 삭제를 거절한다. 여기서는 V2가 V1에 직접 의존하고, V3는 V2를 통해 V1에 간접적으로 의존한다. 이미 직접 종속 뷰가 있으므로 V1 삭제가 허용되지 않는다.

따라서 R·V1·V2·V3는 모두 유지되며 어떤 뷰도 삭제되지 않는다. CASCADE를 사용했다면 V1과 그에 의존하는 V2·V3가 삭제 대상이 될 수 있지만, 기반 테이블 R까지 역방향으로 삭제하는 것은 아니다. 거절된 DROP 명령을 V1만 일부 삭제한 상태로 이해하지 않는다.

선지별 해설

  • ① 오답. RESTRICT는 종속 관계가 있으면 명령을 거절하며 R은 삭제 대상도 아니다.
  • ② 오답. V2가 V1에 의존하므로 V1만 삭제하는 것도 허용되지 않는다.
  • ③ 오답. 종속 뷰를 함께 삭제하는 동작은 CASCADE 쪽이다.
  • ④ 정답. 종속 객체가 있어 삭제가 거절되고 모두 유지된다.

편집 해설 근거: PostgreSQL 18, DROP VIEW — Parameters: RESTRICT; CASCADE

52. 데이터베이스 설계자가 다음 조건을 확인한다. 릴레이션의 차수와 기수에 대한 기술로 타당한 설명을 고르면?

  1. 차수는 속성의 수이고 기수는 튜플의 수이다.
  2. 차수는 튜플의 수이고 기수는 속성의 수이다.
  3. 차수와 기수는 모두 후보키의 수이다.
  4. 차수는 도메인의 수이고 기수는 기본키의 수이다.
정답과 해설 보기

정답: 1

정답은 ①이다. 관계 모델에서 차수는 릴레이션에 정의된 속성, 즉 열의 수이고 기수는 현재 들어 있는 튜플, 즉 행의 수다. 예를 들어 학번·이름·학과라는 세 속성에 학생 다섯 명이 들어 있으면 차수 3, 기수 5다.

행을 한 개 더 넣으면 기수는 늘지만 열을 추가하지 않는 한 차수는 그대로다. 후보키나 기본키의 개수는 별개의 개념이며, 여러 속성이 같은 도메인을 사용할 수 있으므로 서로 다른 도메인의 수를 속성 수와 동일시해서도 안 된다. 현재 자료의 양과 스키마의 열 구성을 나누어 기억한다.

선지별 해설

  • ① 정답. 열 수가 차수이고 행 수가 기수다.
  • ② 오답. 차수와 기수의 뜻을 서로 바꾸었다.
  • ③ 오답. 둘 다 후보키 개수를 뜻하지 않는다.
  • ④ 오답. 도메인 종류 수와 기본키 수로 정의하지 않는다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 3 Relational Database: Definitions; 슬라이드 4 Example Instance

53. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 데이터베이스 무결성 제약 조건에 대한 기술로 타당한 설명을 고르면?

[학습용 개정문항]

  1. 참조 무결성(Referential Integrity): 속성값들이 사용자가 정의한 제약 조건(예: 특정 범위의 값)을 만족해야 한다는 규정이다.
  2. 도메인 무결성(Domain Integrity): 외래키 값이 참조 대상 키와 일치해야 한다는 규정이다.
  3. 사용자 정의 무결성(User-Defined Integrity): 특정 속성의 값이 그 속성에 정의된 도메인에 속해야 한다는 규정이다.
  4. 개체 무결성(Entity Integrity): 기본키의 각 구성 열은 NULL을 허용하지 않고, 기본키 전체 값의 조합은 유일해야 한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 기본키는 각 행을 식별해야 하므로 기본키를 구성하는 열은 NULL을 허용하지 않고, 기본키 전체의 값 조합은 행마다 달라야 한다. 예를 들어 기본키가 (학생번호, 과목번호)라면 한 학생이 여러 과목을 듣는 것은 가능하지만 같은 학생·과목 조합을 두 번 기록할 수는 없다.

따라서 복합 기본키의 각 열이 따로 모두 고유해야 한다는 기존 설명은 잘못됐다. 참조 무결성은 외래키와 참조 대상 키의 관계, 도메인 무결성은 열 값의 허용 범위·형식, 사용자 정의 무결성은 업무 규칙에 따른 제약을 다룬다. 외래키는 적절한 고유키도 참조할 수 있다.

선지별 해설

  • ① 오답. 임의의 값 범위 같은 사용자 정의 제약을 참조 무결성으로 설명했다.
  • ② 오답. 외래키의 참조 관계를 도메인 무결성으로 설명했다.
  • ③ 오답. 속성 도메인에 대한 규칙을 사용자 정의 무결성의 대표 정의로 바꾸어 놓았다.
  • ④ 정답. 기본키 구성 열의 NOT NULL과 키 전체 조합의 유일성을 구별했다.

편집 해설 근거: PostgreSQL 18 — Constraints — §5.5.4 Primary Keys; §5.5.5 Foreign Keys; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 13~16 Primary Key Constraints·Foreign Keys

54. 데이터베이스 설계자가 다음 조건을 확인한다. 모든 속성값이 더 이상 분해할 수 없는 원자값만 갖도록 한 정규형은?

  1. 제3정규형
  2. BCNF
  3. 제1정규형
  4. 제2정규형
정답과 해설 보기

정답: 3

정답은 ③ 제1정규형이다. 관계의 각 속성 도메인을 원자적인 값으로 다루고 한 행·열의 위치에 하나의 값을 갖게 하는 것이 1NF의 기본 조건이다. 한 칸에 여러 전화번호의 집합을 넣기보다 번호별 행이나 별도 관계로 표현하는 예를 생각할 수 있다.

원자적이라는 말은 문자열이나 숫자를 물리적으로 더 작은 바이트로 나눌 수 없다는 뜻이 아니다. 데이터 모델에서 하나의 값으로 취급한다는 의미다. 제2·제3정규형과 BCNF는 이를 바탕으로 키와 함수 종속에 따른 중복·갱신 문제를 더 제한한다.

선지별 해설

  • ① 오답. 3NF는 2NF 이후 비주요 속성의 이행 종속 등을 제한한다.
  • ② 오답. BCNF는 비자명 함수 종속의 결정자가 슈퍼키이도록 요구한다.
  • ③ 정답. 모든 속성 도메인을 원자적 값으로 다루는 기본 정규형이다.
  • ④ 오답. 2NF는 비주요 속성의 부분 함수 종속을 제거한다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — 슬라이드 7.100 First Normal Form; 7.101 First Normal Form (Cont.)

55. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 SQL 명령 중 성격이 다른 하나는?

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

정답: 1

정답은 ① ALTER이다. ALTER TABLE 같은 명령은 테이블에 열을 추가하거나 제약을 바꾸는 등 객체의 정의를 변경하는 DDL이다. 나머지 INSERT·UPDATE·DELETE는 이미 존재하는 테이블의 행을 추가·변경·삭제하는 DML이다.

예를 들어 학생 테이블에 이메일 열을 추가하는 것은 ALTER이고, 특정 학생의 이메일 값을 바꾸는 것은 UPDATE다. DELETE로 모든 행을 없애도 테이블 정의 자체가 사라지는 것은 아니다. 데이터 값과 그 값을 담는 구조를 어떤 명령이 바꾸는지 기준으로 분류하면 된다.

선지별 해설

  • ① 정답. 객체의 구조·정의를 변경하는 DDL이다.
  • ② 오답. 새 행을 추가하는 DML이다.
  • ③ 오답. 기존 행의 값을 바꾸는 DML이다.
  • ④ 오답. 조건에 맞는 행을 삭제하는 DML이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 10 Destroying and Altering Relations; 슬라이드 11 Adding and Deleting Tuples; PostgreSQL 18 — Data Manipulation — Chapter 6 Data Manipulation

56. 데이터베이스 설계자가 다음 조건을 확인한다. 사용자에게 부여한 데이터베이스 권한을 회수하는 DCL 명령은?

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

정답: 3

정답은 ③ REVOKE이다. GRANT로 부여한 객체 접근 권한이나 역할 구성원 자격 등을 회수할 때 REVOKE를 사용한다. 예를 들어 특정 사용자에게 직접 부여한 테이블 조회 권한을 제거하는 명령이 여기에 해당한다.

GRANT는 권한을 주는 쪽이며 COMMIT과 ROLLBACK은 트랜잭션 결과를 확정하거나 취소하는 명령이다. 한 경로로 준 권한을 회수해도 다른 역할이나 PUBLIC, 별도 부여 경로로 같은 권한이 남을 수 있으므로 REVOKE 한 번이 언제나 사용자의 모든 접근을 없애는 것은 아니다.

선지별 해설

  • ① 오답. 권한을 회수하는 것이 아니라 부여하는 명령이다.
  • ② 오답. 현재 트랜잭션의 변경을 확정한다.
  • ③ 정답. 부여된 권한이나 역할 자격을 회수한다.
  • ④ 오답. 트랜잭션의 변경을 취소한다.

편집 해설 근거: PostgreSQL 18, REVOKE — Description 및 Notes의 권한 부여 경로 설명

57. 데이터베이스 설계자가 다음 조건을 확인한다. 다중 행 서브쿼리를 사용하는 SQL 문장으로 문법상 타당한 설명을 고르면?

  1. SELECT * FROM 사원 WHERE 부서번호 IN (SELECT 부서번호 FROM 부서);
  2. SELECT * FROM 사원 IN WHERE (SELECT 부서번호 FROM 부서);
  3. SELECT (FROM 사원) WHERE 부서번호 IN SELECT 부서번호;
  4. SELECT * FROM 사원 WHERE 부서번호 = SELECT 부서번호 FROM 부서;
정답과 해설 보기

정답: 1

정답은 ①이다. 괄호 안의 SELECT가 부서 테이블의 부서번호들을 반환하면, 바깥 SELECT는 사원의 부서번호가 그 값들 중 하나에 해당하는지 IN으로 검사한다. 여러 행을 반환하는 한 열짜리 서브쿼리에 맞는 형태다.

②는 IN과 WHERE의 위치가 잘못됐고 ③은 SELECT의 선택 목록과 FROM·서브쿼리 괄호 구성이 맞지 않는다. ④는 서브쿼리를 괄호로 감싸지 않았으며, 괄호를 넣더라도 단순 = 비교의 스칼라 서브쿼리는 여러 행을 반환하면 안 된다. IN 역시 NULL이 섞인 경우에는 참·거짓 외에 알 수 없음이 될 수 있다.

선지별 해설

  • ① 정답. WHERE의 비교 대상 IN (한 열을 반환하는 SELECT) 형식이다.
  • ② 오답. IN과 WHERE의 구문 배치가 잘못됐다.
  • ③ 오답. 선택 목록·FROM 위치와 서브쿼리 괄호 구성이 잘못됐다.
  • ④ 오답. 서브쿼리 괄호가 없고 단순 스칼라 비교는 다중 행 처리에 맞지 않는다.

편집 해설 근거: PostgreSQL 18, Subquery Expressions — §9.24.2 IN

58. 데이터베이스 설계자가 다음 조건을 확인한다. 연속적인 값의 범위를 기준으로 데이터를 분할하는 파티셔닝 방식은?

  1. List Partitioning
  2. Composite Partitioning
  3. Range Partitioning
  4. Hash Partitioning
정답과 해설 보기

정답: 3

정답은 ③ Range Partitioning이다. 범위 파티셔닝은 날짜나 번호 같은 키의 연속적인 값 구간을 기준으로 자료를 나눈다. 예를 들어 주문일을 1월·2월·3월 구간으로 나눌 수 있으며 경계가 겹치거나 빠지지 않도록 정한다.

List는 특정 값들의 목록에 따라, Hash는 해시값에 따라 나눈다. Composite는 두 방식 이상을 결합하는 구성에 관한 말이다. PostgreSQL의 범위 분할은 지정한 하한을 포함하고 상한을 제외하므로, 모든 DBMS와 구문이 양쪽 끝을 모두 포함한다고 가정하지 않는다. 분할 기준과 SQL BETWEEN의 범위 규칙은 별도로 읽어야 한다.

선지별 해설

  • ① 오답. 연속 구간보다 지정한 값 목록을 기준으로 나눈다.
  • ② 오답. 여러 분할 방식을 결합하는 개념이다.
  • ③ 정답. 연속적인 키 값의 범위로 나눈다.
  • ④ 오답. 키의 해시 결과를 기준으로 나눈다.

편집 해설 근거: PostgreSQL 18 — Table Partitioning — §5.12.1 Overview, Range·List·Hash Partitioning

59. 데이터베이스 키의 정의로 맞는 것은?

  1. 외래키는 자기 릴레이션의 튜플을 유일하게 식별하는 최소 속성 집합이다.
  2. 슈퍼키는 튜플을 유일하게 식별하며 최소성은 요구하지 않는 속성 집합이다.
  3. 기본키는 중복값과 NULL을 허용한다.
  4. 대체키는 후보키 가운데 기본키로 선택된 키를 뜻한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 슈퍼키는 각 튜플을 유일하게 식별할 수 있는 속성 집합이다. 불필요한 속성이 들어 있어도 유일성만 유지하면 슈퍼키다. 예를 들어 학번이 고유하면 {학번}과 {학번, 이름}은 모두 슈퍼키가 될 수 있다.

후보키는 그중 속성을 하나라도 빼면 더 이상 식별할 수 없는 최소 슈퍼키다. 기본키는 후보키 중 대표로 선택한 키이고, 선택하지 않은 후보키는 대체키라고 한다. 외래키는 다른 또는 같은 릴레이션의 참조 대상과 연결되는 제약이며 그 열 자체가 항상 유일할 필요는 없다.

선지별 해설

  • ① 오답. 최소한의 유일 식별 속성 집합은 후보키의 설명이다.
  • ② 정답. 유일성은 요구하지만 최소성은 요구하지 않는다.
  • ③ 오답. 기본키는 NULL과 전체 키 값의 중복을 허용하지 않는다.
  • ④ 오답. 대체키는 기본키로 선택되지 않은 후보키다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — 슬라이드 13 Primary Key Constraints; 14 Primary and Candidate Keys; 15 Foreign Keys; PostgreSQL 18 — Constraints — §5.5.4 Primary Keys; §5.5.5 Foreign Keys

60. 트랜잭션이 마지막 연산을 실행했지만 커밋 결과의 영속성이 아직 확정되지 않은 상태는?

  1. 활동(Active)
  2. 완료(Committed)
  3. 부분 완료(Partially Committed)
  4. 철회(Aborted)
정답과 해설 보기

정답: 3

정답은 ③ 부분 완료이다. 트랜잭션의 마지막 실행문까지 처리했더라도 변경 결과가 장애 후에도 유지될 수 있도록 확정되는 과정이 남아 있을 수 있다. 이 중간 상태를 Partially Committed라고 한다.

완전히 성공하여 결과가 확정되면 Committed로 진행하고, 그 전에 실패하면 복구를 거쳐 Aborted로 갈 수 있다. Active는 아직 연산을 수행하는 상태다. ‘마지막 SQL문 실행’과 ‘성공적인 커밋 완료’가 반드시 같은 순간인 것은 아니므로 이름의 완료라는 말만 보고 ②를 고르면 안 된다.

선지별 해설

  • ① 오답. 아직 트랜잭션의 연산을 수행 중인 상태다.
  • ② 오답. 커밋이 성공적으로 완료되어 결과가 확정된 상태다.
  • ③ 정답. 마지막 문장을 실행했으나 성공적인 커밋 완료 전인 상태다.
  • ④ 오답. 실패 후 되돌리기가 끝난 상태다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — 슬라이드 17.8 Transaction State; 17.9 Transaction State diagram

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

61. C11에서 함수 블록 내부의 자동 지역 변수 이름으로 사용할 수 없는 것은? (보기의 이름과 충돌하는 별도 선언이나 매크로는 없다.)

[학습용 개정문항]

  1. text-color
  2. _korea
  3. amount
  4. student2019
정답과 해설 보기

정답: 1

정답은 ① text-color이다. 하이픈은 C 식별자를 구성하는 문자가 아니므로 text-color는 하나의 변수명이 될 수 없다. 식에서는 text에서 color를 빼는 연산으로 해석될 수 있다. 반면 amount와 student2019는 문자로 시작하며 뒤의 숫자도 허용된다.

_korea처럼 밑줄과 소문자로 시작하는 이름은 문법적으로 식별자이며, 이 문항에서 한정한 함수 블록 내부의 자동 지역 변수명으로 사용할 수 있다. 그러나 밑줄로 시작하는 모든 이름을 어느 범위에서나 써도 된다는 뜻은 아니다. 파일 범위의 밑줄 시작 이름, 밑줄 다음 대문자 또는 밑줄인 이름에는 구현을 위한 예약 규칙이 있다.

선지별 해설

  • ① 정답. 하이픈은 식별자의 구성 문자가 아니다.
  • ② 오답. 제시한 블록 내부 자동 지역 변수 범위에서는 사용할 수 있다.
  • ③ 오답. 영문자로 구성된 적법한 식별자다.
  • ④ 오답. 첫 문자 뒤에는 숫자를 사용할 수 있다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.4.2.1 Identifiers; §7.1.3 Reserved identifiers

62. 다음 C 프로그램의 출력은?

#include <stdio.h>
int f(int n){ if(n<=1) return n; return f(n-1)+f(n-2)+1; }
int main(void){ printf("%d", f(6)); }
  1. 12
  2. 18
  3. 20
  4. 21
정답과 해설 보기

정답: 3

정답은 ③ 20이다. n이 0 또는 1이면 그대로 반환하고, 그 밖에는 앞의 두 함수값에 1을 더한다. 작은 값부터 계산하면 f(0)=0, f(1)=1, f(2)=2, f(3)=4, f(4)=7, f(5)=12, f(6)=20이다. 따라서 printf에 전달되는 정수는 20이다.

이 함수는 일반적인 피보나치 점화식과 달리 매 단계에 +1이 있다. 마지막 계산만 보더라도 f(5)+f(4)+1=12+7+1=20임을 확인할 수 있다. 중복 호출이 있더라도 각 호출의 n은 별도의 매개변수이며, 전역 변수를 바꾸지 않아 두 하위 호출의 평가 순서가 이 결과를 바꾸지 않는다.

선지별 해설

  • ① 오답. 12는 f(5)의 값이다.
  • ② 오답. 제시한 점화식의 f(6)과 다르다.
  • ③ 정답. 12+7+1을 계산한 값이다.
  • ④ 오답. 기준값과 +1 규칙을 적용하면 21이 아니라 20이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.2.2 Function calls; §6.8.6.4 The return statement

63. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 파이썬에서 여러 자료를 한 번에 저장하는 자료형으로만 묶인 것은?

  1. list, set, tuple
  2. int, float, str
  3. float, bool, list
  4. bool, tuple, set
정답과 해설 보기

정답: 1

정답은 ① list, set, tuple이다. list는 순서가 있고 원소를 바꿀 수 있는 시퀀스, tuple은 순서가 있지만 자체 원소 참조를 바꾸지 못하는 시퀀스, set은 서로 다른 원소를 담는 집합이다. 세 종류 모두 여러 원소를 한 객체 안에 담을 수 있다.

int와 float는 각각 정수·실수 수치형이고 bool은 참·거짓 값이다. 다른 보기에는 이 수치형이나 논리형이 섞여 있다. str도 여러 문자로 이루어진 시퀀스이므로 문자열을 무조건 단일 원소만 담는 형이라고 설명하면 부정확하다. ②가 틀린 이유는 함께 나열한 int와 float가 조건에 맞지 않기 때문이다.

선지별 해설

  • ① 정답. 세 자료형 모두 여러 원소를 담는 컨테이너다.
  • ② 오답. str은 시퀀스지만 int와 float가 함께 포함되어 있다.
  • ③ 오답. float와 bool은 여러 원소를 저장하는 컨테이너가 아니다.
  • ④ 오답. bool이 컨테이너가 아니므로 세 종류 모두라는 조건을 만족하지 않는다.

편집 해설 근거: Python 3.14, Built-in Types — Numeric Types; Sequence Types; Set Types

64. 프레임 3개가 비어 있는 상태에서 참조열 `1, 2, 3, 1, 4, 2, 5, 1, 2`를 FIFO로 처리한다. 페이지 부재 횟수는?

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

정답: 3

정답은 ③ 7회이다. FIFO는 가장 오래전에 적재된 페이지부터 교체한다. 처음 1·2·3은 빈 프레임을 채우며 각각 부재가 발생한다. 다음 1은 적중이지만 FIFO의 적재 순서는 바뀌지 않는다. 4가 오면 1을 내보내고, 다음 2는 적중한다.

이후 5는 가장 오래된 2를, 1은 3을, 마지막 2는 4를 교체하므로 모두 부재다. 부재 여부를 순서대로 쓰면 부재·부재·부재·적중·부재·적중·부재·부재·부재로 총 7회이다. 적중한 페이지를 최신 위치로 옮기는 방식은 LRU와 혼동한 것으로 FIFO 계산에 적용하지 않는다.

선지별 해설

  • ① 오답. 뒤에서 퇴출된 페이지를 다시 참조할 때의 부재도 세어야 한다.
  • ② 오답. 전체 참조열에서 부재는 일곱 번이다.
  • ③ 정답. 두 번의 적중을 제외한 일곱 참조가 부재다.
  • ④ 오답. 네 번째 1과 여섯 번째 2는 이미 메모리에 있어 적중한다.

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

65. 교착상태가 발생하기 위한 네 가지 필요조건에 해당하지 않는 것은?

[학습용 개정문항]

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

정답: 3

정답은 ③ 선점이다. 교착상태의 네 가지 필요조건은 상호배제, 점유와 대기, 비선점, 환형 대기이다. 이미 얻은 자원을 보유한 채 다른 자원을 기다리고, 자원을 강제로 회수할 수 없으며, 대기 관계가 고리처럼 이어지는 상황을 생각하면 된다.

선점은 다른 실행 주체가 자원을 회수할 수 있다는 뜻이므로 필요한 조건인 비선점과 반대다. 네 조건은 각각 교착상태를 설명하는 필요조건이며, 조건 이름이 존재한다는 사실만으로 임의의 자원 시스템에서 교착이 확정된다고 해석하지 않는다. 예방에서는 필요한 조건 중 하나가 성립하지 않도록 설계하는 방법을 쓴다.

선지별 해설

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

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

66. IPv4를 사용하는 이더넷에서 같은 링크의 다음 홉 IPv4 주소에 대응하는 MAC 주소를 알아내는 프로토콜은?

[학습용 개정문항]

  1. TCP
  2. ICMP
  3. UDP
  4. ARP
정답과 해설 보기

정답: 4

정답은 ④ ARP이다. 같은 이더넷 링크에서 IPv4 패킷을 전달하려면 다음 홉의 IPv4 주소뿐 아니라 프레임의 목적지 MAC 주소도 알아야 한다. ARP는 해당 IPv4 주소에 대응하는 링크 계층 주소를 질의하고 응답을 받아 이 매핑을 알아내는 데 사용한다.

멀리 있는 서버로 보내는 경우 ARP로 알아낼 대상은 보통 그 서버 자체의 MAC 주소가 아니라 같은 링크에 있는 게이트웨이의 MAC 주소이다. TCP와 UDP는 전송 계층 프로토콜, ICMP는 IP 통신의 제어·오류 알림 등에 쓰인다. IPv6의 이웃 탐색까지 ARP라고 부르지 않도록 질문을 IPv4로 한정했다.

선지별 해설

  • ① 오답. 연결 기반의 신뢰성 있는 전송을 제공하는 프로토콜이다.
  • ② 오답. IP 통신의 제어·오류 보고 등에 쓰이며 이 문항의 IPv4 주소 해석은 ARP의 역할이다.
  • ③ 오답. 데이터그램 전송을 위한 전송 계층 프로토콜이다.
  • ④ 정답. 같은 링크의 IPv4 주소에 대응하는 MAC 주소를 알아낸다.

편집 해설 근거: IETF RFC 826, Ethernet Address Resolution Protocol (1982) — Abstract; Packet Generation; An Example

67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. IP 주소와 호스트 이름 간의 변환을 제공하는 시스템은?

  1. Modem
  2. DNS
  3. NFS
  4. Router
정답과 해설 보기

정답: 2

정답은 ② DNS이다. DNS는 계층적인 도메인 이름 공간에 여러 종류의 정보를 연결하는 분산 시스템이다. 호스트 이름에 대한 주소 레코드를 조회하여 IP 주소를 알아내며, 역방향 이름 공간의 PTR 레코드는 주소에서 이름을 찾는 데 사용한다.

이름 하나가 반드시 주소 하나와 일대일 대응하는 것은 아니다. 여러 주소가 연결될 수도 있고 주소 레코드가 없는 도메인도 있다. 모뎀은 전송 매체에 맞게 신호를 변환하는 장치이고, NFS는 네트워크 파일 시스템, 라우터는 네트워크 사이로 패킷을 전달하는 장치다. 이름 질의의 역할을 패킷 전달이나 파일 공유와 구별한다.

선지별 해설

  • ① 오답. 통신 신호를 변환하는 장치다.
  • ② 정답. 도메인 이름에 연결된 주소 등 자원 레코드를 조회하는 시스템이다.
  • ③ 오답. 원격 파일 접근을 제공하는 네트워크 파일 시스템이다.
  • ④ 오답. IP 패킷의 다음 전달 경로를 선택하는 장치다.

편집 해설 근거: IETF RFC 1034, Domain names – concepts and facilities (1987) — §2.4 Elements of the DNS; §3.6 Resource Records; IETF RFC 1035, Domain names implementation and specification (1987) — §3.5 IN-ADDR.ARPA domain

68. 다음 기본 서비스와 배정 포트의 연결 중 올바르지 않은 것은?

[학습용 개정문항]

  1. TFTP – UDP 69
  2. SNMP – UDP 161
  3. ONC RPC 포트매퍼(rpcbind) – TCP 112
  4. TELNET – TCP 23
정답과 해설 보기

정답: 3

정답은 ③이다. ONC RPC의 포트매퍼 또는 rpcbind 조회 서비스는 TCP와 UDP의 111번 포트를 사용한다. 다른 RPC 프로그램이 실제로 어느 포트에서 서비스하는지 조회하는 창구이므로, 모든 종류의 RPC 통신 자체가 하나의 고정 포트를 쓴다는 의미는 아니다.

나머지 보기에 적힌 TFTP의 UDP 69, SNMP의 UDP 161, TELNET의 TCP 23은 해당 기본 서비스에 배정된 포트다. SNMP 트랩은 별도의 기본 포트 162를 사용하고 TFTP 전송 중에는 별도의 전송 식별자 포트가 쓰일 수 있다. 이 문항은 서비스 접속의 기본 배정 포트를 구별하는 문제다.

선지별 해설

  • ① 오답. TFTP의 기본 요청 수신 포트는 UDP 69이다.
  • ② 오답. 일반 SNMP 요청의 기본 포트는 UDP 161이다.
  • ③ 정답. 포트매퍼/rpcbind의 포트는 112가 아니라 111이다.
  • ④ 오답. TELNET의 기본 포트는 TCP 23이다.

편집 해설 근거: IETF RFC 1833, Binding Protocols for ONC RPC Version 2 (1995) — §1 Introduction; §2.2 RPCBIND Operation; §3.2 Port Mapper Operation; IANA, Service Name and Transport Protocol Port Number Registry (2026-10-05 확인) — tftp 69/udp, snmp 161/udp, telnet 23/tcp, sunrpc 111/tcp 항목

69. 과거의 클래스 기반(classful) IPv4 주소 체계에서 클래스 C에 속하는 주소는?

[학습용 개정문항]

  1. 10.3.2.1
  2. 225.2.4.1
  3. 172.16.98.3
  4. 200.168.30.1
정답과 해설 보기

정답: 4

정답은 ④ 200.168.30.1이다. 과거 클래스 기반 IPv4 주소 체계에서 클래스 C는 첫 옥텟의 상위 세 비트가 110이다. 따라서 첫 옥텟이 192부터 223까지이며 200이 여기에 들어간다. 10은 클래스 A, 172는 클래스 B에 해당한다.

225는 클래스 D로 알려진 멀티캐스트 주소 범위다. 클래스 구분을 사설 주소 여부와 혼동하지 않는다. 또한 오늘날의 네트워크 접두사 길이는 CIDR 표기처럼 별도로 지정하므로, 첫 옥텟만 보고 실제 서브넷 마스크를 항상 /24라고 정하는 것은 옳지 않다. 이 문제는 역사적인 클래스 분류를 묻는다.

선지별 해설

  • ① 오답. 첫 옥텟 10은 역사적인 클래스 A 범위다.
  • ② 오답. 225는 멀티캐스트용 클래스 D 범위다.
  • ③ 오답. 첫 옥텟 172는 역사적인 클래스 B 범위다.
  • ④ 정답. 200은 192~223에 속하므로 클래스 C이다.

편집 해설 근거: IETF RFC 791, Internet Protocol (1981) — §3.2 Discussion, Addressing; RFC 4632, Classless Inter-domain Routing (2006) — §2 History and Problem Description; §3.1 Basic Concept and Prefix Notation

70. [학습용 변형] 크기가 21KB, 32KB, 48KB, 64KB인 고정 분할 가운데 하나에 17KB 작업을 Best Fit으로 배치한다. 선택한 분할의 내부 단편화는? (제시한 모든 분할은 비어 있다.)

  1. 4KB
  2. 15KB
  3. 31KB
  4. 47KB
정답과 해설 보기

정답: 1

정답은 ① 4KB이다. Best Fit은 작업을 담을 수 있는 빈 분할 중 가장 작은 것을 고른다. 제시한 21·32·48·64KB 분할은 모두 17KB 작업을 담을 수 있으므로 가장 작은 21KB를 선택한다. 그 안에서 사용하지 못하는 공간은 21-17=4KB이다.

이 문항은 크기가 고정된 분할 하나를 작업에 배정한다는 조건이다. 따라서 분할 내부에 남은 4KB를 내부 단편화로 센다. 가변 크기 메모리 할당에서 남은 구멍을 다른 작업에 재사용하는 상황과 구별한다. 나머지 보기의 값은 더 큰 분할을 선택했을 때의 차이이며 Best Fit 선택 결과가 아니다.

선지별 해설

  • ① 정답. 가장 작은 적합 분할 21KB에서 17KB를 뺀 값이다.
  • ② 오답. 32KB 분할을 골랐을 때의 차이다.
  • ③ 오답. 48KB 분할을 골랐을 때의 차이다.
  • ④ 오답. 64KB 분할을 골랐을 때의 차이다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 17 Free-Space Management — §17.3 Basic Strategies: Best Fit; §17.1 Assumptions의 내부·외부 단편화 구별

71. C에서 `int a=2, b=5; int r=(++a, a++, b++);`를 실행한 직후 r의 값은?

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

정답: 3

정답은 ③ 5이다. 괄호 안 쉼표는 왼쪽 식을 평가한 뒤 오른쪽 식을 평가하는 쉼표 연산자다. ++a에서 a는 2에서 3으로 바뀐다. 다음 a++는 값 3을 낸 뒤 a를 4로 바꾸지만 그 식의 값은 버려진다. 마지막 b++는 기존 값 5를 내고 b를 6으로 바꾼다.

쉼표 표현식 전체의 값은 가장 오른쪽 식의 값이므로 r에는 5가 저장된다. 실행 직후 상태는 a=4, b=6, r=5이다. 쉼표 연산자에는 왼쪽과 오른쪽 평가 사이의 순서 보장이 있으므로 이 예를 무조건 정의되지 않은 동작이라고 판단하면 안 된다. 선언에서 변수를 구분하는 쉼표와도 구별한다.

선지별 해설

  • ① 오답. 가운데 a++가 내는 값은 최종 쉼표 표현식의 값이 아니다.
  • ② 오답. 4는 실행 후 a의 값이다.
  • ③ 정답. 마지막 b++가 증가 이전 값 5를 낸다.
  • ④ 오답. 6은 증가가 끝난 b의 값이며 후위 증가 식의 값이 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.17 Comma operator; §6.5.2.4 Postfix increment; §6.5.3.1 Prefix increment

72. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. Java에서 정수 5를 0으로 나눌 때 가장 먼저 처리할 수 있는 예외 형식은?

  1. ArithmeticException
  2. NullPointerException
  3. ArrayIndexOutOfBoundsException
  4. IOException
정답과 해설 보기

정답: 1

정답은 ① ArithmeticException이다. Java의 정수 나눗셈에서 제수가 0이면 계산 결과를 만들 수 없어 이 예외가 발생한다. 따라서 실행 중 int 값 5를 int 값 0으로 나누는 경우를 처리하려면 ArithmeticException을 구별하면 된다.

이는 null 참조를 역참조하는 경우나 배열 인덱스를 벗어나는 경우와 다른 오류다. IOException은 입출력 작업과 관련된 검사 예외 계열이다. 정수 나눗셈과 부동소수점 나눗셈도 구별해야 한다. double의 5.0/0.0은 양의 무한대를 만들어 같은 산술 예외가 발생하지 않는다. 예외 이름에 등장하는 Arithmetic을 모든 수치 계산에 동일하게 적용하지 않는다.

선지별 해설

  • ① 정답. 정수의 0 나눗셈에서 발생한다.
  • ② 오답. null 참조에 대해 객체 작업을 시도할 때의 예외다.
  • ③ 오답. 배열 접근 인덱스가 허용 범위를 벗어났을 때의 예외다.
  • ④ 오답. 입출력 실패에 관한 예외 계열이다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 15 Expressions — §15.17.2 Division Operator /

73. C의 반복문 안에서 break;가 실행된다. 해당 break를 감싸는 switch문은 없을 때 동작은?

[학습용 개정문항]

  1. 가장 가까운 반복문을 즉시 종료한다.
  2. 현재 반복만 건너뛰고 다음 반복을 수행한다.
  3. 조건식을 무시하고 무한 반복한다.
  4. 프로그램 전체를 종료한다.
정답과 해설 보기

정답: 1

정답은 ①이다. break는 자신을 직접 둘러싼 가장 안쪽 switch 또는 반복문을 끝내고 그 문장 다음으로 제어를 옮긴다. 이 문제에서는 반복문 내부에 break를 감싼 switch가 없다는 조건이므로 가장 가까운 반복문을 즉시 종료한다.

현재 반복에서 남은 작업만 건너뛰고 다음 반복의 진행 단계로 가는 것은 continue의 역할이다. 반복문이 중첩되어 있으면 break 한 번으로 모든 바깥 반복문까지 끝나는 것도 아니다. 프로그램 전체를 끝내는 명령과도 다르다. 제어가 빠져나오는 범위를 실제 중괄호 구조와 함께 확인해야 한다.

선지별 해설

  • ① 정답. 가장 안쪽의 해당 반복문을 끝낸다.
  • ② 오답. 반복을 유지하며 현재 회차의 남은 부분을 건너뛰는 것은 continue다.
  • ③ 오답. break의 역할은 무한 반복을 시작하는 것이 아니다.
  • ④ 오답. 가장 가까운 switch 또는 반복문만 끝내며 프로그램 전체 종료가 아니다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.6.3 The break statement; §6.8.6.2 The continue statement

74. [학습용 변형] Python에서 alias = ValueError, bad = 42로 정의하였다. 각 try 블록에서 ValueError가 발생했을 때 예외 처리 대상으로 사용할 수 없는 except 절은? (각 보기는 서로 독립적인 try문의 except절이며 뒤에는 유효한 처리문이 있다.)

  1. except ValueError as e:
  2. except bad:
  3. except:
  4. except alias:
정답과 해설 보기

정답: 2

정답은 ② except bad:이다. except 뒤의 식은 예외 클래스 또는 예외 클래스들의 튜플로 평가되어야 한다. bad에는 정수 42가 들어 있으므로 ValueError를 처리할 대상으로 사용할 수 없고, 실제 예외와 대조하는 시점에 TypeError가 발생한다.

alias는 ValueError 클래스 자체를 가리키므로 except alias:는 유효하다. except ValueError as e:는 잡힌 예외 객체에 e라는 이름을 붙인다. 식을 쓰지 않은 except:도 이 ValueError를 처리할 수 있다. 각 보기가 독립적이라는 조건이 있으므로 bare except의 배치 순서 문제를 섞지 않는다. except bad: 자체를 문법 오류라고 부르는 것도 부정확하다.

선지별 해설

  • ① 오답. ValueError를 잡고 예외 객체를 e에 연결하는 유효한 절이다.
  • ② 정답. 42는 예외 클래스가 아니어서 처리 대상을 검사할 때 TypeError가 발생한다.
  • ③ 오답. 별도 형식을 지정하지 않은 except도 발생한 ValueError를 잡는다.
  • ④ 오답. alias가 ValueError 클래스 자체를 가리키므로 유효하다.

편집 해설 근거: Python 3.14 Language Reference, The try statement — §8.4.1 except clause

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

  1. 존재하지 않는 파일을 읽으려고 하는 경우에 발생하는 오류
  2. 문법 오류로 인해 발생한 것
  3. 오동작이나 결과에 악영향을 미칠 수 있는 실행시간 동안에 발생한 오류
  4. 배열의 인덱스가 그 범위를 넘어서는 경우 발생하는 오류
정답과 해설 보기

정답: 2

정답은 ② 문법 오류로 인해 발생한 것이다. Java 소스의 문법 오류는 보통 컴파일 과정에서 발견되어 실행 가능한 프로그램을 만드는 데 실패하게 한다. 반면 예외 처리는 프로그램이 실행되는 도중 발생한 비정상 상황을 던지고 처리기로 전달하는 체계다.

없는 파일을 읽으려는 시도는 관련 입출력 예외를, 배열의 범위를 벗어난 접근은 ArrayIndexOutOfBoundsException을 발생시킬 수 있다. 다만 모든 실행 중 실패가 반드시 Exception의 하위형인 것은 아니며 Error 계열도 존재한다. 여기서는 컴파일 단계의 소스 문법 오류를 실행 중 예외 처리와 구분하는 것이 핵심이다.

선지별 해설

  • ① 오답. 파일 읽기 API에서 실행 중 발생할 수 있는 예외 상황이다.
  • ② 정답. 소스의 문법 오류는 컴파일 단계의 진단 대상이다.
  • ③ 오답. 실행 중 발생하는 비정상 상황을 설명하는 일반적인 진술이다.
  • ④ 오답. 배열 범위를 벗어난 접근은 실행 중 예외를 발생시킨다.

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

76. 원격 서버 운영에 사용하는 SSH(Secure Shell)의 표준 동작과 다른 설명은?

  1. SSH 서버는 기본적으로 TCP 220번 포트를 사용한다.
  2. 전송 구간의 데이터는 암호화된다.
  3. 공개키 인증에서는 클라이언트 공개키를 서버 계정에 등록할 수 있다.
  4. 원격 명령 실행과 대화형 셸 서비스를 제공할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. SSH가 TCP/IP에서 사용하는 표준 기본 포트는 22번이며 220번이 아니다. 운영자가 서비스 포트를 다르게 설정할 수는 있지만 그 사실이 표준 기본값을 바꾸지는 않는다.

SSH는 전송 계층에서 암호화·호스트 인증·무결성 보호를 제공하고, 그 위에 사용자 인증과 여러 연결 채널을 구성한다. 공개키 인증에서는 서버가 사용자의 허용된 공개키를 확인하여 서명을 검증할 수 있다. 연결 채널은 대화형 셸이나 원격 명령 실행을 지원한다. 서버 호스트의 신원 확인과 사용자 공개키 인증은 서로 다른 역할이라는 점도 함께 구별한다.

선지별 해설

  • ① 정답. 표준 기본값은 TCP 22번이다.
  • ② 오답. SSH 전송 계층은 암호화를 통한 기밀성 보호를 제공한다.
  • ③ 오답. 서버가 허용한 사용자 공개키를 바탕으로 인증할 수 있다.
  • ④ 오답. 연결 프로토콜에 셸·명령 실행 요청이 정의되어 있다.

편집 해설 근거: IETF RFC 4253, SSH Transport Layer Protocol (2006) — §1 Introduction; §4.1 Use over TCP/IP; IETF RFC 4252, SSH Authentication Protocol (2006) — §7 Public Key Authentication Method; IETF RFC 4254, SSH Connection Protocol (2006) — §6.5 Starting a Shell or a Command

77. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. Python 자료형 중 생성 후 원소를 변경할 수 없는 것은?

  1. tuple
  2. dict
  3. set
  4. list
정답과 해설 보기

정답: 1

정답은 ① tuple이다. 튜플은 순서가 있는 불변 시퀀스다. 만들어진 튜플의 특정 위치에 다른 원소를 대입하거나 원소 수를 늘리고 줄이는 작업을 할 수 없다. 예를 들어 t=(1, 2) 뒤에 t[0]=9를 실행하면 TypeError가 발생한다.

dict·set·list는 항목을 추가하거나 삭제하는 등 객체 자체를 변경할 수 있다. 단, 튜플이 참조하는 원소가 리스트 같은 가변 객체일 때 그 객체의 내용까지 불변이 되는 것은 아니다. 또한 변수 t에 새 튜플을 대입하는 것은 기존 튜플을 수정하는 것이 아니라 변수가 다른 객체를 가리키게 하는 작업이다.

선지별 해설

  • ① 정답. 튜플 자체의 원소 참조와 길이를 생성 후 변경할 수 없다.
  • ② 오답. 키에 대응하는 값을 바꾸거나 항목을 추가·삭제할 수 있다.
  • ③ 오답. 원소를 추가·제거할 수 있는 가변 집합이다.
  • ④ 오답. 인덱스 대입 및 원소 추가·삭제가 가능한 가변 시퀀스다.

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

78. C의 비트 OR 연산 `9 | 6`의 결과는?

  1. 7
  2. 9
  3. 14
  4. 15
정답과 해설 보기

정답: 4

정답은 ④ 15이다. 비트 OR는 각 자리에서 둘 중 하나라도 1이면 결과를 1로 만든다. 9를 네 자리 이진수로 쓰면 1001, 6은 0110이다. 자리별로 OR하면 네 자리 모두 1이 되어 1111이며, 십진수로 8+4+2+1=15이다.

세로로 같은 자리끼리 맞춘 뒤 연산하면 최상위 8의 자리나 최하위 1의 자리를 놓치지 않을 수 있다. 비트 OR 연산자 |는 논리 OR 연산자 ||와 다르다. 논리 OR는 참·거짓을 판단하여 C에서는 0 또는 1을 내므로 이 문제의 비트별 계산에 사용하면 안 된다.

선지별 해설

  • ① 오답. 7은 이진수 0111로 9의 최상위 1비트가 반영되지 않았다.
  • ② 오답. 6의 두 비트도 결과에 포함되어야 한다.
  • ③ 오답. 14는 1110으로 최하위 1비트가 빠졌다.
  • ④ 정답. 1001과 0110의 자리별 OR는 1111이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.12 Bitwise inclusive OR operator; §6.5.14 Logical OR operator

79. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. UNIX에서 새로운 프로세스를 생성하는 시스템 호출은?

  1. chmod
  2. ls
  3. cat
  4. fork
정답과 해설 보기

정답: 4

정답은 ④ fork이다. POSIX의 fork()는 호출한 프로세스를 바탕으로 새 자식 프로세스를 만든다. 성공하면 부모에서는 새 자식의 프로세스 ID, 자식에서는 0이 반환되어 두 실행 흐름을 구별할 수 있다. 실패하면 부모 쪽에서 -1이 반환되고 자식은 만들어지지 않는다.

부모와 자식이 같은 프로그램 지점 다음부터 진행한다고 해서 같은 프로세스인 것은 아니다. 각자 별도 프로세스 ID를 가지며 메모리 변경도 일반적으로 독립적이다. chmod는 권한 변경, ls는 목록 출력, cat은 파일 내용 연결·출력의 도구다. 셸이 명령을 실행하며 내부적으로 자식을 만드는 것과 명령 자체의 역할을 혼동하지 않는다.

선지별 해설

  • ① 오답. 파일 접근 권한 변경을 위한 이름이다.
  • ② 오답. 파일·디렉터리 목록을 보여 주는 유틸리티다.
  • ③ 오답. 파일 내용을 연결하여 출력하는 유틸리티다.
  • ④ 정답. 새로운 자식 프로세스를 생성하는 호출이다.

편집 해설 근거: The Open Group, POSIX.1-2024 fork() — DESCRIPTION; RETURN VALUE

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

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

정답: 4

정답은 ④ Non-Acknowledge ARQ이다. 이 보기의 명칭은 나머지 세 방식처럼 일반적으로 구분하는 ARQ 방식의 이름이 아니다. ARQ는 프레임의 손실·오류를 탐지하고 필요한 재전송을 수행하는 기법이며, 응답·타이머 등으로 재전송 필요 여부를 판단한다.

Stop-and-wait는 한 프레임을 보낸 뒤 확인을 기다린다. Go-Back-N은 문제가 된 지점부터 뒤의 미확인 프레임들을 다시 보내며, Selective Repeat는 필요한 프레임을 선택해서 재전송하고 수신 측에서 순서를 정리한다. 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; §1.4.2

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

81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 내용이 설명하는 것은? (사물 통신, 사물 인터넷에서 사용되는 발행-구독(Publish-Subscribe) 기반의 경량 메시징 프로토콜로, 메시지 매개자(Broker)를 통해 통신한다.)

  1. TELNET
  2. GPN
  3. MQTT
  4. GRID
정답과 해설 보기

정답: 3

정답은 ③ MQTT이다. 센서가 온도 같은 메시지를 특정 토픽으로 발행하면, 서버 역할의 브로커가 그 토픽을 구독한 클라이언트에 전달한다. 발행자가 모든 수신자의 주소와 개수를 직접 관리하지 않아도 되는 발행·구독 구조다.

MQTT는 작은 구현 크기와 적은 통신 부담이 중요한 사물 통신 환경에 적합하도록 설계되었다. 다만 모든 메시지가 무조건 한 번 전달된다는 뜻은 아니다. 선택한 QoS 수준에 따라 손실 가능성이나 중복 전달에 대한 보장이 달라진다. 경량이라는 표현을 암호화·인증 같은 보안 설정이 필요 없다는 뜻으로 이해해서도 안 된다.

선지별 해설

  • ① 오답. TELNET은 원격 터미널 접속을 위한 프로토콜이다.
  • ② 오답. 이 보기의 명칭은 제시한 발행·구독 메시징 프로토콜을 가리키지 않는다.
  • ③ 정답. 브로커를 매개로 토픽 기반 발행·구독을 수행한다.
  • ④ 오답. GRID는 분산된 자원을 묶어 활용하는 컴퓨팅 등의 개념이며 이 프로토콜의 이름이 아니다.

편집 해설 근거: OASIS, MQTT Version 5.0 Standard (2019) — Abstract; §1.2 Terminology; §4.3 Quality of Service

82. 고전 COCOMO(1981)의 개발 모드 중, 조직이 개발 대상에 익숙하고 외부 제약이 비교적 적은 환경에서 50 KDSI 미만의 업무·과학 계산 소프트웨어를 개발하는 유형은?

[학습용 개정문항]

  1. Semi-Detached
  2. Semi-Embedded
  3. Embedded
  4. Organic
정답과 해설 보기

정답: 4

정답은 ④ Organic이다. 고전 COCOMO에서 유기형은 개발 대상에 익숙하고 요구와 외부 제약이 비교적 안정적인 환경의 개발 모드다. Boehm의 분류 표에는 전달 소스 명령 수를 천 단위로 센 50 KDSI 미만의 규모와 업무 모델·과학 모델 등의 예가 제시되어 있다.

반분리형은 익숙함과 제약의 정도가 중간이고, 내장형은 하드웨어·운영 절차·외부 인터페이스 등 엄격한 제약이 큰 경우에 해당한다. 코드 줄 수 하나만으로 모드를 자동 결정하는 것은 부정확하며 팀의 경험과 프로젝트 환경도 함께 본다. Semi-Embedded는 이 세 개발 모드의 정식 이름이 아니고, COCOMO II의 추정 모델 단계와도 구별한다.

선지별 해설

  • ① 오답. 반분리형은 경험과 제약 수준이 중간인 개발 모드다.
  • ② 오답. 고전 COCOMO의 세 개발 모드에 없는 명칭이다.
  • ③ 오답. 내장형은 엄격하고 복합적인 외부 제약이 큰 경우다.
  • ④ 정답. 익숙하고 비교적 제약이 적은 중소 규모 개발에 해당한다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — The COnstructive COst MOdel; Table IV COCOMO Software Development Modes (PDF pp.22~23)

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 프로토타이핑 모형(Prototyping Model)에 대한 기술로 틀린 설명을 고르면?

  1. 프로토타입은 구현 단계의 구현 골격이 될 수 있다.
  2. 개발단계에서 오류 수정이 불가하므로 유지보수비용이 많이 발생한다.
  3. 최종 결과물이 만들어지기 전에 의뢰자가 최종 결과물의 일부 혹은 모형을 볼 수 있다.
  4. 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 프로토타이핑은 완성 전에 일부 기능이나 화면의 모형을 만들어 요구를 확인하고 피드백을 받는 방법이다. 모형을 보고 누락·오해·사용성 문제를 발견하면 요구나 설계를 수정할 수 있으므로 개발 중 오류 수정이 불가능하다는 설명은 반대다.

발주자와 개발자가 같은 모형을 보며 의견을 나누면 추상적인 설명만 할 때보다 요구를 구체화하기 쉽다. 프로토타입을 발전시켜 구현의 골격으로 쓰는 방식도 있지만, 검토 후 버리는 방식도 있다. 빠르게 만든 모형의 임시 코드가 언제나 운영 품질을 갖추었다고 생각하거나 유지보수 비용이 반드시 줄어든다고 단정하지 않는다.

선지별 해설

  • ① 오답. 발전형 프로토타이핑에서는 구현의 출발점이 될 수 있다.
  • ② 정답. 피드백에 따라 개발 중 요구·설계·구현을 수정할 수 있다.
  • ③ 오답. 최종 제품 전에 모형이나 일부 기능을 확인할 수 있다.
  • ④ 오답. 공동으로 보고 논의하는 구체적인 참조 대상이 된다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §5.3 Prototyping

84. 노드가 이웃 노드의 데이터를 중계하며 자기 구성 다중 홉 경로를 형성하는 무선 네트워크 구조는? IEEE 802.11s가 이 구조를 무선 LAN에 적용한다.

[학습용 개정문항]

  1. Software Defined Perimeter
  2. Virtual Private Network
  3. Local Area Network
  4. Mesh Network
정답과 해설 보기

정답: 4

정답은 ④ Mesh Network이다. 메시 구조에서는 노드가 이웃 노드와 연결되고 필요한 경우 여러 홉을 거쳐 데이터를 전달한다. 중간 노드가 다른 노드의 데이터를 전달할 수 있어 한 중앙 장치와의 직접 연결에만 의존하는 구조와 구별된다.

IEEE 802.11s는 이런 자기 구성 다중 홉 메시 연결을 무선 LAN에 적용하는 규격이다. 메시를 쓰면 어떤 규모에서도 성능이 자동으로 보장되는 것은 아니며 무선 간섭과 홉 수, 경로 선택을 고려해야 한다. 모든 노드가 서로 직접 연결되는 완전 메시만 가능한 것도 아니다. LAN은 사용 범위의 개념이므로 LAN 안에서도 메시 토폴로지를 사용할 수 있다.

선지별 해설

  • ① 오답. SDP는 신원·권한에 따라 접근 경계를 구성하는 보안 접근 방식이다.
  • ② 오답. VPN은 기존 네트워크 위에 사설 연결을 구성하는 방식이다.
  • ③ 오답. LAN은 근거리 네트워크라는 범위 구분이며 제시한 다중 홉 구조의 이름은 아니다.
  • ④ 정답. 이웃 노드를 통해 데이터를 중계하는 메시 구조다.

편집 해설 근거: IEEE 802.11 Working Group, Task Group s 개요 — Task Group s, self-configuring multi-hop topologies in a WDS

85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 설명에 해당하는 소프트웨어는? 반제품 형태의 소프트웨어로 도메인별 서비스 컴포넌트를 재사용할 수 있게 한다. 제어의 역전(IoC)을 통해 애플리케이션의 흐름을 제어한다. 공통 기능을 미리 구현해 두어 개발 생산성과 품질을 높인다.

  1. 소프트웨어 개발 프레임워크
  2. 컨테이너 아키텍처
  3. 어휘 분석기
  4. 전역 함수 라이브러리
정답과 해설 보기

정답: 1

정답은 ① 소프트웨어 개발 프레임워크이다. 프레임워크는 특정 종류의 애플리케이션을 만들 때 반복되는 구조와 협력 방식을 제공한다. 개발자는 정해진 확장 지점에 자신의 동작을 넣고 공통 서비스와 컴포넌트를 재사용한다.

제어의 역전은 애플리케이션 코드가 모든 실행 순서를 직접 정하기보다 프레임워크가 정해진 시점에 사용자 코드를 호출하는 관계를 말한다. 필요한 함수를 애플리케이션이 직접 부르는 일반적인 라이브러리 사용과 대비할 수 있다. 컨테이너가 일부 프레임워크 기능을 수행할 수는 있으나, 제시된 전체 재사용 구조를 가리키는 가장 알맞은 명칭은 프레임워크다.

선지별 해설

  • ① 정답. 공통 구조·서비스와 확장 지점을 제공하며 실행 흐름을 조정한다.
  • ② 오답. 컨테이너 구조만으로 제시한 개발 재사용 체계 전체를 표현하지 못한다.
  • ③ 오답. 어휘 분석기는 입력 문자를 토큰으로 분리하는 구성 요소다.
  • ④ 오답. 전역 함수 모음은 보통 호출자가 흐름을 제어하며 제시한 IoC 구조와 다르다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — 슬라이드 19 Overview of Frameworks; 27·28 Reuse Taxonomy, Benefits

86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음에서 설명하는 용어로 올바른 것은? 가공·초월을 뜻하는 말과 세계를 뜻하는 말을 합성한 신조어이다. 이용자가 아바타를 통해 3차원 가상 공간에 참여하여 현실과 같은 사회적·경제적·문화적 활동을 수행한다.

  1. 포스퀘어(Foursquare)
  2. 매시업(Mashup)
  3. 메타버스(Metaverse)
  4. 증강 현실(Augmented Reality)
정답과 해설 보기

정답: 3

정답은 ③ 메타버스이다. 제시문은 가상 공간에서 사용자가 아바타로 활동하고 사회·경제·문화적 상호작용을 하는 모습을 설명한다. 메타와 유니버스를 결합한 이름 및 가상 세계에서의 지속적인 상호작용이 판단 단서다.

증강 현실은 실제 환경에 디지털 요소를 겹치거나 결합하여 보여 주는 기술이다. 메타버스 경험의 일부로 쓰일 수 있지만 이 단어 자체가 사회적 가상 세계 전체를 뜻하지는 않는다. 매시업은 여러 서비스나 데이터를 결합해 새 기능을 만드는 방식이고, 포스퀘어는 위치 기반 서비스의 이름이다. 모든 메타버스가 같은 장치나 오직 3차원 표현만 요구한다고 일반화하지 않는다.

선지별 해설

  • ① 오답. 위치 기반 서비스의 이름이며 제시한 합성어가 아니다.
  • ② 오답. 여러 데이터·서비스를 결합하는 개발 방식이다.
  • ③ 정답. 제시한 어원과 아바타 기반 가상 세계 활동에 해당한다.
  • ④ 오답. 실제 환경과 가상 요소를 결합하는 기술로, 제시한 전체 개념과는 범위가 다르다.

편집 해설 근거: ITU-T P.1320 (07/2022), Quality of experience assessment of extended reality meetings — §6.6 Mediated reality; §6.7 Metaverse; XR meeting use cases

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 내용이 설명하는 것은? (블록체인 개발환경을 클라우드로 제공하여, 블록체인 노드의 설치·구성·운영을 손쉽게 할 수 있도록 지원하는 서비스형 블록체인이다.)

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

정답: 3

정답은 ③ BaaS이다. 이 문항에서 BaaS는 Blockchain as a Service, 서비스형 블록체인을 뜻한다. 클라우드 제공자가 블록체인 네트워크 구성을 위한 기반 환경과 관리 기능을 제공하여 이용자가 노드 설치·운영 부담을 줄이고 애플리케이션 개발에 집중하도록 돕는다.

서비스에 맡긴다고 모든 설계 책임이 사라지는 것은 아니다. 참여자 권한, 스마트 계약, 데이터 처리 정책 등은 용도에 맞게 정해야 한다. BaaS가 다른 문맥에서는 Backend as a Service를 뜻하기도 하므로 약어만 외우지 않고 블록체인이라는 제시 조건을 함께 읽는다. Wi-SUN·OTT·SDDC는 각각 무선 통신, 인터넷 콘텐츠 제공, 데이터센터 제어와 관련된다.

선지별 해설

  • ① 오답. Wi-SUN은 스마트 유틸리티 등에 쓰이는 무선 네트워킹 기술 계열이다.
  • ② 오답. OTT는 인터넷을 통한 콘텐츠 제공과 관련된 서비스 개념이다.
  • ③ 정답. 이 문맥에서는 클라우드 기반 서비스형 블록체인이다.
  • ④ 오답. SDDC는 컴퓨팅·네트워크·스토리지 등의 데이터센터 자원을 소프트웨어로 제어하는 개념이다.

편집 해설 근거: Oracle Blockchain Platform, What Are the Advantages? (2026-10-05 확인) — Provisioning and Integration in Oracle Cloud Infrastructure; Operates as an Oracle Managed Service

88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 취약점 관리를 위한 응용 프로그램의 보안 설정과 관련성이 가장 낮은 방침을 고르면?

  1. 서버 관리실 출입 통제
  2. 실행 프로세스 권한 설정
  3. 운영체제의 접근 제한
  4. 운영체제의 정보 수집 제한
정답과 해설 보기

정답: 1

정답은 ① 서버 관리실 출입 통제이다. 출입 통제는 사람이 서버 장비에 물리적으로 접근하는 것을 제한하는 물리 보안 대책이다. 나머지 보기는 소프트웨어가 어떤 권한으로 실행되고 어떤 자원과 정보에 접근하는지를 조정하는 논리적인 보안 설정이다.

예를 들어 서비스 프로세스에 불필요한 관리자 권한을 주지 않고 접근 가능한 파일과 정보를 줄이면 프로그램 취약점이 악용되더라도 영향을 제한하는 데 도움이 된다. ①이 보안에 중요하지 않다는 뜻은 아니다. 이 질문은 응용 프로그램과 그 실행 환경의 설정이라는 범위에서 관련성이 상대적으로 낮은 항목을 구별한다.

선지별 해설

  • ① 정답. 물리적인 사람의 출입을 관리하는 대책이다.
  • ② 오답. 실행 주체의 권한을 제한하여 프로그램의 영향 범위를 통제한다.
  • ③ 오답. 프로그램이 동작하는 운영체제의 자원 접근을 통제한다.
  • ④ 오답. 불필요한 운영체제 정보 노출·수집 경로를 제한하는 설정과 관련된다.

편집 해설 근거: NIST SP 800-123 — General Server Security — §4 Securing the Server Operating System; §5 Securing the Server Software

89. 기기를 키오스크에 약 10cm 이내로 가까이 대면 기가비트급으로 대용량 데이터를 전송하는 초근접 무선 기술은?

  1. Zing
  2. Marine Navi
  3. C-V2X
  4. BcN
정답과 해설 보기

정답: 1

정답은 ① Zing이다. ETRI가 소개한 Zing은 기기를 약 10cm 이내로 가까이 대어 큰 데이터를 빠르게 주고받는 초근접 무선통신 기술이다. 2016년 개발기관 소개에는 60GHz 대역을 이용한 3.5Gbps급 전송과 키오스크 콘텐츠 전달 같은 활용 예가 제시되어 있다.

판단의 핵심은 짧은 통신 거리와 기가비트급 대용량 전송이라는 조합이다. C-V2X는 차량과 주변 환경의 통신, BcN은 광대역 통합망에 관한 개념이며 초근접 키오스크 전송 기술의 이름이 아니다. 과거 개발 사례의 성능 수치를 모든 환경의 실효 속도로 단정하지 않고, 짧은 거리만으로 모든 보안 위협이 사라진다고 설명하지 않는다.

선지별 해설

  • ① 정답. 개발기관이 초근접 대용량 무선 전송 기술로 소개한 이름이다.
  • ② 오답. 해상 항행 관련 명칭으로 제시된 초근접 전송 기술이 아니다.
  • ③ 오답. 차량과 차량·인프라 등의 통신 기술이다.
  • ④ 오답. 광대역 통합망의 개념이다.

편집 해설 근거: ETRI Webzine Vol.72, 초고속 근접 무선통신 Zing (2016-11) — 초근접 무선통신 소개, 10cm 이내·3.5Gbps·키오스크 활용 단락

90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 암호 알고리즘 중 성격이 다른 하나는?

  1. SHA-1
  2. AES
  3. MD4
  4. MD5
정답과 해설 보기

정답: 2

정답은 ② AES이다. AES는 비밀키를 사용해 평문을 암호문으로 바꾸고 같은 비밀키로 복호화하는 대칭키 블록 암호다. 반면 SHA-1·MD4·MD5는 입력에서 고정 길이의 메시지 요약을 계산하는 해시 함수 계열이다.

암호화는 올바른 키를 가진 수신자가 내용을 되찾게 하는 데 쓰이지만 일반 해시에는 대응하는 복호화 절차가 없다. 이 문제는 기능 분류를 묻는 것이며, 보기에 나온 해시가 모두 현대 보안 용도로 적합하다는 뜻은 아니다. 특히 오래된 해시의 충돌 저항성을 기대하는 용도에서는 알려진 취약성을 고려해야 한다. 해시값을 암호문이라고 부르지 않는 것이 구별의 출발점이다.

선지별 해설

  • ① 오답. SHA-1은 메시지 요약을 만드는 해시 함수다.
  • ② 정답. AES는 키를 사용한 암·복호화를 제공하는 대칭키 블록 암호다.
  • ③ 오답. MD4는 메시지 요약 알고리즘이다.
  • ④ 오답. MD5도 메시지 요약 알고리즘이다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §1 Introduction 및 AES 알고리즘 정의; NIST FIPS 180-4, Secure Hash Standard (2015) — §1 Introduction; §6.1 SHA-1; IETF RFC 1320, The MD4 Message-Digest Algorithm (1992) — §1 Executive Summary; IETF RFC 1321, The MD5 Message-Digest Algorithm (1992) — §1 Executive Summary

91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. Nassi-Shneiderman 차트에 대한 기술로 타당한 설명을 고르면?

  1. 객체 사이 메시지의 시간 순서를 표현한다.
  2. 화살표 중심의 흐름도로만 표현한다.
  3. 구조화된 상자 형태로 순차·선택·반복 구조를 표현한다.
  4. 데이터베이스 개체 관계만 표현한다.
정답과 해설 보기

정답: 3

정답은 ③이다. Nassi-Shneiderman 차트는 처리·선택·반복의 제어 구조를 직사각형 영역과 그 안의 중첩으로 나타낸다. 순차 처리는 위에서 아래로 배치하고, 조건에 따른 선택은 영역을 나누며, 반복은 반복 범위가 드러나게 감싼다.

상자 안에 또 다른 구조를 넣을 수 있어 어느 처리들이 같은 선택이나 반복에 속하는지 눈으로 확인하기 쉽다. 임의의 지점으로 점프하는 화살표 중심의 일반 흐름도와 구별되며 구조적 프로그래밍의 표현에 초점을 둔다. 객체 사이 메시지의 시간 순서는 UML 상호작용 표현, 데이터 개체 관계는 ER 모델의 관심사이므로 다른 보기와 목적이 다르다.

선지별 해설

  • ① 오답. 객체 사이의 시간순 메시지는 순서 다이어그램 등의 관심사다.
  • ② 오답. 임의 화살표만으로 표현하는 것이 아니라 구조화된 영역을 중첩한다.
  • ③ 정답. 처리·선택·반복 범위를 상자 형태로 나타낸다.
  • ④ 오답. 데이터베이스의 개체 관계만을 표현하는 도구가 아니다.

편집 해설 근거: Nassi·Shneiderman, Flowchart techniques for structured programming (1973), 저자 제공 원문 — 인쇄 pp.15~17, Figures 3~6

92. 내부망 위치만으로 신뢰를 부여하지 않고 사용자·장치·요청 상황을 평가해 자원별 세션에 필요한 최소 권한을 부여한다. 동적 정책을 사용하며 미세 분할 같은 수단을 활용할 수 있다. 이러한 보안 접근 방식은?

[학습용 개정문항]

  1. 심층 방어(Defense in Depth)
  2. 비무장지대(DMZ)
  3. 네트워크 접근 제어(NAC)
  4. 제로 트러스트(Zero Trust)
정답과 해설 보기

정답: 4

정답은 ④ 제로 트러스트이다. 내부 네트워크에 있다는 위치만으로 접근을 허용하지 않고, 사용자·장치·요청 자원의 상태와 정책을 평가하여 필요한 권한을 부여하는 접근 방식이다. 한 자원에 인증·인가되었다는 이유만으로 다른 자원까지 자동 접근을 허용하지 않는다.

최소 권한과 자원 중심 정책이 핵심이며, 세분화된 네트워크 구획은 이를 구현하는 한 방법이다. 모든 접근 때마다 사용자가 암호를 다시 입력해야 한다거나 모든 구현에 같은 구획 구조를 강제한다는 뜻은 아니다. 심층 방어·DMZ·NAC도 함께 쓸 수 있지만 내부 위치에 대한 자동 신뢰를 제거하는 전체 원칙의 이름은 제로 트러스트다.

선지별 해설

  • ① 오답. 여러 방어 수단을 겹치는 전략이며 제시된 전체 접근 원칙의 이름은 아니다.
  • ② 오답. 외부 공개 자원을 내부망과 분리하는 네트워크 구역이다.
  • ③ 오답. 단말의 네트워크 접속을 통제하는 수단이며 제로 트러스트에 활용될 수 있다.
  • ④ 정답. 네트워크 위치만 믿지 않고 자원별 접근을 정책에 따라 검증한다.

편집 해설 근거: NIST SP 800-207, Zero Trust Architecture (2020) — §2.1 Tenets of Zero Trust, 2~4·6항; §3.1.2 ZTA Using Micro-Segmentation

93. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. Bell-LaPadula 보안 모델과 가장 관련이 깊은 접근통제 방식은?

  1. MAC
  2. RBAC
  3. ABAC
  4. DAC
정답과 해설 보기

정답: 1

정답은 ① MAC, 강제적 접근통제이다. Bell-LaPadula 모델은 주체와 객체의 보안 수준을 비교하여 기밀 정보의 흐름을 제한한다. 정보 소유자의 임의 허가보다 조직이 정한 분류·인가 수준의 규칙이 우선한다는 점에서 MAC과 가장 밀접하다.

대표 원칙은 허용 수준보다 높은 정보를 읽지 못하게 하고, 높은 수준의 정보를 낮은 수준으로 흘려보내지 못하게 하는 것이다. 기밀성 보호가 중심이며 정보의 정확성·무결성을 다루는 Biba 모델과는 목적이 다르다. 원 모델에는 재량적 보안 성질도 포함되므로 DAC 요소가 전혀 없다고 단정하지 않고 가장 관련이 깊은 방식을 고른다.

선지별 해설

  • ① 정답. 보안 등급과 강제 정책을 바탕으로 정보 흐름을 제한하는 방식이다.
  • ② 오답. 역할에 권한을 연결하는 접근통제 방식이다.
  • ③ 오답. 주체·객체·환경 등의 속성을 정책으로 평가하는 일반적인 방식이다.
  • ④ 오답. 소유자 등의 재량에 따른 허가만으로 기밀 등급 정책을 대신하지 못한다.

편집 해설 근거: Bell·LaPadula, Secure Computer System: Unified Exposition and Multics Interpretation (1976), IEEE 보존 원문 — Section II, 인쇄 pp.14~18, ss-property·*-property 및 nondiscretionary policy; NIST SP 800-162, Guide to Attribute Based Access Control (2014, 2019 갱신) — §2 Understanding ABAC, 인쇄 pp.4~5 MAC/DAC·RBAC·ABAC

94. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 짧고 빈번한 트랜잭션을 실시간으로 삽입·수정·삭제·조회하는 처리 방식은?

  1. ETL
  2. Batch Processing
  3. OLTP
  4. OLAP
정답과 해설 보기

정답: 3

정답은 ③ OLTP이다. 주문 한 건 등록, 재고 차감, 계좌 정보 조회처럼 현재 업무에서 발생하는 짧고 빈번한 트랜잭션을 신속히 처리하는 방식이다. 여러 사용자의 요청을 동시에 처리하면서 데이터 제약과 거래의 일관성을 유지하는 것이 중요하다.

OLAP는 많은 이력 자료를 집계·비교하여 분석하는 작업에 초점을 둔다. ETL은 원천 자료를 추출하고 변환해 대상 저장소에 적재하는 과정이며, 일괄 처리는 모은 작업을 묶어 처리하는 방식이다. OLTP도 조회를 수행하므로 조회라는 단어만으로 OLAP라고 판단하지 않는다. 어떤 업무를 어떤 단위와 응답 시간으로 처리하는지가 구별 기준이다.

선지별 해설

  • ① 오답. 자료를 추출·변환·적재하는 데이터 이동 과정이다.
  • ② 오답. 작업을 모아서 묶음으로 실행하는 처리 방식이다.
  • ③ 정답. 짧은 업무 트랜잭션을 온라인으로 빈번하게 처리한다.
  • ④ 오답. 대량 이력 자료의 집계·분석에 중점을 둔다.

편집 해설 근거: Oracle, What Is Online Transaction Processing? (2023-08-01) — OLTP Defined; OLTP Versus OLAP

95. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 대칭키와 신뢰할 수 있는 제3자 KDC의 티켓을 이용해 상호 인증하는 프로토콜은?

  1. OpenID Connect
  2. OAuth
  3. Kerberos
  4. SAML
정답과 해설 보기

정답: 3

정답은 ③ Kerberos이다. 신뢰하는 키 배포 센터 KDC가 발급한 티켓과 공유 비밀키를 이용해 클라이언트가 서비스에 자신을 증명하는 네트워크 인증 프로토콜이다. 사용자가 매 서비스에 비밀번호를 직접 보내는 대신 티켓과 인증 데이터를 사용한다.

상호 인증이 요청된 교환에서는 서버도 응답을 보내 자신의 신원을 증명한다. 모든 Kerberos 사용이 자동으로 상호 인증을 수행한다는 뜻은 아니며 요청과 응답 절차가 필요하다. OpenID Connect는 신원 확인 계층, OAuth는 권한 위임 체계, SAML은 인증·속성 등의 단언 교환을 위한 체계로 KDC 대칭키 티켓이라는 제시 단서와 구별된다.

선지별 해설

  • ① 오답. OAuth 2.0 위에 신원 확인 기능을 제공하는 체계다.
  • ② 오답. 자원 접근 권한 위임에 관한 체계다.
  • ③ 정답. KDC의 티켓과 공유 비밀키를 중심으로 인증한다.
  • ④ 오답. 단언을 교환하는 연합 인증 등의 체계이며 KDC 티켓 방식이 아니다.

편집 해설 근거: IETF RFC 4120, The Kerberos Network Authentication Service V5 (2005) — §1 Introduction; §1.1 The Kerberos Protocol; §3.2.4 Generation of a KRB_AP_REP Message

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. Java 바이트코드를 계측하여 테스트 커버리지를 측정하는 오픈소스 도구는?

  1. JUnit
  2. Jenkins
  3. Cobertura
  4. Maven
정답과 해설 보기

정답: 3

정답은 ③ Cobertura이다. Cobertura는 Java 코드의 테스트 커버리지를 보고하는 도구다. 바이트코드 계측으로 실행 정보를 수집하여 테스트가 어떤 코드 부분을 실행했는지 확인하는 데 사용한다.

JUnit은 테스트를 작성하고 실행하는 프레임워크, Jenkins는 빌드·테스트 등의 자동화 작업을 운영하는 서버, Maven은 빌드와 의존성 관리를 위한 도구다. 이 도구들을 함께 사용하여 Cobertura 보고서를 만들 수는 있지만 각 도구의 주된 역할은 다르다. 커버리지 수치가 높다는 사실만으로 요구사항을 모두 만족하거나 결함이 없다고 보장할 수 없다는 점도 구별한다.

선지별 해설

  • ① 오답. 테스트 코드의 작성·실행을 위한 프레임워크다.
  • ② 오답. 자동화 파이프라인을 실행·관리하는 서버다.
  • ③ 정답. Java 코드 실행 범위를 측정하고 보고하는 도구다.
  • ④ 오답. 빌드·의존성·프로젝트 작업을 관리하는 도구다.

편집 해설 근거: Cobertura 프로젝트, 소개와 공식 저장소 — README, ABOUT; Cobertura 공식 저장소, Cobertura architecture — Overall design, 첫 문단 및 Cobertura responsibilities

97. 다음 중 전통적인 직접 연결 인터페이스와 달리 SCSI 명령을 TCP/IP 위에서 전달하는 스토리지 프로토콜은?

[학습용 개정문항]

  1. SAS (Serial Attached SCSI)
  2. eSATA (External SATA)
  3. iSCSI (Internet Small Computer System Interface)
  4. 병렬 SCSI (Parallel SCSI)
정답과 해설 보기

정답: 3

정답은 ③ iSCSI이다. iSCSI는 SCSI 명령과 데이터를 TCP/IP 위에서 전달하는 프로토콜이다. IP 기반 스토리지 네트워크에 사용할 수 있어, 보기의 SAS·eSATA·병렬 SCSI 같은 전통적인 직접 연결 인터페이스와 전송 방식이 다르다.

다만 iSCSI 장비도 지원 구성에 따라 호스트와 케이블로 바로 연결할 수 있으므로 물리적으로 절대 직접 연결할 수 없다는 설명은 틀리다. 중요한 차이는 스위치가 눈앞에 있는지 여부가 아니라 TCP/IP를 사용하는 전송 계층이다. 또한 SCSI라는 이름이 iSCSI에 포함되는 것은 SCSI 명령 체계를 네트워크 위로 운반하기 때문이다.

선지별 해설

  • ① 오답. SAS는 직렬 연결 SCSI 인터페이스이며 TCP/IP 전송을 필수로 하지 않는다.
  • ② 오답. eSATA는 외장 SATA 연결 인터페이스다.
  • ③ 정답. SCSI 명령을 TCP/IP로 전달하는 프로토콜이다.
  • ④ 오답. 병렬 SCSI 직접 연결 인터페이스는 IP 네트워크 전송 방식이 아니다.

편집 해설 근거: IETF RFC 7143, iSCSI Protocol (Consolidated, 2014) — §2 Introduction, SCSI transport mapping 및 iSCSI over TCP/IP

98. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음에서 설명하는 소프트웨어 프로세스 성숙도 모델(CMMI)의 단계는? 조직이 정의한 표준 프로세스를 프로젝트에 맞게 조정하여 수행한다. 프로세스의 성과와 품질을 정량적 지표로 측정하고 통계적 기법으로 예측·통제한다. 프로세스 개선 활동 자체를 지속적으로 최적화하는 단계의 바로 이전 단계이다.

  1. 정량적 관리(Quantitatively Managed) 단계
  2. 최적화(Optimizing) 단계
  3. 관리(Managed) 단계
  4. 정의(Defined) 단계
정답과 해설 보기

정답: 1

정답은 ① 정량적 관리, 성숙도 수준 4이다. 조직의 표준 프로세스를 사용하는 것에서 더 나아가, 성과와 품질 목표를 정량적으로 세우고 자료에 근거해 프로세스 성과를 예측·관리하는 단계다. 제시문의 통계적 예측과 통제가 가장 중요한 단서다.

수준 2인 관리는 프로젝트 차원에서 계획·수행·측정·통제를 하는 데, 수준 3인 정의는 조직 차원의 표준 프로세스에 중점을 둔다. 수준 5 최적화는 안정된 기반 위에서 지속적인 개선과 변화 대응을 추구한다. 표준 프로세스를 쓴다는 첫 문장만 보고 수준 3을 고르지 않고 뒤의 정량 관리와 최적화 직전이라는 조건까지 읽어야 한다.

선지별 해설

  • ① 정답. 정량적 목표와 성과 예측·관리가 핵심인 수준 4다.
  • ② 오답. 지속적 개선·혁신을 추구하는 수준 5다.
  • ③ 오답. 프로젝트 차원의 계획·수행·통제에 초점을 둔 수준 2다.
  • ④ 오답. 조직의 표준 프로세스를 사용하는 수준 3이며 추가적인 정량 관리 조건이 남는다.

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

99. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 마이크로서비스 아키텍처(MSA, Microservice Architecture)에 대한 기술로 틀린 설명을 고르면?

  1. 서비스 간 통신에는 주로 HTTP/REST나 메시지 큐 같은 경량 프로토콜을 사용한다.
  2. 비즈니스 기능 단위로 서비스를 나누고 각 서비스를 독립적으로 배포할 수 있다.
  3. 서비스마다 서로 다른 개발 언어나 데이터 저장 기술을 선택할 수 있다.
  4. 모든 서비스가 하나의 데이터베이스 스키마를 공유해야 하므로 서비스 간 트랜잭션 일관성이 보장된다.
정답과 해설 보기

정답: 4

정답은 ④이다. 마이크로서비스는 업무 기능의 경계에 맞춰 나눈 서비스가 독립적으로 변경·배포될 수 있도록 구성하는 방식이다. 서비스마다 적합한 언어나 저장 기술을 고를 수 있고, 명확한 API나 메시징으로 협력한다.

모든 서비스가 반드시 하나의 스키마를 공유하는 것은 아니다. 서비스의 데이터 소유권을 분리하는 것이 일반적인 설계 방향이며, 여러 서비스에 걸친 갱신의 일관성은 별도로 다뤄야 한다. 같은 데이터베이스를 사용하더라도 여러 호출이 자동으로 하나의 원자적 트랜잭션이 되지는 않는다. 통신 실패·부분 성공에 대한 보상이나 일관성 정책이 필요할 수 있다.

선지별 해설

  • ① 오답. HTTP API나 메시징은 서비스 간 통신에 사용하는 일반적인 방법이다.
  • ② 오답. 업무 기능 경계와 독립 배포는 핵심 특성이다.
  • ③ 오답. 서비스별로 적합한 기술을 선택할 수 있다.
  • ④ 정답. 단일 스키마 공유 의무도 없고 서비스 간 트랜잭션 일관성도 자동 보장되지 않는다.

편집 해설 근거: Microsoft Azure Architecture Center, Microservices architecture style (2026-10-05 확인) — What are microservices?; Challenges: Data integrity; Best practices

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 허용 크기를 초과하는 비정상적인 ICMP 패킷을 전송하여 시스템을 마비시키는 공격은?

  1. Ping of Death
  2. Phishing
  3. SQL Injection
  4. Session Hijacking
정답과 해설 보기

정답: 1

정답은 ① Ping of Death이다. 고전적인 공격은 조각난 ICMP 에코 요청이 재조립되었을 때 IPv4 패킷의 허용 최대 크기 65,535바이트를 넘도록 하여 취약한 구현의 처리 오류를 유발하는 방식이었다. 단순히 정상적인 큰 파일을 전송하는 것과 다르다.

수많은 정상 요청으로 대역폭이나 처리량을 소모시키는 핑 플러딩과도 구별한다. 피싱은 속임수로 정보를 얻는 행위, SQL 삽입은 데이터가 질의 구문으로 해석되도록 만드는 취약점 악용, 세션 하이재킹은 다른 사용자의 세션을 가로채는 공격이다. 현재 모든 시스템이 이 오래된 패킷 처리 결함에 취약하다고 일반화하지 않는다.

선지별 해설

  • ① 정답. 허용 크기를 초과하는 비정상 재조립 패킷의 처리 결함을 이용하는 고전적 공격이다.
  • ② 오답. 신뢰할 만한 주체를 사칭하는 등의 기만으로 정보를 얻는 공격이다.
  • ③ 오답. 입력을 SQL 구문으로 해석시키는 취약점 악용이다.
  • ④ 오답. 인증된 세션을 가로채거나 도용하는 공격이다.

편집 해설 근거: IETF RFC 4732, Internet Denial-of-Service Considerations (2006) — §2.1.1 Software Vulnerabilities

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

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

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

자료 기준·검수 정보