문제지 PDF · 웹 정답 해설

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

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

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

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

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

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

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

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

1. 럼바우 OMT의 세 분석 모형을 ㉠ 객체와 관계의 정적 구조, ㉡ 사건에 따른 상태 변화, ㉢ 입력에서 출력으로의 기능적 변환에 차례로 대응시킨 것은?

[학습용 개정문항]

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

정답: 4

정답은 ④ 객체 모형 → 동적 모형 → 기능 모형이다. OMT에서 객체 모형은 객체·클래스와 관계의 정적 구조를, 동적 모형은 사건에 따른 상태와 변화 순서를, 기능 모형은 입력이 처리되어 출력이 되는 변환을 다룬다. 따라서 제시된 세 관점과 이름을 차례로 대응시키면 ④가 된다.

세 모형은 같은 시스템을 다른 관점에서 설명하므로 서로 일관되어야 한다. 실제 분석을 반드시 한 번의 일방향 작업으로 끝낸다는 뜻은 아니며, 한 모형에서 발견한 내용으로 다른 모형을 보완할 수 있다.

선지별 해설

  • ① 오답. 두 번째 사건·상태 관점은 기능 모형이 아니라 동적 모형이다.
  • ② 오답. 정적 객체 구조를 먼저 대응시켜야 하므로 첫 번째부터 다르다.
  • ③ 오답. 첫 번째 정적 구조와 두 번째 상태 변화의 모형이 모두 뒤바뀌었다.
  • ④ 정답. 정적 구조, 사건·상태 변화, 입력·출력 변환을 순서대로 대응시킨다.

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

2. 설계 검토 회의에서 다음 항목을 판단한다. XP 팀의 운영 방침 중 XP의 핵심 가치와 관련성이 가장 낮은 방침을 고르면? 팀은 짧은 반복 주기마다 동작 결과를 확인하고 다음 계획을 조정하려 한다.

  1. 초기에 모든 요구를 완전한 정형 명세로 고정하고 이후 피드백에 따른 변경을 금지한다.
  2. 팀 구성원이 서로의 기여와 판단을 존중한다.
  3. 고객과 개발자가 자주 대화해 요구 이해를 맞춘다.
  4. 실패한 접근을 숨기지 않고 개선이 필요하다고 말할 용기를 갖는다.
정답과 해설 보기

정답: 1

정답은 ①이다. XP는 작은 단위로 구현하고 시험 결과와 고객 의견을 자주 받아 다음 작업을 조정한다. 시작할 때 모든 요구를 완전히 고정하고 이후 변경을 금지하면, 새로 발견한 요구나 잘못된 가정을 피드백으로 개선하기 어렵다.

동료의 기여를 존중하고 고객과 자주 대화하며 문제를 솔직히 드러내는 태도는 이런 협업을 뒷받침한다. XP의 단순성은 필요한 설계나 명세를 없애자는 뜻이 아니라, 현재 필요한 내용을 명료하게 만들고 경험에 따라 계속 개선하자는 방향이다.

선지별 해설

  • ① 정답. 피드백에 따른 계획·요구 조정을 금지하므로 XP의 반복적 학습과 충돌한다.
  • ② 오답. 구성원의 기여를 존중하는 태도는 협업과 공동 책임에 도움이 된다.
  • ③ 오답. 잦은 대화는 요구 이해 차이를 줄이는 의사소통을 실천한다.
  • ④ 오답. 문제를 숨기지 않고 개선을 제안하는 것은 용기에 부합한다.

편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — Whole Team; Planning Game; Simple Design; Conclusion

3. 설계 검토 회의에서 다음 항목을 판단한다. 애자일 팀의 운영 방침으로 적절하지 않은 것은?

  1. 계약 문구만 따지기보다 고객과 해결책을 함께 조정한다.
  2. 짧은 반복마다 작동 결과를 고객과 검토한다.
  3. 연초에 만든 세부 계획을 고정하고 새 정보가 생겨도 변경하지 않는다.
  4. 프로세스 도구보다 팀원 간 소통과 협업을 중시한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 애자일은 새 정보를 통해 요구와 위험을 더 잘 이해하게 되면 계획도 조정할 수 있어야 한다고 본다. 연초 계획을 세웠다는 이유만으로 이후의 변화와 학습을 무시하는 방침은 변화에 대응한다는 가치와 맞지 않는다.

①의 고객 협력, ②의 작동 결과에 대한 잦은 검토, ④의 개인 간 상호작용은 애자일의 가치·원칙과 연결된다. 계약·계획·도구가 무가치하다는 뜻은 아니다. 그것을 갖추되 고객 가치와 실제 상황을 기준으로 판단한다.

선지별 해설

  • ① 오답. 고객과의 협력을 중시하는 방향이다.
  • ② 오답. 동작하는 결과를 자주 전달하고 피드백받는 원칙에 맞는다.
  • ③ 정답. 새 정보가 있어도 계획을 고정하므로 변화 대응을 막는다.
  • ④ 오답. 개인과 상호작용을 중시하는 가치에 맞는다.

편집 해설 근거: Manifesto for Agile Software Development (2001) — Four values; Principles behind the Agile Manifesto — Principles 1–4

4. 설계 검토 회의에서 다음 항목을 판단한다. UML에서 활용되는 다이어그램 중, 시스템의 동작을 표현하는 행위(Behavioral) 다이어그램에 해당하지 않는 것은?

  1. 유스케이스 다이어그램(Use Case Diagram)
  2. 시퀀스 다이어그램(Sequence Diagram)
  3. 활동 다이어그램(Activity Diagram)
  4. 배치 다이어그램(Deployment Diagram)
정답과 해설 보기

정답: 4

정답은 ④ 배치 다이어그램이다. UML의 배치 다이어그램은 실행 노드와 실행 환경, 그 위에 배치되는 산출물 등의 구성을 표현하는 구조 다이어그램이다. 시스템이 어떤 실행 자원에 놓이는지 나타내는 데 초점을 둔다.

유스케이스 다이어그램은 시스템이 제공하는 행위와 액터의 관계를, 활동 다이어그램은 활동의 제어·객체 흐름을 나타낸다. 시퀀스 다이어그램은 행위 다이어그램에 속하는 상호작용 다이어그램으로, 생명선 사이 메시지의 순서를 표현한다.

선지별 해설

  • ① 오답. 유스케이스 다이어그램은 UML 행위 다이어그램에 속한다.
  • ② 오답. 시퀀스는 상호작용 다이어그램이며 행위 분류에 포함된다.
  • ③ 오답. 활동의 진행과 흐름을 표현하는 행위 다이어그램이다.
  • ④ 정답. 노드와 배치를 나타내는 구조 다이어그램이다.

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

5. 설계 검토 회의에서 다음 항목을 판단한다. 반복되는 객체 생성과 상호작용 문제에 디자인 패턴을 적용하려는 팀의 판단으로 적절하지 않은 것은?

  1. 공통된 설계 어휘를 사용해 팀원 사이의 의사소통을 돕는다.
  2. 검증된 역할 분담을 참고하되 현재 시스템의 제약에 맞게 조정한다.
  3. 패턴 이름을 정하면 요구사항과 도메인 분석은 생략해도 된다.
  4. 문제 맥락과 패턴의 적용 조건이 맞는지 먼저 확인한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 디자인 패턴은 특정 맥락에서 반복되는 설계 문제와 해법의 구조를 설명한다. 이름만 선택한다고 실제 사용자의 요구, 업무 규칙, 성능 제약까지 결정되는 것은 아니므로 요구사항과 도메인 분석을 생략할 근거가 되지 않는다.

공통된 패턴 이름은 설계 의도를 전달하는 어휘로 쓸 수 있고, 역할 분담을 참고해 구현을 조정할 수도 있다. 먼저 해결할 문제와 제약을 확인한 뒤 적합한 패턴을 선택해야 하며, 불필요한 패턴을 넣으면 구조만 복잡해질 수 있다.

선지별 해설

  • ① 오답. 공통 설계 어휘로 의사소통을 돕는 것은 패턴의 장점이다.
  • ② 오답. 실제 제약에 맞춰 적용하는 판단은 적절하다.
  • ③ 정답. 패턴 선택이 요구사항과 도메인 분석을 대신하지 않는다.
  • ④ 오답. 문제 맥락과 적용 조건을 먼저 살피는 것이 적절하다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Patterns — context, problem, solution and consequences

6. 설계 검토 회의에서 다음 항목을 판단한다. 서로 다른 운영체제에서 실행되는 주문 클라이언트와 재고 서버 사이의 호출·메시지 형식을 중개하는 소프트웨어 계층은?

  1. 미들웨어
  2. 사용자 화면
  3. 장치 드라이버
  4. 운영체제 커널
정답과 해설 보기

정답: 1

정답은 ① 미들웨어다. 클라이언트와 서버 사이에서 호출이나 메시지를 주고받는 공통 기능을 제공하면, 각 응용이 통신의 세부 사항과 이기종 환경 차이를 모두 직접 처리하는 부담을 줄일 수 있다. 지문은 이런 중개 계층을 묻는다.

사용자 화면은 사람이 기능을 조작하는 접점이고, 장치 드라이버는 하드웨어 장치를 제어하는 소프트웨어다. 커널은 운영체제의 핵심 자원을 관리한다. 미들웨어를 사용하더라도 응용 사이의 메시지 규격과 호환성 검토 자체가 사라지는 것은 아니다.

선지별 해설

  • ① 정답. 응용 사이 호출·메시지 교환을 중개하는 공통 계층이다.
  • ② 오답. 사용자 화면은 사람과 응용 사이의 조작 접점이다.
  • ③ 오답. 장치 드라이버는 주로 운영체제와 장치 사이를 연결한다.
  • ④ 오답. 커널은 운영체제의 핵심 자원을 관리한다.

편집 해설 근거: Oracle Tuxedo 22, ORB Software — Oracle Tuxedo ORB Software — Overview

7. 설계 검토 회의에서 다음 항목을 판단한다. CASE 도구를 도입한 목적과 관련성이 가장 낮은 방침을 고르면?

  1. 변경 산출물 사이의 추적성 지원
  2. 분석 모델과 설계 산출물의 재사용
  3. 표준화된 모델 검증으로 품질 향상
  4. 최종 사용자에게 제품 조작법을 가르치는 교육 자동화
정답과 해설 보기

정답: 4

정답은 ④이다. CASE는 컴퓨터를 이용하여 소프트웨어 개발·유지보수 활동을 지원하는 도구를 가리킨다. 요구·분석·설계 산출물을 연결하고, 모델을 재사용하거나 일관성을 검사하는 기능은 이러한 목적과 직접 연결된다.

완성된 제품의 조작법을 최종 사용자에게 가르치는 교육 자동화는 교육·훈련 지원의 성격이 강하므로 보기 중 CASE 도입 목적과 가장 멀다. 이는 어떤 CASE 제품도 사용자 문서를 생성할 수 없다는 뜻은 아니며, 개발 공정 지원과 최종 사용자 교육의 주된 목적을 구별하는 문제다.

선지별 해설

  • ① 오답. 변경 영향과 산출물 연결을 추적하는 기능은 개발 활동을 지원한다.
  • ② 오답. 모델과 설계 산출물의 재사용은 CASE 활용 목적에 맞는다.
  • ③ 오답. 모델 검증은 일관성과 품질을 확보하는 개발 지원 활동이다.
  • ④ 정답. 완성된 제품의 사용자 교육은 개발 공정 지원과 주된 목적이 다르다.

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

8. 직접 호출 관계가 A→B, A→C, A→D, B→E, B→F, C→F, D→F, F→G, F→H이다. fan-in을 해당 모듈을 직접 호출하는 모듈 수, fan-out을 해당 모듈이 직접 호출하는 모듈 수로 셀 때 F의 값은?

[학습용 개정문항]

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

정답: 2

정답은 ② fan-in 3, fan-out 2다. F를 직접 호출하는 모듈은 B·C·D의 세 개이므로 fan-in은 3이다. F가 직접 호출하는 모듈은 G·H의 두 개이므로 fan-out은 2다. A는 B·C·D를 통해 간접적으로 연결되지만 F에 직접 들어오는 호출선은 없다.

호출 그래프에서 대상 모듈을 먼저 고정하고 들어오는 선과 나가는 선을 따로 세면 혼동을 줄일 수 있다. 이 문제의 수치는 실행 중 호출이 몇 번 반복되는지가 아니라 제시된 직접 호출 관계의 수다.

선지별 해설

  • ① 오답. F에 들어오는 수와 나가는 수를 서로 바꾸었다.
  • ② 정답. B·C·D에서 들어오고 G·H로 나간다.
  • ③ 오답. F를 직접 호출하는 모듈을 두 개 누락했다.
  • ④ 오답. 들어오는 호출 세 개와 나가는 호출 두 개에 모두 맞지 않는다.

편집 해설 근거: NIST DADS, degree — Directed graph — in-degree and out-degree

9. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 개발 프로세스의 순서로 타당한 설명을 고르면? ㉠ 도출(Elicitation) ㉡ 분석(Analysis) ㉢ 명세(Specification) ㉣ 확인(Validation)

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

정답: 4

정답은 ④ 도출 → 분석 → 명세 → 확인이다. 이해관계자 등에서 요구 후보를 찾아낸 뒤, 충돌·모호함·실현 가능성을 분석하고, 합의된 내용을 명세로 표현한 다음 요구가 의도에 맞고 빠짐없이 표현되었는지 확인하는 흐름이다.

실무의 요구사항 활동이 항상 한 번씩만 순차 실행되는 것은 아니다. 확인 중 모순이나 누락이 발견되면 추가 도출이나 분석으로 돌아갈 수 있다. 보기의 순서는 각 활동이 맡는 역할을 설명하는 대표 흐름으로 이해해야 한다.

선지별 해설

  • ① 오답. 요구를 분석해 정리하기 전에 명세를 먼저 놓았다.
  • ② 오답. 분석·명세 전에 확인을 배치해 대표 개발 흐름과 다르다.
  • ③ 오답. 합의 내용을 명세한 뒤 그 내용을 확인하는 순서가 뒤바뀌었다.
  • ④ 정답. 요구 후보를 찾아 분석하고 명세한 뒤 확인한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §2–5; §7.1 Iterative Nature of the Requirements Process

10. 설계 검토 회의에서 다음 항목을 판단한다. 온도 제어 시스템을 입력(Input), 처리(Process), 출력(Output), 제어(Control), 피드백(Feedback)의 상호작용으로 모델링하려 한다. 이 구성 요소 목록에 직접 포함되지 않는 것은?

  1. 소스 저장소의 브랜치 명명 규칙
  2. 히터 출력을 조정하는 제어
  3. 센서가 측정한 온도 입력
  4. 설정값과 측정값을 비교하는 처리
정답과 해설 보기

정답: 1

정답은 ① 소스 저장소의 브랜치 명명 규칙이다. 지문은 운용 중인 온도 제어 시스템을 입력·처리·출력·제어·피드백으로 바라본다. 센서의 측정값은 입력이 되고, 설정 온도와의 차이를 계산하여 히터 출력을 조절하며, 새로 측정한 온도가 다시 제어 판단에 쓰인다.

브랜치 이름은 개발자가 소스 변경을 관리하는 규칙이다. 프로그램을 만드는 과정에는 필요할 수 있지만, 제시된 온도 제어 기능의 입력이나 처리 요소를 직접 나타내지는 않는다. 시스템 경계와 관점을 구분하는 것이 핵심이다.

선지별 해설

  • ① 정답. 개발 소스 관리 규칙이며 제시된 운용 기능 요소 목록과 다르다.
  • ② 오답. 히터 출력을 조정하는 동작은 제어에 해당한다.
  • ③ 오답. 센서가 측정한 온도는 시스템 입력이다.
  • ④ 오답. 설정값과 측정값을 비교하는 계산은 처리에 해당한다.

편집 해설 근거: Åström·Murray, Feedback Systems (2008, 2012 전자판), 저자 제공 원문 — Chapter 1 Introduction — feedback and control systems

11. 설계 검토 회의에서 다음 항목을 판단한다. 요구사항 R-11가 변경되었다. 영향받는 설계 요소와 테스트를 가장 직접적으로 추적할 산출물은?

  1. 개발자 근무표
  2. 화면 색상표
  3. 요구사항 추적 매트릭스
  4. 배포 서버 목록
정답과 해설 보기

정답: 3

정답은 ③ 요구사항 추적 매트릭스다. 요구사항 식별자 R-11과 이를 실현하는 설계 요소, 구현 부분, 검증 항목 사이의 대응 관계를 기록하면 변경 시 영향을 받는 대상을 따라갈 수 있다. 요구에서 시험으로뿐 아니라 시험이나 설계에서 관련 요구로 거슬러 올라가는 추적도 유용하다.

매트릭스는 누락된 연결을 찾고 변경 영향 분석의 출발점을 제공한다. 링크가 있다는 사실만으로 구현이나 시험의 정확성이 보장되지는 않으므로, 요구가 바뀌면 연결된 산출물의 내용과 추적 관계도 함께 갱신해야 한다.

선지별 해설

  • ① 오답. 근무표는 인력 일정이며 요구와 설계·시험의 대응표가 아니다.
  • ② 오답. 색상표는 시각적 속성을 정리하며 변경 영향 전체를 추적하지 못한다.
  • ③ 정답. 요구 식별자와 관련 산출물의 연결을 직접 관리한다.
  • ④ 오답. 서버 목록은 배포 자산 정보이며 요구별 추적 관계와 다르다.

편집 해설 근거: NASA Systems Engineering Handbook — 6.2 Requirements Management — §6.2.1.2.2 Conduct Requirements Management; §6.2.1.2.3 Conduct Expectations and Requirements Traceability

12. 설계 검토 회의에서 다음 항목을 판단한다. 주문 객체가 결제 객체와 재고 객체에 메시지를 보내는 시간 순서를 생명선으로 표현한 UML 다이어그램에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 객체 사이의 상호작용을 나타낸다.
  2. 위에서 아래로 시간 흐름을 읽는다.
  3. 클래스의 정적 상속 구조를 중심으로 나타내는 구조 다이어그램이다.
  4. 상호작용 다이어그램의 한 종류다.
정답과 해설 보기

정답: 3

정답은 ③이다. 생명선과 그 사이의 메시지를 이용해 상호작용을 보여 주는 것은 시퀀스 다이어그램이다. 클래스의 정적 상속 계층을 중심으로 보여 주는 구조 다이어그램이라는 설명은 지문의 표현 대상과 맞지 않는다.

시퀀스 다이어그램에서는 일반적으로 생명선을 따라 위에서 아래로 사건의 순서를 읽는다. 다만 여러 생명선과 병렬 상호작용이 포함될 때 그림 전체의 모든 사건에 하나의 절대 시간 순서가 자동으로 정해지는 것은 아니다. 상속 구조와 메시지 교환의 순서를 구별해야 한다.

선지별 해설

  • ① 오답. 객체 사이 상호작용을 나타낸다는 설명은 맞다.
  • ② 오답. 생명선을 따라 위에서 아래로 사건 순서를 읽는 기본 표기다.
  • ③ 정답. 시퀀스는 상속 계층 중심의 구조 다이어그램이 아니다.
  • ④ 오답. 시퀀스는 UML 상호작용 다이어그램에 속한다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §17 Interactions — Lifelines and Sequence Diagrams; Annex B §B.3

13. 설계 검토 회의에서 다음 항목을 판단한다. 입력 오류를 알리는 사용자 인터페이스 설계로 가장 부적절한 것은?

[학습용 개정문항]

  1. 수정 방법과 다시 시도할 수단을 함께 제공한다.
  2. 중요한 결과와 데이터 손실 가능성을 구체적으로 알린다.
  3. 오류를 색깔 차이로만 나타내고 무엇이 잘못됐는지 설명하지 않는다.
  4. 무엇이 잘못됐는지 일상적인 표현으로 알려 준다.
정답과 해설 보기

정답: 3

