문제지 PDF · 웹 정답 해설

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

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

후기복원 100문항 시험기간 2024-02-15 ~ 2024-03-07 근거 기준일 2026-10-08

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

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

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

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

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

1. 설계 검토 회의에서 다음 항목을 판단한다. 사용자 요구사항 분석에 활용되는 가상의 인물로, 어떤 제품을 사용할 집단에 있는 다양한 사용자 유형을 대표하는 것은 어떤 용어인가?

  1. 페르소나
  2. 액션 빌더
  3. 액터
  4. 스크럼 마스터
정답과 해설 보기

정답: 1

정답은 ① 페르소나이다. 페르소나는 목표 사용자의 행동·목표·필요를 이해하기 위해 만드는 구체적인 가상 사용자상이다. 실제 사용자 집단에 대한 조사 결과를 반영하면 기능 우선순위와 화면 흐름을 판단할 때 누구의 문제를 해결하는지 떠올리기 쉽다.

특정 실존 인물의 개인정보를 복제하는 것이 목적은 아니다. UML의 액터는 시스템과 상호작용하는 역할을 나타내므로, 동기와 사용 맥락까지 담은 페르소나와 표현 목적이 다르다.

선지별 해설

  • ① 정답. 사용자 집단의 주요 특성을 대표하는 가상 사용자상이다.
  • ② 오답. 제시된 가상 사용자 모델의 명칭이 아니다.
  • ③ 오답. 액터는 시스템과 상호작용하는 외부 역할을 나타낸다.
  • ④ 오답. Scrum이 제대로 이루어지도록 돕는 책무다.

편집 해설 근거: Nielsen Norman Group — Personas: Study Guide — What Is a Persona?; OMG UML 2.5.1 (2017) — §18.2 Actors

2. 바람직한 소프트웨어 설계 원칙으로 부적절한 것은?

[학습용 개정문항]

  1. 합의된 요구사항을 설계에 반영한다.
  2. 요구사항과 설계·구현·시험 사이의 추적성을 유지한다.
  3. 모든 시스템에서 모든 모듈을 반드시 동일한 수평 계층에 배치한다.
  4. 자료 구조와 처리 동작을 명확히 표현한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 설계는 합의된 요구사항을 구조와 인터페이스, 데이터와 동작으로 구체화한다. 요구사항과 설계·구현·시험 간 연결을 추적할 수 있으면 변경 영향과 충족 여부를 확인하기 쉽다.

모듈의 수평 배치만으로 좋은 설계가 결정되지는 않는다. 시스템 특성에 따라 계층, 서비스, 이벤트 등의 구조를 선택하며 응집도·결합도와 품질 요구를 함께 고려한다. 어떤 프로젝트에서나 모든 모듈을 같은 층에 두어야 한다는 규칙은 없다.

선지별 해설

  • ① 오답. 합의된 요구사항이 설계에 반영되어야 한다.
  • ② 오답. 추적 가능성은 충족 여부와 변경 영향을 확인하는 데 도움이 된다.
  • ③ 정답. 모든 모듈을 수평 구조로 배치해야 한다는 보편 규칙은 없다.
  • ④ 오답. 데이터와 처리 동작을 명확하게 기술해야 구현·시험이 가능하다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design — Design Principles; Software Requirements — Requirements Tracing

3. 데이터와 그 데이터에 관련된 동작을 객체 단위로 묶고, 객체의 책임과 협력을 중심으로 구성하는 설계 방식은?

[학습용 개정문항]

  1. 상향식 설계
  2. 하향식 설계
  3. 객체지향 설계
  4. 절차지향 설계
정답과 해설 보기

정답: 3

정답은 ③ 객체지향 설계이다. 객체는 상태를 나타내는 데이터와 그 상태에 관련된 동작을 함께 다룬다. 클래스의 책임과 객체 사이의 협력을 정하고 공개 인터페이스를 통해 기능을 사용하게 하여 내부 구현에 대한 의존을 줄일 수 있다.

객체지향이라는 이유만으로 설계가 항상 느리거나 어렵다고 단정할 수는 없다. 재사용성과 유지보수성도 자동으로 보장되지 않으며 책임 분담과 결합도 등 실제 설계 품질에 달려 있다. 상향식·하향식은 분해와 조립의 진행 방향을 구분하는 말이다.

선지별 해설

  • ① 오답. 작은 요소를 결합해 전체를 구성하는 설계 진행 방향이다.
  • ② 오답. 전체 기능을 세부 기능으로 나누는 설계 진행 방향이다.
  • ③ 정답. 데이터와 관련 동작을 객체의 상태와 행위로 함께 설계한다.
  • ④ 오답. 처리 절차와 기능 분해를 중심으로 설계하는 접근이다.

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

4. ISO/IEC 25010:2011의 제품 품질 모델에서 주특성에 해당하지 않는 것은?

[학습용 개정문항]

  1. 기능 적합성
  2. 성능 효율성
  3. 종속성
  4. 사용성
정답과 해설 보기

정답: 3

정답은 ③ 종속성이다. ISO/IEC 25010:2011의 제품 품질 모델은 기능 적합성, 성능 효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성의 여덟 주특성으로 구성된다. 종속성은 이 목록의 주특성 이름이 아니다.

여기서 판별 기준은 2011년 판본이다. 품질 모델은 개정될 수 있으므로 판본을 생략한 채 특성 수와 이름을 영구적인 목록처럼 외우지 않는다. 또한 제품 품질 모델과 같은 판본의 사용 품질 모델은 구분해서 읽어야 한다.

선지별 해설

  • ① 오답. 기능 적합성은 2011년 제품 품질 모델의 주특성이다.
  • ② 오답. 성능 효율성도 이 모델의 주특성이다.
  • ③ 정답. 종속성은 해당 여덟 주특성에 포함되지 않는다.
  • ④ 오답. 사용성은 해당 판본의 제품 품질 주특성이다.

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

5. 컴포넌트에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 다른 컴포넌트와 결합하려면 반드시 그 내부 구현을 직접 수정해야 한다.
  2. UI, 데이터 접근, 업무 로직 등 다양한 기능을 담당할 수 있다.
  3. 다른 컴포넌트와 조합해 복잡한 시스템을 구성할 수 있다.
  4. 기능을 캡슐화하고 인터페이스를 통해 재사용·교체할 수 있는 모듈 단위다.
정답과 해설 보기

정답: 1

정답은 ①이다. 컴포넌트는 기능을 캡슐화하고 제공·요구 인터페이스를 통해 다른 부분과 협력하는 모듈 단위다. 인터페이스와 계약을 유지하면 다른 구현으로 교체하거나 여러 컴포넌트를 조합하는 설계를 할 수 있다.

컴포넌트가 UI나 데이터 접근, 업무 로직을 맡을 수도 있고 기반 기능을 제공할 수도 있다. 따라서 기반 구조를 제공한다는 이유만으로 컴포넌트가 아니라고 할 수 없다. 다른 컴포넌트의 내부 구현을 무조건 직접 수정해야 한다는 설명이 캡슐화와 어긋난다.

선지별 해설

  • ① 정답. 타 컴포넌트의 내부를 직접 수정하는 것이 조합의 필수 조건은 아니다.
  • ② 오답. 서로 다른 기능과 계층의 컴포넌트를 만들 수 있다.
  • ③ 오답. 정의된 인터페이스를 이용해 컴포넌트들을 조합할 수 있다.
  • ④ 오답. 기능을 캡슐화한 모듈 단위로 재사용·교체를 설계할 수 있다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §11.6 Components — Semantics

6. 사용자의 과업 수행을 돕는 UI 설계 원칙으로 부적절한 것은?

[학습용 개정문항]

  1. 대상 사용자가 배우고 익히기 쉽게 구성한다.
  2. 입력 오류가 나면 위치와 이유를 숨기고 같은 입력만 반복하게 한다.
  3. 일관된 용어와 배치로 불필요한 이해 부담을 줄인다.
  4. 사용자가 의도한 목적을 정확하게 달성하도록 돕는다.
정답과 해설 보기

정답: 2

정답은 ②이다. 입력 오류를 줄이려면 요구 형식을 알리고 가능한 범위를 안내하며, 오류가 발생했을 때 어느 입력에 어떤 문제가 있는지 사용자가 이해할 수 있게 알려야 한다. 알고 있는 수정 방법도 적절히 제시하면 사용자가 작업을 이어가기 쉽다.

오류를 숨긴 채 같은 입력을 반복하게 만드는 것은 사용성을 낮춘다. 좋은 UI는 대상 사용자의 경험과 사용 환경에 맞게 학습과 과업 수행을 지원한다. 누구에게나 아무 학습 없이 완벽히 사용된다는 절대적인 보장과는 다르다.

선지별 해설

  • ① 오답. 대상 사용자가 배우기 쉬운 구성은 적절한 목표다.
  • ② 정답. 오류 위치와 이유를 숨기면 사용자가 문제를 해결하기 어렵다.
  • ③ 오답. 일관된 표현은 불필요한 이해 부담을 줄인다.
  • ④ 오답. 사용자의 목표 달성을 지원해야 한다.

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

7. LOC 규모를 삼점 추정할 때 사용하는 O·M·P의 입력 구성요소에 해당하지 않는 것은?

[학습용 개정문항]

  1. 비관 추정치 P
  2. 개발 완료 후 실제 측정치
  3. 가장 가능성 높은 추정치 M
  4. 낙관 추정치 O
정답과 해설 보기

정답: 2

정답은 ② 실제 측정치이다. 삼점 추정에서 O는 낙관적인 추정, M은 가장 가능성이 높은 추정, P는 비관적인 추정을 뜻한다. 이 세 값을 이용해 불확실성을 반영한 대표 예측값을 계산한다.

실제 측정값은 예측의 정확성을 평가하거나 다음 추정을 보정하는 자료가 될 수 있지만, 이 세 가지 예측 입력의 이름 중 하나는 아니다. M을 계산 결과인 기대값과 혼동하지 않도록 최빈 추정치라고 구별한다.

선지별 해설

  • ① 오답. 비관 추정치 P는 삼점 추정의 입력이다.
  • ② 정답. 완료 후 실제 측정치는 O·M·P의 구성요소 이름이 아니다.
  • ③ 오답. 가장 가능성 높은 추정치 M은 입력이다.
  • ④ 오답. 낙관 추정치 O도 입력이다.

편집 해설 근거: R. G. Batson, NASA TM-100311 Program Risk Analysis Handbook (1987) — 분포 추정 — best case, most likely, worst case 입력 설명

8. 요구사항·설계·구현·시험을 순차적인 단계로 구성하고, 각 단계의 산출물을 검토하여 다음 단계의 작업으로 이어가는 대표적인 개발 모델은?

[학습용 개정문항]

  1. 프로토타입 모델
  2. 폭포수 모델
  3. 나선형 모델
  4. 스크럼 모델
정답과 해설 보기

정답: 2

정답은 ② 폭포수 모델이다. 요구사항, 설계, 구현, 시험 등의 단계를 순차적으로 구성하고 단계별 산출물과 검토를 바탕으로 다음 작업을 진행하는 형태가 대표적이다. 단계와 책임, 산출물을 구분하기 쉽다는 특징이 있다.

그렇다고 이미 만든 기능을 절대로 보완할 수 없다는 뜻은 아니다. 변경이 발생하면 앞 단계의 산출물을 다시 검토하고 수정할 수 있지만 연쇄적인 재작업이 생길 수 있다. 시제품 중심의 학습이나 위험 분석 중심의 반복과 구분하여 모델을 판단한다.

선지별 해설

  • ① 오답. 시제품을 통해 요구와 사용성을 탐색하는 접근이다.
  • ② 정답. 단계별 산출물을 검토하며 순차적으로 진행하는 형태다.
  • ③ 오답. 위험 분석과 해소를 중심으로 순환한다.
  • ④ 오답. 짧은 스프린트에서 점검과 적응을 반복하는 프레임워크다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Process — Software Life Cycle Models

9. 애자일의 가치와 원칙에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 고객의 피드백은 가능한 한 긴 기간 동안 미루어 반영한다.
  2. 프로세스와 도구보다 개인과 상호작용을 더 중시한다.
  3. 계획을 따르기보다 변화에 대응하는 것을 더 중시한다.
  4. 계약 협상보다 고객과의 협력을 더 중시한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 애자일 원칙은 가치 있는 소프트웨어를 조기에, 지속적으로 전달하며 짧은 주기로 작동하는 결과물을 제공하는 것을 중시한다. 피드백을 얻고 변화에 대응하려는 접근이므로 일부러 긴 기간 동안 고객 의견을 미루는 설명은 맞지 않는다.

애자일 선언은 개인과 상호작용, 작동하는 소프트웨어, 고객 협력, 변화 대응을 각각의 비교 대상보다 더 중시한다. 문서·도구·계획을 전부 없애자는 뜻은 아니다. Scrum과 XP 역시 애자일과 별개인 반대 개념이 아니다.

선지별 해설

  • ① 정답. 고객 피드백을 장기간 미루는 것이 애자일의 지향점은 아니다.
  • ② 오답. 개인과 상호작용을 더 중시하는 가치에 부합한다.
  • ③ 오답. 변화 대응을 더 중시한다고 명시한다.
  • ④ 오답. 고객과의 협력은 선언의 핵심 가치다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — Manifesto for Agile Software Development — 네 가지 가치; Principles behind the Agile Manifesto — Principles 1, 3 and 4

10. 설계 검토 회의에서 다음 항목을 판단한다. 좋은 SW 설계를 위한 방침으로 타당한 설명을 고르면?

  1. 응집도는 낮추고, 결합도는 높여야 한다.
  2. 응집도와 결합도를 모두 낮춰야 한다.
  3. 응집도와 결합도는 모두 높여야 한다.
  4. 응집도는 높이고, 결합도는 낮추어야 한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 응집도는 한 모듈 내부의 요소들이 하나의 책임이나 목적에 얼마나 밀접하게 관련되는지를 나타낸다. 결합도는 모듈 사이의 의존 정도를 나타낸다. 내부 역할을 명확히 모으고 외부 의존을 줄이는 방향이 보통 변경과 시험에 유리하다.

예를 들어 주문 금액 계산을 한 모듈에 모으되 다른 모듈의 내부 변수에 직접 접근하지 않으면 책임과 변경 범위를 이해하기 쉽다. 높은 응집도·낮은 결합도는 설계 목표이며 모든 성능·운영 요구를 대신하는 단일 점수는 아니다.

선지별 해설

  • ① 오답. 내부 관련성은 낮고 외부 의존은 높아지는 방향이다.
  • ② 오답. 결합도를 낮추는 것은 좋지만 응집도까지 낮출 필요는 없다.
  • ③ 오답. 응집도는 높이되 불필요한 외부 의존은 줄여야 한다.
  • ④ 정답. 관련 책임을 모으고 모듈 간 의존을 줄인다.

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

11. 고전 COCOMO의 세 개발 모드 중, 유사 시스템 경험과 환경 제약 등에서 Organic과 Embedded 사이의 특성을 갖는 모드는?

[학습용 개정문항]

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

정답: 1

정답은 ① Semi-Detached이다. 고전 COCOMO는 Organic, Semi-Detached, Embedded의 개발 모드를 구분한다. Semi-Detached는 친숙하고 제약이 비교적 적은 Organic과 환경·인터페이스 제약이 강한 Embedded 사이의 특성을 갖는 프로젝트를 다룬다.

Boehm의 분류표는 제품 목표에 대한 이해, 유사 시스템 경험, 외부 규격 준수 요구와 규모 등을 함께 비교한다. 코드 줄 수만 보고 모든 OS나 DBMS를 같은 모드로 결정하면 안 된다. 여기서는 현대 COCOMO II의 단계 구분을 묻는 것이 아니다.

선지별 해설

  • ① 정답. 경험과 제약 등이 두 극단 사이에 있는 고전 모드다.
  • ② 오답. 친숙하고 비교적 제약이 적은 환경에 가까운 모드다.
  • ③ 오답. 환경·인터페이스 등의 강한 제약을 받는 모드다.
  • ④ 오답. Detached는 제시한 고전 COCOMO의 세 모드 중 하나가 아니다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Table IV — COCOMO Software Development Modes

12. XP(Extreme Programming)의 대표적인 개발 실천을 올바르게 설명한 것은?

[학습용 개정문항]

  1. 제품 책임자·스크럼 마스터 등의 책무만을 XP의 정의로 삼는다.
  2. 짝 프로그래밍, 테스트, 지속적 통합과 리팩터링을 함께 실천한다.
  3. 스프린트라는 이름의 반복 주기만 사용하면 XP의 모든 실천을 충족한다.
  4. 소멸 차트를 작성하는 것으로 개발 실천을 모두 대체한다.
정답과 해설 보기

정답: 2

정답은 ②이다. XP는 짧은 피드백 주기와 함께 테스트, 단순한 설계, 리팩터링, 짝 프로그래밍, 지속적인 통합 같은 개발 실천을 서로 연결한다. 사용자 스토리는 고객이 필요로 하는 기능과 우선순위를 논의하는 데 활용한다.

Scrum의 책무나 스프린트라는 용어를 XP의 고유 정의로 대신할 수는 없다. 실제 팀이 Scrum과 XP의 실천을 함께 활용할 수 있으므로 둘을 서로 배타적인 활동 목록으로 보아서도 안 된다. 이 문제는 XP의 대표적인 기술 실천을 묻는다.

선지별 해설

  • ① 오답. Product Owner와 Scrum Master 등의 책무는 Scrum에서 정의한다.
  • ② 정답. 짝 프로그래밍·테스트·리팩터링은 XP의 대표적인 실천이다.
  • ③ 오답. 스프린트 자체가 XP를 구별하는 고유 기술 실천은 아니다.
  • ④ 오답. 진행량 차트만으로 XP의 개발 실천을 정의할 수 없다.

편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — Pair Programming; Testing; Refactoring; Small Releases; Schwaber·Sutherland, The Scrum Guide (2020) — Scrum Team; Scrum Events — The Sprint

13. 설계 검토 회의에서 다음 항목을 판단한다. HIPO 다이어그램에 해당하지 않는 것은 어떤 용어인가?

  1. 세부적 도표
  2. 총체적 도표
  3. 순차적 도표
  4. 가시적 도표
정답과 해설 보기

정답: 3

정답은 ③ 순차적 도표이다. HIPO는 기능의 계층 구조와 입력·처리·출력을 함께 문서화하는 기법이다. 가시적 목차는 전체 기능과 하위 기능의 위치를 보여 주고, 총괄 도표와 상세 도표는 IPO 내용을 서로 다른 상세 수준으로 나타낸다.

