문제지 PDF · 웹 정답 해설

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

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

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

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

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

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

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

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

1. 설계 검토 회의에서 다음 항목을 판단한다. 동료 검토 기법 A와 B에 대한 기술로 타당한 설명을 고르면? A: 작성자가 설계서를 순서대로 설명하고 참석자가 질문과 개선 의견을 제시한다. B: 중재자·낭독자·기록자 역할과 체크리스트를 정해 결함을 기록하고 후속 조치를 확인한다.

  1. A는 반드시 중재자가 주재하고 결함 판정 기준을 정량화해야 한다.
  2. A는 작성자가 산출물을 설명하며 의견을 받는 워크스루이고, B는 역할과 체크리스트를 정한 인스펙션이다.
  3. B는 원시 코드를 실제 실행해야만 수행할 수 있다.
  4. A와 B는 진행 역할과 절차까지 완전히 같은 기법이다.
정답과 해설 보기

정답: 2

정답은 ②이다. A는 작성자가 산출물의 내용을 따라가며 동료의 질문과 의견을 받는 워크스루에 해당한다. B처럼 검토 역할, 점검 항목과 후속 조치를 정해 결함을 체계적으로 관리하는 형식은 인스펙션의 특징이다. 두 기법은 산출물을 실행하지 않고도 결함을 찾는 정적 검토이다. 워크스루에도 기록이 필요하며 진행의 형식성은 달라질 수 있다. 인스펙션이라는 이유로 프로그램 실행이 필수이거나 두 검토의 절차가 동일해지는 것은 아니다.

선지별 해설

  • 작성자 중심의 워크스루를 반드시 중재자가 주재한다고 제한할 수 없다.
  • A의 설명 중심 진행과 B의 역할·절차를 갖춘 검토를 올바르게 연결했다.
  • 문서와 코드 등을 실행하지 않고 검토하는 정적 기법이다.
  • 검토 목적이 겹쳐도 역할과 절차의 형식성은 다르다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.3 Review Types

2. 설계 검토 회의에서 다음 항목을 판단한다. 모듈 간 결합도에 대한 다음 설명 중 적절하지 않은 설명을 고르면?

[학습용 개정문항]

  1. 레코드 전체를 넘기지만 수신 모듈이 그중 일부 필드만 사용하면 스탬프 결합에 가깝다.
  2. 여러 모듈이 같은 전역 자료를 공유하고 변경하면 공통 결합에 해당한다.
  3. 두 모듈이 고객번호와 금액처럼 필요한 원시값만 전달하면 자료 결합에 가깝다.
  4. 호출 모듈이 mode 값으로 상대 모듈의 처리 분기를 선택하게 하면 내용 결합이다.
정답과 해설 보기

정답: 4

정답은 ④이다. mode라는 제어 정보를 전달해 상대 모듈의 처리 분기를 선택하게 하는 것은 제어 결합이다. 내용 결합은 다른 모듈의 내부 코드나 내부 자료에 직접 의존하는 경우로 구별한다. 레코드 전체를 전달하고 일부 필드만 사용하면 스탬프 결합, 여러 모듈이 전역 자료를 함께 변경하면 공통 결합, 필요한 단순 값만 전달하면 자료 결합의 예가 된다. 인수의 자료형만 보고 분류하지 말고 그 값이 데이터인지 제어 지시인지 확인해야 한다.

선지별 해설

  • 전체 구조 중 일부 필드만 사용하는 구조적 의존은 스탬프 결합의 사례다.
  • 공유 전역 자료의 값과 변경 순서에 의존하므로 공통 결합이다.
  • 계산에 필요한 단순 데이터만 넘기는 자료 결합의 사례다.
  • 처리 분기를 지정하는 mode는 제어 정보이므로 제어 결합이다.

편집 해설 근거: CMU SEI, Candidate Complexity Metrics (2016), Appendix A.6 — Appendix A.6 Coupling

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

  1. 계획 변경의 배제
  2. 피드백
  3. 용기
  4. 존중
정답과 해설 보기

정답: 1

정답은 ①이다. XP는 의사소통, 단순성, 피드백, 용기와 존중을 중요한 가치로 다룬다. 작게 구현하고 시험한 결과와 고객의 의견을 다음 작업에 반영하므로 계획 변경을 배제한다는 주장은 맞지 않는다. 피드백은 결과를 확인하는 일, 용기는 필요한 개선을 시도하는 태도, 존중은 팀 구성원의 기여와 협력을 대하는 가치이다. 변화에 대응한다는 것이 계획을 세우지 않거나 아무 기준 없이 변경한다는 뜻은 아니다.

선지별 해설

  • 새 피드백을 반영하는 XP에서 계획 변경을 배제한다는 원칙은 성립하지 않는다.
  • 작동 결과와 고객·시험의 정보를 얻는 피드백은 핵심 가치다.
  • 필요한 변경과 문제 해결에 나서는 용기는 핵심 가치다.
  • 팀원과 그 기여를 존중하는 태도는 XP의 핵심 가치다.

편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — Values

4. 설계 검토 회의에서 다음 항목을 판단한다. HIPO를 이용한 설계·문서화에 대한 기술로 틀린 설명을 고르면?

  1. 세부 처리 모듈부터 조립해 전체 기능을 도출하는 상향식 전용 기법이다.
  2. 가시적 도표는 시스템의 전체 기능과 계층을 개괄한다.
  3. 총체적 도표와 세부적 도표는 입력·처리·출력 관계를 단계별로 구체화한다.
  4. 기능 계층과 각 기능의 입출력 흐름을 함께 파악하는 데 쓸 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. HIPO는 기능의 계층 구조와 각 기능의 입력·처리·출력을 함께 표현하는 문서화 기법이다. 전체 구조를 보여 주는 가시적 목차와 상위 수준의 개요, 상세한 IPO 설명을 연결해 기능을 이해하도록 돕는다. 따라서 세부 모듈의 조립만 허용하는 상향식 전용 기법이라는 설명은 잘못이다. 어떤 데이터가 들어와 어떤 처리를 거쳐 무엇이 나오는지를 계층별로 추적하는 것이 핵심이며 실제 실행 순서를 모두 표현하는 흐름도와는 목적이 다르다.

선지별 해설

  • 전체 기능을 계층적으로 분해할 수 있으므로 상향식 전용이 아니다.
  • 가시적 목차는 기능의 위치와 계층을 개괄한다.
  • 개요와 상세 IPO는 입력·처리·출력을 구체화한다.
  • 기능 계층과 각 기능의 입출력 관계를 함께 볼 수 있다.

편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Chapter 5, HIPO, pp.13–14

5. 설계 검토 회의에서 다음 항목을 판단한다. 터치 기반 자연 사용자 인터페이스(NUI)의 조작 용어로 보기 어려운 것은?

  1. 일정 시간 누르는 Press
  2. 화면 전환 순서를 뜻하는 Flow
  3. 손가락을 빠르게 튕기는 Flick
  4. 두 손가락 간격을 좁히는 Pinch
정답과 해설 보기

정답: 2

정답은 ②이다. Press는 접촉을 유지하는 누르기, Flick은 빠르게 손가락을 움직이는 동작, Pinch는 두 접점의 간격을 좁히는 동작을 가리킨다. 이런 제스처는 입력 장치가 감지한 접촉과 움직임을 기능에 연결한다. 반면 화면 전환 순서를 뜻하는 Flow는 이 문항에서 사용자의 접촉 동작을 나타내지 않는다. 같은 제스처가 실행하는 기능은 앱의 설계와 상황에 따라 달라질 수 있으므로 특정 화면 결과와 제스처 이름을 혼동하지 않는다.

선지별 해설

  • 접촉을 유지하는 누르기는 터치 입력 동작이다.
  • 화면 전환의 흐름은 이 보기에서 손가락 제스처의 이름이 아니다.
  • 빠르게 튕기는 동작은 터치 제스처로 사용된다.
  • 두 접점의 거리를 줄이는 동작은 축소 등의 조작에 연결된다.

편집 해설 근거: Microsoft Windows apps — Touch interactions — Touch interactions; Gestures

6. 설계 검토 회의에서 다음 항목을 판단한다. UML에서 클래스에 boundary 스테레오타입을 표시한 것으로 타당한 설명을 고르면?

  1. {{boundary}}
  2. [[boundary]]
  3. «boundary»
  4. ((boundary))
정답과 해설 보기

정답: 3

정답은 ③이다. UML에서 적용한 스테레오타입의 이름은 보통 « » 모양의 꺾쇠 안에 적어 표시한다. 따라서 boundary 스테레오타입을 적용했다면 «boundary»라는 표기가 맞는다. 스테레오타입은 프로파일을 통해 기존 UML 요소에 특정 분야의 의미나 제약을 더하는 확장 장치이다. boundary라는 이름이 모든 UML 클래스에 기본으로 붙는다는 뜻은 아니며, 프로파일에서 어떤 요소를 확장하도록 정의했는지에 따라 적용한다.

선지별 해설

  • 중괄호 두 쌍은 스테레오타입 이름의 표준 표기가 아니다.
  • 대괄호 두 쌍은 해당 표기 규칙과 다르다.
  • 스테레오타입 이름을 « » 안에 적는 표현이다.
  • 소괄호 두 쌍은 스테레오타입 이름의 표준 표기가 아니다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §12 Profiles — Stereotype notation

7. 설계 검토 회의에서 다음 항목을 판단한다. 개발 주기마다 위험을 식별·분석하고, 위험을 줄이기 위한 시제품이나 검증 결과를 다음 반복에 반영하는 생명주기 모형은?

  1. RAD 모형
  2. 나선형 모형
  3. 폭포수 모형
  4. V 모형
정답과 해설 보기

정답: 2

정답은 ②이다. 나선형 모형은 반복 주기마다 목표와 대안을 검토하고 주요 위험을 분석한 뒤 개발과 평가 결과를 다음 계획에 반영한다. 위험을 줄이는 데 필요하면 시제품이나 실험을 사용할 수 있다. 단순히 반복하거나 빠르게 개발한다는 사실만으로 나선형 모형이 되는 것은 아니고 위험 중심의 의사결정이 구별점이다. 폭포수는 단계별 진행, V 모형은 개발 활동과 대응 시험, RAD는 빠른 응용 개발이라는 관점이 중심이다.

선지별 해설

  • 빠른 응용 개발을 강조하는 모형이며 위험 중심 반복이라는 직접 특징과 다르다.
  • 위험을 분석하고 줄여 가는 반복 주기가 나선형 모형의 핵심이다.
  • 단계별 진행을 강조하는 모형으로 제시된 위험 중심 주기와 다르다.
  • 개발 단계와 대응 검증 활동의 관계를 강조한다.

편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — A Spiral Model of Software Development and Enhancement — risk-driven cycles

8. 사용자가 이미 아는 표현과 관례를 바탕으로, 별도 설명 없이 아이콘과 메뉴의 조작 의미를 바로 알아차리는 성질을 평가한다. 이 기준에 가장 가까운 UI 설계 원칙은?

[학습용 개정문항]

  1. 유연성
  2. 효율성
  3. 직관성
  4. 상호운용성
정답과 해설 보기

정답: 3

정답은 ③이다. 이 문항에서 직관성은 사용자가 이미 아는 표현과 관례를 바탕으로 조작 의미를 바로 알아차리는 성질을 뜻한다. 익숙한 아이콘과 메뉴 이름은 사용자가 기억해 낸 명령을 입력하는 부담을 줄이고 행동의 단서를 제공한다. 효율성은 작업에 드는 시간이나 노력을, 유연성은 여러 사용 방식의 수용을, 상호운용성은 다른 시스템과의 정보 교환을 평가하는 관점이다. 직관성은 학습 용이성에도 기여하지만 두 용어를 동일한 선택지로 경쟁시키지 않았다.

선지별 해설

  • 여러 조작 경로나 사용자 방식에 대응하는 성질이며 즉시 의미를 알아차리는 조건과 다르다.
  • 작업 시간과 노력에 관한 효율은 지문의 직접 평가 기준이 아니다.
  • 익숙한 표현과 관례로 조작 의미를 바로 파악하는 직관성이다.
  • 다른 시스템과 함께 동작하는 능력을 말한다.

편집 해설 근거: Jakob Nielsen, 10 Usability Heuristics for User Interface Design — Match between the system and the real world; Recognition rather than recall

9. 설계 검토 회의에서 다음 항목을 판단한다. 상위 자료 흐름도와 이를 분해한 하위 자료 흐름도의 균형을 점검한 결과로 타당한 설명을 고르면? 상위도: 신청자 → 신청서 → P0 신청처리 → 처리결과 → 신청자 하위도: 신청자 → 신청서 → P1 접수 → 접수자료 → P2 심사 → 처리결과 → 신청자 P1과 P2는 하위도 내부의 접수원장 저장소에도 접수자료를 기록·조회한다.

  1. 상위 프로세스의 외부 입력·출력이 하위도 경계에서도 보존되어 균형을 만족한다.
  2. 하위 프로세스 수가 상위 프로세스보다 많으므로 균형을 만족하지 못한다.
  3. 상위도의 외부 개체를 하위도에서 내부 프로세스로 바꾸어야 균형을 만족한다.
  4. 하위도에 내부 자료 저장소가 추가됐으므로 외부 입출력과 관계없이 불균형이다.
정답과 해설 보기

정답: 1

정답은 ①이다. 상위 처리의 외부 입력은 신청서이고 외부 출력은 처리결과이다. 하위의 접수와 심사로 나누어도 신청자로부터 같은 입력을 받고 같은 의미의 결과를 돌려주므로 경계의 균형을 유지한다. 하위도 내부의 접수자료와 접수원장은 처리를 자세히 표현하기 위해 추가할 수 있다. 균형은 내부 처리의 개수나 저장소의 수를 상위와 같게 만드는 규칙이 아니다. 상위 경계를 드나드는 정보가 하위에서도 누락되거나 이유 없이 생기지 않아야 한다.

선지별 해설

  • 외부 입력과 출력의 의미가 보존되어 상하위 균형이 맞는다.
  • 하위 처리의 개수는 분해 목적에 맞게 늘어날 수 있다.
  • 같은 외부 신청자를 내부 처리로 바꾸어야 할 이유가 없다.
  • 내부 저장소를 추가하는 것만으로 균형 위반이 되지 않는다.

편집 해설 근거: Excel Software, Process Model — Data Flow Diagrams — Verification and Balance Reports

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

  1. 리스코프 치환 원칙
  2. 데메테르 법칙
  3. 인터페이스 분리 원칙
  4. 의존 역전 원칙
정답과 해설 보기

정답: 2

정답은 ②이다. SOLID는 단일 책임, 개방·폐쇄, 리스코프 치환, 인터페이스 분리, 의존 역전의 다섯 원칙을 묶어 부르는 이름이다. LSP·ISP·DIP는 각각 이 묶음의 L·I·D에 대응한다. 데메테르 법칙은 객체가 지나치게 멀리 떨어진 객체 구조를 따라 의존하지 않도록 하는 별도의 설계 지침이다. 소프트웨어 설계에 유용하다는 이유만으로 모든 지침이 SOLID의 구성 요소에 포함되는 것은 아니다.

선지별 해설

  • 리스코프 치환 원칙은 SOLID의 L에 해당한다.
  • 데메테르 법칙은 별도의 설계 지침이며 다섯 구성 원칙에는 없다.
  • 인터페이스 분리 원칙은 SOLID의 I에 해당한다.
  • 의존 역전 원칙은 SOLID의 D에 해당한다.

편집 해설 근거: Robert C. Martin, Solid Relevance (2020-10-18) — SOLID principles

11. 설계 검토 회의에서 다음 항목을 판단한다. UML 클래스 다이어그램에서 Report의 연산이 매개변수 형식으로 Printer를 잠시 참조한다. 두 클래스 사이에 가장 직접적으로 나타나는 관계는?

  1. 일반화
  2. 연관
  3. 의존
  4. 실체화
정답과 해설 보기

정답: 3

정답은 ③이다. Report의 연산이 Printer를 매개변수 형식으로 사용하면 그 연산의 정의가 Printer에 의존한다. 이처럼 어떤 요소가 다른 요소의 정의나 서비스에 영향을 받는 관계를 의존 관계로 나타낼 수 있다. 매개변수로 잠시 사용한다는 조건만으로 지속적인 객체 연결이나 상속을 주장할 수는 없다. 일반화는 상위·하위 분류의 관계이고 실체화는 명세를 구현하는 관계이므로, 지문에서 직접 확인되는 사용 관계와 구별한다.

선지별 해설

  • 상위 타입을 특수화하거나 상속한다는 조건이 없다.
  • 지속적인 구조적 연결보다 연산에서 잠시 사용하는 관계가 명시되어 있다.
  • 매개변수 타입을 사용하는 Report가 Printer에 의존한다.
  • 계약이나 인터페이스의 구현이라는 조건이 없다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §7 Common Structure — Dependencies; Usage

12. 설계 검토 회의에서 다음 항목을 판단한다. 객체지향 시스템에서 한 객체가 다른 객체에게 연산 수행을 요청하며 전달하는 것을 무엇이라 하는가?

  1. 클래스
  2. 패키지
  3. 상태
  4. 메시지
정답과 해설 보기

정답: 4

정답은 ④이다. 객체 사이에서 연산을 수행하도록 요청하거나 상호작용을 전달하는 단위를 메시지라고 한다. 예를 들어 주문 객체가 결제 객체에 승인 요청을 보내면 수신 객체는 정해진 동작을 수행한다. 클래스는 객체의 구조와 동작을 정의하는 분류이고 패키지는 모델 요소를 묶는 단위이며 상태는 특정 시점의 조건을 나타낸다. 메시지는 동기 호출이나 비동기 신호 등 여러 형태로 표현될 수 있으며 객체 자체의 이름과는 다르다.

선지별 해설

  • 클래스는 객체들의 구조와 동작을 정의하는 분류이다.
  • 패키지는 관련 모델 요소를 묶는 단위이다.
  • 상태는 객체가 처한 조건을 나타낸다.
  • 객체 사이의 요청·상호작용을 전달하는 메시지이다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §17 Interactions — Message

13. 설계 검토 회의에서 다음 항목을 판단한다. 다음 조건을 만족하는 GoF 생성 패턴은? 생성자를 외부에서 직접 호출할 수 없게 한다. 최초 요청 시 한 번 만든 인스턴스를 이후 요청에서도 반환한다.

  1. Builder
  2. Prototype
  3. Factory Method
  4. Singleton
정답과 해설 보기

정답: 4

정답은 ④이다. 싱글턴은 특정 클래스의 인스턴스를 하나로 유지하고 그 인스턴스에 접근하는 통로를 제공하는 생성 패턴이다. 지문은 외부 생성자 호출을 제한하고 최초 생성한 객체를 이후 요청에서도 돌려주므로 이 의도에 맞는다. 빌더는 복잡한 객체의 단계적 구성, 프로토타입은 기존 객체의 복제, 팩토리 메서드는 하위 클래스가 구체 생성 타입을 정하는 문제를 다룬다. 실제 구현에서는 동시 접근 시 중복 생성이 생기지 않는지도 별도로 검토해야 한다.