정답은 ③이다. 사용자가 입력을 수정하려면 어떤 항목에 어떤 오류가 있는지 알아야 한다. 색상 차이만 표시하고 설명을 제공하지 않으면 색을 구별하기 어려운 사용자나 비시각적 방식으로 사용하는 사람이 오류를 파악하지 못할 수 있다.

오류가 발생한 항목을 식별하고 문제를 이해할 수 있는 텍스트를 제공하며, 가능하면 수정 방법도 안내하는 것이 적절하다. 색이나 아이콘은 보조 단서로 활용할 수 있다. 텍스트만 사용했다는 이유만으로 나쁜 UI가 되는 것은 아니며 내용과 접근성이 중요하다.

선지별 해설

  • ① 오답. 수정 방법과 재시도 수단은 오류에서 회복하도록 돕는다.
  • ② 오답. 중요한 결과와 손실 가능성을 구체적으로 알리는 것은 적절하다.
  • ③ 정답. 오류를 색 차이만으로 전달하고 설명을 생략하므로 인지와 접근성이 떨어진다.
  • ④ 오답. 일상적인 표현은 사용자가 오류 원인을 이해하도록 돕는다.

편집 해설 근거: W3C WCAG 2.2, Understanding 1.4.1 Use of Color — Understanding SC 1.4.1 — Intent; W3C WCAG 2.2, Understanding SC 3.3.1 Error Identification — Understanding SC 3.3.1 — Intent

14. 설계 검토 회의에서 다음 항목을 판단한다. 클래스가 인터페이스에 정의된 연산을 구현할 때 두 요소 사이의 UML 관계로 가장 알맞은 것은?

  1. 실체화(Realization)
  2. 의존(Dependency)
  3. 집합(Aggregation)
  4. 일반화(Generalization)
정답과 해설 보기

정답: 1

정답은 ① 실체화(Realization)다. 인터페이스가 제공할 연산과 계약을 명세하고 클래스가 그 계약에 맞는 구현을 제공할 때 UML에서는 인터페이스 실체화 관계로 표현한다. 명세를 실제 구현으로 충족한다는 연결이 핵심이다.

일반화는 더 일반적인 분류자와 특수화된 분류자 사이의 관계이며, 집합은 전체와 부분을 나타내는 연관의 성격이다. 의존은 한 요소의 변화가 다른 요소에 영향을 줄 수 있다는 더 넓은 개념이다. 이 지문처럼 인터페이스 계약의 구현을 직접 묻는 경우에는 실체화가 가장 정확하다.

선지별 해설

  • ① 정답. 인터페이스의 계약을 구현하는 관계를 직접 표현한다.
  • ② 오답. 의존은 더 일반적인 변화 영향 관계이며 지문의 특정 관계명은 실체화다.
  • ③ 오답. 집합은 전체·부분의 관계를 표현한다.
  • ④ 오답. 일반화는 일반 요소와 특수 요소 사이의 분류 관계다.

편집 해설 근거: OMG UML 2.5.1 (2017) — §10.5.6 InterfaceRealization — Description

15. 설계 검토 회의에서 다음 항목을 판단한다. 정보공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어는?

  1. Entity-Relationship Diagram
  2. Package Diagram
  3. State Transition Diagram
  4. Deployment Diagram
정답과 해설 보기

정답: 1

정답은 ① ERD(Entity–Relationship Diagram)다. 데이터 모델에서 어떤 개체를 관리하고 각 개체가 어떤 속성을 가지며 다른 개체와 어떤 관계를 맺는지 표현한다. 예를 들어 학생·강좌와 수강 관계를 정리하면 테이블과 키를 설계하는 바탕이 된다.

패키지 다이어그램은 모델 요소를 묶는 구성과 의존을, 상태 전이 다이어그램은 사건에 따른 상태 변화를, 배치 다이어그램은 실행 노드와 산출물의 배치를 나타낸다. 데이터의 개념 구조를 표현한다는 지문의 목적에 직접 맞는 것은 ERD다.

선지별 해설

  • ① 정답. 개체·속성·관계를 통해 데이터 구조를 모델링한다.
  • ② 오답. 패키지로 모델 요소를 묶는 구성을 나타낸다.
  • ③ 오답. 사건에 따른 상태 변화가 주된 표현 대상이다.
  • ④ 오답. 실행 노드와 소프트웨어 산출물의 배치를 나타낸다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — ER Model Basics — Entities, Attributes and Relationships; OMG UML 2.5.1 (2017) — §12 Packages; §14 StateMachines; §19 Deployments

16. 설계 검토 회의에서 다음 항목을 판단한다. GoF(Gang of Four) 디자인 패턴을 생성·구조·행동의 세 그룹으로 분류할 때, 구조 패턴이 해당하지 않는 것을 고르면?

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

정답: 3

정답은 ③ Builder다. Builder는 복잡한 객체를 만드는 절차와 그 결과 표현을 분리하여 단계적으로 객체를 구성하는 생성 패턴이다. 이름에 구조물을 만든다는 느낌이 있더라도 GoF의 목적별 분류에서는 생성에 속한다.

Adapter는 인터페이스를 변환해 함께 사용할 수 있게 하고, Bridge는 추상화와 구현을 분리하여 독립적인 확장을 돕는다. Proxy는 실제 객체에 대한 대리 객체를 둔다. 이 세 가지는 객체나 클래스의 조합·연결 구조에 관한 구조 패턴이다.

선지별 해설

  • ① 오답. Adapter는 인터페이스를 변환하는 구조 패턴이다.
  • ② 오답. Bridge는 추상화와 구현을 분리하는 구조 패턴이다.
  • ③ 정답. Builder는 객체 생성 과정에 관한 생성 패턴이다.
  • ④ 오답. Proxy는 대상 객체의 대리 역할을 두는 구조 패턴이다.

편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Design Space for GoF Patterns, 15쪽; GoF pattern catalog

17. Microsoft Windows의 Touch interactions 문서에서 공통 터치 상호작용이나 제스처 이름으로 제시하는 용어가 아닌 것은?

[학습용 개정문항]

  1. Press and hold
  2. Flow
  3. Flick
  4. Tap
정답과 해설 보기

정답: 2

정답은 ② Flow다. Windows의 터치 상호작용 안내는 탭, 누르고 유지하기, 짧게 밀어 움직이는 플릭 등 실제 손가락 동작을 구분한다. Flow는 이 문서의 해당 기본 동작 이름이 아니며 보통 화면이나 작업의 흐름을 설명할 때 쓰는 표현이다.

NUI는 터치만을 뜻하지 않고 음성·몸짓 등 자연스러운 입력 방식도 포함하는 더 넓은 개념이다. 이 문제는 그 전체 범위를 제한하는 것이 아니라 명시된 Windows 문서의 터치 동작 용어를 구별하는 문제다.

선지별 해설

  • ① 오답. 누른 상태를 유지하는 동작으로 공통 상호작용에 제시된다.
  • ② 정답. 명시된 문서의 기본 터치 동작 이름이 아니다.
  • ③ 오답. 손가락을 빠르게 움직이는 동작으로 제스처 안내에 제시된다.
  • ④ 오답. 항목을 활성화하거나 선택하는 터치 동작이다.

편집 해설 근거: Microsoft Windows apps — Touch interactions — Touch Interaction Patterns — Common Interactions; Gestures; Microsoft, Behind the scenes of NUI at Microsoft (2011-10-17) — Natural user interface research overview

18. 설계 검토 회의에서 다음 항목을 판단한다. 코드 작성자가 동료들과 예제 입력을 손으로 따라가며 알고리즘 흐름을 설명했다. 이 워크스루 활동에 대한 기술로 잘못된 것은?

  1. 공식 인스펙션과 역할·진행·결함 기록 규칙이 반드시 같다.
  2. 참가자의 질문으로 누락된 조건을 찾을 수 있다.
  3. 복잡한 분기와 반복의 이해를 돕는 데 사용할 수 있다.
  4. 코드뿐 아니라 설계·테스트 케이스도 검토할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 워크스루는 작성자가 산출물과 사례를 설명하고 참가자가 질문하며 이해를 맞추거나 결함을 찾는 검토 방식이다. 시나리오나 예제 입력을 손으로 따라가는 활동도 포함될 수 있으며, 프로그램을 실제 실행해야만 가능한 활동은 아니다.

인스펙션은 정의된 역할, 준비, 절차, 기록과 진입·종료 기준을 갖춘 정형 검토다. 워크스루 역시 기록을 남기고 공식적으로 운영할 수 있지만 모든 역할·규칙이 인스펙션과 반드시 같지는 않다. 검토 대상도 코드뿐 아니라 설계나 시험 산출물이 될 수 있다.

선지별 해설

  • ① 정답. 두 검토 방식의 역할과 절차가 반드시 동일하지는 않다.
  • ② 오답. 참가자의 질문으로 누락이나 이해 차이를 찾을 수 있다.
  • ③ 오답. 분기·반복을 사례로 따라가며 이해하는 데 활용할 수 있다.
  • ④ 오답. 코드 외의 개발 산출물도 정적 검토 대상이 될 수 있다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.1.1 Work Products that Can be Examined by Static Testing; §3.2.3 Review Types — Walkthrough and Inspection

19. 설계 검토 회의에서 다음 항목을 판단한다. 문서 조회 기능만 사용하는 클라이언트가 read, write, delete를 모두 가진 저장소 인터페이스에 의존하고 있다. 인터페이스 분리 원칙에 맞는 개선은?

  1. 모든 클라이언트가 전체 저장소 구현 클래스에 직접 의존하게 한다.
  2. 읽기 계약과 변경 계약을 나누어 조회 클라이언트는 읽기 계약에만 의존하게 한다.
  3. 세 연산을 하나의 전역 정적 함수로 합친다.
  4. 조회 구현에서 write와 delete를 빈 메서드로 둔다.
정답과 해설 보기

정답: 2

정답은 ②이다. 조회 클라이언트가 필요한 것은 읽기 계약이다. 읽기와 변경 계약을 분리하면 조회 코드가 사용하지 않는 write·delete 메서드에 불필요하게 의존하지 않아도 된다. 이것이 인터페이스 분리 원칙의 핵심이다.

메서드를 빈 구현으로 남기는 것만으로는 넓은 인터페이스에 대한 의존이 없어지지 않는다. 분리된 인터페이스들을 하나의 저장소 구현 클래스가 함께 구현하는 것도 가능하다. 중요한 것은 인터페이스 개수를 무조건 늘리는 것이 아니라 실제 클라이언트의 필요에 맞춰 계약을 나누는 것이다.

선지별 해설

  • ① 오답. 전체 구현에 직접 의존하면 필요한 계약만 참조한다는 개선과 반대다.
  • ② 정답. 조회 클라이언트가 읽기 계약에만 의존하도록 한다.
  • ③ 오답. 전역 함수로 합치는 것은 사용하지 않는 기능에 대한 의존을 해소하지 못한다.
  • ④ 오답. 빈 구현을 두어도 넓은 인터페이스의 불필요한 계약은 그대로 남는다.

편집 해설 근거: Robert C. Martin, Solid Relevance (2020-10-18) — ISP) The Interface Segregation Principle

20. 설계 검토 회의에서 다음 항목을 판단한다. 기능 계층도와 각 기능의 입력·처리·출력 도표를 함께 작성하는 HIPO에 대한 기술로 틀린 설명을 고르면?

  1. 가장 낮은 모듈부터 조립 순서만 기록하는 상향식 코딩 도구다.
  2. 전체 기능과 세부 기능의 계층 관계를 나타낸다.
  3. 각 기능의 입력·처리·출력을 문서화한다.
  4. 표준화된 그림으로 시스템을 설명해 의사소통을 돕는다.
정답과 해설 보기

정답: 1

정답은 ①이다. HIPO는 Hierarchy plus Input–Process–Output의 약자로, 기능의 계층 관계와 각 기능의 입력·처리·출력을 함께 문서화한다. 일반적인 기능 설명에서 상세 기능으로 내려가며 시스템을 이해하고 설계하는 데 활용한다.

가시적 목차는 계층 관계를 보여 주고 총괄·상세 도표는 기능의 IPO 내용을 표현한다. 따라서 가장 낮은 모듈부터의 조립 순서만 기록하는 상향식 코딩 도구라는 설명은 목적과 구성에 맞지 않는다. 코드를 대신 실행하는 도구나 단순 소스 목록과도 구별된다.

선지별 해설

  • ① 정답. HIPO를 하위 모듈의 조립 순서만 기록하는 도구로 한정해 잘못 설명했다.
  • ② 오답. 전체와 세부 기능의 계층 관계를 나타내는 것은 맞다.
  • ③ 오답. 기능의 입력·처리·출력은 HIPO의 핵심 문서화 대상이다.
  • ④ 오답. 구조화된 도표는 기능 설명과 의사소통을 돕는다.

편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Chapter 5 Hierarchy plus Input-Process-Output, 인쇄면 13–14

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

21. 조회 성능을 위해 계산 결과나 원본 데이터를 의도적으로 중복 저장하는 설계에 해당하지 않는 것은?

[학습용 개정문항]

  1. 원본 자료의 집계 결과를 별도 테이블에 저장한다.
  2. 자주 조회하는 조인 결과를 별도 테이블에 저장한다.
  3. 자주 조회하는 원본의 일부 행을 사본 테이블에도 저장한다.
  4. 함수 종속에 따라 테이블을 분해하여 불필요한 데이터 중복을 제거한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 조회를 빠르게 하려고 집계 결과, 조인 결과 또는 자주 쓰는 일부 데이터를 따로 저장하면 원본에서 다시 얻을 수 있는 정보를 중복 유지하게 된다. 반복 계산이나 조인 비용을 줄일 수 있지만 원본 변경 시 추가 저장본도 갱신해야 한다.

④는 함수 종속에 따라 테이블을 분해해 불필요한 중복과 갱신 이상을 줄이는 정규화에 해당한다. 중복 저장이 항상 빨라지는 것은 아니므로 반정규화는 실제 조회·갱신 부하와 일관성 유지 비용을 함께 비교해 결정한다.

선지별 해설

  • ① 오답. 원본으로부터 계산 가능한 집계 결과를 추가 저장한다.
  • ② 오답. 매번 수행할 조인 결과를 중복 보관하는 방법이다.
  • ③ 오답. 원본 일부의 사본을 별도 유지하는 방법이다.
  • ④ 정답. 중복을 줄이는 정규화이며 질문의 의도적 중복 저장과 다르다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Tuning the Conceptual Schema; Denormalization; Summary; Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — Schema Refinement and Normal Forms

22. 개발·시험 담당자가 다음 사례를 검토한다. 입력 배열 길이가 10이든 1,000,000이든 첫 번째 원소 하나만 읽어 반환하는 함수의 시간 복잡도는?

  1. O(1) — 입력 크기와 무관하게 한 번 접근
  2. O(log n) — 매 단계 입력을 절반으로 줄임
  3. 실행할 수 없음
  4. O(n) — 입력 원소를 모두 한 번씩 읽음
정답과 해설 보기

정답: 1

정답은 ① O(1)이다. 배열이 비어 있지 않고 인덱스 접근을 상수 시간 연산으로 보는 일반적인 분석 모형에서는 첫 번째 원소를 한 번 읽는 작업량이 배열 길이 n에 따라 늘어나지 않는다. n이 10에서 1,000,000으로 커져도 이 함수의 접근 횟수는 같다.

빅오 표기는 입력 크기에 따른 증가 양상을 나타내므로 실제 실행 시간이 모든 컴퓨터에서 똑같다는 뜻은 아니다. 이진 탐색처럼 범위를 반복해서 절반으로 줄이면 O(log n), 모든 원소를 순회하면 O(n)으로 구분한다.

선지별 해설

  • ① 정답. 입력 길이가 커져도 일정한 횟수만 접근한다.
  • ② 오답. 검색 범위를 반복해서 절반으로 줄이는 과정이 없다.
  • ③ 오답. 주어진 배열은 길이가 양수이므로 첫 원소를 읽을 수 있다.
  • ④ 오답. 모든 원소를 순회하지 않는다.

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

23. 개발·시험 담당자가 다음 사례를 검토한다. DRM의 콘텐츠 이용 통제 기술과 관련성이 가장 낮은 방침을 고르면?

  1. 네트워크 경계 패킷을 차단하는 방화벽 정책
  2. 무단 복제 방지
  3. 라이선스 정책 관리
  4. 콘텐츠 암호화와 키 관리
정답과 해설 보기

정답: 1

정답은 ①이다. DRM은 보호된 콘텐츠의 암호화, 라이선스 발급과 이용 조건 확인 등을 통해 재생·사용 권한을 통제한다. 네트워크 경계에서 패킷을 허용하거나 차단하는 방화벽 정책은 통신 접근 통제가 주목적이므로 보기 중 콘텐츠 이용 권리와의 직접 관련성이 가장 낮다.

방화벽이 DRM 서버를 보호할 수는 있지만 그것만으로 콘텐츠의 재생 기간이나 복사 권한이 정해지지는 않는다. DRM의 복제 방지도 모든 파일 복사를 물리적으로 불가능하게 한다는 의미보다 무단 이용과 복호화를 제한하는 관점으로 이해해야 한다.

선지별 해설

  • ① 정답. 네트워크 트래픽 통제가 주목적이며 콘텐츠 라이선스 자체와 구별된다.
  • ② 오답. 무단 복제·이용 억제는 DRM의 목적과 관련된다.
  • ③ 오답. 이용 권한과 조건은 라이선스 정책으로 관리한다.
  • ④ 오답. 콘텐츠 암호화와 키 관리는 보호 구조의 핵심이다.

편집 해설 근거: Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — How does Microsoft PlayReady work?; NIST SP 800-41 Rev.1, Guidelines on Firewalls and Firewall Policy (2009) — §2 Overview of Firewall Technologies

24. 개발·시험 담당자가 다음 사례를 검토한다. 제어 흐름 그래프가 노드 9개, 간선 11개인 하나의 연결 성분이다. 순환 복잡도 E-N+2는?

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

정답: 1

정답은 ① 4다. 하나의 연결된 제어 흐름 그래프에 문제에서 제시한 식을 적용하면 V(G)=E−N+2=11−9+2=4가 된다. 여기서 E는 간선 수, N은 노드 수다. 간선 수와 노드 수의 차이인 2에서 계산을 끝내면 안 된다.

이 값은 그래프에서 선형 독립적인 경로의 기저 크기와 연결되는 구조적 복잡도다. 실행 가능한 모든 경로가 딱 네 개라는 뜻은 아니며, 반복문이나 조건 사이의 제약에 따라 실제 실행 가능한 경로는 별도로 검토해야 한다.

선지별 해설

  • ① 정답. 11−9+2=4다.
  • ② 오답. 마지막 보정항 +2를 빠뜨린 값이다.
  • ③ 오답. 노드 수를 그대로 답한 값이다.
  • ④ 오답. 간선과 노드를 더한 값이며 주어진 공식과 다르다.

편집 해설 근거: NIST SP 500-235, Structured Testing (1996) — §2 Cyclomatic Complexity and Basis Path Testing

25. 역사적 프로토콜을 포함한 다음 보기 중, 주된 목적이 통신 보호가 아니라 전자우편 전송인 것은?

[학습용 개정문항]

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

정답: 2

정답은 ② SMTP다. SMTP는 전자우편을 전송하는 프로토콜이며, 기본 프로토콜 자체가 모든 메일 내용을 암호화하는 보안 계층은 아니다. 실제 메일 전송에서는 TLS 같은 별도 보호 수단과 함께 사용할 수 있다.

TLS는 통신 채널을, IPsec은 IP 계층 통신을 보호한다. S-HTTP는 HTTP 메시지 보호를 위해 제안되었던 역사적 프로토콜로, 오늘날 널리 쓰이는 HTTPS와 같은 이름이 아니다. 오래된 보안 기술의 존재를 묻는 것과 현재 도입을 권장하는 것은 구별해야 한다.