순차적 도표는 이 세 구성의 이름이 아니다. HIPO에 처리 순서에 관한 설명을 적을 수 있다는 사실과 도표 종류의 명칭은 구별해야 한다. 계층 구조만 확인한 뒤 실제 입력과 출력의 관계를 빠뜨리지 않는 것이 핵심이다.

선지별 해설

  • ① 오답. 상세 수준의 입력·처리·출력을 나타내는 도표다.
  • ② 오답. 기능의 입력·처리·출력을 개괄하는 도표다.
  • ③ 정답. HIPO의 대표적인 세 구성 도표에 해당하지 않는다.
  • ④ 오답. 가시적 목차는 기능 계층과 도표 위치를 보여 준다.

편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — HIPO — Visual Table of Contents; Overview and Detail Diagrams

14. Nassi–Shneiderman(NS) 차트의 기본 제어 구조에 해당하지 않는 것은?

[학습용 개정문항]

  1. 선택
  2. 반복
  3. 순차
  4. 임의 위치로의 GOTO 이동
정답과 해설 보기

정답: 4

정답은 ④ 이동이다. Nassi–Shneiderman 차트는 처리 흐름을 중첩된 구조로 나타내며 순차 실행, 조건에 따른 선택, 조건을 가진 반복을 표현한다. 구조화된 블록을 이용해 제어 흐름을 읽을 수 있도록 한다.

여기서 이동은 임의의 위치로 분기하는 GOTO 방식의 이동을 뜻하며 기본 구성으로 나열하는 순차·선택·반복과 구별된다. 블록 안에 데이터를 이동시키는 대입문을 쓸 수 없다는 의미는 아니다. 제어 구조와 문장 속 데이터 조작을 혼동하지 않는다.

선지별 해설

  • ① 오답. 조건에 따라 분기를 선택하는 구조를 표현한다.
  • ② 오답. 조건에 따른 반복 구조를 표현한다.
  • ③ 오답. 문장을 순서대로 실행하는 구조를 표현한다.
  • ④ 정답. 임의 위치로의 GOTO 이동은 나열한 기본 구조가 아니다.

편집 해설 근거: Nassi·Shneiderman, Flowchart techniques for structured programming (1973), 저자 제공 원문 — Nassi and Shneiderman (1973), 기본 구조와 중첩 표현 도형

15. 소프트웨어 공학 활동을 지원하는 CASE 도구의 기능과 목적이 다른 것은?

[학습용 개정문항]

  1. 요구사항과 설계 모델을 저장하고 추적한다.
  2. 설계 모델의 일관성을 점검한다.
  3. 소프트웨어 개발과 무관한 택배 배송 경로만 안내한다.
  4. 모델이나 명세에서 일부 소스 코드를 생성한다.
정답과 해설 보기

정답: 3

정답은 ③이다. CASE는 소프트웨어 공학 활동을 컴퓨터 도구로 지원하는 접근이다. 요구사항과 모델을 저장·관리하거나 모델의 일관성을 점검하고 일부 코드를 생성하는 기능 등이 개발 산출물의 작성과 관리에 도움을 준다.

택배 배송 경로만 안내하는 일반 서비스는 제시한 목적의 CASE 기능과 관련이 없다. CASE의 범위와 조합은 도구마다 다르며 모든 CASE 제품이 모든 생명주기 작업을 자동 수행하는 것도 아니다. 막연한 원천 기술 목록보다 지원하는 실제 작업으로 판단한다.

선지별 해설

  • ① 오답. 모델과 요구사항을 관리하는 기능은 개발 활동을 지원한다.
  • ② 오답. 모델의 불일치를 찾는 기능도 지원 활동에 해당한다.
  • ③ 정답. 일반 배송 안내는 이 문항의 소프트웨어 공학 지원 기능이 아니다.
  • ④ 오답. 모델에서 코드를 생성하는 기능은 자동화 지원의 예다.

편집 해설 근거: ISO/IEC 14102:2008, Guideline for the evaluation and selection of CASE tools, 공개 개요 — ISO/IEC 14102 — CASE tools evaluation and selection의 Scope

16. 2011년 판본에서 소프트웨어 제품 품질을 기능 적합성·성능 효율성 등을 포함한 여덟 주특성으로 정의한 모델의 표준 번호는?

[학습용 개정문항]

  1. ISO/IEC 25010
  2. ISO/IEC 29119
  3. ISO/IEC 12207
  4. ISO/IEC 12119
정답과 해설 보기

정답: 1

정답은 ① ISO/IEC 25010이다. 이 문제는 2011년 판본에서 제품 품질을 여덟 주특성으로 정리한 모델의 문서 번호를 묻는다. 해당 표준은 제품 품질 모델과 사용 품질 모델을 구분하여 품질 요구와 평가의 공통 틀을 제공한다.

다른 표준도 소프트웨어 품질과 연관될 수 있지만 같은 모델을 정의하는 것은 아니다. 29119는 시험, 12207은 생명주기 프로세스, 12119는 소프트웨어 패키지의 품질 요구와 시험이라는 별도의 범위를 갖는다. 따라서 품질 관련 문서라는 말만으로 구별하지 않는다.

선지별 해설

  • ① 정답. 2011년 판본이 해당 제품 품질 모델을 정의한다.
  • ② 오답. 소프트웨어 시험을 다루는 표준 계열이다.
  • ③ 오답. 소프트웨어 생명주기 프로세스를 다룬다.
  • ④ 오답. 소프트웨어 패키지의 품질 요구와 시험을 다룬 과거 표준이다.

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

17. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중, 밀접도가 가장 낮은 응집도는 어떤 용어인가?

  1. Functional
  2. Coincidental
  3. Sequential
  4. Procedural
정답과 해설 보기

정답: 2

정답은 ② 우연적 응집이다. 우연적 응집은 서로 뚜렷한 목적상의 관련이 없는 기능들이 편의상 한 모듈에 모인 상태다. 내부 요소를 함께 두어야 할 이유가 약하므로 제시된 네 종류 중 응집이 가장 낮다.

기능적 응집은 하나의 목적 수행에 요소들이 기여하고, 순차적 응집은 앞 처리의 출력이 다음 처리의 입력으로 연결된다. 절차적 응집은 정해진 수행 순서 때문에 묶이는 형태다. 같은 파일에 있다는 물리적 사실만으로 높은 응집이라고 판단할 수는 없다.

선지별 해설

  • ① 오답. 하나의 기능적 목적에 기여하는 높은 응집이다.
  • ② 정답. 서로 무관한 기능을 우연히 모은 경우다.
  • ③ 오답. 출력과 입력의 연결이라는 관련성이 있다.
  • ④ 오답. 실행 절차의 순서라는 관련성이 있다.

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

18. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중, 다이어그램의 종류가 나머지 셋과 다른 하나는 어떤 용어인가?

  1. 유스케이스 다이어그램
  2. 클래스 다이어그램
  3. 활동 다이어그램
  4. 상호작용 다이어그램
정답과 해설 보기

정답: 2

정답은 ② 클래스 다이어그램이다. 클래스 다이어그램은 클래스의 속성·연산과 클래스 사이 관계 같은 정적인 구조를 나타내는 구조 다이어그램이다. 실행 시간에 발생하는 사건의 순서 자체를 표현하는 것이 주목적은 아니다.

유스케이스 다이어그램과 활동 다이어그램은 행위 다이어그램에 속한다. 상호작용 다이어그램도 객체 사이 메시지 교환 등의 행위를 다루는 범주다. 상호작용은 하나의 구체적 도표 이름만이 아니라 시퀀스 등 여러 도표를 묶는 분류라는 점도 구별한다.

선지별 해설

  • ① 오답. 시스템과 액터의 사용 관점을 나타내는 행위 다이어그램이다.
  • ② 정답. 클래스와 관계의 정적인 구조를 나타낸다.
  • ③ 오답. 작업과 제어·객체 흐름을 나타내는 행위 다이어그램이다.
  • ④ 오답. 메시지 교환을 다루는 행위 다이어그램 범주다.

편집 해설 근거: OMG UML 2.5.1 (2017) — Annex B §B.3 — Taxonomy of UML Diagrams

19. UML 2.5.1의 연관(Association)과 그 표기에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 이항 연관은 두 분류자를 잇는 실선으로 표시할 수 있다.
  2. 연관은 둘 이상의 타입에 속하는 인스턴스 사이의 연결을 나타낸다.
  3. 모든 연관에는 반드시 채운 마름모를 표시해야 한다.
  4. 연관 끝의 탐색 가능성을 열린 화살촉으로 표시할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. UML의 연관은 타입에 속한 인스턴스 사이의 연결을 나타내며 두 끝을 가진 이항 연관은 보통 실선으로 그린다. 탐색 가능성을 표시할 때는 해당 연관 끝에 열린 화살촉을 붙일 수 있다.

채운 마름모는 합성 집약을 표시하는 특별한 표기이지 모든 연관에 붙여야 하는 기호가 아니다. 집약과 합성을 연관과 완전히 무관한 관계로 단정해서도 안 된다. 연관의 일반 개념, 집약 종류, 탐색 가능성은 서로 다른 정보다.

선지별 해설

  • ① 오답. 이항 연관은 두 분류자를 잇는 실선으로 표현할 수 있다.
  • ② 오답. 연관은 둘 이상의 타입의 인스턴스 사이 연결을 다룬다.
  • ③ 정답. 모든 연관이 합성이거나 채운 마름모를 가져야 하는 것은 아니다.
  • ④ 오답. 열린 화살촉으로 연관 끝의 탐색 가능성을 나타낼 수 있다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §11.5 Associations — Semantics and Notation

20. 기능별 LOC를 추정한 뒤 합산해 전체 규모를 구하고 생산성·인건비로 노력을 산정하는 방법에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 기능별 낙관·최빈·비관 추정치를 활용할 수 있다.
  2. 인월 단위의 노력과 인월당 인건비로 비용을 추정할 수 있다.
  3. 기능별 값을 합산하는 이 절차는 하향식 추정이다.
  4. 규모와 생산성, 인력 투입 가정을 이용해 노력과 기간을 추정할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 기능별 코드 규모를 먼저 추정하고 그 값을 합해 전체 규모와 노력을 구하는 절차는 작은 단위에서 전체로 올라가는 상향식 추정이다. LOC라는 크기 단위를 쓴다는 사실만으로 추정 방향이 결정되는 것은 아니며, 이 문제에서는 합산 절차가 제시되어 있다.

규모를 LOC/인월 단위의 생산성으로 나누면 노력의 인월 값을 추정할 수 있고, 이를 인월당 비용과 결합하면 개발 비용을 계산한다. 기간을 구할 때는 인력 투입 가정도 필요하며 인원을 두 배로 늘린다고 일정이 항상 절반이 되는 것은 아니다.

선지별 해설

  • ① 오답. 기능별 규모를 추정할 때 불확실성을 반영할 수 있다.
  • ② 오답. 인월 노력과 인월당 비용을 결합해 비용을 추정할 수 있다.
  • ③ 정답. 제시한 기능별 추정 후 합산은 상향식이다.
  • ④ 오답. 규모와 생산성·인력 가정 등을 이용해 노력과 기간을 추정할 수 있다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Software Cost-Estimation Techniques — Algorithmic models; Bottom-up estimation

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

21. 중복되는 부분 문제의 답을 저장하여 재사용하고, 작은 문제부터 표를 채워 큰 문제의 답을 구하는 알고리즘 설계 기법은?

[학습용 개정문항]

  1. 재귀적 알고리즘
  2. 근사 알고리즘
  3. 분할 정복법
  4. 동적 계획법
정답과 해설 보기

정답: 4

정답은 ④ 동적 계획법이다. 작은 부분 문제의 해를 저장하고 같은 부분 문제가 다시 필요할 때 재사용하여 큰 문제를 푸는 접근이다. 상향식 표 채우기는 기초 경우부터 값을 계산해 더 큰 문제의 답으로 확장하는 구현 방식이다.

동적 계획법을 반드시 반복문으로만 구현해야 하는 것은 아니다. 재귀 호출에 메모이제이션을 결합한 하향식 방식도 가능하다. 단순히 문제를 작은 문제로 나눈다는 설명만으로는 분할 정복과 구별하기 어려우므로 중복 부분 문제의 결과를 저장·재사용한다는 조건을 살핀다.

선지별 해설

  • ① 오답. 재귀는 자기 호출 방식이며 계산 결과 재사용을 자동 보장하지 않는다.
  • ② 오답. 근사해를 구한다는 의미와 부분 문제 결과 저장은 다른 기준이다.
  • ③ 오답. 문제 분할만으로 중복 부분 문제의 해 재사용을 뜻하지 않는다.
  • ④ 정답. 부분 문제의 답을 저장·재사용하는 동적 계획법이다.

편집 해설 근거: NIST DADS — dynamic programming — Definition — caching subproblem solutions

22. 개발·시험 담당자가 다음 사례를 검토한다. 아래 트리를 In-Order 방식으로 운행할 경우 올바른 순서는 어떤 용어인가? <트리 구조> 루트 노드는 F이다. F의 왼쪽 자식은 A이다. A의 왼쪽 자식은 B, 오른쪽 자식은 C이다. B의 왼쪽 자식은 D이다. C의 왼쪽 자식은 E이다. E의 왼쪽 자식은 G, 오른쪽 자식은 H이다. <조건> 중위 순회는 왼쪽 서브트리 → 루트 → 오른쪽 서브트리 순서로 방문한다.

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

정답: 4

정답은 ④ D B A G E H C F이다. 중위 순회는 각 노드에서 왼쪽 부분 트리를 먼저 방문한 다음 자신을 방문하고 오른쪽 부분 트리로 이동한다. F에는 왼쪽 부분 트리만 있으므로 F는 전체 순서의 마지막이다.

A의 왼쪽에서는 D 다음 B를 방문한 뒤 A로 돌아온다. A의 오른쪽 C를 방문하기 전에는 C의 왼쪽인 E의 부분 트리를 처리하므로 G → E → H가 먼저 나온다. 이어 C, F를 방문하여 D → B → A → G → E → H → C → F가 된다.

선지별 해설

  • ① 오답. A가 자신의 오른쪽 부분 트리보다 늦고 F가 중간에 있어 규칙에 어긋난다.
  • ② 오답. 알파벳 순서는 제시한 트리의 중위 순서가 아니다.
  • ③ 오답. A를 왼쪽 부분 트리의 D·B보다 먼저 방문했다.
  • ④ 정답. 모든 노드에서 왼쪽 → 자신 → 오른쪽 순서를 지킨다.

편집 해설 근거: NIST DADS, inorder traversal — Definition — left subtree, root, right subtree

23. 다음 중 최초 해시 주소를 만드는 함수 구성 방법과 달리, 충돌 발생 후 다른 저장 위치를 찾는 방법은?

[학습용 개정문항]

  1. 제산법
  2. 폴딩법
  3. 중간 제곱법
  4. 선형 탐사
정답과 해설 보기

정답: 4

정답은 ④ 선형 탐사이다. 제산법은 나머지 연산을, 폴딩법은 키를 나눈 부분들의 결합을, 중간 제곱법은 키를 제곱한 값의 중간 부분을 이용하여 처음 접근할 버킷 주소를 정하는 해시 함수 구성 방식이다.

선형 탐사는 이미 계산한 위치에서 충돌이 났을 때 다른 위치를 일정한 순서로 찾아보는 개방 주소법의 충돌 해결 기법이다. 최초 주소 계산과 충돌 후 빈 자리 찾기는 역할이 다르다. 난수라는 이름의 존재 여부만으로 해시 함수의 종류를 단정하지 않는다.

선지별 해설

  • ① 오답. 키를 테이블 크기 등으로 나눈 나머지를 주소에 이용한다.
  • ② 오답. 키를 나눈 조각을 결합해 주소를 만든다.
  • ③ 오답. 제곱한 값의 가운데 비트나 자릿수를 주소에 이용한다.
  • ④ 정답. 최초 주소 함수가 아니라 충돌 후 위치를 찾는 탐사 방식이다.

편집 해설 근거: Sartaj Sahni, Data Structures, Algorithms, & Applications in C++ (2004), Hash Functions — Hash Functions — Division; Middle Of Square; Folding; NIST DADS, linear probing — Definition

24. 다음 중 시험 자동화 프레임워크나 브라우저 시험 도구와 달리, 주된 역할이 소스 코드의 컴파일인 것은?

[학습용 개정문항]

  1. STAF
  2. Selenium
  3. FitNesse
  4. GCC
정답과 해설 보기

정답: 4

정답은 ④ GCC이다. GCC는 소스 코드를 전처리·컴파일·어셈블·링크하는 컴파일러 모음이다. 실행할 프로그램을 만드는 데 쓰이며, 테스트를 작성·실행하는 프레임워크 자체를 주목적으로 하는 도구와 구별된다.

STAF는 재사용 가능한 서비스를 통한 시험 자동화를, Selenium은 브라우저 자동화를, FitNesse는 실행 가능한 인수 시험과 협업을 지원한다. 컴파일러를 시험 파이프라인에 포함할 수 있다는 사실과 컴파일러의 주된 역할이 시험 프레임워크라는 주장은 다르다.

선지별 해설

  • ① 오답. STAF는 소프트웨어 시험 자동화를 지원한다.
  • ② 오답. Selenium은 브라우저 동작 자동화를 지원한다.
  • ③ 오답. FitNesse는 협업형 인수 시험 환경을 제공한다.
  • ④ 정답. GCC의 주된 역할은 프로그램의 컴파일과 빌드다.

편집 해설 근거: STAF V3 User Guide, Version 3.4.26 (2016) — Introduction — Software Testing Automation Framework; Selenium 공식 문서, Overview — Overview; FitNesse 공식 프로젝트, Test tool — What is FitNesse?; GNU GCC Manual, Options Controlling the Kind of Output (2026-10-05 확인) — Overall Options — compilation stages

25. DRM(디지털 권리 관리)의 기술적 목적과 동작에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 콘텐츠의 이용 조건과 접근 권한을 관리할 수 있다.
  2. 디지털 파일은 본래 복제가 불가능하므로 DRM은 복제 가능성과 무관하다.
  3. 콘텐츠 암호화와 라이선스·키 관리를 활용할 수 있다.
  4. 허가된 조건에 따라 콘텐츠 이용을 제어하는 데 쓰인다.
정답과 해설 보기

정답: 2

정답은 ②이다. DRM은 콘텐츠의 사용 조건을 표현하고 접근·재생 등 이용을 제어하는 기술을 다룬다. 암호화된 콘텐츠를 배포하고 허가된 라이선스와 키를 이용해 재생하도록 구성하는 방식이 그 예다.

디지털 파일이 본래 복제 불가능하기 때문에 DRM이 생겼다는 설명은 틀리다. 파일은 복제될 수 있으며 DRM은 허용된 이용을 제어하려는 수단이다. DRM을 법률상 저작권 자체와 동일시하거나 적용만 하면 모든 불법 복제를 완전히 막는다고 보장하지 않는다.

