문제지 PDF · 웹 정답 해설
정보처리기사 필기 2024년 3회 CBT 편집복원 100문항
정보처리기사 필기 2024년 3회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.
© 자격증3001. 이 정보처리기사 필기 기출문제 게시물의 문제 재구성 문장, 해설, 재작성 도식, 편집 및 PDF 디자인은 자격증3001의 저작권 보호를 받습니다. 국가기술자격 시험 및 관련 명칭의 권리는 해당 기관에 있으며, 본 자료는 Q-Net 공식 문제지 또는 공식 해설이 아닙니다. 무단 복제·재배포를 금합니다.
정보처리기사 필기 2024년 3회 CBT 편집복원 100문항 안내
정보처리기사 필기 2024년 3회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.
2024년 3회 범위의 후기복원 분류 대표 학습 세트입니다. CBT 원문이나 공식 정답표를 제공하는 자료가 아닙니다. 100문항의 해설을 기술 문서와 필요한 독립 계산으로 새로 편집 검토했으며, 질문·조건·보기를 바로잡은 문항은 학습용 개정문항으로 표시합니다.
정보처리기사 필기 기출문제 · 소프트웨어 설계
1. 현행 시스템의 기술적 구성 목록을 작성한다. 다음 중 시스템 자체의 기술 구성보다 프로젝트의 인력·조직 정보에 해당하는 것은?
[학습용 개정문항]
- 소프트웨어 구성
- 개발자 구성
- 하드웨어 구성
- 시스템 구성
정답과 해설 보기
정답: 2
정답은 ② 개발자 구성이다. 현행 시스템의 기술적 구성을 조사할 때는 실행 중인 소프트웨어, 서버와 저장장치 등의 하드웨어, 구성 요소의 연결 관계를 확인한다. 이 자료는 새 시스템의 요구사항과 제약을 파악하는 입력이 된다.
개발자의 인원·역할·경력은 프로젝트 조직과 자원을 분석하는 정보다. 따라서 여기서 한정한 기술 구성 목록과 구별된다. 다만 현행 시스템을 이해하기 위해 기존 개발자와 운영자를 인터뷰하는 일은 유용하므로, 개발자 정보가 모든 현황 분석에서 불필요하다고 확대해서 해석하지 않는다.
선지별 해설
- ① 오답. 실행 소프트웨어와 버전·의존 관계는 기술 구성에 포함된다.
- ② 정답. 인원·역할 구성은 조직과 인력 정보이며 문항의 기술 구성 범위와 구별된다.
- ③ 오답. 서버·저장장치 등의 하드웨어를 조사해야 한다.
- ④ 오답. 구성 요소와 연결 관계를 확인하는 항목이다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §2.1 Requirements Sources
2. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 럼바우 분석 프로세스에서 사용되는 다이어그램이 해당하지 않는 것은 어떤 용어인가?
- 소멸 차트
- 상태 다이어그램
- 객체 다이어그램
- 자료 흐름도
정답과 해설 보기
정답: 1
정답은 ① 소멸 차트이다. 럼바우의 OMT는 객체 모델, 동적 모델, 기능 모델의 서로 다른 관점으로 시스템을 분석한다. 각각 객체 다이어그램, 상태 전이 다이어그램, 자료 흐름도가 대표적인 표현 수단이다.
객체 모델은 객체와 관계의 구조를, 동적 모델은 사건에 따른 상태 변화를, 기능 모델은 입력 데이터가 처리되어 출력으로 바뀌는 흐름을 다룬다. 객체가 소멸하는 사건을 모델에 나타낼 수는 있지만, 소멸 차트가 이 세 모델에 대응하는 기본 다이어그램의 이름은 아니다.
선지별 해설
- ① 정답. OMT의 객체·동적·기능 모델에 대응하는 기본 도표 명칭이 아니다.
- ② 오답. 사건에 따른 상태 변화를 표현하는 동적 모델에 사용한다.
- ③ 오답. 객체와 관계를 표현하는 객체 모델에 사용한다.
- ④ 오답. 데이터의 변환과 흐름을 나타내는 기능 모델에 사용한다.
편집 해설 근거: Dov Dori, On Bridging the Analysis–Design and Structure–Behavior Grand Canyons with Object Paradigms (1996), 저자 제공 원문 — §2 OMT, 객체·동적·기능 모델을 설명하는 부분
3. 코드 ks-002A를 ks-00A2로 잘못 입력했다. 관찰된 인접 두 문자의 자리바꿈을 가장 구체적으로 나타내는 오류 유형은?
[학습용 개정문항]
- Transposition
- Omission
- Transcription
- Addition
정답과 해설 보기
정답: 1
정답은 ① Transposition, 즉 전위 오류이다. ks-002A와 ks-00A2를 비교하면 문자가 빠지거나 새로 추가되지 않았고, 마지막 두 문자인 2와 A의 순서만 서로 바뀌었다. 두 위치의 값을 맞바꾼 형태이므로 자리바꿈이라는 구체적인 오류 유형으로 분류한다.
Omission은 누락, Addition은 추가를 뜻한다. FIPS 45의 자기검사 코드 설명은 1234를 1235로 잘못 옮겨 적은 예를 transcription, 1234를 1243으로 자리바꿈한 예를 transposition으로 구분한다. 이 문제에서도 문자 수나 구성의 변화보다 두 문자의 순서가 바뀌었다는 특징에 주목한다.
선지별 해설
- ① 정답. 끝의 2와 A가 서로 위치를 바꿨다.
- ② 오답. 원래 있던 문자가 누락되지 않았다.
- ③ 오답. 인용한 오류 분류의 문자값 오기보다 두 문자의 자리바꿈이 관찰되는 경우다.
- ④ 오답. 새로운 문자가 추가되지 않았다.
편집 해설 근거: NBS FIPS PUB 45 (1976), Guide for Data Element Standards, 역사 자료 — §4.4.1.2 Self-Checking Codes, p.22, transposition errors
4. Boehm의 나선형 모델 도식에서 한 순환의 주요 활동 영역으로 분류되지 않는 것은?
[학습용 개정문항]
- 다음 순환의 계획
- 유지보수
- 위험 평가와 해소
- 다음 수준 제품의 개발 및 검증
정답과 해설 보기
정답: 2
정답은 ② 유지보수이다. Boehm의 나선형 모델은 한 순환에서 목표·대안·제약을 정하고, 위험을 평가·해소하며, 다음 수준의 제품을 개발·검증하고, 다음 순환을 계획하는 활동을 구분한다. 위험을 줄이기 위한 시제품 작성도 이 과정에 포함될 수 있다.
유지보수는 제품 운영 중의 변경과 개선을 포함하는 생명주기 활동이지, 도식에 표시된 네 영역 중 하나의 이름은 아니다. 나선형 접근을 유지보수 프로젝트에도 적용할 수 있으므로 ‘나선형 모델에는 유지보수가 존재하지 않는다’는 뜻으로 이해하면 안 된다.
선지별 해설
- ① 오답. 다음 순환의 계획은 나선형 도식의 한 활동 영역이다.
- ② 정답. 네 영역의 이름에 해당하지 않으며 생명주기의 별도 활동이다.
- ③ 오답. 위험을 평가하고 해소하는 활동이 핵심이다.
- ④ 오답. 다음 수준의 제품을 개발하고 검증하는 영역이다.
편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — Figure 2, A spiral model of the software process 및 이어지는 네 영역 설명
5. UML 2.5.1 다이어그램의 분류에 대한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 최상위 분류는 생성·구조·행위의 세 종류이다.
- 크게 구조 다이어그램과 행위 다이어그램으로 구분한다.
- 클래스 다이어그램은 구조 다이어그램이다.
- 순차 다이어그램은 행위 다이어그램이다.
정답과 해설 보기
정답: 1
정답은 ①이다. UML 2.5.1은 다이어그램을 크게 구조와 행위로 분류한다. 구조 다이어그램은 클래스·컴포넌트 등의 정적 구성과 관계를, 행위 다이어그램은 활동·상태 변화·상호작용 등의 동적 측면을 표현한다.
생성·구조·행위라는 세 분류는 GoF 디자인 패턴을 목적에 따라 나눌 때 사용하는 구분과 혼동하기 쉽다. UML의 다이어그램 분류에서 생성이 세 번째 최상위 범주가 되는 것은 아니다. 순차 다이어그램은 상호작용 다이어그램의 한 종류이고 행위 범주에 속한다.
선지별 해설
- ① 정답. 생성은 UML 다이어그램의 최상위 분류가 아니다.
- ② 오답. UML의 큰 분류는 구조와 행위이다.
- ③ 오답. 클래스 다이어그램은 정적 구조를 나타낸다.
- ④ 오답. 순차 다이어그램은 시간 순서의 상호작용을 표현하는 행위 다이어그램이다.
편집 해설 근거: OMG UML 2.5.1 (2017) — Annex A, Figure A.5 및 structure/behavior diagram taxonomy 설명
6. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 XP의 가치에 해당하지 않는 것은 어떤 용어인가?
- 피드백
- 존중
- 의사소통
- 확약
정답과 해설 보기
정답: 4
정답은 ④ 확약이다. XP에서 널리 쓰는 다섯 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 팀은 짧은 개발·검증 주기에서 결과를 확인하고, 이해하기 쉬운 설계를 유지하며, 문제를 숨기지 않고 협력하는 방향으로 이 가치를 실천한다.
확약 또는 헌신으로 번역하는 Commitment는 Scrum의 가치 목록에서 볼 수 있다. 개발 과정에서 약속을 지키는 일이 XP에 불필요하다는 의미가 아니라, 문제에서 묻는 XP의 명명된 다섯 가치에 그 단어가 포함되지 않는다는 뜻이다.
선지별 해설
- ① 오답. 결과를 신속히 확인하는 피드백은 XP 가치다.
- ② 오답. 팀원과 기여를 존중하는 가치를 포함한다.
- ③ 오답. 요구와 설계에 대한 의사소통을 중시한다.
- ④ 정답. XP의 다섯 가치 목록에는 포함되지 않는다.
편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — 도입부 values of simplicity, communication, feedback, courage, and respect; Schwaber·Sutherland, The Scrum Guide (2020) — Scrum Values
7. 정형 기술 검토를 효과적으로 운영하기 위한 지침으로 부적절한 것은?
[학습용 개정문항]
- 참여 인원을 무조건 늘리면 검토 성과가 보장된다.
- 작성자 개인보다 산출물의 결함에 집중한다.
- 감정적인 논쟁을 줄이고 근거로 의견을 조정한다.
- 발견한 결함을 기록하고 수정 및 후속 조치를 관리한다.
정답과 해설 보기
정답: 1
정답은 ①이다. 정형 검토의 목적은 산출물의 결함을 발견하고 처리하는 것이다. 필요한 관점과 지식을 가진 참여자를 선정하고, 사전 준비와 회의 시간을 확보해야 한다. 인원이 많다는 사실만으로 결함 탐지 효과가 보장되는 것은 아니다.
검토는 작성자의 능력을 평가하거나 비난하는 자리가 아니다. 근거를 중심으로 의견을 조정하고 발견 사항과 처리 상태를 기록해야 한다. 해결 방안에 대한 모든 논의를 금지하는 것도 일반 원칙은 아니다. 다만 장시간의 해결 작업에 매몰되어 결함 식별과 기록이라는 검토 목표를 잃지 않도록 관리한다.
선지별 해설
- ① 정답. 참여 인원 수 자체가 검토 성과를 보장하지 않는다.
- ② 오답. 사람에 대한 평가보다 산출물의 결함에 집중한다.
- ③ 오답. 감정적인 논쟁을 줄이고 근거로 의견을 조정한다.
- ④ 오답. 결함 기록과 후속 조치를 관리하여 검토 목적을 유지한다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process; §3.2.5 Success Factors for Reviews
8. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 행위 다이어그램의 종류에 해당하지 않는 것은 어떤 용어인가?
- 활동
- 유스케이스
- 순차
- 클래스
정답과 해설 보기
정답: 4
정답은 ④ 클래스 다이어그램이다. UML에서 클래스 다이어그램은 클래스의 속성·연산과 클래스 사이의 관계를 나타내므로 구조 다이어그램에 속한다. 프로그램이 수행되면서 발생하는 순서나 상태 변화를 주된 대상으로 삼지 않는다.
활동 다이어그램은 작업 흐름을, 유스케이스 다이어그램은 외부 행위자와 시스템이 제공하는 사용 사례의 관계를, 순차 다이어그램은 참여자 사이 메시지의 순서를 표현한다. 이 세 종류는 UML의 행위 다이어그램 범주에 속한다. 이름에 객체가 나타난다고 모두 구조 다이어그램인 것은 아니다.
선지별 해설
- ① 오답. 활동의 흐름을 나타내는 행위 다이어그램이다.
- ② 오답. 유스케이스는 UML에서 행위 다이어그램으로 분류된다.
- ③ 오답. 메시지 순서를 나타내는 상호작용 다이어그램이다.
- ④ 정답. 클래스와 관계의 정적 구조를 나타낸다.
편집 해설 근거: OMG UML 2.5.1 (2017) — Annex A Figure A.5; Activities, UseCases, Interactions, Structured Classifiers
9. 두 선택지를 항상 펼쳐 표시하고 같은 그룹에서 하나만 선택하게 하려 한다. 이 동작을 직접 제공하는 일반적인 UI 요소는?
[학습용 개정문항]
- Command Button
- Combo Box
- Check Box
- Radio Button
정답과 해설 보기
정답: 4
정답은 ④ Radio Button이다. 라디오 버튼 그룹은 여러 선택지를 펼쳐 보여 주면서 그중 하나만 선택하게 하는 입력 방식이다. 한 항목을 선택하면 같은 그룹의 이전 선택이 해제되어 상호 배타적인 값의 입력에 적합하다.
콤보 상자도 단일 선택을 구현할 수 있지만 일반적인 드롭다운 형태에서는 모든 보기가 항상 펼쳐져 있지 않다. 체크 상자는 개별 항목을 독립적으로 켜거나 끄는 용도이고, 명령 버튼은 동작을 실행한다. 선택할 값의 내용만으로 UI 요소가 결정되지는 않는다. 모든 보기의 상시 표시와 그룹 내 단일 선택이라는 조건을 함께 확인한다.
선지별 해설
- ① 오답. 일반적인 명령 버튼은 동작 실행을 위한 요소다.
- ② 오답. 일반적인 콤보 상자는 펼치기 전 모든 선택지를 나란히 보여 주지 않는다.
- ③ 오답. 독립적으로 여러 항목을 선택하는 용도와 구별된다.
- ④ 정답. 보기를 펼쳐 표시하면서 같은 그룹에서 하나만 선택한다.
편집 해설 근거: W3C WAI-ARIA Authoring Practices, Radio Group Pattern — About This Pattern; WAI-ARIA Roles, States, and Properties
10. 애자일 선언의 네 가지 가치 비교에서 더 중시한다고 밝힌 왼쪽 항목에 포함되지 않는 것은?
[학습용 개정문항]
- 고객과의 협력
- 변화에 대한 대응
- 계획 따르기
- 개인과 상호작용
정답과 해설 보기
정답: 3
정답은 ③ 계획 따르기이다. 애자일 선언은 개인과 상호작용, 작동하는 소프트웨어, 고객과의 협력, 변화에 대한 대응을 각각 비교 대상보다 더 중시한다고 밝힌다. 변화 대응과 대비되는 오른쪽 항목이 계획 따르기다.
이는 계획을 세우지 않거나 계약·문서·도구가 가치 없다는 주장이 아니다. 선언 자체가 오른쪽 항목에도 가치가 있음을 명시한다. 따라서 단어 계획을 무조건 애자일의 반대라고 외우기보다, 상황이 바뀌면 고정된 계획을 따르는 것보다 변화에 대응하는 능력을 우선한다는 비교 관계를 이해해야 한다.
선지별 해설
- ① 오답. 고객과의 협력은 선언에서 더 중시하는 항목이다.
- ② 오답. 변화에 대한 대응을 계획 준수보다 더 중시한다.
- ③ 정답. 가치가 없어서가 아니라 비교 문장의 오른쪽 항목이기 때문이다.
- ④ 오답. 개인과 상호작용은 프로세스·도구보다 더 중시하는 항목이다.
편집 해설 근거: Manifesto for Agile Software Development (2001) — 네 가지 가치 비교 문장 및 That is, while there is value… 문장
11. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 자료 흐름도에 대한 설명과 관련성이 낮은 것은 어떤 용어인가?
- 최하위 프로세스는 소단위 명세서를 가진다.
- 데이터 출력을 위해서는 반드시 입력이 필요하다.
- 기능에 의한 작업 소요시간을 파악하기 위한 도표이다.
- 프로세스, 자료 흐름, 자료 저장소, 단말로 구성된다.
정답과 해설 보기
정답: 3
정답은 ③이다. 자료 흐름도는 외부 개체, 처리, 자료 저장소, 자료 흐름을 이용해 데이터가 어디서 들어와 어떻게 변환되고 어디로 나가는지를 나타낸다. 화살표는 데이터의 이동을 뜻하며 작업의 소요 시간을 직접 표시하는 기호가 아니다.
처리를 단계적으로 분해하면 더 낮은 수준의 자료 흐름도를 만들 수 있고, 더 분해하지 않는 처리의 내부 규칙은 소단위 명세로 설명할 수 있다. 처리의 출력은 입력 데이터나 읽어 온 데이터에 근거해야 한다. 일정과 작업 시간을 분석하는 간트 차트·PERT·CPM 등과 목적을 구분해야 한다.
선지별 해설
- ① 오답. 더 분해하지 않는 처리의 세부 규칙을 소단위 명세로 기술할 수 있다.
- ② 오답. 처리에서 출력 데이터를 만들기 위한 입력의 근거가 필요하다.
- ③ 정답. 자료 이동·변환의 모델이며 작업 소요 시간 분석 도표가 아니다.
- ④ 오답. 처리·흐름·저장소·외부 개체가 기본 구성이다.
편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram; IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §4.3 Behavioral Design Descriptions, data flow diagrams
12. 설계 검토 회의에서 다음 항목을 판단한다. 기능과 데이터의 관계를 계층 구조로 표현하여 한눈에 이해하기 쉽도록 구성한 도표는 어떤 용어인가?
- Data Dictionary
- Nassi-Schneiderman
- Hierarchy Input Process Output
- Data Flow Diagram
정답과 해설 보기
정답: 3
정답은 ③ HIPO이다. HIPO는 Hierarchy plus Input-Process-Output을 뜻한다. 계층적으로 구성한 기능의 관계와 각 기능의 입력·처리·출력을 함께 문서화하여 전체 구조에서 세부 기능으로 내려가며 이해할 수 있게 한다.
IBM의 원래 설명은 가시적 목차, 개요 도표, 상세 도표로 이루어진 문서 묶음을 제시한다. 계층 구조를 보여 주는 목차와 입력·처리·출력을 설명하는 도표의 역할은 구별된다. 자료 사전은 데이터의 정의, NS 차트는 제어 논리, DFD는 데이터 흐름에 초점을 둔다.
선지별 해설
- ① 오답. 자료 사전은 자료 항목과 구조의 의미를 정의한다.
- ② 오답. NS 차트는 순차·선택·반복의 제어 논리를 표현한다.
- ③ 정답. 기능 계층과 입력·처리·출력을 연결해 문서화하는 HIPO이다.
- ④ 오답. DFD는 처리 사이의 데이터 이동·변환을 보여 준다.
편집 해설 근거: IBM, Improved Programming Technologies—An Overview, GC20-1850-0 (1974), 보존 원문 — Chapter 5 Hierarchy plus Input-Process-Output, pp.13–17
13. PostgreSQL 18의 시스템 카탈로그에 대한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 객체를 생성·변경하면 관련 카탈로그도 갱신된다.
- GRANT와 REVOKE는 카탈로그 내용을 조회하는 명령이다.
- 일반적으로 직접 수동 수정 대신 해당 SQL 명령을 사용한다.
- DBMS가 객체의 정의와 내부 관리 정보를 유지한다.
정답과 해설 보기
정답: 2
정답은 ②이다. PostgreSQL의 시스템 카탈로그는 테이블·열 등의 스키마 메타데이터와 내부 관리 정보를 저장하는 테이블이다. 조회에는 권한 범위 안에서 SELECT를 사용한다. GRANT와 REVOKE 같은 권한 제어 명령은 카탈로그 내용을 조회하는 SELECT를 대신하지 않는다.
CREATE DATABASE 등의 명령을 실행하면 서버가 관련 카탈로그를 갱신한다. 시스템 카탈로그가 일반 테이블 형태이므로 직접 수정이 절대 불가능하다고 단정할 수는 없지만, 공식 문서는 수동 변경 대신 해당 SQL 명령을 사용하도록 설명한다. 다른 DBMS에도 동일한 직접 수정 규칙이 있다고 일반화하지 않는다.
선지별 해설
- ① 오답. 객체를 생성·변경하는 명령에 맞춰 관련 메타데이터가 갱신된다.
- ② 정답. GRANT·REVOKE는 권한 제어 명령이며 조회 명령이 아니다.
- ③ 오답. 수동 수정 대신 대응하는 SQL 명령을 사용하는 것이 일반 원칙이다.
- ④ 오답. 서버가 객체의 정의와 관리 정보를 카탈로그에 유지한다.
편집 해설 근거: PostgreSQL 18, Chapter 52 System Catalogs — Chapter 52 도입부, system catalogs are regular tables 및 CREATE DATABASE 예; PostgreSQL 18 — SELECT — Description
14. 소프트웨어 개발과 품질 관리의 원칙으로 부적절한 것은?
[학습용 개정문항]
- 단계별 산출물과 주요 결정의 기록을 유지한다.
- 품질을 지속적으로 검증한다.
- 프로젝트의 목적과 제약에 적합한 기술을 선택한다.
- 기능과 품질에 관계없이 하드웨어 비용만 줄이면 충분하다.
정답과 해설 보기
정답: 4
정답은 ④이다. 소프트웨어 공학은 요구를 만족하는 소프트웨어를 제약 안에서 개발하고 운영·유지하기 위한 체계적인 활동이다. 산출물과 결정의 기록, 지속적인 품질 확인, 요구와 환경에 맞는 기술 선택은 결과를 추적하고 검증하는 데 도움이 된다.
하드웨어 비용은 고려할 수 있는 경제적 요소지만 그 비용만 줄였다고 소프트웨어의 목적을 달성했다고 할 수는 없다. 기능·품질·위험·전체 생명주기 비용을 함께 판단해야 한다. 최신 기술을 무조건 도입하는 것도 원칙이 아니므로, 기술 선택은 프로젝트의 목적과 제약에 맞아야 한다.
선지별 해설
- ① 오답. 기록은 산출물과 의사결정의 추적을 돕는다.
- ② 오답. 품질 확인은 개발 및 유지 활동 전반에서 필요하다.
- ③ 오답. 목적·환경·제약에 적합한 기술을 선택한다.
- ④ 정답. 하드웨어 비용만으로 기능과 품질의 충족을 판단할 수 없다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Economics §1 Fundamentals; Software Quality §1 Software Quality Fundamentals
15. 마우스의 주 버튼을 한 번 눌렀다가 놓는 기본 입력 동작의 명칭은?
[학습용 개정문항]
- Click
- Tap
- Pinch
- Drag
정답과 해설 보기
정답: 1
정답은 ① Click이다. 이 문항에서는 마우스의 주 버튼을 눌렀다가 놓는 기본 동작을 click으로 부른다. Tap은 화면을 짧게 접촉했다 떼는 터치 동작, Pinch는 두 접촉점의 간격을 바꾸는 동작, Drag는 접촉한 채 위치를 이동하는 동작이다.
다만 웹의 click 이벤트는 마우스만으로 발생하는 것은 아니다. 터치나 키보드 조작도 활성화 동작으로 연결될 수 있다. 따라서 ‘click은 NUI에서 절대로 발생하지 않는다’고 일반화하지 않고, 물리적인 입력 동작의 명칭과 소프트웨어가 발생시키는 이벤트를 구별해야 한다.
선지별 해설
- ① 정답. 문항에 제시된 마우스 버튼의 누름·놓기 동작이다.
- ② 오답. 화면을 짧게 접촉하는 터치 동작이다.
- ③ 오답. 두 접촉점 사이 간격을 변화시키는 동작이다.
- ④ 오답. 누른 상태로 위치를 옮기는 동작이다.
편집 해설 근거: W3C, UI Events Working Draft (2016-08-04), Mouse events — Mouse Events, click event type; Android Developers, Use touch gestures — Use touch gestures 도입부; Android Developers, Drag and scale — Drag and scale, scale gesture detection
16. 모듈의 유지보수성을 높이기 위한 일반적인 설계 방향은?
[학습용 개정문항]
- 응집도를 높이고 결합도를 낮춘다.
- 응집도를 낮추고 결합도를 높인다.
- 응집도와 결합도를 모두 낮춘다.
- 응집도와 결합도를 모두 높인다.
정답과 해설 보기
정답: 1
정답은 ①이다. 응집도는 하나의 모듈 안에 있는 요소가 동일한 책임과 얼마나 밀접하게 관련되는지를 나타내고, 결합도는 서로 다른 모듈이 얼마나 의존하는지를 나타낸다. 보통 모듈 내부의 응집도는 높이고 모듈 사이의 불필요한 결합은 줄이는 방향을 지향한다.
관련 책임을 한곳에 모으면 변경 이유와 영향 범위를 이해하기 쉽고, 외부 모듈의 내부 구현에 대한 의존을 줄이면 변경의 파급을 제한할 수 있다. 이 원칙은 결합을 전혀 없애라는 뜻이 아니다. 명확한 인터페이스를 통해 필요한 협력은 유지해야 한다.
선지별 해설
- ① 정답. 관련 책임을 모으고 외부 의존을 줄이는 방향이다.
- ② 오답. 내부 관련성을 낮추고 외부 의존을 키우는 방향이다.
- ③ 오답. 결합을 낮추는 것은 유용하지만 응집도도 낮추는 것은 목표가 아니다.
- ④ 오답. 응집도는 높여도 불필요한 결합을 함께 높이지 않는다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design §1.4 Software Design Principles, Coupling and Cohesion
17. 시스템 구조·화면 구성·DB의 전체 구조를 정하는 상위 설계와 비교할 때, 모듈의 구체적인 알고리즘을 정하는 상세 설계에 해당하는 것은?
[학습용 개정문항]
- 시스템 구조
- 화면 구성
- DB 설계
- 내부 로직
정답과 해설 보기
정답: 4
정답은 ④ 내부 로직이다. 상위 수준에서는 시스템의 주요 구성 요소와 관계, 사용자에게 제공할 화면 구조, 데이터의 전반적인 구성을 결정한다. 상세 설계는 그 결정을 구체화하여 모듈 내부의 처리 절차와 알고리즘을 구현 가능한 수준으로 설명한다.
화면이나 데이터베이스라는 단어가 항상 상위 설계를 뜻하는 것은 아니다. 버튼의 세부 동작이나 물리 인덱스 등의 상세 결정도 존재한다. 여기서는 전체 구성 관점의 세 항목과 모듈 내부의 구체적인 처리 로직을 비교한다는 조건에 따라 구분한다.
선지별 해설
- ① 오답. 주요 구성 요소와 연결 관계는 상위 구조에 해당한다.
- ② 오답. 전체 화면의 구성과 관계를 정하는 수준이다.
- ③ 오답. 전체 데이터 구조를 결정하는 설계 수준이다.
- ④ 정답. 모듈 내부의 구체적인 알고리즘은 상세 설계에 해당한다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Design 도입부; §2.1 High-Level Design; §2.2 Detailed Design
18. 요구 분석과 시스템 설계에서 구조·행위를 여러 다이어그램으로 표현하는 표준 모델링 언어는?
[학습용 개정문항]
- UML
- Visual Table
- Overview
- Data Dictionary
정답과 해설 보기
정답: 1
정답은 ① UML이다. UML은 시스템의 구조와 행위를 여러 관점에서 표현하는 표준 모델링 언어다. 요구 분석에서는 행위자와 유스케이스로 이용 목적을 표현할 수 있고, 설계에서는 클래스·상호작용·상태 등의 모델을 사용한다.
UML 자체가 하나의 다이어그램 이름은 아니다. 여러 모델 요소와 표현 규칙을 제공하는 언어이고, 유스케이스 다이어그램이나 클래스 다이어그램이 그 언어로 작성하는 도표의 종류다. 자료 사전은 데이터의 정의를 정리하는 문서이므로 UML과 같은 모델링 언어의 명칭으로 볼 수 없다.
선지별 해설
- ① 정답. 구조·행위를 표현하는 표준 모델링 언어다.
- ② 오답. UML과 같은 표준 모델링 언어 명칭이 아니다.
- ③ 오답. 개요라는 일반적인 표현이지 해당 언어 이름이 아니다.
- ④ 오답. 데이터 항목과 구조의 정의를 정리하는 자료 사전이다.
편집 해설 근거: OMG UML 2.5.1 (2017) — §1 Scope; §18 UseCases; Annex A Diagrams
19. 설계 검토 회의에서 다음 항목을 판단한다. 서브 시스템에 입력된 데이터를 처리한 결과를 다음 서브 시스템으로 전달하는 형식의 아키텍처는 어떤 용어인가?
- MVC
- Pipe-Filter
- Peer-To-Peer
- Broker
정답과 해설 보기
정답: 2
정답은 ② Pipe-Filter이다. 필터는 입력 데이터를 받아 특정 변환이나 처리를 수행하고, 파이프는 그 출력이 다른 필터의 입력으로 전달되도록 연결한다. 처리를 여러 단계로 나누면 각 단계의 책임을 분리하고 독립적으로 재사용하거나 바꿀 수 있다.
로그를 읽고, 필요한 행을 걸러 내고, 집계한 뒤 출력하는 흐름이 한 예다. 구현에 따라 병렬 처리와 버퍼링을 사용할 수도 있으므로 모든 필터가 반드시 한 번에 하나씩만 실행된다고 단정하지 않는다. MVC의 역할 분리나 Broker의 요청 중개와는 분해 기준이 다르다.
선지별 해설
- ① 오답. 모델·뷰·컨트롤러의 역할을 분리하는 구조다.
- ② 정답. 필터의 처리 결과를 파이프로 다음 필터에 전달한다.
- ③ 오답. 참여 노드들이 동등하게 서비스를 주고받는 구조다.
- ④ 오답. 분산된 구성 요소 사이 요청과 응답의 중개에 초점을 둔다.
편집 해설 근거: Microsoft Azure Architecture Center, Pipes and Filters pattern (2026-10-05 확인) — Solution; Issues and considerations
20. 전형적인 폭포수 개발 접근에 대한 설명으로 부적절한 것은?
[학습용 개정문항]
- 단계를 순차적으로 진행하며 필요한 재검토와 변경은 통제한다.
- 단계별 산출물을 확인하여 다음 단계의 입력으로 사용한다.
- 요구사항 변경을 어느 단계에서나 비용 없이 자유롭게 반영하기 쉽다.
- 요구사항이 비교적 명확하고 안정적인 상황에서 계획하기 쉽다.
정답과 해설 보기
정답: 3
정답은 ③이다. 전형적인 폭포수 접근은 요구사항을 먼저 정의하고 설계·구현·시험 등의 단계를 계획된 순서로 진행한다. 앞 단계의 산출물이 후속 단계의 입력이 되므로 늦게 발견한 변경은 여러 산출물을 다시 검토하게 만들 수 있다.
따라서 단계마다 요구 변경을 비용 없이 자유롭게 반영하기 쉽다는 설명은 맞지 않는다. 그렇다고 이전 단계로 돌아가는 일이 절대 불가능한 것은 아니다. 변경의 영향과 재작업을 관리해야 한다는 의미다. 요구가 비교적 안정적이고 단계별 검토·산출물이 중요한 상황과 연결하여 이해한다.
선지별 해설
- ① 오답. 기본 진행은 순차적이지만 재검토와 변경 통제는 가능하다.
- ② 오답. 단계별 산출물을 확인하고 후속 단계로 진행하는 방식이다.
- ③ 정답. 변경의 파급과 재작업을 고려해야 하므로 자유롭고 저렴하다고 보장할 수 없다.
- ④ 오답. 요구가 안정적일 때 계획을 세우기 상대적으로 쉽다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements 도입부의 waterfall life cycle; Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — The waterfall model 및 Figure 1 설명
정보처리기사 필기 기출문제 · 소프트웨어 개발
21. 이미 일정이 지연된 소프트웨어 프로젝트에 인원을 추가하면 교육·의사소통 비용으로 더 늦어질 수 있다는 관찰을 가리키는 법칙은?
[학습용 개정문항]
- Effort의 법칙
- Pareto의 법칙
- Context의 법칙
- Brooks의 법칙
정답과 해설 보기
정답: 4
정답은 ④ Brooks의 법칙이다. 이미 일정이 늦어진 소프트웨어 프로젝트에 인력을 추가하면 새 인원의 학습과 기존 인원의 설명·협업에 시간이 들고 의사소통 관계도 늘어나 오히려 더 늦어질 수 있다는 관찰이다. 사람 수와 개발 속도가 단순 비례하지 않는 이유를 보여 준다.
이는 인력 추가가 언제나 실패한다는 수학 법칙이 아니다. 작업의 분할 가능성, 새 인력의 경험, 남은 일정과 교육 비용에 따라 결과가 다르다. Pareto 원리는 결함이나 비용 등이 일부 원인에 집중되는 현상과 관련되며, 지연된 프로젝트의 인력 투입 문제와는 구별된다.
선지별 해설
- ① 오답. 제시한 인력 추가와 일정 지연의 관찰을 부르는 이름이 아니다.
- ② 오답. 일부 원인에 결과가 집중되는 현상과 관련된 원리다.
- ③ 오답. 제시한 프로젝트 관리 법칙의 명칭이 아니다.
- ④ 정답. 지연된 프로젝트에 사람을 더 넣어 오히려 늦어질 수 있다는 Brooks의 관찰이다.
편집 해설 근거: Frederick P. Brooks Jr., The Mythical Man-Month, Chapter 2 (Duke 강의용 발췌 사본) — Chapter 2 The Mythical Man-Month, Adding manpower to a late software project 및 교육·의사소통 비용 설명
22. n개 원소에 대한 일반적인 배열 기반 구현에서 최악 시간의 증가 차수(Θ)가 나머지 셋과 다른 정렬은?
[학습용 개정문항]
- 선택 정렬
- 힙 정렬
- 삽입 정렬
- 버블 정렬
정답과 해설 보기
정답: 2
정답은 ② 힙 정렬이다. 일반적인 이진 힙 정렬은 힙을 만든 뒤 최댓값을 하나씩 제거하고 힙 조건을 복구한다. 제거 단계에서 로그 높이만큼 비교·교환을 반복하므로 최악의 전체 시간은 Θ(n log n)이다.
기본 선택 정렬은 남은 구간의 최솟값을 찾는 비교를 반복하고, 삽입 정렬과 버블 정렬은 역순 입력 등에서 이차적인 이동 또는 교환을 수행하므로 최악 시간은 Θ(n²)이다. 최선·평균·최악 중 어느 경우를 묻는지 구별해야 하며, 삽입 정렬의 정렬된 입력에서의 빠른 동작을 최악 시간과 혼동하지 않는다.
선지별 해설
- ① 오답. 기본 선택 정렬의 최악 시간은 Θ(n²)이다.
- ② 정답. 이진 힙 정렬의 최악 시간은 Θ(n log n)이다.
- ③ 오답. 기본 배열 삽입 정렬의 최악 시간은 Θ(n²)이다.
- ④ 오답. 기본 버블 정렬의 최악 시간은 Θ(n²)이다.
편집 해설 근거: NIST DADS, heapsort — Definition 및 performance 설명; NIST DADS — selection sort — Definition; NIST DADS, insertion sort — Definition; NIST DADS — bubble sort — Definition
23. 소프트웨어 개발 언어를 선정하는 기준으로 부적절한 것은?
[학습용 개정문항]
- 담당 개발자의 경험과 지식을 고려한다.
- 알고리즘과 자료 구조의 구현 요구를 고려한다.
- 언어 이름의 알파벳 순서를 기술 요구보다 우선한다.
- 소프트웨어의 수행 환경을 고려한다.
정답과 해설 보기
정답: 3
정답은 ③이다. 개발 언어는 필요한 기능과 자료 구조를 표현할 수 있는지, 목표 운영환경과 도구가 지원되는지, 개발·유지 인력이 다룰 수 있는지 등을 고려하여 선택한다. 언어의 특징만 아니라 라이브러리와 구축·시험 환경도 실제 구현에 영향을 준다.
언어 이름의 알파벳 순서를 기술 요구보다 우선하는 것은 적절한 선택 근거가 아니다. 한편 개발 일정과 인력의 가용성은 학습 비용이나 도구 준비 시간을 좌우하므로 언어 선정과 무관하다고 단정할 수 없다. 이러한 실제 제약과 무관한 이름의 순서를 기술 적합성보다 우선해서는 안 된다.
선지별 해설
- ① 오답. 경험과 지식은 구현·유지보수 가능성과 연결된다.
- ② 오답. 알고리즘·자료 구조를 적절하게 표현하고 지원하는지 확인해야 한다.
- ③ 정답. 이름의 순서는 요구 충족이나 기술 적합성을 판단하는 기준이 아니다.
- ④ 오답. 대상 플랫폼과 실행 환경의 지원 여부를 고려한다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Construction §3.2 Construction Languages; §2.2 Construction Planning
24. 개발·시험 담당자가 다음 사례를 검토한다. 분기마다 가장 최적의 해를 선택하여 결과를 도출하는 방식의 알고리즘으로, 반드시 종합적인 최적의 해를 보장하지 않는 기법은 어떤 용어인가?
- Greedy
- Dynamic
- Recursive
- Backtracking
정답과 해설 보기
정답: 1
정답은 ① Greedy, 즉 탐욕법이다. 탐욕 알고리즘은 현재 단계에서 가장 유리해 보이는 선택을 하고 그 선택을 바탕으로 해를 구성한다. 이때 각 단계의 국소적인 최선이 전체 문제의 최적해로 이어지는지는 문제의 구조에 달려 있다.
어떤 문제에서는 탐욕 선택의 정당성을 증명할 수 있지만 다른 문제에서는 더 나쁜 전체 해를 얻을 수 있다. 동적 계획법은 부분 문제의 해를 저장·결합하는 접근, 재귀는 자기 자신을 호출하는 구성 방식, 백트래킹은 후보가 조건을 만족하지 않으면 되돌아가 다른 선택을 탐색하는 방식이다.
선지별 해설
- ① 정답. 현재 단계의 국소적으로 유리한 선택을 반복한다.
- ② 오답. 부분 문제의 해를 저장하고 결합하는 접근이다.
- ③ 오답. 자기 자신을 호출하는 구성 방식이며 선택 원칙을 뜻하지 않는다.
- ④ 오답. 조건을 만족하지 않는 후보에서 되돌아가 탐색한다.
편집 해설 근거: NIST DADS, greedy algorithm — Definition 및 Note
25. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소스 코드의 정적 분석 도구에 해당하지 않는 것은 어떤 용어인가?
- SonarQube
- checkstyle
- Valgrind
- cppcheck
정답과 해설 보기
정답: 3
정답은 ③ Valgrind이다. 보기의 Valgrind는 실행되는 프로그램을 관찰하는 디버깅·프로파일링 도구 모음이다. 대표 도구 Memcheck는 프로그램 실행 중 메모리 읽기·쓰기와 할당·해제를 추적하여 잘못된 접근이나 누수를 찾는다.
SonarQube, Checkstyle, Cppcheck는 소스의 구조와 규칙을 분석하는 정적 검사에 사용하는 도구다. 정적 분석 도구 자체가 실행된다는 사실과 분석 대상 프로그램을 실행한다는 사실은 다르다. Valgrind가 소스 줄 번호를 표시할 수 있다고 해서 소스만 검사하는 정적 분석으로 바뀌는 것은 아니다.
선지별 해설
- ① 오답. 소스 코드의 정적 품질·보안 분석 기능을 제공한다.
- ② 오답. Java 소스를 코딩 규칙에 따라 검사하는 정적 분석 도구다.
- ③ 정답. Memcheck 등으로 실제 프로그램 실행을 관찰하는 동적 분석 도구 모음이다.
- ④ 오답. C와 C++ 소스를 대상으로 하는 정적 분석 도구다.
편집 해설 근거: Valgrind 공식 문서, Tool Suite: Memcheck — Tool Suite: Memcheck; Checkstyle 공식 프로젝트, About 및 Limitations (2026-10-05 확인) — About; Limitations; Sonar, SonarQube capabilities, Static code analysis — Static code analysis; Cppcheck 공식 저장소, 프로젝트 소개 — README, About
26. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 아래의 중위식을 후위식으로 올바르게 변환한 것은 어떤 용어인가? <보기> (A-B)*C+D
- AB-C*D+
- A-B-CD*+
- AB-C+D*
- A-BC*D+
정답과 해설 보기
정답: 1
정답은 ① AB-C*D+이다. 괄호 안의 A-B를 먼저 계산하므로 후위식으로는 AB-가 된다. 그 결과와 C를 곱하면 AB-C*이고, 마지막으로 D를 더하면 AB-C*D+가 된다. 후위식에서는 연산자가 자신이 사용할 피연산자 뒤에 놓인다.
식 트리로 보면 루트는 덧셈이고 왼쪽 자식은 곱셈, 그 안쪽에 뺄셈이 있다. 각 부분 식의 피연산자를 먼저 방문하고 연산자를 나중에 방문하면 같은 순서를 얻는다. A와 B의 순서도 중요하며, 뺄셈에서는 이를 바꾸면 다른 식이 된다.
선지별 해설
- ① 정답. A-B, 그 결과와 C의 곱, 마지막 D와의 합 순서다.
- ② 오답. 첫 연산자 앞에 필요한 두 피연산자가 배치되지 않았다.
- ③ 오답. (A-B+C)*D에 해당하여 원래 식의 연산 순서와 다르다.
- ④ 오답. 시작 부분의 뺄셈에 필요한 피연산자가 부족하다.
편집 해설 근거: GNU dc manual — reverse Polish notation — GNU dc Introduction 및 Arithmetic
27. 오랜 기간 업무에 사용해 온 시스템이 오래된 기술·구조에 의존하여 코드의 이해와 변경이 어렵다. 이러한 기존 시스템의 코드를 가리키는 일반적인 용어는?
[학습용 개정문항]
- Hard Code
- Spaghetti Code
- Legacy Code
- Clean Code
정답과 해설 보기
정답: 3
정답은 ③ Legacy Code이다. 여기서는 오랜 기간 업무를 수행해 온 기존 시스템의 코드로, 오래된 기술이나 구조에 의존하여 이해·변경·이행이 어려운 코드를 뜻한다. 문서나 담당자의 지식이 부족하면 유지보수의 어려움이 더 커질 수 있다.
레거시의 범위는 문맥에 따라 달라서 일부 저자는 테스트가 없는 코드라는 정의도 사용한다. 단지 오래됐다는 이유로 모든 코드가 품질이 나쁘거나 사용할 수 없다고 단정하지 않는다. Hard Code는 값을 코드에 직접 박아 넣는 방식, Spaghetti Code는 제어 구조가 얽힌 코드라는 다른 특징을 가리킨다.
선지별 해설
- ① 오답. 환경·데이터 값을 코드에 직접 고정하는 방식과 관련된다.
- ② 오답. 복잡하게 얽힌 구조를 가리키며 오래된 기술이라는 조건과는 구별된다.
- ③ 정답. 기존 업무를 수행하면서 오래된 기술·구조의 제약을 가진 코드다.
- ④ 오답. 이해와 변경이 쉬운 코드에 지향하는 품질 표현이다.
편집 해설 근거: IBM, What is legacy code? (2026-04-06 갱신) — Legacy code defined; Challenges of maintaining legacy code
28. ISO/IEC 25010:2011 제품 품질 모델의 여덟 주특성에 포함되지 않는 것은?
[학습용 개정문항]
- 성능 효율성
- 구매 가격
- 이식성
- 유지보수성
정답과 해설 보기
정답: 2
정답은 ② 구매 가격이다. 문항에 지정한 ISO/IEC 25010:2011의 제품 품질 모델은 기능 적합성, 성능 효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성의 여덟 주특성을 사용한다. 성능 효율성·이식성·유지보수성은 이 목록에 포함된다.
구매 가격은 조달이나 경제성 판단에 필요한 정보지만 이 모델의 제품 품질 주특성 이름은 아니다. 법규 준수도 실제 요구사항이 될 수 있으므로 품질과 무관하다고 단정하면 안 된다. 또한 2011판은 구판이며 이후 개정판의 분류와 섞지 않도록 판을 명시했다.
선지별 해설
- ① 오답. 자원 사용과 응답 시간 등에 관련된 제품 품질 주특성이다.
- ② 정답. 구매 판단 요소이지만 지정 모델의 여덟 주특성 이름은 아니다.
- ③ 오답. 다른 환경으로 옮길 수 있는 능력과 관련된 주특성이다.
- ④ 오답. 분석·변경·시험 등을 용이하게 하는 능력과 관련된 주특성이다.
편집 해설 근거: ISO/IEC 25010:2011, Software quality model (문항에 명시한 구판) — §4.2 Product quality model 및 ISO 공식 구판·대체판 표시
29. 일반적인 연결 리스트와 같은 수의 원소를 빈 여유 용량 없이 저장한 배열을 비교한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 노드에 포인터를 저장하므로 배열보다 항상 적은 기억공간을 쓴다.
- 일반 연결 리스트에서 n번째 원소에 접근하려면 앞에서부터 링크를 따라가야 한다.
- 단일·이중·원형 등 여러 종류의 연결 리스트가 있다.
- 노드가 연속된 메모리 위치에 있어야 할 필요는 없다.
정답과 해설 보기
정답: 1
정답은 ①이다. 일반적인 연결 리스트 노드는 데이터뿐 아니라 다음 노드를 가리키는 링크도 저장한다. 같은 수의 데이터를 빈 용량 없는 연속 배열과 비교하면 링크와 할당 관리 비용이 추가될 수 있으므로 포인터를 사용한다는 이유만으로 항상 메모리가 절약되지는 않는다.
연결 리스트는 원소 위치를 인덱스로 즉시 계산하는 배열과 달리 보통 링크를 따라가며 탐색한다. 반면 삽입·삭제할 위치와 연결 관계를 이미 알고 있다면 주변 링크를 바꾸어 처리할 수 있다. 접근·갱신 비용과 여유 용량 등 조건에 따라 장단점을 비교해야 한다.
선지별 해설
- ① 정답. 링크 저장 공간 등이 추가되므로 언제나 더 작다고 할 수 없다.
- ② 오답. 일반 리스트의 n번째 원소 접근은 링크를 차례로 따라가야 한다.
- ③ 오답. 단일·이중·원형 연결 리스트 등의 변형이 있다.
- ④ 오답. 연속 공간을 한꺼번에 확보하지 않고 노드를 연결하는 구조다.
편집 해설 근거: NIST DADS, linked list — Definition; Specialization; Note
30. Automotive SPICE 3.1에서 사용하는 프로세스 능력 수준의 명칭이 잘못 연결된 것은?
[학습용 개정문항]
- 레벨2 – 최적
- 레벨3 – 확립
- 레벨0 – 불완전
- 레벨1 – 수행
정답과 해설 보기
정답: 1
정답은 ①이다. 지정한 Automotive SPICE 3.1은 ISO/IEC 33020:2015의 능력 측정 체계를 사용한다. 수준 0은 불완전, 1은 수행, 2는 관리, 3은 확립, 4는 예측 가능, 5는 혁신 프로세스이다. 수준 2를 최적이라고 연결한 보기는 틀렸다.
수준 1에서는 프로세스의 목적을 달성하고, 수준 2에서는 수행을 계획·점검·조정하면서 작업 산출물도 관리한다. 수준 3은 정의된 표준 프로세스를 바탕으로 수행하는 단계다. 구 ISO/IEC 15504의 번역이나 CMMI 성숙도 명칭을 다른 판의 SPICE 능력 수준과 섞지 않아야 한다.
선지별 해설
- ① 정답. 이 체계에서 수준 2의 명칭은 Managed, 관리이다.
- ② 오답. 수준 3은 Established, 확립 프로세스이다.
- ③ 오답. 수준 0은 Incomplete, 불완전 프로세스이다.
- ④ 오답. 수준 1은 Performed, 수행 프로세스이다.
편집 해설 근거: VDA QMC, Automotive SPICE Process Assessment Model 3.1 (2017) — §3.2.1 Process capability levels and process attributes, pp.15–16
31. ISTQB CTFL 2018 v3.1.1의 검토 절차에서 계획 다음에 오는 네 주요 활동을 순서대로 나열한 것은?
[학습용 개정문항]
- 검토 착수 → 개별 검토 → 이슈 소통과 분석 → 수정과 보고
- 이슈 소통과 분석 → 수정과 보고 → 검토 착수 → 개별 검토
- 개별 검토 → 이슈 소통과 분석 → 수정과 보고 → 검토 착수
- 검토 착수 → 개별 검토 → 수정과 보고 → 이슈 소통과 분석
정답과 해설 보기
정답: 1
정답은 ①이다. 지정한 ISTQB 문서의 검토 절차는 계획, 검토 착수, 개별 검토, 이슈 소통과 분석, 수정과 보고의 순서로 설명된다. 계획에서는 범위와 역할을 정하고, 착수에서는 자료와 절차를 공유한 뒤 참여자가 개별적으로 잠재 결함을 찾는다.
이후 발견 사항을 함께 분석하여 처리 책임과 상태를 정하고, 필요한 수정을 수행하고 결과를 기록·확인한다. 검토 기법과 표준에 따라 단계의 이름과 묶음은 다를 수 있다. 따라서 여섯 단계가 모든 인스펙션의 유일한 순서라고 외우지 않고 이 문항에서 지정한 절차를 기준으로 답한다.
선지별 해설
- ① 정답. 자료와 절차 공유, 개별 준비, 이슈 분석, 수정·보고 순서다.
- ② 오답. 착수와 개별 검토에 앞서 이슈 분석·수정을 수행하는 순서가 아니다.
- ③ 오답. 개별 검토 전 검토의 자료·범위·절차를 공유한다.
- ④ 오답. 발견 사항을 분석하기 전에 수정·보고를 완료하는 순서가 아니다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process
32. 개발·시험 담당자가 다음 사례를 검토한다. 문제 처리 프로세스를 도형을 통해 논리 중심으로 표현하는 구조적 분석 도구는 어떤 용어인가?
- DD
- NS Chart
- DFD
- HIPO
정답과 해설 보기
정답: 2
정답은 ② NS Chart이다. Nassi-Shneiderman 차트는 순차·선택·반복 구조를 중첩된 상자 형태로 나타내어 프로그램의 제어 논리를 표현한다. 임의의 위치로 향하는 점프보다 구조화된 블록의 포함 관계를 드러내는 데 초점을 둔다.
따라서 조건에 따라 어느 블록을 실행하고 반복을 언제 끝내는지와 같은 내부 처리 절차를 설명할 때 적합하다. DD는 자료의 정의를 정리하는 자료 사전, DFD는 데이터의 이동·변환, HIPO는 기능 계층과 입력·처리·출력의 문서화에 중점을 둔다는 차이를 기억한다.
선지별 해설
- ① 오답. DD는 데이터 항목과 구조를 정의하는 자료 사전이다.
- ② 정답. 순차·선택·반복의 제어 논리를 구조화된 도형으로 표현한다.
- ③ 오답. 처리 사이의 데이터 흐름을 표현한다.
- ④ 오답. 기능 계층 및 입력·처리·출력을 문서화한다.
편집 해설 근거: Nassi·Shneiderman, Flowchart techniques for structured programming (1973), 저자 제공 원문 — Flowchart techniques for structured programming, 기본 제어 구조 도형과 예시
33. 이진 트리에서 A가 루트이고, A의 왼쪽 자식은 B, 오른쪽 자식은 C이다. B의 왼쪽 자식은 D이고 C의 왼쪽·오른쪽 자식은 각각 E·F일 때 중위 순회 결과는?
- B D A E C F
- D B A E C F
- A B C D E F
- A B D C E F
정답과 해설 보기
정답: 2
정답은 ② D B A E C F이다. 중위 순회는 각 노드에서 왼쪽 부분 트리, 현재 노드, 오른쪽 부분 트리의 순서로 방문한다. 루트 A의 왼쪽 부분에서는 B의 왼쪽 자식 D를 먼저 방문한 뒤 B를 방문하므로 D B가 나온다.
그다음 루트 A를 방문하고 오른쪽 부분 트리 C로 간다. C의 왼쪽 자식 E, C 자신, 오른쪽 자식 F의 순서이므로 E C F가 된다. 두 부분을 결합하면 D B A E C F다. 레벨 순회나 루트를 먼저 방문하는 전위 순회와 순서를 혼동하지 않는다.
선지별 해설
- ① 오답. B보다 왼쪽 자식 D를 먼저 방문해야 한다.
- ② 정답. D B, A, E C F의 순서다.
- ③ 오답. 깊이별로 방문한 레벨 순회에 해당한다.
- ④ 오답. 루트를 먼저 방문하는 전위 순회에 해당한다.
편집 해설 근거: NIST DADS, inorder traversal — Definition
34. 다음 중 주된 목적이 자동화 시험의 작성·실행 지원이 아니라 분산 버전 관리인 도구는?
[학습용 개정문항]
- JUnit
- HttpUnit
- Git
- CppUnit
정답과 해설 보기
정답: 3
정답은 ③ Git이다. Git의 주된 역할은 소스와 파일의 변경 이력을 관리하는 분산 버전 관리다. 테스트 코드를 저장하거나 자동 시험과 연결할 수는 있지만, 그 사실만으로 테스트를 실행하고 결과를 판정하는 프레임워크가 되는 것은 아니다.
JUnit은 JVM에서 시험을 작성·실행하는 기반이고 CppUnit은 C++의 단위 시험 라이브러리다. HttpUnit은 Java 코드에서 웹 브라우저 동작을 모사하고 응답을 검사하도록 도와주며 JUnit과 함께 사용할 수 있다. HttpUnit까지 모두 같은 수준의 단위 테스트라고 묶지 않고 자동화 시험 지원이라는 범위로 비교한다.
선지별 해설
- ① 오답. JVM에서 테스트를 작성하고 실행하는 프레임워크다.
- ② 오답. 웹 응답을 프로그램으로 검사하는 시험 지원 도구다.
- ③ 정답. 주된 목적은 테스트 실행이 아니라 분산 버전 관리다.
- ④ 오답. C++의 단위 시험을 지원하는 라이브러리다.
편집 해설 근거: JUnit 공식 프로젝트, About — About; HttpUnit 공식 프로젝트, Home (보존 소개) — Home, Written in Java… 및 JUnit 결합 설명; CppUnit 공식 문서, The Unit Testing Library — CppUnit Documentation, The Unit Testing Library; Git 공식 프로젝트, About Git — About Git
35. [42, 17, 85, 56, 23]을 오름차순 삽입 정렬한다. 첫 원소를 정렬 구간으로 보고 두 번째 원소를 삽입하는 첫 회전이 끝난 결과는?
[학습용 개정문항]
- [17, 42, 85, 56, 23]
- [17, 42, 85, 23, 56]
- [17, 42, 23, 85, 56]
- [42, 17, 85, 56, 23]
정답과 해설 보기
정답: 1
정답은 ① [17, 42, 85, 56, 23]이다. 오름차순 삽입 정렬은 첫 원소 42를 이미 정렬된 구간으로 보고 다음 원소 17을 알맞은 위치에 넣는다. 42가 17보다 크므로 42를 오른쪽으로 한 칸 옮기고 맨 앞에 17을 넣는다.
첫 삽입이 끝난 시점에는 앞의 두 원소만 정렬되었으며 아직 선택하지 않은 85, 56, 23의 순서는 그대로다. 전체에서 최솟값을 찾아 맨 앞으로 옮기는 선택 정렬이나 여러 인접 원소를 한 번 훑는 버블 정렬의 회전과 구별한다.
선지별 해설
- ① 정답. 두 번째 원소 17을 앞의 정렬 구간에 삽입한 결과다.
- ② 오답. 아직 처리하지 않은 뒤쪽 56과 23의 순서까지 바꾸었다.
- ③ 오답. 첫 삽입에서 마지막 원소 23은 이동하지 않는다.
- ④ 오답. 17이 42보다 작으므로 첫 삽입에서 순서가 바뀐다.
편집 해설 근거: NIST DADS, insertion sort — Definition 및 Note
36. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소프트웨어 결함의 80%는 20%의 기능에 집중된다는 원리는 어떤 용어인가?
- 살충제 패러독스
- 파레토의 법칙
- 오류-부재의 궤변
- 브룩스의 법칙
정답과 해설 보기
정답: 2
정답은 ② 파레토의 법칙이다. 시험에서 발견되는 많은 결함이 일부 모듈이나 기능에 집중되는 현상을 설명할 때 흔히 80 대 20 원리를 예로 든다. 결함 이력이 많은 부분과 변경 위험이 큰 부분을 파악하여 시험의 우선순위를 정하는 데 참고할 수 있다.
하지만 모든 소프트웨어에서 정확히 기능의 20%가 결함의 80%를 만든다는 통계적 보장은 없다. 실제 분포를 확인해야 한다. 살충제 패러독스는 같은 테스트 반복의 한계, 오류 부재의 궤변은 결함이 적어도 요구를 만족하지 못할 수 있다는 점, Brooks의 법칙은 인력 추가와 일정의 문제다.
선지별 해설
- ① 오답. 동일한 테스트만 반복하면 새로운 결함을 찾기 어려워지는 현상이다.
- ② 정답. 소수의 원인에 많은 결과가 집중되는 현상을 나타낸다.
- ③ 오답. 결함이 없다고 사용자의 필요까지 충족하는 것은 아니라는 원리다.
- ④ 오답. 지연된 프로젝트의 인력 추가와 조정 비용에 대한 관찰이다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.3 Seven Testing Principles, Defects cluster together; Joseph M. Juran, The Non-Pareto Principle; Mea Culpa (1974), Juran Institute 보존 자료 — The Non-Pareto Principle; Mea Culpa, vital few와 useful many 논의
37. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 블랙박스 테스트에 해당하는 것은 어떤 용어인가?
- Basic Path
- Condition Testing
- Loop Testing
- Boundary Value Analysis
정답과 해설 보기
정답: 4
정답은 ④ Boundary Value Analysis, 경계값 분석이다. 입력 범위를 동등 분할한 뒤 각 분할의 경계와 그 가까운 값을 시험하는 블랙박스 기법이다. 허용 범위가 바뀌는 지점에서 비교 연산자의 잘못된 사용이나 한 칸 차이의 오류가 나타날 가능성을 살핀다.
기본 경로, 조건, 루프 시험은 프로그램의 내부 제어 흐름이나 논리 구조를 기준으로 시험을 설계하는 화이트박스 접근이다. 경계값 분석은 소스 내부를 알지 않아도 명세의 입력·출력 조건으로 사례를 정할 수 있다는 점이 다르다.
선지별 해설
- ① 오답. 내부 제어 흐름의 기본 경로를 기준으로 시험한다.
- ② 오답. 내부 논리 조건의 참·거짓을 기준으로 시험한다.
- ③ 오답. 내부 반복 구조를 중심으로 시험한다.
- ④ 정답. 명세의 입력 범위와 경계를 이용하는 블랙박스 기법이다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.1 Categories of Test Techniques; §4.2.2 Boundary Value Analysis
38. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 클린 코드의 작성 원칙에 해당하지 않는 것은 어떤 용어인가?
- 기능 및 설계에 대한 이해가 비교적 쉬운 코드이다.
- 기억하기 쉬운 용어 및 접두어를 사용하여 이름을 정의한다.
- 안정적이고 동일한 로직은 가급적 반복해서 작성한다.
- 가독성이 높고 단순하며 의존성이 낮은 코드이다.
정답과 해설 보기
정답: 3
정답은 ③이다. 같은 규칙을 여러 위치에 복사해 두면 규칙이 바뀔 때 모든 사본을 함께 수정해야 한다. 일부만 고치면 동작이 달라질 수 있으므로 동일한 지식이나 로직의 불필요한 중복은 줄이는 편이 유지보수에 유리하다.
클린 코드는 사람이 의도를 이해하고 변경 결과를 검증하기 쉽게 작성하는 방향을 뜻한다. 의미가 드러나는 이름, 적절한 단순성, 필요한 책임의 분리가 중요하다. 그렇다고 조금 비슷한 코드를 무조건 하나로 추상화해야 하는 것은 아니며, 실제로 같은 책임과 변경 이유를 공유하는지 먼저 판단한다.
선지별 해설
- ① 오답. 기능과 설계 의도가 쉽게 드러나는 것은 바람직하다.
- ② 오답. 의미 있고 일관된 이름은 이해를 돕는다.
- ③ 정답. 동일 로직의 무조건적인 반복은 변경 누락과 불일치 위험을 키운다.
- ④ 오답. 단순성과 가독성, 적절한 의존 관계가 중요하다.
편집 해설 근거: Google Engineering Practices, What to look for in a code review — Complexity; Naming; Comments; Ron Jeffries, What is Extreme Programming? (2011) — Design Improvement (Refactoring)
39. 다음 중 콘텐츠 암호화와 이용 권리 보호를 위한 DRM의 기능보다 네트워크 라우팅에 해당하는 것은?
[학습용 개정문항]
- 키 관리
- IP 패킷의 경로 선택
- 이용 주체의 인증
- 보호 기능의 변조·우회 방지
정답과 해설 보기
정답: 2
정답은 ② IP 패킷의 경로 선택이다. DRM은 콘텐츠 암호화와 키·라이선스 관리, 이용 권한 확인, 허용된 사용 조건의 집행 등을 통해 콘텐츠 이용을 제어한다. 보호 기능이나 키가 쉽게 변조·추출되지 않도록 구현을 보호하는 일도 관련된다.
IP 패킷을 목적지까지 전달할 경로를 선택하는 것은 네트워크 라우팅의 기능이다. DRM 서비스가 네트워크를 사용한다고 해서 라우팅이 DRM의 권리 관리 기능이 되는 것은 아니다. 로그인은 이용자 인증에 사용될 수 있으므로 DRM과 언제나 무관하다고 분류해서는 안 된다.
선지별 해설
- ① 오답. 암호화 콘텐츠를 해독할 키의 생성·보관·전달 관리가 필요하다.
- ② 정답. 네트워크 라우팅의 역할이며 DRM의 권리 보호 기능과 구별된다.
- ③ 오답. 이용 주체나 장치의 신원을 확인하는 기능이 관련된다.
- ④ 오답. 보호 기능과 키의 변조·우회를 어렵게 하는 구현 보호가 관련된다.
편집 해설 근거: Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Content Encryption; Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — License Server; Client; 라이선스와 권리 집행 관련 FAQ; Microsoft PlayReady, Trusted Clocks — PlayReady Trusted Clocks 도입부; IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — §5 Forwarding
40. DRM에서 암호화한 콘텐츠와 관련 정보를 하나의 보호된 형식으로 담아 유통하는 논리적 포장을 가리키는 것은?
[학습용 개정문항]
- 패키저
- DRM 컨트롤러
- 보안 컨테이너
- 클리어링 하우스
정답과 해설 보기
정답: 3
정답은 ③ 보안 컨테이너이다. 여기서 컨테이너는 암호화된 콘텐츠와 형식·식별자 등의 관련 정보를 함께 담아 전달하는 논리적인 포장을 뜻한다. 예를 들어 OMA DRM Content Format은 DRM 컨테이너 안에 헤더와 콘텐츠 객체를 구성한다. 별도의 물리적 보안 장치를 반드시 뜻하는 것은 아니다.
패키저는 그러한 보호 콘텐츠를 만드는 역할이고, DRM 컨트롤러는 이용 조건을 확인하고 집행하는 쪽의 역할이다. 클리어링 하우스는 권리·라이선스 거래를 처리하는 역할로 설명되는 구성 요소다. 실제 제품의 명칭과 역할 분리는 다를 수 있으므로 문항의 포장 형식과 처리 주체를 구별한다.
선지별 해설
- ① 오답. 보호 콘텐츠를 포장하는 처리 주체다.
- ② 오답. 이용 조건을 확인·집행하는 처리 주체다.
- ③ 정답. 보호 콘텐츠와 관련 정보를 담아 유통하는 논리적 포장이다.
- ④ 오답. 권리·라이선스 거래를 처리하는 역할과 관련된다.
편집 해설 근거: Open Mobile Alliance, DRM Content Format 2.1 (2008-10-14) — §6.3 OMA DRM Container; §6.4 Multiple OMA DRM Containers; Microsoft PlayReady, Content Packaging and Delivery — Content Packaging and Delivery; Microsoft PlayReady, Licensing FAQ, 아키텍처 역할 설명 — Licensing FAQ의 서버·클라이언트 역할
정보처리기사 필기 기출문제 · 데이터베이스 구축
41. 성별 2개, 학과 3개, 수강형태 2개의 도메인을 갖는 세 속성으로 가능한 튜플 조합을 모두 만들 때 최대 기수는?
- 3
- 7
- 셀 수 없음
- 12
정답과 해설 보기
정답: 4
정답은 ④ 12이다. 세 속성의 도메인에서 각각 한 값을 고르는 모든 조합은 데카르트 곱으로 계산한다. 첫 속성의 2가지 각각에 학과 3가지가 붙어 6가지가 되고, 각 조합에 수강형태 2가지가 붙으므로 2×3×2=12가지다.
이는 가능한 모든 조합을 허용한다는 조건에서의 최대 튜플 수다. 실제 릴레이션에는 이 중 일부만 저장되거나 추가 제약 때문에 가능한 조합이 더 줄 수 있다. 속성 수인 차수 3과 튜플 수인 기수 12를 구별하며, 도메인 크기를 더한 7은 조합 수가 아니다.
선지별 해설
- ① 오답. 속성의 개수인 차수다.
- ② 오답. 2+3+2는 도메인 크기의 합이며 조합 수가 아니다.
- ③ 오답. 각 도메인이 유한하고 모든 크기가 주어져 계산할 수 있다.
- ④ 정답. 2×3×2=12개의 조합이다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model, relation instance와 attribute domain 정의
42. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 릴레이션과 그 구성요소에 대한 기술로 적절하지 않은 설명은 어떤 용어인가?
- 각 튜플은 순서가 존재하며 중복 없이 고유한 값을 가진다.
- 개체에 관한 데이터를 속성과 튜플로 구성된 2차원 테이블의 구조로 표현한 것이다.
- 릴레이션 스키마와 릴레이션 인스턴스의 결합으로 구성된다.
- 속성은 개체를 구성하는 고유의 특성이다.
정답과 해설 보기
정답: 1
정답은 ①이다. 수학적 관계 모델의 릴레이션은 튜플의 집합이므로 튜플 사이에 본질적인 앞뒤 순서가 없고 같은 튜플이 중복되어 들어가지 않는다. 첫 보기는 중복이 없다는 점과 별개로 튜플에 순서가 있다는 부분 때문에 틀렸다.
스키마는 속성 이름과 도메인 같은 구조를 정하고, 인스턴스는 특정 시점에 저장된 튜플 집합이다. 표 형태의 표현은 이 구조를 보기 쉽게 나타낸 것이다. 실제 SQL은 별도의 제약이나 DISTINCT가 없으면 중복 행을 허용할 수 있고, 출력 순서는 ORDER BY로 지정한다는 차이도 구별해야 한다.
선지별 해설
- ① 정답. 관계 모델의 튜플 집합에는 본질적인 순서가 없다.
- ② 오답. 속성과 튜플을 열과 행으로 표현할 수 있다.
- ③ 오답. 구조를 나타내는 스키마와 실제 내용인 인스턴스를 구별한다.
- ④ 오답. 속성은 대상의 특정 성질을 나타내는 항목이다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Database: Definitions; Example Instance of Students Relation; PostgreSQL 18 — SELECT — Description, DISTINCT 및 ORDER BY
43. 동일 데이터의 물리적 복사본이 여러 곳에 있어도 이용자가 복사본을 직접 선택·관리하지 않고 하나의 논리 데이터처럼 사용하게 하는 투명성은?
[학습용 개정문항]
- Failure
- Replication
- Location
- Fragmentation
정답과 해설 보기
정답: 2
정답은 ② Replication, 복제 투명성이다. 같은 논리 데이터가 여러 장소의 복사본으로 유지되어도 이용자가 각각의 복사본을 직접 선택·관리하지 않고 하나의 데이터처럼 사용하도록 감추는 성질을 뜻한다. 실제 복제와 복사본 사이의 일관성 유지 작업은 시스템 내부에 남아 있다.
위치 투명성은 데이터가 어디에 있는지, 분할 투명성은 데이터가 어떤 조각으로 나뉘었는지를 감추는 성질이다. 장애 투명성은 일부 장애의 영향을 이용자로부터 감추려는 성질이다. 복제가 있다고 반드시 이 모든 투명성이 완벽히 보장되거나 장애가 전혀 보이지 않는 것은 아니다.
선지별 해설
- ① 오답. 장애의 발생과 복구 영향을 감추는 성질이다.
- ② 정답. 여러 복사본의 존재와 관리를 이용자에게 감추는 성질이다.
- ③ 오답. 데이터의 실제 저장 위치를 감추는 성질이다.
- ④ 오답. 논리 데이터를 여러 조각으로 분할한 구성을 감추는 성질이다.
편집 해설 근거: Oracle Database — Distributed Database Concepts — §31.1.1.3 Distributed Databases Versus Replicated Databases; Vogels·van Renesse·Birman, Six Misconceptions about Reliable Distributed Computing (1998), 저자 공개본 — §1 Transparency is the ultimate goal
44. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 OLAP 함수의 종류가 해당하지 않는 것은 어떤 용어인가?
- COUNT
- DELETE
- SUM
- RANK
정답과 해설 보기
정답: 2
정답은 ② DELETE이다. DELETE는 조건에 맞는 행을 테이블에서 삭제하는 데이터 조작 명령이다. 개수·합계·순위를 계산하는 함수와 목적이 다르므로 분석용 함수의 보기에서 구별할 수 있다.
COUNT와 SUM은 집계 함수이고 OVER 절과 결합하면 윈도 함수로도 사용할 수 있다. RANK는 정렬 기준에 따라 순위를 부여하는 윈도 함수이며 동점 뒤의 순위에는 간격이 생길 수 있다. ‘OLAP 함수’라는 표현을 쓰더라도 모든 보기가 같은 종류의 함수라고 가정하지 말고 명령문·집계 함수·윈도 함수의 역할을 구분한다.
선지별 해설
- ① 오답. 개수를 계산하는 집계 함수이며 윈도 집계로도 사용할 수 있다.
- ② 정답. 행을 삭제하는 명령문이다.
- ③ 오답. 합계를 계산하는 집계 함수이며 윈도 집계로도 사용할 수 있다.
- ④ 오답. 정렬 기준에 따른 순위를 구하는 윈도 함수다.
편집 해설 근거: PostgreSQL 18: DELETE — Description; PostgreSQL 18, Aggregate Functions — General-Purpose Aggregate Functions, count and sum; PostgreSQL 18, Window Functions — Table 9.67 및 aggregates as window functions 설명
45. SQL REVOKE SELECT ON lecture FROM jane;의 의미는?
- jane의 lecture SELECT 권한 확인
- jane에게 lecture SELECT 권한 부여
- jane의 lecture SELECT 권한 요청
- jane의 lecture SELECT 권한 회수
정답과 해설 보기
정답: 4
정답은 ④ jane의 lecture SELECT 권한 회수이다. REVOKE는 이미 부여한 권한을 회수하는 명령이며, SELECT는 대상 테이블을 조회하는 권한, ON lecture는 대상 객체, FROM jane은 권한을 회수할 주체를 나타낸다. 반대로 권한 부여에는 GRANT를 사용한다.
이 명령이 성공했다고 jane의 모든 조회 경로가 반드시 사라진다고 단정할 수는 없다. 다른 역할을 통해 상속하거나 PUBLIC 등에 부여된 별도 권한이 남아 있을 수 있기 때문이다. 문항은 명령 자체의 역할을 묻는 것이며 권한의 최종 유효 상태는 전체 권한 관계를 확인해야 한다.
선지별 해설
- ① 오답. 권한을 조회·확인하는 명령이 아니다.
- ② 오답. 권한 부여는 GRANT의 역할이다.
- ③ 오답. 권한 요청을 등록하는 명령이 아니다.
- ④ 정답. lecture에 대한 SELECT 권한을 jane에게서 회수한다.
편집 해설 근거: PostgreSQL 18, REVOKE — Description 및 Notes의 다른 경로로 부여된 권한 설명
46. 트랜잭션의 ACID 성질에 대한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 성공적으로 커밋한 결과를 보존하는 것이 지속성이다.
- 실패한 트랜잭션은 연산의 일부 효과를 임의로 남겨도 원자성을 만족한다.
- 동시 트랜잭션 사이의 간섭을 제어하는 것이 격리성과 관련된다.
- 일관성은 트랜잭션 전후에 무결성 제약을 유지하는 것과 관련된다.
정답과 해설 보기
정답: 2
정답은 ②이다. 원자성은 하나의 트랜잭션을 구성하는 연산의 효과가 모두 반영되거나 모두 취소되어야 한다는 성질이다. 실패했을 때 임의로 일부 효과만 남겨도 된다는 설명은 원자성에 어긋난다.
일관성은 올바른 트랜잭션이 무결성 제약을 지키는 상태로 옮겨 가도록 하는 성질이며 모든 데이터 값이 그대로여야 한다는 뜻이 아니다. 격리성은 동시 수행 사이의 간섭을 제어하고, 지속성은 성공적으로 커밋한 결과를 보존한다. 실제 DBMS의 격리 수준은 허용하는 동시 관측 현상이 다를 수 있다.
선지별 해설
- ① 오답. 지속성은 커밋이 완료된 결과의 보존에 관한 성질이다.
- ② 정답. 일부 효과를 임의로 남겨도 된다는 설명은 원자성과 반대다.
- ③ 오답. 동시 트랜잭션 사이 간섭을 제어하는 격리성에 관한 설명이다.
- ④ 오답. 일관성은 데이터 값의 불변이 아니라 무결성 제약의 유지와 관련된다.
편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — ACID Properties; PostgreSQL 18 — Transaction Isolation — §13.2 Transaction Isolation 도입부 및 isolation levels
47. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 수학에서의 교집합(∩) 연산과 같은 역할을 하는 관계 연산은 어떤 용어인가?
- NOT
- INTERSECT
- MINUS
- UNION
정답과 해설 보기
정답: 2
정답은 ② INTERSECT이다. 교집합은 두 집합 모두에 들어 있는 원소만 남긴다. SQL의 INTERSECT도 두 조회 결과에 공통으로 존재하는 행을 구하며, ALL을 쓰지 않는 기본 형태는 중복된 결과 행을 제거한다.
두 입력은 열 수가 같고 대응하는 열의 자료형이 호환되어야 한다. UNION은 어느 쪽에든 존재하는 행을 모으고, 차집합은 왼쪽에만 있는 행을 남긴다. NOT은 논리 부정 연산자이며 두 조회 결과의 공통 행을 직접 구하는 집합 연산의 이름이 아니다.
선지별 해설
- ① 오답. 논리 조건을 부정하는 연산자다.
- ② 정답. 두 조회 결과의 공통 행을 구하는 교집합이다.
- ③ 오답. Oracle 등의 MINUS는 차집합에 해당한다.
- ④ 오답. 두 결과를 합치는 합집합에 해당한다.
편집 해설 근거: PostgreSQL 18 — SELECT — The INTERSECT Clause; The UNION Clause; The EXCEPT Clause; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Union, Intersection, Set-Difference
48. 데이터베이스 로크 단위를 크게 할 때 나타나는 특성이 아닌 것은?
- 로크 개수가 줄어든다.
- 병행 제어가 단순해진다.
- 병행성 수준이 높아진다.
- 로크 관리 오버헤드가 감소한다.
정답과 해설 보기
정답: 3
정답은 ③이다. 잠금 단위가 커지면 한 번의 잠금으로 더 넓은 데이터를 보호하므로 동일한 작업을 위해 관리해야 할 개별 잠금 수를 줄일 수 있다. 그만큼 잠금 획득·관리 비용과 관리 구조가 단순해지는 효과를 기대한다.
반면 서로 다른 행만 사용하려는 트랜잭션도 같은 큰 잠금 범위에 포함되어 기다릴 수 있다. 따라서 일반적인 비교에서는 동시성은 높아지기보다 낮아지는 방향이다. 실제 효과는 접근 패턴과 잠금 모드에 따라 달라지며 큰 잠금이 항상 성능을 높이거나 항상 낮춘다는 뜻은 아니다.
선지별 해설
- ① 오답. 넓은 범위를 하나로 잠그면 개별 잠금 수가 줄어들 수 있다.
- ② 오답. 관리해야 할 세부 잠금이 줄어 관리가 단순해질 수 있다.
- ③ 정답. 범위가 겹치는 접근의 대기가 늘어 일반적으로 동시성은 낮아진다.
- ④ 오답. 개별 잠금의 수가 줄어 관리 오버헤드가 감소할 수 있다.
편집 해설 근거: IBM Db2 11.5, Lock granularity — Lock granularity, 작은 잠금과 큰 잠금의 비교
49. 속성 4개, 후보키 2개, 튜플 6개인 릴레이션의 차수(degree)는?
- 2
- 6
- 알 수 없음
- 4
정답과 해설 보기
정답: 4
정답은 ④ 4이다. 릴레이션의 차수는 스키마에 포함된 속성의 개수다. 문제에 속성이 4개라고 주어졌으므로 차수는 바로 4이며 후보키가 몇 개 존재하는지 또는 튜플을 몇 개 저장했는지와는 별개다.
튜플의 수 6은 현재 인스턴스의 기수이고, 후보키 2개는 튜플을 유일하게 식별할 수 있는 최소 속성 집합이 두 가지라는 뜻이다. 후보키 하나가 여러 속성으로 구성될 수도 있다. 따라서 후보키 개수와 키에 들어가는 속성 개수도 서로 같은 개념이 아니다.
선지별 해설
- ① 오답. 2는 주어진 후보키의 개수다.
- ② 오답. 6은 튜플 수인 기수다.
- ③ 오답. 속성 수가 명시되어 있어 알 수 있다.
- ④ 정답. 네 속성을 가지므로 차수는 4다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Database: Definitions; Keys
50. 부서별 행을 묶어 집계한 뒤 HAVING으로 그룹을 필터링하려 한다. 부서 열을 기준으로 그룹을 만드는 SQL 절은?
[학습용 개정문항]
- ORDER BY
- JOIN BY
- GROUP BY
- WHERE BY
정답과 해설 보기
정답: 3
정답은 ③ GROUP BY이다. 부서별로 행을 묶어 각 부서의 집계값을 계산하려면 부서 열을 GROUP BY에 지정한다. HAVING은 이렇게 만든 그룹 중 집계 조건을 만족하는 그룹만 남기는 데 사용한다. WHERE는 집계 전의 개별 행을 거르는 절이다.
HAVING이 문법상 항상 GROUP BY를 요구하는 것은 아니다. PostgreSQL에서는 GROUP BY 없이도 전체 입력을 하나의 그룹으로 보고 HAVING을 사용할 수 있다. 따라서 HAVING의 존재 자체보다 부서 값별로 서로 다른 그룹을 생성한다는 요구가 GROUP BY를 선택하는 근거다.
선지별 해설
- ① 오답. 결과의 정렬 순서를 정하는 절이다.
- ② 오답. JOIN BY라는 해당 SQL 절은 없다.
- ③ 정답. 부서 같은 기준 열의 값별로 행을 묶는다.
- ④ 오답. WHERE BY라는 해당 SQL 절은 없다.
편집 해설 근거: PostgreSQL 18 — SELECT — GROUP BY Clause; HAVING Clause
51. 정수형 score 열에서 80점 이상 90점 미만인 행을 찾는다. score 뒤에 붙일 조건으로 알맞은 것은?
[학습용 개정문항]
- BETWEEN 80 OR 90
- BETWEEN 80 AND 89
- BETWEEN 80 AND 90
- BETWEEN 80 OR 89
정답과 해설 보기
정답: 2
정답은 ② BETWEEN 80 AND 89이다. SQL의 BETWEEN은 양쪽 경계값을 모두 포함한다. 정수 점수에서 80점대는 80부터 89까지이므로 score BETWEEN 80 AND 89는 score >= 80 AND score <= 89와 같은 범위를 나타낸다.
80 AND 90을 사용하면 90점도 포함되어 조건보다 넓어진다. BETWEEN의 두 경계 사이에는 OR가 아니라 AND를 써야 한다. 실수 점수까지 포함한다면 89.5점도 80점대이므로 score >= 80 AND score < 90처럼 표현해야 하며, 이 문항은 정수 점수로 한정했다.
선지별 해설
- ① 오답. BETWEEN의 경계는 OR가 아닌 AND로 연결한다.
- ② 정답. 정수 80부터 89까지를 양끝 포함하여 선택한다.
- ③ 오답. 90점까지 포함하므로 80점대 조건을 넘는다.
- ④ 오답. BETWEEN의 경계 연결 문법이 잘못되었다.
편집 해설 근거: PostgreSQL 18, Comparison Functions and Operators — BETWEEN comparison predicate
52. SQL SELECT * FROM database_course d WHERE EXISTS (SELECT 1 FROM ai_course a WHERE a.student_id=d.student_id);의 의미는?
- ai_course에서 database_course 수강생 조회
- ai_course에서 database_course 미수강생 조회
- database_course에서 ai_course에도 존재하는 학생 조회
- database_course에서 ai_course에 없는 학생 조회
정답과 해설 보기
정답: 3
정답은 ③이다. 바깥 질의는 database_course의 각 행 d를 대상으로 하고, 안쪽 질의는 같은 student_id가 ai_course에 하나라도 있는지 확인한다. 대응하는 행이 존재하면 EXISTS가 참이 되어 그 database_course 행을 결과에 포함한다.
SELECT 1의 1은 학생의 번호나 반환할 데이터가 아니라 존재 여부 확인에 사용하는 관례적인 상수다. 안쪽에 같은 학생이 여러 번 있어도 그것 때문에 바깥 행이 여러 번 복제되지는 않는다. 다만 바깥 테이블에 이미 중복된 행이 있다면 DISTINCT가 없으므로 그 중복까지 자동 제거하지는 않는다.
선지별 해설
- ① 오답. 바깥 FROM은 ai_course가 아니라 database_course다.
- ② 오답. 바깥 테이블과 포함 조건이 모두 다르다.
- ③ 정답. database_course 행 중 같은 학생이 ai_course에도 존재하는 행을 고른다.
- ④ 오답. 미존재 여부를 검사하려면 NOT EXISTS가 필요하다.
편집 해설 근거: PostgreSQL 18, Subquery Expressions — §9.24.1 EXISTS
53. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 정규화의 필요성에 해당하지 않는 것은 어떤 용어인가?
- 갱신 이상의 제거
- 삭제 이상의 제거
- 성능 이상의 제거
- 삽입 이상의 제거
정답과 해설 보기
정답: 3
정답은 ③ 성능 이상의 제거이다. 정규화는 속성 사이의 종속성을 바탕으로 릴레이션을 적절히 분해하여 불필요한 중복과 그로 인한 삽입·삭제·갱신 이상을 줄이는 설계 과정이다. 같은 사실을 여러 행에 반복 저장하면 일부만 수정되거나 다른 사실을 함께 잃는 문제가 생길 수 있다.
성능 이상은 이 세 가지 데이터 이상과 같은 정규화의 기본 분류 명칭이 아니다. 정규화가 모든 질의를 더 빠르게 만든다는 보장도 없다. 분해 후 조인이 늘어날 수 있으므로 논리적 일관성과 실제 작업 부하의 성능을 별도로 검토해야 한다.
선지별 해설
- ① 오답. 중복된 사실의 일부만 수정되는 갱신 이상을 줄인다.
- ② 오답. 한 사실의 삭제로 다른 필요한 사실도 잃는 삭제 이상을 줄인다.
- ③ 정답. 성능을 일괄 향상시키는 것은 정규화의 보장된 목적이 아니다.
- ④ 오답. 관련 없는 다른 값 없이는 사실을 저장하기 어려운 삽입 이상을 줄인다.
편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Features of Good Relational Designs; Decomposition; Normal Forms
54. 릴레이션 학생(학번, 학과, 학과전화)의 유일한 후보키는 학번이며, 주어진 함수 종속은 학번→학과와 학과→학과전화이다. 2NF에서 3NF로 분해할 때 해소할 문제의 유형은?
[학습용 개정문항]
- 이행적 함수 종속
- 조인 종속
- 부분 함수 종속
- 다치 종속
정답과 해설 보기
정답: 1
정답은 ① 이행적 함수 종속이다. 주어진 종속에서 학번은 학과를 결정하고 학과는 학과전화를 결정하므로 학번은 학과전화를 간접적으로 결정한다. 학과는 슈퍼키가 아니고 학과전화도 후보키에 포함되지 않으므로 학과→학과전화는 3NF의 조건을 위반한다.
학생(학번, 학과)과 학과정보(학과, 학과전화)로 분해하면 학과 전화번호를 반복 저장하는 문제를 줄일 수 있다. 모든 이행적 종속이 언제나 3NF 위반인 것은 아니며, 일반 정의는 비자명한 X→A마다 X가 슈퍼키이거나 A가 후보키에 속하는 속성이어야 한다는 조건이다.
선지별 해설
- ① 정답. 학번→학과→학과전화의 비키 속성 간 종속이 문제다.
- ② 오답. 조인 종속은 더 높은 정규형에서 다루는 개념이다.
- ③ 오답. 이 문항의 후보키는 단일 속성이므로 복합키 일부에 대한 종속이 아니다.
- ④ 오답. 여러 독립된 값의 집합에 대한 다치 종속 문제로 주어지지 않았다.
편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Third Normal Form 및 3NF Example, slides 7.28–7.29
55. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 로그를 이용한 회복 기법에 사용되는 연산이 해당하지 않는 것은 어떤 용어인가?
- CheckPoint
- Undo
- Redo
- Replace
정답과 해설 보기
정답: 4
정답은 ④ Replace이다. 로그 기반 회복에서는 필요에 따라 완료되지 않은 변경을 되돌리는 UNDO와 기록된 변경을 다시 적용하는 REDO를 사용한다. 체크포인트는 회복에 필요한 상태와 진행 지점을 기록하여 재시작 시 검토할 작업 범위를 줄이는 데 활용된다.
REPLACE는 여기서 묻는 회복 동작의 일반적인 구성 항목이 아니다. 일부 DBMS에 이름이 비슷한 SQL 기능이 있어도 로그의 취소·재수행과 같은 회복 절차를 뜻하지 않는다. 또한 모든 DBMS가 동일한 UNDO/REDO 조합을 쓰는 것은 아니며 버퍼 정책과 회복 구조에 따라 달라진다.
선지별 해설
- ① 오답. 체크포인트는 장애 회복의 시작 범위와 상태를 관리하는 데 사용한다.
- ② 오답. 필요한 변경을 취소하여 이전 상태로 되돌리는 동작이다.
- ③ 오답. 기록된 변경을 재적용하는 동작이다.
- ④ 정답. 로그 기반 회복의 표준적인 취소·재수행·체크포인트 항목이 아니다.
편집 해설 근거: Silberschatz, Korth, Sudarshan, Database System Concepts 7th ed., Chapter 19 Recovery System — Slides 19.17–19.18 Undo and Redo Operations; 19.21–19.22 Checkpoints
56. 서버와 여러 저장장치를 Fibre Channel 등의 전용 저장 네트워크로 연결하고 서버에 블록 단위 접근을 제공하는 스토리지 구성은?
[학습용 개정문항]
- NAS
- SAN
- DAS
- KAS
정답과 해설 보기
정답: 2
정답은 ② SAN이다. SAN은 서버가 블록 단위로 저장장치에 접근할 수 있게 구성한 저장 전용 네트워크다. Fibre Channel은 SAN을 구성하는 대표 기술 중 하나이며, 여러 서버와 저장 자원을 연결하여 집중 관리하는 구조를 만들 수 있다.
NAS는 보통 NFS·SMB 같은 파일 접근을 제공하고 DAS는 호스트에 직접 부착된 저장 구조다. Fibre Channel을 사용한다는 사실만으로 언제나 SAN이라고 단정할 수는 없으므로, 전용 네트워크로 연결하여 블록 접근을 제공한다는 조건을 함께 확인한다. 가용성과 성능도 구체적인 이중화·장비·설계에 달려 있다.
선지별 해설
- ① 오답. 일반적인 NAS는 네트워크를 통해 파일 서비스를 제공한다.
- ② 정답. 서버와 스토리지를 전용 네트워크로 연결해 블록 접근을 제공한다.
- ③ 오답. 호스트에 직접 부착되는 저장 구조다.
- ④ 오답. 제시한 저장 네트워크의 표준적인 분류 명칭이 아니다.
편집 해설 근거: IBM, What is a storage area network (SAN)? (2026-10-05 확인) — What is a storage area network?; SAN vs. NAS; IBM, Direct Attachment of Storwize and SAN Volume Controller Systems (2023-03-28) — Direct Attachment Definition
57. 관계 대수에 대한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 안전한 관계 해석과 관계 대수는 같은 관계 질의를 표현할 수 있다.
- 합집합·교집합·차집합·데카르트 곱 등의 집합 연산을 사용한다.
- 연산은 일반 집합 연산자와 존재 연산자로 분류한다.
- 관계 연산을 조합하여 질의의 처리 절차를 표현한다.
정답과 해설 보기
정답: 3
정답은 ③이다. 관계 대수는 관계를 입력받아 새로운 관계를 만드는 연산을 조합하여 질의를 표현한다. 합집합·교집합·차집합·데카르트 곱 등의 집합 연산과 선택·프로젝션·조인 같은 관계 연산을 구별할 수 있다.
존재를 나타내는 ∃는 관계 해석의 논리식에서 사용하는 양화자다. 따라서 관계 대수를 일반 집합 연산자와 존재 연산자로 나누는 설명은 적절하지 않다. 관계 대수와 관계 해석의 표현력이 같다는 설명에는 안전한 관계 해석이라는 범위가 필요하며, 무제한 논리식을 모두 동일하게 취급하지 않는다.
선지별 해설
- ① 오답. 안전한 관계 해석과 관계 대수의 표현력을 비교한 설명이다.
- ② 오답. 제시한 네 연산은 관계에도 적용하는 집합 연산이다.
- ③ 정답. 존재 양화자는 관계 해석의 논리식과 관련되며 이 분류는 부정확하다.
- ④ 오답. 연산을 조합하여 결과를 만드는 절차를 표현한다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Query Languages; Basic Relational Algebra Operations; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Calculus — Expressive Power of Algebra and Calculus; Safe Queries
58. 관계형 데이터베이스의 논리 설계에 대한 설명으로 부적절한 것은?
[학습용 개정문항]
- 릴레이션의 구조와 키·무결성 제약을 정한다.
- 모든 업무 데이터를 검토 없이 비정규화한다.
- 개념 모델을 관계형 모델의 논리 스키마로 옮긴다.
- 함수 종속과 중복을 분석하여 구조를 정제한다.
정답과 해설 보기
정답: 2
정답은 ②이다. 관계형 데이터베이스의 논리 설계는 개념 모델을 릴레이션과 키·제약으로 옮기고, 종속성과 중복을 분석하여 업무 데이터를 일관성 있게 표현하는 구조를 정하는 과정이다. 필요한 경우 정규화를 통해 삽입·삭제·갱신 이상을 줄인다.
모든 데이터를 검토 없이 비정규화하는 것은 논리 설계의 목표가 아니다. 비정규화는 특정 조회나 갱신 부하의 성능을 위해 중복·일관성 관리 비용을 감수할지 별도로 판단하는 선택이다. 물리 저장 위치·파일 구성·인덱스 등과 논리적인 테이블·키 설계도 구분해야 한다.
선지별 해설
- ① 오답. 관계와 키·무결성 제약은 논리 구조의 핵심이다.
- ② 정답. 모든 데이터를 무조건 비정규화하는 것은 적절한 설계 원칙이 아니다.
- ③ 오답. 개념 모델을 목표 관계형 모델로 옮기는 단계다.
- ④ 오답. 함수 종속과 중복을 분석하여 구조를 정제한다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Database Design의 conceptual/logical/physical design 구분; Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 7 저자 자료 — Features of Good Relational Designs; Decomposition
59. 데이터베이스 설계자가 다음 조건을 확인한다. 트랜잭션 분석을 위해 각 테이블에 대한 생성, 조회, 갱신, 삭제 프로세스의 영향도를 테이블 형식으로 표현한 것은 어떤 용어인가?
- Entity Integrity
- Balanced Tree
- CRUD Matrix
- Clustering
정답과 해설 보기
정답: 3
정답은 ③ CRUD Matrix이다. CRUD는 생성(Create), 조회(Read), 갱신(Update), 삭제(Delete)를 뜻한다. 행과 열에 업무 프로세스와 데이터 엔터티 또는 테이블을 놓고 교차 지점에 해당 작업을 표시하면 어떤 기능이 어떤 데이터를 이용·변경하는지 확인할 수 있다.
이를 통해 생성만 되고 읽히지 않는 데이터, 담당 기능이 빠진 갱신, 여러 기능이 함께 변경하는 데이터 등을 점검할 수 있다. 실제 데이터베이스의 접근 권한을 자동으로 설정하는 표는 아니며, 업무와 데이터의 관계를 분석하는 설계 산출물이라는 점을 구별한다.
선지별 해설
- ① 오답. 기본키의 유일성·NULL 제한 등 개체 무결성과 관련된다.
- ② 오답. 균형 트리는 검색·색인에 사용하는 자료구조다.
- ③ 정답. 업무와 데이터 사이 생성·조회·갱신·삭제 관계를 표로 나타낸다.
- ④ 오답. 관련 데이터의 물리적 배치나 묶음 등과 관련된 용어다.
편집 해설 근거: SKF Group, Toolbox for Architecture Framework, Open Group 공개 자료 (2018) — B. Architecture Artefact Cards, Master Data Object to Business Process Matrix
60. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 중복 값을 허용하지 않는 인덱스를 생성하기 위한 옵션은 어떤 용어인가?
- REPLACE
- NULL
- UNIQUE
- FORCE
정답과 해설 보기
정답: 3
정답은 ③ UNIQUE이다. CREATE UNIQUE INDEX는 지정한 인덱스 키의 중복을 허용하지 않는 유일 인덱스를 만든다. 여러 열을 묶어 인덱스를 정의했다면 각 열의 값 하나씩이 아니라 그 열들의 조합이 유일해야 한다.
NULL의 취급은 DBMS와 옵션에 따라 다를 수 있다. 예를 들어 PostgreSQL 18은 기본적으로 유일 인덱스에서 NULL끼리를 같다고 보지 않으며 NULLS NOT DISTINCT를 지정하면 같은 값으로 취급한다. 따라서 UNIQUE를 쓴다는 이유로 NULL이 항상 하나만 허용되거나 항상 금지된다고 일반화하지 않는다.
선지별 해설
- ① 오답. 인덱스 키의 유일성을 지정하는 옵션이 아니다.
- ② 오답. NULL이라는 단어 자체로 유일 인덱스가 되지 않는다.
- ③ 정답. 중복된 키 값을 제한하는 유일 인덱스를 지정한다.
- ④ 오답. 유일성을 지정하는 옵션이 아니다.
편집 해설 근거: PostgreSQL 18, CREATE INDEX — Synopsis, UNIQUE; Parameters; PostgreSQL 18, Unique Indexes — §11.6 Unique Indexes
정보처리기사 필기 기출문제 · 프로그래밍 언어 활용
61. 추가 자원 제약이 없는 CPM 일정에서 시작부터 종료까지의 모든 경로가 A-B-D-F-H, A-B-E-F-H, A-C-G-H이고 소요 시간이 각각 12일, 10일, 11일이다. 프로젝트의 주 공정 소요 시간은?
[학습용 개정문항]
- 10
- 11
- 12
- 22
정답과 해설 보기
정답: 3
정답은 ③ 12이다. CPM에서 제시된 출발점부터 종료점까지의 경로 중 가장 긴 경로가 프로젝트 완료 시간을 결정한다. 세 경로의 소요 시간 12, 10, 11을 비교하면 최댓값이 12이므로 A-B-D-F-H가 주 공정 경로다.
가장 짧은 경로 10을 고르는 것은 필요한 모든 선후행 작업이 완료되어야 한다는 조건을 놓친 것이다. 서로 다른 경로의 시간을 단순히 더하는 것도 병행 가능한 작업과 공유 구간을 중복 계산할 수 있어 맞지 않는다. 이 판단은 문항에서 제시한 경로와 기간을 기준으로 하며 자원 제약 등은 별도로 고려한다.
선지별 해설
- ① 오답. 후보 중 가장 짧은 경로의 시간이다.
- ② 오답. 다른 경로 12가 아직 끝나지 않았으므로 완료 시간이 아니다.
- ③ 정답. 제시한 전체 경로 중 최댓값은 12다.
- ④ 오답. 여러 경로의 시간을 단순 합산하여 구하지 않는다.
편집 해설 근거: U.S. GAO, Schedule Assessment Guide GAO-16-89G (2015) — Best Practice 6 Confirming That the Critical Path Is Valid
62. POSIX에서 호출 프로세스를 바탕으로 자식 프로세스를 생성하는 함수는?
[학습용 개정문항]
- mount
- grep
- find
- fork
정답과 해설 보기
정답: 4
정답은 ④ fork이다. POSIX의 fork()는 호출 프로세스를 바탕으로 새로운 자식 프로세스를 만든다. 성공하면 부모에는 자식의 프로세스 ID를 반환하고 자식에는 0을 반환하므로 같은 호출 이후의 코드에서도 반환값으로 수행 경로를 나눌 수 있다.
fork()는 일반적인 셸 명령 이름이 아니라 프로그램에서 호출하는 프로세스 생성 인터페이스다. mount는 파일 시스템 연결, grep은 패턴에 맞는 줄 검색, find는 파일 탐색과 관련된 명령이다. 또한 다른 프로그램을 실행하는 exec 계열과 새 프로세스를 만드는 fork의 역할도 구별해야 한다.
선지별 해설
- ① 오답. 파일 시스템을 디렉터리 트리에 연결하는 명령이다.
- ② 오답. 입력에서 패턴에 맞는 줄을 찾는 명령이다.
- ③ 오답. 조건에 맞는 파일을 탐색하는 명령이다.
- ④ 정답. 호출 프로세스에서 자식 프로세스를 생성하는 POSIX 함수다.
편집 해설 근거: The Open Group, POSIX.1-2024 fork() — DESCRIPTION; RETURN VALUE
63. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 그룹은 쓰기 권한을 제거하고 일반 사용자는 쓰기, 실행 권한을 제거하는 umask 값은 어떤 용어인가?
- 023
- 421
- 754
- 012
정답과 해설 보기
정답: 1
정답은 ① 023이다. 8진수 umask의 세 자리는 소유자, 그룹, 그 밖의 사용자가 새 파일·디렉터리를 만들 때 허용하지 않을 권한 비트를 나타낸다. 읽기는 4, 쓰기는 2, 실행은 1이므로 그룹의 쓰기를 가리는 자리는 2이고 다른 사용자의 쓰기·실행을 가리는 자리는 2+1=3이다.
소유자 권한을 추가로 가리지 않으면 첫 자리는 0이어서 023이 된다. 기본 ACL 등의 별도 조건이 없을 때 최종 권한은 요청 모드와 umask의 보수를 AND하여 정한다. 이미 존재하는 파일의 권한을 이 명령만으로 바꾸는 것은 아니다.
선지별 해설
- ① 정답. 소유자 0, 그룹 쓰기 2, 다른 사용자 쓰기·실행 3을 가린다.
- ② 오답. 소유자 읽기도 가리고 다른 사용자에게는 실행만 가린다.
- ③ 오답. 소유자와 그룹의 권한까지 과도하게 가리는 값이다.
- ④ 오답. 그룹은 실행, 다른 사용자는 쓰기를 가리므로 조건과 다르다.
편집 해설 근거: GNU Bash Reference Manual, Edition 5.3 (2025) — Bourne Shell Builtins, umask
64. 다음 Java 17 프로그램의 출력은?
public class Main {
static int mth(int a) { return a * 3; }
static int mth(int a, int b) { return a * b - 2; }
public static void main(String[] args) {
System.out.print(mth(4, 5));
}
}
[학습용 개정문항]
- 15
- 12
- 18
- 30
정답과 해설 보기
정답: 3
정답은 ③ 18이다. 호출식 mth(4,5)에는 int 인수 두 개가 있으므로 int a,int b를 받는 두 번째 오버로드가 선택된다. 그 메서드 본문은 a*b-2를 계산하므로 4×5-2=18을 반환하고 print가 그 값을 출력한다.
인수가 하나인 mth(int a)는 이 호출의 인수 개수와 맞지 않으므로 실행되지 않는다. 오버로딩의 선택은 메서드 이름만으로 하는 것이 아니라 인수의 개수와 형식에 맞춰 결정한다. 이 문항에서는 상속에 따른 오버라이딩이나 실행 시 수신 객체에 따른 선택을 묻는 것이 아니다.
선지별 해설
- ① 오답. 선택된 메서드의 4×5-2 결과가 아니다.
- ② 오답. 인수 하나인 mth(4)를 호출했다면 얻을 수 있는 값이다.
- ③ 정답. 두 인수 메서드에서 20-2=18을 계산한다.
- ④ 오답. 선택된 메서드의 계산 결과가 아니다.
편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 8 Classes — §8.4.9 Overloading; Oracle Java SE 17 Language Specification, Chapter 15 Expressions — §15.12 Method Invocation; §15.17 Multiplicative Operators; §15.18 Additive Operators
65. 비선점 SJF에서 프로세스 A(실행20,도착3), B(실행15,도착0), C(실행10,도착5), D(실행17,도착2) 중 가장 먼저 완료되는 것은?
- A
- B
- C
- D
정답과 해설 보기
정답: 2
정답은 ② B이다. 비선점 SJF는 CPU가 비어 새 작업을 선택할 때 이미 도착한 작업 중 실행 시간이 가장 짧은 것을 고른다. 시각 0에는 B만 도착했으므로 실행 시간 15인 B를 시작한다.
D는 시각 2, A는 3, C는 5에 도착하지만 비선점 방식이므로 실행 중인 B를 중단시키지 못한다. B는 시각 15에 가장 먼저 완료된다. 그 후에는 도착해 대기 중인 C, D, A를 실행 시간 순으로 선택한다. 전체 작업 중 시간이 가장 짧은 C가 미래에 도착한다는 이유로 시각 0부터 먼저 실행할 수는 없다.
선지별 해설
- ① 오답. A는 시각 3에 도착하며 이미 실행 중인 B를 선점하지 못한다.
- ② 정답. 시각 0의 유일한 준비 작업으로 시작하여 시각 15에 완료된다.
- ③ 오답. 실행 시간은 가장 짧지만 시각 5에 도착한다.
- ④ 오답. 시각 2에 도착해 B가 완료될 때까지 대기한다.
편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 7 Scheduling: Introduction — §7.3 Shortest Job First; 도착 시각에 따른 SJF의 한계 설명
66. 다음 Python 3 코드에서 values에 들어 있는 None의 개수는?
def f(name):
if name.startswith("김"):
return name
values = [f(name) for name in
["김민수", "강하영", "김지수", "박영진", "김서준"]]
[학습용 개정문항]
- 1
- 2
- 3
- 4
정답과 해설 보기
정답: 2
정답은 ② 2개이다. startswith("김")은 문자열이 지정한 접두사로 시작하는지 검사한다. 김민수·김지수·김서준은 조건이 참이어서 입력한 이름을 반환한다. 강하영과 박영진은 조건이 거짓이므로 if 안의 return을 실행하지 않는다.
Python 함수가 값을 반환하는 return을 실행하지 않고 끝까지 도달하면 None을 반환한다. 이는 문자열 "None"이나 빈 문자열과는 다른 값이다. 따라서 다섯 호출 중 None은 강하영과 박영진의 두 호출에서 나온다. 조건이 거짓이라고 함수 호출 자체가 사라지는 것은 아니다.
선지별 해설
- ① 오답. 김으로 시작하지 않는 이름은 한 개가 아니라 두 개다.
- ② 정답. 강하영과 박영진에서 None을 반환한다.
- ③ 오답. 세 개는 김으로 시작하여 이름을 반환하는 호출 수다.
- ④ 오답. 네 호출이 None을 반환하지 않는다.
편집 해설 근거: Python 3.14, Built-in Types — str.startswith; Python 3.14 Tutorial, More Control Flow Tools: Defining Functions — Defining Functions, Falling off the end of a function
67. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 아래에서 설명하는 해결 방안은 어떤 용어인가? <보기> 안정적 상태를 유지할 수 있는 프로세스의 요청만 받아들이는 방식이다. 대표적으로 은행원 알고리즘(Banker's Algorithm)이 있다.
- Recovery
- Prevention
- Detection
- Avoidance
정답과 해설 보기
정답: 4
정답은 ④ Avoidance, 교착상태 회피이다. 자원을 실제로 할당하기 전에 그 요청을 받아들인 뒤에도 모든 프로세스를 어떤 순서로 완료시킬 수 있는 안전 상태가 유지되는지 판단한다. 은행원 알고리즘은 프로세스별 최대 요구량과 현재 할당·가용 자원을 이용하는 대표적인 회피 방법이다.
예방은 교착상태의 필요 조건 중 하나가 성립하지 않도록 제한하는 접근이고, 탐지는 현재 교착상태가 발생했는지 찾는 접근이다. 회복은 발생한 상태를 프로세스 종료나 자원 회수 등으로 해소한다. 불안전 상태가 곧 이미 교착상태라는 뜻은 아니라는 점도 구분한다.
선지별 해설
- ① 오답. 교착상태가 생긴 뒤 해소하는 회복이다.
- ② 오답. 필요 조건이 성립하지 않도록 구조적으로 제한하는 예방이다.
- ③ 오답. 교착상태의 발생 여부를 확인하는 탐지다.
- ④ 정답. 요청 수락 후 안전 상태를 유지하는지 검사하는 회피다.
편집 해설 근거: Silberschatz·Galvin·Gagne, Operating System Concepts 9판, 7 Deadlocks — Deadlock Avoidance; Safe State; Banker’s Algorithm, slides 7.20–7.31
68. 다음 Python 3 코드의 출력은?
a = 10
def f():
a = 30
return a
f()
print(a)
[학습용 개정문항]
- 10
- 20
- 30
- 오류
정답과 해설 보기
정답: 1
정답은 ① 10이다. 함수 바깥에서 a=10으로 만든 이름과 함수 안에서 a=30으로 할당한 이름은 이 코드에서 서로 다른 범위에 속한다. 함수 안에 global 선언이 없으므로 안쪽 a는 지역 이름이며 return a는 30을 반환한다.
f()의 반환값을 바깥 a에 대입하지 않고 호출 결과를 그대로 버렸기 때문에 바깥 a는 여전히 10이다. 마지막 print(a)는 그 바깥 이름을 읽어 10을 출력한다. 기존의 세미콜론으로 이어 쓴 문장은 Python의 함수 정의 구조를 제대로 나타내지 못하므로 줄바꿈과 들여쓰기를 갖춘 코드로 고쳤다.
선지별 해설
- ① 정답. 함수 안 지역 변수의 할당은 바깥 a를 바꾸지 않는다.
- ② 오답. 어느 위치에서도 20을 계산하거나 대입하지 않는다.
- ③ 오답. 30은 함수가 반환한 값이며 바깥 a에 저장되지 않는다.
- ④ 오답. 제시한 들여쓰기와 줄바꿈을 가진 코드는 유효하다.
편집 해설 근거: Python 3.14 Language Reference, Execution model: Naming and binding — §4.2.1 Binding of names; §4.2.2 Resolution of names
69. 디자인 패턴을 적용할 때 기대할 수 있는 이점이나 성격에 대한 설명으로 부적절한 것은?
[학습용 개정문항]
- 공통 설계 어휘로 협업을 도울 수 있다.
- 모든 언어와 프로젝트에서 수정 없이 실행되는 완성 코드를 제공한다.
- 적합한 패턴은 시스템 확장성을 높이는 데 도움이 될 수 있다.
- 설계 의도를 공유하여 유지보수성을 높이는 데 도움이 될 수 있다.
정답과 해설 보기
정답: 2
정답은 ②이다. 디자인 패턴은 반복되는 설계 문제와 맥락, 해결 구조, 적용 결과와 상충점을 함께 설명한다. 공통 이름으로 설계 의도를 전달하고 검증된 해결 구조를 참고하면 협업·확장·유지보수에 도움이 될 수 있다.
그러나 패턴이 모든 언어와 프로젝트에서 수정 없이 실행되는 완성 코드를 제공하는 것은 아니다. 개념은 언어와 독립적으로 설명할 수 있어도 구현과 적용 여부는 언어 기능과 요구사항에 맞춰 판단해야 한다. 패턴을 적용했다는 이유만으로 품질 향상이 자동 보장되는 것도 아니다.
선지별 해설
- ① 오답. 공통된 설계 어휘는 협업의 의사소통을 도울 수 있다.
- ② 정답. 패턴은 맥락에 맞게 구현해야 하는 설계 지식이지 무수정 완성 코드가 아니다.
- ③ 오답. 적합한 패턴은 변경·확장할 책임의 분리를 도울 수 있다.
- ④ 오답. 적합하게 사용하면 구조와 의도를 이해하는 데 도움이 될 수 있다.
편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — Pattern concepts, Name·Problem·Solution·Consequences and trade-offs, slide 9
70. C의 for(int i=0; i<3; i++){ printf("%d",i); }와 같은 흐름인 while문은?
- int i=0; while(i<3){i++; printf("%d",i);}
- int i=0; while(i<3){printf("%d",i); i++;}
- int i=0; while(i<3){printf("%d",i);} i++;
- int i=1; while(i<=3){printf("%d",i); i++;}
정답과 해설 보기
정답: 2
정답은 ②이다. 원래 for문은 i를 0으로 초기화하고 i<3을 검사한 뒤 본문에서 i를 출력하며, 본문이 끝나면 i++를 실행한다. 따라서 0, 1, 2가 차례로 이어져 012를 출력한 뒤 i가 3이 되어 종료한다.
동일한 while문은 초기화를 반복문 앞에 두고, 같은 조건을 사용하며, 출력 다음에 증가식을 두어야 한다. ①은 먼저 증가하여 123을 출력하고 ④도 1에서 시작해 123을 출력한다. ③은 반복문 안에서 i가 바뀌지 않아 조건이 계속 참이므로 정상적으로 종료하지 않는다.
선지별 해설
- ① 오답. 출력 전 증가하여 원래와 다른 123을 출력한다.
- ② 정답. 조건 검사·출력·증가의 순서가 for문과 같다.
- ③ 오답. i++가 반복문 밖에 있어 루프 안의 i가 계속 0이다.
- ④ 오답. 1부터 3까지 출력하여 원래 결과와 다르다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.5.1 The while statement; §6.8.5.3 The for statement
71. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 객체지향 설계 원칙에 해당하지 않는 것은 어떤 용어인가?
- Interface Segregation
- Super Responsibility
- Open-Closed
- Liskov Substitution
정답과 해설 보기
정답: 2
정답은 ② Super Responsibility이다. SOLID의 S는 Single Responsibility, 단일 책임 원칙을 뜻한다. 모듈의 변경 이유를 같은 책임과 관련된 범위로 모으는 원칙이지 더 크거나 초월적인 책임을 부여한다는 뜻이 아니다.
O는 Open-Closed, L은 Liskov Substitution, I는 Interface Segregation, D는 Dependency Inversion을 가리킨다. 개방·폐쇄는 변경에 견디는 확장 구조, 리스코프 치환은 하위 타입의 대체 가능성, 인터페이스 분리는 필요 없는 기능에 대한 의존을 줄이는 설계와 관련된다.
선지별 해설
- ① 오답. I에 해당하는 인터페이스 분리 원칙이다.
- ② 정답. 올바른 명칭은 Single Responsibility이며 Super가 아니다.
- ③ 오답. O에 해당하는 개방·폐쇄 원칙이다.
- ④ 오답. L에 해당하는 리스코프 치환 원칙이다.
편집 해설 근거: Robert C. Martin, Solid Relevance (2020-10-18) — SOLID의 SRP·OCP·LSP·ISP·DIP 설명
72. UDP 자체의 기능에 대한 설명으로 옳지 않은 것은?
[학습용 개정문항]
- 재전송과 도착 순서의 보장을 제공하지 않는다.
- 신뢰성을 보장하지 않는 연결형 통신을 제공한다.
- IP 멀티캐스트를 사용하는 응용에서 이용할 수 있다.
- 기본 헤더는 네 필드, 8바이트로 구성된다.
정답과 해설 보기
정답: 2
정답은 ②이다. UDP는 연결 설정 절차를 요구하지 않는 데이터그램 전송 프로토콜이다. UDP 자체가 데이터의 도착·중복 제거·순서 유지·재전송을 보장하지 않으므로 ‘신뢰성을 보장하지 않는 연결형 통신’이라는 표현에서 연결형 부분이 틀렸다.
헤더는 출발지 포트, 목적지 포트, 길이, 체크섬의 네 필드로 기본 8바이트다. 제어 기능이 단순하다는 사실이 모든 상황에서 TCP보다 빠르다는 보장은 아니다. 필요한 신뢰성은 응용 계층에서 별도로 구현할 수 있고 IP 멀티캐스트를 사용하는 응용에도 UDP를 사용할 수 있다.
선지별 해설
- ① 오답. UDP 자체는 재전송과 순서 보장을 제공하지 않는다.
- ② 정답. UDP는 연결형이 아니라 비연결 데이터그램 전송을 제공한다.
- ③ 오답. IP 멀티캐스트를 사용하는 응용에서 활용할 수 있다.
- ④ 오답. UDP 기본 헤더는 네 필드, 8바이트로 구성된다.
편집 해설 근거: IETF RFC 768, User Datagram Protocol (1980) — Introduction; Format; Fields; IETF RFC 1112 (1989), Host extensions for IP multicasting — §6.2 및 multicast transmission 설명
73. 1바이트는 8비트이고 short·int·long의 저장 크기는 각각 16·32·64비트인 C 구현을 가정한다. sizeof로 얻는 바이트 크기가 잘못 연결된 것은?
[학습용 개정문항]
- short – 2
- int – 4
- long – 6
- char – 1
정답과 해설 보기
정답: 3
정답은 ③ long – 6이다. 이 문항은 1바이트가 8비트이며 short 16비트, int 32비트, long 64비트인 구현을 가정한다. 따라서 sizeof로 얻는 크기는 각각 16÷8=2, 32÷8=4, 64÷8=8이고 char의 크기는 1이다.
C 표준이 모든 구현에서 short=2, int=4, long=8을 강제하는 것은 아니다. sizeof의 단위는 해당 구현의 바이트이고 char의 sizeof는 1로 정의된다. 실제 이식성 있는 코드를 작성할 때는 고정된 추정치 대신 sizeof와 자료형의 범위·환경을 확인해야 한다.
선지별 해설
- ① 오답. 가정한 구현의 short는 16÷8=2바이트다.
- ② 오답. 가정한 구현의 int는 32÷8=4바이트다.
- ③ 정답. 가정한 구현의 long은 8바이트이며 6바이트가 아니다.
- ④ 오답. sizeof(char)는 1이다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.3.4 The sizeof and _Alignof operators; §5.2.4.2.1 Sizes of integer types
74. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. C 코드에서 break의 역할에 대한 기술로 적절하지 않은 설명을 고르면?
- 모든 선택문, 제어문에서 사용 가능하다.
- 해당 지역의 반복문을 벗어날 수 있다.
- (무한)루프문을 벗어날 때 사용한다.
- switch~case문에서 중지점을 지정할 때 사용한다.
정답과 해설 보기
정답: 1
정답은 ①이다. C의 break는 반복문 또는 switch의 본문 안에서 사용할 수 있으며, 자신을 감싸는 가장 안쪽 반복문이나 switch를 끝내고 그 다음 문장으로 진행하게 한다. 일반적인 if문만 있는 곳에는 break를 단독으로 사용할 수 없다.
반복문 안의 if 조건에서 break를 실행할 수 있는 것은 if가 아니라 바깥 반복문이 종료 대상이기 때문이다. 중첩된 반복문에서는 한 번의 break가 모든 바깥 반복문을 한꺼번에 끝내지 않는다. switch에서도 해당 switch를 끝내며 프로그램 전체를 종료하는 명령이 아니다.
선지별 해설
- ① 정답. 모든 선택문·제어문에서 독립적으로 쓸 수 있는 것은 아니다.
- ② 오답. 자신을 감싸는 가장 안쪽 반복문을 끝낼 수 있다.
- ③ 오답. 조건이 항상 참인 반복문도 break로 빠져나올 수 있다.
- ④ 오답. switch 안에서 실행하면 해당 switch를 끝낸다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.8.6.3 The break statement
75. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 IPv4에서 C클래스에 해당하지 않는 주소는 어떤 용어인가?
- 200.100.200.15
- 192.168.0.1
- 223.255.255.254
- 128.0.1.100
정답과 해설 보기
정답: 4
정답은 ④ 128.0.1.100이다. 과거 클래스 기반 IPv4 체계에서 클래스 C는 선두 비트가 110이고 첫 옥텟 범위가 192~223이다. 따라서 200, 192, 223으로 시작하는 세 주소는 이 범위에 들고 128로 시작하는 주소는 클래스 B 범위에 든다.
이는 역사적인 주소 분류를 묻는 것이며, 현재 네트워크 경계는 CIDR 접두사 길이로 판단한다. 사설 주소인지, 실제 호스트로 할당할 수 있는지, 공인 인터넷에서 경로가 배포되는지는 별도 조건이다. 첫 옥텟의 클래스만으로 현재 서브넷 크기나 사용 가능성을 단정하지 않는다.
선지별 해설
- ① 오답. 첫 옥텟 200은 과거 클래스 C 범위에 든다.
- ② 오답. 사설 주소이지만 과거 클래스 기준으로는 C 범위다.
- ③ 오답. 첫 옥텟 223은 과거 클래스 C 범위에 든다.
- ④ 정답. 첫 옥텟 128은 과거 클래스 B 범위다.
편집 해설 근거: IETF RFC 791 (1981), Internet Protocol — §3.2 Discussion, Addressing; RFC 4632, Classless Inter-domain Routing (2006) — §3.1 Classless Addressing as a Routing Protocol Constraint
76. 운영체제가 파일별 크기·권한·시각·저장 위치 등의 관리 정보를 보관하는 파일 제어 블록을 뜻하는 것은?
[학습용 개정문항]
- FCB
- KBF
- FDT
- ACR
정답과 해설 보기
정답: 1
정답은 ① FCB, File Control Block이다. FCB는 운영체제가 파일을 관리하는 데 필요한 크기·권한·시각·저장 위치 등의 정보를 보관하는 파일별 자료구조를 가리킨다. 실제 파일 시스템은 inode나 다른 형식으로 이에 해당하는 정보를 구성할 수 있다.
파일 디스크립터는 FCB의 다른 이름이 아니다. POSIX에서 파일을 열면 프로세스는 보통 정수형 파일 디스크립터를 받아 이후 read·write 등의 호출에서 사용하며, 이 값이 열린 파일과 관련된 내부 상태로 연결된다. 파일 관리 메타데이터와 프로세스가 사용하는 핸들을 구별해야 한다.
선지별 해설
- ① 정답. 파일별 관리 정보를 보관하는 제어 블록이다.
- ② 오답. 제시한 파일 관리 블록을 가리키는 명칭이 아니다.
- ③ 오답. 파일 디스크립터 테이블과 파일별 관리 블록은 역할이 다르다.
- ④ 오답. 제시한 파일 관리 자료구조의 명칭이 아니다.
편집 해설 근거: Silberschatz·Galvin·Gagne, Operating System Concepts 9판, 12 File-System Implementation — File-System Implementation, File Control Block, slide 12.10; POSIX.1-2024 Issue 8, open() — DESCRIPTION; RETURN VALUE
77. 빈 프레임 3개에 페이지 참조열 2,2,3,1,3,2,4,3,3,5를 FIFO로 처리할 때 페이지 부재 횟수는?
- 4
- 5
- 6
- 7
정답과 해설 보기
정답: 2
정답은 ② 5회이다. 처음 비어 있는 세 프레임에 2, 3, 1이 처음 등장할 때 각각 부재가 발생한다. 그 사이의 두 번째 2와 이후 3·2는 이미 적재되어 있으므로 적중이다. FIFO는 적중했다고 적재 순서를 바꾸지 않는다.
7번째 참조 4에서는 가장 먼저 들어온 2를 내보내 부재가 한 번 늘고, 다음 두 번의 3은 적중한다. 마지막 5에서는 그다음으로 오래된 3을 내보내므로 부재가 한 번 더 발생한다. 부재 위치는 1·3·4·7·10번째로 총 5회이며, 마지막 프레임에는 1·4·5가 남는다.
선지별 해설
- ① 오답. 최초 세 적재와 두 번의 교체를 모두 세어야 한다.
- ② 정답. 최초 적재 3회와 교체 2회로 합계 5회다.
- ③ 오답. 이미 존재하는 페이지의 반복 참조를 추가 부재로 세지 않는다.
- ④ 오답. FIFO에서 적중 참조는 부재를 만들지 않는다.
편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 22 Beyond Physical Memory: Policies — §22.3 A Simple Policy: FIFO
78. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 전송 계층 중 TCP에서 사용되는 데이터 단위는 어떤 용어인가?
- 세그먼트
- 프레임
- 비트
- 데이터그램
정답과 해설 보기
정답: 1
정답은 ① 세그먼트이다. TCP는 응용의 바이트 스트림을 TCP 헤더와 함께 세그먼트로 전송한다. 세그먼트에는 포트 번호, 순서 번호, 확인 응답 번호와 제어 정보 등이 포함되어 연결과 신뢰성 있는 전달을 관리한다.
TCP 세그먼트는 IP 패킷의 데이터로 실리고, 링크에서는 다시 프레임 안에 들어가 전송된다. 따라서 하나의 전송에서 세그먼트·패킷·프레임이 서로 다른 계층의 포장 단위를 가리킨다. 비트는 물리적 전송 표현의 기본 단위이며 TCP의 프로토콜 데이터 단위 이름이 아니다.
선지별 해설
- ① 정답. TCP 헤더와 데이터를 묶은 전송 단위다.
- ② 오답. 이 문맥에서 데이터 링크 계층의 단위다.
- ③ 오답. 물리 전송의 기본 표현 단위다.
- ④ 오답. 일반적으로 UDP나 IP의 데이터그램과 구별하여 TCP 단위는 세그먼트라 부른다.
편집 해설 근거: IETF RFC 9293, Transmission Control Protocol (2022) — §3.1 Header Format 및 §3.4 Sequence Numbers
79. 다음 Java 17 프로그램의 출력은?
public class Main {
public static void main(String[] args) {
int a = 17;
int b = (a % 2 == 0) ? 1 : 0;
if (b < 17) System.out.print('a');
else System.out.print('b');
}
}
[학습용 개정문항]
- a
- b
- 17
- 오류
정답과 해설 보기
정답: 1
정답은 ① a이다. a가 17이므로 a%2는 1이고 a%2==0은 거짓이다. 조건 연산자는 거짓일 때 뒤쪽 식인 0을 선택하므로 b에는 0이 저장된다. 이어지는 조건 b<17은 0<17이므로 참이다.
따라서 print의 인수인 문자 리터럴 'a'를 출력한다. 작은따옴표 안의 a는 변수 a의 값 17을 뜻하지 않는다. 변수의 값과 문자 리터럴을 구분하고 첫 조건 연산자의 결과를 두 번째 if 조건에 대입해 추적하면 출력을 알 수 있다.
선지별 해설
- ① 정답. b=0이므로 참 분기에서 문자 a를 출력한다.
- ② 오답. else 분기는 실행되지 않는다.
- ③ 오답. 출력 인수는 변수 a가 아니라 문자 리터럴이다.
- ④ 오답. 제시한 Java 17 코드는 유효하다.
편집 해설 근거: Oracle Java SE 17 Language Specification, Chapter 15 Expressions — §15.17.3 Remainder Operator; §15.25 Conditional Operator; Oracle Java SE 17 Language Specification, Chapter 14 Blocks and Statements — §14.9 The if Statement; Oracle Java SE 17 API, java.io.PrintStream — print(char c)
80. 다음 C11 프로그램의 출력은?
#include <stdio.h>
int main(void) {
int a = 5, b = 0, c = 0;
while (a-- > 0) { b++; c++; }
printf("%d", c);
return 0;
}
[학습용 개정문항]
- 4
- 5
- 6
- 7
정답과 해설 보기
정답: 2
정답은 ② 5이다. a–는 감소 전 값을 비교식에 제공한 뒤 a를 1 줄인다. 조건 비교에 사용되는 값은 차례로 5, 4, 3, 2, 1이어서 다섯 번 참이 되고, 그때마다 본문에서 b와 c가 각각 1씩 증가한다.
다음 조건에서는 감소 전 값 0을 0과 비교하므로 거짓이 되어 종료한다. 이 마지막 조건 평가에서도 후위 감소가 일어나 최종 a는 -1이지만 본문은 더 실행되지 않는다. c는 처음 0에서 다섯 번 증가한 5이므로 printf는 5를 출력한다. 조건 평가 횟수 여섯 번과 본문 실행 횟수 다섯 번을 구별한다.
선지별 해설
- ① 오답. 본문은 네 번이 아니라 다섯 번 실행된다.
- ② 정답. c가 다섯 번 증가하여 5가 된다.
- ③ 오답. 여섯 번째는 조건 검사만 하고 본문은 실행하지 않는다.
- ④ 오답. 일곱 번 증가하지 않는다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.2.4 Postfix increment and decrement operators; §6.8.5.1 The while statement; §7.21.6.1 fprintf
정보처리기사 필기 기출문제 · 정보시스템 구축관리
81. 공유 매체를 사용하는 전통적인 반이중 IEEE 802.3 이더넷에서, 반송파를 감지하고 전송 중 충돌을 검출하여 대기 후 재전송하는 매체 접근 방식은?
[학습용 개정문항]
- ALOHA
- STDM
- ATDM
- CSMA/CD
정답과 해설 보기
정답: 4
정답은 ④ CSMA/CD이다. 공유 매체를 사용하는 전통적인 반이중 이더넷에서는 먼저 다른 장치가 전송 중인지 감지하고, 비어 있으면 전송을 시작한다. 두 장치가 거의 동시에 시작하면 충돌할 수 있으므로 전송 중에도 충돌을 검출하며, 충돌 뒤에는 대기 시간을 두고 재전송한다.
CS는 반송파 감지, MA는 다중 접근, CD는 충돌 검출을 뜻한다. 시간 슬롯을 배정하는 다중화와는 원리가 다르다. 이 설명은 반이중 공유 이더넷에 해당하며, 송수신이 분리된 전이중 이더넷에서는 CSMA/CD로 충돌을 처리하지 않는다.
선지별 해설
- ① 오답. 기본 ALOHA는 전송 전에 반송파를 감지하는 CSMA/CD와 다르다.
- ② 오답. 시분할 다중화의 약어로 사용되며 충돌 검출 방식의 이름이 아니다.
- ③ 오답. 비동기 시분할 다중화는 시간 자원의 배분 방식이다.
- ④ 정답. 반송파 감지·다중 접근·충돌 검출을 결합한 방식이다.
편집 해설 근거: Cisco, Troubleshooting Ethernet: Ethernet and IEEE 802.3; Full-Duplex Operation — Ethernet and IEEE 802.3; Full-Duplex Operation
82. 192.168.123.0/24를 같은 크기의 서브넷으로 최소 6개 나누되 각 서브넷의 크기를 가능한 크게 한다. 서브넷 0도 포함하여 네트워크 주소가 작은 순서로 셀 때, 두 번째 서브넷의 첫 일반 호스트 주소는?
[학습용 개정문항]
- 192.168.123.32
- 192.168.123.33
- 192.168.123.64
- 192.168.123.65
정답과 해설 보기
정답: 2
정답은 ② 192.168.123.33이다. /24를 같은 크기의 서브넷으로 최소 여섯 개 나누려면 서브넷 비트가 최소 3개 필요하다. 2²=4개는 부족하고 2³=8개면 조건을 만족하므로 가장 큰 동일 크기 서브넷의 접두사는 /27이 된다.
호스트 부분은 5비트이므로 주소 블록은 2⁵=32개씩 증가한다. 첫 블록은 .0~.31, 두 번째는 .32~.63이며, 두 번째 블록의 네트워크 주소 .32와 브로드캐스트 주소 .63을 제외한 호스트 범위는 .33~.62다. 따라서 첫 사용 가능 호스트는 .33이다.
선지별 해설
- ① 오답. 두 번째 블록의 네트워크 주소다.
- ② 정답. 두 번째 블록의 첫 일반 호스트 주소다.
- ③ 오답. 세 번째 블록의 네트워크 주소다.
- ④ 오답. 세 번째 블록의 첫 일반 호스트 주소다.
편집 해설 근거: IETF RFC 1878, Variable Length Subnet Table For IPv4 (1995) — Table 1 및 Table 2, /27·255.255.255.224 항목과 all-zeros/all-ones subnets 주석
83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게끔 유도하는 공격 기법은 어떤 용어인가?
- Cross-Site Scripting
- Smurf Attack
- Cross-Site Request Forgery
- Ping of Death
정답과 해설 보기
정답: 1
정답은 ① Cross-Site Scripting, XSS이다. 신뢰할 수 없는 입력이 웹 페이지의 실행 가능한 코드로 처리되면, 사용자의 브라우저가 공격자가 의도한 스크립트를 해당 사이트의 문맥에서 실행할 수 있다. 이때 핵심은 악성 스크립트가 사용자 측에서 실행된다는 점이다.
저장형은 서버에 저장된 입력을 통해, 반사형은 요청 값이 응답에 반영되는 과정 등을 통해 발생할 수 있으며 DOM 기반 유형도 있다. CSRF는 사용자의 인증 상태 등을 이용해 원하지 않는 요청을 보내게 하는 공격으로, 악성 스크립트의 실행이 반드시 필요한 것은 아니다. Smurf와 Ping of Death는 이와 다른 네트워크 서비스 거부 공격이다.
선지별 해설
- ① 정답. 웹 문맥에서 악성 스크립트를 사용자 브라우저에 실행시키는 공격이다.
- ② 오답. ICMP 반사·증폭을 이용한 서비스 거부 공격이다.
- ③ 오답. 사용자가 원하지 않는 요청을 보내도록 유도하는 공격이다.
- ④ 오답. 비정상적으로 큰 패킷의 처리 문제를 악용하는 서비스 거부 공격이다.
편집 해설 근거: OWASP, Cross Site Scripting (XSS), Overview — Overview; Stored and Reflected XSS Attacks; OWASP, Cross Site Request Forgery (CSRF) — Description
84. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. DES를 대체하는 미국의 표준 대칭키 블록 알고리즘은 어떤 용어인가?
- SEED
- IDEA
- AES
- ARIA
정답과 해설 보기
정답: 3
정답은 ③ AES이다. 미국 연방 정보처리표준 FIPS 197은 Advanced Encryption Standard를 정의한다. AES는 같은 비밀키를 사용하는 대칭키 블록 암호이며, 블록 크기는 128비트로 고정이고 키 길이는 128·192·256비트 중 하나다.
AES-256이라는 이름의 256은 블록 크기가 아니라 키 길이를 가리킨다. DES를 대체한 미국 표준을 묻는 단서에 맞는 것은 AES이고, SEED·IDEA·ARIA는 각각 별개의 블록 암호이다. 암호 알고리즘과 실제 데이터에 적용할 때 사용하는 운용 모드는 구별해야 한다.
선지별 해설
- ① 오답. SEED는 AES와 별개인 대칭키 블록 암호다.
- ② 오답. IDEA는 FIPS 197에서 정의한 AES가 아니다.
- ③ 정답. FIPS 197로 표준화된 대칭키 블록 암호다.
- ④ 오답. ARIA는 AES와 별개인 대칭키 블록 암호다.
편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — §1 Introduction; §5 Algorithm Specifications, Table 3
85. TCP 헤더에서 전송 중 발생한 오류를 검출하기 위해 사용하는 필드는?
[학습용 개정문항]
- Reserved
- Urgent Pointer
- Checksum
- Destination Port
정답과 해설 보기
정답: 3
정답은 ③ Checksum이다. TCP 체크섬은 TCP 헤더와 데이터, 그리고 IP 주소 등의 정보를 포함하는 의사 헤더를 바탕으로 계산한다. 수신 측은 이를 검사하여 전송 중에 발생한 비트 오류 등을 발견할 수 있다.
체크섬은 모든 오류를 반드시 검출하는 장치도, 공격자의 의도적인 변경을 막는 암호학적 인증 수단도 아니다. 따라서 단순히 ‘무결성을 보장한다’고 설명하면 보안상의 보장과 혼동할 수 있다. 목적지 포트는 응용의 통신 끝점을 식별하며 긴급 포인터와 예약 필드도 체크섬과 역할이 다르다.
선지별 해설
- ① 오답. 확장 등을 위해 예약된 필드다.
- ② 오답. URG와 함께 긴급 데이터의 경계를 나타내는 데 관련된다.
- ③ 정답. TCP 헤더·데이터 등의 전송 오류 검출에 사용된다.
- ④ 오답. 수신 측 통신 끝점의 포트 번호다.
편집 해설 근거: IETF RFC 9293, Transmission Control Protocol (2022) — §3.1 Header Format, Checksum; Urgent Pointer
86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 시스템의 파일 무결성을 검사하여 파일이 무단으로 변경되었는지 여부를 확인하는 보안 도구로, 크래커의 침입이나 백도어 생성 여부, 설정 파일의 변경 여부를 체크하는 것은 어떤 용어인가?
- Firewall
- Root Kit
- TripWire
- Trusted OS
정답과 해설 보기
정답: 3
정답은 ③ TripWire이다. Tripwire는 감시 대상 파일의 속성이나 내용을 기준 상태와 비교하여 변경을 발견하는 파일 무결성 검사 도구다. 시스템 파일이나 설정 파일이 예상과 다르게 바뀌었는지 확인하는 데 사용할 수 있다.
변경이 검출되었다는 사실만으로 침입이 확정되는 것은 아니다. 정상 업데이트나 관리 작업도 파일을 바꾸므로, 신뢰할 수 있는 기준 상태와 변경 이력을 함께 검토해야 한다. 방화벽은 통신을 정책에 따라 제어하는 도구이고, 루트킷은 침입 흔적 은폐 등에 이용되는 프로그램 모음이므로 이 검사 도구와 구별한다.
선지별 해설
- ① 오답. 주로 네트워크 통신의 허용·차단 정책을 적용한다.
- ② 오답. 침입 흔적이나 악성 활동을 숨기는 도구 모음이다.
- ③ 정답. 기준 상태와 비교하여 파일의 변경을 탐지한다.
- ④ 오답. 보안 기능을 강화한 운영체제의 범주이며 해당 파일 검사 도구의 이름이 아니다.
편집 해설 근거: Tripwire, Open Source Tripwire 공식 저장소 README (2026-10-05 확인) — README, What is Open Source Tripwire?
87. 광 신호의 파장이 아니라 전기 신호의 주파수 대역을 기준으로, 한 전송 매체의 대역폭을 서로 겹치지 않는 여러 채널로 나누어 동시에 전송하는 다중화 방식은?
[학습용 개정문항]
- WDM
- TDM
- FDM
- CDM
정답과 해설 보기
정답: 3
정답은 ③ FDM이다. 주파수 분할 다중화는 하나의 전송 매체에서 서로 겹치지 않는 여러 주파수 대역에 신호를 배치하여 동시에 전달한다. 인접 채널 간 간섭을 줄이기 위해 보호 대역을 둘 수 있다.
TDM은 서로 다른 시간 구간을 배정하며, CDM은 구별 가능한 코드를 이용한다. 광섬유에서 여러 빛의 파장을 사용하는 방식은 보통 WDM이라고 부른다. 빛의 파장과 주파수는 관계가 있으므로, 광 신호의 파장을 다루는지, 전기 신호의 주파수 대역을 나누는지 문맥을 확인해야 한다.
선지별 해설
- ① 오답. 광 신호의 서로 다른 파장을 다중화하는 방식이다.
- ② 오답. 주파수 대역이 아니라 시간 구간을 나누어 이용한다.
- ③ 정답. 서로 다른 주파수 대역에 채널을 배치한다.
- ④ 오답. 채널을 구별하는 코드에 기반한 다중화다.
편집 해설 근거: IIT Kharagpur NPTEL, Multiplexing, Version 2 — §2.7.2 Frequency Division Multiplexing
88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 데이터 센터 전체를 운영하는 소프트웨어가 필요한 기능 및 규모에 따라 동적으로 하드웨어 자원을 할당, 관리하는 역할을 수행하는 데이터 센터는 어떤 용어인가?
- PaaS
- SDDC
- Mesh Network
- Data Warehouse
정답과 해설 보기
정답: 2
정답은 ② SDDC이다. 소프트웨어 정의 데이터 센터는 컴퓨팅뿐 아니라 스토리지와 네트워크 자원까지 가상화·추상화하여 소프트웨어와 정책으로 관리하는 구조다. 관리자는 개별 장비에 일일이 작업하는 대신 통합된 관리 체계에서 자원의 제공과 구성을 자동화할 수 있다.
이는 물리적인 서버와 저장장치가 필요 없어진다는 뜻이 아니다. 실제 하드웨어 위의 자원을 추상화하여 관리하는 것이다. PaaS는 응용 개발·배포를 위한 플랫폼 서비스, 메시 네트워크는 연결 구조, 데이터 웨어하우스는 분석을 위한 데이터 저장 체계이므로 설명하는 범위가 다르다.
선지별 해설
- ① 오답. 응용 개발·배포를 위한 플랫폼을 제공하는 서비스 모델이다.
- ② 정답. 컴퓨팅·스토리지·네트워크를 소프트웨어로 통합 관리하는 데이터 센터 구조다.
- ③ 오답. 여러 노드가 서로 연결되는 네트워크 형태다.
- ④ 오답. 분석을 위해 데이터를 모아 관리하는 저장 체계다.
편집 해설 근거: IBM, What is a software-defined data center? — What is an SDDC?; Components
89. TCP/IP 계층 모델에서 인터넷 계층이 아니라 전송 계층에 해당하는 프로토콜은?
[학습용 개정문항]
- IPv4
- IPv6
- TCP
- ICMPv4
정답과 해설 보기
정답: 3
정답은 ③ TCP이다. TCP/IP 계층 모델에서 TCP는 응용 사이에 신뢰성 있는 바이트 스트림을 제공하는 전송 계층 프로토콜이다. 포트 번호와 순서 번호 등을 사용하여 통신 끝점과 데이터 전달을 관리한다.
IPv4와 IPv6는 인터넷 계층의 패킷 주소 지정과 전달을 담당하며, ICMPv4는 IPv4 동작과 관련된 오류 보고 및 제어 메시지를 제공한다. 계층을 구분할 때에는 IP 패킷의 전달을 담당하는지, 응용 사이의 통신 끝점과 신뢰성 있는 전달을 담당하는지 기능을 기준으로 판단한다.
선지별 해설
- ① 오답. IPv4는 인터넷 계층 프로토콜이다.
- ② 오답. IPv6도 인터넷 계층에서 패킷을 전달한다.
- ③ 정답. TCP는 전송 계층에 속한다.
- ④ 오답. ICMPv4는 인터넷 계층의 IP 제어·오류 보고와 관련된다.
편집 해설 근거: IETF RFC 1122 (1989), Requirements for Internet Hosts — §1.1.3 Internet Protocol Suite; §3 Internet Layer; IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §1 Introduction
90. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. IPv6의 주소 표현 중 올바르지 못한 것은 어떤 용어인가?
- 2001:0db8:85a3::8a2e:0370:7334
- ::1:2
- 2001:0db8:85a3:1234:5678:9ABC:DEFG:HIJK
- 2001:0db8:85a3:0000:0000:8a2e:0370:7334
정답과 해설 보기
정답: 3
정답은 ③이다. IPv6 주소의 기본 텍스트 표현은 콜론으로 구분한 여덟 개의 16비트 그룹이며, 각 그룹에는 최대 네 자리의 16진수를 쓴다. 16진수에서 허용되는 문자는 숫자 0~9와 A~F, 또는 그 소문자다.
③에는 G·H·I·J·K가 포함되어 이 규칙에 맞지 않는다. 한 번의 ::는 연속된 0 그룹을 생략하는 표기이므로 ①과 ②는 유효하다. 특히 ::1:2는 유효한 주소 표현이지만 루프백 주소 ::1과 같은 주소는 아니다. ④는 생략 없이 여덟 그룹을 쓴 유효한 표현이다.
선지별 해설
- ① 오답. 한 번의 ::로 연속된 0 그룹을 줄인 유효한 표현이다.
- ② 오답. 여섯 개의 0 그룹을 생략한 유효한 표현이다.
- ③ 정답. 16진수에서 사용할 수 없는 G~K가 포함되어 있다.
- ④ 오답. 여덟 개의 16비트 그룹을 모두 표시한 유효한 표현이다.
편집 해설 근거: IETF RFC 4291, IP Version 6 Addressing Architecture (2006) — §2.2 Text Representation of Addresses
91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 보안에 취약한 구조를 가진 IP를 개선하기 위해 국제 인터넷 기술 위원회(IETF)에서 설계한 표준은 어떤 용어인가?
- ARP
- DNS
- ICMP
- IPSec
정답과 해설 보기
정답: 4
정답은 ④ IPsec이다. IPsec은 IP 계층에서 통신을 보호하기 위한 보안 구조와 관련 프로토콜을 정의한다. 통신 당사자는 보안 연관을 통해 적용할 알고리즘과 키 등의 정보를 관리하고, 정책에 따라 패킷을 보호하거나 차단한다.
AH와 ESP 등이 관련되며, 구성에 따라 데이터의 무결성, 송신자 인증, 재전송 공격 방지 및 기밀성을 제공할 수 있다. 모든 IPsec 패킷이 반드시 암호화되는 것은 아니므로 IPsec을 암호화 한 가지 기능과 동일시하지 않는다. ARP·DNS·ICMP는 각각 주소 해석·이름 해석·제어 메시지에 관련된다.
선지별 해설
- ① 오답. 링크에서 IP 주소에 대응하는 하드웨어 주소를 알아내는 데 사용한다.
- ② 오답. 도메인 이름 등과 자원 레코드를 연결하는 체계다.
- ③ 오답. IP 동작과 관련된 오류·제어 메시지를 전달한다.
- ④ 정답. IP 계층의 통신 보호를 위한 보안 구조다.
편집 해설 근거: IETF RFC 4301 — IPsec architecture — §2 Design Objectives; §3 System Overview; §4.1 Definition and Scope
92. 스위치에 서로 다른 위조 출발지 MAC 주소를 과도하게 학습시켜 MAC 주소 테이블 자원을 소진시키려는 공격은?
[학습용 개정문항]
- MAC flooding(스위치 재밍)
- ARP Spoofing
- ARP Redirect
- ICMP Redirect
정답과 해설 보기
정답: 1
정답은 ① MAC flooding이다. 스위치는 수신 프레임의 출발지 MAC 주소와 포트를 학습하여 유한한 크기의 주소 테이블에 저장한다. 서로 다른 위조 주소가 과도하게 학습되면 테이블 자원이 소진되어 정상 목적지의 위치를 알 수 없게 될 수 있다.
장비와 방어 설정에 따라 목적지를 모르는 유니캐스트 프레임이 같은 VLAN의 여러 포트로 전달되어 통신 노출 위험이 커진다. 모든 스위치가 반드시 전체 트래픽을 허브처럼 흘린다는 뜻은 아니다. ARP 위조는 IP와 MAC의 대응 정보를 속이는 방식이고, ICMP Redirect는 경로 변경 메시지와 관련되어 원리가 다르다.
선지별 해설
- ① 정답. 대량의 출발지 MAC 주소 학습으로 주소 테이블 자원을 소진시키는 공격이다.
- ② 오답. ARP 대응 관계를 속이는 방식으로, 주소 테이블 용량 소진과 구별한다.
- ③ 오답. ARP 정보를 이용한 통신 경로 왜곡을 가리키며 문제의 자원 소진 방식과 다르다.
- ④ 오답. ICMP의 경로 변경 메시지와 관련된 방식이다.
편집 해설 근거: Cisco, MAC Address and MAC Address Table Management — Restrictions and limitations of MAC and MATM, CAM table size limits; MAC flooding attacks
93. 첫 평문 블록을 IV와 XOR해 암호화하고, 이후 평문 블록을 직전 암호문과 XOR한 뒤 암호화하는 블록 암호 운용 모드는?
- ECB
- AAC
- CBC
- KGB
정답과 해설 보기
정답: 3
정답은 ③ CBC이다. CBC는 Cipher Block Chaining의 약자로, 첫 평문 블록 P₁을 초기화 벡터 IV와 XOR한 값을 암호화하여 첫 암호문 C₁을 만든다. 이후에는 직전 암호문을 다음 평문과 XOR한 뒤 암호화한다.
식을 쓰면 C₁=Eₖ(P₁ XOR IV), Cⱼ=Eₖ(Pⱼ XOR Cⱼ₋₁)이다. ECB처럼 각 블록을 독립적으로 처리하지 않고 앞의 암호문과 연결한다는 점이 핵심이다. CBC는 기밀성 운용 모드이며 자체만으로 메시지 인증까지 제공하는 것은 아니다. IV의 요구 조건과 인증은 별도로 고려해야 한다.
선지별 해설
- ① 오답. ECB는 앞 암호문과 연결하지 않고 각 블록을 독립적으로 암호화한다.
- ② 오답. 제시한 연결식을 정의하는 블록 암호 운용 모드가 아니다.
- ③ 정답. 첫 블록에 IV, 이후 블록에 직전 암호문을 XOR한다.
- ④ 오답. 제시한 연결식을 정의하는 운용 모드가 아니다.
편집 해설 근거: NIST SP 800-38A (2001), Block Cipher Modes of Operation — §6.2 Cipher Block Chaining (CBC) Mode; Appendix C
94. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 타원곡선 위 이산대수 문제의 난해성에 기반한 공개키 암호 기술은 어떤 용어인가?
- ECC
- DES
- RSA
- DSA
정답과 해설 보기
정답: 1
정답은 ① ECC이다. 타원곡선 암호는 타원곡선 위의 점과 군 연산을 활용하는 공개키 암호 기술의 범주다. 점 P와 정수 k로 Q=kP를 계산하는 것에 비해, 적절한 매개변수에서 P와 Q만으로 k를 찾는 타원곡선 이산대수 문제가 어렵다는 성질을 이용한다.
ECC는 단일한 암호화 알고리즘 이름이라기보다 키 합의나 전자서명 등에 적용되는 기술 계열이다. DES는 대칭키 블록 암호이고 RSA는 정수에 대한 다른 수학적 구조를 사용한다. 보기의 일반적인 DSA는 유한체 이산대수에 기반하며, 타원곡선 서명 방식 ECDSA와 이름을 구별한다.
선지별 해설
- ① 정답. 타원곡선 위의 이산대수 문제를 활용하는 기술 계열이다.
- ② 오답. 공개키 방식이 아닌 대칭키 블록 암호다.
- ③ 오답. 타원곡선 이산대수에 기반한 기술이 아니다.
- ④ 오답. 일반적인 유한체 DSA와 타원곡선 기반 ECDSA는 구별한다.
편집 해설 근거: IETF RFC 6090, Fundamental Elliptic Curve Cryptography Algorithms (2011) — §3 Elliptic Curve Groups; §3.3.2 Security; §4 ECDH; §7.2 KT-I and ECDSA
95. 다음 세 접근통제 방식을 순서대로 나열한 것은? (가) 보안 등급·범주 등의 중앙 강제 정책을 적용한다. (나) 객체 소유자가 사용자에 대한 접근 권한을 재량으로 부여한다. (다) 업무 역할에 권한을 연결하고 사용자에게 역할을 부여한다.
[학습용 개정문항]
- DAC, RBAC, MAC
- MAC, DAC, RBAC
- MAC, RBAC, DAC
- RBAC, MAC, DAC
정답과 해설 보기
정답: 2
정답은 ② MAC, DAC, RBAC이다. MAC은 중앙에서 정한 강제 정책을 적용하며 보안 등급과 범주 같은 레이블을 이용할 수 있다. 일반 사용자가 객체의 소유자라고 해도 강제 정책을 마음대로 완화할 수 없다.
DAC은 소유자 등의 재량에 따라 사용자에게 접근 권한을 부여하거나 회수할 수 있는 방식이다. RBAC은 업무 역할에 권한을 연결하고 사용자에게 역할을 부여하여 접근을 관리한다. 사용자 신분을 확인하는 인증은 여러 정책에서 사용될 수 있으므로, 신분이라는 단어만으로 DAC을 판별하지 않고 소유자의 재량이라는 조건을 함께 확인한다.
선지별 해설
- ① 오답. 첫 번째 중앙 강제 정책을 DAC으로 잘못 연결했다.
- ② 정답. 강제 정책, 소유자의 재량, 역할 기반 관리의 순서다.
- ③ 오답. 두 번째와 세 번째 정책의 순서가 바뀌었다.
- ④ 오답. 첫 번째 등급 기반 강제 정책을 RBAC으로 잘못 연결했다.
편집 해설 근거: Peter Reiher, OSTEP v1.10, 55 Access Control — §55.5 Mandatory And Discretionary Access Control; §55.6 Practicalities Of Access Control Mechanisms, RBAC
96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 바이러스처럼 다른 파일에 기생하지 않고 독립적으로 자신을 복제하여 확산시키는 악성코드는 어떤 용어인가?
- Trojan Horse
- Key Logger
- SpyWare
- Worm
정답과 해설 보기
정답: 4
정답은 ④ Worm이다. 웜은 다른 실행 파일에 기생해야만 동작하는 형태와 달리 독립적으로 실행되며 자신을 복제해 다른 시스템으로 전파할 수 있는 악성 프로그램이다. 네트워크를 통한 확산 과정에서 자원을 소모하거나 다른 피해를 일으킬 수 있다.
트로이 목마는 정상적이거나 유용한 프로그램처럼 보이면서 숨겨진 악성 기능을 수행한다는 특성, 키로거는 입력한 키를 기록한다는 기능, 스파이웨어는 정보를 수집한다는 목적을 가리킨다. 실제 악성코드는 여러 특성을 함께 가질 수 있으나 문항의 판별 기준은 독립 실행과 자기 복제·확산이다.
선지별 해설
- ① 오답. 정상 프로그램처럼 가장하는 성격이 핵심이며 자기 복제가 정의상 필수는 아니다.
- ② 오답. 키 입력을 기록하는 기능을 가리킨다.
- ③ 오답. 사용자나 시스템의 정보를 수집하는 성격을 가리킨다.
- ④ 정답. 독립적으로 실행되며 자기 복제와 확산이 가능하다.
편집 해설 근거: NIST CSRC Glossary, worm: SP 800-28 Version 2 및 SP 800-82 Rev. 3 정의 — Definitions, NIST SP 800-28 Version 2 및 SP 800-82 Rev. 3에서 인용한 worm 정의
97. RFC 903에서, 부팅 시 자신의 Ethernet 하드웨어 주소만 아는 장치가 서버의 대응표를 통해 자신의 IPv4 주소를 알아내도록 정의한 프로토콜은?
[학습용 개정문항]
- ARP
- RARP
- IP
- ICMP
정답과 해설 보기
정답: 2
정답은 ② RARP이다. RFC 903은 부팅한 장치가 자신의 하드웨어 주소만 알고 프로토콜 주소를 모를 때, 서버에 요청하여 해당 주소를 알아내는 절차를 설명한다. Ethernet과 IPv4의 예에서는 MAC 주소에 대응하는 자신의 IPv4 주소를 서버의 대응표에서 얻는다.
ARP는 반대 방향으로, 알고 있는 IP 주소에 대응하는 링크의 하드웨어 주소를 알아내는 데 사용한다. RARP는 역사적인 부팅 환경의 주소 획득 프로토콜이며, 임의의 인터넷 MAC 주소를 어디서나 IP 주소로 변환하는 일반 검색 서비스가 아니다. DNS 역방향 조회와도 다른 기능이다.
선지별 해설
- ① 오답. 보통 알고 있는 IPv4 주소에 대응하는 MAC 주소를 알아낸다.
- ② 정답. 자신의 하드웨어 주소를 바탕으로 프로토콜 주소를 얻는 RFC 903의 방식이다.
- ③ 오답. 패킷의 주소 지정과 전달을 담당하는 인터넷 프로토콜이다.
- ④ 오답. IP 동작에 관련된 제어·오류 메시지를 전달한다.
편집 해설 근거: RFC 903, A Reverse Address Resolution Protocol (1984) — Status of this Memo; §I Introduction; §II Design Considerations
98. 서버 인증과 암호화·무결성 보호를 갖춘 연결 위에서 원격 셸 로그인 및 명령 실행을 제공하는 프로토콜 계열은?
[학습용 개정문항]
- POP3
- HTTPS
- SSH
- telnet
정답과 해설 보기
정답: 3
정답은 ③ SSH이다. SSH는 안전하지 않은 네트워크 위에서 원격 로그인과 명령 실행 등을 제공하는 프로토콜 계열이다. 전송 계층 프로토콜은 서버 인증과 암호화·무결성 보호를 제공하고, 연결 프로토콜은 그 위에서 셸이나 명령 실행 등의 채널을 관리한다.
POP3는 전자우편을 가져오는 프로토콜이며, HTTPS는 웹의 HTTP 통신을 TLS로 보호하는 방식이다. HTTPS를 이용한 웹 관리 화면도 있을 수 있으므로 ‘암호화된 원격 제어’만으로는 SSH를 유일하게 특정하기 어렵다. 원격 셸 로그인과 명령 실행이라는 조건이 SSH를 선택하는 핵심이다.
선지별 해설
- ① 오답. 전자우편을 가져오는 기능과 관련된다.
- ② 오답. 웹 통신 보호에 사용하며 이 문항의 원격 셸 프로토콜 이름은 아니다.
- ③ 정답. 보호된 연결 위에서 원격 셸과 명령 실행을 제공한다.
- ④ 오답. 기본 Telnet은 SSH와 같은 암호화된 전송 보호를 제공하지 않는다.
편집 해설 근거: IETF RFC 4253, SSH Transport Layer Protocol (2006) — §1 Introduction; IETF RFC 4254, SSH Connection Protocol (2006) — §6.5 Starting a Shell or a Command
99. TCP 기반 HTTP/1.1 또는 HTTP/2 통신을 TLS로 보호하며 기본 TCP 포트 443을 사용하는 방식은?
[학습용 개정문항]
- HTTPS
- HTTP
- S-HTTP
- HSTP
정답과 해설 보기
정답: 1
정답은 ① HTTPS이다. HTTPS는 HTTP 통신을 TLS로 보호하며, TCP 기반 HTTP/1.1 또는 HTTP/2에서 기본 포트는 443번이다. TLS가 정상적으로 구성되면 전송되는 HTTP 메시지의 기밀성과 무결성을 보호하고 인증을 제공한다.
‘전체 통신 내용’이라는 말로 IP 주소 등 모든 네트워크 메타데이터까지 숨겨진다고 해석해서는 안 된다. 또한 기본 포트는 관례와 등록에 따른 값이지 모든 서버가 반드시 그 포트만 사용한다는 뜻은 아니다. S-HTTP는 별도의 역사적인 메시지 보안 방식으로 HTTPS와 이름만 비슷하다.
선지별 해설
- ① 정답. HTTP에 TLS를 적용하며 이 조건의 기본 TCP 포트는 443번이다.
- ② 오답. TLS 없는 일반 HTTP와 구별해야 한다.
- ③ 오답. RFC 2660의 별도 메시지 보안 방식으로 HTTPS와 다르다.
- ④ 오답. 제시한 HTTP over TLS의 프로토콜 명칭이 아니다.
편집 해설 근거: IANA, Service Name and Transport Protocol Port Number Registry (2026-10-05 확인) — https, TCP 443 등록 항목; IETF RFC 8446, TLS 1.3 (2018) — §1 Introduction; §5 Record Protocol; IETF RFC 2660, Secure HTTP (1999), 현재 Historic 분류 — §1 Introduction; §2 Overview
100. 전통적인 Ethernet 환경에서 MAC 주소 테이블을 이용해 프레임을 전달하는 데이터 링크 계층 장비는? (허브는 일반적인 리피터 허브를 뜻한다.)
[학습용 개정문항]
- 스위치
- 전송 회선
- 리피터
- 허브
정답과 해설 보기
정답: 1
정답은 ① 스위치이다. 전통적인 계층 2 Ethernet 스위치는 프레임의 출발지 MAC 주소와 수신 포트를 학습하고, 목적지 MAC 주소를 주소 테이블에서 찾아 전달 포트를 결정한다. 이처럼 프레임과 MAC 주소를 다루는 기능은 데이터 링크 계층에 해당한다.
리피터와 일반적인 리피터 허브는 물리적인 신호를 재생·전달하며 MAC 주소 테이블로 목적지 포트를 선택하지 않는다. 전송 회선은 신호가 지나가는 매체다. 스위치라는 이름의 모든 제품이 계층 2 기능만 갖는 것은 아니며, 라우팅도 수행하는 다계층 스위치는 별도로 구분한다.
선지별 해설
- ① 정답. 계층 2 스위치는 MAC 주소를 기준으로 프레임을 전달한다.
- ② 오답. 물리적인 신호 전달 매체에 해당한다.
- ③ 오답. 신호를 재생하는 물리 계층 장비다.
- ④ 오답. 일반적인 리피터 허브는 MAC 기반으로 포트를 선택하지 않는다.
편집 해설 근거: Cisco, MAC Address and MAC Address Table Management — MAC Address and MAC Address Table Management, MAC address learning; Frame forwarding
정보처리기사 필기 기출문제 학습 방법
먼저 PDF 문제지를 시간에 맞춰 푼 뒤, 이 글에서 오답의 정답·해설·근거를 확인하세요. 법규 문항은 근거 기준일 이후 개정 여부도 함께 확인하는 것이 안전합니다.