선지별 해설

  • ① 오답. TLS의 주목적은 통신 채널의 보호다.
  • ② 정답. SMTP의 주목적은 메일 전송이며 자체적으로 보안 계층을 뜻하지 않는다.
  • ③ 오답. S-HTTP는 메시지 보호 목적의 역사적 프로토콜이다.
  • ④ 오답. IPsec은 IP 계층에 보안 서비스를 제공한다.

편집 해설 근거: IETF RFC 5321, Simple Mail Transfer Protocol (2008) — §1 Introduction; IETF RFC 8446, TLS 1.3 (2018) — §1 Introduction; IETF RFC 2660, Secure HTTP (1999), 현재 Historic 분류 — Abstract; Status; IETF RFC 4301 — IPsec architecture — §2 Design Objectives

26. Microsoft PlayReady의 논리적 아키텍처에서 구성 요소의 기본 역할을 잘못 연결한 것은? 하나의 서비스가 여러 역할을 겸하는 구현은 별도로 본다.

[학습용 개정문항]

  1. 라이선스 서버 — 콘텐츠 이용 권한을 담은 라이선스를 제공한다.
  2. 클라이언트 — 라이선스를 취득하고 이용 조건에 따라 콘텐츠를 사용한다.
  3. 패키징 서버 — 보호할 콘텐츠를 암호화하고 DRM 정보를 결합한다.
  4. 배포 서버 — 원본 암호화와 DRM 헤더 삽입이 고유한 핵심 역할이다.
정답과 해설 보기

정답: 4

정답은 ④이다. PlayReady 아키텍처에서 원본을 암호화하고 보호 정보를 붙이는 역할은 패키징 서버가 담당한다. 배포 서버의 기본 역할은 만들어진 콘텐츠를 저장하고 클라이언트에 전달하는 것이다. 따라서 역할 이름과 핵심 처리를 뒤바꾼 ④가 부적절하다.

라이선스 서버는 이용 권한을 담은 라이선스를 제공하고 클라이언트는 이를 취득하여 허용된 방식으로 재생한다. 실제 서비스에서는 한 조직이나 프로그램이 여러 역할을 겸할 수 있지만, 개념적인 역할 분류까지 같아지는 것은 아니다.

선지별 해설

  • ① 오답. 라이선스 서버의 기본 역할에 맞는 연결이다.
  • ② 오답. 클라이언트는 라이선스 조건을 적용하며 콘텐츠를 사용한다.
  • ③ 오답. 패키징 단계에서 콘텐츠 암호화와 보호 정보 결합을 수행한다.
  • ④ 정답. 설명된 핵심 처리는 배포 서버보다 패키징 서버에 해당한다.

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

27. 개발·시험 담당자가 다음 사례를 검토한다. Windows와 Linux에 같은 프로그램 패키지를 배포하려 한다. 패키징 설계 원칙으로 부적절한 것은?

  1. 플랫폼별 암호화 API와 키 저장 방식의 차이를 검토한다.
  2. 배포 파일의 무결성과 출처를 확인할 서명·해시 검증을 제공한다.
  3. 한 운영체제의 절대 경로와 권한 모델만 가정하고 다른 환경의 설치 차이는 고려하지 않는다.
  4. 사용자가 선택해야 할 옵션과 오류 메시지를 단순하고 일관되게 구성한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 서로 다른 운영체제에 배포하려면 경로 규칙, 실행 권한, 필요한 라이브러리와 설치 위치 등의 차이를 확인해야 한다. 한 운영체제의 조건만 고정하면 다른 환경에서 설치·실행이 실패할 수 있다. 같은 프로그램이라도 플랫폼에 맞는 패키지가 필요할 수 있다.

배포 파일의 해시는 신뢰할 수 있는 기준값과 비교해야 의미가 있고, 출처 확인에는 신뢰하는 키로 검증한 서명 등을 사용할 수 있다. 일관된 옵션과 이해 가능한 오류 안내는 설치 과정의 사용성을 높인다.

선지별 해설

  • ① 오답. 보안 API와 키 저장소 차이는 플랫폼 호환성 검토 대상이다.
  • ② 오답. 신뢰할 수 있는 서명·해시 검증은 배포 파일 확인에 도움이 된다.
  • ③ 정답. 다른 운영체제의 경로·권한·설치 조건을 무시한다.
  • ④ 오답. 일관된 옵션과 안내는 사용자 실수를 줄이는 데 도움이 된다.

편집 해설 근거: Python Packaging User Guide — Platform compatibility tags — Overview; Platform Tag; Python Packaging User Guide — Binary distribution format — Recommended installer features — Generate script wrappers; file permissions; NIST SP 800-218 — Secure Software Development Framework v1.1 — PS.2 Verify Software Release Integrity — PS.2.1

28. 개발·시험 담당자가 다음 사례를 검토한다. 자료구조의 분류와 동작에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 큐는 한 노드가 여러 하위 노드로 갈라지는 비선형 구조다.
  2. 큐는 먼저 삽입된 항목을 먼저 제거하는 FIFO 방식이다.
  3. 스택은 마지막에 삽입된 항목을 먼저 제거하는 LIFO 방식이다.
  4. 스택은 함수 호출의 복귀 주소와 지역 상태 관리에 활용된다.
정답과 해설 보기

정답: 1

정답은 ①이다. 일반적인 큐는 원소가 순서를 이루는 선형 자료구조이며, 삽입된 순서대로 제거하는 FIFO 규칙을 따른다. 한 노드 아래 여러 하위 노드가 갈라지는 계층 구조는 트리의 특징에 가깝다.

스택은 한쪽 끝에서 넣고 빼므로 가장 최근에 넣은 원소가 먼저 나온다. 함수 호출에서도 호출자의 복귀 정보와 각 호출의 지역 상태를 쌓았다 되돌리는 데 스택 구조를 활용한다. 배열이나 연결 리스트는 이 추상 동작을 구현하는 방법으로, 선형·비선형 분류와 별개의 관점이다.

선지별 해설

  • ① 정답. 큐를 트리처럼 갈라지는 비선형 구조로 잘못 설명했다.
  • ② 오답. 일반적인 큐의 FIFO 규칙은 맞다.
  • ③ 오답. 스택의 LIFO 규칙은 맞다.
  • ④ 오답. 호출 중첩과 복귀 상태 관리에 스택을 활용할 수 있다.

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

29. 빈 스택에 A, B, C, D를 이 순서대로 한 번씩 넣는다. 입력 순서를 지키면서 push와 pop을 교차할 수 있고, 각 원소를 정확히 한 번 출력한다. 불가능한 출력 순서는?

[학습용 개정문항]

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

정답: 3

정답은 ③ D, B, C, A다. D를 맨 먼저 출력하려면 A, B, C, D를 모두 차례로 넣은 뒤 D를 꺼내야 한다. 이때 스택 위에는 C가 있고 B는 그 아래에 있으므로 C보다 B를 먼저 꺼낼 수 없다.

①은 A·B를 넣고 B를 꺼낸 뒤 C와 D를 각각 넣자마자 꺼내고 마지막 A를 꺼내면 된다. ②는 A·B·C를 넣고 C·B·A를 꺼낸 다음 D를 처리하면 된다. ④는 네 원소를 모두 넣고 거꾸로 꺼내면 된다. 핵심은 입력 순서는 고정하되 push와 pop을 교차할 수 있다는 조건이다.

선지별 해설

  • ① 오답. B·C·D를 각각 적절한 시점에 꺼내고 A를 마지막에 꺼낼 수 있다.
  • ② 오답. C·B·A를 꺼낸 다음 D를 넣고 꺼내면 가능하다.
  • ③ 정답. D 다음에는 C가 위에 있으므로 B를 먼저 꺼낼 수 없다.
  • ④ 오답. 모든 입력 뒤 역순으로 꺼내면 가능하다.

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

30. 개발·시험 담당자가 다음 사례를 검토한다. 주문 금액 계산 모듈 하나만 격리해 단위 테스트한다. 이 단계만으로 발견하기 가장 어려운 결함은?

  1. 결제 모듈과 주문 모듈이 서로 다른 통화 코드 형식을 주고받는 통합 결함
  2. 음수 입력의 예외 처리가 누락된 결함
  3. 할인율 계산식에서 곱셈과 덧셈 순서를 잘못 적용한 결함
  4. 특정 입력에서 반복문 종료 조건이 갱신되지 않는 결함
정답과 해설 보기

정답: 1

정답은 ①이다. 계산 모듈 하나를 격리하면 그 모듈의 입력 검증, 산술식, 반복 종료 조건은 직접 시험할 수 있다. 그러나 실제 결제 모듈과 연결했을 때 사용하는 통화 코드가 서로 맞는지는 두 구성 요소의 상호작용을 확인해야 드러나기 쉽다.

단위 시험에서 대역을 이용해 약속된 인터페이스를 점검할 수는 있다. 다만 대역이 잘못된 가정을 공유하면 실제 상대 모듈의 차이를 놓칠 수 있다. 따라서 단위 시험만 통과했다는 이유로 통합 인터페이스까지 정상이라고 결론 내리지 않는다.

선지별 해설

  • ① 정답. 실제 모듈 사이의 데이터 형식 계약을 통합 단계에서 확인해야 한다.
  • ② 오답. 음수 입력을 주어 해당 모듈의 예외 처리를 시험할 수 있다.
  • ③ 오답. 정해진 입력과 기대 금액을 비교하여 계산식 오류를 찾을 수 있다.
  • ④ 오답. 반복 종료 조건은 해당 모듈 안에서 직접 시험할 수 있다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing; §2.2.2 Integration Testing

31. 개발·시험 담당자가 다음 사례를 검토한다. 정렬 배열 [8, 11, 14, 17, 20, 23, 26]을 이진 탐색하여 23을 찾는다. 중앙 원소 비교 횟수는?

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

정답: 1

정답은 ① 2회다. 원소가 일곱 개이므로 첫 중앙 원소는 네 번째 값 17이다. 찾는 값 23이 더 크므로 오른쪽 구간 [20, 23, 26]만 남긴다. 그 구간의 중앙 값 23과 두 번째로 비교하면 검색이 끝난다.

전체 배열이나 축소된 구간의 다른 원소와 먼저 비교할 필요는 없다. 여기서 횟수는 문제에 명시된 중앙 원소를 조사한 횟수이며, 프로그램 내부의 크기 비교·동등 비교 연산을 각각 세는 횟수가 아니다. 정렬된 자료라는 전제가 탐색 범위를 줄이는 근거다.

선지별 해설

  • ① 정답. 중앙 원소 17, 23을 차례로 조사한다.
  • ② 오답. 최초 중앙 값은 23이 아니라 17이다.
  • ③ 오답. 두 번째 중앙 값에서 이미 찾는다.
  • ④ 오답. 불필요한 추가 탐색을 센 값이다.

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

32. 다음 중 주된 목적이 시험 입력값을 도출하는 것이 아니라, 시험 대상을 호출하거나 주변 모듈을 대신하는 실행 환경을 구성하는 것은?

[학습용 개정문항]

  1. 통합 시험에서 미완성 모듈을 대신하는 스텁과 드라이버 구성
  2. 입력 도메인의 동치 구간과 경계 분석
  3. 제약 범위 안에서 무작위 값 생성
  4. 자료 흐름을 분석해 정의-사용 경로 값 생성
정답과 해설 보기

정답: 1

정답은 ①이다. 스텁은 호출되는 미완성 구성 요소를 대신하고, 드라이버는 시험 대상을 호출하는 역할을 한다. 이들을 구성하는 주된 목적은 시험 대상 주변의 실행 환경을 마련하는 것이다.

동치 분할과 경계값 분석은 입력 영역을 나누어 대표값을 고르고, 무작위 생성은 정한 범위에서 값을 뽑는다. 자료 흐름 기반 시험은 변수의 정의와 사용 관계를 덮도록 실행 경로와 입력을 찾는다. 이런 기법은 입력 도출과 관련되지만 모두가 사람의 설계 없이 자동으로 완성된다는 뜻은 아니다.

선지별 해설

  • ① 정답. 시험 호출 환경과 대체 구성 요소를 마련하는 것이 주목적이다.
  • ② 오답. 동치 구간과 경계에서 시험 입력을 선택한다.
  • ③ 오답. 정한 범위에서 시험 입력값을 생성한다.
  • ④ 오답. 정의·사용 관계를 실행하도록 입력을 도출하는 접근이다.

편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.1 Component Testing; §4.2.1 Equivalence Partitioning; §4.2.2 Boundary Value Analysis; IEEE Computer Society, SWEBOK Guide V4.0a — Software Testing — Control Flow-Based and Data Flow-Based Techniques

33. 개발·시험 담당자가 다음 사례를 검토한다. 빈 스택에 A3, B33, C10을 차례로 push한 뒤 두 번 pop한다. 출력 순서는?

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

정답: 2

정답은 ② C10, B33이다. 빈 스택에 A3, B33, C10을 차례로 넣으면 아래에서 위로 A3 → B33 → C10이 쌓인다. 첫 pop은 가장 위의 C10을 제거하고, 두 번째 pop은 새로 최상단이 된 B33을 제거한다.

두 번 꺼낸 뒤에는 A3만 남는다. A3·B33·C10은 여기서 각 원소의 이름으로 취급하며, 이름 끝의 숫자 크기가 제거 순서를 정하지 않는다. 스택의 LIFO 규칙은 삽입 시점의 역순을 뜻하며 값을 정렬하는 규칙이 아니다.

선지별 해설

  • ① 오답. 최초 최상단인 C10보다 B33을 먼저 꺼낼 수 없다.
  • ② 정답. 마지막에 넣은 C10 다음에 B33이 나온다.
  • ③ 오답. C10 다음에는 A3가 아니라 B33이 있다.
  • ④ 오답. 먼저 넣은 A3부터 꺼내는 FIFO식 순서다.

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

34. [16, 12, 14, 18]을 오름차순 삽입 정렬한다. 첫 원소 하나를 정렬된 부분으로 두고 두 번째 원소를 삽입하는 첫 회전의 결과는?

[학습용 개정문항]

  1. [12, 14, 16, 18]
  2. [16, 12, 18, 14]
  3. [16, 14, 12, 18]
  4. [12, 16, 14, 18]
정답과 해설 보기

정답: 4

정답은 ④ [12, 16, 14, 18]이다. 오름차순 삽입 정렬에서는 처음 원소 16 하나를 정렬된 부분으로 본다. 첫 회전에서 다음 값 12를 꺼내 16과 비교하고, 16을 오른쪽으로 옮긴 자리에 12를 넣는다.

첫 회전이 끝나면 앞의 두 원소만 정렬되어 있고 뒤의 14와 18은 아직 처리하지 않았다. 다음 회전에서야 14를 앞의 정렬 구간에 삽입한다. 처음부터 전체 배열을 완성된 순서로 쓰거나 처리하지 않은 뒤 원소를 바꾸는 것은 한 회전의 결과가 아니다.

선지별 해설

  • ① 오답. 뒤의 14까지 처리한 결과이며 첫 회전보다 많이 진행했다.
  • ② 오답. 첫 회전에서 처리하지 않는 14와 18을 바꿨다.
  • ③ 오답. 두 번째 원소 12를 앞의 정렬 구간에 삽입하지 않았다.
  • ④ 정답. 12를 16 앞으로 삽입한 첫 회전 결과다.

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

35. 피벗과 나머지 원소를 한 번씩 비교하여 분할한 뒤 재귀적으로 정렬한다. 매번 한쪽 부분이 비는 최악의 경우 비교 횟수가 (n-1)+(n-2)+…+1이 되는 이 정렬 방식은?

[학습용 개정문항]

  1. Quick Sort
  2. Selection Sort
  3. Bubble Sort
  4. Insertion Sort
정답과 해설 보기

정답: 1

정답은 ① Quick Sort다. 퀵 정렬은 피벗을 기준으로 자료를 분할하고 각 부분에 같은 방법을 재귀적으로 적용한다. 문제의 구현에서 매번 피벗이 최솟값이나 최댓값이 되어 한쪽에 나머지 원소가 모두 몰리면 분할 크기는 n−1, n−2, …, 1로 줄어든다.

각 단계에서 남은 원소를 피벗과 한 번씩 비교하므로 총합은 (n−1)+(n−2)+…+1=n(n−1)/2이다. 피벗 선택과 분할 구현에는 여러 변형이 있으므로 이 정확한 비교 횟수를 모든 퀵 정렬 구현에 무조건 적용하지는 않는다.

선지별 해설

  • ① 정답. 피벗에 의한 분할 정복이 퀵 정렬의 특징이다.
  • ② 오답. 선택 정렬은 미정렬 부분에서 최솟값 등을 골라 옮긴다.
  • ③ 오답. 버블 정렬은 주로 인접한 원소를 비교·교환한다.
  • ④ 오답. 삽입 정렬은 다음 원소를 앞의 정렬 구간에 삽입한다.

편집 해설 근거: NIST DADS, quicksort — Definition; Note

36. 개발·시험 담당자가 다음 사례를 검토한다. 클린 코드의 추상화 원칙을 설명한 것으로 적절하지 않은 설명을 고르면?

  1. 세부 구현은 상위 수준에 두고 하위 함수 이름에는 모든 구현 단계를 노출해야 한다.
  2. 한 함수가 불필요하게 다른 모듈 내부에 의존하지 않게 한다.
  3. 이름과 제어 흐름을 읽기 쉽게 작성한다.
  4. 반복되는 로직은 의미 있는 공통 단위로 추출한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 추상화는 사용하는 쪽이 필요한 의미와 계약에 집중하도록 구현 세부 사항을 감추는 데 도움이 된다. 상위 코드에 모든 처리 단계를 노출하고 하위 함수 이름에 내부 구현을 전부 나열하면 변경 영향과 읽기 부담이 커진다.

의미 있는 이름으로 기능을 묶고 불필요한 내부 의존을 줄이면 코드의 목적을 이해하기 쉬워진다. 다만 글자가 비슷한 코드라는 이유만으로 무조건 공통 함수로 합치기보다, 같은 책임과 변경 이유를 가진 로직인지 살펴 적절한 추상화 수준을 정해야 한다.

선지별 해설

  • ① 정답. 구현 세부를 상위 계층에 노출하도록 권장하여 추상화 취지에 어긋난다.
  • ② 오답. 불필요한 내부 의존을 줄이는 것은 변경 영향을 줄이는 방향이다.
  • ③ 오답. 의미 있는 이름과 읽기 쉬운 흐름은 이해를 돕는다.
  • ④ 오답. 의미 있는 공통 책임을 추출하는 것은 추상화에 도움이 된다.

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

37. 개발·시험 담당자가 다음 사례를 검토한다. 순서가 있는 리스트에서 데이터의 삽입(push), 삭제(pop)가 한 쪽 끝에서 일어나며 LIFO(Last-In-First-Out)의 특징을 가지는 자료 구조는?

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

정답: 2

정답은 ② Stack이다. 스택에서는 같은 끝에서 push와 pop이 이루어지므로 가장 나중에 삽입한 항목이 가장 먼저 제거된다. 이것이 후입선출, 즉 LIFO다. 예를 들어 A 다음 B를 넣고 한 번 꺼내면 B가 나온다.

큐는 먼저 넣은 것을 먼저 꺼내는 FIFO가 기본 규칙이다. 그래프는 정점과 간선 사이의 관계를, 트리는 계층 구조를 표현한다. 스택을 배열이나 연결 리스트로 구현할 수 있지만 구현 저장 방식이 달라도 질문의 LIFO 동작 규칙은 같다.

선지별 해설

  • ① 오답. 그래프는 정점과 간선의 연결 관계를 표현한다.
  • ② 정답. 한쪽 끝의 삽입·제거와 LIFO가 스택의 특징이다.
  • ③ 오답. 일반적인 큐는 FIFO 규칙을 따른다.
  • ④ 오답. 트리는 부모·자식 관계를 가진 계층 구조다.

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