선지별 해설

  • 복잡한 객체를 단계적으로 구성하는 패턴이다.
  • 기존 객체를 복제하여 새 객체를 얻는 패턴이다.
  • 생성할 구체 클래스를 하위 클래스가 결정하도록 하는 패턴이다.
  • 하나의 인스턴스를 유지하고 공통 접근점을 제공하는 패턴이다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Singleton — Intent; Implementation

14. 설계 검토 회의에서 다음 항목을 판단한다. 입력을 토큰화한 결과를 구문 분석기에 넘기고, 그 결과를 다시 의미 분석기에 전달한다. 각 단계가 받은 데이터를 변환해 다음 단계로 보내는 구조에 가장 가까운 것은?

  1. MVC 구조
  2. 계층 구조
  3. 저장소 구조
  4. 파이프-필터 구조
정답과 해설 보기

정답: 4

정답은 ④이다. 앞 단계의 출력이 다음 단계의 입력이 되는 변환 흐름은 파이프·필터 구조에 해당한다. 토큰화, 구문 분석과 의미 분석이 각각 입력을 처리하는 필터가 되고 결과 전달 경로가 파이프가 된다. 단계별 입출력 계약을 맞추면 각 변환을 독립적으로 검토하거나 교체할 수 있다. MVC는 화면·입력 제어·모델의 분리, 계층 구조는 서비스 수준의 분리, 저장소 구조는 공통 데이터 저장소를 통한 협력이 핵심이다.

선지별 해설

  • 모델·뷰·컨트롤러로 역할을 나누는 구조이며 순차 변환의 직접 설명과 다르다.
  • 상하위 서비스 계층의 의존을 중심으로 하는 구조이다.
  • 중앙의 공통 저장소를 공유하는 구조가 제시되지 않았다.
  • 각 변환 단계의 출력을 다음 입력으로 전달하는 파이프·필터 구조다.

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

15. 설계 검토 회의에서 다음 항목을 판단한다. 명령줄 인터페이스(CLI)의 특성으로 옳은 것만 고른 것은? ㄱ. 명령어와 옵션을 텍스트로 조합할 수 있다. ㄴ. 화면의 아이콘 위치를 포인터로 선택해야 한다. ㄷ. 셸 스크립트와 파이프로 반복 작업을 자동화할 수 있다. ㄹ. 음성 인식기가 반드시 필요하다.

  1. ㄱ, ㄴ, ㄷ, ㄹ
  2. ㄱ
  3. ㄱ, ㄷ
  4. ㄴ, ㄹ
정답과 해설 보기

정답: 3

정답은 ③이다. CLI는 명령 이름과 옵션 등을 문자로 조합하여 작업을 요청하는 인터페이스이다. 셸은 스크립트로 명령의 실행 순서를 구성하고 파이프로 한 명령의 출력을 다음 명령의 입력에 연결할 수 있으므로 ㄱ과 ㄷ이 옳다. 아이콘의 위치를 포인터로 골라야 한다는 조건은 그래픽 조작에 가까우며 음성 인식기도 CLI의 필수 장치가 아니다. 자동화의 가능성과 모든 명령이 무인 실행에 적합하다는 주장은 구별해야 한다.

선지별 해설

  • ㄴ과 ㄹ은 CLI의 필수 특성이 아니므로 모두 옳지 않다.
  • ㄱ뿐 아니라 스크립트·파이프에 관한 ㄷ도 옳다.
  • 텍스트 명령과 셸 자동화에 관한 ㄱ·ㄷ이 옳다.
  • 아이콘 선택과 음성 인식은 CLI의 필수 조건이 아니다.

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

16. 설계 검토 회의에서 다음 항목을 판단한다. UML 시퀀스 다이어그램의 구성 요소로 보기 어려운 것은?

  1. 생명선
  2. 실행 명세
  3. 확장 관계
  4. 메시지
정답과 해설 보기

정답: 3

정답은 ③이다. 시퀀스 다이어그램은 참여자의 생명선과 메시지, 실행 구간 등을 이용해 상호작용의 순서를 표현한다. 생명선은 참여자의 존재를, 실행 구간은 동작이 수행되는 기간을, 메시지는 참여자 사이의 통신을 나타낸다. Extend는 유스케이스 사이에서 조건부 확장 관계를 표현하는 요소이므로 여기서 묻는 시퀀스 다이어그램의 구성 요소와 다르다. 서로 다른 UML 다이어그램에 등장하는 관계 이름을 혼합하지 않아야 한다.

선지별 해설

  • 상호작용 참여자를 나타내는 생명선은 시퀀스 다이어그램 요소다.
  • 참여자의 동작 수행 구간을 나타낼 수 있다.
  • Extend는 유스케이스 사이의 확장 관계이다.
  • 참여자 간 통신을 나타내는 메시지는 핵심 요소다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §17 Interactions; §18 UseCases — Extend

17. 다음에 제시한 직접 호출이 전부일 때, 모듈 M의 fan-in과 fan-out은? 화살표의 시작 모듈이 끝 모듈을 호출한다. 여기서 fan-in은 M을 직접 호출하는 서로 다른 모듈 수, fan-out은 M이 직접 호출하는 서로 다른 모듈 수로 정의한다.

[학습용 개정문항]
A → M
B → M
C → M
M → X
M → Y

  1. fan-in 3, fan-out 2
  2. fan-in 1, fan-out 2
  3. fan-in 2, fan-out 1
  4. fan-in 2, fan-out 3
정답과 해설 보기

정답: 1

정답은 ①이다. fan-in은 해당 모듈을 호출하는 다른 모듈의 수이고 fan-out은 해당 모듈이 직접 호출하는 모듈의 수이다. M으로 들어오는 호출은 A, B, C의 세 개이므로 fan-in은 3이다. M에서 나가는 호출은 X, Y의 두 개이므로 fan-out은 2이다. 방향을 반대로 세거나 M 자체를 추가하면 잘못된 값이 된다. 제시된 직접 호출 관계만 세며, 실행 중의 호출 횟수나 간접적으로 연결된 모든 모듈 수를 세는 것이 아니다.

선지별 해설

  • M을 부르는 모듈은 A·B·C의 3개, M이 부르는 모듈은 X·Y의 2개다.
  • fan-out 2는 맞지만 fan-in은 A·B·C를 모두 세어 3이다.
  • 들어오는 호출 3개와 나가는 호출 2개를 모두 잘못 센 값이다.
  • fan-in과 fan-out의 방향을 반대로 센 값이다.

편집 해설 근거: Scientific Toolworks Understand, Measure coupling and cohesion — Plugin metrics for deeper modular analysis — two fan-in/fan-out families

18. 설계 검토 회의에서 다음 항목을 판단한다. 다음 클래스 설계에 가장 직접 적용된 객체지향 개념은? class Account { private int balance; public void deposit(int amount) { if (amount > 0) balance += amount; } }

  1. 다형성
  2. 상속
  3. 메시지
  4. 캡슐화
정답과 해설 보기

정답: 4

정답은 ④이다. balance를 private으로 두고 외부에서는 deposit이라는 공개 연산을 통해 값을 변경하게 한 것은 캡슐화의 예이다. 데이터와 관련 동작을 한 클래스에 묶으면서 외부의 직접 변경을 제한한다. 양수인지 검사하는 책임을 메서드에 모으면 호출자가 내부 표현을 알아야 할 필요가 줄어든다. 상속이나 여러 구현의 동적 선택은 지문에 없으며, 이 작은 코드가 오버플로 등 모든 계좌 규칙까지 완전히 보장한다는 뜻도 아니다.

선지별 해설

  • 동일한 호출이 여러 구체 구현으로 선택된다는 조건이 없다.
  • 상위 클래스에서 특성을 물려받는 구조가 제시되지 않았다.
  • 호출 자체보다 내부 자료의 접근 제한이 직접적인 설계 특징이다.
  • 데이터를 감추고 공개 연산으로 조작하게 한 캡슐화다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 6 Names — §6.6 Access Control

19. 설계 검토 회의에서 다음 항목을 판단한다. 럼바우(Rumbaugh)의 객체지향 분석에서 사용하는 세 가지 모델에 포함되지 않는 것은?

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

정답: 1

정답은 ①이다. Rumbaugh의 OMT는 객체 모델, 동적 모델과 기능 모델을 사용해 시스템을 서로 다른 관점에서 설명한다. 객체 모델은 객체와 관계의 구조, 동적 모델은 사건에 따른 상태 변화, 기능 모델은 데이터의 변환을 다룬다. 배치 모델은 여기서 묻는 세 모델에 포함되지 않는다. 세 관점은 관련 정보를 주고받으며 전체 분석을 보완하므로 모델 이름을 외우는 데서 그치지 않고 무엇을 표현하는지도 구별해야 한다.

선지별 해설

  • 배치 모델은 OMT의 세 분석 모델에 포함되지 않는다.
  • 객체와 관계의 구조를 표현하는 객체 모델이다.
  • 사건과 상태 변화를 다루는 동적 모델이다.
  • 자료 변환과 계산을 다루는 기능 모델이다.

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

20. 설계 검토 회의에서 다음 항목을 판단한다. 서로 다른 운영체제와 통신 규약을 사용하는 응용프로그램 사이에서 호출·메시지 교환을 중개하는 소프트웨어 계층은?

  1. 미들웨어
  2. 펌웨어
  3. 부트로더
  4. 디바이스 드라이버
정답과 해설 보기

정답: 1

정답은 ①이다. 미들웨어는 응용프로그램 사이에서 통신, 메시지 전달이나 서비스 호출 같은 공통 기능을 제공하는 소프트웨어 계층이다. 서로 다른 환경의 세부 차이를 완화해 응용이 약속된 인터페이스로 협력하도록 돕는다. 펌웨어는 장치에 가까운 제어 소프트웨어, 부트로더는 운영체제 등의 시작을 준비하는 코드, 장치 드라이버는 운영체제가 장치를 제어하도록 연결하는 요소이다. 메시지 교환을 중개한다는 지문의 역할은 미들웨어에 가장 가깝다.

선지별 해설

  • 응용 사이의 통신과 서비스 이용을 중개하는 계층이다.
  • 장치에 내장되는 제어 소프트웨어의 성격을 가리킨다.
  • 시스템 시작 과정에서 다음 실행 환경을 불러오는 역할이다.
  • 운영체제와 특정 장치 사이의 제어를 연결한다.

편집 해설 근거: Oracle Java EE 7 Tutorial, Overview of the JMS API — Overview of the JMS API — messaging middleware

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

21. 개발·시험 담당자가 다음 사례를 검토한다. 소프트웨어 테스트에 대한 기술로 틀린 설명을 고르면?

  1. 블랙박스 테스트는 내부 구현을 보지 않고 입력과 관찰 가능한 결과를 비교한다.
  2. 테스트 케이스에는 입력값뿐 아니라 수행 조건과 기대 결과도 포함될 수 있다.
  3. 기초 경로 테스트에서 독립 경로는 반복 구조를 지나서는 안 된다.
  4. 화이트박스 테스트는 제어 흐름과 조건·반복 구조를 기준으로 경로를 설계할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 기초 경로 테스트는 제어 흐름 그래프에서 독립적인 경로를 선정하여 구조를 시험하는 화이트박스 기법이다. 반복 구조도 제어 흐름에 포함되므로 독립 경로가 반복문을 지나서는 안 된다는 금지는 없다. 가능한 모든 반복 횟수의 조합을 무한히 나열한다는 뜻도 아니다. 블랙박스는 외부에서 관찰되는 입출력과 명세를 기준으로 하며 테스트 케이스는 입력, 수행 조건과 기대 결과를 갖추어 재현 가능한 판정을 돕는다.

선지별 해설

  • 내부 구현 대신 외부 명세와 관찰 결과에 근거하는 설명이다.
  • 재현과 판정을 위해 입력 외에 조건과 기대 결과도 필요하다.
  • 반복문을 포함한 제어 흐름에서도 독립 경로를 구성할 수 있다.
  • 조건·분기·반복 등의 내부 구조를 활용하는 화이트박스 접근이다.

편집 해설 근거: NIST SP 500-235, Structured Testing (1996) — Structured Testing — basis paths; loops; ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.2; §4.3 Test Techniques

22. 개발·시험 담당자가 다음 사례를 검토한다. 디지털 저작권 관리(DRM)의 기술 요소로 보기 어려운 것은?

  1. 불법 복제·변조 탐지
  2. 네트워크 경계 방화벽 규칙 관리
  3. 콘텐츠 암호화와 복호화
  4. 사용 권한·기간 정책 관리
정답과 해설 보기

정답: 2

정답은 ②이다. DRM은 콘텐츠의 암호화, 이용 권한과 기간의 관리 등으로 콘텐츠 사용을 통제하는 기술 체계이다. 라이선스에 따라 복호화 키를 전달하거나 허용된 재생 조건을 확인할 수 있고 무단 이용이나 변조 탐지 기능을 함께 구성할 수도 있다. 네트워크 경계의 방화벽 규칙 관리는 패킷이나 연결의 접근을 통제하는 별도 보안 기능이다. 방화벽이 DRM 서버를 보호할 수 있어도 콘텐츠 권리 관리의 직접 요소와는 구별한다.

선지별 해설

  • 무단 복제·변조 탐지는 콘텐츠 보호 체계에 포함될 수 있다.
  • 네트워크 경계 접근 정책은 방화벽의 기능이며 DRM의 직접 요소가 아니다.
  • 콘텐츠를 암호화하고 허용된 이용자에게 복호화 수단을 제공한다.
  • 라이선스에 이용 권한과 기간 등의 정책을 담을 수 있다.

편집 해설 근거: Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — PlayReady ecosystem roles; W3C Recommendation — ODRL Information Model 2.2 — Permissions; Prohibitions; Constraints

23. 개발·시험 담당자가 다음 사례를 검토한다. 형상 관리 활동에 대한 기술로 틀린 설명을 고르면?

  1. 형상 상태 보고는 버전과 변경 처리 현황을 기록·공유한다.
  2. 형상 식별은 관리할 산출물과 기준선을 정한다.
  3. 형상 통제는 변경 요청을 평가하고 승인된 변경만 반영하도록 관리한다.
  4. 형상 감사는 프로그램 작성자를 한 명의 주 프로그래머로 통일하는 활동이다.
정답과 해설 보기

정답: 4

정답은 ④이다. 형상 감사는 기준선과 산출물이 요구된 내용과 승인된 변경을 충족하고 기록과 실제 상태가 일치하는지 확인하는 활동이다. 작성자를 한 사람으로 통일하는 조직 편성 활동이 아니다. 형상 식별은 관리할 항목과 기준을 정하고 통제는 변경 요청의 평가·승인을 관리하며 상태 보고는 버전과 변경 현황을 기록한다. 이 활동들이 함께 작동해야 어떤 배포본에 어떤 변경이 들어갔는지 추적할 수 있다.

선지별 해설

  • 버전과 변경 현황의 기록·공유는 형상 상태 보고에 해당한다.
  • 관리할 항목과 기준선을 정하는 일은 형상 식별이다.
  • 변경의 평가·승인과 반영을 관리하는 일은 형상 통제이다.
  • 형상 감사는 산출물과 기록의 적합성을 확인하며 작성자 수를 정하는 활동이 아니다.

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

24. 다음 이진 트리를 후위 순회했을 때의 방문 순서는? 나열하지 않은 자식은 모두 없다.

[학습용 개정문항]
M: 왼쪽 H, 오른쪽 T
H: 왼쪽 D, 오른쪽 J
T: 오른쪽 Z
D, J, Z: 자식 없음

  1. HDJMTZ
  2. DJHZMT
  3. MHDJTZ
  4. DJHZTM
정답과 해설 보기

정답: 4

정답은 ④이다. 후위 순회는 왼쪽 부분 트리, 오른쪽 부분 트리, 현재 노드 순서로 방문한다. H의 부분 트리는 D와 J를 방문한 뒤 H를 방문하여 D J H가 된다. T는 왼쪽 자식이 없고 오른쪽에 Z만 있으므로 Z T가 된다. 마지막으로 루트 M을 붙이면 D J H Z T M이다. 전체 루트를 먼저 쓰면 전위 순회와 혼동한 것이고, 부모를 두 자식보다 먼저 쓰는 것도 후위 순회 규칙에 맞지 않는다.

선지별 해설

  • H와 M이 자식보다 먼저 나와 후위 규칙에 맞지 않는다.
  • 루트 M은 오른쪽 부분 트리의 T까지 방문한 뒤 나와야 한다.
  • 루트부터 방문하는 전위 순서이며 후위 순회가 아니다.
  • D J H, Z T, M을 합친 올바른 후위 순서다.

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

25. 다음 중 기업 응용 통합(EAI)의 연결 구조나 메시지 전달 방식의 예가 아닌 것은?

[학습용 개정문항]

  1. Hub & Spoke
  2. Message Bus
  3. Point-to-Point
  4. 이진 탐색 트리의 키 검색
정답과 해설 보기

정답: 4

정답은 ④이다. EAI는 기업의 서로 다른 응용 사이에서 데이터와 업무 처리를 연결하는 통합이다. 응용끼리 직접 연결하는 Point-to-Point, 중앙 허브로 연결을 모으는 Hub & Spoke, 메시지 버스를 활용하는 방식이 통합 구조의 예이다. 이진 탐색 트리의 키 검색은 자료구조에 저장한 값을 찾는 알고리즘이므로 이 보기들처럼 응용 간 연결 구조를 나타내지 않는다. 트리 모양이 어떤 네트워크에도 사용될 수 없다는 뜻으로 일반화해서는 안 된다.

선지별 해설

  • 중앙 허브를 통해 응용을 연결하는 통합 구조이다.
  • 공통 메시지 전달 기반을 사용하는 통합 방식이다.
  • 응용 간 개별 연결을 두는 통합 구조이다.
  • 자료구조의 키 검색 알고리즘으로 응용 간 통합 연결 구조가 아니다.

편집 해설 근거: IBM, What Is Enterprise Application Integration? (2026-10-05 확인) — Types of enterprise application integration

26. 개발·시험 담당자가 다음 사례를 검토한다. 테스트에서 발견된 결함을 분석하니 일부 모듈에 결함 대부분이 집중되어 있었다. 소수 원인이 다수 결과를 만든다는 이 현상을 설명하는 법칙은?

  1. 파레토 법칙
  2. 리틀의 법칙
  3. 브룩스의 법칙
  4. 보엠의 법칙
정답과 해설 보기

정답: 1

정답은 ①이다. 파레토 원리는 결과의 큰 부분이 비교적 적은 원인에 집중될 수 있다는 관찰을 설명한다. 결함의 다수가 일부 모듈에 모이는 현상은 시험의 결함 집중 원리와 연결된다. 따라서 결함 이력과 변경 위험을 바탕으로 시험 노력을 배분할 근거가 된다. 흔히 80 대 20으로 표현하지만 모든 프로젝트에서 정확히 그 비율이 나온다는 법칙은 아니다. 결함이 적게 보고된 모듈의 검증을 생략해도 된다는 뜻도 아니다.