선지별 해설

  • ① 오답. 이용 조건과 접근 권한을 관리하는 것이 기술적 목적에 포함된다.
  • ② 정답. 디지털 파일이 본래 복제 불가능하다는 전제가 틀리다.
  • ③ 오답. 콘텐츠 암호화와 라이선스·키의 관리가 사용될 수 있다.
  • ④ 오답. 허가된 조건에 따라 이용을 제어하는 방식이다.

편집 해설 근거: Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Content encryption; W3C Recommendation — ODRL Information Model 2.2 — §2 Information Model — Permission, Prohibition, Duty

26. 정형 기술 검토를 효과적으로 수행하는 방법으로 부적절한 것은?

[학습용 개정문항]

  1. 역할이나 전문성에 관계없이 참가자 수를 무제한으로 늘린다.
  2. 발견한 결함을 기록하고 상세 수정 작업은 필요한 후속 활동으로 배정한다.
  3. 작성자 개인에 대한 비난보다 산출물의 검토에 집중한다.
  4. 의제와 시간을 정하고 불필요한 논쟁을 줄인다.
정답과 해설 보기

정답: 1

정답은 ①이다. 정형 기술 검토는 목적과 범위를 정하고 적절한 역량을 갖춘 참여자가 산출물의 결함을 찾고 기록하는 활동이다. 필요한 역할과 관점을 확보하되 관련성이 없는 사람까지 무제한으로 늘리는 것이 검토 품질을 보장하지는 않는다.

검토는 작성자 개인보다 산출물에 집중하고 발견 사항을 객관적으로 공유해야 한다. 개선 방향을 전혀 논의하지 말아야 한다는 뜻은 아니지만 회의 시간을 모두 구현·수정 작업에 사용하면 결함 발견과 기록이라는 목적을 잃기 쉽다.

선지별 해설

  • ① 정답. 역할과 필요를 고려하지 않는 무제한 확대는 적절하지 않다.
  • ② 오답. 결함을 기록하고 상세 해결 작업을 후속 활동으로 배정할 수 있다.
  • ③ 오답. 작성자에 대한 평가보다 검토 산출물에 집중한다.
  • ④ 오답. 의제와 시간을 관리하고 불필요한 논쟁을 줄인다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process; §3.2.5 Success Factors for Reviews

27. 인수 테스트에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 개별 모듈을 고립시켜 내부 기능과 논리 오류만 검사하는 시험 수준이다.
  2. 업무 요구와 수용 기준 충족에 대한 신뢰를 얻는 데 초점을 둔다.
  3. 알파 시험은 개발 조직의 장소에서 수행하는 형태다.
  4. 베타 시험은 외부 사용자의 환경에서 수행하는 형태다.
정답과 해설 보기

정답: 1

정답은 ①이다. 인수 테스트는 시스템이 사용자의 업무 필요와 수용 기준을 만족하는지 평가하여 수용에 대한 신뢰를 얻는 데 초점을 둔다. 개별 모듈을 고립시켜 내부 기능과 논리를 시험하는 것은 단위 테스트의 전형적인 범위다.

알파 시험과 베타 시험은 인수 시험의 형태가 될 수 있다. 알파는 개발 조직의 장소에서, 베타는 외부 사용자의 환경에서 수행하는 구분이 흔하다. 베타가 통제나 범위가 전혀 없는 시험이라는 뜻은 아니며 참여자·목표·보고 방법을 정할 수 있다.

선지별 해설

  • ① 정답. 개별 모듈을 고립시킨 기능·논리 검사는 단위 테스트의 설명이다.
  • ② 오답. 업무 요구와 수용 기준 충족을 확인한다.
  • ③ 오답. 알파 시험은 개발 조직의 장소에서 이루어지는 형태다.
  • ④ 오답. 베타 시험은 외부 사용자의 환경에서 수행하는 형태다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing; §2.2.4 Acceptance Testing — Alpha and Beta Testing

28. 다음 중 단위·웹 자동 시험 도구와 달리, 주된 역할이 소스 코드의 버전 관리인 것은?

[학습용 개정문항]

  1. CppUnit
  2. Git
  3. JUnit
  4. HttpUnit
정답과 해설 보기

정답: 2

정답은 ② Git이다. Git의 주된 역할은 파일 변경 이력과 버전을 관리하는 것이다. 테스트 코드를 Git 저장소에 보관하거나 CI와 연동할 수 있지만 Git 자체가 단위·웹 시험을 작성하고 실행하는 테스트 프레임워크는 아니다.

CppUnit은 C++의 단위 시험, JUnit은 Java 등의 JVM 환경에서 시험을 작성·실행하는 데 사용한다. HttpUnit은 웹 애플리케이션의 요청과 응답을 자동으로 시험하도록 돕는다. 모든 도구를 동일한 단위 시험 수준으로만 묶지 않고 각 역할을 구별해야 한다.

선지별 해설

  • ① 오답. C++ 단위 시험 프레임워크다.
  • ② 정답. 버전 관리 시스템이라는 주목적이 다르다.
  • ③ 오답. JVM 환경의 시험 작성·실행을 지원한다.
  • ④ 오답. 웹 애플리케이션의 자동 시험을 지원한다.

편집 해설 근거: CppUnit 공식 문서, The Unit Testing Library — CppUnit Documentation — Introduction; JUnit 공식 프로젝트, About — JUnit overview; HttpUnit 공식 프로젝트, Home (보존 소개) — Introduction; Git 공식 프로젝트, About Git — About

29. 정렬된 배열 A=[A,B,C,D,E,F,G,H,I,J,K,L,M,N]에서 E를 이진 탐색한다. low=0, high=13으로 시작하고 mid=floor((low+high)/2)를 사용하며, 일치하지 않으면 mid를 제외한 절반으로 범위를 줄인다. E와 중간 원소를 비교한 횟수는? (경계 검사는 제외한다.)

[학습용 개정문항]

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

정답: 4

정답은 ④ 3회이다. 인덱스가 0~13인 정렬된 배열에서 중간 인덱스를 floor((low+high)/2)로 정하면 첫 비교 대상은 인덱스 6의 G이다. E가 더 작으므로 다음 범위는 0~5가 된다.

두 번째 중간은 인덱스 2의 C이다. E가 더 크므로 3~5를 탐색하고, 세 번째 중간인 인덱스 4의 E에서 찾는다. 비교 대상은 G → C → E다. 반복문의 경계 검사나 한 비교를 구현하는 여러 연산은 세지 않고 탐색 문자와 중간 원소의 비교를 한 번으로 센다.

선지별 해설

  • ① 오답. 지정한 아래쪽 중간 선택에서는 세 번째에 E를 찾는다.
  • ② 오답. 다섯 번까지 탐색할 필요가 없다.
  • ③ 오답. 여섯 번의 비교를 수행하지 않는다.
  • ④ 정답. G, C, E와 차례로 세 번 비교한다.

편집 해설 근거: NIST DADS, binary search — Definition — sorted array and middle element

30. 개발·시험 담당자가 다음 사례를 검토한다. 입력 데이터 간의 관계와 출력에 미치는 영향을 분석하여 테스트 케이스를 설계하여 테스트를 진행하는 기법으로 타당한 설명을 고르면?

  1. Cause-Effect Graphing
  2. Error Guessing
  3. Boundary Value Analysis
  4. Equivalence Partitioning
정답과 해설 보기

정답: 1

정답은 ① 원인·결과 그래프 기법이다. 입력 조건을 원인으로, 그 조합에 따른 출력이나 동작을 결과로 놓고 논리 관계를 모델링한다. 원인 사이의 제약과 AND·OR 등의 관계를 검토하여 시험할 입력 조합과 예상 결과를 정할 수 있다.

경계값 분석은 값의 경계, 동등 분할은 같은 방식으로 처리될 구간에 초점을 둔다. 오류 추정은 경험을 바탕으로 결함이 있을 만한 상황을 고른다. 원인·결과 그래프는 입력 조건들의 조합이 결과에 미치는 논리적 관계가 판별점이다.

선지별 해설

  • ① 정답. 입력 원인과 출력 결과 사이의 논리 관계를 분석한다.
  • ② 오답. 경험에 따라 오류가 예상되는 상황을 고르는 기법이다.
  • ③ 오답. 입력·출력 값의 경계 주변을 중점적으로 시험한다.
  • ④ 오답. 같은 방식으로 처리되는 값의 집합을 나누는 기법이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §3.1.6 Cause-Effect Graphing, 인쇄면 5-11

31. 개발·시험 담당자가 다음 사례를 검토한다. 테스트 진행을 위한 입력값, 실행 조건, 기대 결과 등의 집합을 의미하는 테스트 관련 용어는 어떤 용어인가?

  1. 테스트 드라이버
  2. 테스트 스크립트
  3. 테스트 스위트
  4. 테스트 케이스
정답과 해설 보기

정답: 4

정답은 ④ 테스트 케이스이다. 테스트 케이스는 특정 시험 목표를 확인하기 위한 사전 조건, 입력, 필요한 실행 행동과 기대 결과 등을 묶은 명세다. 예를 들어 로그인 실패를 시험한다면 어떤 계정 상태에서 어떤 값을 입력하고 어떤 응답을 기대하는지 정한다.

테스트 스위트는 여러 테스트 케이스를 모은 집합이고 스크립트는 이를 실행하기 위한 절차나 코드다. 드라이버는 시험 대상에 입력을 제공하며 호출하는 쪽을 대신할 수 있다. 무엇을 확인할지와 어떻게 실행할지의 관점을 구별한다.

선지별 해설

  • ① 오답. 시험 대상을 호출하고 입력을 제공하는 보조 요소다.
  • ② 오답. 시험 실행 절차나 이를 자동화하는 코드를 뜻한다.
  • ③ 오답. 여러 테스트 케이스를 묶은 집합이다.
  • ④ 정답. 사전 조건·입력·기대 결과 등을 갖는 시험 명세다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.4.3 Test Activities and Tasks — Test design and Test implementation

32. 개발·시험 담당자가 다음 사례를 검토한다. V-모델에 의한 테스트 수행 절차를 올바르게 나열한 것은?

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

정답: 1

정답은 ① 단위 → 통합 → 시스템 → 인수 테스트이다. 전형적인 V 모델의 오른쪽에서는 개별 구성 요소의 동작을 확인하고, 요소 사이의 연결을 통합하여 검사한 뒤, 전체 시스템과 수용 기준을 차례로 확인하는 흐름을 설명한다.

이 구분은 시험 범위와 목적에 따른 수준이다. 실제 개발에서는 결함 수정 후 앞 수준의 시험을 다시 수행하거나 여러 수준의 준비·실행이 겹칠 수 있다. 한 번씩만 순서대로 실행하고 끝내야 한다는 절대 규칙으로 이해하지 않는다.

선지별 해설

  • ① 정답. 개별 요소에서 통합·전체 시스템·수용 판단으로 범위를 넓힌다.
  • ② 오답. 전체 통합과 시스템 확인보다 인수 시험을 앞에 둔 전형적 순서가 아니다.
  • ③ 오답. 통합 수준보다 시스템 수준을 먼저 배치했다.
  • ④ 오답. 개별 구성 요소를 확인하는 단위 수준이 맨 마지막에 있다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.1.1 Software Development and Software Testing; §2.2 Test Levels

33. 입력 크기를 n이라 할 때 시간 복잡도 O(1)에 대한 설명으로 옳은 것은?

[학습용 개정문항]

  1. 모든 입력에서 연산을 정확히 한 번만 수행한다.
  2. 연산량이 n에 비례하여 제한 없이 증가한다.
  3. 연산량이 n²에 비례하여 제한 없이 증가한다.
  4. 연산량이 입력 크기와 무관한 상수 상한으로 제한된다.
정답과 해설 보기

정답: 4

정답은 ④이다. O(1)은 입력 크기가 증가해도 연산량이 입력 크기와 무관한 어떤 상수로 제한됨을 나타낸다. 실행 횟수가 반드시 한 번이라는 뜻은 아니며 입력 내용에 따라 두 번 또는 세 번처럼 달라져도 일정한 상한 안에 있으면 상수 시간일 수 있다.

빅 오는 성장률의 점근적 상한을 표현하므로 실제 초 단위 실행 시간이나 모든 입력에서 완전히 같은 횟수를 보장하지 않는다. 일반적인 비용 모형에서 배열의 인덱스 접근 같은 연산을 상수 시간으로 취급하는 것이 그 예다.

선지별 해설

  • ① 오답. O(1)이 반드시 한 번의 연산을 뜻하지는 않는다.
  • ② 오답. n에 비례해 계속 증가하는 연산량은 상수로 제한되지 않는다.
  • ③ 오답. n²에 비례해 증가하는 연산량도 상수로 제한되지 않는다.
  • ④ 정답. 입력 크기와 무관한 상수 상한으로 제한된다.

편집 해설 근거: NIST DADS — Big-O notation — Definition — asymptotic upper bound

34. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중, 소스 코드 정적 분석 도구가 해당하지 않는 것은 어떤 용어인가?

  1. Valgrind
  2. SonarQube
  3. cppcheck
  4. checkstyle
정답과 해설 보기

정답: 1

정답은 ① Valgrind이다. Valgrind의 Memcheck 같은 도구는 프로그램을 실행하면서 잘못된 메모리 접근이나 정의되지 않은 값의 사용 등을 관찰한다. 실행 없이 소스 코드를 분석하는 정적 분석과 구별되는 동적 분석이다.

SonarQube의 코드 분석, Cppcheck의 C/C++ 정적 분석, Checkstyle의 Java 코드 규칙 검사는 소스 코드를 실행하지 않고 점검하는 대표적인 예다. 정적 분석과 동적 분석은 서로 다른 문제를 발견하므로 하나가 다른 하나를 완전히 대신하지는 않는다.

선지별 해설

  • ① 정답. 실행 중 프로그램의 동작을 관찰하는 동적 분석 도구 모음이다.
  • ② 오답. 소스 코드의 품질·보안 문제를 정적으로 분석한다.
  • ③ 오답. C/C++ 소스 코드 정적 분석 도구다.
  • ④ 오답. Java 소스의 코딩 규칙 등을 검사하는 정적 분석 도구다.

편집 해설 근거: Valgrind 공식 문서, Tool Suite: Memcheck — Tool Suite — Memcheck; Cppcheck 공식 저장소, 프로젝트 소개 — Introduction; Checkstyle 공식 프로젝트, About 및 Limitations (2026-10-05 확인) — Overview; Sonar, SonarQube capabilities, Static code analysis — Code quality and static analysis 개요

35. 개발·시험 담당자가 다음 사례를 검토한다. 아래 트리에서 트리의 높이와 노드 9의 깊이를 더한 값은? <트리 구조> 루트 노드는 1이다. 1의 자식은 2, 3이다. 2의 자식은 4, 5이다. 3의 자식은 6, 7이다. 6의 자식은 9이다. <조건> 트리의 높이는 루트에서 가장 깊은 단말 노드까지의 간선 수로 계산한다. 노드의 깊이는 루트에서 해당 노드까지의 간선 수로 계산한다.

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

정답: 2

정답은 ② 6이다. 문제에서 높이와 깊이를 모두 간선 수로 세도록 정했다. 가장 긴 루트-단말 경로는 1 → 3 → 6 → 9이며 간선이 세 개이므로 트리의 높이는 3이다. 노드 9의 깊이도 같은 경로의 간선 수인 3이다.

따라서 두 값을 더하면 3+3=6이다. 노드를 세면 경로에 네 노드가 있지만 이 문제의 기준은 노드 수가 아니다. 루트의 깊이를 0으로 놓고 한 단계 내려갈 때마다 1을 더하면 계산 기준을 유지하기 쉽다.

선지별 해설

  • ① 오답. 제시된 간선 기준으로 합이 9가 되지 않는다.
  • ② 정답. 높이 3과 깊이 3의 합이다.
  • ③ 오답. 한 값만 노드 수 4로 세면 생기는 혼합 계산이다.
  • ④ 오답. 두 값을 모두 경로의 노드 수 4로 센 결과다.

편집 해설 근거: NIST DADS, tree — Definition 및 height·depth 연결 용어

36. 개발·시험 담당자가 다음 사례를 검토한다. 프로그램의 개발 단계별 산출물의 변경 사항 등을 관리하는 기능 및 활동을 뜻하는 용어는 어떤 용어인가?

  1. 생산 관리
  2. 형상 관리
  3. 절차 관리
  4. 유지 보수
정답과 해설 보기

정답: 2

정답은 ② 형상 관리이다. 형상 관리는 관리할 산출물을 식별하고 기준선을 설정하며, 변경 요청과 승인·반영 상태를 추적하고 산출물의 일치성을 확인하는 활동이다. 소스 코드뿐 아니라 선정한 요구사항·설계·시험 문서 등도 형상 항목이 될 수 있다.

버전 관리 도구는 이를 지원하는 수단이지만 커밋 이력만으로 변경 승인과 형상 감사를 모두 대신하지는 않는다. 유지보수는 운영 중 수정·개선을 수행하는 더 넓은 활동이며, 그 변경 과정에서도 형상 관리가 필요하다.

선지별 해설

  • ① 오답. 제시된 산출물 기준선과 변경 추적의 명칭이 아니다.
  • ② 정답. 형상 항목과 그 변경·상태·일치성을 체계적으로 관리한다.
  • ③ 오답. 절차 관리는 여기서 묻는 전문 활동의 명칭이 아니다.
  • ④ 오답. 운영 중 수정·개선 활동이며 형상 관리와 동일하지 않다.

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

37. 같은 테스트 케이스와 데이터만 반복하면 새로운 결함을 발견하는 효과가 줄어들 수 있어 시험을 갱신해야 한다는 원칙은?

[학습용 개정문항]

  1. Absence of Errors Fallacy
  2. Pesticide Paradox
  3. Pareto’s principle
  4. Defect Clustering
정답과 해설 보기

정답: 2

정답은 ② 살충제 패러독스이다. 같은 시험 데이터와 절차만 계속 반복하면 새롭게 드러나는 결함을 찾는 효과가 줄어들 수 있다. 제품과 위험이 바뀌는 만큼 테스트 케이스를 검토하고 수정하며 새로운 관점의 시험을 추가해야 한다.

동일한 시험이 다시는 어떤 결함도 발견할 수 없다는 뜻은 아니다. 기존 동작이 변경으로 깨졌는지 확인하는 회귀 시험은 여전히 가치가 있다. 새 결함 탐색의 관점과 기존 기능의 회귀 확인 목적을 나누어 이해한다.