38. 프로그램 내부 구조를 기준으로 입력을 정해 실제 실행하는 화이트박스 시험에 관한 설명 중 부적절한 것은?

[학습용 개정문항]

  1. 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.
  2. 테스트 데이터를 선택하기 위하여 검증 기준(Test Coverage) 을 정한다.
  3. 화이트박스 테스트의 이해를 위해 논리 흐름도(Logic-Flow Diagram)를 이용할 수 있다.
  4. 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(DynamicTest)에 해당한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 내부 구조 기반 실행 시험에서는 코드의 문장이나 결정 구조 등 어떤 부분을 실행했는지 기준을 정하고 그 기준을 만족하는 입력을 선택한다. 구조를 고려하지 않고 요구·명세만으로 입력을 결정한다는 ①은 블랙박스 접근에 해당한다.

제어 흐름도는 경로를 이해하는 데 도움이 되고, 문장·분기 커버리지는 시험이 덮은 구조를 측정한다. 커버리지 수치가 높아도 모든 요구가 구현되었다거나 결함이 없다는 보장은 없다. 여기서는 실제 실행하는 시험을 묻고 있으므로 정적 코드 검토와도 구분한다.

선지별 해설

  • ① 정답. 내부 구조를 사용하지 않는 명세 기반 접근을 설명한다.
  • ② 오답. 문장·분기 등 구조적 커버리지를 기준으로 삼을 수 있다.
  • ③ 오답. 논리 흐름도는 제어 구조와 경로 이해에 도움이 된다.
  • ④ 오답. 지문은 데이터를 넣어 코드를 실행하는 동적 시험을 대상으로 한다.

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

39. 개발·시험 담당자가 다음 사례를 검토한다. 다음과 같이 레코드가 구성되어 있을 때, 이진 검색 방법으로 14를 찾을 경우 비교되는 횟수는? 레코드: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

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

정답: 3

정답은 ③ 3회다. 1부터 15까지 정렬되어 있으므로 첫 중앙 값은 8이다. 14는 8보다 크므로 9부터 15까지로 범위를 줄이면 중앙은 12다. 다시 오른쪽 13부터 15까지에서 중앙 값 14를 찾아 세 번째 조사에서 종료한다.

방문한 중앙 값은 8 → 12 → 14다. 이진 검색은 정렬 상태를 이용해 절반을 제외하며 순서대로 모든 값을 읽지 않는다. 여기서 비교 횟수는 중앙 원소를 조사한 횟수이고, 실제 코드의 각 비교 연산자 실행 횟수를 합친 값과 구별한다.

선지별 해설

  • ① 오답. 세 번째 중앙 값에서 이미 검색을 끝낸다.
  • ② 오답. 두 번째 중앙 값은 목표값이 아니라 12다.
  • ③ 정답. 8, 12, 14의 세 중앙 원소를 조사한다.
  • ④ 오답. 목표값을 찾은 뒤 추가 조사가 필요하지 않다.

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

40. 개발·시험 담당자가 다음 사례를 검토한다. DBMS의 필수 기능 중 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터 타입과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능은?

  1. 정의 기능
  2. 조작 기능
  3. 제어 기능
  4. 절차 기능
정답과 해설 보기

정답: 1

정답은 ① 정의 기능이다. 어떤 테이블과 열을 만들고 각 열에 어떤 자료형·제약 조건을 적용할지 명세하는 것은 데이터베이스 구조를 정의하는 일이다. SQL에서는 CREATE TABLE 등 DDL로 이러한 스키마를 표현한다.

이미 정의된 구조에서 행을 조회·추가·수정·삭제하는 일은 데이터 조작에 해당한다. 접근 권한이나 무결성·동시 사용 등을 관리하는 제어 관점과도 구별해야 한다. 지문은 데이터 값 한 건을 처리하는 것이 아니라 저장할 데이터의 형식과 규칙을 정하는 기능을 묻는다.

선지별 해설

  • ① 정답. 자료형·구조·제약 조건을 명세하는 기능이다.
  • ② 오답. 조작은 주로 기존 구조의 데이터 조회·변경을 다룬다.
  • ③ 오답. 지문의 핵심은 권한이나 동시성 제어보다 스키마 정의다.
  • ④ 오답. 이 분류에서 구조를 명세하는 표준적인 기능명은 정의 기능이다.

편집 해설 근거: PostgreSQL 18: Data Definition — Chapter 5 Data Definition — Table Basics and Constraints

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

41. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션의 특성 중 다음 설명에 해당하는 항목을 고르면? 트랜잭션의 연산은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 한다.

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

정답: 3

정답은 ③ Atomicity(원자성)다. 하나의 트랜잭션으로 묶은 변경은 모두 성공하여 반영되거나, 실패하면 그 묶음의 변경이 반영되지 않도록 처리한다. 예를 들어 계좌 이체에서 출금만 남고 입금은 사라지는 중간 상태를 최종 결과로 허용하지 않는 성질이다.

일관성은 트랜잭션 전후에 정해진 데이터 규칙을 유지하는 성질이며, 지속성은 성공적으로 확정된 결과를 보존하는 성질이다. 원자성과 지속성은 모두 중요하지만 지문의 핵심인 전부 또는 전무는 원자성을 직접 가리킨다.

선지별 해설

  • ① 오답. Share는 ACID의 해당 특성명이 아니다.
  • ② 오답. Consistency는 정해진 무결성 규칙을 유지하는 일관성이다.
  • ③ 정답. 묶음 전체가 반영되거나 전혀 반영되지 않는 원자성이다.
  • ④ 오답. Durability는 확정된 결과의 보존을 뜻한다.

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

42. 전통적인 Chen 방식의 E-R 다이어그램에서 기본 요소와 도형의 연결이 틀린 것은?

[학습용 개정문항]

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

정답: 1

정답은 ①이다. 전통적인 Chen ER 표기에서 속성은 타원으로 표현한다. 오각형이라는 연결은 틀렸다. 개체 타입은 사각형, 관계 타입은 마름모로 표시하고 관련 요소를 선으로 연결한다.

예를 들어 학생이라는 사각형에 학번이라는 타원을 연결하면 학생의 속성을 나타낼 수 있다. ER 도구에 따라 Crow’s Foot 등 다른 표기를 사용하기도 하므로 모든 모델링 도구가 반드시 같은 도형을 쓰는 것은 아니다. 이 문제는 명시된 Chen 방식의 기본 도형을 묻는다.

선지별 해설

  • ① 정답. 속성의 기본 도형은 오각형이 아니라 타원이다.
  • ② 오답. 요소 사이 연결을 선으로 표현하는 것은 맞다.
  • ③ 오답. 개체 타입은 사각형으로 나타낸다.
  • ④ 오답. 관계 타입은 마름모로 나타낸다.

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

43. 데이터베이스 설계자가 다음 조건을 확인한다. 두 트랜잭션이 주문 행의 같은 버전 값 7을 읽은 뒤 각각 수정했다. 먼저 한 트랜잭션이 버전 8로 갱신한 상황에서, 나중 트랜잭션의 오래된 값 덮어쓰기를 직접 탐지하고 막는 방법으로 가장 적절한 것은?

  1. 현재 버전을 다시 확인하지 않고 나중 요청의 값으로 항상 덮어쓴다.
  2. 잠금 대기 제한시간만 늘린다.
  3. 트랜잭션 격리 수준을 READ UNCOMMITTED로 낮춘다.
  4. UPDATE의 조건에 version = 7을 포함하고 영향받은 행 수가 0이면 충돌로 처리한다.
정답과 해설 보기

정답: 4

정답은 ④이다. 읽었던 버전 7을 UPDATE의 조건에 포함하면 현재 행이 아직 그 버전일 때만 변경된다. 첫 요청이 이미 버전을 8로 올렸다면 두 번째 요청의 version=7 조건에 맞는 행이 없어 영향받은 행 수는 0이 된다. 이를 충돌로 처리하면 오래된 값으로 덮어쓰는 일을 막을 수 있다.

버전 검사는 실제 변경과 하나의 조건부 UPDATE 안에서 수행하고 성공 시 버전도 올려야 한다. 충돌 후에는 최신 데이터를 다시 읽어 재판단하거나 사용자에게 알린다. 별도 SELECT로 확인한 뒤 무조건 UPDATE하면 그 사이에 또 변경될 수 있다.

선지별 해설

  • ① 오답. 무조건 덮어쓰면 먼저 완료된 수정이 사라질 수 있다.
  • ② 오답. 대기 시간 변경만으로 읽은 버전과 현재 버전의 차이를 검사하지 못한다.
  • ③ 오답. 격리 수준을 낮추는 것이 버전 충돌 확인을 대신하지 않는다.
  • ④ 정답. 변경 시점의 버전을 조건으로 검사하고 실패한 갱신을 감지한다.

편집 해설 근거: PostgreSQL 18 — UPDATE — Description — WHERE; Outputs — UPDATE count; PostgreSQL 18 — Transaction Isolation — §13.2.1 Read Committed Isolation Level

44. 관계 모델의 논리적 릴레이션에 대한 설명으로 틀린 것은? 중복 행을 허용하는 일반 SQL 결과와는 구분한다.

[학습용 개정문항]

  1. 삽입과 삭제에 따라 현재 튜플 집합은 시간에 따라 달라질 수 있다.
  2. 한 릴레이션에는 논리적으로 완전히 동일한 튜플이 중복되지 않는다.
  3. 제1정규형에서는 각 속성 위치에 원자값을 저장한다.
  4. 튜플은 저장된 물리 주소 순서대로 조회되어야 하며 그 순서가 릴레이션 의미의 일부다.
정답과 해설 보기

정답: 4

정답은 ④이다. 관계 모델에서 릴레이션은 튜플의 집합이며 집합의 의미는 행을 어떤 물리적 순서로 저장했는지에 좌우되지 않는다. SQL 조회에서도 순서를 보장하려면 ORDER BY를 명시해야 하며, 한 번 관찰한 반환 순서가 다음에도 유지된다고 가정하지 않는다.

논리적인 집합에는 동일 튜플이 중복되지 않고, 제1정규형의 각 속성 위치에는 해당 도메인의 원자값을 둔다. 실제 SQL은 중복 행을 허용하는 테이블·결과도 다룰 수 있으므로 관계 모델의 집합 성질과 SQL의 모든 실행 결과를 그대로 동일시하지 않는다.

선지별 해설

  • ① 오답. 삽입·삭제에 따라 현재 튜플 집합은 바뀔 수 있다.
  • ② 오답. 논리적 집합에는 동일한 튜플을 중복 원소로 세지 않는다.
  • ③ 오답. 제1정규형의 원자값 조건에 맞는 설명이다.
  • ④ 정답. 물리적 행 순서는 릴레이션의 논리적 의미가 아니다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model — relation as a set of tuples; PostgreSQL 18 — SELECT — Description — ORDER BY

45. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 함수 종속으로부터 X → Z를 도출할 때 적용한 추론 규칙은? X → Y Y → Z ────── X → Z

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

정답: 1

정답은 ① 이행 규칙이다. X 값이 같으면 함수 종속 X→Y에 의해 Y 값도 같고, 다시 Y→Z에 의해 Z 값도 같다. 따라서 X 값이 같은 두 튜플은 Z 값도 같아야 하므로 X→Z가 성립한다.

반사 규칙은 Y가 X의 부분집합일 때 X→Y가 성립한다는 규칙이다. 결합은 X→Y와 X→Z를 X→YZ로 합치며, 분해는 X→YZ에서 X→Y와 X→Z를 얻는다. 함수 종속은 단순히 한 번 관찰한 데이터의 우연한 중복이 아니라 허용되는 릴레이션 상태에 대한 제약으로 판단한다.

선지별 해설

  • ① 정답. X→Y와 Y→Z를 이어 X→Z를 도출한다.
  • ② 오답. 반사는 결정자 안에 포함된 속성을 다룬다.
  • ③ 오답. 결합은 같은 결정자의 종속 속성을 합친다.
  • ④ 오답. 분해는 종속되는 속성 집합을 나눈다.

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

46. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터베이스 물리 설계 단계의 작업으로 보기 어려운 것은?

[학습용 개정문항]

  1. 인덱스와 파티션 등 접근 경로를 정한다.
  2. 업무 요구에서 개체와 관계를 찾아 DBMS 독립적인 개념 모델을 처음 작성한다.
  3. 페이지와 레코드의 저장 형식을 결정한다.
  4. 함께 조회되는 레코드의 군집 배치를 검토한다.
정답과 해설 보기

정답: 2

정답은 ②이다. 업무에서 필요한 개체와 그 관계를 파악해 DBMS 독립적인 개념 모델을 처음 만드는 일은 개념 설계에 해당한다. 물리 설계는 주어진 스키마와 업무 부하를 바탕으로 실제 저장과 접근 방법을 결정하는 단계다.

어떤 열에 인덱스를 둘지, 파티션을 어떻게 나눌지, 함께 읽는 레코드를 가까이 배치할지 등이 성능과 저장 효율에 영향을 준다. 성능 검토 중 논리 구조를 다시 조정할 수도 있지만, 그 사실이 최초의 업무 개념 모델링을 물리 설계의 대표 작업으로 바꾸지는 않는다.

선지별 해설

  • ① 오답. 인덱스·파티션 등 접근 경로는 물리 설계의 주요 대상이다.
  • ② 정답. 업무 개체와 관계의 최초 모델링은 개념 설계다.
  • ③ 오답. 저장 형식은 실제 저장 구조를 정하는 작업이다.
  • ④ 오답. 군집 배치는 함께 접근하는 데이터의 물리 배치를 다룬다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Overview; Decisions to Make; Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — Database Design — Conceptual design

47. PostgreSQL 18의 뷰 관리에 관한 설명 중 부적절한 것은?

[학습용 개정문항]

  1. 기본 객체 제거 시 종속 뷰 처리는 CASCADE·RESTRICT 정책의 영향을 받는다.
  2. 기존 뷰를 바탕으로 다른 뷰를 만들 수 있다.
  3. 집계나 조인을 포함한 뷰는 자동 갱신이 제한될 수 있다.
  4. ALTER VIEW 뷰이름 ADD COLUMN으로 뷰의 정의 질의를 수정한다.
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL 18의 ALTER VIEW는 뷰의 이름·소유자·기본값 등의 부가 속성을 바꾸는 명령이며 ADD COLUMN으로 정의 질의를 고치지 않는다. 정의 질의를 바꾸려면 기존 출력 열에 관한 제약을 만족하는 CREATE OR REPLACE VIEW 등을 사용한다.

기본 객체 제거 시 종속 객체의 처리는 CASCADE·RESTRICT와 의존 관계에 영향을 받는다. 다른 뷰를 기반으로 뷰를 만들 수도 있다. 집계나 조인 뷰는 단순 뷰와 달리 자동 갱신 조건을 만족하지 않을 수 있으므로 모든 뷰를 테이블처럼 자유롭게 수정한다고 가정해서는 안 된다.

선지별 해설

  • ① 오답. 종속 객체 처리에는 CASCADE·RESTRICT 정책이 적용된다.
  • ② 오답. 뷰의 질의에서 다른 뷰를 참조할 수 있다.
  • ③ 오답. 집계·조인은 자동 갱신 가능성에 제한을 줄 수 있다.
  • ④ 정답. PostgreSQL 18에 해당 ALTER VIEW ADD COLUMN 문법은 없다.

편집 해설 근거: PostgreSQL 18 — ALTER VIEW — Synopsis; Description; PostgreSQL 18 — CREATE VIEW — Description; Updatable Views; PostgreSQL 18, DROP VIEW — Parameters — CASCADE and RESTRICT

48. 데이터베이스 설계자가 다음 조건을 확인한다. DBA가 사용자 PARK에게 테이블 [STUDENT]의 데이터를 갱신할 수 있는 권한을 부여하고자 한다. 다음 SQL문의 빈칸을 알맞게 채운 것은? GRANT ㉠ ㉡ STUDENT TO PARK;

  1. ㉠ INSERT, ㉡ INTO
  2. ㉠ ALTER, ㉡ TO
  3. ㉠ UPDATE, ㉡ ON
  4. ㉠ REPLACE, ㉡ IN
정답과 해설 보기

정답: 3

정답은 ③ UPDATE, ON이다. 완성된 명령은 GRANT UPDATE ON STUDENT TO PARK;다. UPDATE는 기존 데이터의 갱신 권한이고, ON 다음에는 권한을 적용할 객체, TO 다음에는 권한을 받을 사용자 또는 역할을 쓴다.

INSERT는 새 행을 추가하는 권한이므로 지문의 갱신과 다르다. 실제 UPDATE에서 조건이나 계산을 위해 특정 열을 읽는다면 SELECT 권한 등이 추가로 필요할 수 있다. 이 문제는 그 모든 실행 조건이 아니라 갱신 권한을 부여하는 GRANT 문법의 빈칸을 묻는다.

선지별 해설

  • ① 오답. INSERT는 새 행 추가 권한이며 GRANT의 객체 앞은 INTO가 아니다.
  • ② 오답. ALTER, TO의 연결은 제시된 갱신 권한 부여 문법이 아니다.
  • ③ 정답. GRANT UPDATE ON STUDENT TO PARK로 완성된다.
  • ④ 오답. REPLACE, IN은 이 GRANT 문장의 권한·객체 연결에 맞지 않는다.

편집 해설 근거: PostgreSQL 18, GRANT — Synopsis — GRANT on tables; Description — UPDATE

49. 데이터베이스 설계자가 다음 조건을 확인한다. 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발·운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법은?

  1. 반정규화
  2. 집단화
  3. 머징
  4. 정규화
정답과 해설 보기

정답: 1

정답은 ① 반정규화다. 정규화로 분리한 자료를 다시 합치거나 계산·조회 결과를 중복 보관하면 특정 조회의 조인이나 반복 계산을 줄일 수 있다. 이런 성능 요구에 따라 정규화된 설계를 의도적으로 조정하는 접근을 반정규화라고 한다.

반정규화에는 저장 공간 증가와 갱신 대상 증가, 사본 사이 불일치 같은 비용이 따른다. 따라서 무조건 성능이 좋아지는 규칙이 아니라 실제 작업 부하를 측정해 선택하는 설계 판단이다. 단순 병합이나 분리 작업이라는 이름만으로 목적과 정규화 수준의 변화를 모두 설명할 수는 없다.

선지별 해설

  • ① 정답. 성능 등을 위해 정규화된 구조를 의도적으로 조정하는 설계다.
  • ② 오답. 집단화는 지문의 반정규화 작업 전체를 가리키는 용어가 아니다.
  • ③ 오답. 병합은 사용할 수 있는 개별 작업이지만 전체 기법명은 아니다.
  • ④ 오답. 정규화는 주로 종속 관계에 따른 중복·이상 감소를 목표로 한다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Tuning the Conceptual Schema; Denormalization

50. 데이터베이스 설계자가 다음 조건을 확인한다. 제3정규형을 만족하는 릴레이션을 BCNF로 정규화할 때 추가로 확인해야 하는 조건은?

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

정답: 2

정답은 ②이다. BCNF에서는 모든 비자명 함수 종속 X→Y의 결정자 X가 슈퍼키여야 한다. X가 전체 튜플을 유일하게 식별하지 못하는데 다른 속성을 결정한다면 BCNF 위반을 검토하고 그 종속을 기준으로 분해할 수 있다.

3NF는 결정자가 슈퍼키가 아닌 경우에도 종속되는 속성이 후보키에 속하는 주요 속성이면 허용하는 예외가 있다. BCNF는 이 예외를 허용하지 않는다. 부분 종속과 이행 종속이라는 암기 순서만으로 판단하기보다 실제 함수 종속과 후보키를 확인해야 하며, BCNF 분해가 항상 모든 종속을 보존하는 것은 아니다.