선지별 해설

  • 소수 원인에 많은 결과가 집중되는 현상을 설명한다.
  • 대기행렬의 평균 체류량·도착률·체류시간 관계와 관련된다.
  • 늦어진 프로젝트에 인원을 추가할 때 일정이 더 늦어질 수 있다는 주장이다.
  • 지문의 결함 집중 현상을 파레토 원리 대신 이 이름으로 부르지 않는다.

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

27. 테스트 결과가 올바른지 판단하기 위한 기준인 테스트 오라클에 대한 설명 중 틀린 것은?

[학습용 개정문항]

  1. 승인된 명세에서 기대값을 계산하여 실제 결과와 비교할 수 있다.
  2. 답을 검증해 둔 입력 사례는 해당 사례의 판정 기준으로 사용할 수 있다.
  3. 이전 버전과 결과가 같으면 두 버전의 결과가 언제나 정확하다고 보장된다.
  4. 결과가 반드시 만족해야 할 불변식을 검사하여 일부 오류를 찾을 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 테스트 오라클은 관찰한 실행 결과의 옳고 그름을 판단하는 기준이나 정보원이다. 승인된 명세에서 기대값을 계산하거나 검증된 사례의 답과 대조할 수 있다. 이전 버전과 같은 출력이 나왔다는 사실은 차이가 없다는 정보일 뿐, 두 버전이 같은 결함을 가지고 있을 가능성까지 배제하지 않는다. 반드시 만족할 불변식을 검사하는 방법도 결과의 일부 성질을 확인하는 데 도움이 되지만 모든 오류를 검출하는 완전한 기준이라고 보장할 수는 없다.

선지별 해설

  • 승인된 명세에서 도출한 기대값은 결과 판정에 사용할 수 있다.
  • 검증된 입력·정답 쌍은 해당 사례의 비교 기준이 된다.
  • 이전 버전에도 같은 결함이 있을 수 있어 일치만으로 정확성을 보장하지 못한다.
  • 불변식은 결과가 만족해야 할 성질을 검사하는 부분적인 기준이 될 수 있다.

편집 해설 근거: ISTQB, Standard Glossary Version 3.01, Foundation Level terms, 회원위원회 제공본 — test oracle definition

28. 개발·시험 담당자가 다음 사례를 검토한다. IPsec에 대한 기술로 적절하지 않은 설명을 고르면?

[학습용 개정문항]

  1. 암호화에는 복호화가 불가능한 일방향 해시 함수만 사용할 수 있다.
  2. ESP는 선택한 구성에 따라 기밀성, 무결성과 출발지 인증 등의 서비스를 제공할 수 있다.
  3. 전송 모드와 터널 모드로 운용할 수 있다.
  4. AH는 데이터 기밀성을 제공하지 않지만 무결성과 출발지 인증을 지원한다.
정답과 해설 보기

정답: 1

정답은 ①이다. IPsec은 IP 계층에서 기밀성, 무결성과 출발지 인증 등의 보안 서비스를 제공하는 체계이다. 기밀성을 위한 암호화에는 수신자가 키를 이용해 복호화할 수 있는 암호가 필요하므로 일방향 해시만 사용한다는 설명은 틀리다. ESP는 선택한 구성에 따라 기밀성과 무결성 등의 서비스를 제공하며 무결성 전용 구성도 가능하다. AH는 무결성과 데이터 출발지 인증을 제공하지만 기밀성을 제공하지 않는다. 전송 모드와 터널 모드의 보호 범위도 구별해야 한다.

선지별 해설

  • 해시만으로 암호문을 복호화하는 기밀성 서비스를 구현한다는 설명은 틀리다.
  • ESP의 제공 서비스는 선택한 알고리즘과 구성에 따라 달라진다.
  • IPsec은 전송 모드와 터널 모드를 지원한다.
  • AH는 인증·무결성을 다루며 데이터를 암호화하지 않는다.

편집 해설 근거: IETF RFC 4301 — IPsec architecture — §3.2; §4.1 Security Associations

29. 개발·시험 담당자가 다음 사례를 검토한다. 스택을 직접 활용하는 처리로 보기 어려운 것은?

  1. 괄호가 포함된 수식의 구문 검사
  2. 후위 표기식 계산
  3. 라운드 로빈 방식의 준비 큐 관리
  4. 중첩된 함수 호출의 복귀 주소 관리
정답과 해설 보기

정답: 3

정답은 ③이다. 스택은 가장 나중에 넣은 원소를 먼저 꺼내는 LIFO 구조이다. 중첩된 괄호를 닫을 때 가장 최근의 열린 괄호를 확인하고, 후위식에서 최근 피연산자를 꺼내며, 중첩 호출의 복귀 정보를 관리하는 데 이 성질을 이용한다. 라운드 로빈의 준비 큐는 실행 기회를 받은 프로세스를 뒤에 다시 넣어 순환시키므로 큐의 순서가 중요하다. 준비 큐를 단순 LIFO로 처리하면 지문의 순환적인 실행 순서를 유지할 수 없다.

선지별 해설

  • 최근에 열린 괄호부터 짝을 확인하는 데 스택을 이용한다.
  • 피연산자를 쌓고 연산 시 꺼내는 계산에 스택을 이용한다.
  • 라운드 로빈은 순환하는 준비 큐의 순서를 이용한다.
  • 최근 함수 호출부터 복귀하는 중첩 구조에 스택을 이용한다.

편집 해설 근거: NIST DADS, stack — stack — LIFO; Arpaci-Dusseau, OSTEP v1.10, 7 Scheduling: Introduction — §7.6 Round Robin

30. 선택 정렬에서 매 회전 미정렬 구간의 최솟값을 찾아 그 구간의 맨 앞 원소와 교환한다. 초기 배열 [8, 2, 6, 5, 9]를 오름차순으로 정렬할 때 첫 회전 직후 배열은?

[학습용 개정문항]

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

정답: 2

정답은 ②이다. 최솟값을 찾아 맨 앞에 놓는 선택 정렬의 첫 회전에서는 미정렬 구간 전체인 8, 2, 6, 5, 9를 살핀다. 최솟값 2가 두 번째 위치에 있으므로 첫 원소 8과 교환하면 2, 8, 6, 5, 9가 된다. 이때 첫 위치만 확정되며 나머지 구간은 아직 정렬되지 않았다. 여러 인접 원소를 연속 교환하거나 두 번째 이후 위치까지 한꺼번에 정렬한 배열을 첫 회전 결과로 선택하면 안 된다.

선지별 해설

  • 최솟값 2를 첫 위치에 배치하지 않았다.
  • 2와 8만 교환한 첫 회전의 결과다.
  • 첫 위치 확정 외에 다른 위치까지 변경한 배열이다.
  • 전체 정렬 결과이며 한 회전의 결과가 아니다.

편집 해설 근거: NIST DADS — selection sort — selection sort

31. 개발·시험 담당자가 다음 사례를 검토한다. 해시 주소를 계산하는 해싱 함수 자체가 아니라 충돌이 발생한 뒤 저장 위치를 찾는 해결 방법은?

  1. 제산법
  2. 중간 제곱법
  3. 숫자 분석법
  4. 개방 주소법
정답과 해설 보기

정답: 4

정답은 ④이다. 개방 주소법은 해시 충돌이 났을 때 같은 해시 테이블 안에서 다른 빈 위치를 탐사해 저장하는 충돌 해결 방식이다. 선형 탐사, 이차 탐사와 이중 해싱 등이 탐사 순서를 정하는 방법이 될 수 있다. 제산법은 나머지 연산으로, 중간 제곱법은 키를 제곱한 값의 일부로, 숫자 분석법은 키의 자리 분포를 이용해 주소를 만든다. 최초 주소를 만드는 일과 충돌 후 대체 위치를 찾는 일을 나누어 판단한다.

선지별 해설

  • 나머지 연산으로 주소를 만드는 해시 함수 구성 방식이다.
  • 제곱 결과의 중간 부분을 이용해 주소를 만드는 방식이다.
  • 키 자리의 분포 등을 분석해 주소에 사용할 부분을 정하는 방식이다.
  • 충돌 후 테이블 안의 다른 위치를 탐사하는 해결 방식이다.

편집 해설 근거: Sartaj Sahni, Data Structures, Algorithms, & Applications in C++ (2004), Hash Functions — Hash functions; Open addressing; NIST DADS, open addressing — Definition

32. 다음 중 주된 용도가 자동화 테스트 프레임워크가 아니라 기업 응용·서비스의 통합인 것은?

[학습용 개정문항]

  1. ESB
  2. xUnit.net
  3. STAF
  4. JUnit
정답과 해설 보기

정답: 1

정답은 ①이다. ESB는 여러 응용을 서비스와 메시지로 연결하는 기업 서비스 버스이며 그 자체를 단위 테스트 프레임워크로 분류하지 않는다. xUnit.net과 JUnit은 테스트를 작성하고 실행해 결과를 판정하는 프레임워크이고 STAF는 여러 환경의 테스트 자동화에 필요한 서비스와 실행을 지원한다. ESB를 대상으로 자동화 테스트를 만들거나 테스트 시스템에서 메시지 전달에 사용할 수는 있지만, 시험 대상이나 통합 기반과 시험 도구의 주된 역할은 구별해야 한다.

선지별 해설

  • 응용·서비스 통합 기반이며 테스트 프레임워크로 분류하는 항목이 아니다.
  • 자동화 테스트를 작성하고 실행하는 프레임워크다.
  • 분산된 환경의 테스트 자동화 서비스를 제공한다.
  • Java 등의 테스트를 작성·실행하는 프레임워크다.

편집 해설 근거: IBM, What Is Enterprise Application Integration? (2026-10-05 확인) — Enterprise service bus; xUnit.net, About xUnit.net (2026-10-05 확인) — About xUnit.net; STAF V3 User Guide, Version 3.4.26 (2016) — Introduction; JUnit 공식 프로젝트, About — Overview

33. 개발·시험 담당자가 다음 사례를 검토한다. 빈 스택에 다음 연산을 순서대로 수행한 뒤, 스택의 내용을 top부터 나열한 것은? PUSH(X)는 X를 스택의 꼭대기에 넣고, POP()은 수행 시점의 꼭대기 원소 하나를 제거한다. 연산 순서 수행 내용 1 PUSH(3) 후 PUSH(7) 2 POP() 3 PUSH(5) 후 PUSH(2) 4 POP() 5 PUSH(9)

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

정답: 1

정답은 ①이다. 스택을 바닥부터 적으면 PUSH(3), PUSH(7) 뒤에는 [3, 7]이고 첫 POP으로 7을 제거하여 [3]이 된다. 이어 5와 2를 넣으면 [3, 5, 2]이며 두 번째 POP은 2를 제거하므로 [3, 5]가 남는다. 마지막에 9를 넣은 결과는 바닥부터 [3, 5, 9]이다. 문제는 top부터 묻기 때문에 순서를 뒤집어 9, 5, 3으로 읽어야 한다. POP은 과거에 지운 값이 아니라 실행 시점의 꼭대기를 제거한다.

선지별 해설

  • 최종 스택 [3, 5, 9]를 top부터 읽은 순서다.
  • 마지막에 넣은 9가 top이어야 하므로 틀리다.
  • 바닥부터 적은 순서이며 문제에서 요구한 방향과 반대다.
  • 3은 바닥, 5는 그 위에 남아 있으므로 둘의 순서가 바뀌었다.

편집 해설 근거: NIST DADS, stack — stack — push and pop

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

  1. 함수는 한 가지 책임에 집중하도록 작게 나눈다.
  2. 예외 원인과 복구 지점을 드러내도록 오류를 처리한다.
  3. 이름만으로 역할을 알 수 있게 변수와 함수를 명명한다.
  4. 같은 검증 로직을 여러 함수에 복사해 각자 수정한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 같은 검증 로직을 여러 곳에 복사하고 별도로 수정하면 규칙 변경 때 일부만 고쳐져 동작이 어긋나기 쉽다. 공통 책임을 적절한 함수나 구성 요소에 모으면 변경 지점을 줄이고 같은 규칙을 일관되게 적용할 수 있다. 역할을 드러내는 이름, 한 책임에 집중하는 함수와 원인을 파악할 수 있는 오류 처리는 코드 이해와 유지보수를 돕는다. 다만 겉모양이 비슷하다는 이유로 서로 다른 규칙까지 무조건 하나로 합치지는 않는다.

선지별 해설

  • 한 책임에 집중하면 함수의 의도와 변경 이유를 이해하기 쉽다.
  • 오류의 원인과 복구 위치를 드러내면 대응을 돕는다.
  • 역할을 설명하는 이름은 코드 이해를 돕는다.
  • 동일 규칙의 복제본을 따로 수정하면 불일치와 누락 위험이 커진다.

편집 해설 근거: Martin Fowler, Refactoring Catalog — Extract Function — Extract Function — Motivation

35. 개발·시험 담당자가 다음 사례를 검토한다. 프로그램을 실제 실행하면서 메모리 누수와 잘못된 접근을 찾는 도구는 정적 분석 도구가 아니다. 이에 해당하는 항목을 고르면?

  1. Cppcheck
  2. PMD
  3. Checkstyle
  4. Valgrind
정답과 해설 보기

정답: 4

정답은 ④이다. Valgrind 도구 모음의 Memcheck는 프로그램을 실행하면서 메모리 접근과 할당·해제 상태 등을 추적하는 동적 분석 도구이다. 잘못된 읽기·쓰기나 누수 같은 문제를 찾는 데 사용한다. Cppcheck, PMD와 Checkstyle은 주로 소스 코드의 규칙과 구조를 검사하는 정적 분석 도구이다. 동적 분석에서 관찰하지 못한 실행 경로까지 문제가 없다고 보장할 수는 없으므로, 실제 실행을 통한 검사와 실행하지 않는 소스 분석의 범위를 구분한다.

선지별 해설

  • C/C++ 소스의 문제를 찾는 정적 분석 도구다.
  • 소스 코드를 분석해 규칙 위반과 문제를 찾는 정적 도구다.
  • Java 소스의 코딩 규칙 등을 검사하는 정적 도구다.
  • Memcheck로 실행 중 메모리 사용을 추적하는 동적 분석 도구다.

편집 해설 근거: Valgrind 공식 문서, Tool Suite: Memcheck — Memcheck; Cppcheck 공식 저장소, 프로젝트 소개 — About Cppcheck; PMD 공식 프로젝트, About PMD — About; Checkstyle 공식 프로젝트, About 및 Limitations (2026-10-05 확인) — Overview

36. 개발·시험 담당자가 다음 사례를 검토한다. 개발 조직 밖의 실제 사용자에게 후보 버전을 제공해 사용 환경에서 적합성을 확인했다. 이 활동이 속하는 테스트 단계는?

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

정답: 2

정답은 ②이다. 실제 사용자에게 후보 제품을 제공해 사용 환경에서 요구와 기대에 맞는지 확인하는 활동은 베타 테스트 형태의 인수 테스트로 볼 수 있다. 인수 테스트는 제품이 업무 목적에 적합한지와 받아들일 수 있는지를 평가한다. 단위 테스트는 개별 구성 요소, 통합 테스트는 요소 사이의 상호작용을 중점적으로 본다. 회귀 테스트는 변경으로 기존 기능이 손상되지 않았는지 재확인하는 목적이므로, 실제 사용자 환경에서 적합성을 평가한다는 조건의 직접 분류는 인수 테스트이다.

선지별 해설

  • 개별 구성 요소의 동작을 시험하는 단계이다.
  • 외부 사용자가 실제 환경에서 적합성을 확인하는 베타 인수 시험에 해당한다.
  • 여러 구성 요소 사이의 연결과 상호작용을 검증한다.
  • 변경 후 기존 동작의 손상을 확인하는 시험 목적이다.

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

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

  1. 시험 입력을 전달하고 반환값이나 상태를 관찰할 수 있다.
  2. 상향식 통합 테스트에서 사용한다.
  3. 시험 대상 모듈이 호출하는 미완성 하위 모듈을 대신한다.
  4. 아직 완성되지 않은 상위 모듈을 대신해 시험 대상 모듈을 호출할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 테스트 드라이버는 시험 대상 모듈을 호출하는 쪽을 대신해 입력을 주고 결과를 확인한다. 상위 모듈이 아직 없어도 하위 모듈을 먼저 시험하는 상향식 통합에서 활용할 수 있다. 반대로 시험 대상이 호출해야 하는 미완성 하위 모듈의 응답을 대신하는 것은 스텁이다. 드라이버와 스텁은 모두 시험 환경을 구성하지만 호출의 방향이 반대이다. 대상 모듈을 기준으로 누가 호출하고 누가 호출되는지 그려 보면 혼동을 줄일 수 있다.

선지별 해설

  • 호출자로서 입력을 주고 반환 결과를 관찰할 수 있다.
  • 하위 모듈을 먼저 시험하는 상향식 통합에 활용된다.
  • 호출되는 하위 모듈을 대신하는 것은 스텁이다.
  • 미완성 상위 호출자를 대신하는 드라이버의 역할이다.

편집 해설 근거: ISO/IEC/IEEE 24765:2017, Systems and software engineering — Vocabulary, NASA 제공본 — §3.4227 Test driver; §3.4018 Stub

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

  1. 사용자 매뉴얼과 설치·제거 절차를 함께 제공할 수 있다.
  2. 버전과 변경 이력을 관리해 배포본을 식별할 수 있게 한다.
  3. 개발자가 내부에서 쓰기 편한 디렉터리와 용어만을 기준으로 배포물을 구성한다.
  4. 설치에 필요한 파일과 의존성을 식별해 배포 단위로 묶는다.
정답과 해설 보기

정답: 3

정답은 ③이다. 패키징은 사용 환경에서 설치하고 실행할 수 있도록 필요한 파일과 의존성, 식별 정보와 안내를 배포 단위로 구성하는 일이다. 개발자만 이해하는 경로나 용어를 유일한 기준으로 삼으면 사용자가 설치 조건과 실패 원인을 파악하기 어렵다. 버전과 변경 이력은 배포본을 구별하고 문제를 추적하는 데 도움이 된다. 설명서나 제거 절차의 구체적인 제공 방식은 제품에 따라 달라도 실제 사용자의 설치·운영 상황을 고려해야 한다는 점은 같다.

선지별 해설

  • 설치·사용·제거 안내는 이용자가 배포물을 다루는 데 도움이 된다.
  • 버전과 변경 이력은 배포본의 식별과 추적을 돕는다.
  • 개발 내부의 편의만을 기준으로 삼으면 실제 설치·사용 조건을 놓친다.
  • 실행 파일과 의존성을 식별하는 것은 배포 구성의 핵심이다.

편집 해설 근거: Python Packaging User Guide, Packaging Python Projects — Configuring metadata; Generating distribution archives; IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management — Release Management and Delivery