선지별 해설

  • ① 오답. 결함이 없더라도 사용자 필요를 만족하지 못하면 쓸모없는 제품일 수 있다는 원칙이다.
  • ② 정답. 같은 시험의 반복만으로 새로운 결함을 찾는 효과가 떨어질 수 있다는 원칙이다.
  • ③ 오답. 소수 원인이 많은 결과를 차지하는 경향을 가리킨다.
  • ④ 오답. 결함이 일부 영역에 집중되는 경향이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.3 Seven Testing Principles — Beware of the pesticide paradox

38. 개발 산출물이 명시된 요구사항과 명세를 충족하는지 확인하는 관점에 해당하는 용어는?

[학습용 개정문항]

  1. Validation
  2. Verification
  3. Refactoring
  4. Debugging
정답과 해설 보기

정답: 2

정답은 ② Verification이다. 검증은 산출물이 명시된 요구사항이나 명세를 충족하는지 확인하는 관점이다. 요구 명세에 정한 동작을 설계와 코드가 올바르게 구현했는지 확인하는 상황이 해당한다.

Validation은 제품이 의도된 사용과 사용자 필요에 적합한지를 확인하는 관점이다. 검증은 개발 과정만, 확인은 제품 실행만을 뜻하는 이분법은 정확하지 않다. 정적 검토와 동적 시험 모두 목적에 따라 여러 근거를 제공할 수 있다.

선지별 해설

  • ① 오답. 의도된 사용과 사용자 필요의 충족을 확인하는 관점이다.
  • ② 정답. 명시된 요구사항과 명세의 충족 여부를 확인한다.
  • ③ 오답. 외부 동작을 유지하면서 내부 구조를 개선하는 활동이다.
  • ④ 오답. 결함의 원인을 찾아 수정하는 활동이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.1.1 Typical Objectives of Testing — verification and validation

39. 하향식 통합 테스트에서 루트 모듈부터 시작하여 한쪽 하위 가지를 끝까지 통합·시험한 다음 다른 가지로 이동하는 전략은?

[학습용 개정문항]

  1. 너비 우선 방식
  2. 무작위 통합 방식
  3. 깊이 우선 방식
  4. 상향식 통합 방식
정답과 해설 보기

정답: 3

정답은 ③ 깊이 우선 방식이다. 루트 모듈에서 출발해 한쪽 하위 가지를 먼저 끝까지 통합하고, 그 가지의 시험을 마친 뒤 다른 가지로 이동하는 하향식 통합 전략이다. 같은 깊이의 모듈들을 먼저 넓게 연결하는 너비 우선 방식과 구별된다.

하향식 통합에서는 아직 구현되거나 연결되지 않은 하위 모듈을 대신하는 스텁이 필요할 수 있다. 전위 순회도 깊이 우선 탐색에 속한다. 깊이 우선과 전위 순회는 서로 배타적인 분류가 아니라, 탐색 방향과 노드 방문 순서를 각각 나타내는 관련 개념이다.

선지별 해설

  • ① 오답. 같은 수준의 모듈들을 먼저 폭넓게 통합한다.
  • ② 오답. 특정 가지를 깊게 먼저 진행한다는 조건과 맞지 않는다.
  • ③ 정답. 한 하위 가지를 먼저 끝까지 진행한 뒤 다른 가지로 이동한다.
  • ④ 오답. 하위 모듈부터 상위 모듈로 결합하는 방향이다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing §2.1.2 Integration Testing, 인쇄면 5-7; NIST DADS — depth-first search — Definition and Note

40. 개발·시험 담당자가 다음 사례를 검토한다. 아래 트리를 전위 순회 방식으로 탐색할 경우, 4번째로 방문하게 되는 노드는 어떤 용어인가? <트리 구조> 루트 노드는 C이다. C의 왼쪽 자식은 B, 오른쪽 자식은 F이다. B의 왼쪽 자식은 A, 오른쪽 자식은 E이다. E의 왼쪽 자식은 D이다. F의 오른쪽 자식은 G이다. <조건> 전위 순회는 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 순서로 방문한다.

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

정답: 3

정답은 ③ E이다. 전위 순회는 현재 노드를 먼저 방문하고 왼쪽 부분 트리, 오른쪽 부분 트리 순서로 진행한다. 따라서 루트 C가 첫 번째이고 왼쪽 자식 B가 두 번째, B의 왼쪽 A가 세 번째다.

A의 하위 노드가 없으므로 B의 오른쪽 E를 네 번째로 방문하고, E의 왼쪽 D를 방문한다. 이후 C의 오른쪽으로 넘어가 F와 G를 방문한다. 전체 순서는 C → B → A → E → D → F → G이며, 네 번째를 물었으므로 E를 고른다.

선지별 해설

  • ① 오답. A는 세 번째 방문 노드다.
  • ② 오답. D는 E 다음인 다섯 번째다.
  • ③ 정답. E는 네 번째 방문 노드다.
  • ④ 오답. F는 왼쪽 부분 트리를 마친 뒤 여섯 번째로 방문한다.

편집 해설 근거: NIST DADS, preorder traversal — Definition — root, left subtree, right subtree

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

41. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중, 아래에서 설명하는 스키마는 어떤 용어인가? <보기> 물리적인 저장장치 입장에서 데이터베이스가 저장되는 방법이나 구조를 정의한다. 레코드의 저장 형식, 인덱스, 접근 경로, 물리적 배치 등 실제 저장 구조와 관련된다. 데이터가 내부적으로 어떻게 저장되는지를 표현한다.

  1. 논리 스키마
  2. 개념 스키마
  3. 내부 스키마
  4. 외부 스키마
정답과 해설 보기

정답: 3

정답은 ③ 내부 스키마이다. 3단계 스키마 구조에서 내부 수준은 파일과 레코드의 저장 형식, 인덱스와 접근 경로 같은 물리적 저장 관점을 다룬다. 응용 사용자가 보는 특정 데이터의 표현과는 구분된다.

개념 수준은 전체 데이터베이스의 논리 구조와 관계·제약을 나타내고, 외부 수준은 사용자나 응용별 관점을 나타낸다. 물리적 저장 방식을 바꾸어도 위 수준의 논리 구조를 유지할 수 있게 하는 구분이 물리적 데이터 독립성의 토대다.

선지별 해설

  • ① 오답. 논리 구조라는 표현만으로 물리적 저장 수준을 가리키지 않는다.
  • ② 오답. 데이터베이스 전체의 논리적 구조를 나타낸다.
  • ③ 정답. 레코드 배치와 접근 경로 등 저장 수준의 구조다.
  • ④ 오답. 특정 사용자·응용이 보는 데이터 관점이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Levels of Abstraction; Data Independence

42. 열이 번호·지역·업종·매출·직원수이고 데이터 행이 5개인 하나의 표에서 릴레이션 수, 기수, 차수는?

  1. Relation 5개, Cardinality 1개, Degree 4개
  2. Relation 4개, Cardinality 5개, Degree 1개
  3. Relation 1개, Cardinality 5개, Degree 5개
  4. Relation 1개, Cardinality 6개, Degree 5개
정답과 해설 보기

정답: 3

정답은 ③ 릴레이션 1개, 기수 5, 차수 5이다. 문제는 하나의 표를 제시하므로 릴레이션 수는 1이다. 데이터 행인 튜플이 다섯 개이므로 기수는 5이고, 번호·지역·업종·매출·직원수의 다섯 속성을 가지므로 차수도 5다.

열 이름이 적힌 머리글은 데이터 튜플이 아니므로 기수에 더하지 않는다. 기수는 데이터가 추가되거나 삭제되면 달라질 수 있지만, 차수는 스키마에 속성을 추가·제거할 때 달라지는 값이다. 행과 열을 먼저 구별하면 된다.

선지별 해설

  • ① 오답. 표 하나를 다섯 릴레이션으로 잘못 센 값이다.
  • ② 오답. 릴레이션 수와 차수가 문제의 구조와 맞지 않는다.
  • ③ 정답. 표 1개, 데이터 행 5개, 속성 5개다.
  • ④ 오답. 머리글을 데이터 행에 포함해 기수를 6으로 세었다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model — relation, tuple, field, cardinality and degree

43. 관계형 데이터베이스의 키에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 기본키로 선택되지 않은 나머지 후보키를 구별해서 부르는 명칭은 슈퍼키다.
  2. 슈퍼키는 튜플을 유일하게 식별하지만 최소성은 요구하지 않는다.
  3. 후보키 중 하나를 기본키로 선택할 수 있다.
  4. 후보키는 유일성과 최소성을 모두 만족한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 후보키는 튜플을 유일하게 식별하면서 더 줄일 수 없는 속성 집합이고, 그중 하나를 기본키로 선택한다. 기본키로 선택되지 않은 나머지 후보키는 대체키라고 부른다.

슈퍼키는 유일하게 식별할 수 있는 속성 집합으로 최소성을 요구하지 않는다. 후보키도 슈퍼키의 한 종류이지만, 나머지 후보키를 구별해서 부르는 명칭은 대체키다. 모든 키가 후보키처럼 유일성과 최소성을 갖는다고 일반화하면 외래키 등의 의미와 충돌한다.

선지별 해설

  • ① 정답. 기본키로 선택되지 않은 후보키의 구별 명칭은 대체키다.
  • ② 오답. 슈퍼키에는 불필요한 속성이 포함될 수 있다.
  • ③ 오답. 후보키 중 하나를 기본키로 선택할 수 있다.
  • ④ 오답. 후보키는 유일성과 최소성을 모두 만족한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Integrity Constraints — superkeys, candidate keys and primary keys

44. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중, 데이터 모델링 단계에 해당하지 않는 것은?

  1. 개념 모델링
  2. 논리 모델링
  3. 추상 모델링
  4. 물리 모델링
정답과 해설 보기

정답: 3

정답은 ③ 추상 모델링이다. 일반적인 데이터 모델링 단계는 업무의 개체와 관계를 정하는 개념 모델링, 이를 관계·키·제약 등 논리 구조로 구체화하는 논리 모델링, 실제 DBMS의 저장·인덱스 등 구현으로 연결하는 물리 모델링으로 설명한다.

추상화는 여러 단계에서 사용하는 사고 방법이지만 이 세 단계에 추가되는 표준적인 별도 단계 이름으로 쓰인 것은 아니다. 단계가 나뉘어도 서로 피드백하며, 물리 성능 검토가 앞서 만든 논리 설계의 재검토로 이어질 수 있다.

선지별 해설

  • ① 오답. 업무 개체와 관계를 정리하는 단계다.
  • ② 오답. 키·관계·제약 등 논리 구조로 구체화하는 단계다.
  • ③ 정답. 제시한 일반적인 세 단계의 명칭이 아니다.
  • ④ 오답. 실제 저장 구조와 접근 경로 등으로 구현하는 단계다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Database Design — conceptual, logical and physical design

45. 자식 테이블의 기본키가 부모 테이블의 기본키를 외래키로 포함하여 부모 키 없이는 자식을 유일하게 식별할 수 없는 관계는?

[학습용 개정문항]

  1. 중복 관계(Redundant)
  2. 순환 관계(Recursive)
  3. 배타 관계(Mutually Exclusive)
  4. 식별 관계(Identifying)
정답과 해설 보기

정답: 4

정답은 ④ 식별 관계이다. 자식 테이블의 식별자가 부모의 키를 포함하여 부모 없이는 자식의 키를 완성할 수 없는 관계를 말한다. 예를 들어 주문항목의 기본키를 주문번호와 항목번호의 조합으로 정하면 주문번호가 부모 주문을 참조하면서 자식의 식별에도 참여한다.

외래키가 존재한다는 사실만으로 항상 식별 관계인 것은 아니다. 자식이 별도의 기본키로 식별되고 부모 키는 기본키 밖에서 참조만 한다면 비식별 관계로 모델링할 수 있다. 식별 방식과 참조의 존재를 구별한다.

선지별 해설

  • ① 오답. 중복된 관계를 뜻하는 명칭이며 제시된 식별 의존을 직접 나타내지 않는다.
  • ② 오답. 같은 개체 유형이 자신과 관계를 맺는 순환 관계를 가리킨다.
  • ③ 오답. 관계들이 동시에 성립할 수 없는 배타성을 가리킨다.
  • ④ 정답. 부모 키가 자식의 기본키에 참여하는 식별 관계다.

편집 해설 근거: MySQL Workbench Manual — Adding Foreign Key Relationships — §9.1.4.1 — identifying relationship; film_actor example

46. PostgreSQL 18의 시스템 카탈로그에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 어떤 사용자든 권한 검사 없이 카탈로그 행을 직접 바꾸어 안전하게 스키마를 변경할 수 있다.
  2. 데이터베이스 객체를 설명하는 메타데이터를 포함한다.
  3. DBMS가 생성하고 유지하는 시스템 정보다.
  4. 지원되는 객체 변경 명령은 관련 카탈로그 정보를 갱신한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 시스템 카탈로그는 테이블·열·자료형·제약 등의 구조 정보를 담는 메타데이터 저장소다. PostgreSQL에서는 카탈로그도 테이블 형태여서 조회할 수 있지만 임의로 내부 행을 변경하는 것은 정상적인 스키마 변경 절차가 아니다.

사용자는 CREATE·ALTER 같은 지원 명령으로 객체를 변경하고 DBMS가 필요한 카탈로그 정보를 일관되게 갱신하도록 해야 한다. 조회 가능한 시스템 테이블이라는 사실과 권한 없는 임의 수정이 안전하다는 주장은 다르다. DBMS와 객체별 권한도 적용된다.

선지별 해설

  • ① 정답. 권한 검사를 무시한 직접 수정이 허용되거나 안전하다는 보장은 없다.
  • ② 오답. 객체의 구조 등을 설명하는 메타데이터를 보관한다.
  • ③ 오답. DBMS가 카탈로그를 생성·유지한다.
  • ④ 오답. 지원되는 객체 변경 명령에 따라 관련 메타데이터도 반영된다.

편집 해설 근거: PostgreSQL 18, Chapter 52 System Catalogs — Chapter 52 introduction after the table of contents

47. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 트랜잭션의 특징 중, 모든 연산이 수행되거나 하나도 수행되지 말아야 한다는 것은 어떤 용어인가?

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

정답: 2

정답은 ② 원자성이다. 트랜잭션 안의 여러 변경을 하나의 논리적 작업 단위로 취급하여 모두 반영하거나 전체를 취소하는 성질이다. 계좌 이체에서 출금만 반영되고 입금은 빠지는 중간 결과를 확정하지 않는 상황을 생각하면 된다.

지속성은 커밋한 결과가 장애 이후에도 유지되는 성질이고, 격리성은 동시 트랜잭션 사이의 간섭을 제어하는 성질이다. 일관성은 트랜잭션이 데이터의 규칙을 만족하는 상태를 유지해야 한다는 관점이다. 실행 도중의 내부 연산이 전혀 존재하지 않는다는 뜻은 아니다.

선지별 해설

  • ① 오답. 커밋된 결과를 유지하는 지속성이다.
  • ② 정답. 전체 반영 또는 전체 취소의 원자성이다.
  • ③ 오답. 동시에 실행되는 트랜잭션 사이의 격리성이다.
  • ④ 오답. 정한 무결성 규칙과 상태의 일관성을 다루는 성질이다.

편집 해설 근거: PostgreSQL 18, 3.4 Transactions — §3.4 Transactions — all-or-nothing; COMMIT and ROLLBACK

48. 데이터베이스 설계자가 다음 조건을 확인한다. 국어, 영어, 수학 점수가 기록되어 있는 릴레이션에 과학 속성을 추가하기 위해 필요한 데이터베이스 명령어는 어떤 용어인가?

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

정답: 3

정답은 ③ ALTER이다. 이미 있는 테이블에 새로운 열을 추가하는 것은 데이터 행의 값 변경이 아니라 테이블 구조의 변경이다. 예를 들어 ALTER TABLE 성적 ADD COLUMN 과학 INTEGER; 형태로 과학 점수를 담을 열을 추가할 수 있다.

INSERT는 새 행을 넣고 UPDATE는 기존 행의 값을 바꾼다. 열 이름을 추가한다고 해서 INSERT를 쓰는 것은 아니다. 실제 적용에서는 자료형과 NULL 허용 여부, 기본값 등 새 열의 조건도 정해야 하며 DBMS별 문법 차이를 확인한다.

선지별 해설

  • ① 오답. INSERT는 테이블에 데이터 행을 추가한다.
  • ② 오답. UPDATE는 기존 행의 데이터를 수정한다.
  • ③ 정답. ALTER TABLE의 ADD COLUMN으로 열을 추가한다.
  • ④ 오답. 이 구조 변경을 수행하는 SQL 명령이 아니다.

편집 해설 근거: PostgreSQL 18, ALTER TABLE — Synopsis and Description — ADD COLUMN

49. PostgreSQL 18의 일반 뷰(VIEW)에 대한 설명으로 옳지 않은 것은? (물리화 뷰는 제외한다.)

[학습용 개정문항]

  1. 뷰의 정의와 메타데이터는 DBMS가 관리한다.
  2. 다른 뷰를 참조하여 뷰를 정의할 수 있다.
  3. 기반 테이블을 DROP TABLE … CASCADE로 삭제하면 종속 뷰도 제거된다.
  4. 조회 결과 행 전체를 뷰 자체의 별도 데이터로 지속 저장한다.
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL의 일반 뷰는 질의 정의를 저장하며 조회할 때 그 정의에 따라 결과를 구한다. 결과 행 전체를 뷰 자신의 별도 저장 영역에 지속적으로 보관하는 물리화 뷰와 구별된다.

뷰 자체는 이름과 정의를 가진 데이터베이스 객체이므로 객체가 전혀 존재하지 않는다고 표현하면 부정확하다. 다른 뷰를 참조하여 정의할 수 있으며, 기반 테이블을 DROP TABLE … CASCADE로 제거하면 종속 뷰도 제거된다. 기본 동작의 RESTRICT에서는 종속 객체 때문에 삭제가 거부될 수 있다.

선지별 해설

  • ① 오답. 일반 뷰의 정의와 메타데이터는 DBMS가 관리한다.
  • ② 오답. 다른 뷰를 이용한 질의로 새 뷰를 정의할 수 있다.
  • ③ 오답. 명시한 CASCADE는 종속 뷰도 함께 제거한다.
  • ④ 정답. 일반 뷰는 결과 행을 별도 데이터로 지속 저장하지 않는다.

편집 해설 근거: PostgreSQL 18 — CREATE VIEW — Description — view is not physically materialized; Examples; PostgreSQL 18: DROP TABLE — Parameters — CASCADE and RESTRICT

50. 정규화된 데이터 모델을 실제 질의 성능 등의 요구에 맞추어 의도적으로 조정하고, 일부 데이터 중복이나 테이블 통합 등을 허용하는 기법은?