선지별 해설

  • ① 오답. 다치 종속에 대한 조건은 주로 제4정규형과 관련된다.
  • ② 정답. 비자명 함수 종속의 결정자가 모두 슈퍼키여야 한다.
  • ③ 오답. 이행 종속이라는 표현만으로 3NF와 BCNF의 차이를 모두 설명하지 못한다.
  • ④ 오답. 부분 함수 종속 제거는 주로 제2정규형의 조건이다.

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

51. 데이터베이스 설계자가 다음 조건을 확인한다. 주문 테이블의 customer_id 검색을 빠르게 하려고 별도 키 구조를 만들되, 삽입·갱신 시 유지 비용이 추가되는 객체는?

  1. 트리거
  2. 인덱스
  3. 트랜잭션
  4. 반정규화 규칙
정답과 해설 보기

정답: 2

정답은 ② 인덱스다. customer_id 값을 검색 키로 삼는 별도 자료구조를 두면 조건에 맞는 행을 찾을 때 테이블 전체를 매번 훑는 비용을 줄일 수 있다. 그러나 행을 삽입하거나 해당 키 값을 바꾸면 인덱스도 함께 유지해야 한다.

인덱스는 추가 저장 공간을 사용하며 실제 이득은 선택도, 조회 빈도, 데이터 크기와 실행 계획에 따라 달라진다. 모든 열에 인덱스를 만들면 무조건 빨라지는 것은 아니다. 질문의 별도 키 구조와 읽기 이득·쓰기 비용의 절충이 인덱스를 가리키는 단서다.

선지별 해설

  • ① 오답. 트리거는 특정 데이터 이벤트에 반응하여 실행하는 동작이다.
  • ② 정답. 검색 키 구조로 조회를 돕지만 저장·갱신 비용이 추가된다.
  • ③ 오답. 트랜잭션은 여러 작업을 하나의 처리 단위로 묶는다.
  • ④ 오답. 반정규화 규칙 자체가 지문의 검색 키 자료구조는 아니다.

편집 해설 근거: PostgreSQL 18 — Indexes — Chapter 11 Indexes — Introduction

52. 데이터베이스 설계자가 다음 조건을 확인한다. 부서별 급여 합계를 계산한 뒤 합계가 1억 원 이상인 부서 그룹만 결과에 남기려 한다. 그룹 집계가 끝난 뒤 조건을 적용하는 SQL 절은?

  1. HAVING
  2. WHERE
  3. ORDER BY
  4. DISTINCT
정답과 해설 보기

정답: 1

정답은 ① HAVING이다. 부서별로 GROUP BY한 다음 SUM(급여)를 계산하고 HAVING SUM(급여) >= 100000000 조건으로 그룹을 남기면 된다. 합계가 정확히 1억 원인 부서도 이상 조건에 포함된다.

WHERE는 그룹을 만들기 전에 개별 행에 조건을 적용한다. 급여가 1억 미만인 개인도 여러 명의 급여를 합하면 대상 부서가 될 수 있으므로 WHERE 급여 >= 100000000으로 바꾸면 의미가 달라진다. ORDER BY는 정렬이고 DISTINCT는 결과 중복 제거다.

선지별 해설

  • ① 정답. 집계한 그룹에 대한 조건을 지정한다.
  • ② 오답. 집계 전 개별 행을 거르는 절이다.
  • ③ 오답. 결과를 정렬하며 집계 조건으로 그룹을 거르지 않는다.
  • ④ 오답. 결과 중복을 제거하는 지정이며 그룹 조건 절이 아니다.

편집 해설 근거: PostgreSQL 18 — SELECT — GROUP BY Clause; HAVING Clause

53. 기본키를 구성하는 모든 열은 NULL이 아니어야 하며, 여러 열로 된 기본키에서는 전체 키 값의 조합이 중복되지 않아야 한다. 이에 해당하는 무결성은?

[학습용 개정문항]

  1. 보안 무결성
  2. 개체 무결성
  3. 정보 무결성
  4. 참조 무결성
정답과 해설 보기

정답: 2

정답은 ② 개체 무결성이다. 기본키로 지정한 열들은 NULL이 아니어야 하고, 그 열들을 합친 키 값은 각 행을 유일하게 식별해야 한다. 기본키가 여러 열로 구성될 때 유일성의 검사 대상은 개별 열 값이 아니라 전체 키 조합이다.

예를 들어 기본키가 (학생번호, 과목번호)이면 한 학생번호가 여러 행에 반복될 수 있다. 같은 학생번호와 과목번호의 조합이 다시 나타나는 것이 금지된다. 참조 무결성은 외래키가 참조 대상과 올바른 관계를 유지하도록 하는 별도의 제약이다.

선지별 해설

  • ① 오답. 접근 권한의 보안 관점과 기본키의 식별 조건은 구별된다.
  • ② 정답. 기본키의 NULL 금지와 전체 키 값의 유일성에 해당한다.
  • ③ 오답. 이 기본키 제약의 정식 분류로 묻는 답은 개체 무결성이다.
  • ④ 오답. 참조 무결성은 외래키와 참조 대상 사이의 관계를 다룬다.

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

54. 데이터베이스 설계자가 다음 조건을 확인한다. 관계대수와 관계해석을 비교한 기술로 적절하지 않은 설명을 고르면?

  1. 관계대수에는 합집합 같은 집합 연산과 선택·투영 같은 관계 연산이 있다.
  2. 관계해석은 원하는 결과가 만족할 조건을 선언적으로 기술한다.
  3. 관계대수는 결과를 얻는 연산 순서를 쓰지 않는 비절차적 언어다.
  4. 관계대수의 연산은 릴레이션을 입력받아 릴레이션을 결과로 낸다.
정답과 해설 보기

정답: 3

정답은 ③이다. 관계대수는 선택·투영·조인 등의 연산을 조합해 결과를 얻는 방법을 표현하므로 관계해석과 비교할 때 절차적 언어로 분류한다. 관계해석은 결과가 만족해야 할 조건을 논리식으로 제시하는 선언적 접근이다.

관계대수 연산의 입력과 출력이 모두 릴레이션이라는 성질 덕분에 연산 결과를 다른 연산에 계속 연결할 수 있다. 여기서 절차적이라는 말이 디스크 접근 순서나 실제 DBMS 실행 계획까지 하나로 강제한다는 뜻은 아니다. 동치 변환과 최적화로 같은 결과를 다른 계획으로 구할 수 있다.

선지별 해설

  • ① 오답. 집합 연산과 선택·투영 등 관계 연산을 포함한다.
  • ② 오답. 원하는 결과의 조건을 선언하는 것은 관계해석의 특징이다.
  • ③ 정답. 관계대수를 관계해석처럼 비절차적 언어로 잘못 설명했다.
  • ④ 오답. 릴레이션을 입력받아 릴레이션을 내는 닫힘 성질이 있다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Relational Algebra — operators and query composition; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Relational Calculus — declarative query language

55. 데이터베이스 설계자가 다음 조건을 확인한다. 학적 테이블에서 전화번호가 NULL이 아닌 학생명을 모두 검색하는 SQL문으로 타당한 설명을 고르면?

  1. SELECT 학생명 FROM 학적 WHERE 전화번호 IS NULL;
  2. SELECT 학생명 FROM 학적 WHERE 전화번호 = NULL;
  3. SELECT 학생명 FROM 학적 WHERE 전화번호 != NULL;
  4. SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL;
정답과 해설 보기

정답: 4

정답은 ④이다. NULL은 값이 없거나 알려지지 않은 상태를 나타내므로 일반적인 동등·부등 비교 대신 IS NULL 또는 IS NOT NULL로 검사한다. 전화번호가 NULL이 아닌 행을 고르려면 WHERE 전화번호 IS NOT NULL을 쓴다.

통상적인 SQL NULL 의미에서 전화번호 = NULL과 전화번호 != NULL의 결과는 참이 아니라 UNKNOWN이 된다. WHERE는 참인 행만 남기므로 이 두 식은 원하는 행을 고르지 못한다. IS NOT NULL은 값의 존재만 검사하며 실제 전화번호 형식이 유효한지까지 검증하는 조건은 아니다.

선지별 해설

  • ① 오답. 전화번호가 없는 NULL 행을 고르는 반대 조건이다.
  • ② 오답. NULL에 대한 일반 동등 비교로 존재 여부를 판별하지 않는다.
  • ③ 오답. NULL과의 부등 비교 역시 원하는 참·거짓 검사가 아니다.
  • ④ 정답. NULL이 아닌 값의 존재 여부를 직접 검사한다.

편집 해설 근거: PostgreSQL 18, Comparison Functions and Operators — Comparison Predicates — IS NULL and IS NOT NULL; ordinary comparison operators and null

56. 데이터베이스 설계자가 다음 조건을 확인한다. 분산 데이터베이스 시스템의 구성과 특성에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 물리 데이터는 여러 사이트에 있지만 논리적으로 하나처럼 제공할 수 있다.
  2. 분산 DBMS는 위치와 복제 정보를 관리해 투명성을 제공할 수 있다.
  3. 사이트 간 통신 장애와 분산 트랜잭션 때문에 운영 비용이 증가할 수 있다.
  4. 중앙의 단일 데이터 파일 하나와 P2P 응용만 있으면 분산 DBMS 없이도 항상 분산 데이터베이스가 된다.
정답과 해설 보기

정답: 4

정답은 ④이다. 여러 장소에 흩어진 데이터베이스를 네트워크로 연결하여 하나의 논리적 시스템처럼 사용할 수 있게 관리하는 것이 분산 데이터베이스의 핵심이다. 중앙 파일 하나에 여러 응용이 접속한다는 사실만으로 데이터베이스의 분산 저장·관리까지 성립하지는 않는다.

위치나 복제에 대한 투명성을 제공하려면 관련 메타데이터와 질의 처리, 갱신 일관성 등을 관리해야 한다. 통신 단절과 부분 장애를 고려해야 하므로 운영과 트랜잭션 처리가 복잡해질 수 있다. 분산이라는 말이 모든 사이트에 같은 데이터 전체를 반드시 복제한다는 뜻도 아니다.

선지별 해설

  • ① 오답. 물리적 분산과 논리적 통합을 함께 제공할 수 있다.
  • ② 오답. 위치·복제 정보를 관리하여 응용에 투명성을 제공할 수 있다.
  • ③ 오답. 통신 장애와 분산 트랜잭션은 복잡도와 비용을 늘릴 수 있다.
  • ④ 정답. 중앙 파일과 P2P 응용만으로 항상 분산 데이터베이스가 되는 것은 아니다.

편집 해설 근거: Oracle Database — Distributed Database Concepts — Distributed Database Architecture; Distributed Database Transparency

57. 데이터베이스 설계자가 다음 조건을 확인한다. 데이터 모델의 구성 요소 중 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업을 가리키는 용어를 고르면?

  1. Data Structure
  2. Constraint
  3. Operation
  4. Relation
정답과 해설 보기

정답: 3

정답은 ③ Operation(연산)이다. 데이터 모델은 어떤 형태로 값을 조직하는지, 어떤 처리를 허용하는지, 어떤 규칙을 지켜야 하는지를 함께 정한다. 이 중 실제 값에 수행하는 조회·삽입·수정·삭제 등의 작업은 연산에 해당한다.

Data Structure는 데이터를 조직하는 구조, Constraint는 유효한 데이터 상태나 변경을 제한하는 규칙이다. Relation은 관계 모델에서 사용하는 자료 구조의 하나다. 구조·연산·제약을 나누면 저장 형태와 값을 다루는 동작을 혼동하지 않고 모델을 이해할 수 있다.

선지별 해설

  • ① 오답. Data Structure는 값을 조직하는 구조다.
  • ② 오답. Constraint는 데이터가 지켜야 할 제약 조건이다.
  • ③ 정답. 값을 처리하는 작업을 가리키는 용어다.
  • ④ 오답. Relation은 관계 모델의 자료 구조이며 작업 자체의 이름은 아니다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Data Models; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Relational Algebra — operators

58. PostgreSQL 18의 시스템 카탈로그에 관한 설명 중 부적절한 것은?

[학습용 개정문항]

  1. DBMS가 질의 처리와 권한 검사에 필요한 메타데이터를 관리한다.
  2. pg_catalog 스키마의 여러 카탈로그에 내부 관리 정보가 있다.
  3. 테이블·열·제약조건 같은 스키마 정보를 담는다.
  4. 일반 사용자가 무결성 유지를 위해 카탈로그 행을 임의로 직접 수정해야 한다.
정답과 해설 보기

정답: 4

정답은 ④이다. PostgreSQL의 시스템 카탈로그는 테이블·열 등의 스키마 정보와 내부 관리 정보를 담는다. 일반적인 구조·권한 변경은 CREATE·ALTER·GRANT 같은 지원 명령을 통해 수행하여 DBMS가 관련 정보를 일관되게 관리하도록 해야 한다.

카탈로그가 일반 테이블 형태로 구현되어 있다는 사실은 임의 직접 수정이 올바른 운영 절차라는 뜻이 아니다. 권한 있는 직접 수정은 시스템을 손상시킬 수 있다. 읽을 수 있는 메타데이터의 범위나 세부 구조는 사용자 권한과 DBMS 버전에 따라 확인해야 한다.

선지별 해설

  • ① 오답. 질의 처리와 권한 검사 등에 쓰는 메타데이터를 관리한다.
  • ② 오답. PostgreSQL은 pg_catalog 스키마의 여러 카탈로그로 내부 정보를 제공한다.
  • ③ 오답. 테이블·열·제약 조건은 대표적인 스키마 메타데이터다.
  • ④ 정답. 임의 직접 수정이 무결성을 유지하는 정상 절차라는 설명이 틀렸다.

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

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

[학습용 개정문항]

  1. 대체키는 모든 슈퍼키 중 기본키 하나를 뺀 나머지 전부다.
  2. 후보키는 유일성과 최소성을 만족한다.
  3. 슈퍼키는 유일성을 만족하지만 여분 속성을 포함할 수 있다.
  4. 외래키는 참조가 허용되는 기본키·유일키와 연결되며 같은 테이블을 참조할 수도 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 대체키는 후보키 중 기본키로 선택하지 않은 키다. 후보키는 행을 유일하게 식별하면서도 속성을 더 제거하면 그 성질을 잃는 최소 슈퍼키다. 따라서 모든 슈퍼키에서 기본키 하나를 빼기만 한 집합은 대체키의 정의가 아니다.

예를 들어 학번이 유일하다면 학번에 이름을 덧붙인 조합도 슈퍼키지만 이름은 불필요하므로 후보키가 아니다. 외래키는 참조 가능한 기본키·유일키와 연결되며 같은 테이블을 참조하는 형태도 가능하다. 키의 유일성과 최소성을 구별하는 것이 중요하다.

선지별 해설

  • ① 정답. 대체키는 모든 슈퍼키가 아니라 기본키 이외의 후보키다.
  • ② 오답. 후보키는 유일성과 최소성을 모두 만족한다.
  • ③ 오답. 슈퍼키는 불필요한 속성을 추가로 포함할 수 있다.
  • ④ 오답. 허용되는 참조 키를 대상으로 하며 자기 참조도 가능하다.

편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Keys; PostgreSQL 18 — Constraints — §5.5.5 Foreign Keys

60. 데이터베이스 설계자가 다음 조건을 확인한다. 매출 큐브의 차원이 시간·지역·상품일 때 시간='2026년 8월'로 한 차원을 고정하고 지역×상품의 2차원 단면만 조회했다. 적용한 OLAP 연산은?

  1. 슬라이스(Slice)
  2. 롤업(Roll-up)
  3. 드릴다운(Drill-down)
  4. 피벗(Pivot)
정답과 해설 보기

정답: 1

정답은 ① 슬라이스다. 시간·지역·상품의 세 차원 중 시간을 하나의 값인 2026년 8월로 고정하면 그 달에 해당하는 지역×상품 단면을 얻는다. 다차원 큐브에서 특정 차원의 값을 선택하여 단면을 보는 동작이다.

롤업은 월별을 연도별로 합하는 것처럼 더 높은 집계 수준으로 올라가며, 드릴다운은 반대로 더 세부적인 수준으로 내려간다. 피벗은 같은 데이터를 보는 축의 배치나 방향을 바꾼다. 이 문제는 시간을 연도 단위로 합치거나 축을 회전한 것이 아니라 한 달을 선택한 경우다.

선지별 해설

  • ① 정답. 한 차원을 특정 값으로 고정하여 단면을 얻는다.
  • ② 오답. 월별에서 연도별처럼 더 상위 수준으로 집계한 것이 아니다.
  • ③ 오답. 집계 수준을 더 세부적인 계층으로 내린 것이 아니다.
  • ④ 오답. 행·열 등 축의 배치만 바꾼 것이 아니다.

편집 해설 근거: AWS — What is OLAP? — What are OLAP operations? — Roll up, Drill down, Slice, Pivot

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

61. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. UNIX 셸의 역할에 대한 기술로 틀린 설명을 고르면?

  1. 파이프와 리다이렉션으로 명령을 조합한다.
  2. 여러 종류의 셸 구현을 선택할 수 있다.
  3. 물리 메모리 배치와 장치 인터럽트를 직접 관리한다.
  4. 사용자 명령을 해석한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 셸은 사용자의 명령을 해석하고 프로그램을 실행하며 파이프·리다이렉션으로 입출력을 조합하는 명령 처리 환경이다. 물리 메모리 관리와 장치 인터럽트 처리는 운영체제 커널의 책임에 해당한다.

셸 명령으로 시스템 상태를 조회하거나 관리 도구를 호출할 수는 있지만, 셸이 직접 커널의 메모리·인터럽트 관리자를 대신한다는 뜻은 아니다. 여러 셸 구현은 명령 해석과 스크립트 기능의 세부 문법이 다를 수 있으므로 사용 중인 셸을 확인해야 한다.

선지별 해설

  • ① 오답. 파이프와 리다이렉션은 셸의 주요 기능이다.
  • ② 오답. 서로 다른 셸 구현을 선택할 수 있다.
  • ③ 정답. 물리 메모리와 인터럽트 처리를 셸의 직접 책임으로 잘못 설명했다.
  • ④ 오답. 사용자 명령을 해석하는 역할은 맞다.

편집 해설 근거: GNU Bash Reference Manual, Edition 5.3 (2025) — What is a shell?; Pipelines; Redirections; Ritchie·Thompson, The UNIX Time-Sharing System (1978 개정본) — The Shell; Implementation

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

#include <stdio.h>
int main(void) {
    int a = 7, b = 1;
    printf("%d", a++ + ++b);
    return 0;
}

[학습용 개정문항]

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

정답: 1

정답은 ① 9다. a++는 증가 전 값 7을 식의 값으로 제공하고 a를 8로 바꾼다. ++b는 b를 먼저 1에서 2로 증가시킨 뒤 2를 제공한다. 따라서 덧셈에 사용되는 두 값은 7과 2이며 출력은 9다.

C에서 덧셈의 왼쪽 피연산자가 항상 먼저 평가된다고 보장되지는 않는다. 하지만 여기서는 서로 다른 변수 a와 b를 각각 한 번 변경하므로 어느 쪽이 먼저 평가되더라도 합은 같다. 같은 변수를 순서 보장 없이 여러 번 변경하는 식과 구별해야 한다.

선지별 해설

  • ① 정답. 증가 전 a의 값 7과 증가 후 b의 값 2를 더한다.
  • ② 오답. a++도 증가 후 값 8을 제공한다고 잘못 계산했다.
  • ③ 오답. b의 증가 후 값 2를 더하지 않았다.
  • ④ 오답. ++b의 증가 전 값 1을 사용한 결과다.

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

63. Java SE 17의 java.io.PrintStream(System.out의 타입)에 정의된 메서드 이름이 아닌 것은?

[학습용 개정문항]

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

정답: 4

정답은 ④ printing이다. Java SE 17에서 System.out의 타입인 PrintStream에는 print, println, printf라는 이름의 메서드가 있다. printing은 해당 API에 정의된 메서드 이름이 아니다.