39. 개발·시험 담당자가 다음 사례를 검토한다. 단일 연결 리스트에 대한 기술로 틀린 설명을 고르면?

  1. 중간 연결이 끊기면 그 뒤 노드에 접근할 경로를 잃을 수 있다.
  2. 삽입 위치의 이전 노드를 알고 있으면 포인터 변경으로 삽입할 수 있다.
  3. 배열처럼 임의 위치의 원소를 인덱스로 즉시 읽을 수 있다.
  4. 각 노드에는 다음 노드를 가리키는 추가 저장 공간이 필요하다.
정답과 해설 보기

정답: 3

정답은 ③이다. 단일 연결 리스트는 각 노드가 다음 노드를 가리키므로 일반적으로 머리에서 링크를 따라가야 특정 순번의 노드를 찾을 수 있다. 배열처럼 인덱스만으로 임의 원소의 주소를 바로 계산하는 구조가 아니다. 삽입할 위치의 이전 노드를 이미 알면 링크를 바꾸어 새 노드를 연결할 수 있으나, 그 위치를 찾는 비용은 별도이다. 유일한 연결을 잃으면 뒤쪽 노드에 접근하지 못할 수 있고 각 노드에는 연결 정보를 저장할 공간도 필요하다.

선지별 해설

  • 다른 참조가 없다면 끊어진 링크 뒤의 노드에 접근할 수 없게 된다.
  • 이전 노드를 이미 확보했다면 링크 변경으로 삽입할 수 있다.
  • 일반적인 단일 연결 리스트의 임의 순번 접근은 링크 순회가 필요하다.
  • 다음 노드를 가리키는 링크를 저장해야 한다.

편집 해설 근거: NIST DADS, linked list — linked list

40. 입력 크기 n과 관계없이 기본 연산을 일정한 양의 횟수만 수행하는 알고리즘이다. 다음 중 가장 타이트한 점근적 시간 상한은?

[학습용 개정문항]

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

정답: 3

정답은 ③이다. 기본 연산의 수행 횟수가 입력 크기 n과 무관한 양의 상수라면 가장 타이트한 점근적 상한은 O(1)이다. 입력을 두 배로 늘려도 그 연산 횟수는 늘지 않는다는 뜻이며 실제 시간이 항상 1초라는 뜻은 아니다. 엄밀히 말하면 상수 함수는 O(log n), O(n), O(n!)에도 포함되므로 단순히 가능한 상한만 묻는다면 여러 보기가 성립할 수 있다. 이 문항은 보기 중 가장 타이트한 상한을 묻도록 조건을 명확히 했다.

선지별 해설

  • 상수 시간에도 성립하는 느슨한 상한이지만 가장 타이트하지 않다.
  • 상수 시간의 상한으로 쓸 수 있어도 필요 이상으로 크다.
  • 입력과 무관한 일정 횟수에 대한 가장 타이트한 상한이다.
  • 상수 시간에도 성립하는 느슨한 상한이며 가장 타이트한 선택은 아니다.

편집 해설 근거: NIST DADS — Big-O notation — big-O notation

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

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

  1. 참조 무결성은 모든 속성값이 자료형과 허용 범위 안에 있어야 한다는 제약이다.
  2. 도메인 무결성은 외래키가 참조 대상 기본키와 일치하거나 NULL이어야 한다는 제약이다.
  3. 사용자 정의 무결성은 기본키에 중복값이 없어야 한다는 제약만을 뜻한다.
  4. 기본키를 구성하는 속성은 NULL일 수 없고 기본키 값은 튜플을 유일하게 식별해야 한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 기본키는 각 행을 유일하게 식별해야 하고 키를 이루는 열에 NULL을 허용하지 않는다. 복합 기본키라면 개별 열 하나의 값이 반복될 수 있지만 전체 키 값의 조합은 중복될 수 없다. 도메인 무결성은 자료형과 허용 값의 범위에 관한 제약이고 참조 무결성은 외래키와 참조 대상 사이의 일치를 다룬다. 사용자 정의 무결성은 업무 규칙을 반영한 제약으로, 기본키 중복 금지 하나만을 뜻하지 않는다.

선지별 해설

  • 자료형·허용 범위는 도메인 제약의 설명이다.
  • 참조 대상과의 일치는 참조 무결성의 설명이다.
  • 업무 규칙 등 다양한 제약을 포함하므로 기본키 중복 금지에 한정되지 않는다.
  • 기본키의 비NULL과 유일성 조건을 올바르게 설명했다.

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

42. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션 상태에 대한 기술로 틀린 설명을 고르면? 일반 흐름: 활동 → 부분 완료 → 완료 실패 흐름: 활동 또는 부분 완료 → 실패 → 철회

  1. 부분 완료 상태는 전체 연산 중 일부만 수행한 뒤 이미 COMMIT까지 끝난 상태다.
  2. 철회 상태는 ROLLBACK으로 데이터베이스를 이전 일관된 상태로 되돌린 상태다.
  3. 활동 상태는 트랜잭션의 연산이 실행 중인 상태다.
  4. 실패 상태에서는 정상 실행을 계속할 수 없어 복구 절차가 필요하다.
정답과 해설 보기

정답: 1

정답은 ①이다. 부분 완료는 트랜잭션의 마지막 연산을 실행했지만 변경의 영속적 확정이 아직 끝나지 않은 상태를 말한다. 일부 연산만 수행했다거나 이미 COMMIT을 마쳤다는 뜻이 아니다. 이후 확정 절차가 성공하면 완료 상태로 가지만 그 사이에 장애가 나면 실패할 수 있다. 활동 상태는 연산 실행 중, 실패 상태는 정상 진행이 불가능한 상태, 철회 상태는 실행 효과를 되돌린 상태로 구분한다. 이름의 부분이라는 단어만 보고 의미를 추측하지 않는다.

선지별 해설

  • 마지막 연산 뒤 확정 전 상태를 일부 실행·COMMIT 완료로 잘못 설명했다.
  • 실행 효과를 되돌려 이전 일관된 상태로 복구한 상태다.
  • 트랜잭션의 연산이 진행 중인 상태이다.
  • 정상 수행을 계속할 수 없어 철회 등의 복구가 필요하다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — Transaction State

43. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션의 ACID 특성에 대한 기술로 틀린 설명을 고르면?

  1. COMMIT된 결과가 장애 후에도 남는 성질은 일관성이다.
  2. 원자성은 트랜잭션의 연산을 모두 반영하거나 모두 취소하도록 한다.
  3. 일관성은 트랜잭션 전후에 정의된 무결성 제약이 유지되도록 한다.
  4. 격리성은 동시에 실행되는 트랜잭션의 중간 결과가 서로 부당하게 간섭하지 않도록 한다.
정답과 해설 보기

정답: 1

정답은 ①이다. COMMIT된 결과가 장애 이후에도 유지되는 성질은 지속성이다. 일관성은 트랜잭션이 정해진 무결성 규칙을 지키며 일관된 상태에서 다른 일관된 상태로 옮겨 가는 성질이다. 원자성은 작업의 일부만 남지 않게 하고 격리성은 동시 실행 사이의 간섭을 통제한다. 이체를 예로 들면 출금만 남지 않는 것은 원자성, 업무 제약의 보존은 일관성, 다른 거래와의 간섭 통제는 격리성, 확정한 거래의 장애 후 보존은 지속성이다.

선지별 해설

  • 확정 결과의 장애 후 보존은 일관성이 아니라 지속성이다.
  • 전부 반영하거나 전부 취소한다는 원자성의 의미다.
  • 정의된 제약을 유지한다는 일관성의 의미다.
  • 동시 수행의 부당한 간섭을 통제한다는 격리성의 의미다.

편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — ACID Properties

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

  1. 사용자가 데이터의 실제 저장 위치를 알지 않아도 접근하게 하는 위치 투명성을 제공할 수 있다.
  2. 지역 사이트를 추가해 저장·처리 용량을 단계적으로 확장할 수 있다.
  3. 일부 사이트 장애가 전체 서비스 중단으로 이어지지 않도록 복제와 복구를 구성할 수 있다.
  4. 분산 배치만 적용하면 설계가 단순해지고 모든 질의 성능이 항상 향상된다.
정답과 해설 보기

정답: 4

정답은 ④이다. 데이터를 여러 사이트에 분산하면 용량과 가용성을 확장할 여지가 생기지만 통신, 분산 질의 계획, 복제 일관성과 장애 복구가 복잡해질 수 있다. 여러 사이트를 오가는 질의는 네트워크 지연 때문에 더 느려질 수도 있으므로 모든 성능이 항상 좋아진다는 주장은 틀리다. 위치 투명성은 사용자가 물리적 저장 위치를 직접 다루지 않게 하는 성질이다. 복제와 장애 대응을 실제로 설계해야 가용성 이점을 얻을 수 있으며 단순 분산 배치만으로 보장되지는 않는다.

선지별 해설

  • 논리적 접근을 제공해 물리적인 데이터 위치를 감출 수 있다.
  • 사이트와 자원을 추가하여 처리·저장 용량을 확장할 수 있다.
  • 복제와 복구 설계로 일부 장애의 영향을 줄일 수 있다.
  • 통신 비용과 분산 제어의 복잡성 때문에 항상 단순하고 빨라지지는 않는다.

편집 해설 근거: Oracle Database — Distributed Database Concepts — Distributed Database Concepts — transparency; distributed processing

45. 데이터베이스 설계자가 다음 조건을 확인한다. 로그 테이블을 2026-01-01 이상 2026-04-01 미만, 2026-04-01 이상 2026-07-01 미만처럼 날짜 구간으로 나누었다. 사용한 파티셔닝 방식은?

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

정답: 4

정답은 ④이다. 연속적인 값의 구간을 경계로 나누는 방식은 범위 파티셔닝이다. 첫 구간은 1월 1일 이상 4월 1일 미만, 다음 구간은 4월 1일 이상 7월 1일 미만이므로 날짜의 대소 비교로 저장 위치를 정한다. 목록 파티셔닝은 지정한 값의 집합, 해시 파티셔닝은 해시 결과를 기준으로 나눈다. 라운드 로빈은 순서대로 분배하는 방식이며 날짜 구간과 대응하지 않는다. 경계값 4월 1일은 앞 구간이 아니라 뒤 구간에 속한다.

선지별 해설

  • 해시 계산 결과를 기준으로 나누는 방식이다.
  • 개별 값 목록을 기준으로 나누는 방식이다.
  • 순환 순서로 분배하며 날짜 범위를 비교하지 않는다.
  • 시작 이상·끝 미만의 날짜 구간으로 나누는 범위 방식이다.

편집 해설 근거: PostgreSQL 18 — Table Partitioning — §5.12.1 Overview — Range partitioning

46. E-R 모델에서 회원과 예약이라는 개체 집합 사이의 “회원이 예약을 한다”라는 연관성을 나타내는 요소는?

[학습용 개정문항]

  1. 속성
  2. 도메인
  3. 개체
  4. 관계
정답과 해설 보기

정답: 4

정답은 ④이다. E-R 모델에서 회원이 예약을 한다는 것처럼 개체 집합 사이의 연관성을 표현하는 요소는 관계이다. 회원번호나 예약일은 개체 또는 관계의 속성이 될 수 있고, 속성이 가질 수 있는 값의 범위는 도메인으로 설명한다. 개체는 구별 가능한 업무 대상이다. 여기서 E-R의 관계는 개체 사이의 연관이라는 의미이며 관계형 모델에서 튜플의 집합을 뜻하는 릴레이션과는 문맥이 다르므로 두 용법을 구별해야 한다.

선지별 해설

  • 대상의 성질을 나타내는 항목이며 개체 간 연관 자체는 아니다.
  • 속성이 가질 수 있는 값의 집합이다.
  • 회원·예약처럼 구별 가능한 업무 대상이다.
  • 개체 집합 사이의 연관성을 나타내는 관계이다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — Entities, Attributes, and Relationships

47. PostgreSQL 18에서 권한 등 실행 조건을 충족했다고 가정한다. 다음 SQL의 결과로 옳은 것은?

ALTER TABLE STUDENT DROP COLUMN grade CASCADE;

[학습용 개정문항]

  1. grade 열을 참조하는 객체가 하나라도 있으면 항상 명령을 취소한다.
  2. ENROLLMENT 테이블에서 grade 열을 삭제하고 STUDENT의 종속 객체도 삭제한다.
  3. STUDENT 테이블 전체와 이를 참조하는 객체를 삭제한다.
  4. STUDENT 테이블의 grade 열과 그 열에 의존하는 객체를 함께 삭제한다.
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL의 ALTER TABLE … DROP COLUMN은 지정한 테이블에서 열을 제거한다. 이 명령은 STUDENT의 grade 열을 대상으로 하고 CASCADE는 해당 열에 의존하는 뷰 등 종속 객체의 제거까지 허용한다. RESTRICT라면 외부 종속 관계 때문에 거부될 수 있으나 지문은 CASCADE를 사용했다. 테이블 전체를 없애는 DROP TABLE과 구별해야 한다. 실제 작업에서는 어떤 종속 객체가 영향을 받는지 확인해야 하며 다른 이름의 테이블을 임의로 대상으로 바꾸는 명령도 아니다.

선지별 해설

  • CASCADE는 의존 객체의 연쇄 제거를 허용하므로 항상 취소하지 않는다.
  • 명령의 대상은 ENROLLMENT가 아니라 STUDENT이다.
  • DROP COLUMN은 지정한 열을 제거하며 테이블 전체 삭제 명령이 아니다.
  • STUDENT.grade와 그 열에 의존하는 객체를 제거하는 동작이다.

편집 해설 근거: PostgreSQL 18, ALTER TABLE — DROP COLUMN; CASCADE

48. 데이터베이스 설계자가 다음 조건을 확인한다. 개념 데이터 모델을 관계 스키마로 변환하고 정규화하며 기본키·외래키를 정하는 설계 단계는?

  1. 개념적 설계
  2. 논리적 설계
  3. 물리적 설계
  4. 운영 설계
정답과 해설 보기

정답: 2

정답은 ②이다. 개념 모델을 관계 스키마로 옮기고 키와 참조 관계를 정하며 정규화를 검토하는 단계는 논리적 설계이다. 업무에 어떤 개체와 관계가 있는지를 파악하는 개념적 설계 결과를 관계형 데이터 모델로 구체화한다. 물리적 설계는 저장 방식, 파일 조직과 인덱스 등 실제 접근 성능에 관한 결정을 다룬다. 단계가 실제 프로젝트에서 반복될 수는 있어도, 지문에 제시된 관계 스키마와 기본키·외래키의 결정은 논리 구조를 정하는 활동이다.

선지별 해설

  • 업무 개체와 관계를 추상적으로 정리하는 앞 단계이다.
  • 관계 스키마, 키와 정규화를 정하는 논리적 설계이다.
  • 저장과 접근 경로 등의 구현 결정을 다룬다.
  • 운영 절차의 수립보다 데이터의 논리 구조 결정에 해당한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Database Design; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Logical DB Design: ER to Relational

49. 데이터베이스 설계자가 다음 조건을 확인한다. 정규형에 대한 기술로 틀린 설명을 고르면?

[학습용 개정문항]

  1. 제2정규형은 제1정규형이면서 비주요 속성이 어느 후보키의 진부분집합에도 함수 종속되지 않는다.
  2. 제3정규형은 제1정규형이고 모든 비자명한 함수 종속 X→A에서 X가 슈퍼키이거나 A가 주요 속성이다.
  3. 모든 비자명한 함수 종속 X→A의 X가 슈퍼키인 릴레이션은 제3정규형까지만 만족하고 BCNF는 만족하지 않는다.
  4. 제1정규형은 모든 속성값을 원자값으로 다룬다.
정답과 해설 보기

정답: 3

정답은 ③이다. BCNF는 모든 비자명한 함수 종속 X→A에서 결정자 X가 슈퍼키일 것을 요구한다. 이 조건을 만족하면 3NF도 만족하므로 BCNF를 만족하지 않는다는 보기가 틀리다. 3NF는 X가 슈퍼키이거나 A가 후보키의 일부인 주요 속성이면 허용해 BCNF보다 느슨하다. 2NF는 비주요 속성이 후보키의 진부분집합에 종속되는 부분 종속을 배제한다. 자명한 종속까지 후보키 조건을 강요하거나 후보키와 슈퍼키를 같은 말로 사용하지 않도록 주의한다.

선지별 해설

  • 1NF에 더해 비주요 속성의 후보키에 대한 부분 종속을 배제한다.
  • 비자명한 X→A에서 X가 슈퍼키이거나 A가 주요 속성이면 되는 3NF 조건이다.
  • 이 조건은 BCNF의 정의이므로 BCNF를 만족하지 않는다는 결론이 틀리다.
  • 관계의 각 속성값을 원자값으로 다루는 1NF 조건이다.

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

50. 데이터베이스 설계자가 다음 조건을 확인한다. 개체-관계(E-R) 모델에 대한 기술로 틀린 설명을 고르면?

  1. 요구사항을 개념적 데이터 모델로 정리하는 단계에서 사용할 수 있다.
  2. E-R 다이어그램은 개체·속성·관계를 시각적으로 나타낸다.
  3. 특정 DBMS의 저장 구조보다 업무 개체와 관계를 먼저 표현한다.
  4. 일반적인 Chen 표기에서 개체는 마름모, 관계는 사각형으로 그린다.
정답과 해설 보기

정답: 4

정답은 ④이다. Chen의 E-R 표기에서 개체 집합은 사각형, 관계 집합은 마름모로 표현하므로 보기는 두 기호를 거꾸로 연결했다. E-R 모델은 업무 대상을 개체와 속성, 관계로 정리하는 개념적 표현이다. 이를 바탕으로 이후 관계 스키마 등을 설계할 수 있지만 특정 DBMS의 저장 파일이나 인덱스 배치부터 정하는 도구는 아니다. 다른 표기법에서는 기호가 달라질 수 있으므로 지문에 지정된 Chen 표기를 기준으로 판단한다.

선지별 해설

  • 업무 요구를 개념적 데이터 구조로 정리하는 데 사용할 수 있다.
  • 개체·속성·관계를 시각적으로 표현한다.
  • 물리적 저장 구조보다 업무 개념을 우선 표현한다.
  • Chen 표기는 개체가 사각형, 관계가 마름모로 보기와 반대다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — ER diagram notation

51. 속성을 이름으로 식별하는 고전적인 관계 모델의 릴레이션에 대한 설명 중 틀린 것은? SQL 조회 결과의 중복 행이나 출력 열 이름 규칙은 다루지 않는다.

[학습용 개정문항]

  1. 릴레이션에서 속성과 튜플의 논리적 순서는 의미를 갖지 않는다.
  2. 서로 다른 튜플이 한 속성에서 같은 값을 가질 수 있다.
  3. 한 릴레이션에는 완전히 같은 튜플이 중복되지 않는다.
  4. 한 릴레이션 안에서 서로 다른 두 속성이 같은 이름을 가져도 된다.
정답과 해설 보기

정답: 4