[학습용 개정문항]

  1. De-Normalization
  2. Sharding
  3. Clustering
  4. Partitioning
정답과 해설 보기

정답: 1

정답은 ① 반정규화이다. 정규화된 논리 구조를 성능 등 구체적인 운영 요구에 맞추어 일부 조정하는 접근이다. 자주 필요한 조인 결과나 집계값을 중복 저장하면 읽기 비용을 줄일 수 있지만 추가 저장 공간과 갱신 일관성 관리가 필요하다.

따라서 반정규화가 항상 시스템을 단순하게 하거나 성능을 높이는 것은 아니다. 실제 질의와 갱신 부하를 확인한 뒤 효과를 평가해야 한다. 샤딩·파티셔닝은 데이터를 나누어 배치하는 전략이고, 클러스터링은 관련 데이터 배치 등 별도의 목적을 다룬다.

선지별 해설

  • ① 정답. 정규화 구조를 의도적으로 조정하고 중복 등을 허용하는 접근이다.
  • ② 오답. 데이터를 여러 서버 등으로 분산하는 샤딩과 목적이 다르다.
  • ③ 오답. 관련 데이터의 배치·묶음이라는 의미와 구별된다.
  • ④ 오답. 한 논리 테이블을 부분으로 나누는 파티셔닝 자체를 뜻하지 않는다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Denormalization — tuning the conceptual schema

51. 데이터베이스 설계자가 다음 조건을 확인한다. 서버와 저장장치를 직접 연결하는 스토리지 유형은 어떤 용어인가?

  1. DAS
  2. NAS
  3. SAN
  4. SAD
정답과 해설 보기

정답: 1

정답은 ① DAS이다. Direct-Attached Storage는 특정 컴퓨터나 서버에 저장장치를 직접 연결하는 형태를 말한다. 서버 내부 디스크뿐 아니라 적절한 인터페이스로 직접 연결한 외부 저장장치도 이 범주에 포함될 수 있다.

NAS는 네트워크를 통해 파일 단위의 저장 서비스를 제공하고, SAN은 서버가 블록 저장장치에 접근하도록 구성한 저장 네트워크다. DAS의 데이터를 서버가 다시 네트워크로 공유할 수는 있지만 서버와 저장장치 사이의 직접 연결이라는 분류 기준은 그대로다.

선지별 해설

  • ① 정답. 서버에 직접 연결하는 저장장치 방식이다.
  • ② 오답. 네트워크를 통한 파일 저장 서비스다.
  • ③ 오답. 블록 저장장치 접근을 제공하는 저장 네트워크다.
  • ④ 오답. 제시한 저장장치 연결 형태의 표준 명칭이 아니다.

편집 해설 근거: IBM, What Is Data Storage?, Data storage systems and architectures (2026-10-05 확인) — Data storage types — Direct-attached storage; IBM, What is a storage area network (SAN)? (2026-10-05 확인) — Storage area network 개요

52. 기본키가 각 행을 유일하게 식별하도록 중복과 NULL을 허용하지 않는 원칙은?

[학습용 개정문항]

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

정답: 1

정답은 ① 개체 무결성이다. 기본키는 각 행을 식별하므로 기본키 값이 중복되어서는 안 되고 NULL이어도 안 된다. 복합 기본키라면 전체 조합의 유일성이 필요하며 구성 열에도 NULL을 허용하지 않는다.

임의의 특정 열에 제한이 있다는 설명만으로는 충분하지 않으므로 문제에서 기본키를 명시했다. 도메인 무결성은 값의 형식과 범위, 참조 무결성은 외래키와 참조 대상의 일치 관계를 다룬다. UNIQUE 제약만 두는 경우의 NULL 처리는 기본키와 구별해야 한다.

선지별 해설

  • ① 정답. 기본키를 통해 각 개체를 유일하고 NULL 없이 식별한다.
  • ② 오답. 속성 값이 허용된 형식·범위에 속하는지를 다룬다.
  • ③ 오답. 외래키와 참조 대상 키의 관계를 다룬다.
  • ④ 오답. 업무에서 정한 별도의 제약 조건을 가리킨다.

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

53. 데이터베이스 설계자가 다음 조건을 확인한다. 속성 A, B, C에 대한 관계식이 아래와 같을 때, 해당되는 종속성은 어떤 용어인가? <보기> A → B, B → C, A → C

  1. 완전 함수 종속
  2. 부분 함수 종속
  3. 배타적 종속
  4. 이행적 종속
정답과 해설 보기

정답: 4

정답은 ④ 이행적 종속이다. A→B는 같은 A 값을 가진 튜플들의 B 값도 같아야 한다는 뜻이고 B→C도 같은 방식으로 해석한다. 같은 A라면 B가 같고, 그 B가 같으므로 C도 같아져 A→C를 도출할 수 있다.

이 추론이 함수 종속의 이행성이다. 다만 이 세 식만으로 특정 릴레이션이 제3정규형을 위반한다고 바로 결론 내릴 수는 없다. 정규형 판정에는 후보키·주속성 여부와 비자명한 함수 종속 등의 추가 정보가 필요하다.

선지별 해설

  • ① 오답. 결정자의 일부만으로는 종속하지 않는다는 최소 결정 범위와 관련된다.
  • ② 오답. 복합 결정자의 일부에도 종속하는 경우를 뜻한다.
  • ③ 오답. 제시된 함수 종속 추론 규칙의 이름이 아니다.
  • ④ 정답. A→B와 B→C를 통해 A→C가 도출되는 이행성이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Reasoning About FDs — Armstrong’s Axioms, Transitivity

54. 같은 데이터 범위를 잠글 때 다수의 행 잠금 대신 테이블 단위 잠금을 사용하는 경우에 대한 설명으로 부적절한 것은?

[학습용 개정문항]

  1. 필요한 잠금 항목 수는 보통 줄어든다.
  2. 개별 잠금 항목을 추적하는 부담이 줄어들 수 있다.
  3. 서로 다른 행을 쓰는 작업도 충돌하여 동시성이 낮아질 수 있다.
  4. 잠금 항목 자체를 관리하는 비용은 반드시 증가한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 같은 범위의 데이터를 잠근다고 할 때 많은 행 잠금을 하나의 테이블 잠금으로 바꾸면 관리해야 할 잠금 항목 수가 줄어든다. 따라서 잠금 항목 자체를 관리하는 비용은 보통 감소하는 방향이다.

그 대신 잠금 범위가 넓어져 서로 다른 행만 쓰려는 트랜잭션도 충돌할 수 있으므로 동시 실행 가능성이 낮아질 수 있다. 전체 처리 시간에는 대기 비용도 영향을 주므로 모든 종류의 오버헤드가 반드시 감소한다고 일반화하지 않고 잠금 관리 비용과 경합 비용을 나눈다.

선지별 해설

  • ① 오답. 같은 데이터 범위를 잠그는 데 필요한 잠금 항목 수는 보통 감소한다.
  • ② 오답. 개별 잠금 항목을 추적하는 부담이 줄어들 수 있다.
  • ③ 오답. 잠금 범위가 넓어져 독립 작업까지 충돌할 수 있다.
  • ④ 정답. 잠금 항목 관리 비용이 반드시 증가한다는 설명은 반대 방향이다.

편집 해설 근거: IBM Db2 11.5, Lock granularity — Lock granularity — trade-off between concurrency and overhead

55. 릴레이션에 성립하는 모든 비자명한 함수 종속 X→Y에서 X가 슈퍼키여야 한다는 정규형은?

[학습용 개정문항]

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

정답: 3

정답은 ③ BCNF이다. 릴레이션에서 성립하는 모든 비자명한 함수 종속 X→Y에 대해 X가 슈퍼키여야 한다는 조건이 Boyce–Codd 정규형의 정의다. 비자명하다는 것은 Y가 X의 부분집합인 당연한 종속을 제외한다는 뜻이다.

결정자를 후보키로만 한정하면 최소성이 없는 슈퍼키까지 제외하는 잘못된 정의가 된다. 제3정규형은 결정자가 슈퍼키가 아니더라도 오른쪽 속성이 주속성인 경우를 허용할 수 있으므로 BCNF보다 약하다. 정규형은 정확한 함수 종속과 키를 기준으로 판단한다.

선지별 해설

  • ① 오답. 제3정규형은 주속성에 대한 예외를 허용할 수 있다.
  • ② 오답. 제1정규형은 이 함수 종속 조건을 요구하지 않는다.
  • ③ 정답. 모든 비자명한 함수 종속의 결정자가 슈퍼키여야 한다.
  • ④ 오답. 제2정규형은 비주속성의 부분 함수 종속 제거와 관련된다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Boyce-Codd Normal Form; Third Normal Form

56. SQL 명령 중 이전에 부여한 객체 접근 권한 등을 회수하는 명령은?

[학습용 개정문항]

  1. CREATE
  2. ALTER
  3. TRUNCATE
  4. REVOKE
정답과 해설 보기

정답: 4

정답은 ④ REVOKE이다. REVOKE는 이전에 부여된 객체 권한이나 역할 구성원 자격 등을 회수하는 명령이다. 예를 들어 테이블 SELECT 권한을 회수하는 작업은 테이블 구조를 새로 만들거나 행을 지우는 작업과 목적이 다르다.

CREATE는 객체 생성, ALTER는 기존 객체 변경, TRUNCATE는 테이블의 전체 행 제거에 사용한다. SQL 명령의 DDL·DCL 분류는 문서의 분류 방식에 따라 다를 수 있으므로 이 문제는 명령의 구체적인 기능을 기준으로 묻는다. 다른 경로로 받은 권한이 남는지도 별도로 고려해야 한다.

선지별 해설

  • ① 오답. 새로운 데이터베이스 객체를 만드는 명령이다.
  • ② 오답. 이미 있는 객체의 정의를 바꾸는 명령이다.
  • ③ 오답. 테이블의 행을 일괄 제거하는 명령이다.
  • ④ 정답. 부여된 권한 등을 회수한다.

편집 해설 근거: PostgreSQL 18, REVOKE — Description — revoke previously granted privileges

57. 관계형 데이터베이스 정규화에서 다루는 대표적인 변경 이상에 해당하지 않는 것은?

[학습용 개정문항]

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

정답: 3

정답은 ③ 권한 이상이다. 정규화에서 다루는 대표적인 변경 이상은 삽입·갱신·삭제 이상이다. 서로 다른 사실을 한 릴레이션에 중복해서 저장하면 한 사실을 기록하려고 다른 사실을 요구하거나, 중복 값을 불일치하게 수정하거나, 필요한 사실까지 함께 잃는 문제가 생긴다.

권한 설정의 오류도 데이터베이스에서 발생할 수 있지만 여기서 말하는 정규화의 세 변경 이상 분류는 아니다. 정규화는 데이터 구조와 종속성을 다루며 사용자 접근 권한의 설계를 직접 대신하지 않는다.

선지별 해설

  • ① 오답. 필요한 사실을 단독으로 추가하기 어려운 삽입 이상이다.
  • ② 오답. 중복 정보를 일부만 바꿔 불일치가 생기는 갱신 이상이다.
  • ③ 정답. 정규화에서 다루는 세 변경 이상 분류가 아니다.
  • ④ 오답. 한 사실을 삭제하다 다른 필요한 사실까지 잃는 삭제 이상이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Problems Due to Redundancy — insertion, deletion and update anomalies

58. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중, 함수 종속에 대해 A→B를 올바르게 해석한 것은?

  1. A 속성은 종속자, B 속성은 결정자이다.
  2. B 속성은 A 속성에 대해 부분집합이다.
  3. A 속성은 B 속성에 함수적으로 종속된다.
  4. B 속성은 A 속성에 함수적으로 종속된다.
정답과 해설 보기

정답: 4

정답은 ④ B가 A에 함수적으로 종속된다이다. 함수 종속 A→B는 어떤 두 튜플의 A 값이 같다면 B 값도 반드시 같아야 한다는 제약을 뜻한다. 왼쪽 A가 결정자이고 오른쪽 B가 종속되는 속성 집합이다.

반대 방향인 B→A가 자동으로 성립하는 것은 아니다. 예를 들어 사번이 부서번호를 결정해도 한 부서에는 여러 사원이 있을 수 있다. 또한 A와 B가 속성 집합이라는 사실만으로 B가 A의 부분집합이라고 말하는 것도 아니다.

선지별 해설

  • ① 오답. 결정자와 종속자의 방향을 반대로 설명했다.
  • ② 오답. 함수 종속은 속성 집합의 포함 관계만을 뜻하지 않는다.
  • ③ 오답. 이는 반대 방향인 B→A를 설명한다.
  • ④ 정답. A가 B를 결정하므로 B는 A에 함수적으로 종속된다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Functional Dependencies — definition using pairs of tuples

59. 학과정보(학과, 인원, 평균학점, 담당교수)의 데이터가 건축(40,3.5,A), 교육(50,2.7,B), 복지(30,4.1,C), 경영(30,4.3,D), 관광(40,3.3,E)이며 NULL은 없다. 아래 두 SQL을 각각 독립적으로 실행한 결과의 쌍은?

SELECT COUNT(*) FROM 학과정보 WHERE 평균학점 > 3.5;
SELECT AVG(인원) FROM 학과정보 WHERE 담당교수 NOT IN ('A','D');

[학습용 개정문항]

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

정답: 2

정답은 ② 2, 40이다. 첫 질의의 평균학점>3.5는 엄격한 초과 조건이다. 3.5인 건축은 제외되고 4.1인 복지와 4.3인 경영만 남으므로 COUNT(*)는 2다.

두 번째 질의는 첫 질의 결과를 이어 받는 것이 아니라 전체 표에서 따로 수행한다. 담당교수가 A나 D가 아닌 교육·복지·관광의 인원은 50, 30, 40이며 평균은 (50+30+40)/3=40이다. NULL이 없는 제시 자료에서는 NOT IN 조건에 해당하지 않는 별도의 미정 값도 없다.

선지별 해설

  • ① 오답. 평균학점이 정확히 3.5인 건축까지 세면 3이 된다.
  • ② 정답. 두 독립 질의의 결과는 각각 2와 40이다.
  • ③ 오답. 행 수도 평균도 제시된 필터와 맞지 않는다.
  • ④ 오답. 두 번째 질의의 평균은 38이 아니라 40이다.

편집 해설 근거: PostgreSQL 18, Aggregate Functions — Aggregate functions — count and avg; PostgreSQL 18 — Row and Array Comparisons — §9.25.2 NOT IN

60. PostgreSQL 18에서 매출현황 테이블의 송도지점 데이터만 골라 날짜와 매출을 조회하고, 날짜가 늦은 행부터 표시하려는 SQL은?

[학습용 개정문항]

  1. select 날짜, 매출 from 매출현황 where 지점='송도' order by 날짜 DESC
  2. select 날짜, 매출 from 매출현황 where 지점='송도' order by 날짜 ASC
  3. select 날짜, 매출 from 매출현황 where 지점='송도' sort by 날짜 DESC
  4. select 날짜, 매출 from 매출현황 where 지점='송도' sort by 날짜 ASC
정답과 해설 보기

정답: 1

정답은 ①이다. SELECT 날짜, 매출은 출력할 열을 정하고 FROM 매출현황은 대상 테이블을 정한다. WHERE 지점='송도'로 지점을 제한한 후 ORDER BY 날짜 DESC를 사용하면 날짜가 늦은 행부터 먼저 표시된다.

ASC는 이와 반대인 오름차순이며 PostgreSQL에서 이 질의의 정렬 절 이름은 SORT BY가 아니라 ORDER BY다. 같은 날짜의 여러 행 사이 순서까지 정하려면 추가 정렬 열이 필요하지만, 이 문제는 날짜의 내림차순만을 묻는다.

선지별 해설

  • ① 정답. 송도 조건과 날짜 내림차순 ORDER BY를 모두 사용한다.
  • ② 오답. ASC는 날짜가 이른 행부터 나열한다.
  • ③ 오답. PostgreSQL SELECT의 정렬 절은 SORT BY가 아니다.
  • ④ 오답. 정렬 절 이름과 정렬 방향이 모두 조건과 다르다.

편집 해설 근거: PostgreSQL 18 — SELECT — ORDER BY Clause — ASC and DESC; WHERE Clause

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

61. Python 3.14에서 다음 코드의 출력은?

x = [[0 for j in range(2)] for i in range(3)]
print(x)

[학습용 개정문항]

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

정답: 2

정답은 ② [[0, 0], [0, 0], [0, 0]]이다. 안쪽 리스트 컴프리헨션은 range(2)의 두 값에 대해 0을 만들어 길이 2인 리스트를 생성한다. 바깥쪽은 range(3)의 세 값에 대해 이 생성을 반복하므로 그러한 리스트 세 개가 담긴다.

결과는 행 3개와 열 2개에 대응하는 중첩 리스트다. 안쪽 컴프리헨션이 매번 새로 평가되므로 세 내부 리스트는 서로 다른 객체다. [[0]*2]*3처럼 하나의 내부 리스트 참조를 세 번 복제하는 표현과도 구별된다.

선지별 해설

  • ① 오답. 중첩 컴프리헨션이므로 하나의 평평한 리스트가 아니다.
  • ② 정답. 두 원소를 갖는 리스트가 세 개 생성된다.
  • ③ 오답. 바깥 반복 3회와 안쪽 반복 2회를 뒤바꿨다.
  • ④ 오답. 안쪽 반복의 길이는 각 행에서 모두 2다.

편집 해설 근거: Python 3.14 Tutorial — Data Structures — §5.1.3 List Comprehensions; §5.1.4 Nested List Comprehensions

62. C11에서 int i=0, sum=0;으로 시작한다. for(i=0; i<5; i++){sum+=i;}와 같은 덧셈 순서와 종료 결과를 갖는 while문은?

[학습용 개정문항]

  1. while(i<5){i=0;sum+=i;i++;}
  2. i=0; while(i<5){i++;sum+=i;}
  3. i=0; while(i<5){sum+=i;i++;}
  4. while(i<5){sum+=i;i=0;}
정답과 해설 보기

정답: 3

정답은 ③이다. for의 초기식 i=0은 반복 전에 한 번 실행되고, 조건 i<5가 참일 때 본문의 sum+=i를 실행한 다음 i++를 수행한다. 같은 순서를 while로 옮기면 먼저 i를 초기화하고 본문 끝에서 증가시켜야 한다.

sum의 시작값이 0이면 더하는 값은 0, 1, 2, 3, 4이고 최종 합은 10이다. 증가를 먼저 하는 ②는 1부터 5를 더해 15가 된다. 반복 안에서 i를 매번 0으로 되돌리는 선택지는 원래 반복의 진행과 종료 조건을 보존하지 못한다.