print는 값을 출력하고, println은 출력 뒤 줄 구분을 추가하며, printf는 형식 문자열을 이용해 값을 출력한다. 메서드 이름이 존재한다는 사실과 인수 없이 호출할 수 있다는 사실은 다르다. 예를 들어 print와 printf에 빈 괄호만 쓰면 적합한 인수 없는 오버로드가 없으므로 지문은 호출식이 아닌 이름을 비교한다.

선지별 해설

  • ① 오답. printf는 형식 문자열을 이용한 출력 메서드 이름이다.
  • ② 오답. print는 값 출력 메서드 이름이다.
  • ③ 오답. println은 줄 구분을 포함하는 출력 메서드 이름이다.
  • ④ 정답. Java SE 17 PrintStream에 printing이라는 메서드는 없다.

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

64. 다음 중 모듈 사이의 결합도를 낮추는 데 가장 적절한 설계는?

[학습용 개정문항]

  1. 다른 모듈 내부의 지역 자료를 직접 변경한다.
  2. 여러 모듈이 같은 전역 변수를 자유롭게 읽고 쓴다.
  3. 필요한 작은 데이터 값만 명시적인 인수로 전달한다.
  4. 다른 모듈의 내부 분기 순서를 세세하게 지시하는 제어 값을 전달한다.
정답과 해설 보기

정답: 3

정답은 ③이다. 호출받는 모듈이 필요한 작은 데이터 값만 명시적인 인수로 받으면 호출자 내부의 저장 구조나 제어 흐름을 덜 알아도 된다. 이처럼 필요한 데이터로 의존 범위를 제한하는 설계는 결합도를 낮추는 데 도움이 된다.

다른 모듈 내부를 직접 고치거나 공통 전역 상태에 의존하면 한쪽 변경이 다른 쪽에 영향을 주기 쉽다. 내부 수행 경로를 세세하게 지시하는 제어 인수도 두 모듈의 내부 동작을 연결한다. 모듈 사이에 의존이 전혀 없어야 한다는 뜻이 아니라 필요한 계약으로 제한한다는 뜻이다.

선지별 해설

  • ① 오답. 상대 모듈의 내부 구현에 직접 의존한다.
  • ② 오답. 공유 전역 상태를 통해 여러 모듈의 변경이 연결된다.
  • ③ 정답. 필요한 데이터만 명시적으로 전달하여 의존 범위를 줄인다.
  • ④ 오답. 상대 모듈의 내부 분기 구조까지 호출자가 알아야 한다.

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

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

[학습용 개정문항]

  1. 인접한 한 노드에서 다음 노드로 프레임을 전송하는 기능을 담당한다.
  2. 패킷에 발신지와 목적지의 논리 주소를 포함한다.
  3. 라우터나 3계층 스위치가 패킷의 전달 경로를 선택한다.
  4. 여러 링크를 거쳐 패킷을 발신지에서 최종 목적지로 전달하는 기능을 다룬다.
정답과 해설 보기

정답: 1

정답은 ①이다. OSI 모델에서 인접한 노드 사이의 프레임 전달은 데이터 링크 계층의 기능에 해당한다. 네트워크 계층은 여러 링크를 거쳐 목적지까지 전달하기 위해 주소와 경로 선택 등을 다루는 계층이다.

인터넷에서는 IP 주소로 목적지를 식별하고 라우터가 패킷의 다음 전달 경로를 선택한다. 한 패킷이 여러 링크를 지날 때 링크별 프레임 형식과 주소는 바뀔 수 있다. 네트워크 계층의 목적지 전달 책임이 곧 모든 패킷의 성공적 도착이나 재전송을 보장한다는 의미는 아니다.

선지별 해설

  • ① 정답. 인접 노드 사이 프레임 전달은 데이터 링크 계층에 해당한다.
  • ② 오답. 발신지·목적지의 논리 주소는 네트워크 계층 기능과 관련된다.
  • ③ 오답. 라우터나 3계층 스위치의 패킷 경로 선택은 네트워크 계층 기능이다.
  • ④ 오답. 여러 링크를 거치는 목적지 전달을 다루는 계층이다.

편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — §7.5 Network Layer; §7.6 Data Link Layer; IETF RFC 791 (1981), Internet Protocol — §1.1 Motivation; §1.2 Scope

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

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

[학습용 개정문항]

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

정답: 1

정답은 ① 2다. b<=4는 4<=4이므로 참이다. 논리 OR는 왼쪽이 참이면 오른쪽을 평가하지 않고 1을 만들므로 r1=1이다. r2는 a>0과 b<5가 모두 참이어서 1이 된다.

c는 0이 아닌 2이므로 !c는 0이 되어 r3=0이다. 따라서 출력은 1+1+0=2다. C의 관계·동등·논리 연산 결과는 정수 0 또는 1이며, 논리 OR·AND는 비트 단위 연산자 |·&와 다르게 단락 평가를 수행한다.

선지별 해설

  • ① 정답. r1=1, r2=1, r3=0을 더하면 2다.
  • ② 오답. 0이 아닌 c에 !를 적용하면 1이 아니라 0이다.
  • ③ 오답. r1과 r2의 참 결과를 누락했다.
  • ④ 오답. 참인 결과가 r1과 r2 두 개다.

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

67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. TCP/IP 계층 구조에서 IP 패킷 전달 중 발생한 오류 정보를 전송하는 프로토콜은?

  1. PPP(Point-to-Point Protocol)
  2. ECP(Error Checking Protocol)
  3. ARP(Address Resolution Protocol)
  4. ICMP(Internet Control Message Protocol)
정답과 해설 보기

정답: 4

정답은 ④ ICMP다. IP 데이터그램을 처리하거나 전달하는 과정에서 목적지 도달 불가, 수명 초과 같은 상황을 출발지에 알리는 데 사용된다. 오류에 관한 제어 정보를 전달한다는 것이 지문의 핵심이다.

ICMP가 모든 손실을 보고하거나 데이터를 자동 재전송하여 IP를 신뢰성 있는 서비스로 바꾸는 것은 아니다. 제어 메시지 자체도 전달되지 않을 수 있다. ARP는 같은 링크에서 IPv4 주소에 대응하는 링크 계층 주소를 찾는 역할이며, PPP는 점대점 링크의 통신을 위한 프로토콜이다.

선지별 해설

  • ① 오답. PPP는 점대점 링크 통신을 다루며 질문의 IP 오류 통보 프로토콜이 아니다.
  • ② 오답. 지문의 역할에 해당하는 TCP/IP 표준 프로토콜 이름은 ICMP다.
  • ③ 오답. ARP는 주소 해석을 수행한다.
  • ④ 정답. IP 처리·전달 오류 등 제어 정보를 통보한다.

편집 해설 근거: IETF RFC 792 — Internet Control Message Protocol — Introduction; Destination Unreachable Message; Time Exceeded Message; IETF RFC 826, Ethernet Address Resolution Protocol (1982) — Protocol and address resolution

68. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. UNIX 계열 운영체제의 일반적 특징으로 틀린 설명을 고르면?

[학습용 개정문항]

  1. 셸에서 작업을 백그라운드로 실행할 수 있다.
  2. 여러 사용자는 지원하지만 멀티태스킹은 지원하지 않는 단일 작업 전용 시스템이다.
  3. 디렉터리가 루트에서 시작하는 계층적 트리를 이룬다.
  4. 주요 부분이 고급 언어로 작성되어 이식성이 높다.
정답과 해설 보기

정답: 2

정답은 ②이다. UNIX는 여러 사용자가 이용하고 여러 프로세스가 진행되는 시분할·멀티태스킹 운영체제로 발전했다. 한 프로세스가 끝나야만 다른 작업을 시작할 수 있는 단일 작업 전용 시스템이라는 설명은 맞지 않는다.

단일 CPU 코어는 한 순간 한 명령 흐름을 실행할 수 있지만 작업 전환으로 여러 작업을 함께 진행시킬 수 있다. 이것은 멀티태스킹을 지원하지 않는다는 뜻과 다르다. 셸의 백그라운드 실행, 계층적 디렉터리와 C 중심 구현은 UNIX의 대표적 특징이다.

선지별 해설

  • ① 오답. 셸은 명령을 백그라운드로 실행할 수 있다.
  • ② 정답. UNIX는 단일 작업 전용이 아니라 멀티태스킹을 지원한다.
  • ③ 오답. 루트에서 시작하는 계층적 파일 이름 구조를 사용한다.
  • ④ 오답. C 중심 구현은 UNIX의 이식성에 기여했다.

편집 해설 근거: Ritchie·Thompson, The UNIX Time-Sharing System (1978 개정본) — Introduction; The File System; Processes and Images; The Shell; Implementation

69. 처음에 빈 프레임 3개를 1번부터 채운다. 참조 순서가 1, 2, 3, 2, 4, 2, 3, 1, 3일 때 FIFO 교체 후 프레임 1·2·3의 최종 내용은? 적중은 적재 순서를 바꾸지 않으며, 교체 페이지는 기존 프레임 자리에 넣는다.

[학습용 개정문항]

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

정답: 1

정답은 ① [4, 1, 3]이다. 처음 1·2·3을 넣으면 프레임은 [1,2,3]이다. 다음 2는 적중이므로 변화가 없다. 4가 들어올 때 가장 먼저 적재한 1을 바꾸어 [4,2,3]이 된다. 이어지는 2·3은 적중이다.

다음 1에서는 남아 있는 페이지 중 가장 오래된 2를 바꾸므로 [4,1,3]이 된다. 마지막 3은 적중이다. FIFO는 재참조했다고 적재 순서를 갱신하지 않는다. 문제의 출력은 오래된 순서의 큐가 아니라 고정된 프레임 번호 순서이므로 두 순서를 혼동하지 않는다.

선지별 해설

  • ① 정답. 프레임 1~3의 최종 내용은 4, 1, 3이다.
  • ② 오답. 4 참조 이후의 교체를 반영하지 않았다.
  • ③ 오답. 참조로 적재 순서를 바꾸거나 프레임 순서를 섞은 결과다.
  • ④ 오답. 끝에서 두 번째인 페이지 1 참조 시 교체를 누락했다.

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

70. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. TCP가 응용 데이터에 헤더를 붙여 IP에 넘기는 프로토콜 데이터 단위(PDU)를 가리키는 용어는?

  1. 세그먼트(Segment)
  2. 메시지(Message)
  3. 프레임(Frame)
  4. 데이터그램(Datagram)
정답과 해설 보기

정답: 1

정답은 ① 세그먼트다. TCP는 바이트 스트림을 전송하기 위해 데이터를 나누고 TCP 헤더를 붙여 세그먼트로 보낸다. 이 세그먼트는 IP 데이터그램 안에 담겨 네트워크를 통과하며 수신 측 TCP가 순서와 재전송 등을 처리한다.

프레임은 링크 계층의 전송 단위를 가리킨다. 데이터그램은 IP나 UDP 문맥에서 쓰이고, 메시지는 응용 계층 등에서 사용하는 더 일반적인 말이다. TCP 스트림에서는 한 번의 응용 쓰기 호출이 반드시 세그먼트 하나와 일대일 대응하지 않는다는 점도 구별해야 한다.

선지별 해설

  • ① 정답. TCP 헤더와 데이터로 구성된 단위는 세그먼트다.
  • ② 오답. 메시지는 이 문제에서 묻는 TCP 전송 단위의 명칭이 아니다.
  • ③ 오답. 프레임은 링크 계층의 단위다.
  • ④ 오답. TCP의 해당 단위를 부르는 구체적인 이름은 세그먼트다.

편집 해설 근거: IETF RFC 9293, Transmission Control Protocol (2022) — §3.1 Header Format; §3.7 Data Communication

71. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. IPv4 주소 192.168.10.130/26이 속한 네트워크 주소는?

  1. 192.168.10.192
  2. 192.168.10.128
  3. 192.168.10.0
  4. 192.168.10.64
정답과 해설 보기

정답: 2

정답은 ② 192.168.10.128이다. /26은 앞의 26비트가 네트워크 부분이라는 뜻이며 마스크는 255.255.255.192다. 마지막 옥텟의 구간 크기는 256−192=64이므로 경계는 0, 64, 128, 192가 된다.

130은 128~191 구간에 속하므로 호스트 비트를 0으로 만들면 128이다. 비트 계산으로도 130의 이진수 10000010과 마스크 11000000을 AND하면 10000000, 즉 128이 된다. 네트워크 주소와 사용 가능한 첫 호스트 주소 129를 구별해야 한다.

선지별 해설

  • ① 오답. 192부터 시작하는 다음 구간의 네트워크 주소다.
  • ② 정답. 130이 포함된 128~191 구간의 시작 주소다.
  • ③ 오답. /26에서 0~63 구간의 네트워크 주소다.
  • ④ 오답. /26에서 64~127 구간의 네트워크 주소다.

편집 해설 근거: RFC 4632, Classless Inter-domain Routing (2006) — §3.1 CIDR Addressing; IETF RFC 1878, Variable Length Subnet Table For IPv4 (1995) — Subnet masks and address ranges

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

public class Main {
    public static void main(String[] args) {
        int a = 1, b = 2, c = 3, d = 4;
        int mx, mn;
        mx = a < b ? b : a;
        if (mx == 1)
            mn = a > mx ? b : a;
        else
            mn = b < mx ? d : c;
        System.out.println(mn);
    }
}

[학습용 개정문항]

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

정답: 3

정답은 ③ 3이다. a<b는 1<2로 참이므로 첫 삼항식에서 b가 선택되어 mx=2가 된다. 이어서 mx==1은 거짓이므로 else 문장을 실행한다. 그 안의 b<mx는 2<2로 거짓이어서 d가 아니라 c를 선택한다.

따라서 mn=3이며 println은 3 뒤에 줄 구분을 출력한다. 변수 이름 mx·mn이 최댓값·최솟값처럼 보이더라도 실제 의미는 코드의 조건식과 대입이 정한다. 삼항 연산자는 조건에 따라 두 값 중 하나를 선택하며 양쪽을 모두 대입하지 않는다.

선지별 해설

  • ① 오답. if의 참 분기는 실행하지 않는다.
  • ② 오답. mx의 값이며 최종 출력 변수는 mn이다.
  • ③ 정답. else의 조건이 거짓이므로 c의 값 3을 선택한다.
  • ④ 오답. b<mx가 참일 때 선택할 d의 값이다.

편집 해설 근거: Java SE 17 Language Specification — Chapter 15 Expressions — Java Language Specification §15.25 Conditional Operator; Oracle Java SE 17 API, java.io.PrintStream — println(int)

73. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 빈 공간이 8KB, 17KB, 11KB, 24KB이고 10KB 프로세스를 Worst Fit으로 배치한다. 선택되는 공간은?

  1. 17KB 공간
  2. 11KB 공간
  3. 24KB 공간
  4. 8KB 공간
정답과 해설 보기

정답: 3

정답은 ③ 24KB 공간이다. Worst Fit은 요청을 수용할 수 있는 빈 공간 중 가장 큰 것을 선택한다. 10KB 요청에는 8KB 공간이 부족하고, 17KB·11KB·24KB 중 가장 큰 24KB가 선택된다. 분할에 별도 관리 비용이 없다고 보면 남는 공간은 14KB다.

Best Fit이라면 수용 가능한 가장 작은 11KB를 고른다. First Fit이라면 제시된 탐색 순서에서 처음 수용 가능한 17KB를 고른다. 이름이 가장 나쁘다는 뜻이라고 해서 들어갈 수 없는 공간을 고르는 것은 아니며 정책이 비교하는 크기 기준을 따라야 한다.

선지별 해설

  • ① 오답. 제시 순서의 First Fit으로 고를 수 있는 공간이다.
  • ② 오답. Best Fit의 선택이며 가장 큰 공간은 아니다.
  • ③ 정답. 수용 가능한 빈 공간 중 크기가 가장 크다.
  • ④ 오답. 요청한 10KB를 수용할 수 없다.

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

74. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 빈 프레임 3개에 페이지 참조 1, 2, 3, 4, 1, 2, 5가 차례로 들어온다. FIFO의 전체 페이지 부재 횟수는? 프레임 적재 순서는 재참조로 바뀌지 않는다고 가정한다.

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

정답: 2

정답은 ② 7회다. 처음 1·2·3은 빈 프레임에 적재하지만 모두 페이지 부재로 센다. 다음 4에서는 가장 오래된 1을 교체한다. 이어서 1은 현재 없으므로 2를, 2는 현재 없으므로 3을, 마지막 5는 4를 교체한다.

프레임 변화는 [1,−,−] → [1,2,−] → [1,2,3] → [4,2,3] → [4,1,3] → [4,1,2] → [5,1,2]다. 이 참조열에서는 일곱 번 모두 부재다. 부재 횟수는 빈 프레임 적재까지 포함하며, 가득 찬 뒤의 교체 네 번만 세는 것과 다르다.

선지별 해설

  • ① 오답. 일곱 참조 중 적중은 없다.
  • ② 정답. 최초 적재 3회와 이후 교체를 일으킨 부재 4회를 합한다.
  • ③ 오답. 프레임이 가득 찬 뒤의 교체만 센 값이다.
  • ④ 오답. 최초 적재 또는 뒤의 재참조 부재를 일부 빠뜨렸다.

편집 해설 근거: Arpaci-Dusseau, OSTEP, 22 Beyond Physical Memory: Policies (2025 개정 표시본) — Page Replacement — FIFO; Arpaci-Dusseau, OSTEP v1.10, 18 Paging: Introduction — Paging — address translation and page presence

75. 외부 중단이나 실행 오류가 없을 때 다음 Python 3.14 코드의 출력 동작은?

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

[학습용 개정문항]

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

정답: 2

정답은 ②이다. while True의 조건은 매번 참이므로 반복문은 계속 실행된다. 한 회전에서 A, B, C를 각각 출력한 다음 continue를 만나면 현재 회전의 나머지 문장을 건너뛰고 다음 반복으로 이동한다. 따라서 print("D")는 실행되지 않는다.

정상적으로 실행을 계속하는 동안 A·B·C가 각기 한 줄씩 반복된다. continue는 반복문을 종료하는 break와 다르다. 외부 중단이나 실행 오류가 없는 조건에서는 루프 안에 종료 경로가 없으므로 한 번만 출력하고 끝나는 프로그램이 아니다.

선지별 해설

  • ① 오답. D는 건너뛰고 반복도 한 번으로 끝나지 않는다.
  • ② 정답. A·B·C를 출력한 뒤 다음 회전으로 넘어간다.
  • ③ 오답. continue 이후에도 while True 반복은 계속된다.
  • ④ 오답. continue 뒤의 D 출력은 실행하지 않는다.

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

76. C11 식에서 다음 기호의 결합 우선순위를 높은 것부터 나열한 것은? ㉠ 괄호를 이용한 식의 그룹화 ( ) ㉡ 동등 비교 == ㉢ 관계 비교 < ㉣ 왼쪽 시프트 << ㉤ 논리 OR || ㉥ 이항 곱셈 *

[학습용 개정문항]

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

정답: 1

정답은 ①이다. 괄호로 묶은 부분을 하나의 식으로 취급하면, 나머지 보기의 결합 우선순위는 곱셈 * → 시프트 << → 관계 비교 < → 동등 비교 == → 논리 OR || 순서다. 따라서 기호 순서는 ㉠, ㉥, ㉣, ㉢, ㉡, ㉤이다.

여기서 *는 이항 곱셈이며 포인터 역참조의 단항 *를 뜻하지 않는다. 괄호도 함수 호출이 아닌 식의 그룹화다. 우선순위는 식을 어떻게 묶어 해석할지를 결정하며, 독립된 피연산자를 실제로 어느 쪽부터 평가할지까지 일반적으로 보장하는 규칙은 아니다.