정답은 ④이다. 고전적인 관계 모델에서 속성은 이름으로 구별되므로 같은 릴레이션의 서로 다른 속성에 같은 이름을 붙이지 않는다. 릴레이션은 튜플의 집합이어서 완전히 같은 튜플의 중복이나 행의 순서는 의미가 없다. 속성의 논리적 순서도 이름으로 식별하는 모델에서는 중요하지 않다. 다만 한 속성값이 여러 튜플에 반복되는 것은 가능하다. SQL 조회 결과는 중복 행이나 같은 출력 열 이름을 허용할 수 있으므로 고전적 릴레이션의 정의와 구별한다.

선지별 해설

  • 이름으로 식별하는 속성과 집합의 튜플에는 논리적 순서가 없다.
  • 키 제약 등 별도 조건이 없다면 한 속성값은 여러 튜플에 반복될 수 있다.
  • 집합이므로 완전히 같은 튜플은 중복되지 않는다.
  • 같은 릴레이션의 속성을 구별하기 위해 속성 이름은 달라야 한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model — relation schema; relation instance

52. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 SQL 명령 중 나머지와 언어 분류가 다른 것은?

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

정답: 2

정답은 ②이다. CREATE, ALTER와 DROP은 데이터베이스 객체의 정의를 만들고 바꾸거나 제거하는 DDL 명령이다. SELECT는 저장된 데이터를 조회하여 결과를 만드는 명령이므로 나머지 셋과 목적이 다르다. SELECT를 DML에 포함하는 분류와 DQL로 따로 부르는 분류가 있지만, 어느 분류에서도 이 보기의 핵심은 객체 정의 조작과 데이터 조회의 구별이다. DROP은 정의를 제거하며 DELETE로 행을 지우는 작업과도 구별해야 한다.

선지별 해설

  • 데이터베이스 객체를 정의하는 DDL이다.
  • 데이터를 조회하는 명령으로 객체 정의 명령 셋과 구별된다.
  • 기존 객체의 정의를 바꾸는 DDL이다.
  • 객체 정의를 제거하는 DDL이다.

편집 해설 근거: PostgreSQL 18: Data Definition — Chapter 5 Data Definition; PostgreSQL 18 — SELECT — Description

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

  1. 슈퍼키는 유일성을 만족하지만 최소성까지 반드시 만족하지는 않는다.
  2. 외래키는 다른 릴레이션의 후보키를 참조해 관계를 표현할 수 있다.
  3. 대체키는 기본키로 선택되지 않은 모든 슈퍼키를 뜻한다.
  4. 후보키는 튜플을 유일하게 식별하는 최소 속성 집합이다.
정답과 해설 보기

정답: 3

정답은 ③이다. 후보키는 튜플을 유일하게 식별하면서 어떤 속성도 더 뺄 수 없는 최소 슈퍼키이다. 후보키 중 하나를 기본키로 선택하면 나머지 후보키를 대체키라고 부른다. 기본키로 선택하지 않은 모든 슈퍼키가 대체키가 되는 것은 아니다. 예를 들어 회원번호가 후보키라면 회원번호와 이름을 함께 묶은 집합은 유일성을 갖더라도 불필요한 이름을 뺄 수 있어 후보키가 아니다. 외래키는 참조 대상 키와의 관계를 나타내며 자체의 유일성을 항상 요구하지 않는다.

선지별 해설

  • 슈퍼키에는 유일성은 있지만 불필요한 속성이 포함될 수 있다.
  • 다른 릴레이션의 후보키를 참조해 관련 데이터를 연결할 수 있다.
  • 대체키는 선택되지 않은 후보키이며 모든 미선택 슈퍼키가 아니다.
  • 최소성을 갖춘 유일 식별 속성 집합이 후보키다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Keys; Candidate keys; Foreign keys

54. PostgreSQL 18의 TRUNCATE에 대한 설명 중 틀린 것은?

[학습용 개정문항]

  1. 행을 하나씩 삭제하는 DELETE보다 로그 처리 방식과 성능 특성이 다를 수 있다.
  2. WHERE 절을 사용해 조건을 만족하는 일부 행만 제거할 수 있다.
  3. 테이블의 전체 행을 빠르게 제거하는 데 사용한다.
  4. 테이블 정의 자체는 남긴다.
정답과 해설 보기

정답: 2

정답은 ②이다. PostgreSQL의 TRUNCATE는 대상 테이블의 전체 행을 제거하며 WHERE로 일부 행만 고르는 문법이 없다. 조건에 맞는 행만 지우려면 DELETE … WHERE를 사용한다. TRUNCATE는 행을 하나씩 스캔하지 않고 공간을 회수할 수 있어 큰 테이블에서 효율적일 수 있지만 필요한 잠금과 외래키 제약 등 실행 조건을 고려해야 한다. 테이블 정의는 남으며 PostgreSQL에서는 트랜잭션 안에서 실행한 TRUNCATE를 롤백할 수 있으므로 항상 복구 불가능하다고 일반화하지 않는다.

선지별 해설

  • 행 단위 DELETE와 처리 방식 및 성능 특성이 다를 수 있다.
  • TRUNCATE에는 WHERE 절이 없으므로 일부 행을 조건 선택할 수 없다.
  • 대상 테이블의 전체 행을 제거하는 명령이다.
  • 테이블 자체의 정의는 남으므로 DROP TABLE과 다르다.

편집 해설 근거: PostgreSQL 18, TRUNCATE — Synopsis; Description; Notes

55. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터베이스 로킹 단위를 행에서 테이블로 크게 했을 때의 일반적인 영향으로 틀린 설명을 고르면?

  1. 한 잠금이 보호하는 데이터 범위가 넓어진다.
  2. 관리해야 할 잠금 수가 줄어 잠금 관리 부담이 감소할 수 있다.
  3. 서로 다른 행을 갱신하는 트랜잭션도 대기할 가능성이 커진다.
  4. 동시에 실행할 수 있는 트랜잭션 수가 늘어 병행성이 높아진다.
정답과 해설 보기

정답: 4

정답은 ④이다. 잠금 단위를 행에서 테이블로 키우면 한 잠금이 보호하는 범위가 넓어지고 필요한 잠금 수는 줄어들 수 있다. 하지만 서로 다른 행을 수정하려는 거래도 같은 테이블 잠금을 요구하면 함께 진행하지 못하고 기다릴 수 있다. 따라서 일반적으로 잠금 관리 비용을 줄이는 대신 병행성이 떨어지는 방향의 절충이 생긴다. 실제 영향은 잠금 모드와 실행 업무에 따라 달라지지만, 범위를 크게 해서 병행성이 자동으로 높아진다는 설명은 맞지 않는다.

선지별 해설

  • 테이블 단위는 개별 행보다 넓은 범위를 보호한다.
  • 넓은 범위를 한 잠금으로 관리하여 잠금 수가 감소할 수 있다.
  • 다른 행의 작업도 같은 테이블 잠금과 충돌할 수 있다.
  • 더 넓은 잠금은 동시 실행을 제한할 수 있어 병행성이 자동 증가하지 않는다.

편집 해설 근거: IBM Db2 11.5, Lock granularity — Lock granularity

56. 데이터베이스 설계자가 다음 조건을 확인한다. 시스템 카탈로그에 대한 기술로 틀린 설명을 고르면?

  1. 테이블·열·인덱스·권한 같은 메타데이터를 저장한다.
  2. 데이터 사전이라고도 부른다.
  3. DBMS가 데이터 정의문을 처리할 때 자동으로 갱신하는 정보가 포함된다.
  4. 일반 사용자는 SQL을 통해 어떤 카탈로그 정보도 조회할 수 없다.
정답과 해설 보기

정답: 4

정답은 ④이다. 시스템 카탈로그는 테이블, 열, 인덱스와 권한 등의 구조와 관리 정보를 보관하는 메타데이터 저장소이다. DBMS가 DDL을 처리할 때 관련 정보를 관리하며 허용된 카탈로그나 정보 스키마는 SQL로 조회할 수 있다. 일반 사용자가 어떤 정보도 볼 수 없다는 단정은 틀리다. 모든 메타데이터를 제한 없이 읽거나 직접 수정할 수 있다는 뜻도 아니며, 특히 인증 정보 등은 별도 접근 통제가 적용될 수 있다. 조회와 시스템 내부 정보의 임의 변경을 구별해야 한다.

선지별 해설

  • 데이터베이스 객체와 권한 등의 메타데이터를 보관한다.
  • 데이터 사전이라는 개념으로도 설명한다.
  • 정의 변경에 맞추어 DBMS가 관리하는 정보가 포함된다.
  • 허용된 메타데이터는 SQL로 조회할 수 있으므로 어떤 정보도 불가능하다는 주장은 틀리다.

편집 해설 근거: PostgreSQL 18, Chapter 52 System Catalogs — Chapter 52 System Catalogs — Introduction

57. 데이터베이스 설계자가 다음 조건을 확인한다. 테이블에 INSERT가 발생할 때마다 별도 호출 없이 감사 행을 자동 기록하도록 정의하는 데이터베이스 객체는?

  1. 트리거
  2. 동의어
  3. 커서
  4. 인덱스
정답과 해설 보기

정답: 1

정답은 ①이다. 트리거는 테이블의 INSERT·UPDATE·DELETE 같은 사건이 발생할 때 지정한 동작을 자동 수행하도록 연결하는 기능이다. 삽입 시 감사 기록을 남기는 함수를 트리거에 연결하면 응용에서 그 함수를 별도로 호출하지 않아도 실행할 수 있다. 행마다 실행할지 명령문마다 실행할지와 실행 전후 시점은 정의에 따라 다르다. 동의어는 이름의 별칭, 커서는 결과 행을 다루는 수단, 인덱스는 접근 경로이므로 자동 감사 동작의 직접 정의와는 다르다.

선지별 해설

  • 삽입 사건에 반응하여 감사 동작을 자동 실행하도록 정의할 수 있다.
  • 데이터베이스 객체에 다른 이름을 부여하는 개념이다.
  • 조회 결과의 행을 순차적으로 다루는 수단이다.
  • 데이터 검색 등을 위한 접근 경로이며 감사 동작을 정의하는 객체가 아니다.

편집 해설 근거: PostgreSQL 18, CREATE TRIGGER — Description; FOR EACH ROW; FOR EACH STATEMENT

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

[학습용 개정문항]

  1. 관계 해석은 술어 논리를 바탕으로 원하는 튜플이나 도메인의 조건을 표현한다.
  2. 관계 해석은 결과를 얻는 연산 순서보다 결과가 만족해야 할 조건에 초점을 둔다.
  3. 관계 대수는 원하는 결과의 조건만 선언하고 처리 절차는 전혀 제시하지 않는 언어다.
  4. 안전한 관계 해석과 관계 대수는 동등한 범위의 질의를 표현할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 관계 대수는 선택·프로젝션·조인 같은 연산을 조합하여 입력 관계에서 결과 관계를 만드는 과정을 표현한다. 원하는 결과의 조건만 선언한다는 보기는 관계 해석의 성격에 가깝다. 관계 해석은 술어 논리로 결과가 만족해야 할 조건을 기술한다. 표현 능력의 동등성을 말할 때에는 안전한 관계 해석으로 범위를 제한해야 무한한 결과 등 문제가 있는 식을 배제할 수 있다. 대수식의 연산 표현이 DBMS의 유일한 물리적 실행 계획을 고정한다는 뜻은 아니다.

선지별 해설

  • 원하는 튜플이나 값이 만족할 조건을 술어 논리로 표현한다.
  • 연산의 수행 순서보다 결과의 조건을 선언하는 접근이다.
  • 관계 대수는 관계 연산의 조합을 표현하므로 설명이 뒤바뀌었다.
  • 안전한 관계 해석과 관계 대수는 동등한 질의 표현 능력을 갖는다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Domain Relational Calculus — safe queries; expressive power; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Relational Algebra

59. 데이터베이스 설계자가 다음 조건을 확인한다. 두 서버가 공유 디스크를 사용하며 한 서버 장애 시 다른 서버가 서비스와 자원을 인계하도록 구성했다. 가장 가까운 고가용성 솔루션은?

  1. Round Robin DNS
  2. HACMP
  3. NAT
  4. Stuxnet
정답과 해설 보기

정답: 2

정답은 ②이다. HACMP는 IBM의 고가용성 클러스터 솔루션으로, 장애 시 다른 노드가 응용과 관련 자원을 인계하도록 구성하는 데 사용되어 왔다. 공유 디스크와 서비스 자원의 전환이라는 지문은 이런 장애 조치 구조에 해당한다. DNS 라운드 로빈은 이름에 대한 여러 주소를 순환 제공하는 방식일 뿐 저장장치와 응용 자원의 인계를 직접 수행하지 않는다. NAT는 주소 변환이며 Stuxnet은 악성코드의 이름이다. 제품 계보의 이후 명칭인 PowerHA와도 연결해서 이해할 수 있다.

선지별 해설

  • DNS 응답 주소의 분산만으로 공유 자원 인계까지 수행하는 것은 아니다.
  • 클러스터의 장애 조치와 응용·자원 인계를 제공하는 솔루션이다.
  • IP 주소를 변환하는 기능으로 장애 조치 제품명이 아니다.
  • 고가용성 솔루션이 아니라 악성코드의 이름이다.

편집 해설 근거: IBM, HACMP 5.5 Planning Guide — Planning HACMP clusters; Resource groups

60. 데이터베이스 설계자가 다음 조건을 확인한다. 업무 프로세스를 행, 데이터 엔터티를 열로 두고 각 교차 칸에 생성·조회·수정·삭제 여부를 C/R/U/D로 표시했다. 이 분석은? 프로세스\엔터티 회원 예약 결제 회원등록 C,U – – 예약접수 R C,U – 결제완료 R R C,U

  1. CASE 분석
  2. 정규화 분석
  3. CRUD 분석
  4. 친화도 분석
정답과 해설 보기

정답: 3

정답은 ③이다. CRUD 분석은 업무 기능이 각 데이터 엔터티를 생성·조회·수정·삭제하는지를 행렬로 표시해 두 관점의 관계를 확인한다. 회원등록의 회원 C,U는 회원 데이터를 만들거나 고친다는 뜻이고 예약접수의 회원 R은 기존 회원 정보를 읽는다는 뜻이다. 이 대응을 검토하면 데이터가 생성되기 전에 사용되지는 않는지, 필요한 관리 기능이 빠지지는 않았는지 점검할 수 있다. 함수 종속을 이용해 릴레이션을 분해하는 정규화나 단순한 친화도 묶기와는 목적이 다르다.

선지별 해설

  • CASE는 개발 지원 도구 전반의 개념이며 제시된 행렬 분석의 이름이 아니다.
  • 정규화는 함수 종속과 데이터 구조의 이상 현상을 다루는 활동이다.
  • 프로세스와 엔터티 사이의 생성·조회·수정·삭제 관계를 표시한 CRUD 분석이다.
  • 공통 특성으로 묶는 분석보다 구체적인 데이터 조작 관계를 나타낸다.

편집 해설 근거: SKF Group, Toolbox for Architecture Framework, Open Group 공개 자료 (2018) — CRUD matrix

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

61. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 응용 프로세스 사이의 대화 연결을 설정·관리·종료하고, 긴 전송에 동기점을 두어 복구를 돕는 OSI 계층은?

  1. 네트워크 계층
  2. 세션 계층
  3. 표현 계층
  4. 데이터링크 계층
정답과 해설 보기

정답: 2

정답은 ②이다. OSI 세션 계층은 응용 사이의 대화를 구성하고 제어하며 동기점을 두는 기능을 다룬다. 긴 교환 과정에서 동기점을 이용하면 문제가 생겼을 때 합의된 지점에서 다시 이어가는 데 도움을 줄 수 있다. 네트워크 계층은 네트워크를 가로지르는 전달, 표현 계층은 정보의 표현과 변환, 데이터링크 계층은 인접 구간의 프레임 전달을 다룬다. 여기서 세션은 OSI 참조 모델의 기능 구분이며 웹 로그인 세션과 같은 개별 구현 용어를 그대로 뜻하지 않는다.

선지별 해설

  • 경로 선택과 네트워크 간 데이터 전달을 다루는 계층이다.
  • 대화 제어와 동기점 관리라는 기능이 세션 계층에 해당한다.
  • 정보의 형식과 표현 변환을 다루는 계층이다.
  • 인접 구간의 프레임 전달과 관련되는 계층이다.

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

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

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

[학습용 개정문항]

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

정답: 3

정답은 ③이다. C의 관계·동등 비교 연산은 조건이 참이면 int 값 1, 거짓이면 0을 만든다. x가 5이므로 x % 2는 1이며 1 == 0은 거짓이어서 첫 괄호는 0이다. x > 3은 참이므로 두 번째 괄호는 1이다. 따라서 전체 식은 0 + 1 – 1 = 0이 되어 %d로 0을 출력한다. 비교 결과를 원래 피연산자 값으로 해석하거나 두 조건이 모두 참이라고 판단하면 다른 선택지를 고르게 된다.

선지별 해설

  • 0 + 1 – 1의 결과가 2가 되는 것은 아니다.
  • 비교식은 x나 상수 3이 아니라 0 또는 1을 반환한다.
  • 거짓 0과 참 1을 더하고 1을 빼므로 0이다.
  • 참인 비교식은 하나지만 마지막 -1도 반영해야 한다.

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

63. 다음 C11 프로그램에 문자 b를 입력하고 scanf가 성공했을 때 출력되는 문자열은?

#include <stdio.h>
int main(void) {
    char ch;
    scanf(" %c", &ch);
    switch (ch) {
        case 'a': printf("one ");
        case 'b': printf("two ");
        case 'c': printf("three"); break;
        default: printf("other");
    }
    return 0;
}

[학습용 개정문항]

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

정답: 2

정답은 ②이다. 입력한 b와 같은 case 레이블에서 실행을 시작하므로 one은 출력하지 않는다. case b의 printf가 two와 공백을 출력한 뒤 break가 없으므로 이어지는 case c의 printf도 실행하여 three를 덧붙인다. case c 끝의 break에서 switch를 빠져나가므로 default의 other는 실행하지 않는다. 최종 문자열은 two three이다. case는 각각 자동으로 끝나는 블록이 아니며 break 또는 다른 제어 이동이 있어야 이어지는 실행을 중단한다.

선지별 해설

  • case b에서 two와 공백을 먼저 출력하므로 three만 나오지 않는다.
  • b에서 시작해 c로 이어진 뒤 break를 만나 two three가 된다.
  • a는 실행하지 않으며 c의 three는 실행하므로 틀리다.
  • b로 바로 진입하므로 a의 one은 출력되지 않는다.

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

64. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 논리식 !a && !b와 항상 같은 값을 갖는 식은?

  1. !(a && b)
  2. !(a || b)
  3. a && b
  4. a || b
정답과 해설 보기

정답: 2