선지별 해설

  • ① 오답. 매 반복에서 i를 0으로 되돌려 정상적으로 5에 도달하지 못한다.
  • ② 오답. 증가를 먼저 하여 1~5를 더하므로 결과가 15다.
  • ③ 정답. 초기화 → 조건 → 덧셈 → 증가의 순서를 보존한다.
  • ④ 오답. i를 계속 0으로 설정하므로 반복을 끝내는 진행이 사라진다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.5 Iteration statements; §6.8.5.3 The for statement

63. C11에서 #include <stdio.h>를 포함하고 char c='A';로 선언했다. 다음 호출 중 서식이 요구하는 인수 형식과 맞지 않아 동작이 정의되지 않는 것은?

[학습용 개정문항]

  1. printf("%x", (unsigned int)c);
  2. printf("%d", (int)c);
  3. printf("%c", (int)c);
  4. printf("%f", c);
정답과 해설 보기

정답: 4

정답은 ④이다. printf의 %f는 가변 인수에서 double 값을 받는 서식이다. char 변수 c를 전달하면 정수 승격이 적용되어 정수형으로 전달되므로 double을 요구하는 %f와 맞지 않는다. 이 호출의 동작은 정의되지 않으며 특정 실숫값이 출력된다고 예측해서는 안 된다.

①은 unsigned int로 변환하여 %x에, ②와 ③은 int로 변환하여 각각 %d와 %c에 맞춘다. %c는 int 인수를 문자로 변환해 출력한다. 서식 기호뿐 아니라 실제로 전달하는 인수의 형식을 함께 확인해야 한다.

선지별 해설

  • ① 오답. unsigned int 인수를 %x로 출력하므로 형식이 맞는다.
  • ② 오답. int 인수를 %d로 출력하므로 형식이 맞는다.
  • ③ 오답. %c가 받는 인수 형식은 int이므로 형식이 맞는다.
  • ④ 정답. 정수 승격된 c를 double을 요구하는 %f에 전달한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.3.1.1 Integer types; §6.5.2.2 Function calls; §7.21.6.1 The fprintf function; §7.21.6.3 printf

64. C에서 int ar[2][2]={{11,22},{33,44}}; int *p=&ar[0][0];일 때 값이 나머지 셋과 다른 식은?

  1. ar[0][1]
  2. p[1]
  3. *(p+1)
  4. **(ar+1)
정답과 해설 보기

정답: 4

정답은 ④ **(ar+1)이다. ar[0][1]은 첫 번째 행의 두 번째 원소 22이다. p는 ar[0][0]을 가리키므로 p[1]과 *(p+1)도 같은 행의 다음 원소 22를 가리킨다.

반면 ar는 식에서 int 두 개짜리 행을 가리키는 포인터로 변환된다. ar+1은 다음 행 ar[1]을 가리키고, 두 번 역참조한 **(ar+1)은 그 행의 첫 원소 ar[1][0], 즉 33이다. int*의 한 칸 이동과 행 포인터의 한 칸 이동을 구별한다.

선지별 해설

  • ① 오답. ar[0][1]의 값은 22다.
  • ② 오답. p[1]은 첫 행의 두 번째 원소 22다.
  • ③ 오답. *(p+1)은 p[1]과 같아서 22다.
  • ④ 정답. 두 번째 행의 첫 원소이므로 33이다.

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

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

#include <stdio.h>
int fn(int *x, int n) {
    if (n == 1) return 1;
    return *x + fn(x, n - 1);
}
int main(void) {
    int x = 5;
    printf("%d", fn(&x, 5));
    return 0;
}

[학습용 개정문항]

  1. 21
  2. 25
  3. 15
  4. 5
정답과 해설 보기

정답: 1

정답은 ① 21이다. fn은 n이 1일 때 1을 반환하고, 그보다 클 때는 *x에 재귀 호출의 결과를 더한다. x가 가리키는 정수는 호출 중 수정되지 않으므로 *x는 계속 5이다.

fn(&x,5)=5+fn(&x,4)=5+5+fn(&x,3)=5+5+5+fn(&x,2)=5+5+5+5+1=21이다. 5를 다섯 번 더하는 것이 아니라 n이 1인 기초 경우에서 1을 반환한다는 점이 중요하다. 이 문제의 양수 입력에서는 n이 감소하여 그 기초 경우에 도달한다.

선지별 해설

  • ① 정답. 네 번의 5와 기초 반환값 1의 합이다.
  • ② 오답. 기초 경우에서도 5를 더한다고 잘못 계산한 값이다.
  • ③ 오답. 재귀 단계 일부를 생략한 계산이다.
  • ④ 오답. 첫 인수 값만으로 재귀 합 전체를 대신할 수 없다.

편집 해설 근거: 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

66. Python에서 a=[1,2,3,4,5,6,7,8]; a[:5:2]=[10,20,30]을 실행한 뒤 a는?

  1. 오류
  2. [11,22,33,14,25,36,17,28]
  3. [10,20,30,4,5,6,7,8]
  4. [10,2,20,4,30,6,7,8]
정답과 해설 보기

정답: 4

정답은 ④ [10,2,20,4,30,6,7,8]이다. 슬라이스 a[:5:2]는 시작 인덱스 0부터 끝 인덱스 5를 제외하고 2칸씩 이동하므로 인덱스 0, 2, 4를 선택한다. 원래 그 위치의 값은 1, 3, 5이다.

세 위치에 새 값 10, 20, 30을 각각 대입하면 나머지 위치는 그대로 남는다. 연속 구간 전체를 대체하거나 각 원소에 수를 더하는 연산이 아니다. 간격이 1이 아닌 확장 슬라이스 대입에서는 선택한 위치 수와 대입 값 수가 같아야 하며 여기서는 둘 다 3이다.

선지별 해설

  • ① 오답. 선택한 원소와 대입 값이 모두 세 개여서 길이가 맞는다.
  • ② 오답. 슬라이스 대입은 원소별 덧셈이 아니다.
  • ③ 오답. 인덱스 0, 1, 2가 아니라 0, 2, 4를 바꾼다.
  • ④ 정답. 지정된 세 위치만 각각 10, 20, 30으로 바뀐다.

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

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

class A {
    int func(int a, int b) { return a + b; }
}
class B extends A {
    double func(double a, double b) { return a - b; }
}
public class Main {
    public static void main(String[] args) {
        System.out.print(new B().func(10, 5));
    }
}

[학습용 개정문항]

  1. 10
  2. 15
  3. 5
  4. 20
정답과 해설 보기

정답: 2

정답은 ② 15이다. B의 func(double,double)은 A의 func(int,int)와 매개변수 형식이 다르므로 오버라이딩이 아니라 오버로딩 관계다. B는 A의 int 매개변수 메소드도 상속받아 호출 후보로 사용할 수 있다.

호출 인수 10과 5는 int 리터럴이다. int 두 개를 그대로 받는 메소드가 double로 확대 변환해야 하는 메소드보다 더 구체적으로 맞으므로 A의 덧셈 메소드가 선택되고 10+5=15를 반환한다. 객체가 B라는 사실만으로 뺄셈 메소드가 무조건 선택되지는 않는다.

선지별 해설

  • ① 오답. 두 인수를 더하는 선택된 메소드의 결과가 아니다.
  • ② 정답. func(int,int)가 선택되어 10+5를 반환한다.
  • ③ 오답. double 매개변수의 뺄셈 메소드가 선택된다고 오해한 결과다.
  • ④ 오답. 어느 선택된 메소드의 계산으로도 이 호출에서 나오지 않는다.

편집 해설 근거: Java SE 17 Language Specification — Method Invocation — §15.12.2.2 Identify Matching Arity Methods Applicable by Strict Invocation; §15.12.2.5 Choosing the Most Specific Method

68. Java 17의 java.io.PrintStream(System.out의 형식)에 정의된 출력 메소드 이름이 아닌 것은?

[학습용 개정문항]

  1. print
  2. printb
  3. println
  4. printf
정답과 해설 보기

정답: 2

정답은 ② printb이다. System.out의 형식인 PrintStream에는 print, println, printf 메소드가 정의되어 있다. print는 값을 출력하고, println은 출력 후 줄을 끝내며, printf는 서식 문자열에 따라 값을 출력한다.

printb라는 이름의 기본 메소드는 없다. 메소드 이름이 존재한다는 것과 괄호 안에 아무 인수도 없이 호출할 수 있다는 것은 다른 문제다. 예를 들어 println()은 가능하지만 print와 printf는 맞는 인수를 전달해야 하므로 이 문항에서는 이름의 존재 여부만 묻는다.

선지별 해설

  • ① 오답. 인수를 받는 여러 print 오버로드가 있다.
  • ② 정답. PrintStream에 printb라는 기본 메소드는 없다.
  • ③ 오답. println은 줄바꿈을 포함하는 출력 메소드다.
  • ④ 오답. printf는 서식 기반 출력 메소드다.

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

69. GoF 디자인 패턴의 목적별 세 범주에 해당하지 않는 것은?

[학습용 개정문항]

  1. 생성
  2. 행위
  3. 구조
  4. 상속
정답과 해설 보기

정답: 4

정답은 ④ 상속이다. GoF 디자인 패턴은 목적에 따라 생성, 구조, 행위의 세 범주로 구분한다. 생성 패턴은 객체 생성의 책임과 방법, 구조 패턴은 클래스·객체의 조합, 행위 패턴은 책임과 상호작용을 다룬다.

상속은 타입과 구현을 확장하는 객체지향 메커니즘이며 이 목적별 세 범주 중 하나가 아니다. 일부 패턴이 상속을 이용한다고 해서 그 패턴의 목적별 분류가 상속 패턴이라는 별도 범주로 바뀌는 것은 아니다. 분류 기준을 먼저 확인한다.

선지별 해설

  • ① 오답. 생성은 객체 생성에 관한 목적별 범주다.
  • ② 오답. 행위는 객체 사이 책임과 상호작용에 관한 범주다.
  • ③ 오답. 구조는 객체·클래스 조합에 관한 범주다.
  • ④ 정답. 상속은 세 가지 목적별 범주 중 하나가 아니다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Design Patterns — creational, structural, behavioral classification

70. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중, 디자인 패턴의 유형이 나머지 셋과 다른 하나는?

  1. Decorator
  2. Command
  3. Memento
  4. State
정답과 해설 보기

정답: 1

정답은 ① Decorator이다. Decorator는 객체를 감싸는 구조를 통해 책임을 덧붙이는 구조 패턴이다. 기존 객체와 같은 인터페이스를 제공하는 장식자를 조합하여 기능을 확장할 수 있다.

Command는 요청을 객체로 나타내고, Memento는 캡슐화를 지키면서 상태를 저장·복원하도록 하며, State는 상태에 따라 객체의 행동을 바꾸는 행위 패턴이다. 이 문제는 구현에 클래스나 객체가 사용되는지보다 GoF의 목적별 범주를 비교해야 한다.

선지별 해설

  • ① 정답. 네 보기 중 구조 패턴이다.
  • ② 오답. 요청의 표현과 실행을 다루는 행위 패턴이다.
  • ③ 오답. 상태 저장·복원을 다루는 행위 패턴이다.
  • ④ 오답. 상태에 따른 행동 변화를 다루는 행위 패턴이다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — GoF pattern catalog — Structural and Behavioral patterns

71. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중, 리눅스 버전 등의 시스템 정보를 출력하는 리눅스 명령어는 어떤 용어인가?

  1. uname
  2. chown
  3. fork
  4. chdir
정답과 해설 보기

정답: 1

정답은 ① uname이다. uname은 운영체제 커널 이름과 릴리스, 머신 정보 등을 선택하여 출력하는 명령이다. Linux에서 uname -r은 커널 릴리스를, uname -a는 지원하는 시스템 정보 항목들을 함께 보여 주는 데 사용한다.

배포판 이름과 제품 버전이 언제나 커널 릴리스와 같은 것은 아니다. chown은 파일 소유자를 바꾸고, fork는 프로세스를 생성하는 시스템 호출이며, chdir는 작업 디렉터리를 변경하는 함수다. 시스템 정보 출력이라는 목적을 기준으로 구분한다.

선지별 해설

  • ① 정답. 커널 릴리스 등 시스템 정보를 출력한다.
  • ② 오답. 파일의 소유자·그룹을 변경한다.
  • ③ 오답. 자식 프로세스를 만드는 시스템 호출이다.
  • ④ 오답. 현재 작업 디렉터리를 변경하는 함수다.

편집 해설 근거: GNU Coreutils — uname: Print system information — Options — -r, –kernel-release; -a, –all

72. 공개 인터페이스와 내부 구현 결정을 분리하여, 저장 방식이나 보조 알고리즘 등의 변경이 외부 코드에 불필요하게 영향을 주지 않도록 감추는 설계 원칙은?

[학습용 개정문항]

  1. Information Hiding
  2. Polymorphism
  3. Abstract
  4. Inheritance
정답과 해설 보기

정답: 1

정답은 ① 정보 은닉이다. 정보 은닉은 외부에서 알아야 할 인터페이스와 내부의 구현 결정을 구분하여, 내부 변경이 불필요하게 외부로 전파되지 않도록 하는 설계 원칙이다. 저장 방식이나 보조 알고리즘을 외부 코드가 직접 의존하지 않게 만드는 예가 해당한다.

캡슐화는 상태와 동작을 묶고 접근 경계를 구성하는 수단으로 정보 은닉을 지원할 수 있다. 단순히 private이라는 키워드를 붙였다는 사실만으로 모든 구현 의존이 사라지는 것은 아니다. 공개 인터페이스에 어떤 정보를 노출하는지가 중요하다.

선지별 해설

  • ① 정답. 내부 구현 결정을 외부 의존으로부터 감추는 원칙이다.
  • ② 오답. 같은 인터페이스에 서로 다른 구현이 응답하는 다형성이다.
  • ③ 오답. 핵심 특성을 추려 표현하는 추상화와 관련된 말이다.
  • ④ 오답. 기존 타입·구현을 바탕으로 새 타입을 확장하는 상속이다.

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

73. C11에서 정수형(integer type)에 해당하지 않는 자료형은?

[학습용 개정문항]

  1. short
  2. double
  3. long
  4. int
정답과 해설 보기

정답: 2

정답은 ② double이다. C11에서 short, int, long은 정수형에 속하고 double은 실수 부동소수점형에 속한다. 이 문제는 어떤 숫자 값을 담을 수 있는지가 아니라 언어가 자료형을 어느 범주로 분류하는지를 묻는다.

double 변수에 5.0처럼 정숫값을 표현할 수 있으므로 정수를 저장할 수 없다고 설명하면 틀리다. 다만 부동소수점의 정밀도에는 한계가 있어 모든 큰 정수를 정확히 나타낼 수 있는 것은 아니다. 정수형과 부동소수점형의 범주 및 표현 가능한 값은 구별한다.

선지별 해설

  • ① 오답. short는 정수형에 속한다.
  • ② 정답. double은 실수 부동소수점형이다.
  • ③ 오답. long은 정수형에 속한다.
  • ④ 오답. int는 정수형에 속한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.2.5 Types — integer types and real floating types

74. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중, 은행원 알고리즘은 교착 상태의 해결 방법 중 어떤 기법에 해당하는가?

  1. Avoidance
  2. Prevention
  3. Recovery
  4. Detection
정답과 해설 보기

정답: 1

정답은 ① 교착 상태 회피이다. 은행원 알고리즘은 각 프로세스의 최대 자원 요구와 현재 할당·가용 자원을 바탕으로, 요청을 허용한 뒤에도 모든 프로세스가 끝날 수 있는 안전 순서가 존재하는지 검사한다. 안전 상태를 유지할 수 있을 때 할당하는 접근이다.

교착 상태가 발생한 뒤 찾아내고 복구하는 방법과는 다르다. 안전하지 않은 상태가 곧 이미 교착되었다는 뜻도 아니다. 교착 가능성을 피하도록 자원 요청을 보류하는 것이므로 예방처럼 교착의 필수 조건 하나를 구조적으로 제거하는 방법과 구분한다.

선지별 해설

  • ① 정답. 안전 상태를 유지할 수 있는지 검사하여 자원을 할당한다.
  • ② 오답. 예방은 교착의 필수 조건을 성립하지 않게 제한한다.
  • ③ 오답. 복구는 발생한 교착을 해소하는 활동이다.
  • ④ 오답. 탐지는 교착이 발생했는지 찾아내는 활동이다.

편집 해설 근거: Silberschatz·Galvin·Gagne, Operating System Concepts 9판, 7 Deadlocks — Deadlock Avoidance — Banker’s Algorithm; Safe State

75. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중, 사용자 명령 해석을 통해 시스템의 기능 수행을 돕는 유닉스의 구성요소는 어떤 용어인가?

  1. Monolithic-Kernel
  2. Shell
  3. Utility
  4. Micro-Kernel
정답과 해설 보기

정답: 2

정답은 ② 셸이다. 셸은 명령 언어를 해석하여 명령을 실행하고, 필요하면 외부 프로그램을 시작하며 파이프·입출력 재지정 같은 기능을 연결한다. 사용자가 입력한 작업을 운영체제 기능과 프로그램 실행으로 이어 주는 인터페이스 역할을 한다.

커널은 프로세스·메모리·장치 등 핵심 자원을 관리하는 부분이며 셸과 같은 구성 요소는 아니다. 유틸리티는 특정 작업을 수행하는 도구 프로그램이다. 셸은 대화형 입력뿐 아니라 스크립트도 해석할 수 있다.

선지별 해설

  • ① 오답. 단일형 커널은 커널 구성 방식이다.
  • ② 정답. 사용자 명령과 스크립트를 해석하고 실행한다.
  • ③ 오답. 특정 기능을 수행하는 도구 프로그램을 뜻한다.
  • ④ 오답. 마이크로커널은 커널 기능 분할에 관한 구조다.

편집 해설 근거: POSIX.1-2024 Issue 8, Shell Command Language — Shell Command Language — Introduction; Command Execution

76. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중, 자료 흐름도를 활용하여 입출력 데이터, 세부 기능 등을 결정하는 럼바우 분석 절차는 어떤 용어인가?

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

정답: 3

정답은 ③ 기능 모델링이다. 럼바우의 OMT에서 기능 모델은 입력 데이터가 처리 과정을 거쳐 어떤 출력으로 변환되는지를 다룬다. 자료 흐름도를 이용하여 처리·자료 흐름·저장소·외부 주체 등의 관계를 나타낼 수 있다.

객체 모델은 객체와 클래스의 구조 및 관계를, 동적 모델은 시간에 따른 상태와 사건에 대한 반응을 다룬다. 기능 모델의 흐름은 데이터 변환의 관계이며 반드시 프로그램 명령의 실행 순서를 그대로 나열한 것과 같지는 않다.