선지별 해설

  • ① 정답. 그룹화, 곱셈, 시프트, 관계, 동등, 논리 OR 순서다.
  • ② 오답. 관계 비교 <보다 곱셈 *와 시프트 <<가 더 강하게 결합한다.
  • ③ 오답. 괄호 그룹화를 곱셈보다 뒤에 두었고 시프트 위치도 틀렸다.
  • ④ 오답. 시프트와 관계 비교, 동등 비교와 논리 OR의 순서를 뒤바꿨다.

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

77. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 시스템을 더 작은 모듈로 분리할 때 나타나는 변화에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 모듈 수가 늘면 각 모듈은 항상 커지고 모듈 간 인터페이스 수는 자동으로 줄어든다.
  2. 적절한 모듈화는 복잡한 문제를 책임 단위로 나누게 한다.
  3. 낮은 결합도와 높은 응집도는 유지보수에 유리하다.
  4. 모듈은 함수·서브루틴·패키지 등으로 표현할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 시스템을 작은 책임 단위로 나눈다고 해서 각 모듈의 크기가 항상 커지는 것은 아니다. 또한 모듈이 늘어나면 필요한 인터페이스와 연결을 별도로 설계해야 하므로 인터페이스 수가 자동으로 줄어든다고 할 수도 없다.

좋은 모듈화는 관련 기능을 함께 두고 다른 모듈의 내부 구현에 대한 의존을 줄인다. 지나치게 잘게 나누면 연결·이해·변경 비용이 증가할 수 있으므로 모듈 수 자체보다 책임의 경계와 협력 관계가 중요하다. 함수, 서브루틴, 패키지 등은 이를 표현하는 수단이 될 수 있다.

선지별 해설

  • ① 정답. 모듈 크기와 인터페이스 수의 변화를 모두 자동적인 법칙으로 잘못 단정했다.
  • ② 오답. 책임에 따라 복잡한 문제를 나누는 것은 모듈화의 목적이다.
  • ③ 오답. 낮은 결합도와 높은 응집도는 변경 영향 관리에 도움이 된다.
  • ④ 오답. 여러 언어 단위로 모듈 경계를 표현할 수 있다.

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

78. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 192.168.3.64/27 네트워크의 사용 가능한 호스트 주소 범위는?

  1. 192.168.3.65 ~ 192.168.3.94
  2. 192.168.3.66 ~ 192.168.3.93
  3. 192.168.3.64 ~ 192.168.3.95
  4. 192.168.3.65 ~ 192.168.3.95
정답과 해설 보기

정답: 1

정답은 ① 192.168.3.65~192.168.3.94다. /27이면 호스트 부분은 5비트이므로 전체 주소 수는 2^5=32개다. 네트워크 시작 주소 64부터 마지막 주소 95까지가 하나의 구간이다.

일반적인 IPv4 /27 서브넷에서는 호스트 비트가 모두 0인 .64가 네트워크 주소, 모두 1인 .95가 브로드캐스트 주소이므로 호스트에 할당할 범위에서 제외한다. 따라서 .65부터 .94까지 30개를 사용할 수 있다. 특별한 /31 점대점 주소 규칙을 이 /27 문제에 적용하지 않는다.

선지별 해설

  • ① 정답. 네트워크와 브로드캐스트 주소를 제외한 30개다.
  • ② 오답. 사용할 수 있는 첫 주소 .65와 마지막 주소 .94를 더 제외했다.
  • ③ 오답. 네트워크 주소 .64와 브로드캐스트 주소 .95를 포함했다.
  • ④ 오답. 브로드캐스트 주소 .95를 포함했다.

편집 해설 근거: RFC 4632, Classless Inter-domain Routing (2006) — §3.1 CIDR Addressing; IETF RFC 1878, Variable Length Subnet Table For IPv4 (1995) — Subnet masks and host ranges

79. 학습용 바이트 주소 모형에서 int 한 개의 크기는 4바이트이고 int a[] = {14, 22, 30, 38};의 첫 원소 표시 주소는 10이다. &a[2]와, 일반 식에서 첫 원소 포인터로 변환된 a의 표시 주소를 순서대로 고르면?

[학습용 개정문항]

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

정답: 4

정답은 ④ 18, 10이다. 배열의 원소는 순서대로 연속 배치되고 a[2]는 세 번째 원소다. 학습용 바이트 주소 모형에서 한 int가 4바이트이므로 첫 원소로부터 2×4=8바이트 떨어져 있고, 표시 주소는 10+8=18이다.

일반적인 식에서 배열 이름 a는 첫 원소를 가리키는 포인터로 변환되므로 그 표시 주소는 10이다. a+2는 바이트 2개가 아니라 int 원소 두 개만큼 이동한다. 숫자 10은 계산용 가상 기준이며 실제 실행 환경의 정렬 제약이나 주소 출력 형식을 가정한 값이 아니다.

선지별 해설

  • ① 오답. &a[2]는 18이지만 a는 첫 원소 주소 10에 대응한다.
  • ② 오답. 14는 두 번째 원소 a[1]의 표시 주소다.
  • ③ 오답. 세 번째 원소의 위치와 첫 원소의 위치를 모두 잘못 대응했다.
  • ④ 정답. 10+2×4=18이며 a가 가리키는 첫 원소는 10이다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.2.5 Types — array type; §6.3.2.1 Lvalues, arrays; §6.5.6 Additive operators

80. C11 표준 라이브러리의 <stdlib.h>에 관한 설명으로 맞는 것은?

[학습용 개정문항]

  1. strtol·strtod 같은 수치 변환 함수와 malloc·free 같은 메모리 관리 함수가 선언된다.
  2. 문자열 길이를 구하는 strlen이 선언되는 헤더다.
  3. printf·scanf 등 표준 입출력 함수의 헤더다.
  4. sin·sqrt 등 삼각 함수와 제곱근 함수의 헤더다.
정답과 해설 보기

정답: 1

정답은 ①이다. C11의 <stdlib.h>에는 strtol·strtod 같은 문자열 수치 변환 함수와 malloc·free 같은 메모리 관리 함수가 선언되어 있다. 각각 정수·실수 변환이나 동적 메모리 할당·해제를 위한 기능이다.

strlen은 <string.h>의 문자열 길이 함수이며, 표준 입출력은 <stdio.h>, sin·sqrt 등의 수학 함수는 <math.h>와 연결된다. 일부 환경의 itoa 같은 비표준 함수를 근거로 모든 숫자→문자열 변환이 <stdlib.h>의 표준 기능이라고 외우면 안 된다. 표준 버전과 헤더를 함께 확인해야 한다.

선지별 해설

  • ① 정답. 네 함수 모두 C11 <stdlib.h>에 선언되는 기능이다.
  • ② 오답. strlen은 <string.h>에 선언된다.
  • ③ 오답. 표준 입출력 헤더는 <stdio.h>다.
  • ④ 오답. 삼각 함수·제곱근 등의 헤더는 <math.h>다.

편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §7.22 General utilities <stdlib.h>; §§7.21, 7.24, 7.12

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

81. TCP/IP 등 순서가 보장되는 양방향 전송 위에서 동작하며, 서버가 주제(topic)를 기준으로 발행 메시지를 구독자에게 전달하는 경량 프로토콜은?

[학습용 개정문항]

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

정답: 1

정답은 ① MQTT다. MQTT는 클라이언트가 주제에 메시지를 발행하고, 서버가 그 주제를 구독한 클라이언트에 전달하는 발행·구독 방식의 경량 메시징 프로토콜이다. 송신자와 수신자가 직접 서로의 주소를 알고 연결할 필요를 줄여 센서 정보 등의 전달에 활용할 수 있다.

일반적으로 TCP/IP 위에서 사용하지만 MQTT 규격은 순서와 손실 없는 양방향 바이트 전달을 제공하는 다른 전송 수단도 허용한다. MLFQ는 운영체제의 다단계 피드백 큐 스케줄링 개념이므로 메시징 프로토콜과 구별한다.

선지별 해설

  • ① 정답. 주제를 이용한 경량 발행·구독 메시징 프로토콜이다.
  • ② 오답. Zigbee는 무선 연결을 위한 통신 기술이며 질문의 MQTT형 메시징 규격이 아니다.
  • ③ 오답. 명시된 발행·구독 메시징 프로토콜의 이름은 MQTT다.
  • ④ 오답. MLFQ는 CPU 스케줄링에서 사용하는 다단계 피드백 큐다.

편집 해설 근거: OASIS, MQTT Version 5.0 Standard (2019) — §1.1 Organization of the MQTT specification; Introduction

82. 원래 COCOMO의 개발 모드 중, 대상 업무와 개발 환경에 익숙한 팀이 안정적인 조건에서 개발하며 엄격한 외부 제약이 비교적 적은 프로젝트에 가장 가까운 것은?

[학습용 개정문항]

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

정답: 4

정답은 ④ Organic이다. 원래 COCOMO의 Organic 모드는 대상 분야와 개발 환경에 익숙한 팀이 비교적 익숙하고 안정적인 환경에서 개발하는 프로젝트 특성과 연결된다. 엄격한 외부 제약이 많은 Embedded 모드와 대비된다.

Semi-Detached는 경험이나 제약 조건이 두 모드의 중간적인 성격인 경우를 나타낸다. 규모는 추정에 중요하지만 특정 줄 수 하나만으로 모드가 자동 결정되는 것은 아니다. 이 문제는 코드 라인 수를 절대 경계로 외우는 대신 개발 경험·유연성·제약이라는 모드의 성격을 비교한다.

선지별 해설

  • ① 오답. Semi-Detached는 경험과 제약이 중간적인 경우에 대응한다.
  • ② 오답. Semi-Embedded는 원래 COCOMO의 세 가지 표준 모드명이 아니다.
  • ③ 오답. Embedded는 상대적으로 엄격한 운영·하드웨어 등의 제약을 고려한다.
  • ④ 정답. 익숙한 분야와 안정적 환경, 비교적 적은 외부 제약에 대응한다.

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

83. 고전적인 공격에서 피해자의 IP 주소를 출발지로 위조한 ICMP Echo 요청을 다른 네트워크의 directed broadcast 주소로 보내 다수의 응답이 피해자에게 집중되게 한다. 이 공격은?

[학습용 개정문항]

  1. Smurfing
  2. TearDrop
  3. Smishing
  4. Qshing
정답과 해설 보기

정답: 1

정답은 ① Smurfing이다. 피해자 주소를 출발지로 위조한 ICMP Echo 요청을 브로드캐스트로 보내면 여러 호스트의 응답이 피해자에게 모일 수 있다. 요청을 받은 네트워크를 반사·증폭에 이용한다는 점이 핵심이다.

단순히 많은 IP 패킷을 보낸다는 설명만으로는 여러 서비스 거부 공격을 구별할 수 없다. Teardrop은 단편 재조립 처리 취약점과 관련된 역사적 공격이며, Smishing과 Qshing은 각각 문자 메시지와 QR 코드를 이용한 피싱이다. 현재의 차단 정책에 따라 고전적인 Smurf 방식이 작동하지 않을 수도 있다.

선지별 해설

  • ① 정답. 출발지 위조와 ICMP 브로드캐스트 응답을 이용하는 반사·증폭 공격이다.
  • ② 오답. 단편 재조립 처리 문제를 악용하는 공격으로 구별한다.
  • ③ 오답. 문자 메시지를 이용한 피싱이다.
  • ④ 오답. QR 코드를 이용한 피싱이다.

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

84. 전통적인 IFPUG 기능점수 분석의 다섯 기능 유형에 해당하지 않는 것은?

[학습용 개정문항]

  1. 구현 코드의 클래스 인터페이스 수
  2. 외부 조회(EQ)
  3. 내부 논리 파일(ILF)
  4. 외부 출력(EO)
정답과 해설 보기

정답: 1

정답은 ① 클래스 인터페이스 수다. 전통적인 IFPUG 기능점수 분석은 사용자가 인식하는 기능을 외부 입력 EI, 외부 출력 EO, 외부 조회 EQ, 내부 논리 파일 ILF, 외부 연계 파일 EIF의 다섯 유형으로 분류한다. 구현 코드의 클래스나 메서드 수를 그대로 세는 방법이 아니다.

기능점수는 기능적 규모를 측정하며, 비용이나 노력으로 바꾸려면 생산성 등 별도의 추정 정보가 필요하다. 외부 조회를 CPU 명령어 개수로 오해하거나 외부 연계 파일의 인터페이스라는 말과 클래스 인터페이스를 혼동하지 않아야 한다.

선지별 해설

  • ① 정답. 클래스 인터페이스 수 자체는 다섯 기능 유형에 해당하지 않는다.
  • ② 오답. 외부 조회 EQ는 거래 기능 유형 중 하나다.
  • ③ 오답. 내부 논리 파일 ILF는 데이터 기능 유형 중 하나다.
  • ④ 오답. 외부 출력 EO는 거래 기능 유형 중 하나다.

편집 해설 근거: IFPUG — Simplifying Software Sizing with Simple Function Points, ISMA19 — Session Description — five traditional function types

85. 호스트와 저장장치를 직접 연결하여 사용하는 스토리지 방식은? 네트워크 파일 서버를 통해 파일을 제공받는 NAS 방식과 구별한다.

[학습용 개정문항]

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

정답: 4

정답은 ④ DAS(Direct-Attached Storage)다. 저장장치를 호스트에 직접 연결하는 방식으로, 호스트의 저장장치 인터페이스나 어댑터를 통해 블록 장치에 접근하는 구성이 대표적이다. 네트워크를 통해 파일 서비스를 제공하는 NAS와 구별한다.

직접 연결에는 케이블이나 저장장치 인터페이스가 사용될 수 있으므로 중간에 물리 부품이 전혀 없다는 뜻은 아니다. 또한 사용 인터페이스 이름만으로 항상 DAS인지 SAN인지 결정하지 말고 호스트와 저장장치가 실제로 어떻게 연결되어 서비스를 제공하는지 살펴야 한다.

선지별 해설

  • ① 오답. NAS는 네트워크를 통해 파일 서비스를 제공한다.
  • ② 오답. N-SCREEN은 여러 화면·기기에서 콘텐츠를 이용하는 개념이다.
  • ③ 오답. NFC는 근거리 무선 통신 기술이다.
  • ④ 정답. 호스트에 직접 연결된 저장장치 구성을 뜻한다.

편집 해설 근거: IBM, What Is Data Storage?, Data storage systems and architectures (2026-10-05 확인) — Direct-attached storage overview; IBM, Direct Attachment of Storwize and SAN Volume Controller Systems (2023-03-28) — Direct connection configuration

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

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

정답: 2

정답은 ② AES다. AES는 비밀키로 평문을 암호문으로 바꾸고 대응되는 복호화로 원문을 복원하는 대칭키 블록 암호다. 반면 SHA-1, MD4, MD5는 메시지를 정해진 길이의 요약값으로 만드는 해시 알고리즘에 속한다.

해시에는 원문을 복원하는 일반적인 복호화 절차가 없으며, 암호화처럼 비밀키로 원문을 숨겼다가 다시 푸는 기능과 목적이 다르다. 이 문제의 분류가 SHA-1·MD4·MD5를 현재 보안 설계에 권장한다는 뜻은 아니다. 알고리즘의 종류와 오늘날의 안전성 평가는 별도로 판단한다.

선지별 해설

  • ① 오답. SHA-1은 해시 알고리즘으로 MD4·MD5와 기능 분류가 같다.
  • ② 정답. 나머지 해시와 달리 대칭키 블록 암호다.
  • ③ 오답. MD4는 메시지 다이제스트를 계산하는 해시다.
  • ④ 오답. MD5도 메시지 다이제스트를 계산하는 해시다.

편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §1 Introduction; §3 Definitions; NIST FIPS 180-4, Secure Hash Standard (2015) — Abstract and algorithm definition; IETF RFC 1320, The MD4 Message-Digest Algorithm (1992) — §1 Executive Summary; IETF RFC 1321, The MD5 Message-Digest Algorithm (1992) — §1 Executive Summary

87. 보안 등급 순서는 L1<L2다. 기밀성 보호를 위해 낮은 등급에서 높은 등급으로 읽는 것을 금지하고 높은 등급에서 낮은 등급으로 쓰는 것도 금지하는 기본 규칙을 사용하는 모델은?

[학습용 개정문항]

  1. Chinese Wall 모델
  2. Clark-Wilson 무결성 모델
  3. PDCA 관리 순환
  4. Bell-LaPadula 모델
정답과 해설 보기

정답: 4

정답은 ④ Bell–LaPadula 모델이다. 기밀성 중심의 기본 규칙은 낮은 인가 등급의 주체가 높은 등급 정보를 읽지 못하게 하는 상향 읽기 금지와, 높은 등급의 정보가 낮은 등급으로 흘러가도록 쓰지 못하게 하는 하향 쓰기 금지다.

등급 순서를 L1<L2로 두면 L1 주체의 L2 읽기는 차단하고 L2에서 L1로의 쓰기도 제한하는 형태로 이해할 수 있다. 실제 모델에는 보안 범주 등 더 상세한 조건이 있을 수 있다. Clark–Wilson은 무결성, Chinese Wall은 이해 상충을 중심으로 하므로 보호 목표를 구별한다.

선지별 해설

  • ① 오답. Chinese Wall은 이해 상충을 막기 위한 접근 통제 모델이다.
  • ② 오답. Clark–Wilson은 잘 형성된 거래 등을 통한 무결성 보호 모델이다.
  • ③ 오답. PDCA는 계획·실행·점검·개선의 관리 순환이다.
  • ④ 정답. 상향 읽기 금지·하향 쓰기 금지로 기밀성을 보호하는 모델이다.

편집 해설 근거: Bell·LaPadula, Secure Computer System: Unified Exposition and Multics Interpretation (1976), IEEE 보존 원문 — Simple Security Condition; *-Property

88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 검색 API가 사용자 입력을 SQL 문자열에 직접 이어 붙인다. 이 취약점에 대한 기술로 적절하지 않은 설명을 고르면?

  1. 입력에 SQL 토큰을 넣어 WHERE 조건을 바꾸려는 공격이 가능하다.
  2. 웹 응용과 DBMS가 만나는 입력 지점에서 발생하기 쉽다.
  3. DBMS가 달라도 함수·주석·문자열 문법이 완전히 같아 공격 세부 기법은 언제나 동일하다.
  4. 준비된 문장과 최소 권한 계정은 위험을 낮추는 데 도움이 된다.
정답과 해설 보기

정답: 3

정답은 ③이다. SQL 주입은 사용자 입력을 질의 문자열에 그대로 섞어 입력 데이터가 SQL 문법으로 해석되게 하는 취약점이다. 하지만 함수 이름, 주석, 문자열 처리와 지원 문법은 DBMS마다 차이가 있으므로 공격 세부 구문이 언제나 같다는 설명은 틀렸다.

값을 매개변수로 전달하는 준비된 문장은 질의 구조와 데이터를 분리하는 주요 방어다. 테이블·열 이름처럼 바인딩할 수 없는 구조 부분은 허용 목록 등 별도 설계가 필요하며, DB 계정의 최소 권한은 사고가 났을 때의 영향을 줄이는 데 도움이 된다.

선지별 해설

  • ① 오답. 문자열 결합으로 입력이 SQL 구조를 바꾸게 되면 조건 조작 위험이 생긴다.
  • ② 오답. 응용 입력이 DB 질의로 바뀌는 경계는 주요 점검 대상이다.
  • ③ 정답. DBMS별 문법과 기능 차이를 무시한 단정이다.
  • ④ 오답. 값 바인딩과 최소 권한은 대표적인 방어 수단이다.

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

89. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 보안팀이 실제 고객 데이터가 없는 가짜 SSH 서버를 외부에 노출하고 공격자의 명령, 사용한 계정, 이동 경로를 기록한다. 정상 업무에는 사용하지 않으며 접근 자체를 이상 징후로 본다. 이 시스템은?

  1. 분산 파일 시스템 Hadoop
  2. 허니팟(Honeypot)
  3. 병렬 처리 모델 MapReduce
  4. 웹 서버 Apache
정답과 해설 보기

정답: 2