정답은 ②이다. 드모르간 법칙에 따라 각각을 부정하여 AND로 결합한 !a && !b는 OR로 결합한 전체를 부정한 !(a || b)와 같다. a와 b가 모두 거짓일 때만 두 식은 참이고, 하나라도 참이면 거짓이다. 반면 !(a && b)는 둘 중 하나가 거짓이면 참이므로 다른 식이다. 예를 들어 a가 참이고 b가 거짓일 때 원래 식은 거짓이지만 ①은 참이 된다. 네 가지 참·거짓 조합을 표로 대조하면 항상 동등한 보기를 확인할 수 있다.

선지별 해설

  • 드모르간 법칙상 !a || !b와 같아 원래 식과 다르다.
  • a와 b가 모두 거짓일 때만 참이므로 원래 식과 같다.
  • 두 값이 모두 참일 때 참이 되어 원래 식과 다르다.
  • 하나라도 참일 때 참이 되어 원래 식과 다르다.

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

65. 다음 Python 3 프로그램에 27#14를 입력했을 때 출력값은?

a, b = map(int, input().split("#"))
print(a * b)

[학습용 개정문항]

  1. 2714
  2. 378
  3. 27#14
  4. 27 14
정답과 해설 보기

정답: 2

정답은 ②이다. input()이 받은 문자열 27#14를 #으로 나누면 문자열 두 개 27과 14가 된다. map(int, …)는 각각을 정수로 변환하므로 a는 27, b는 14이고 곱은 378이다. print는 이 정수 결과를 출력하고 줄바꿈한다. 문자열을 그대로 이어 붙이는 연산도 아니고 입력 문자열을 다시 출력하는 코드도 아니다. 구분자가 없거나 정수로 변환할 수 없는 값이면 오류가 생길 수 있지만 지문의 입력은 두 정수로 올바르게 나뉜다.

선지별 해설

  • 정수 곱셈이며 두 문자열을 이어 붙이지 않는다.
  • 27 × 14 = 378을 출력한다.
  • 입력 전체가 아니라 정수로 변환한 두 값의 곱을 출력한다.
  • 두 변수를 따로 출력하는 문장이 아니므로 27 14가 아니다.

편집 해설 근거: Python 3.14, Built-in Types — str.split; Python 3.14, Built-in Functions — input; int; map; print

66. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. HRN(Highest Response Ratio Next) 스케줄링에 대한 기술로 틀린 설명을 고르면?

  1. 응답률이 낮은 프로세스를 먼저 실행한다.
  2. 짧은 작업을 선호하면서 긴 작업의 무한 대기를 완화한다.
  3. 응답률은 (대기시간 + 서비스시간) / 서비스시간으로 계산한다.
  4. 같은 서비스시간이라면 더 오래 기다린 프로세스의 응답률이 높다.
정답과 해설 보기

정답: 1

정답은 ①이다. HRN 또는 HRRN은 응답률 (대기시간 + 서비스시간) / 서비스시간이 가장 높은 준비 작업을 선택한다. 식을 1 + 대기시간/서비스시간으로 쓰면 대기가 길어질수록 값이 올라가고 같은 대기시간에서는 서비스시간이 짧은 작업의 값이 더 큰 것을 알 수 있다. 짧은 작업을 선호하면서 오래 기다린 작업도 선택될 가능성을 높이는 방식이다. 응답률의 response라는 말은 작업이 끝날 때의 실제 응답시간 자체가 아니라 선택에 쓰는 비율을 뜻한다.

선지별 해설

  • 가장 낮은 비율이 아니라 가장 높은 비율을 선택한다.
  • 짧은 작업 선호와 대기시간 증가를 함께 반영한다.
  • 대기시간과 서비스시간을 합친 뒤 서비스시간으로 나누는 식이다.
  • 서비스시간이 같으면 대기시간이 긴 작업의 비율이 더 크다.

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

67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. C 표준 라이브러리의 malloc에 대한 기술로 틀린 설명을 고르면?

  1. 할당에 실패하면 널 포인터를 반환한다.
  2. 요청한 크기의 동적 메모리 블록을 할당한다.
  3. 인수로 지정한 비트 수만큼 메모리를 할당한다.
  4. 더 이상 필요 없는 블록은 free로 해제한다.
정답과 해설 보기

정답: 3

정답은 ③이다. malloc의 인수는 요청할 바이트 수이며 비트 수가 아니다. 예를 들어 일반적인 사용에서 n개 원소를 담으려면 n * sizeof(원소형)처럼 필요한 바이트 수를 계산한다. 할당에 실패하면 널 포인터를 반환하고 성공한 블록의 초기 내용은 지정되지 않으므로 필요한 초기화도 고려한다. 사용이 끝난 블록은 free로 해제해야 한다. 크기 0 요청의 동작은 별도 규정이 있으며 C의 한 바이트가 반드시 8비트라고 모든 구현에 일반화해서도 안 된다.

선지별 해설

  • 요청한 할당에 실패하면 널 포인터를 반환한다.
  • 요청한 바이트 크기의 동적 저장 공간을 확보하는 함수이다.
  • 인수 단위는 비트가 아니라 바이트이다.
  • 할당한 블록은 더 이상 필요 없을 때 free로 해제한다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §7.22.3 Memory management functions; §7.22.3.4 malloc

68. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 프로세스와 스레드에 대한 기술로 틀린 설명을 고르면?

  1. 프로세스는 실행 중인 프로그램의 인스턴스로 운영체제의 자원 할당 단위가 된다.
  2. 프로세스마다 실행 상태와 문맥 정보를 담은 PCB가 관리된다.
  3. 프로세스는 한 스레드 안에서만 존재하는 더 작은 작업 단위이므로 경량 스레드라고도 한다.
  4. 한 프로세스의 스레드들은 코드·데이터·힙 같은 자원을 공유할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 프로세스는 실행 중인 프로그램의 주소 공간과 자원을 가진 실행 단위이며, 그 안에서 하나 이상의 스레드가 실행될 수 있다. 같은 프로세스의 스레드들은 코드·전역 데이터·힙을 공유하면서 각자 실행 위치, 레지스터와 스택 등의 실행 문맥을 가진다. 따라서 프로세스가 스레드 안의 더 작은 단위라는 설명은 관계를 거꾸로 서술한 것이다. 프로세스의 상태와 자원 정보는 운영체제가 PCB 같은 구조로 관리하며 공유 자원이 있다는 이유로 스레드의 문맥까지 모두 같아지는 것은 아니다.

선지별 해설

  • 실행 중인 프로그램과 그 자원을 묶는 프로세스의 설명이다.
  • 운영체제는 프로세스의 상태·자원·문맥 정보를 관리한다.
  • 스레드가 프로세스 안의 실행 흐름이며 보기는 포함 관계가 반대다.
  • 같은 주소 공간의 코드·데이터·힙 등을 공유할 수 있다.

편집 해설 근거: Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Chapter 26 Concurrency: An Introduction — Chapter 26, Introduction; Arpaci-Dusseau, OSTEP v1.10, 4 The Abstraction: The Process — Process State; Data Structures

69. 빈 페이지 프레임 3개에 FIFO를 적용한다. 처음에는 프레임 1, 2, 3 순서로 채우고 이후 가장 오래 적재된 페이지의 자리를 교체한다. 적중해도 적재 순서는 바꾸지 않는다. 참조 순서 [2, 1, 4, 2, 5, 1, 2]를 처리한 뒤 프레임 1, 2, 3의 내용은?

[학습용 개정문항]

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

정답: 1

정답은 ①이다. 처음 세 참조 2, 1, 4를 넣으면 프레임 1~3은 [2, 1, 4]이다. 다음 2는 적중이므로 FIFO 적재 순서를 바꾸지 않는다. 5는 부재여서 가장 먼저 들어온 2를 교체하여 [5, 1, 4]가 된다. 다음 1도 적중이다. 마지막 2는 부재이며 현재 가장 오래된 1을 교체하여 [5, 2, 4]가 된다. 총 부재는 최초 세 번과 교체 두 번의 다섯 번이다. 최종 적재 순서와 고정된 프레임 번호 순서는 서로 다를 수 있다.

선지별 해설

  • 고정 프레임 1~3의 최종 값은 [5, 2, 4]이다.
  • 오래된 1 대신 4를 잘못 교체한 결과다.
  • 최종 FIFO 적재 순서와 고정 프레임 위치를 혼동한 결과다.
  • 최초 적재 상태이며 5와 마지막 2의 교체를 반영하지 않았다.

편집 해설 근거: Arpaci-Dusseau, OSTEP, 22 Beyond Physical Memory: Policies (2025 개정 표시본) — §22.3 FIFO

70. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 프로세스들이 필요한 페이지를 충분히 유지하지 못해 페이지 부재와 교체가 급증하고, 실제 명령 실행보다 페이징에 더 많은 시간을 쓰는 현상은?

  1. 교착상태
  2. 스풀링
  3. 단편화
  4. 스래싱
정답과 해설 보기

정답: 4

정답은 ④이다. 스래싱은 활발하게 사용하는 페이지를 충분히 메모리에 유지하지 못하여 페이지 부재와 교체가 빈번해지고 유용한 계산보다 페이징에 자원을 많이 쓰는 현상이다. 동시에 실행할 작업을 계속 늘리면 메모리 경쟁 때문에 처리량이 오히려 줄어들 수 있다. 교착상태는 자원 대기로 서로 진행하지 못하는 문제이고 스풀링은 입출력 작업을 임시 저장하여 순서대로 처리하는 방식이다. 단편화는 메모리 공간의 분할·낭비 문제로, 반복적인 페이지 교체 자체를 부르는 말은 아니다.

선지별 해설

  • 서로 필요한 자원을 기다려 진행하지 못하는 상태와 구별된다.
  • 입출력 작업을 임시 저장해 처리하는 방식이다.
  • 공간 분할과 낭비의 문제이며 지문은 페이지 교체 급증을 말한다.
  • 필요 페이지 부족으로 교체가 과도해지는 스래싱이다.

편집 해설 근거: Arpaci-Dusseau, OSTEP, 22 Beyond Physical Memory: Policies (2025 개정 표시본) — Memory pressure; Thrashing

71. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. IPv4와 IPv6에 대한 기술로 틀린 설명을 고르면?

  1. IPv6는 주소 길이가 길기 때문에 IPv4보다 전송 속도가 반드시 느리다.
  2. IPv4 주소 길이는 32비트다.
  3. IPv6 주소는 16비트 단위를 16진수로 쓰고 콜론으로 구분한다.
  4. IPv6는 헤더 구조를 단순화하고 확장 헤더를 사용한다.
정답과 해설 보기

정답: 1

정답은 ①이다. IPv6의 주소가 128비트로 IPv4의 32비트보다 길다는 사실만으로 전송 속도가 반드시 느려지는 것은 아니다. 실제 성능은 경로, 장비 구현, 링크와 프로토콜 처리 조건에 달려 있다. IPv6 주소는 일반적으로 16비트 단위 여덟 묶음을 16진수로 쓰고 콜론으로 구분하며 연속된 0 등을 생략하는 규칙이 있다. 기본 헤더 구조를 정리하고 추가 기능을 확장 헤더로 표현하므로 주소 크기 하나로 모든 처리 비용과 성능을 결론 내릴 수 없다.

선지별 해설

  • 주소 길이만으로 실제 전송 성능의 우열을 필연적으로 판단할 수 없다.
  • IPv4 주소의 길이는 32비트이다.
  • IPv6 주소의 기본 텍스트 표기와 일치한다.
  • IPv6는 기본 헤더와 확장 헤더 구조를 사용한다.

편집 해설 근거: IETF RFC 8200, Internet Protocol Version 6 Specification (2017) — §3 IPv6 Header Format; §4 IPv6 Extension Headers; IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §2.2 Text Representation; IETF RFC 791 (1981), Internet Protocol — §3.1 Internet Header Format

72. 다음 Java 코드에서 a와 b는 살아 있는 클래스의 정적 필드이며 생성한 객체를 가리키는 다른 참조는 없다. 각 대입 직후의 참조 그래프만 추적할 때 객체로 이어지는 경로가 처음 모두 사라지는 시점은? 실제 GC 실행 시점을 묻는 것은 아니다.

class Example {
    static Object a, b;
    static void run() {
        a = new Object(); // ①
        b = a;            // ②
        a = null;         // ③
        b = null;         // ④
    }
}

[학습용 개정문항]

  1. ① 직후
  2. ④ 직후
  3. ③ 직후
  4. 프로그램이 종료된 뒤에만 가능
정답과 해설 보기

정답: 2

정답은 ②이다. 지문의 참조 그래프 모델에서 ① 뒤에는 a가 새 객체를 가리키고 ② 뒤에는 a와 b가 같은 객체를 가리킨다. ③에서 a를 null로 바꾸어도 b의 참조는 그대로 남는다. ④에서 b까지 null로 바꾸면 다른 참조가 없다는 조건 아래 그 객체로 이어지는 경로가 사라진다. 이는 도달 가능성의 변화이며 그 순간 GC가 즉시 실행되어 메모리를 회수한다는 뜻은 아니다. 지역변수의 실제 생존 범위를 최적화하는 실행 환경과 구별하기 위해 명시된 정적 필드의 참조만 추적한다.

선지별 해설

  • ① 뒤에는 a가 객체를 가리키는 경로가 남아 있다.
  • ④ 뒤에 마지막 b의 경로까지 사라진다.
  • ③ 뒤에도 b가 같은 객체를 계속 가리킨다.
  • 프로그램 종료 전에도 참조 경로가 없어질 수 있다.

편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 12 Execution — §12.6.1; §12.6.2

73. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. UNIX 계열 운영체제에서 현재 프로세스를 복제해 자식 프로세스를 만드는 시스템 호출은?

  1. wait
  2. fork
  3. chmod
  4. exec
정답과 해설 보기

정답: 2

정답은 ②이다. fork는 호출한 프로세스를 바탕으로 자식 프로세스를 생성하며 부모와 자식이 각각 실행을 이어가도록 한다. 성공 시 부모는 자식의 프로세스 ID를, 자식은 0을 반환값으로 받아 서로를 구별할 수 있다. 구현은 메모리 복사의 비용을 줄일 수 있지만 논리적으로 별도 프로세스가 생긴다는 의미는 같다. wait는 자식 상태를 기다리고, chmod는 파일 권한을 바꾸며, exec 계열은 현재 프로세스의 프로그램 이미지를 다른 프로그램으로 교체한다.

선지별 해설

  • 자식의 상태 변화나 종료 등을 기다리는 기능이다.
  • 현재 프로세스를 바탕으로 자식 프로세스를 생성한다.
  • 파일의 접근 권한을 변경한다.
  • 현재 프로세스의 프로그램 이미지를 교체하며 그 자체로 새 프로세스를 만드는 동작은 아니다.

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

74. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 교착상태가 성립하기 위한 Coffman의 네 필요조건에 포함되지 않는 것은?

  1. 비선점
  2. 우선순위 역전
  3. 상호 배제
  4. 점유와 대기
정답과 해설 보기

정답: 2

정답은 ②이다. Coffman의 네 조건은 상호 배제, 점유와 대기, 비선점, 순환 대기이다. 우선순위 역전은 낮은 우선순위 작업이 가진 자원을 높은 우선순위 작업이 기다리는 등의 우선순위 관련 문제로, 이 네 조건의 이름이 아니다. 교착상태는 작업들이 서로 필요한 자원을 기다리며 진행하지 못하는 상황이다. 순환 대기가 목록에 보이지 않는다고 다른 우선순위 개념으로 대체해서는 안 되며 예방은 보통 이 필요조건 중 하나가 성립하지 않도록 설계한다.

선지별 해설

  • 할당한 자원을 강제로 빼앗지 못한다는 필요조건이다.
  • 네 Coffman 조건에 포함되지 않는 별도의 우선순위 문제이다.
  • 자원을 동시에 함께 사용할 수 없다는 필요조건이다.
  • 자원을 가진 상태에서 다른 자원을 기다린다는 필요조건이다.

편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 32 Common Concurrency Problems — Necessary conditions for deadlock

75. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 반이중 공유 매체를 사용하는 전통적인 IEEE 802.3 Ethernet에서 충돌을 감지하고 재전송 시점을 조절하는 MAC 방식은?

  1. ALOHA Reservation
  2. CSMA/CD
  3. Token Bus
  4. Token Ring
정답과 해설 보기

정답: 2

정답은 ②이다. 반이중 공유 Ethernet의 CSMA/CD는 전송 전에 매체 사용 여부를 확인하고, 전송 중 충돌을 감지하면 중단한 뒤 백오프 규칙에 따라 재전송을 시도한다. 여러 장치가 같은 공유 매체를 경쟁하는 환경에서 쓰는 접근 방식이다. 토큰 버스와 토큰 링은 토큰을 가진 장치의 전송 권한을 이용하므로 충돌 감지 경쟁 방식과 다르다. 현대적인 전이중 스위치 연결에는 이 충돌 방식이 적용되지 않으므로 지문의 반이중·공유 매체 조건을 반드시 함께 읽는다.

선지별 해설

  • 예약 기반 ALOHA 방식으로 지문의 Ethernet MAC 방식이 아니다.
  • 반이중 공유 Ethernet의 반송파 감지·충돌 검출 방식이다.
  • 토큰으로 전송 권한을 관리하는 방식이다.
  • 링에서 토큰으로 전송 권한을 관리하는 방식이다.

편집 해설 근거: Cisco, Troubleshooting Ethernet: Ethernet and IEEE 802.3; Full-Duplex Operation — Ethernet and IEEE 802.3; Full-Duplex Operation

76. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 일반적인 프로세스 상태 이름으로 보기 어려운 것은?

  1. Ready
  2. Running
  3. Request
  4. Blocked
정답과 해설 보기

정답: 3

정답은 ③이다. 대표적인 프로세스 상태 모델에서 Ready는 실행 준비가 되었으나 CPU를 기다리는 상태, Running은 CPU에서 실행 중인 상태, Blocked는 입출력 등 어떤 사건을 기다려 당장 실행할 수 없는 상태이다. Request는 요청이라는 일반 동작을 나타내며 이 기본 상태 모델의 상태 이름으로 사용하지 않는다. 운영체제마다 생성·종료·중단 등 추가 상태를 둘 수 있지만, 준비 대기와 사건 대기는 대기 원인이 다르다는 점이 핵심이다.

선지별 해설

  • CPU를 배정받으면 실행할 수 있는 준비 상태이다.
  • 현재 CPU에서 실행 중인 상태이다.
  • 요청이라는 동작명으로 이 기본 상태 모델의 이름이 아니다.
  • 입출력 완료 등 사건을 기다리는 봉쇄 상태이다.

편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 4 The Abstraction: The Process — §4.4 Process States

77. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 같은 IPv4 네트워크에서 목적지 IP 주소에 대응하는 MAC 주소를 알아내는 프로토콜은?

  1. ARP
  2. FTP
  3. DHCP
  4. ICMP
정답과 해설 보기

정답: 1