선지별 해설

  • ① 오답. 객체·클래스와 그 관계 같은 정적 구조를 다룬다.
  • ② 오답. 사건과 상태 변화 같은 시간적 동작을 다룬다.
  • ③ 정답. 자료 흐름도를 통해 입력에서 출력으로의 기능 변환을 다룬다.
  • ④ 오답. 여기서 제시한 OMT의 세 모델 중 해당 이름이 아니다.

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

77. 전통적인 Linux의 utmp/wtmp 기록 방식을 사용할 때 로그인·로그아웃 이력과 시스템 종료·재부팅 기록을 저장하는 파일은?

[학습용 개정문항]

  1. wtmp
  2. xtslog
  3. linuxer
  4. tapping
정답과 해설 보기

정답: 1

정답은 ① wtmp이다. 전통적인 Linux의 utmp/wtmp 기록 방식에서 wtmp는 로그인·로그아웃 이력과 재부팅·종료 같은 기록을 누적하여 보관한다. 현재 로그인 상태를 나타내는 utmp와 과거 이력을 기록하는 wtmp를 구별한다.

로그 기록은 해당 기능을 사용하는 프로그램과 시스템 설정에 달려 있으므로 모든 Linux 환경이 항상 이 파일만을 사용하는 것은 아니다. wtmp는 구조화된 바이너리 기록이며 보통 last 같은 도구로 해석한다. 일반 텍스트 로그라고 가정해 읽는 방식과는 다르다.

선지별 해설

  • ① 정답. 전통적인 로그인·로그아웃 및 시스템 시작·종료 이력 파일이다.
  • ② 오답. 이 문항에서 설명한 표준적인 이력 파일 이름이 아니다.
  • ③ 오답. 해당 로그인 이력 파일 이름이 아니다.
  • ④ 오답. 해당 로그인 이력 파일 이름이 아니다.

편집 해설 근거: Linux man-pages — utmp(5), wtmp login records — DESCRIPTION — The wtmp file records all logins and logouts; FILES

78. 10.100.240.0/22를 FLSM으로 나눈다. 호스트 비트를 가능한 한 적게 빌려, 서브넷 비트가 모두 0인 첫 블록 하나를 제외한 뒤에도 최소 10개의 사용 서브넷을 만든다. 사용 서브넷을 주소 오름차순으로 셀 때 두 번째 서브넷의 다섯 번째 사용 가능 호스트 주소는? (각 서브넷의 네트워크·브로드캐스트 주소는 호스트에서 제외한다.)

[학습용 개정문항]

  1. 10.100.240.132
  2. 10.100.240.133
  3. 10.100.240.69
  4. 10.100.240.68
정답과 해설 보기

정답: 2

정답은 ② 10.100.240.133이다. /22의 호스트 비트 중 b개를 빌려 동일 크기로 나누면 2^b개 서브넷이 생긴다. 전부 0인 서브넷 하나를 제외하고 최소 10개가 필요하므로 2^b-1≥10의 최소 b는 4이며 새 접두 길이는 /26이다.

한 블록은 64주소다. 주소순으로 .240.0/26을 제외하면 첫 사용 서브넷은 .240.64/26, 두 번째는 .240.128/26이다. 호스트는 .129부터 시작하므로 다섯 번째는 .133이다. 이는 문제의 과거 subnet-zero 제외 조건을 적용한 계산이며 현대 CIDR의 일반적인 금지 규칙은 아니다.

선지별 해설

  • ① 오답. .132는 두 번째 사용 서브넷의 네 번째 호스트다.
  • ② 정답. .128 네트워크의 다섯 번째 사용 가능 주소 .133이다.
  • ③ 오답. .69는 첫 사용 서브넷의 다섯 번째 호스트다.
  • ④ 오답. .68은 첫 사용 서브넷의 네 번째 호스트다.

편집 해설 근거: IETF RFC 1878, Variable Length Subnet Table For IPv4 (1995) — Subnet mask table — /22, /26 및 subnet-zero 사용에 관한 주석

79. HRN에서 A(실행15,대기18), B(실행12,대기24), C(실행25,대기20), D(실행4,대기10) 중 먼저 선택되는 작업은?

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

정답: 2

정답은 ② D이다. HRN(HRRN)의 응답비는 (대기 시간+서비스 시간)/서비스 시간, 즉 1+대기 시간/서비스 시간으로 계산하며 가장 큰 작업을 선택한다. 단순히 대기 시간이 가장 긴 작업을 고르는 것이 아니다.

A는 (18+15)/15=2.2, B는 (24+12)/12=3, C는 (20+25)/25=1.8, D는 (10+4)/4=3.5다. 따라서 D → B → A → C 순으로 현재 응답비가 크다. 대기 시간이 더 길거나 서비스 시간이 짧을수록 비율에 어떻게 반영되는지를 확인한다.

선지별 해설

  • ① 오답. B의 응답비는 3으로 D의 3.5보다 작다.
  • ② 정답. D의 응답비 3.5가 가장 크다.
  • ③ 오답. A의 응답비는 2.2다.
  • ④ 오답. C의 응답비는 1.8이다.

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

80. 다음 중 캡슐화보다 다형성을 직접 설명하는 것은?

[학습용 개정문항]

  1. 관련 속성과 메소드를 하나의 클래스로 묶는다.
  2. 외부에 필요한 인터페이스를 제공하여 사용 관계를 단순하게 한다.
  3. 내부 구현에 대한 불필요한 직접 접근을 제한한다.
  4. 같은 인터페이스의 호출에 객체 종류별로 서로 다른 구현이 응답한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 캡슐화는 관련 상태와 동작을 한 경계 안에 묶고 외부에서 사용하는 인터페이스를 정하는 방식이다. 내부 표현에 대한 직접 의존을 줄이면 구현 변경의 영향을 제한하고 사용 방식을 단순하게 만들 수 있다.

동일한 인터페이스의 호출이 실제 객체의 종류에 따라 서로 다른 구현을 실행하는 성질은 다형성에 더 직접적으로 해당한다. 캡슐화와 다형성을 함께 사용할 수 있지만 설명하는 초점은 다르다. 객체지향의 여러 개념을 같은 뜻으로 외우지 않는다.

선지별 해설

  • ① 오답. 상태와 동작을 묶는 것은 캡슐화의 설명이다.
  • ② 오답. 필요한 인터페이스만 공개하여 사용 관계를 단순하게 할 수 있다.
  • ③ 오답. 내부 구현에 대한 직접 접근과 의존을 줄이는 목적이다.
  • ④ 정답. 같은 호출에 대한 서로 다른 구현의 응답은 다형성의 설명이다.

편집 해설 근거: Oracle Java Tutorials (JDK 8), What Is an Object? — What Is an Object? — state, behavior and encapsulation; IEEE Computer Society, SWEBOK Guide V4.0a — Software Design — Object-Oriented Design

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

81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 아래 설명에 해당하는 용어를 고르시오. <보기> 네트워크의 트래픽 전달 동작을 소프트웨어 기반으로 제어/관리하는 접근 방식이다. 네트워크 제어 영역과 포워딩 영역을 분리한다. 네트워크 리소스를 가상화하고 추상화하는 네트워크 인프라에 대한 접근 방식이다.

  1. MAC
  2. ISDN
  3. ATM
  4. SDN
정답과 해설 보기

정답: 4

정답은 ④ SDN이다. Software-Defined Networking은 전달 영역을 추상화하여 제어 영역과 분리하고, 인터페이스를 통해 네트워크 동작을 소프트웨어로 제어·변경하려는 접근이다. 개별 장비의 설정에만 의존하기보다 네트워크 정책과 동작을 프로그래밍할 수 있게 한다.

제어와 전달의 분리는 논리적인 역할 구분이며 반드시 제어기가 물리적으로 한 대라는 뜻은 아니다. MAC은 매체 접근 제어, ISDN은 종합정보통신망, ATM은 셀 기반 전송 기술로 제시한 접근의 이름과 다르다.

선지별 해설

  • ① 오답. 매체 접근 제어를 가리키는 말이다.
  • ② 오답. 종합정보통신망 기술이다.
  • ③ 오답. 셀 기반의 비동기 전송 방식이다.
  • ④ 정답. 제어·전달 분리와 네트워크 프로그래머빌리티를 지향한다.

편집 해설 근거: RFC 7426 — SDN: Layers and Architecture Terminology — Abstract; §1 Introduction

82. 주소·포트 수준의 헤더 정보에 더해 페이로드와 패킷 특성을 깊이 분석하여 애플리케이션·트래픽을 식별하고, 보안·품질 정책 판단에 활용하는 기술은?

[학습용 개정문항]

  1. DPI
  2. API
  3. PDF
  4. NFT
정답과 해설 보기

정답: 1

정답은 ① DPI이다. Deep Packet Inspection은 단순한 주소·포트 수준의 헤더 정보보다 더 깊은 페이로드나 패킷 특성을 분석하여 애플리케이션과 트래픽을 식별하는 기술이다. 그 분석 결과를 보안 정책이나 서비스 품질 정책의 판단에 활용할 수 있다.

검사 자체와 패킷 차단·우선순위 부여 같은 후속 정책 적용은 구별된다. 모든 암호화된 페이로드를 별도 조건 없이 평문처럼 읽을 수 있다는 뜻도 아니다. 어떤 계층의 어떤 정보를 검사할 수 있는지는 구성과 암호화 상태 등에 달려 있다.

선지별 해설

  • ① 정답. 심층적인 패킷 특성 분석으로 트래픽을 식별한다.
  • ② 오답. API는 프로그램 인터페이스의 일반 명칭이다.
  • ③ 오답. PDF는 문서 표현 형식이다.
  • ④ 오답. NFT는 고유 토큰을 가리키며 패킷 검사 기술이 아니다.

편집 해설 근거: ITU-T Y.2775 (2019) — Functional architecture of deep packet inspection — §3.1.1 Deep packet inspection 및 Note

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 아래 설명에 해당하는 도구는 어떤 용어인가? <보기> 호스트 기반으로 파일 시스템 오브젝트들의 변화를 탐지하는 시스템이다. 침입 이후 탐지에 매우 유용할 뿐만 아니라 무결성 입증과 변화 관리 그리고 정책 준수 같은 다른 여러 목적으로도 사용될 수 있다.

  1. Tripwire
  2. SATAN
  3. Klaxon
  4. Watcher
정답과 해설 보기

정답: 1

정답은 ① Tripwire이다. Tripwire는 지정한 파일과 디렉터리의 속성·무결성 정보를 기준선으로 보관하고 이후 상태와 비교하여 변경을 찾는다. 파일 내용이나 권한 등의 예상하지 못한 변화는 침입 조사와 변경 관리에 유용한 단서가 된다.

변경을 탐지했다고 해서 모두 악성 행위라는 뜻은 아니다. 정상적인 업데이트도 변화를 만들 수 있으므로 정책과 변경 이력을 함께 확인해야 한다. 기준선 자체를 신뢰할 수 있게 보호하고 승인된 변경 뒤 적절하게 갱신하는 운영이 중요하다.

선지별 해설

  • ① 정답. 파일 시스템의 무결성을 기준선과 비교하는 도구다.
  • ② 오답. 네트워크 보안 점검 도구의 맥락이며 제시된 파일 무결성 도구 이름은 아니다.
  • ③ 오답. 제시한 Tripwire 방식의 도구 이름과 일치하지 않는다.
  • ④ 오답. 일반적인 이름만으로 제시한 공식 도구를 대신하지 않는다.

편집 해설 근거: Tripwire, Open Source Tripwire 공식 저장소 README (2026-10-05 확인) — README — file integrity monitoring and policy

84. IBM AIX 환경에서 여러 노드를 클러스터로 구성하여 애플리케이션 자원의 가용성을 높이고 장애 시 자원 인계를 지원하는 솔루션의 과거 명칭은?

[학습용 개정문항]

  1. HACMP
  2. renderung
  3. blockchain
  4. RAID
정답과 해설 보기

정답: 1

정답은 ① HACMP이다. IBM의 High Availability Cluster Multi-Processing for AIX는 여러 노드를 클러스터로 구성하여 애플리케이션과 자원의 가용성을 높이기 위한 솔루션이다. 장애 시 다른 노드가 서비스 자원을 인계하도록 구성할 수 있다.

고가용성은 장애 가능성을 없애는 보장이 아니라 중단의 영향을 줄이는 설계 목표다. 모든 구성에서 반드시 두 노드만 쓰거나 몇 초 안에 복구된다고 단정할 수 없다. 실제 복구 시간은 장애 감지, 자원 전환, 저장장치와 애플리케이션 시작 조건 등에 달려 있다.

선지별 해설

  • ① 정답. AIX의 고가용성 클러스터 솔루션 명칭이다.
  • ② 오답. 제시한 IBM 클러스터 솔루션 이름이 아니다.
  • ③ 오답. 분산 원장 기술이며 이 제품의 이름이 아니다.
  • ④ 오답. 디스크 배열 구성 기술로 서비스 클러스터 관리와 구별된다.

편집 해설 근거: IBM, HACMP 5.5 Planning Guide — HACMP for AIX 5.5 Planning Guide — Planning; Eliminating single points of failure

85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 아래 설명에 해당하는 용어는 어떤 용어인가? <보기> 1990년대의 ‘스노우 크래쉬’ 소설에서 처음 사용된 용어이다. 현실 세계와 같이 사회, 경제, 문화 활동에 대한 상호작용이 이뤄진다. 게임, SNS, 교육, 의료 등 많은 산업에서 활용한다.

  1. Metaverse
  2. Mobile Location Service
  3. Hologram
  4. Augmented Reality
정답과 해설 보기

정답: 1

정답은 ① 메타버스이다. 메타버스라는 용어는 Neal Stephenson의 1992년 소설 Snow Crash에 등장한 가상 세계와 연결된다. 이후 사람들이 디지털 공간에서 아바타 등을 통해 상호작용하는 환경을 논의하는 데 폭넓게 쓰여 왔다.

증강현실은 현실 장면에 디지털 정보를 결합하는 기술로 메타버스 경험에 활용될 수 있지만 두 용어가 같은 뜻은 아니다. 홀로그램은 표현 기술, 위치 기반 서비스는 위치 정보를 활용하는 서비스다. 특정 기기나 단일 기술 하나가 메타버스 전체를 정의하지는 않는다.

선지별 해설

  • ① 정답. 소설의 명칭과 가상 공간의 상호작용이라는 단서에 해당한다.
  • ② 오답. 이동 단말의 위치 정보를 활용하는 서비스다.
  • ③ 오답. 입체 영상 등의 표현 기술을 가리킨다.
  • ④ 오답. 현실에 디지털 정보를 겹치는 기술로 범위가 다르다.

편집 해설 근거: ITU-T FG-MV (2023) — Exploring the metaverse: opportunities and challenges — §6.1 A brief history of the metaverse; Table 1

86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중, 사용자의 역할에 기반을 두고 접근을 통제하는 접근 통제 모델은 어떤 용어인가?

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

정답: 3

정답은 ③ RBAC이다. 역할 기반 접근 통제에서는 사용자에게 업무 역할을 부여하고 역할에 필요한 권한을 연결한다. 예를 들어 인사 담당자 역할에 인사 기록 조회 권한을 배정하면 개별 사용자별로 모든 권한을 따로 관리하는 부담을 줄일 수 있다.

역할은 직무와 책임에 맞게 설계해야 하며 한 사용자에게 여러 역할이 배정될 수도 있다. DAC는 객체 소유자 등의 재량, MAC은 중앙 정책과 보안 등급에 따른 강제 규칙을 중심으로 설명한다. 역할 기반이라는 문항의 기준과 구분한다.

선지별 해설

  • ① 오답. 재량적 접근 통제이며 소유자 등의 권한 결정과 관련된다.
  • ② 오답. 이 문항에서 정의한 역할 기반 모델의 표준 약칭이 아니다.
  • ③ 정답. 역할에 권한을 연결하고 사용자에게 역할을 배정한다.
  • ④ 오답. 강제 정책과 보안 표지 등에 따른 접근 통제다.

편집 해설 근거: Peter Reiher, OSTEP v1.10, 55 Access Control — §55.6 Role-Based Access Control

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 전기 및 정보통신기술을 활용하여 전력망을 지능화, 고도화함으로써 고품질의 전력 서비스를 제공하고 에너지 이용 효율을 극대화하는 전력망은?

  1. 로직 네트워크
  2. 디지털 아카이빙
  3. 스마트 그리드
  4. 미디어 빅뱅
정답과 해설 보기

정답: 3

정답은 ③ 스마트 그리드이다. 전력망에 센서·통신·제어 기능을 결합하여 전력의 공급과 사용 상태를 파악하고 운영을 조정하는 접근이다. 수요와 공급의 변화 정보를 교환하면 피크 수요 대응과 분산 전원의 연계 등 운영 효율을 높이는 데 활용할 수 있다.

핵심은 단순히 전선을 디지털 장비로 교체한다는 것이 아니라 전력 설비와 이용자가 정보를 주고받고 제어에 활용하는 데 있다. 장치 간 상호운용성과 보안도 필요하며 도입만으로 에너지 효율이 항상 최대가 된다는 보장은 아니다.

선지별 해설

  • ① 오답. 제시한 지능형 전력망의 명칭이 아니다.
  • ② 오답. 디지털 자료의 장기 보존·관리에 관한 개념이다.
  • ③ 정답. 전력망에 정보통신·제어 기능을 결합한 지능형 전력망이다.
  • ④ 오답. 전력망 운영 기술의 정식 명칭이 아니다.

편집 해설 근거: NIST — New Framework for a Cleaner, More Secure Power Grid — Interoperable sensors and smart controls; two-way communication; peak demand example

88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중, IPv6의 전송 방식에 해당하지 않는 것은?

  1. 유니 캐스트
  2. 멀티 캐스트
  3. 브로드 캐스트
  4. 애니 캐스트
정답과 해설 보기

정답: 3

정답은 ③ 브로드캐스트이다. IPv6 주소 체계는 유니캐스트, 애니캐스트, 멀티캐스트를 구분한다. IPv4의 브로드캐스트에 해당하는 주소 유형은 두지 않으며 그 기능을 필요한 수신자 그룹을 대상으로 하는 멀티캐스트로 대신한다.

유니캐스트는 특정 인터페이스 하나, 멀티캐스트는 그룹의 인터페이스들, 애니캐스트는 같은 주소를 가진 집합 중 라우팅 기준으로 가까운 하나로 전달하는 의미다. 가까움은 물리적 거리 자체가 아니라 라우팅 프로토콜의 거리 기준으로 판단한다.

선지별 해설

  • ① 오답. 하나의 인터페이스를 식별하는 유니캐스트가 있다.
  • ② 오답. 그룹에 전달하는 멀티캐스트가 있다.
  • ③ 정답. IPv6에는 브로드캐스트 주소 유형이 없다.
  • ④ 오답. 집합 중 가까운 하나에 전달하는 애니캐스트가 있다.