정답은 ② 허니팟이다. 정상 업무에 사용하지 않는 유인용 시스템을 마련하고 그곳으로 오는 비정상 접근을 관찰하는 방식이다. 지문은 실제 고객 데이터를 두지 않은 가짜 서비스를 이용하므로 공격의 탐지·분석을 위한 미끼 시스템에 해당한다.

접근을 기록하는 것만으로 공격을 모두 막는 것은 아니며, 관찰한 행위를 분석하는 별도 절차가 필요하다. 운영 서비스와 격리하고 외부로 향하는 동작도 제한해야 유인 시스템이 다른 곳을 공격하는 통로가 되는 일을 줄일 수 있다. 특정 서버 소프트웨어 이름보다 사용 목적이 분류를 결정한다.

선지별 해설

  • ① 오답. Hadoop은 분산 저장·처리 생태계이며 유인 시스템의 이름이 아니다.
  • ② 정답. 공격자를 유인하고 행위를 관찰하는 미끼 시스템이다.
  • ③ 오답. MapReduce는 분산 데이터 처리 모델이다.
  • ④ 오답. Apache라는 서버 제품명만으로 유인 시스템의 역할을 뜻하지 않는다.

편집 해설 근거: NIST CSRC Glossary — honeypot — Definition; NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (2007) — Honeypots

90. 역사적으로 취약한 IP 구현에 비정상적인 크기가 되도록 구성한 ICMP Echo 관련 단편을 보내, 재조립·처리 중 오류나 장애를 일으킨 공격은?

[학습용 개정문항]

  1. Piggyback Attack
  2. XSS
  3. Ping of Death
  4. Session Hijacking
정답과 해설 보기

정답: 3

정답은 ③ Ping of Death다. 고전적인 형태는 비정상적인 크기가 되도록 구성된 IP 단편 등을 취약한 시스템이 재조립·처리할 때 발생하는 결함을 이용했다. ICMP Echo와 연관된 과대 패킷 처리 취약점이라는 점이 이름의 배경이다.

이는 정상 크기의 요청을 매우 많이 보내 대역폭이나 자원을 소모시키는 단순 Ping Flood와 구별한다. 또한 오늘날 모든 운영체제가 같은 과거 결함에 취약하다는 뜻은 아니다. 문제는 과거 취약한 구현에서의 처리 오류를 묻는 것이며 XSS나 세션 탈취와도 목적·경로가 다르다.

선지별 해설

  • ① 오답. 지문의 과대 IP 단편 재조립 취약점과 다른 접근이다.
  • ② 오답. XSS는 웹 문맥에서 스크립트 실행을 유발하는 취약점이다.
  • ③ 정답. 비정상적 과대 패킷 처리와 관련된 역사적인 서비스 거부 공격이다.
  • ④ 오답. 세션 탈취는 다른 사용자의 인증된 세션을 가로채는 공격이다.

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

91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 네트워크 장비와 역할의 연결로 적절하지 않은 설명을 고르면?

  1. 라우터 — 논리 주소와 라우팅 표를 이용해 서로 다른 네트워크 사이 패킷을 전달
  2. 브라우터 — 약해진 물리 신호를 증폭·재생하는 1계층 전용 장비
  3. 브리지 — MAC 주소를 기준으로 LAN 세그먼트 사이 프레임을 전달
  4. 2계층 스위치 — 여러 포트에서 MAC 주소표를 이용해 프레임을 교환
정답과 해설 보기

정답: 2

정답은 ②이다. 브라우터(brouter)는 브리지와 라우터 기능을 함께 제공하는 장비를 가리킨다. 약해진 신호를 재생하는 물리 계층 전용 장비라는 설명은 리피터의 역할과 혼동한 것이다.

라우터는 네트워크 주소와 경로 정보를 바탕으로 패킷을 전달한다. 브리지와 2계층 스위치는 MAC 주소를 중심으로 LAN의 프레임 전달을 처리한다. 실제 장비가 여러 계층의 기능을 통합할 수는 있으므로 제품 이름보다 질문에 명시된 논리 기능과 계층을 기준으로 구분해야 한다.

선지별 해설

  • ① 오답. 라우터의 네트워크 간 패킷 전달 기능과 맞는다.
  • ② 정답. 브라우터는 브리지·라우터 기능을 겸하며 1계층 전용 리피터가 아니다.
  • ③ 오답. 브리지는 MAC 주소에 기반한 프레임 전달을 수행한다.
  • ④ 오답. 2계층 스위치는 MAC 주소표로 포트 사이 프레임을 전달한다.

편집 해설 근거: Cisco — Guida ai vantaggi del networking, Glossario — Glossario, 인쇄면 44 — Brouter; ITU-T X.200 (07/1994), OSI Basic Reference Model — §7.5 Network Layer; §7.6 Data Link Layer; §7.7 Physical Layer

92. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. QoS 1로 배송 상태를 구독하는 서비스가 네트워크 재전송 때문에 같은 eventId의 메시지를 두 번 받았다. 가장 안전한 처리 방법은?

  1. 두 메시지를 모두 별도 배송 사건으로 반영한다.
  2. eventId로 처리 이력을 확인해 이미 반영한 사건은 다시 적용하지 않는다.
  3. 중복을 막기 위해 구독 연결을 매번 종료한다.
  4. 수신한 모든 메시지를 QoS 0으로 다시 발행한다.
정답과 해설 보기

정답: 2

정답은 ②이다. MQTT QoS 1은 적어도 한 번 전달을 목표로 하므로 같은 메시지를 중복 수신할 수 있다. 배송 사건의 eventId가 이미 반영되었는지 확인하고 같은 사건의 업무 효과를 다시 적용하지 않는 멱등 처리가 적절하다.

처리 이력 저장과 배송 상태 변경은 가능한 한 하나의 원자적 작업으로 묶고 eventId에 유일성 제약 등을 두어 동시 처리도 고려해야 한다. 단순 조회 후 각각 저장하면 경쟁 조건이나 중간 실패로 중복 반영될 수 있다. 이력 보존 범위와 재시도 정책도 서비스가 요구하는 중복 방지 범위에 맞춰 정한다.

선지별 해설

  • ① 오답. 같은 배송 사건을 두 번 반영하는 오류가 생긴다.
  • ② 정답. 사건 식별자를 기준으로 이미 처리한 업무 효과를 다시 적용하지 않는다.
  • ③ 오답. 연결 종료는 사건의 중복 여부를 판별하는 방법이 아니다.
  • ④ 오답. QoS 0 재발행은 이미 받은 중복의 업무 처리를 해결하지 않는다.

편집 해설 근거: OASIS, MQTT Version 5.0 Standard (2019) — §4.3.2 QoS 1 — At least once delivery; PostgreSQL 18, 3.4 Transactions — §3.4 Transactions; PostgreSQL 18 — Constraints — §5.5.3 Unique Constraints

93. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 송신자가 자신의 개인키로 전자서명하고 수신자가 송신자의 공개키로 검증할 때 가장 직접적으로 얻는 보안 속성은?

  1. 기밀성
  2. 가용성
  3. 데이터 압축
  4. 부인 방지
정답과 해설 보기

정답: 4

정답은 ④ 부인 방지다. 적절한 전자서명은 데이터 변경 여부와 서명 출처를 확인하고, 서명자가 해당 서명을 생성했다는 증거를 제공하는 데 쓰인다. 보기 중 이 기능에 직접 대응하는 것은 부인 방지다.

다만 공개키가 실제 누구의 키인지 신뢰할 수 있어야 하고 개인키 보호·서명 시점·인증서 상태 같은 운영 조건도 중요하다. 서명만 붙였다고 문서 내용을 다른 사람이 읽지 못하게 되는 것은 아니며 기밀성이 필요하면 별도 암호화를 적용한다. 서명은 가용성이나 압축도 제공하지 않는다.

선지별 해설

  • ① 오답. 서명 자체는 문서 내용을 숨기는 암호화가 아니다.
  • ② 오답. 서비스가 계속 사용 가능함을 보장하지 않는다.
  • ③ 오답. 원문 크기를 줄이는 압축 기능이 아니다.
  • ④ 정답. 출처·무결성 검증과 함께 서명 부인을 막는 증거를 제공하는 데 쓰인다.

편집 해설 근거: NIST CSRC Glossary — digital signature — Definitions — FIPS 186-5; SP 800-63-4

94. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 메모리 상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?

  1. 시스로그
  2. 스택가드
  3. 모드체크
  4. 리커버리 통제
정답과 해설 보기

정답: 2

정답은 ② 스택가드(StackGuard)다. 함수의 스택 복귀 주소 근처에 카나리 값을 두고 함수가 돌아가기 전에 그 값이 온전한지 검사한다. 버퍼 경계를 넘는 연속 쓰기가 이 값을 훼손했다면 정상 복귀 대신 오류 처리로 실행을 중단하도록 하는 방식이다.

카나리는 복귀 주소가 손상되었을 가능성을 탐지하기 위한 표식이며 메모리 내용을 자동으로 복구하지 않는다. 모든 메모리 오류를 막거나 모든 우회 공격을 탐지하는 것도 아니다. 따라서 안전한 경계 검사와 다른 메모리 보호 수단을 대체하는 완전한 보장으로 보아서는 안 된다.

선지별 해설

  • ① 오답. 시스로그는 시스템 사건을 기록하는 로그 체계다.
  • ② 정답. 스택의 카나리 훼손을 검사하는 보호 기술이다.
  • ③ 오답. 지문의 복귀 전 카나리 검사 기술에 해당하는 이름은 스택가드다.
  • ④ 오답. 복구 통제가 아니라 손상 징후를 탐지하고 복귀를 막는 기법이다.

편집 해설 근거: Cowan et al., StackGuard (USENIX Security 1998) — Detecting Return Address Change Before Return — §3.1 Detecting Return Address Change Before Return; Figure 2

95. 나선형 개발의 한 반복을 목표 설정·위험 분석·개발 및 검증·고객의 결과 평가라는 네 활동으로 간략화할 때 가장 적절한 흐름은?

[학습용 개정문항]

  1. 개발 → 계획 → 고객 평가 → 위험 분석
  2. 목표 계획 → 고객 평가 → 위험 분석 → 개발
  3. 목표 계획 → 위험 분석 → 개발·검증 → 고객 평가
  4. 위험 분석 → 고객 평가 → 계획 → 개발
정답과 해설 보기

정답: 3

정답은 ③이다. 나선형 접근에서는 먼저 이번 반복의 목표·대안·제약을 정하고 주요 위험을 분석한다. 그 결과에 따라 필요한 시제품이나 개발·검증 활동을 수행하고 결과를 검토해 다음 반복의 방향을 정한다.

제시된 보기는 이를 목표 계획 → 위험 분석 → 개발·검증 → 고객 평가로 간략화한 것이다. 원래 나선형 모델은 다음 단계 계획과 검토도 포함하는 위험 중심 모델이므로 네 단어를 모든 프로젝트에 똑같이 고정된 공정으로 적용하지 않는다. 위험 분석이 개발 방향을 이끈다는 점을 기억해야 한다.

선지별 해설

  • ① 오답. 목표와 위험을 검토하기 전에 개발을 먼저 고정했다.
  • ② 오답. 제시된 단순화에서 고객 결과 평가를 개발·위험 분석보다 앞에 두었다.
  • ③ 정답. 목표와 위험을 검토한 뒤 개발·검증하고 결과를 평가하는 흐름이다.
  • ④ 오답. 목표를 정하기 전 위험 분석·고객 평가부터 배치했다.

편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — A Spiral Model of Software Development — objectives, alternatives, constraints; risk analysis; development and next-phase planning

96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 소프트웨어 정의 데이터센터(SDDC)의 방향과 맞지 않는 것은?

  1. 컴퓨팅·네트워크·스토리지 자원을 소프트웨어로 제어한다.
  2. 정책 기반 자동화로 자원 배치를 조정한다.
  3. 물리 자원을 가상화해 서비스 단위로 제공한다.
  4. 특정 장비 모델에 강하게 종속될수록 자동화와 이동성이 좋아진다.
정답과 해설 보기

정답: 4

정답은 ④이다. SDDC는 컴퓨팅·스토리지·네트워크 자원을 추상화하고 소프트웨어와 정책으로 배치·운영을 자동화하는 방향이다. 특정 물리 장비의 개별 조작에 대한 의존을 줄이면 자원의 일관된 관리와 서비스 이동을 돕는다.

따라서 특정 장비 모델에 강하게 종속될수록 자동화와 이동성이 무조건 좋아진다는 설명은 맞지 않는다. 다만 SDDC라고 물리 장비가 없어지거나 모든 공급업체 사이의 완전한 호환성이 자동 보장되는 것은 아니다. 실제 통합 범위와 지원 API·가상화 계층을 확인해야 한다.

선지별 해설

  • ① 오답. 여러 자원 영역을 소프트웨어로 제어하는 것은 SDDC의 방향이다.
  • ② 오답. 정책 기반 자동화는 주요 운영 방식이다.
  • ③ 오답. 자원 가상화와 추상화로 서비스 제공을 돕는다.
  • ④ 정답. 강한 장비 종속이 자동으로 이동성과 자동화를 높이지는 않는다.

편집 해설 근거: IBM, What is a software-defined data center? — What is a software-defined data center? — core components and benefits

97. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 스트림 암호의 일반적 특성에 관한 설명 중 잘못된 것은?

  1. 모든 스트림 암호는 메시지를 먼저 고정 길이 해시로 바꾼 뒤 그 해시만 전송한다.
  2. 동일한 키 스트림을 재사용하면 평문 관계가 노출될 수 있어 nonce 관리가 중요하다.
  3. 대칭키 방식으로 구현되는 스트림 암호가 존재한다.
  4. 키 스트림을 평문 비트 또는 바이트와 순차적으로 결합할 수 있다.
정답과 해설 보기

정답: 1

정답은 ①이다. 스트림 암호는 키와 nonce 등의 값으로 생성한 키 스트림을 평문과 결합해 암호문을 만드는 방식이다. 대표적인 ChaCha20은 키 스트림과 평문을 XOR하며, 복호화할 때 같은 키 스트림을 암호문과 XOR해 원문을 얻는다.

평문을 고정 길이 해시로 바꾸고 해시만 보내는 일은 이러한 가역적 암호화와 다르다. 같은 키 스트림을 서로 다른 평문에 재사용하면 두 암호문을 결합했을 때 평문 사이의 관계가 노출될 수 있으므로 키·nonce 사용 규칙을 지켜야 한다.

선지별 해설

  • ① 정답. 메시지 요약인 해시와 복호화 가능한 스트림 암호를 혼동했다.
  • ② 오답. 키 스트림 재사용은 평문 관계를 노출할 수 있다.
  • ③ 오답. ChaCha20 등 대칭키 스트림 암호가 존재한다.
  • ④ 오답. 키 스트림을 평문과 순차적으로 결합하는 방식이 가능하다.

편집 해설 근거: IETF RFC 8439 — ChaCha20 and Poly1305 for IETF Protocols — §2.4 The ChaCha20 Encryption Algorithm; §4 Security Considerations

98. Apache Sqoop 1.4.7이 사용되던 시기의 도구 역할을 묻는다. Hadoop과 관계형 데이터베이스 사이의 대량 데이터 가져오기·내보내기를 위해 설계된 도구는?

[학습용 개정문항]

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

정답: 1

정답은 ① Sqoop이다. Apache Sqoop은 관계형 데이터베이스와 Hadoop 환경 사이에서 대량 데이터를 가져오거나 내보내도록 설계된 도구였다. 1.4.7 사용 안내에는 import와 export 등 데이터 전송 명령이 설명되어 있다.

이 문제는 해당 도구의 역사적인 용도를 묻는다. Sqoop 프로젝트는 2021년에 Apache Attic으로 이전되어 은퇴했으므로, 과거 기능을 안다는 사실과 새로운 시스템에 현재 도입을 권장하는 것은 다르다. APNIC은 인터넷 번호 자원 관리 기관이며 Topology는 연결 구조를 뜻하는 일반 용어다.

선지별 해설

  • ① 정답. 관계형 DB와 Hadoop 사이 데이터 이동을 위해 설계된 도구다.
  • ② 오답. 지문의 Apache 데이터 전송 도구 이름은 Sqoop이다.
  • ③ 오답. APNIC은 인터넷 번호 자원을 관리하는 기관이다.
  • ④ 오답. Topology는 연결 구조를 뜻하며 해당 전송 도구의 이름이 아니다.

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

99. 기능별 소스 코드 줄 수의 낙관치(O), 가장 가능성 높은 값(M), 비관치(P)를 추정하고 이를 규모 예측과 비용 산정의 기초로 사용하는 기법은?

[학습용 개정문항]

  1. LOC기법
  2. Effort Per Task기법
  3. 전문가 감정 기법
  4. 델파이기법
정답과 해설 보기

정답: 1

정답은 ① LOC 기법이다. 각 기능을 구현하는 데 필요한 소스 코드 줄 수를 규모의 기준으로 삼고, 여러 경우의 추정치를 검토하여 전체 규모를 예상한다. 낙관치 O, 가장 가능성 높은 값 M, 비관치 P는 불확실성을 표현하는 세 시나리오다.

M 자체를 통계적으로 계산된 기댓값이라고 부르면 세 입력값과 그것들로 구한 예측 결과가 혼동된다. 줄 수를 비용·노력으로 환산할 때에는 생산성과 개발 환경 등의 정보가 추가로 필요하다. Delphi나 전문가 판단을 추정 과정에 활용할 수는 있어도 지문의 직접적인 규모 척도는 LOC다.

선지별 해설

  • ① 정답. 코드 줄 수를 규모 척도로 사용하는 추정이다.
  • ② 오답. 작업별 노력량을 직접 추정하는 방식과 구별한다.
  • ③ 오답. 전문가 의견을 활용할 수 있지만 지문이 지정한 척도는 코드 줄 수다.
  • ④ 오답. Delphi는 의견을 모으는 절차이며 코드 줄 수 자체의 척도명이 아니다.

편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Software Size — source instructions and effort estimation; R. G. Batson, NASA TM-100311 Program Risk Analysis Handbook (1987) — Three-point estimates — optimistic, most likely and pessimistic

100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 소프트웨어 개발 방법론의 테일러링(Tailoring)과 관련한 기술로 적절하지 않은 설명을 고르면?

[학습용 개정문항]

  1. 프로젝트 수행 중 예상되는 변화를 배제하고 속도만 우선한다.
  2. 프로젝트 특성에 맞게 개발 절차와 산출물을 적절히 조정한다.
  3. 예상 위험을 식별하고 필요한 대응과 검토 수준을 정한다.
  4. 프로젝트 특성에 적합한 기술 요소·기법·도구를 선택한다.
정답과 해설 보기

정답: 1

정답은 ①이다. 테일러링은 프로젝트의 규모·위험·규제·팀 구성과 같은 조건에 맞춰 개발 절차, 산출물, 도구와 기법을 조정하는 활동이다. 예상되는 변화를 배제하는 것이 아니라 변화 가능성과 위험을 계획에 반영하여 필요한 통제 수준을 정한다.

작은 프로젝트에서는 일부 절차를 간소화할 수 있고 높은 위험의 프로젝트에서는 검토와 검증을 강화할 수 있다. 따라서 문서를 무조건 줄이는 활동이나 모든 위험을 사전에 완전히 없애는 방법은 아니다. 조정 이유와 책임을 명확히 하고 진행 중 조건이 달라지면 다시 검토해야 한다.

선지별 해설

  • ① 정답. 예상 변화를 무시하면 프로젝트 특성에 맞춘 조정이라는 목적을 해친다.
  • ② 오답. 절차와 산출물 조정은 테일러링의 핵심이다.
  • ③ 오답. 위험을 식별하고 대응·검토 수준을 정하는 것은 적절하다.
  • ④ 오답. 프로젝트에 맞는 기법과 도구를 선택하는 것도 포함한다.

편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Management — §2 Software Project Planning

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

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

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

자료 기준·검수 정보