정답은 ①이다. ARP는 같은 링크의 IPv4 주소에 대응하는 링크 계층 주소를 알아내기 위한 프로토콜이다. Ethernet에서는 목적지 또는 다음 홉의 MAC 주소를 얻어 프레임을 보낼 수 있도록 돕는다. 목적지가 다른 네트워크에 있으면 보통 원격 호스트의 MAC을 직접 찾는 것이 아니라 같은 링크에 있는 게이트웨이의 주소를 확인한다. FTP는 파일 전송, DHCP는 주소와 설정의 동적 제공, ICMP는 오류와 제어 메시지의 전달을 다룬다.

선지별 해설

  • 같은 링크의 IPv4 주소에 대응하는 MAC 주소를 확인한다.
  • 파일 전송에 사용하는 응용 프로토콜이다.
  • IP 주소와 네트워크 설정을 동적으로 제공한다.
  • 오류·진단 등의 제어 메시지를 전달한다.

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

78. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. OSI 네트워크 계층에 대한 기술로 틀린 설명을 고르면?

  1. IP와 같은 논리 주소를 이용해 출발지와 목적지를 식별한다.
  2. 라우터가 경로를 선택하고 다음 홉으로 패킷을 전달한다.
  3. 서로 다른 네트워크를 지나 목적지까지 패킷을 전달한다.
  4. 인접한 두 노드 사이에서 프레임 단위 오류·흐름 제어를 담당한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 네트워크 계층은 논리 주소와 경로 선택을 이용해 여러 네트워크를 지나는 패킷 전달을 다룬다. 라우터는 목적지에 대한 다음 홉을 선택하여 전달한다. 인접 노드 사이의 프레임 전달과 그 구간의 오류·흐름 제어는 데이터링크 계층의 관점이므로 ④는 계층을 잘못 연결했다. 실제 프로토콜이 어떤 오류 제어나 신뢰성을 제공하는지는 구현에 따라 달라진다. 특히 IP가 경로 전달을 맡는다고 데이터의 신뢰할 수 있는 도착까지 모두 보장하는 것은 아니다.

선지별 해설

  • 논리 주소를 이용한 송수신 식별은 네트워크 계층의 역할이다.
  • 라우터의 다음 홉 선택과 패킷 전달에 해당한다.
  • 여러 네트워크를 지나는 전달을 다룬다.
  • 인접 구간의 프레임 처리는 데이터링크 계층의 기능 설명이다.

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

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

  1. 재사용 가능한 구성 요소를 포함할 수 없다.
  2. 응용의 공통 구조와 제어 흐름을 제공하고 확장 지점에 사용자 코드를 결합할 수 있게 한다.
  3. 정해진 구조를 사용하므로 기능 확장이나 교체가 불가능하다.
  4. 완성된 단일 응용프로그램과 같은 의미다.
정답과 해설 보기

정답: 2

정답은 ②이다. 프레임워크는 응용군에 공통으로 필요한 구조와 동작의 뼈대를 제공하고, 사용자가 확장 지점에 코드를 넣어 구체적인 응용을 구성하게 한다. 프레임워크가 정한 흐름에서 사용자 코드를 호출하는 제어의 역전이 나타날 수 있다. 재사용 가능한 구성 요소를 포함할 수 있으며 정해진 계약 안에서 기능을 확장하거나 교체할 수 있다. 이미 모든 기능을 완성한 단일 응용과 같은 말도 아니다. 라이브러리의 개별 함수를 호출하는 것과 전체 응용 구조를 이용하는 관점도 구별한다.

선지별 해설

  • 공통 구성 요소의 재사용은 프레임워크의 중요한 목적이다.
  • 공통 구조와 제어 흐름, 사용자 코드의 확장 지점을 올바르게 설명했다.
  • 허용된 확장 지점과 계약을 통해 기능을 확장할 수 있다.
  • 구체적인 한 응용이 아니라 여러 응용을 구성할 수 있는 기반이다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Application Frameworks — reuse; inversion of control

80. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. C 표준 라이브러리 함수와 이를 선언하는 헤더의 연결로 타당한 설명을 고르면?

  1. qsort, strtol — <stdlib.h>
  2. strlen, strchr — <stdio.h>
  3. isdigit, tolower — <math.h>
  4. time, difftime — <string.h>
정답과 해설 보기

정답: 1

정답은 ①이다. qsort는 일반적인 배열 정렬 함수이고 strtol은 문자열을 long 정수로 변환하는 함수로, 두 함수 모두 stdlib.h에 선언된다. strlen과 strchr는 문자열 처리 함수이므로 string.h, isdigit과 tolower는 문자 분류·변환 함수이므로 ctype.h, time과 difftime은 시간 관련 함수이므로 time.h를 사용한다. 헤더는 함수의 선언과 관련 형식을 제공하므로 이름이 익숙하다는 이유로 다른 범주의 헤더를 추측하지 말고 기능별로 구분한다.

선지별 해설

  • qsort와 strtol은 모두 stdlib.h에서 선언된다.
  • strlen과 strchr는 stdio.h가 아니라 string.h에 선언된다.
  • isdigit과 tolower는 math.h가 아니라 ctype.h에 선언된다.
  • time과 difftime은 string.h가 아니라 time.h에 선언된다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §7.4; §7.22; §7.24; §7.27

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

81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 입력값 검증과 관련된 보안 약점·공격의 기술로 틀린 설명을 고르면?

  1. 크로스사이트 스크립팅은 신뢰한 웹 페이지에서 공격자의 스크립트가 실행되게 할 수 있다.
  2. 자원 삽입은 업로드한 실행 파일이 서버에서 실행되는 공격만을 뜻한다.
  3. 운영체제 명령어 삽입은 입력이 셸 명령 일부로 해석될 때 발생할 수 있다.
  4. SQL 삽입은 입력값이 SQL 문법으로 해석되게 만들어 질의 의미를 바꿀 수 있다.
정답과 해설 보기

정답: 2

정답은 ②이다. 자원 삽입은 외부 입력으로 파일 이름이나 포트 같은 자원 식별자를 부적절하게 선택하게 하여 허용 범위 밖의 자원에 접근하도록 만드는 약점이다. 업로드한 실행 파일의 실행만을 뜻하지 않는다. 명령어 삽입은 입력이 운영체제 명령으로, SQL 삽입은 입력이 SQL 구조로 해석되는 문제이며 XSS는 신뢰한 웹 문맥에서 공격자 코드가 실행되는 문제다. 모두 입력을 다루지만 어떤 해석 경계와 자원을 침범하는지에 따라 구별해야 한다.

선지별 해설

  • 공격자의 코드가 신뢰된 웹 문맥에서 실행되는 XSS의 설명이다.
  • 파일명·포트 등 자원 식별자 제어도 포함하므로 업로드 파일 실행에 한정되지 않는다.
  • 입력이 명령 구문의 일부로 해석되면 명령어 삽입이 가능하다.
  • 입력이 SQL 문법으로 해석되면 질의의 의미를 바꿀 수 있다.

편집 해설 근거: MITRE CWE-99, Improper Control of Resource Identifiers — Description; Extended Description; OWASP — SQL Injection Prevention — Introduction; Prepared Statements; OWASP, Cross Site Scripting (XSS), Overview — Description

82. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 사용자의 실행 없이 네트워크 취약점을 찾아 다른 호스트로 스스로 복제·전파하는 악성코드는?

  1. 루트킷(Rootkit)
  2. 논리 폭탄(Logic Bomb)
  3. 웜(Worm)
  4. 애드웨어(Adware)
정답과 해설 보기

정답: 3

정답은 ③이다. 웜은 다른 호스트로 스스로 복제·전파할 수 있는 독립적인 악성 프로그램이다. 지문처럼 네트워크 취약점을 이용해 사용자 실행 없이 전파하는 것은 웜의 대표적인 동작이다. 루트킷은 침입 흔적이나 악성 기능을 숨기는 데 초점이 있고 논리 폭탄은 특정 조건이 충족될 때 동작하도록 만든 코드이며 애드웨어는 광고 표시와 관련된다. 이 기능들이 한 악성 프로그램에 함께 나타날 수 있어도 문제에서 묻는 구별 기준은 자율적인 복제와 전파이다.

선지별 해설

  • 침입 흔적이나 악성 기능을 숨기는 역할과 관련된다.
  • 시간이나 사건 등 정해진 조건에서 악성 동작을 실행하는 코드이다.
  • 자율적으로 복제하여 다른 호스트로 전파하는 웜의 사례다.
  • 광고 표시와 관련된 소프트웨어로 자율 전파의 직접 분류가 아니다.

편집 해설 근거: NIST CSRC Glossary, worm: SP 800-28 Version 2 및 SP 800-82 Rev. 3 정의 — worm definition

83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 정보보안의 무결성(Integrity)을 가장 잘 설명한 것은?

  1. 정보가 인가되지 않은 방식으로 변경·삭제되지 않았음을 보장해야 한다.
  2. 인가된 사용자만 정보를 열람할 수 있어야 한다.
  3. 통신 상대가 주장한 신원과 일치하는지 확인해야 한다.
  4. 필요할 때 서비스와 정보에 접근할 수 있어야 한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 무결성은 정보가 부적절하게 변경되거나 파괴되지 않도록 보호하는 성질이다. 예를 들어 승인 없이 급여 금액을 수정하거나 거래 기록을 지우는 것은 무결성을 훼손한다. 인가된 사람만 열람하도록 하는 것은 기밀성, 필요할 때 접근하고 사용할 수 있게 하는 것은 가용성이다. 상대가 주장한 신원을 확인하는 것은 인증의 문제이다. 실제 보호 수단은 여러 속성을 함께 지원할 수 있어도 요구사항에서 무엇을 보호하려는지 먼저 구별해야 한다.

선지별 해설

  • 인가되지 않은 변경·삭제로부터 정보를 보호하는 무결성의 설명이다.
  • 정보의 열람과 공개 제한은 기밀성에 해당한다.
  • 주장한 신원을 확인하는 인증의 설명이다.
  • 필요한 때 정보와 서비스를 이용할 수 있는 가용성의 설명이다.

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

84. TCP 연결을 점검할 때 다음 중 그 사실만으로는 비정상 동작의 단서라고 보기 가장 어려운 것은? 나머지 현상도 세션 하이재킹만의 확정 증거는 아니다.

[학습용 개정문항]

  1. 정상적인 FTP 연결 시작에서 SYN 플래그가 한 번 관찰됨
  2. 같은 전송 방향에서 수신 예상 시퀀스 번호와 주입 의심 데이터 구간이 비정상적으로 어긋남
  3. 짧은 시간에 평소와 다른 ACK 패킷 급증이 발생함
  4. 평소와 다른 패킷 유실과 재전송 증가가 발생함
정답과 해설 보기

정답: 1

정답은 ①이다. TCP의 정상 연결 시작 과정에도 SYN이 사용되므로 정상적인 FTP 연결에서 SYN을 한 번 보았다는 사실만으로 비정상 상태를 판단할 수 없다. 반면 예상 시퀀스와 데이터의 불일치, 비정상적인 ACK 급증과 재전송 증가는 연결 상태나 경로를 조사할 단서가 될 수 있다. 이런 현상 역시 혼잡, 손실이나 구현 차이로 나타날 수 있으므로 곧바로 세션 탈취의 증거라고 단정해서는 안 된다. 송수신 방향별 번호 공간과 실제 흐름을 함께 분석해야 한다.

선지별 해설

  • SYN은 정상적인 TCP 연결 시작에도 필요하므로 그 사실만으로 이상 징후가 아니다.
  • 같은 방향의 수신 예상 번호와 의심 데이터의 불일치는 추가 조사 단서가 될 수 있다.
  • 비정상적인 ACK 급증은 연결 상태와 유발 패킷을 조사할 단서다.
  • 평소와 다른 손실·재전송 증가는 경로나 연결 상태를 조사할 단서가 될 수 있다.

편집 해설 근거: IETF RFC 9293, Transmission Control Protocol (2022) — §3.5 Establishing a Connection; IETF RFC 5961, Improving TCP’s Robustness to Blind In-Window Attacks — §5 Blind Data Injection Attack; §7 ACK Throttling; §10 Security Considerations

85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 보안 사고 A와 B에서 직접 훼손된 CIA 보안 속성을 순서대로 연결한 것은? A: 내부 급여 파일이 내용 변경 없이 외부 저장소로 복사됐다. B: 대량 요청으로 서버 자원이 고갈되어 정상 사용자가 서비스를 이용하지 못했다.

  1. 가용성, 무결성
  2. 인증성, 기밀성
  3. 기밀성, 가용성
  4. 무결성, 기밀성
정답과 해설 보기

정답: 3

정답은 ③이다. A는 급여 파일의 내용이 바뀌지 않았더라도 허용되지 않은 외부로 정보가 노출되었으므로 기밀성이 직접 훼손된 사례이다. B는 정상 사용자가 필요한 서비스를 이용할 수 없게 되었으므로 가용성이 직접 훼손되었다. 무결성은 부적절한 변경이나 삭제를 방지하는 속성인데 A에는 내용 변경이 없다고 명시되어 있다. 실제 사고가 여러 영향을 낳을 수 있어도 이 문항은 제시된 직접 피해를 각각 정보 유출과 이용 불가로 나누어 판단한다.

선지별 해설

  • A는 이용 불가가 아니라 유출이고 B는 변경이 아니라 이용 불가이다.
  • A의 직접 피해는 신원 확인 실패라는 설명보다 정보 노출에 해당한다.
  • A는 기밀성, B는 가용성의 침해이다.
  • A에 내용 변경은 없고 B는 정보 유출이 아니라 서비스 이용 불가이다.

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

86. 두 개발 단계는 겹치지 않고 순서대로 진행한다. 단계별 생산성은 일정하며 추가 작업·투입 전환 비용은 무시한다. 다음 조건에서 총 예상 기간은?

[학습용 개정문항]
목표 규모: 48,000 LOC
1단계: 8명, 1인당 월 400 LOC, 3개월
2단계: 10명, 1인당 월 480 LOC, 남은 작업 완료까지

  1. 10개월
  2. 11개월
  3. 8개월
  4. 9개월
정답과 해설 보기

정답: 2

정답은 ②이다. 1단계 생산량은 8명 × 월 400 LOC × 3개월 = 9,600 LOC이다. 목표 48,000 LOC에서 이를 빼면 38,400 LOC가 남는다. 2단계의 팀 생산량은 10명 × 월 480 LOC = 월 4,800 LOC이므로 남은 작업에는 38,400 / 4,800 = 8개월이 필요하다. 총기간은 이미 지난 3개월을 더한 11개월이다. 단계가 겹치지 않고 제시한 생산성이 일정하다는 산술 추정이며 실제 협업·검토·재작업 비용까지 자동으로 반영한 값은 아니다.

선지별 해설

  • 제시된 두 단계의 생산량과 잔여 작업량을 적용하면 10개월이 아니다.
  • 1단계 3개월과 2단계 8개월을 합친 11개월이다.
  • 남은 작업의 2단계 기간만 계산하고 앞의 3개월을 빠뜨렸다.
  • 2단계 월 생산량과 잔여 LOC를 다시 나누어야 한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Economics — Estimation

87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 기본 COCOMO 비용 산정 모형에 대한 기술로 틀린 설명을 고르면?

  1. UFP에 기술 복잡도 보정계수를 곱하는 것만으로 개발 유형을 결정한다.
  2. 소프트웨어 규모를 KLOC로 나타내 노력과 개발 기간을 추정한다.
  3. Organic, Semi-detached, Embedded 개발 유형에 따라 계수가 달라진다.
  4. 프로젝트 유형과 규모가 같아도 중간 COCOMO에서는 비용 동인의 영향을 추가로 반영할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 기본 COCOMO는 코드 규모를 KLOC로 표현하고 개발 모드에 따른 계수를 적용하여 노력과 기간을 추정한다. Organic, Semi-detached와 Embedded는 경험, 환경과 제약 등의 성격을 반영한 개발 유형이다. UFP에 기술 복잡도 보정계수를 곱하는 계산만으로 COCOMO의 개발 유형을 정한다는 설명은 맞지 않는다. 중간 COCOMO는 규모와 유형에 더해 비용 동인을 반영한다. 개발 모드는 코드 줄 수 하나로 기계적으로 결정되는 분류로 이해해서도 안 된다.

선지별 해설

  • 기능점수 관련 계산을 COCOMO 개발 모드 결정과 혼동한 설명이다.
  • KLOC를 규모 입력으로 사용해 노력과 기간을 추정한다.
  • 세 개발 유형에 따라 모형 계수가 달라진다.
  • 중간 모형은 추가 비용 동인으로 추정 노력을 조정한다.

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

88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 무선 LAN에서 기존 WEP의 취약점을 보완하기 위해 Wi-Fi Alliance가 도입한 보안 규격은?

  1. WCDMA
  2. WPA
  3. TLS
  4. SHA-256
정답과 해설 보기

정답: 2

정답은 ②이다. WPA는 WEP의 약점을 보완하기 위해 Wi-Fi Alliance가 도입한 무선 LAN 보안 규격이다. 이 문제는 보안 규격의 역사적 도입 관계를 묻는다. WCDMA는 이동통신 무선 접속 기술, TLS는 통신 채널의 보안을 제공하는 프로토콜, SHA-256은 해시 함수이므로 해당 규격 이름과 다르다. 과거에 WEP를 개선했다는 사실을 현재 네트워크에 초기 WPA 방식을 새로 권장한다는 의미로 받아들이면 안 된다. 현행 무선 보안의 선택은 최신 지원과 정책을 별도로 확인한다.

선지별 해설

  • 이동통신 접속 기술이며 WEP 개선 규격명이 아니다.
  • Wi-Fi Alliance의 WEP 보완 규격으로 도입된 WPA이다.
  • 통신 채널 보호 프로토콜로 무선 LAN의 이 규격명이 아니다.
  • 해시 함수이며 무선 LAN 보안 규격 전체를 뜻하지 않는다.

편집 해설 근거: NIST SP 800-97 (2007), 2025-12-31 철회·역사 자료 — Wi-Fi Protected Access history

89. 미국 NIST가 DES를 대체하는 FIPS 197 표준으로 채택한 대칭키 블록 암호이다. 블록 길이는 128비트이고 키 길이는 128·192·256비트를 지원한다. 이 알고리즘은?

[학습용 개정문항]

  1. AES
  2. DSA
  3. SEED
  4. ARIA
정답과 해설 보기

정답: 1

정답은 ①이다. AES는 미국 NIST의 FIPS 197로 표준화된 대칭키 블록 암호이며 블록 길이 128비트와 키 길이 128·192·256비트를 지원한다. DES를 대체하는 표준이라는 조건에 맞는다. DSA는 전자서명 알고리즘이고 SEED는 128비트 키를 쓰는 별도의 블록 암호이다. ARIA도 128비트 블록과 같은 세 키 길이를 지원하므로 블록·키 길이만으로 AES를 유일하게 고를 수는 없다. 이 문항은 NIST의 DES 대체 표준이라는 출처 조건까지 함께 제시한다.