편집 해설 근거: IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §2 IPv6 Addressing — address types; no broadcast addresses

89. 웹 애플리케이션이 사용자가 입력한 이동 URL을 검증하지 않고 리다이렉트에 사용하여, 정상 사이트를 거쳐 공격자가 지정한 외부 사이트로 사용자를 보낼 수 있는 취약점은?

[학습용 개정문항]

  1. Blue Snarfing
  2. Dictionary Attack
  3. Open Redirect
  4. Switch Jamming
정답과 해설 보기

정답: 3

정답은 ③ 오픈 리다이렉트이다. 웹 애플리케이션이 사용자가 제공한 이동 대상 주소를 충분히 검증하지 않고 리다이렉트에 사용하면, 정상 사이트의 링크를 거쳐 공격자가 지정한 외부 사이트로 사용자가 이동할 수 있다. 이 신뢰 관계를 피싱 등에 악용할 수 있다.

리다이렉트 기능 자체가 항상 취약한 것은 아니다. 이동 대상을 서버가 정하거나 허용된 대상만 엄격하게 선택하게 하면 위험을 줄일 수 있다. 비밀번호 후보를 반복하는 사전 공격이나 블루투스를 통한 정보 탈취와는 작동 원리가 다르다.

선지별 해설

  • ① 오답. 블루투스를 통한 정보 탈취와 관련된 공격이다.
  • ② 오답. 사전의 후보값으로 비밀번호 등을 추측하는 방식이다.
  • ③ 정답. 검증되지 않은 이동 주소로 사용자를 리다이렉트시키는 취약점이다.
  • ④ 오답. 스위치의 동작을 악용하는 공격 맥락과 구별된다.

편집 해설 근거: OWASP — Unvalidated Redirects and Forwards Cheat Sheet — Introduction; Dangerous URL Redirects; Preventing Unvalidated Redirects

90. FIPS 197(2023 편집 갱신)의 AES에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 키 길이에 따라 10·12·14라운드를 사용한다.
  2. AES-256은 키와 블록 크기가 모두 256비트이다.
  3. 미국 표준으로 채택된 대칭키 블록 암호이다.
  4. 블록은 128비트이며 키는 128·192·256비트 중 하나이다.
정답과 해설 보기

정답: 2

정답은 ②이다. FIPS 197의 AES는 블록 크기가 128비트로 고정되어 있고 키 길이는 128·192·256비트 중 하나다. 각각의 키 길이에 대해 반복 라운드 수는 10·12·14로 정해져 있다. 키가 길어진다고 블록 크기도 함께 늘어나는 것은 아니다.

따라서 AES-256의 256은 키 길이를 뜻하며 처리 블록 크기는 여전히 128비트다. AES는 대칭키 블록 암호이므로 송수신자가 비밀 키를 공유하는 방식으로 사용한다. 블록 암호를 실제 메시지에 적용할 때에는 별도의 운용 모드와 필요한 매개변수도 고려해야 한다.

선지별 해설

  • ① 오답. 키 길이별 라운드 수 10·12·14가 맞다.
  • ② 정답. AES-256도 블록 크기는 256이 아니라 128비트다.
  • ③ 오답. AES는 표준화된 대칭키 블록 암호다.
  • ④ 오답. 블록 크기와 허용되는 세 키 길이를 올바르게 구분했다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §3.1 Inputs and Outputs; Table 3 Key-Block-Round Combinations

91. 인증 요소의 일반적인 분류에서 소유 기반(Something You Have)에 해당하지 않는 것은?

[학습용 개정문항]

  1. 사용자가 가진 하드웨어 보안 토큰
  2. 사용자가 가진 발급 출입 카드
  3. 사용자의 지문
  4. 사용자가 가진 OTP 생성기
정답과 해설 보기

정답: 3

정답은 ③ 지문이다. 인증 요소를 분류할 때 비밀번호처럼 사용자가 아는 것은 지식, 보안 토큰이나 카드처럼 가진 물건은 소유, 지문처럼 신체적 특성에 해당하는 것은 생체 요소로 구분한다.

OTP에서는 숫자 자체의 이름만 보고 분류하기보다 그 숫자를 생성하거나 수신하는 인증 장치의 소유를 확인하는 구조를 살펴야 한다. 이 문항은 사용자가 가진 OTP 생성기를 명시했으므로 소유 요소에 해당한다. 같은 종류의 요소를 여러 번 쓰는 것과 서로 다른 요소를 결합하는 것도 구별한다.

선지별 해설

  • ① 오답. 보안 토큰의 소유를 확인하는 요소다.
  • ② 오답. 발급된 카드의 소유를 확인하는 요소다.
  • ③ 정답. 지문은 사용자의 생체적 특성이다.
  • ④ 오답. 사용자가 가진 OTP 생성기의 소유를 확인하는 요소다.

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

92. ETRI가 2016년에 약 10cm 이내 거리에서 기가비트급 대용량 데이터 전송을 지원한다고 소개한 초고속 근접 무선통신 기술은?

[학습용 개정문항]

  1. SDDC
  2. Ad-hoc
  3. Zing
  4. RFID
정답과 해설 보기

정답: 3

정답은 ③ Zing이다. ETRI가 2016년에 소개한 Zing은 약 10cm 이내의 근접 거리에서 대용량 데이터를 기가비트급으로 주고받도록 개발한 무선통신 기술이다. 당시 발표에서는 60GHz 대역을 이용하는 시제품과 응용 사례를 소개했다.

문제의 거리와 속도는 이 발표에 제시된 기술을 식별하는 단서다. 모든 NFC나 RFID가 같은 속도를 낸다는 뜻이 아니며, 가까운 거리라는 이유만으로 모든 보안 위협이 사라지는 것도 아니다. SDDC는 데이터센터 구성 개념, Ad-hoc은 네트워크 구성 방식이다.

선지별 해설

  • ① 오답. 소프트웨어 정의 데이터센터를 뜻한다.
  • ② 오답. 고정 기반시설 없이 구성하는 네트워크 방식이다.
  • ③ 정답. ETRI가 소개한 기가급 초고속 근접통신 기술이다.
  • ④ 오답. 무선 식별 기술의 일반 범주이며 이 발표의 기술 명칭은 아니다.

편집 해설 근거: ETRI Webzine Vol.72, 초고속 근접 무선통신 Zing (2016-11) — ETRI webzine 제72호, 2016-11-04 — 초고속 근접통신 기술 개발

93. IEEE 802.11의 DCF에서 사용하는 CSMA/CA에 대한 설명으로 옳지 않은 것은?

[학습용 개정문항]

  1. 송신 도중 충돌을 직접 검출하는 기능이 동작의 핵심이다.
  2. 무선 LAN의 DCF 매체 접근에 사용된다.
  3. 채널 감지와 대기·백오프 규칙으로 접근 시점을 조절한다.
  4. 선택적으로 RTS/CTS 교환을 사용할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. IEEE 802.11의 DCF에서 CSMA/CA는 매체의 사용 상태를 살피고 대기·백오프 등으로 충돌 가능성을 줄이는 접근이다. 유선 Ethernet의 CSMA/CD처럼 송신 중 충돌을 직접 검출하는 기능으로 정의하지 않는다.

RTS/CTS 교환은 다른 장치에 전송 시간을 알리는 데 활용할 수 있지만 모든 데이터 전송에 항상 사용되는 필수 절차는 아니다. 수신 확인과 재시도 등을 함께 사용해 전달을 관리하며, 충돌 회피라는 명칭도 충돌이 절대로 발생하지 않는다는 보장은 아니다.

선지별 해설

  • ① 정답. 송신 중 직접 충돌 검출을 중심으로 하는 설명은 CSMA/CD와 혼동한 것이다.
  • ② 오답. 802.11 DCF의 대표적인 매체 접근 방식이다.
  • ③ 오답. 채널 감지와 대기·백오프로 접근 시점을 조절한다.
  • ④ 오답. 선택적으로 RTS/CTS를 사용하여 매체 점유를 알릴 수 있다.

편집 해설 근거: IEEE 802.11 TGa — 802.11 MAC principles (1997) — p.4 — CSMA/CA + Ack; Optional RTS/CTS; Physical and Virtual Carrier Sense

94. 다음 중 전형적으로 OSI 네트워크 계층에서 IP 네트워크 간 패킷 전달을 담당하는 장비는?

[학습용 개정문항]

  1. L2 스위치
  2. 리피터
  3. 라우터
  4. 브리지
정답과 해설 보기

정답: 3

정답은 ③ 라우터이다. 라우터는 목적지 IP 주소와 라우팅 정보를 바탕으로 패킷을 다른 IP 네트워크로 전달한다. 일반적인 OSI 대응에서 이러한 경로 선택과 네트워크 간 전달은 네트워크 계층의 역할이다.

리피터는 신호를 재생하는 물리 계층 장비이고 브리지와 전통적인 L2 스위치는 링크 계층의 주소를 기준으로 프레임을 전달한다. 다만 실제 제품의 기능은 복합적일 수 있어 L3 스위치처럼 라우팅을 수행하는 스위치도 있다. 그래서 보기에서는 L2 스위치로 범위를 정했다.

선지별 해설

  • ① 오답. 제시한 L2 스위치는 링크 계층 프레임을 전달한다.
  • ② 오답. 리피터는 물리 신호를 재생한다.
  • ③ 정답. IP 네트워크 사이의 패킷 전달과 경로 선택을 수행한다.
  • ④ 오답. 브리지는 링크 계층의 프레임 전달 장비다.

편집 해설 근거: IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — §2.2.1 Introduction; §2.2.3 Internet Protocol

95. 피해자의 주소로 위조된 출발지와 IP directed broadcast를 악용하여 여러 호스트의 ICMP 응답이 피해자에게 몰리게 하는 반사·증폭형 서비스 거부 공격은?

[학습용 개정문항]

  1. Smurf Attack
  2. Blue Jacking
  3. LAND Attack
  4. SYN Flooding
정답과 해설 보기

정답: 1

정답은 ① 스머프 공격이다. 피해자의 주소로 위조된 출발지와 IP directed broadcast를 악용하여 여러 호스트의 ICMP 응답이 피해자에게 몰리도록 하는 반사·증폭형 서비스 거부 공격이다. 다수의 응답이 한 대상에 집중된다는 구조가 핵심 단서다.

IP directed broadcast의 라우터 전달을 기본적으로 제한하도록 한 RFC 2644도 이런 악용을 배경으로 한다. ICMP 트래픽이 많다는 사실만으로 모든 경우를 스머프라고 부를 수는 없으며, SYN 요청 자원을 소모시키는 공격 등과 구별해야 한다.

선지별 해설

  • ① 정답. 브로드캐스트 수신자들의 ICMP 응답을 피해자에게 집중시키는 구조다.
  • ② 오답. 블루투스 메시지 전송과 관련된 공격이다.
  • ③ 오답. 출발지와 목적지를 같게 꾸미는 LAND의 전형적 설명과 다르다.
  • ④ 오답. TCP 연결 수립 과정의 SYN 요청을 악용하는 방식이다.

편집 해설 근거: RFC 2644, Changing the Default for Directed Broadcasts in Routers (1999) — RFC 2644 §1 Introduction; §2 Discussion

96. OSI 기본 참조 모델에서 응용 측 사이 대화의 조직·제어와 동기화 등을 지원하는 계층은?

[학습용 개정문항]

  1. Session Layer
  2. Physical Layer
  3. Network Layer
  4. Transport Layer
정답과 해설 보기

정답: 1

정답은 ① 세션 계층이다. OSI 기본 참조 모델에서 세션 계층은 통신하는 응용 측 사이의 대화 조직과 동기화 등을 지원한다. 대화 제어와 동기점 같은 기능을 통해 상위 계층의 교환을 조정하는 역할로 설명한다.

전송 계층은 종단 간 데이터 전송 서비스를 제공하고, 네트워크 계층은 네트워크를 통한 전달과 경로 선택을, 물리 계층은 비트의 물리적 전송을 다룬다. 실제 인터넷 구현에서 OSI 각 기능이 반드시 별도의 프로그램이나 프로토콜로 일대일 구현되는 것은 아니다.

선지별 해설

  • ① 정답. 대화의 조직·제어·동기화 등을 지원한다.
  • ② 오답. 비트와 물리적 신호 전송을 다룬다.
  • ③ 오답. 네트워크를 통한 패킷 전달과 경로를 다룬다.
  • ④ 오답. 종단 간 데이터 전송 서비스를 제공하는 계층이다.

편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — ITU-T X.200 §7.3 Session Layer

97. IPv4 헤더에 대한 오류 검사를 위해 사용하는 16비트 필드는?

[학습용 개정문항]

  1. Checksum
  2. Time To Live
  3. Version
  4. TOS
정답과 해설 보기

정답: 1

정답은 ① Header Checksum이다. IPv4의 헤더 체크섬은 IPv4 헤더에 대한 오류 검사를 제공하며 데이터 부분 전체를 검사하는 필드는 아니다. 헤더를 16비트 단위로 합산하는 일의 보수 연산을 바탕으로 검사값을 만든다.

TTL처럼 전달 과정에서 헤더 값이 바뀌면 체크섬도 그에 맞게 갱신되어야 한다. TTL은 패킷이 계속 순환하는 것을 제한하는 값이고 Version은 IP 버전을 나타낸다. 체크섬이 있다는 사실만으로 악의적인 변조에 대한 암호학적 무결성이 보장되는 것은 아니다.

선지별 해설

  • ① 정답. IPv4 헤더에 대한 오류 검사 필드다.
  • ② 오답. TTL은 패킷의 수명을 제한하는 필드다.
  • ③ 오답. Version은 IP 프로토콜의 버전을 나타낸다.
  • ④ 오답. TOS는 서비스 처리 특성과 관련된 원래 헤더 필드다.

편집 해설 근거: IETF RFC 791, Internet Protocol (1981) — §3.1 Internet Header Format — Header Checksum

98. 역사적으로 재조립 결과가 허용되는 IP 데이터그램 길이를 넘는 등 비정상적인 ICMP 관련 패킷 처리를 악용해 취약한 시스템의 장애를 유발한 공격 유형은?

[학습용 개정문항]

  1. Sniffing
  2. Brute Force Attack
  3. Ping of Death
  4. Trojan Horse
정답과 해설 보기

정답: 3

정답은 ③ Ping of Death이다. 역사적인 Ping of Death는 비정상적인 조각화 패킷 등을 통해 재조립 결과가 허용되는 IP 데이터그램 길이를 넘도록 하여, 이를 잘못 처리하는 구현에서 장애를 유발하는 유형이다. IPv4 데이터그램의 전체 길이 필드는 16비트로 최대 65,535바이트를 표현한다.

단순히 정상 크기의 ping을 많이 보내는 것과 취약한 길이·재조립 처리를 악용하는 것은 구별된다. 또한 현대의 모든 시스템이 이런 입력으로 반드시 중단된다는 뜻은 아니다. 문제는 공격 유형을 식별하는 역사적 동작 원리를 묻는다.

선지별 해설

  • ① 오답. 스니핑은 통신 내용을 엿보는 행위다.
  • ② 오답. 무차별 대입은 후보값을 반복하여 비밀값 등을 찾는 방식이다.
  • ③ 정답. 허용 길이를 넘는 재조립 등 잘못된 입력 처리를 악용하는 유형이다.
  • ④ 오답. 정상 프로그램으로 위장한 악성 프로그램을 가리킨다.

편집 해설 근거: IETF RFC 4732, Internet Denial-of-Service Considerations (2006) — RFC 4732 §2.1.1 Software Vulnerabilities; IETF RFC 791, Internet Protocol (1981) — §3.1 — Total Length

99. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중, 정보보안의 3요소에 해당하지 않는 것은?

  1. Availability
  2. Confidentiality
  3. Authentication
  4. Integrity
정답과 해설 보기

정답: 3

정답은 ③ Authentication이다. 정보보안의 CIA 세 요소는 기밀성, 무결성, 가용성이다. 기밀성은 허가되지 않은 공개를 막고, 무결성은 부적절한 변경·파괴를 방지하며, 가용성은 필요한 때 적시에 신뢰할 수 있는 접근과 사용을 보장하는 목표다.

인증은 주체가 주장하는 신원 등을 확인하는 기능이다. 보안에서 중요한 기능이지만 CIA라는 세 요소의 이름 중 하나는 아니다. 인증 성공만으로 모든 데이터 접근 권한이 생기거나 CIA 목표가 모두 달성되는 것도 아니다.

선지별 해설

  • ① 오답. Availability는 CIA의 가용성이다.
  • ② 오답. Confidentiality는 CIA의 기밀성이다.
  • ③ 정답. Authentication은 인증으로 CIA의 세 이름에 포함되지 않는다.
  • ④ 오답. Integrity는 CIA의 무결성이다.

편집 해설 근거: NIST FIPS 199 — §2 — Security Objectives

100. 다음 중 메시지 요약을 만드는 해시 함수에 해당하는 것은?

[학습용 개정문항]

  1. SNEFRU
  2. IDEA
  3. SEED
  4. TKIP
정답과 해설 보기

정답: 1

정답은 ① SNEFRU이다. Snefru는 메시지를 해시값으로 대응시키는 해시 함수이며 128비트와 256비트 출력 형태가 알려져 있다. 정해진 키로 암호문을 다시 평문으로 복호화하는 대칭키 암호와 기능이 다르다.

IDEA와 SEED는 대칭키 블록 암호이고 TKIP는 무선 LAN에서 사용된 보안 프로토콜이다. 해시를 단순히 복호화할 수 없는 암호화라고 부르기보다 메시지 요약을 만드는 함수로 구별하는 것이 정확하다. 여기서는 역사적 알고리즘의 분류를 묻고 현재 사용을 권장하는 것은 아니다.

선지별 해설

  • ① 정답. 메시지 요약을 만드는 해시 함수다.
  • ② 오답. IDEA는 대칭키 블록 암호다.
  • ③ 오답. SEED는 대칭키 블록 암호다.
  • ④ 오답. TKIP는 무선 LAN의 보안 프로토콜이다.

편집 해설 근거: RHash project — supported hash algorithms — RHash Program — supported algorithms, Snefru-128/256; RFC 3058 — Use of IDEA Encryption Algorithm in CMS — RFC 3058 §1 Introduction; §2 Object Identifier for Content and Key Encryption; IETF RFC 4269, The SEED Encryption Algorithm (2005) — RFC 4269 §1.2 — SEED Overview; NIST SP 800-97 (2007), 2025-12-31 철회·역사 자료 — IEEE 802.11i의 TKIP 설명

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

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

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

자료 기준·검수 정보