선지별 해설

  • NIST FIPS 197로 표준화된 AES이다.
  • 전자서명 알고리즘이며 해당 대칭키 블록 암호가 아니다.
  • 별도 블록 암호로 128비트 키를 사용한다.
  • 블록·키 길이는 같지만 NIST의 DES 대체 FIPS 197 알고리즘은 아니다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — Introduction; Algorithm Specifications; IETF RFC 5794, A Description of the ARIA Encryption Algorithm (2010) — Algorithm specification

90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 침입 탐지 시스템(IDS)에 대한 기술로 틀린 설명을 고르면?

  1. NIDS는 네트워크 구간의 패킷과 흐름을 분석한다.
  2. DMZ와 내부망의 경계 등 관찰이 필요한 지점에 센서를 배치할 수 있다.
  3. 이상 탐지는 등록된 공격 서명과 정확히 일치하는 패킷만 찾는다.
  4. HIDS는 호스트의 로그·파일·프로세스·계정 활동을 감시할 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. 이상 탐지는 정상 상태의 특성이나 기준선과 비교하여 비정상적인 편차를 찾는 접근이다. 알려진 공격 서명과 일치하는 패턴만 찾는다는 설명은 서명 기반 탐지에 가깝다. NIDS는 네트워크 트래픽을 관찰하고 HIDS는 개별 호스트의 로그, 파일과 프로세스 활동 등을 살핀다. 센서의 위치는 무엇을 관찰하려는지와 암호화·트래픽 경로 등에 따라 결정한다. 이상 탐지에도 오탐과 미탐이 있을 수 있어 편차가 발견되었다는 사실만으로 악성 행위를 확정하지는 않는다.

선지별 해설

  • 네트워크 구간의 트래픽을 관찰하는 NIDS의 역할이다.
  • DMZ·내부망 경계 등 관찰 목적에 맞는 지점에 배치할 수 있다.
  • 정확한 공격 서명 일치만 찾는 것은 이상 탐지의 정의가 아니다.
  • 호스트 내부 활동과 상태를 관찰하는 HIDS의 역할이다.

편집 해설 근거: NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (2007) — §2.2 Detection methodologies; Network-based; Host-based IDPS

91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 네트워크 장비의 기능에 대한 기술로 틀린 설명을 고르면?

[학습용 개정문항]

  1. 라우터는 논리 주소와 라우팅 테이블을 이용해 서로 다른 네트워크 사이의 패킷 경로를 선택한다.
  2. 브라우터(Brouter)는 약해진 물리 신호를 원래 형태로 재생하는 장비만을 뜻한다.
  3. 브리지는 MAC 주소를 기준으로 LAN 세그먼트 사이의 프레임을 전달한다.
  4. 2계층 스위치는 포트별 MAC 주소 학습을 이용해 프레임을 전달한다.
정답과 해설 보기

정답: 2

정답은 ②이다. Brouter는 bridge와 router의 기능을 결합한 장비를 뜻한다. 약해진 물리 신호를 재생하는 역할만 하는 장비는 리피터이므로 보기의 설명은 틀리다. 라우터는 논리 주소와 경로 정보를 바탕으로 패킷을 전달하고 브리지와 2계층 스위치는 MAC 주소를 이용해 프레임을 전달한다. 한 제품이 여러 계층의 기능을 수행할 수 있으므로 물리적 외형보다 어떤 주소와 정보를 기준으로 전달 결정을 하는지 구분하는 것이 좋다.

선지별 해설

  • 논리 주소와 경로 정보를 사용하는 라우터의 기능이다.
  • Brouter는 브리지·라우터 복합 기능이며 단순 신호 재생 장비가 아니다.
  • MAC 주소를 기준으로 세그먼트 사이의 프레임을 전달한다.
  • MAC 주소와 포트의 대응을 학습해 프레임을 전달한다.

편집 해설 근거: Cisco — Guida ai vantaggi del networking, Glossario — Glossario — Brouter; Bridge; Repeater; IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — IPv4 router requirements

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

  1. 검증되지 않은 입력을 SQL 문자열에 이어 붙이면 질의 구조가 바뀔 수 있다.
  2. 로그인·검색처럼 입력값으로 동적 질의를 만드는 지점이 공격 표면이 될 수 있다.
  3. 모든 DBMS가 문법·함수·주석·오류 처리까지 같으므로 공격 구문도 항상 동일하다.
  4. 매개변수화된 질의는 데이터와 SQL 구조를 분리해 위험을 줄인다.
정답과 해설 보기

정답: 3

정답은 ③이다. SQL 삽입은 외부 입력이 데이터로만 취급되지 않고 SQL 구문의 일부로 해석될 때 질의의 의미를 바꾸는 문제이다. 로그인과 검색 등 입력을 이어 붙여 질의를 만드는 곳이 공격 표면이 될 수 있다. DBMS마다 문법, 함수, 주석과 오류 처리 방식이 달라 모든 공격 구문이 동일하다는 주장은 틀리다. 매개변수화된 질의는 값과 SQL 구조를 분리한다. 열 이름이나 정렬 방향처럼 값 매개변수로 처리할 수 없는 구성 요소는 허용 목록 등으로 따로 제한해야 한다.

선지별 해설

  • 문자열 결합으로 입력이 질의 구조를 바꿀 위험이 있다.
  • 외부 입력을 동적으로 조합하는 기능은 공격 표면이 될 수 있다.
  • DBMS의 구문과 기능 차이 때문에 모든 공격 구문이 같지는 않다.
  • 준비된 문장과 값 바인딩은 데이터와 SQL 구조를 분리한다.

편집 해설 근거: OWASP — SQL Injection Prevention — Prepared Statements; Allow-list Input Validation

93. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 여러 브리지·스위치를 중복 연결한 Ethernet에서 루프를 제거하면서 장애 시 대체 경로를 사용할 수 있게 논리적 트리를 계산하는 알고리즘은?

  1. Diffie-Hellman Algorithm
  2. Dijkstra Compression
  3. Digital Signature Algorithm
  4. Spanning Tree Algorithm
정답과 해설 보기

정답: 4

정답은 ④이다. 스패닝 트리 알고리즘은 중복 연결이 있는 2계층 네트워크에서 프레임 전달에 사용하는 경로가 루프를 만들지 않도록 논리적 트리를 구성한다. 물리적 여분의 연결을 없애는 것이 아니라 일부 포트의 전달을 제한하고 토폴로지가 바뀌면 경로를 다시 구성할 수 있다. 루프를 방치하면 브로드캐스트 반복과 MAC 학습 불안정 등의 문제가 생길 수 있다. Diffie–Hellman은 키 합의, DSA는 전자서명이며 Dijkstra Compression은 이 기능의 알고리즘 이름이 아니다.

선지별 해설

  • 통신 당사자 사이의 암호 키 합의와 관련된다.
  • 이 이름은 Ethernet의 루프 제거 알고리즘을 나타내지 않는다.
  • 전자서명 알고리즘으로 프레임 전달 토폴로지를 계산하지 않는다.
  • 중복 링크에서 루프 없는 논리적 전달 트리를 구성한다.

편집 해설 근거: Cisco IOS XE 17, Spanning Tree Protocol Configuration Guide — Spanning Tree Protocol — Overview

94. 다음 클라우드 서비스 X와 Y의 분류를 바르게 연결한 것은? 이 문항의 BaaS는 Blockchain as a Service를 뜻한다.

[학습용 개정문항]
X: 운영체제 패치 없이 제공된 런타임에 웹 애플리케이션을 배포한다.
Y: 블록체인 원장 노드, 인증기관, 채널과 접근 정책을 관리형으로 생성·운영한다.

  1. X=DaaS, Y=SaaS
  2. X=IaaS, Y=DRaaS
  3. X=BaaS, Y=FaaS
  4. X=PaaS, Y=BaaS
정답과 해설 보기

정답: 4

정답은 ④이다. X는 제공자가 운영체제와 런타임을 관리하고 사용자가 응용을 배포하는 PaaS에 해당한다. Y는 블록체인 네트워크의 원장 노드와 인증기관, 채널 등의 구성을 관리형으로 제공하므로 Blockchain as a Service의 사례이다. 서비스 이름은 실제로 제공자가 맡는 관리 범위를 보고 판단해야 한다. BaaS는 Backend as a Service의 약자로도 쓰여 문맥 없이 하나의 뜻으로 고정할 수 없으며, 이 문항에서는 블록체인 서비스라는 의미를 명시한다.

선지별 해설

  • X는 데스크톱 제공이 아니라 응용 실행 플랫폼 제공이다.
  • X에서는 OS 관리를 제공자가 맡으며 Y는 재해복구 서비스 설명이 아니다.
  • X는 블록체인 서비스가 아니고 Y는 함수 단위 실행 서비스가 아니다.
  • X는 PaaS, Y는 명시된 의미의 블록체인 BaaS이다.

편집 해설 근거: NIST SP 800-145, The NIST Definition of Cloud Computing (2011) — Service Models — Platform as a Service; Oracle Blockchain Platform, What Are the Advantages? (2026-10-05 확인) — Oracle Blockchain Platform advantages

95. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 기존 소프트웨어의 기능은 유지하면서 다른 운영체제와 하드웨어에서 실행되도록 변환·조정하는 재공학 활동은?

  1. 이식
  2. 역공학
  3. 재문서화
  4. 재구조화
정답과 해설 보기

정답: 1

정답은 ①이다. 이식은 기존 기능을 다른 운영체제나 하드웨어 환경에서도 수행할 수 있도록 소프트웨어를 조정하는 활동이다. 예를 들어 환경 의존 API와 경로 처리 등을 바꾸어 같은 업무 기능을 새 환경에서 실행할 수 있게 한다. 역공학은 기존 구현에서 구조와 설계 정보를 추출하고, 재문서화는 현재 상태를 문서로 정리하며, 재구조화는 동작을 유지하면서 내부 구조를 개선한다. 이들이 이식 과정에 함께 사용될 수 있어도 지문의 직접 목적은 실행 환경의 변경이다.

선지별 해설

  • 기능을 유지하며 다른 환경에서 실행하게 조정하는 이식이다.
  • 기존 구현을 분석하여 상위 수준의 정보를 추출한다.
  • 산출물의 현재 내용을 문서로 정리하는 활동이다.
  • 내부 구조를 개선하는 활동이며 다른 환경으로 옮기는 목적 자체와 구별된다.

편집 해설 근거: AWS, What is Application Migration? (2026-10-05 확인) — Software maintenance — migration and porting

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 적용 사례 중 원문을 다시 얻을 수 있는 가역적 암호화가 필요한 것은?

  1. 배포 파일의 SHA-256 다이제스트를 비교한다.
  2. API 요청에 HMAC을 붙여 위변조 여부를 확인한다.
  3. 비밀번호에서 PBKDF2 검증값을 만들어 저장한다.
  4. 백업 파일을 AES-GCM으로 암호화하고 복구 때 복호화한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 백업에서 원래 파일을 복구하려면 권한을 가진 쪽이 키로 암호문을 복호화할 수 있어야 하므로 가역적인 암호화가 필요하다. AES-GCM은 기밀성과 인증을 함께 제공하는 운용 방식이며 복구 시 인증 검증도 필요하다. SHA-256은 다이제스트, HMAC은 메시지 인증값, PBKDF2는 비밀번호 등에 기초한 키 도출값을 생성하므로 원문 복호화 기능을 제공하지 않는다. 값의 비교나 추측 검증이 가능한 것과 암호문에서 원문을 복구하는 것은 다른 일이다.

선지별 해설

  • 다이제스트를 비교하는 해시 용도이며 원문 복호화가 아니다.
  • 인증값으로 무결성과 출처를 확인하며 메시지 복호화 기능은 아니다.
  • 도출·검증값을 사용하며 저장값을 복호화해 비밀번호를 꺼내는 방식이 아니다.
  • 보호한 파일을 키로 복호화하여 복구해야 하므로 가역 암호화가 필요하다.

편집 해설 근거: NIST SP 800-38D, Galois/Counter Mode and GMAC — Abstract; Authenticated Encryption and Decryption

97. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 저장장치 구성 X와 Y를 바르게 분류한 것은? X: 서버는 저장 전용 스위치를 거친 LUN을 로컬 디스크처럼 인식한다. Y: 클라이언트는 \\fileserver\team 경로의 파일을 SMB로 연다.

  1. X=NAS, Y=SAN
  2. X=DAS, Y=SAN
  3. X=RAID, Y=DAS
  4. X=SAN, Y=NAS
정답과 해설 보기

정답: 4

정답은 ④이다. X는 저장장치 네트워크를 통해 블록 장치를 제공받고 서버가 LUN을 로컬 디스크와 비슷한 방식으로 다루므로 SAN의 사례이다. Y는 SMB로 공유 경로의 파일을 열기 때문에 파일 단위 저장 서비스를 제공하는 NAS의 사례이다. DAS는 서버에 직접 연결한 저장장치이고 RAID는 여러 디스크를 배열로 구성하는 기술이다. RAID를 SAN이나 NAS 내부에 사용할 수 있으므로 접속 방식과 디스크 배열 방식은 서로 대체되는 같은 분류가 아니다.

선지별 해설

  • 파일 단위 NAS와 블록 단위 SAN의 연결을 반대로 했다.
  • X는 전용 저장 네트워크를 거치며 Y는 블록 SAN이 아닌 SMB 파일 접근이다.
  • RAID는 디스크 배열 방식이고 Y는 직접 연결 저장장치가 아니다.
  • X는 SAN의 블록 접근, Y는 NAS의 파일 접근이다.

편집 해설 근거: IBM, What is a storage area network (SAN)? (2026-10-05 확인) — SAN vs NAS and DAS

98. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 무선 노드의 연결 상태가 다음과 같을 때 메시 네트워크의 동작으로 타당한 설명을 고르면? 링크: A-B, A-D, B-C, D-C 장애: B-C 링크 단절

  1. 링크 장애 뒤에도 모든 노드는 기존 경로만 사용해야 하므로 재계산하지 않는다.
  2. B-C 링크 장애 시 라우팅을 다시 계산해 A-D-C 같은 우회 경로를 사용할 수 있다.
  3. B-C 링크가 끊기면 중앙 AP가 없으므로 A와 C는 반드시 통신할 수 없다.
  4. A는 C와 직접 연결되지 않았으므로 B나 D를 통한 중계도 할 수 없다.
정답과 해설 보기

정답: 2

정답은 ②이다. B-C가 끊겨도 A-D와 D-C가 남아 있으므로 A에서 C로 가는 A-D-C 경로를 사용할 수 있다. 주어진 연결 그래프에서 경로를 다시 찾으면 되며 A와 C가 직접 연결되지 않았다는 이유만으로 통신이 불가능해지는 것은 아니다. 실제 메시 네트워크에서는 라우팅이 장애를 탐지하고 사용할 경로를 선택할 수 있어야 한다. 우회 경로가 있다는 말이 지연이나 대역폭까지 이전과 같다는 보장은 아니지만, 이 사례에서는 연결 가능성을 유지할 경로가 존재한다.

선지별 해설

  • 토폴로지가 변하면 경로를 다시 계산할 수 있다.
  • 남은 A-D와 D-C 링크를 이용하는 우회 경로가 존재한다.
  • 중앙 AP의 존재 여부만으로 다중 홉 경로가 없다고 결론 내릴 수 없다.
  • B나 D를 통한 중계가 가능하며 현재는 D를 지나는 경로가 남아 있다.

편집 해설 근거: NIST DADS, graph — graph — vertices and edges; IEEE 802.11 Working Group, Task Group s 개요 — IEEE 802.11 Task Group s

99. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. CPM(Critical Path Method)에 대한 기술로 틀린 설명을 고르면?

  1. 조기·최지 시작 및 완료 시각과 여유 시간을 계산할 수 있다.
  2. 작업의 선후 관계와 소요 시간을 이용해 프로젝트 일정을 분석한다.
  3. 작업 기간을 가로 막대로만 표현하며 작업 간 의존 관계 계산은 하지 않는다.
  4. 여유 시간이 0인 주공정의 지연은 전체 완료일을 늦출 수 있다.
정답과 해설 보기

정답: 3

정답은 ③이다. CPM은 작업 기간과 선후 의존 관계를 네트워크로 표현해 시작·완료 가능 시각과 여유 시간을 계산하는 일정 분석 방법이다. 주공정은 프로젝트 완료 시점을 결정하는 경로이며 해당 작업이 지연되면 전체 완료일도 늦어질 수 있다. 가로 막대로 기간만 그린다는 설명은 CPM의 의존 관계 계산을 빠뜨린 것이다. 결과를 간트 차트로 보여 줄 수는 있지만 표시 형식과 일정을 계산하는 방법은 같은 개념이 아니다. 실제 제약과 달력 조건에 따라 여유 시간 해석도 함께 검토한다.

선지별 해설

  • 작업의 조기·최지 시각과 여유 시간을 계산할 수 있다.
  • 작업 기간과 선후 관계가 일정 계산의 핵심 입력이다.
  • 의존 관계를 계산하지 않는다는 설명이 CPM의 핵심을 부정한다.
  • 주공정의 지연은 완료일을 늦출 수 있다.

편집 해설 근거: U.S. GAO, Schedule Assessment Guide GAO-16-89G (2015) — Best Practice 6: Confirming That the Critical Path Is Valid; Best Practice 7: Ensuring Reasonable Total Float

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 클라우드 HSM(Hardware Security Module)에 대한 기술로 틀린 설명을 고르면?

  1. 암호 키의 생성·저장과 암호 연산을 보호된 하드웨어 경계에서 수행하도록 제공할 수 있다.
  2. 애플리케이션이 원시 키를 직접 보관하지 않고 API로 서명·암호 연산을 요청할 수 있다.
  3. 접근 통제와 감사 로그를 결합해 키 사용을 관리할 수 있다.
  4. 하드웨어 보안 경계가 없고 일반 소프트웨어만으로 구현되어야 Cloud HSM이라 부른다.
정답과 해설 보기

정답: 4

정답은 ④이다. HSM은 암호 키와 암호 연산을 보호된 하드웨어 경계에서 다루도록 설계한 장치이며 클라우드 HSM은 이를 서비스로 제공한다. 응용은 API를 통해 키 생성과 서명·암호 연산을 요청하고 접근 권한 및 감사 기록으로 사용을 관리할 수 있다. 일반 소프트웨어만으로 구현되어야 한다는 주장은 HSM의 하드웨어 특성과 모순된다. 다만 모든 키가 어떤 설정에서도 절대로 내보내질 수 없다는 뜻은 아니며 키의 추출 가능성과 정책은 제품·설정별로 확인해야 한다.

선지별 해설

  • 보호된 하드웨어 안에서 키와 암호 연산을 다루는 HSM의 역할이다.
  • 응용이 API로 서명 등의 연산을 요청하는 방식이 가능하다.
  • 권한과 감사 기록을 이용해 키 사용을 통제할 수 있다.
  • 하드웨어 보안 경계가 없어야 한다는 설명은 HSM의 의미와 반대이다.

편집 해설 근거: AWS CloudHSM User Guide, What is AWS CloudHSM? — What is AWS CloudHSM?

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

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

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

자료 기준·검수 정보