문제지 PDF · 웹 정답 해설
정보처리기사 필기 2025년 1회 CBT 편집복원 100문항
정보처리기사 필기 2025년 1회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.
© 자격증3001. 이 정보처리기사 필기 기출문제 게시물의 문제 재구성 문장, 해설, 재작성 도식, 편집 및 PDF 디자인은 자격증3001의 저작권 보호를 받습니다. 국가기술자격 시험 및 관련 명칭의 권리는 해당 기관에 있으며, 본 자료는 Q-Net 공식 문제지 또는 공식 해설이 아닙니다. 무단 복제·재배포를 금합니다.
정보처리기사 필기 2025년 1회 CBT 편집복원 100문항 안내
정보처리기사 필기 2025년 1회 CBT 편집복원 100문항을 과목별로 풀고 문항별 정답과 상세해설을 확인하세요.
2025년 1회 범위의 후기복원 분류 대표 학습 세트입니다. CBT 원문이나 공식 정답표를 제공하는 자료가 아닙니다. 100문항의 해설을 기술 문서와 필요한 독립 계산으로 새로 편집 검토했으며, 질문·조건·보기를 바로잡은 문항은 학습용 개정문항으로 표시합니다.
정보처리기사 필기 기출문제 · 소프트웨어 설계
1. 설계 검토 회의에서 다음 항목을 판단한다. 폭포수 모델의 한계를 극복하기 위해 고안된 모델로, 시제품을 먼저 만들어 최종 산출물을 미리 가늠하고 사용자 피드백을 설계에 반영하는 방식의 개발 방법론은?
- 프로토타입 모델
- 나선형 모델
- 애자일 모델
- 폭포수 모델
정답과 해설 보기
정답: 1
정답은 ① 프로토타입 모델이다. 요구사항이나 화면의 모습을 말과 문서만으로 합의하기 어려울 때, 먼저 제한된 기능의 시제품을 만들어 사용자가 보고 평가하게 한다. 그 피드백으로 빠진 기능이나 잘못 이해한 요구를 찾아 실제 제품의 설계를 다듬는 접근이다.
시제품이 최종 제품 전체의 품질이나 성능을 보장하는 것은 아니다. 시험한 뒤 버리는 형태와 계속 발전시키는 형태가 모두 있으며, 나선형이나 애자일 개발에서도 프로토타입을 사용할 수 있다. 이 문제에서는 시제품을 통한 요구 확인이 중심 단서다.
선지별 해설
- ① 정답. 시제품에 대한 사용자 평가로 요구와 설계를 구체화하는 모델이다.
- ② 오답. 반복마다 위험을 분석하는 것이 중심이며 시제품만으로 이 모델을 특정하지 않는다.
- ③ 오답. 협업과 변화 대응을 중시하는 여러 접근을 포함하는 넓은 개념이다.
- ④ 오답. 단계별 진행을 중심으로 하며 제시한 시제품 피드백 접근의 명칭이 아니다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Engineering Models and Methods §4.3 Prototyping Methods
2. 설계 검토 회의에서 다음 항목을 판단한다. 나선형 프로세스는 개발 활동을 반복하며 점진적으로 시스템을 완성해 가는 방식이다. 다음은 나선형 프로세스의 주요 단계 흐름이다. 빈칸에 들어갈 단계로 알맞은 것은? <보기> 계획 및 목표 설정 → ( 빈칸 ) → 공학적 개발 및 검증 → 고객 평가
- 테스트 설계
- 인터페이스 구현
- 요구사항 분석
- 위험 분석
정답과 해설 보기
정답: 4
정답은 ④ 위험 분석이다. 나선형 모델은 목표와 대안, 제약을 정한 뒤 각 대안의 위험을 평가하고 줄이는 활동을 반복 주기의 중요한 기준으로 삼는다. 기술적으로 구현 가능한지 불확실하다면 실험이나 프로토타입으로 위험을 먼저 확인한 후 다음 개발 활동을 정할 수 있다.
따라서 제시한 계획 → 빈칸 → 개발·검증 → 평가의 요약에서 빈칸은 위험 분석이다. 단순히 같은 개발 단계를 여러 번 반복한다는 특징만으로는 나선형 모델을 충분히 설명할 수 없다. 반복마다 어떤 위험을 해소해야 하는지를 중심으로 진행한다.
선지별 해설
- ① 오답. 테스트 설계도 필요하지만 이 모델의 빈칸에 해당하는 핵심 활동은 위험 분석이다.
- ② 오답. 특정 구현 작업으로서 반복 방향을 정하는 위험 평가와 다르다.
- ③ 오답. 요구 분석만으로 대안의 기술·사업 위험을 평가하는 단계를 대신하지 않는다.
- ④ 정답. 위험을 파악하고 해소하는 활동이 나선형 모델의 핵심이다.
편집 해설 근거: Barry W. Boehm, A Spiral Model of Software Development and Enhancement (1988), 논문 보존 사본 — A Spiral Model of Software Development, Figure 2 및 A Typical Cycle of the Spiral
3. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 애자일(Agile) 방법론에서 강조하는 가치로 보기 어려운 것은?
- 고객과의 상호작용
- 소통과 협업
- 절차와 문서화
- 변화에 대한 대응
정답과 해설 보기
정답: 3
정답은 ③ 절차와 문서화이다. 애자일 선언은 프로세스와 도구보다 개인과 상호작용을, 포괄적인 문서보다 동작하는 소프트웨어를, 계약 협상보다 고객 협력을, 계획 준수보다 변화 대응을 더 가치 있게 여긴다고 설명한다. 따라서 보기에서는 고객과의 협력·소통·변화 대응이 우선 가치에 가깝다.
이는 문서나 계획이 무가치하다는 뜻이 아니다. 필요한 문서와 절차는 사용하되 그것을 만드는 일 자체가 고객에게 유용한 소프트웨어를 전달하는 목적보다 앞서지 않도록 판단하는 것이 핵심이다.
선지별 해설
- ① 오답. 고객과 자주 상호작용하며 필요를 확인하는 것은 애자일 가치와 맞는다.
- ② 오답. 개인 간 상호작용과 고객 협력을 중시한다.
- ③ 정답. 절차와 문서보다 동작하는 제품과 협력에 상대적으로 더 높은 가치를 둔다.
- ④ 오답. 변화에 대응하는 것은 선언의 네 우선 가치 중 하나다.
편집 해설 근거: Manifesto for Agile Software Development (2001) — Manifesto의 네 가지 가치와 마지막 문장
4. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 익스트림 프로그래밍(XP)의 다섯 가지 핵심 가치에 속하지 않는 것은?
- 의사소통
- 단순성
- 창조성
- 존중
정답과 해설 보기
정답: 3
정답은 ③ 창조성이다. XP에서 제시하는 다섯 가치는 의사소통, 단순성, 피드백, 용기, 존중이다. 의사소통은 팀이 같은 문제를 이해하도록 돕고, 단순성은 현재 필요한 해법에 집중하게 하며, 피드백은 테스트와 실제 사용 결과를 바탕으로 방향을 조정하게 한다.
용기는 필요한 변경이나 문제 제기를 회피하지 않는 태도이며 존중은 함께 일하는 사람의 기여와 입장을 인정하는 가치다. 창의적인 해결이 개발에 유익할 수는 있지만 창조성이라는 항목은 이 다섯 가치의 이름에 포함되지 않는다.
선지별 해설
- ① 오답. XP의 다섯 가치에 포함된다.
- ② 오답. 필요한 해법을 단순하게 유지하는 핵심 가치다.
- ③ 정답. 유익한 능력일 수 있으나 XP가 정한 다섯 가치 명칭에는 없다.
- ④ 오답. 팀 구성원 간 존중은 XP의 핵심 가치다.
편집 해설 근거: Ron Jeffries, What is Extreme Programming? (2011) — What is Extreme Programming?, Values 도입 문단
5. 자료 흐름도(DFD)의 구성 요소와 의미에 대한 설명으로 적절하지 않은 것은?
[학습용 개정문항]
- 외부 개체는 시스템 경계 밖의 데이터 공급·수신자를 나타낸다.
- 프로세스는 입력 데이터를 처리하여 출력 데이터를 만든다.
- 모든 화살표는 제어 실행의 시간 순서를 나타낸다.
- 자료 저장소는 저장된 데이터를 나타낸다.
정답과 해설 보기
정답: 3
정답은 ③이다. 자료 흐름도는 데이터가 어디에서 들어와 어떤 처리를 거쳐 어디로 이동하거나 저장되는지를 나타낸다. 화살표는 자료의 이동을 표현하며 명령이 실행되는 시간 순서나 제어 흐름을 나타내는 기호가 아니다. 같은 데이터 흐름이 실제 구현에서 언제 실행될지는 별도의 설계가 필요하다.
외부 개체는 시스템 밖에서 데이터를 보내거나 받는 대상, 프로세스는 데이터를 변환하는 처리, 자료 저장소는 데이터를 보관하는 요소다. 순서도나 시퀀스 다이어그램처럼 시간·제어 순서를 다루는 표현과 DFD의 목적을 구별한다.
선지별 해설
- ① 오답. 외부 개체가 데이터 공급자나 수신자라는 설명은 맞다.
- ② 오답. 프로세스는 데이터를 처리하거나 변환한다.
- ③ 정답. 화살표는 데이터의 이동이며 모든 제어 실행의 시간 순서를 나타내지 않는다.
- ④ 오답. 자료 저장소는 저장된 데이터와 그 입출력을 나타낸다.
편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram, DFD 설명과 네 구성 요소 그림
6. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 자료 흐름도(DFD)에서 데이터의 출발점이나 도착점 역할을 하는 외부 개체에 해당하는 구성 요소는?
- 자료 저장소(Data Store)
- 자료 흐름(Data Flow)
- 단말(Terminator)
- 프로세스(Process)
정답과 해설 보기
정답: 3
정답은 ③ 단말이다. DFD에서 단말 또는 외부 개체는 분석 대상 시스템의 경계 밖에 있으면서 데이터를 공급하거나 처리 결과를 받아가는 사람, 조직, 다른 시스템 등을 나타낸다. 예를 들어 주문 시스템에서 주문서를 보내는 고객이 외부 개체가 될 수 있다.
자료 흐름은 주문서와 같은 데이터의 이동, 프로세스는 주문 내용을 확인하는 처리, 자료 저장소는 주문 기록을 보관하는 곳에 대응한다. 단말이라는 표현을 키보드와 모니터를 갖춘 물리 장치로만 좁혀 이해하지 않는다.
선지별 해설
- ① 오답. 데이터를 보관하는 요소로 외부 공급·수신자를 뜻하지 않는다.
- ② 오답. 대상 사이를 이동하는 데이터 자체를 나타낸다.
- ③ 정답. 시스템 밖의 데이터 출발점이나 도착점 역할을 하는 외부 개체다.
- ④ 오답. 데이터를 처리·변환하는 기능을 나타낸다.
편집 해설 근거: Microsoft, Threat Modeling for Drivers: Create a data flow diagram — Create a data flow diagram, external entity 및 DFD 기호
7. 추가 자원 제약이 없는 CPM 일정에서 시작부터 종료까지의 모든 경로 P1, P2, P3, P4의 기간 합계가 각각 14일, 12일, 15일, 13일이다. 프로젝트 최소 완료 기간은?
[학습용 개정문항]
- 14일
- 12일
- 15일
- 13일
정답과 해설 보기
정답: 3
정답은 ③ 15일이다. 작업 선후관계로 정해진 시작부터 종료까지의 모든 경로를 완료해야 프로젝트가 끝난다. 따라서 주어진 조건에서 최소 완료 기간은 경로 기간 14·12·15·13일 중 가장 큰 15일이다. P3가 이 조건의 임계 경로가 된다.
더 짧은 경로만 완료했다고 프로젝트가 끝나는 것은 아니다. 이 계산은 제시한 값이 전체 경로의 합계이고 추가적인 자원 제약이나 일정 지연이 없다는 전제에 따른다. 실제 자원 충돌이나 작업 기간 변경이 있으면 다시 일정과 임계 경로를 계산해야 한다.
선지별 해설
- ① 오답. 15일이 필요한 P3를 완료하지 못한다.
- ② 오답. 가장 짧은 경로만 끝내는 기간이다.
- ③ 정답. 모든 경로를 완료하는 데 필요한 최장 경로 기간이다.
- ④ 오답. 14일과 15일 경로를 모두 완료할 수 없다.
편집 해설 근거: R. G. Batson, NASA TM-100311 Program Risk Analysis Handbook (1987) — E. Analytical Technique for Schedule Risk Assessment, p.24, Step 3
8. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 소프트웨어 개발의 비용을 산정하기 위한 모델로 적절하지 않은 것은?
- LOC 기반 비용 산정(라인 수 기반)
- SWOT 분석 기반 비용 산정
- COCOMO 모델
- 기능 점수(Function Point) 기반 산정
정답과 해설 보기
정답: 2
정답은 ② SWOT 분석 기반 비용 산정이다. SWOT은 강점·약점·기회·위협을 검토하는 전략 분석 틀이다. 프로젝트 환경을 판단하는 데 참고할 수는 있지만 제시된 LOC, COCOMO, 기능 점수처럼 소프트웨어 개발 규모와 노력·비용을 산정하는 대표적 기법 명칭은 아니다.
LOC는 코드 분량을, 기능 점수는 사용자에게 제공하는 기능 규모를 측정하는 기준으로 활용된다. COCOMO는 규모와 여러 비용 요인을 이용해 노력을 추정한다. 규모 값만 얻었다고 비용이 자동으로 확정되는 것은 아니며 생산성·인건비·환경 등의 가정이 필요하다.
선지별 해설
- ① 오답. 예상 코드 분량과 생산성 등을 바탕으로 개발 노력을 추정할 수 있다.
- ② 정답. 강점·약점·기회·위협을 보는 전략 분석 틀이다.
- ③ 오답. 규모와 비용 요인으로 소프트웨어 개발 노력을 추정하는 모델이다.
- ④ 오답. 기능 규모를 산정한 뒤 생산성과 비용 자료에 연결할 수 있다.
편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Software Engineering Economics, Software Cost Estimation Techniques; U.S. Small Business Administration, Why December is a Great Time to Review Your Business Plan (2016) — Your business plan includes a SWOT analysis 문단
9. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 작성될 코드의 분량을 기준으로 개발 비용을 추정하는 방식은?
- FP(Function Point)
- PERT(Program Evaluation Review Technique)
- CPM(Critical Path Method)
- LOC(Line of Code)
정답과 해설 보기
정답: 4
정답은 ④ LOC이다. Lines of Code는 작성해야 할 소스 코드의 줄 수를 규모 지표로 사용하는 방식이다. 예상 코드 분량과 단위 노력당 생산성을 이용해 필요한 개발 노력을 추정하고, 인건비 등의 자료를 적용해 비용 추정으로 이어갈 수 있다.
기능 점수는 사용자가 요구하는 기능 규모를 중심으로 측정하며, PERT와 CPM은 작업 의존 관계와 일정 경로를 분석하는 기법이다. LOC를 비교할 때에는 사용하는 언어와 줄 수 계산 기준이 같아야 하며, 줄 수가 많다는 사실만으로 품질이나 개발 성과가 높다고 판단하지 않는다.
선지별 해설
- ① 오답. 코드 줄 수보다 기능 규모를 측정한다.
- ② 오답. 기간의 불확실성과 일정 네트워크를 분석하는 기법이다.
- ③ 오답. 선후관계에 따른 임계 경로와 일정을 분석한다.
- ④ 정답. 코드 줄 수를 규모 기준으로 사용한다.
편집 해설 근거: Barry W. Boehm, Software Engineering Economics (1984), 저자 논문 보존 사본 — Software Cost Estimation Techniques; COCOMO, delivered source instructions 규모; R. G. Batson, NASA TM-100311 Program Risk Analysis Handbook (1987) — E. Analytical Technique for Schedule Risk Assessment, p.24
10. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 CASE 도구의 특징으로 보기 어려운 것은?
[학습용 개정문항]
- 유지보수 비용 절감에 도움이 될 수 있다.
- 개발 기간을 의도적으로 늘리는 것이 주된 목적이다.
- 분석·설계·구현 등 여러 단계의 작업 자동화를 지원할 수 있다.
- 품질 향상과 생산성 향상에 기여할 수 있다.
정답과 해설 보기
정답: 2
정답은 ②이다. CASE는 컴퓨터 도구로 소프트웨어의 개발과 유지보수 활동을 지원하는 접근이다. 모델 작성, 문서화, 일관성 점검, 코드나 테스트 생성 등의 반복 작업을 지원하여 생산성과 품질을 높이는 데 도움을 줄 수 있다. 개발 기간을 의도적으로 늘리는 것 자체는 도입 목적이 아니다.
도구마다 지원하는 생명주기 단계와 자동화 범위가 다르다. 하나의 도구가 모든 분석·설계·구현·검증 판단을 사람 없이 수행한다고 이해해서는 안 된다. 도입과 학습에는 비용이 들 수 있으므로 적용 환경과 장기적인 효과를 함께 평가해야 한다.
선지별 해설
- ① 오답. 일관성 있는 산출물 관리 등으로 유지보수 비용 절감에 도움을 줄 수 있다.
- ② 정답. 개발 기간을 늘리는 것 자체가 CASE의 주된 목적은 아니다.
- ③ 오답. 생명주기 여러 단계의 작업을 도구로 지원할 수 있다.
- ④ 오답. 반복 작업 지원과 일관성 검사는 생산성·품질 개선에 도움을 줄 수 있다.
편집 해설 근거: ISO/IEC 14102:2008, Guideline for the evaluation and selection of CASE tools, 공개 개요 — Abstract, supporting technologies used to develop and maintain IT systems; IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §8 Software Requirements Tools; Software Construction §5 Software Construction Tools
11. 데이터베이스의 데이터를 저장·검색·갱신하고 무결성·동시 접근·복구 등을 관리하는 소프트웨어는?
[학습용 개정문항]
- WAS
- MOM
- DBMS
- ORB
정답과 해설 보기
정답: 3
정답은 ③ DBMS이다. 데이터베이스 관리 시스템은 데이터를 저장하고 질의로 검색하며 갱신하는 기능과 함께 무결성, 동시 접근, 복구와 같은 관리 기능을 제공한다. 데이터베이스에 보관된 데이터를 애플리케이션이 체계적으로 사용하게 하는 소프트웨어다.
WAS는 웹 애플리케이션의 업무 로직을 실행하고, MOM은 메시지를 전달하며, ORB는 분산 객체에 대한 요청을 중개한다. 이러한 계층이 DBMS와 협력할 수는 있지만 데이터베이스 자체를 관리하는 역할과 모두 같은 것은 아니다.
선지별 해설
- ① 오답. 웹 애플리케이션 실행과 업무 로직 처리를 담당한다.
- ② 오답. 구성 요소 사이의 메시지 송수신을 지원하는 미들웨어다.
- ③ 정답. 데이터베이스의 저장·검색·갱신 및 관리 기능을 제공한다.
- ④ 오답. 분산 객체의 요청을 중개하는 구성 요소다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — What Is a DBMS?; Why Use a DBMS?; Oracle Java EE 7 Tutorial, Overview of the JMS API — What Is Messaging?; Oracle Tuxedo 22, ORB Software — Object Request Broker
12. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 요구사항 분석 활동의 특징으로 보기 어려운 것은?
- 개발된 소프트웨어의 최종 성능을 보장한다.
- 이해관계자의 요구사항을 도출하고 명확하게 정리한다.
- 요구사항의 충돌을 해결하고 우선순위를 부여한다.
- 요구사항 변경이 전체 개발에 영향을 줄 수 있음을 고려한다.
정답과 해설 보기
정답: 1
정답은 ①이다. 요구사항 분석은 이해관계자의 요구를 구체화하고 모순과 누락을 찾아 해결하며 우선순위와 제약을 정리하는 활동이다. 성능 요구도 이 단계에서 명확하게 할 수 있지만, 분석을 수행했다는 사실만으로 완성된 제품의 실제 성능이 보장되지는 않는다.
예를 들어 응답시간 요구를 정했더라도 구현과 운영 환경에 따라 결과가 달라지므로 실제 측정과 검증이 필요하다. 요구가 바뀔 때 설계·구현·테스트에 미치는 영향을 추적하는 일은 요구 관리와 연결되며 개발 전반에 영향을 준다.
선지별 해설
- ① 정답. 요구를 분석하는 것만으로 구현 결과의 최종 성능을 보장할 수 없다.
- ② 오답. 도출한 요구를 명확히 이해하고 정리하는 것은 요구공학의 주요 활동이다.
- ③ 오답. 상충하는 요구의 해결과 우선순위 결정은 관련 활동이다.
- ④ 오답. 요구 변경의 영향 분석과 추적은 개발의 일관성을 유지하는 데 필요하다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Requirements §3 Requirements Analysis; §6.2 Requirements Change Control; §7.2 Requirements Prioritization; §7.3 Requirements Tracing
13. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 UML 상태 다이어그램에서 객체가 가지는 상태를 표현하는 구성 요소는?
- Message
- State
- Usecase
- Actor
정답과 해설 보기
정답: 2
정답은 ② State이다. UML 상태 머신에서 상태는 객체가 어떤 조건을 만족하거나 특정 상황에 놓여 있음을 나타낸다. 예를 들어 주문 객체의 결제 대기·결제 완료·배송 중을 각각 상태로 모델링할 수 있다. 사건이 발생하고 전이 조건을 만족하면 다른 상태로 이동한다.
Message는 상호작용에서의 메시지 전달, UseCase는 액터에게 의미 있는 결과를 제공하는 기능의 사용 사례, Actor는 시스템 밖에서 상호작용하는 역할이다. 상태를 나타내는 요소와 그 밖의 UML 요소 이름을 구별한다.
선지별 해설
- ① 오답. 상호작용에서 전달되는 메시지를 나타내는 요소다.
- ② 정답. 상태 머신에서 객체의 상태를 나타낸다.
- ③ 오답. 액터와 시스템 사이의 기능적 사용 사례를 나타낸다.
- ④ 오답. 시스템과 상호작용하는 외부 역할을 나타낸다.
편집 해설 근거: OMG UML 2.5.1 (2017) — §14 State Machines, State; §17 Interactions, Message; §18 Use Cases
14. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 UML 활동(Activity) 다이어그램에 대한 기술로 가장 적절한 것은?
- 시스템 외부 사용자와 요구를 표현한 다이어그램
- 객체의 상태 변화 과정을 시간 흐름에 따라 표현한 다이어그램
- 시스템이나 객체가 수행하는 작업의 흐름을 순서대로 표현한 다이어그램
- 객체 간의 관계와 속성을 표현한 다이어그램
정답과 해설 보기
정답: 3
정답은 ③이다. 활동 다이어그램은 수행할 작업과 작업 사이의 흐름을 나타내는 UML 행위 다이어그램이다. 작업의 순차 진행뿐 아니라 조건에 따른 분기, 여러 흐름의 병렬 수행과 합류도 표현할 수 있으므로 단순한 일렬 순서만 나타내는 도구는 아니다.
액터와 시스템 기능의 관계를 나타내는 것은 유스케이스, 객체가 사건에 따라 상태를 바꾸는 것은 상태 머신, 클래스의 속성과 관계를 나타내는 것은 클래스 다이어그램의 주된 관심사다. 무엇의 행동과 관계를 설명하려는지에 따라 다이어그램을 선택한다.
선지별 해설
- ① 오답. 외부 액터와 시스템의 사용 목적을 나타내는 유스케이스에 가깝다.
- ② 오답. 상태와 전이를 중심으로 하는 상태 머신에 가깝다.
- ③ 정답. 작업의 진행과 제어·데이터 흐름을 나타낸다.
- ④ 오답. 구조와 속성의 표현은 구조 다이어그램의 관심사에 가깝다.
편집 해설 근거: OMG UML 2.5.1 (2017) — §15 Activities; Annex A Figure A.5 UML diagram taxonomy
15. 손가락을 화면에 직접 접촉하여 수행하는 터치 제스처에 해당하지 않고, 포인터를 대상 위에 올렸을 때의 반응을 가리키는 것은?
[학습용 개정문항]
- 롤오버(Rollover)
- 더블탭(Double Tap)
- 스와이프(Swipe)
- 핀치(Pinch)
정답과 해설 보기
정답: 1
정답은 ① 롤오버이다. 이 문제는 손가락을 화면에 직접 접촉해 수행하는 터치 제스처를 묻는다. 더블탭은 같은 대상을 빠르게 두 번 두드리고, 스와이프는 손가락을 일정 방향으로 움직이며, 핀치는 두 접촉점 사이의 거리를 바꾸는 동작이다.
롤오버는 보통 마우스 같은 포인터를 대상 위에 올렸을 때의 반응을 가리키므로 보기의 직접 접촉 제스처와 구별된다. 일부 펜이나 장치가 화면에 닿기 전 호버를 감지할 수 있다는 사실까지 부정하는 설명은 아니다. 물리적 입력 동작을 기준으로 판단한다.
선지별 해설
- ① 정답. 포인터를 대상 위에 올리는 호버 반응으로, 지정한 직접 접촉 제스처와 다르다.
- ② 오답. 화면을 빠르게 두 번 두드리는 터치 제스처다.
- ③ 오답. 접촉한 손가락을 한 방향으로 움직이는 제스처다.
- ④ 오답. 두 손가락 사이의 간격을 바꾸는 터치 제스처다.
편집 해설 근거: Android Developers, Use touch gestures — Detect common gestures; Drag and scale; W3C, UI Events Working Draft (2016-08-04), Mouse events — §4.3.3 Mouse Event Order; §4.3.4.8 mouseover; Android Developers, Drag and scale — Use touch to perform scaling
16. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 기존 소프트웨어의 소스 코드를 분석해 설계 정보나 데이터 구조를 다시 도출해 내는 작업은?
- 유스케이스
- 이식
- 역공학
- 통합
정답과 해설 보기
정답: 3
정답은 ③ 역공학이다. 역공학은 기존 소프트웨어를 분석하여 구성 요소와 관계를 이해하고 이를 설계나 더 높은 추상 수준의 표현으로 다시 나타내는 과정이다. 소스 코드에서 호출 관계나 데이터 구조를 찾아 문서와 모델을 복원하는 일이 대표적인 예다.
분석 결과를 바탕으로 시스템을 고치는 재공학과 달리 역공학 자체는 기존 프로그램을 변경하는 활동으로 정의되지 않는다. 이식은 다른 환경에서 동작하게 옮기는 일이고, 통합은 여러 구성 요소를 함께 동작하도록 결합하는 일이므로 질문의 목적과 다르다.
선지별 해설
- ① 오답. 시스템 사용 목적과 상호작용을 표현하는 요구·분석 기법이다.
- ② 오답. 소프트웨어를 다른 환경에서 동작하게 옮기는 일이다.
- ③ 정답. 구현에서 구조와 설계 정보를 분석·복원하는 과정이다.
- ④ 오답. 여러 구성 요소를 결합하여 함께 동작시키는 일이다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Maintenance §4.3 Reverse Engineering
17. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 서브시스템들이 데이터를 차례대로 처리하면서 그 결과를 다음 서브시스템으로 넘기는 형태의 소프트웨어 아키텍처 패턴은?
- 브로커(Broker)
- 이벤트-버스(Event-Bus)
- 파이프-필터(Pipe-Filter)
- 클라이언트-서버(Client-Server)
정답과 해설 보기
정답: 3
정답은 ③ 파이프-필터이다. 각 필터는 입력 데이터를 받아 특정 처리를 수행한 뒤 결과를 다음 단계로 전달한다. 파이프는 이 단계들 사이의 데이터 전달 통로다. 예를 들어 로그를 읽고 불필요한 항목을 걸러낸 뒤 형식을 변환하는 처리를 독립된 단계로 구성할 수 있다.
단계마다 역할을 분리하면 필요한 필터를 재사용하거나 교체하기 쉽다. 다만 단계 간 데이터 형식과 오류 처리를 맞춰야 하며, 모든 시스템에서 통신 비용이 사라지는 것은 아니다. 브로커의 요청 중개나 이벤트 버스의 발행·구독 연결과 구별한다.
선지별 해설
- ① 오답. 분산 서비스나 객체 요청을 중개하는 구조다.
- ② 오답. 이벤트를 발행하고 구독자에게 전달하는 연결 구조다.
- ③ 정답. 필터의 처리 결과를 파이프로 다음 필터에 넘긴다.
- ④ 오답. 요청하는 클라이언트와 서비스를 제공하는 서버를 구별하는 구조다.
편집 해설 근거: Microsoft Azure Architecture Center, Pipes and Filters pattern (2026-10-05 확인) — Context and problem; Solution; Issues and considerations
18. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 EAI(Enterprise Application Integration) 구축 방식으로 보기 어려운 것은?
- 허브 앤 스포크
- 메시지 버스
- 데이터 스포크
- 포인트 투 포인트
정답과 해설 보기
정답: 3
정답은 ③ 데이터 스포크이다. 포인트 투 포인트는 애플리케이션 쌍을 직접 연결하는 방식이고, 허브 앤 스포크는 중앙 허브가 연계를 중개하는 방식이다. 메시지 버스는 공통 통신 기반과 인터페이스를 통해 여러 애플리케이션을 연결하는 접근이다.
스포크는 허브에 연결된 말단 연결을 가리키는 표현이지만 데이터 스포크는 이 문항에서 비교하는 대표적인 EAI 통합 방식의 명칭이 아니다. 실제 제품에서는 여러 방식이 혼합될 수 있으며, 메시지 버스를 단순히 특정 물리 케이블 모양으로 이해해서는 안 된다.
선지별 해설
- ① 오답. 중앙 허브가 여러 애플리케이션의 연계를 중개하는 방식이다.
- ② 오답. 공통 메시징 기반으로 애플리케이션을 연결하는 방식이다.
- ③ 정답. 보기에서 비교하는 대표 EAI 아키텍처 방식의 명칭이 아니다.
- ④ 오답. 애플리케이션 사이에 개별 연결을 만드는 방식이다.
편집 해설 근거: IBM, What Is Enterprise Application Integration? (2026-10-05 확인) — EAI models, point-to-point 및 hub-and-spoke; Hohpe·Woolf, Enterprise Integration Patterns, Message Bus — Message Bus, 본문과 Solution
19. 설계 검토 회의에서 다음 항목을 판단한다. 다음 중 한 모듈 안에서 구성 요소들이 서로 얼마나 긴밀하게 관련되어 있는지를 나타내는 척도는?
- 가용성(Availability)
- 결합도(Coupling)
- 응집도(Cohesion)
- 복잡도(Complexity)
정답과 해설 보기
정답: 3
정답은 ③ 응집도이다. 응집도는 하나의 모듈 안에 있는 기능과 구성 요소가 얼마나 같은 목적을 위해 밀접하게 관련되어 있는지를 나타낸다. 한 모듈이 서로 관련 없는 일을 무분별하게 모아 수행하면 목적을 이해하고 변경하기 어려워질 수 있다.
결합도는 모듈 사이의 의존 관계이고 응집도는 모듈 내부의 관련성이라는 차이가 있다. 가용성은 필요한 때 서비스를 사용할 수 있는 성질이며 복잡도는 구조나 동작을 이해하는 어려움 등을 나타내는 별도의 척도다. 일반적인 모듈 설계에서는 높은 응집과 낮은 불필요한 결합을 지향한다.
선지별 해설
- ① 오답. 서비스를 필요한 때 이용할 수 있는 성질이다.
- ② 오답. 모듈 사이의 의존 정도다.
- ③ 정답. 모듈 내부 구성 요소의 목적상 관련성을 나타낸다.
- ④ 오답. 내부 요소의 긴밀한 목적 관련성과 같은 척도가 아니다.
편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Design Principle 2: Increase cohesion where possible (p.16); Design Principle 3 (p.25)
20. 전통적인 모듈 결합도 분류에서 다음 중 유형의 명칭으로 보기 어려운 것은?
[학습용 개정문항]
- 데이터 결합도(Data Coupling)
- 스탬프 결합도(Stamp Coupling)
- 제어 결합도(Control Coupling)
- 프로세스 결합도(Process Coupling)
정답과 해설 보기
정답: 4
정답은 ④ 프로세스 결합도이다. 전통적인 모듈 결합도 분류에서 데이터 결합은 필요한 데이터를 매개변수로 전달하는 경우를, 스탬프 결합은 자료구조 전체를 전달하여 그 구조에 의존하는 경우를 구별한다. 제어 결합은 제어 플래그 등으로 다른 모듈의 처리 방향을 지시하는 의존이다.
프로세스 결합도는 이 분류의 이름에 포함되지 않는다. 프로세스라는 단어가 운영체제나 업무 흐름에서 사용된다는 사실과 모듈 결합도 유형의 명칭은 별개다. 특정 매개변수 사용이 무조건 나쁜 설계라는 뜻으로 확대하지 말고 의존의 성격을 판단한다.
선지별 해설
- ① 오답. 필요한 값의 전달을 통한 모듈 의존을 나타내는 분류다.
- ② 오답. 자료구조 전달에 따른 의존을 나타내는 분류다.
- ③ 오답. 다른 모듈의 동작을 제어하는 정보를 전달하는 결합이다.
- ④ 정답. 제시한 전통적 모듈 결합도 분류의 명칭이 아니다.
편집 해설 근거: Lethbridge·Laganière, Object-Oriented Software Engineering, Chapter 9 (2001), 저자 강의 자료 — Chapter 9, Coupling: Control Coupling, Stamp Coupling, Data Coupling
정보처리기사 필기 기출문제 · 소프트웨어 개발
21. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 형상 관리의 주요 활동으로 보기 어려운 것은?
- 형상 식별(Configuration Identification)
- 형상 통제(Configuration Control)
- 형상 감사(Configuration Audit)
- 품질 보증(Quality Assurance)
정답과 해설 보기
정답: 4
정답은 ④ 품질 보증이다. 형상 관리는 관리할 산출물과 버전을 식별하고, 변경을 통제하며, 현재 상태와 이력을 기록하고, 정해진 형상과 실제 산출물의 일치 여부를 감사하는 활동이다. 보기의 형상 식별·통제·감사는 이 활동에 직접 해당한다.
품질 보증은 제품과 프로세스가 요구한 품질을 충족한다는 신뢰를 제공하기 위한 더 넓은 활동이다. 형상 관리가 품질 보증에 기여하고 품질 보증 활동이 형상 관리 절차를 점검할 수 있지만, 두 개념을 동일한 활동 목록으로 취급하지는 않는다.
선지별 해설
- ① 오답. 관리 대상 형상 항목과 기준선을 식별한다.
- ② 오답. 변경 요청을 평가하고 승인된 변경을 통제한다.
- ③ 오답. 형상 항목과 관련 기록의 적합성을 확인한다.
- ④ 정답. 형상 관리와 협력하지만 그 직접 활동 이름과 구별되는 품질 활동이다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Configuration Management §§2–5; Software Quality §3 Software Quality Assurance Process
22. Java/Jakarta Servlet과 JSP를 지원하는 웹 애플리케이션 서버(WAS)에 관한 설명으로 틀린 것은?
[학습용 개정문항]
- 웹 서버와 데이터베이스 서버 사이에서 비즈니스 로직을 처리한다.
- JSP, Servlet과 같은 웹 애플리케이션을 실행한다.
- HTTP 세션을 관리하고 동적 콘텐츠를 생성하는 서버이다.
- 클라이언트와 서버 간 데이터베이스를 직접 연결하는 역할만 수행한다.
정답과 해설 보기
정답: 4
정답은 ④이다. Java/Jakarta Servlet 기반 웹 애플리케이션 서버는 요청을 받아 애플리케이션 코드를 실행하고 동적 응답을 만들어 전달한다. 업무 로직 실행, Servlet·JSP 처리, HTTP 세션 관리와 같은 기능을 제공할 수 있으므로 데이터베이스 연결만 담당한다는 설명은 틀리다.
데이터베이스가 필요한 요청에서는 애플리케이션이 DBMS에 질의하고 그 결과를 응답에 반영한다. 하지만 모든 요청이 반드시 데이터베이스를 사용하지는 않는다. 또한 WAS라는 넓은 범주에 속한 모든 제품이 Java 기술을 지원하는 것은 아니므로 문제의 실행 환경 조건을 확인한다.
선지별 해설
- ① 오답. 웹 요청을 처리하는 업무 로직을 실행하는 역할에 해당한다.
- ② 오답. 지정한 Java 웹 환경에서 제공하는 실행 기능이다.
- ③ 오답. 동적 응답 생성과 세션 관리는 관련 기능이다.
- ④ 정답. 데이터베이스 직접 연결만 수행한다는 제한이 잘못되었다.
편집 해설 근거: Oracle Java EE 7 Tutorial, Java Servlet Technology — §17.1 What Is a Servlet?; Chapter 17 목차의 §17.9 Maintaining Client State
23. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소스 코드 정적 분석에 사용되는 도구로 보기 어려운 것은?
- PMD
- SonarQube
- cppcheck
- Selenium
정답과 해설 보기
정답: 4
정답은 ④ Selenium이다. 정적 분석은 대상 프로그램의 동작을 직접 실행해 관찰하기보다 소스 코드나 관련 표현을 분석하여 잠재적인 결함과 규칙 위반을 찾는다. PMD는 코드 분석 규칙을 적용하고, SonarQube는 정적 코드 분석 기능을 제공하며, Cppcheck는 C/C++ 코드의 정적 분석 도구다.
Selenium의 중심 기능은 웹 브라우저를 자동으로 조작하는 것이다. 페이지를 열고 요소를 클릭하며 결과를 확인하는 자동화 테스트에 활용한다. CI에서 정적 분석과 브라우저 테스트를 함께 실행할 수 있어도 각 도구의 주된 분석 방식은 구별해야 한다.
선지별 해설
- ① 오답. 규칙을 이용하여 소스 코드의 문제를 찾는 정적 분석기다.
- ② 오답. 코드 품질과 보안 관련 정적 분석 기능을 제공한다.
- ③ 오답. C/C++ 정적 분석을 수행하는 도구다.
- ④ 정답. 웹 브라우저 조작 자동화가 주된 기능이다.
편집 해설 근거: PMD 공식 프로젝트, About PMD — About PMD; Sonar, SonarQube capabilities, Static code analysis — SonarQube capabilities, Static code analysis; Cppcheck 공식 저장소, 프로젝트 소개 — About; Selenium 공식 문서, Overview — Overview; Selenium WebDriver
24. DRM에서 콘텐츠의 이용 권한을 직접 제어하는 기술 요소와 가장 거리가 먼 것은?
[학습용 개정문항]
- 암호화(Encryption)
- 키 관리(Key Management)
- 정책 관리(Policy Management)
- 가상화 기술(Virtualization Technology)
정답과 해설 보기
정답: 4
정답은 ④ 가상화 기술이다. DRM은 디지털 콘텐츠에 대한 이용 권한을 관리하고 집행하기 위한 체계다. 암호화는 콘텐츠를 보호하고, 키 관리는 복호화에 필요한 키를 다루며, 정책 관리는 허용된 재생이나 이용 조건을 표현하고 적용하는 데 관여한다.
가상화는 실행 환경이나 자원을 추상화하는 기술이므로 이 보기에서 묻는 직접적인 콘텐츠 이용 권한 제어 기술과는 구별된다. 다만 DRM 서버가 가상 머신에서 운영될 수 있으므로 가상화가 DRM 시스템 어디에서도 사용될 수 없다는 뜻으로 해석해서는 안 된다.
선지별 해설
- ① 오답. 콘텐츠를 암호화하여 허가되지 않은 해독을 제한한다.
- ② 오답. 허가된 복호화에 필요한 키를 관리한다.
- ③ 오답. 콘텐츠의 허용된 이용 조건을 표현하고 관리한다.
- ④ 정답. 서버 운영에 활용될 수 있지만 직접적인 이용 권한 제어 요소와는 다르다.
편집 해설 근거: Microsoft PlayReady, Content Encryption (2026-10-05 확인) — Content Encryption; W3C Recommendation — ODRL Information Model 2.2 — ODRL Information Model, Policy 및 Permission
25. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 인터페이스 구현 검증 도구로 보기 어려운 것은?
- JUnit
- STAF
- FitNesse
- Git
정답과 해설 보기
정답: 4
정답은 ④ Git이다. JUnit은 JVM 기반 프로그램의 테스트를 작성하고 실행하는 프레임워크이며, STAF는 여러 환경의 테스트 작업을 자동화하는 기반을 제공한다. FitNesse는 실행 가능한 명세와 테스트를 연결하여 구현 결과를 확인하는 데 사용한다.
Git은 소스 코드와 산출물의 변경 이력을 관리하는 버전 관리 도구다. 테스트 코드도 Git으로 관리할 수 있지만 Git 자체가 인터페이스의 동작을 검증하는 테스트 프레임워크는 아니다. 앞의 도구들도 테스트 사례와 연결 코드가 준비되어야 대상 인터페이스를 실제로 확인할 수 있다.
선지별 해설
- ① 오답. 테스트를 작성·실행하여 구현 결과를 확인하는 데 사용할 수 있다.
- ② 오답. 테스트 작업과 여러 실행 환경의 자동화를 지원한다.
- ③ 오답. 명세를 테스트로 실행하여 구현과 비교할 수 있다.
- ④ 정답. 주된 목적은 변경 이력과 버전 관리다.
편집 해설 근거: JUnit 공식 프로젝트, About — About; STAF V3 User Guide, Version 3.4.26 (2016) — Introduction; FitNesse 공식 프로젝트, Test tool — It is a Test tool; Git 공식 프로젝트, About Git — About Git
26. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 정형 기술 검토(FTR, Formal Technical Review)의 원칙으로 보기 어려운 것은?
[학습용 개정문항]
- 검토 과정과 결과를 평가하여 개선한다.
- 사전 준비를 수행하고 발견 사항을 공유한다.
- 검토 대상에 맞는 체크리스트를 마련한다.
- 결함의 식별과 기록을 생략하고 해결책을 제한 없이 토론한다.
정답과 해설 보기
정답: 4
정답은 ④이다. 정형 기술 검토의 핵심은 정해진 산출물을 체계적으로 살펴 결함과 개선 필요 사항을 식별하고 기록하는 것이다. 검토 전 준비, 체크리스트, 발견 사항 공유, 검토 과정의 평가가 목적 달성에 도움을 준다.
해결 방향을 논의하는 행위 자체가 모든 검토에서 금지되는 것은 아니다. 다만 결함을 확인하고 기록하는 일을 생략한 채 해결책을 제한 없이 토론하면 검토 범위를 벗어나기 쉽다. 발견 사항을 남기고 담당자와 후속 조치를 정하여 수정 여부를 추적하는 편이 검토 목적에 맞는다.
선지별 해설
- ① 오답. 검토 방식과 결과를 평가하여 다음 검토를 개선할 수 있다.
- ② 오답. 개별 준비와 발견 사항 공유는 효과적인 검토를 돕는다.
- ③ 오답. 기준과 확인 항목을 명확하게 하는 방법이다.
- ④ 정답. 결함 식별·기록을 생략한 무제한 토론은 검토 목적에 맞지 않는다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.2.1 Work Product Review Process; §3.2.3 Review Types; §3.2.5 Success Factors for Reviews
27. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 선형 자료 구조에 속하지 않는 것은?
- 데크(Deque)
- 스택(Stack)
- 큐(Queue)
- 트리(Tree)
정답과 해설 보기
정답: 4
정답은 ④ 트리이다. 선형 자료 구조에서는 원소를 하나의 순서로 배열하여 앞뒤 관계를 중심으로 다룬다. 스택과 큐는 원소의 삽입·삭제 규칙이 다르지만 선형 순서를 가지며, 데크도 양 끝에서 삽입과 삭제가 가능한 선형 구조다.
트리는 부모와 자식 관계로 원소를 연결하는 계층 구조다. 한 노드에서 여러 자식으로 갈라질 수 있으므로 일반적으로 비선형 자료 구조로 분류한다. 특정 트리가 우연히 한 줄로만 이어져 있더라도 트리라는 자료 구조의 일반적인 분류가 선형으로 바뀌는 것은 아니다.
선지별 해설
- ① 오답. 양 끝에서 삽입·삭제하는 선형 구조다.
- ② 오답. 후입선출 규칙을 갖는 선형 구조다.
- ③ 오답. 선입선출 규칙을 갖는 선형 구조다.
- ④ 정답. 부모·자식의 계층 관계를 표현하는 비선형 구조다.
편집 해설 근거: NIST DADS — queue — Definition 및 Related entries; NIST DADS — binary search tree — Definition; NIST DADS, tree — Definition
28. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 스택(Stack)의 활용 사례로 보기 어려운 것은?
- 함수 호출 관리
- 후위 표기식 계산
- 깊이 우선 탐색(DFS)
- 선입선출 방식의 작업 대기열 처리
정답과 해설 보기
정답: 4
정답은 ④이다. 스택은 마지막에 넣은 원소를 먼저 꺼내는 후입선출 구조다. 함수 호출에서는 최근에 호출한 함수가 먼저 복귀하고, 후위 표기식 계산에서는 최근의 피연산자들을 꺼내 연산한다. 깊이 우선 탐색도 명시적 스택이나 재귀 호출 스택을 이용해 진행할 수 있다.
먼저 도착한 작업을 먼저 처리하는 대기열은 선입선출 큐의 접근 규칙에 해당한다. 실제 스케줄러는 우선순위 등 다른 정책을 쓸 수도 있지만, 문제에서 지정한 선입선출 규칙을 판단할 때는 스택과 큐의 삭제 순서 차이가 핵심이다.
선지별 해설
- ① 오답. 가장 최근의 함수 호출 문맥부터 복귀하는 데 활용된다.
- ② 오답. 피연산자를 쌓고 필요한 값을 꺼내 계산한다.
- ③ 오답. 재귀 또는 명시적 스택으로 깊은 경로를 먼저 탐색한다.
- ④ 정답. 지정된 선입선출 규칙은 큐에 해당한다.
편집 해설 근거: NIST DADS, stack — Definition 및 관련 활용; GNU dc manual — reverse Polish notation — Definition; NIST DADS — queue — Definition
29. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 시간 복잡도 O(1)에 대한 기술로 가장 알맞은 것은?
[학습용 개정문항]
- 입력 크기에 비례하여 연산 횟수가 증가한다.
- 입력 크기의 제곱에 비례하여 연산 횟수가 증가한다.
- 입력 크기에 따라 연산 횟수가 로그 형태로 증가한다.
- 충분히 큰 입력 크기에 대해 연산 횟수가 어떤 상수 상한으로 제한된다.
정답과 해설 보기
정답: 4
정답은 ④이다. 시간 복잡도 O(1)은 입력 크기 n이 충분히 커져도 필요한 연산 수가 어떤 상수 상한으로 제한된다는 뜻이다. 모든 입력에서 실제 명령 수가 정확히 같아야 한다는 뜻은 아니며, 몇 가지 분기에 따라 횟수가 조금 달라도 공통 상수로 제한되면 O(1)일 수 있다.
배열의 유효한 인덱스에 직접 접근하는 연산은 일정 비용을 가정하는 계산 모형에서 대표적인 예다. 반면 입력 전체를 순회하면 보통 n에 비례한다. 빅오는 실행 시간을 초 단위로 예측하는 값이 아니라 입력 크기에 따른 점근적 상한을 표현한다.
선지별 해설
- ① 오답. 입력 크기에 비례하는 선형 증가를 설명한다.
- ② 오답. 입력 크기의 제곱에 비례하는 증가를 설명한다.
- ③ 오답. 로그 형태의 증가를 설명한다.
- ④ 정답. 충분히 큰 입력에 대해 연산 수가 일정한 상수 상한으로 제한된다.
편집 해설 근거: NIST DADS — Big-O notation — Definition
30. 서로 다른 N개 원소의 입력 순서가 균등하게 주어진다고 할 때, 기본 구현의 평균 비교 횟수가 Θ(N²)이 아니라 Θ(N log N)인 정렬은?
[학습용 개정문항]
- 삽입 정렬(Insertion Sort)
- 퀵 정렬(Quick Sort)
- 선택 정렬(Selection Sort)
- 버블 정렬(Bubble Sort)
정답과 해설 보기
정답: 2
정답은 ② 퀵 정렬이다. 서로 다른 원소의 입력 순서가 균등하게 주어지는 통상적인 평균 분석에서 퀵 정렬은 Θ(N log N), 삽입·선택·버블 정렬의 기본 구현은 Θ(N²)의 평균 비교 횟수를 가진다. 퀵 정렬은 피벗을 기준으로 분할하고 부분 구간을 정렬한다.
퀵 정렬도 분할이 계속 심하게 불균형하면 최악의 경우 Θ(N²)이 될 수 있다. 또한 O(N log N)은 넓은 상한인 O(N²)에도 포함되므로 단순히 O(N²)이 아니라고 묻는 것은 엄밀하지 않다. 이 문항은 가장 잘 맞는 증가 차수, 즉 Θ 표기로 구별한다.
선지별 해설
- ① 오답. 기본 삽입 정렬의 평균 비교 횟수는 Θ(N²)이다.
- ② 정답. 통상적인 평균 비교 횟수는 Θ(N log N)이다.
- ③ 오답. 기본 선택 정렬은 반복하여 남은 원소를 조사하므로 Θ(N²)이다.
- ④ 오답. 기본 버블 정렬의 평균 비교 횟수는 Θ(N²)이다.
편집 해설 근거: NIST DADS, quicksort — Definition 및 performance; NIST DADS — selection sort — Definition 및 performance; NIST DADS — bubble sort — Definition 및 performance
31. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 블랙박스 테스트 기법으로 보기 어려운 것은?
- 원인-효과 그래프
- 동등 분할 테스트
- 경계값 분석
- 제어 구조 검사
정답과 해설 보기
정답: 4
정답은 ④ 제어 구조 검사이다. 블랙박스 테스트는 내부 구현 구조보다 명세와 외부에서 관찰할 입력·출력 관계를 바탕으로 사례를 만든다. 동등 분할은 비슷한 동작을 기대하는 입력 집합을 나누고, 경계값 분석은 그 경계 주변을 확인한다. 원인-효과 그래프는 입력 조건과 출력 결과의 논리 관계를 모델링한다.
제어 구조 검사는 코드의 분기·조건·경로와 같은 내부 구조를 기준으로 하므로 화이트박스 접근에 해당한다. 블랙박스 테스트도 프로그램을 실행할 수 있으며, 정적·동적 구분과 블랙박스·화이트박스 구분을 같은 축으로 혼동하지 않는다.
선지별 해설
- ① 오답. 명세의 입력 조건과 출력 결과를 논리 관계로 표현한다.
- ② 오답. 유사한 동작이 기대되는 입력 영역을 분할한다.
- ③ 오답. 분할 영역의 경계 주변에서 사례를 선택한다.
- ④ 정답. 내부 분기·조건·경로를 기준으로 하는 구조 기반 접근이다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.1 Categories of Test Techniques; §§4.2.1–4.2.2; ISO/IEC/IEEE 29119-4:2015, Test techniques (강의용 보존 사본) — §5.2.7 Cause-Effect Graphing, 인쇄면 15
32. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 화이트박스 테스트 기법으로 보기 어려운 것은?
- 기초 경로 테스트
- 조건 커버리지 테스트
- 결정 커버리지 테스트
- 유스케이스 다이어그램 테스트
정답과 해설 보기
정답: 4
정답은 ④ 유스케이스 다이어그램 테스트이다. 화이트박스 테스트는 구현 내부 구조를 이용하여 실행할 경로나 조건을 정한다. 기초 경로 테스트는 제어 흐름에서 독립적인 경로를 확인하고, 조건 커버리지는 조건의 참·거짓 평가를, 결정 커버리지는 결정 결과의 실행 여부를 살핀다.
유스케이스를 바탕으로 하는 테스트는 사용자가 시스템과 상호작용하여 목적을 이루는 시나리오에서 사례를 도출한다. 다이어그램을 그렸다는 사실만으로 테스트가 완성되는 것은 아니며 정상 흐름과 대안 흐름, 예상 결과를 구체화해야 한다. 이 접근은 구현 코드의 내부 분기를 직접 기준으로 삼는 것과 다르다.
선지별 해설
- ① 오답. 내부 제어 흐름의 독립 경로를 이용하는 구조 기반 기법이다.
- ② 오답. 내부 조건의 평가 결과를 기준으로 커버리지를 확인한다.
- ③ 오답. 내부 결정의 결과를 기준으로 커버리지를 확인한다.
- ④ 정답. 외부 사용 시나리오와 명세에서 사례를 도출하는 접근이다.
편집 해설 근거: NIST SP 500-235, Structured Testing (1996) — Structured Testing, Basis Path Testing; ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §4.2.5 Use Case Testing; §4.3 White-box Test Techniques
33. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 알파 테스트에 대한 기술로 가장 알맞은 것은?
[학습용 개정문항]
- 일반 사용자들이 개발 조직 밖의 다양한 환경에서 수행하는 테스트
- 시스템 전체 기능을 통합한 후 수행하는 모든 테스트
- 제품 품질 인증을 위해 외부 기관만 수행하는 심사
- 개발 조직의 시험 환경에서 사용자·고객 또는 독립 시험 팀이 참여하는 인수 테스트
정답과 해설 보기
정답: 4
정답은 ④이다. 알파 테스트는 일반적으로 개발 조직의 시험 환경에서 잠재적 사용자나 고객 또는 독립적인 시험 팀이 참여하는 인수 테스트다. 제품이 사용 목적에 적합한지와 배포 전에 해결해야 할 문제를 확인하는 데 활용한다. 개발자가 혼자 수행해야 한다는 조건은 없다.
베타 테스트는 개발 조직 외부의 사용 환경에서 외부 역할의 참여로 수행하는 인수 테스트로 구별한다. 시스템 기능을 통합하여 검사하는 활동이나 외부 인증 기관의 품질 심사라는 설명만으로 알파 테스트라고 판단할 수는 없다. 목적과 참여 역할, 수행 환경을 함께 본다.
선지별 해설
- ① 오답. 개발 조직 밖의 사용자 환경이라면 베타 테스트에 더 가깝다.
- ② 오답. 통합 후 전체 기능 검사라는 설명만으로 알파 테스트가 되지는 않는다.
- ③ 오답. 외부 기관의 인증 심사가 알파 테스트의 정의는 아니다.
- ④ 정답. 개발 조직의 시험 환경에서 사용자·고객 또는 독립 시험 팀이 참여하는 인수 테스트다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.2.4 Acceptance Testing, Alpha and Beta Testing
34. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소스코드 인스펙션(코드 인스펙션)에서 주로 검출하는 대상으로 보기 어려운 것은?
- 일관되지 않은 인터페이스
- 프로그램 실행 시 발생하는 실제 런타임 성능 부하
- 코딩 표준(코딩 규칙) 위반
- 사용되지 않는 변수·코드(Dead Code)
정답과 해설 보기
정답: 2
정답은 ②이다. 코드 인스펙션은 소스 코드를 실행하지 않고 읽고 검토하는 정적 시험이다. 인터페이스 사이의 불일치, 코딩 규칙 위반, 사용되지 않는 변수나 도달할 수 없는 코드 등은 검토 과정에서 찾을 수 있다.
실제 실행 환경에서 발생하는 CPU 사용량, 처리 지연, 부하 증가에 따른 응답 변화는 프로그램을 실행하고 측정해야 확인된다. 코드 검토로 비효율적인 알고리즘이나 잠재적인 성능 문제를 예상할 수는 있지만, 그 예상과 실제 런타임 부하의 측정 결과는 구별해야 한다.
선지별 해설
- ① 오답. 호출과 피호출 측의 규약 불일치를 코드 검토로 확인할 수 있다.
- ② 정답. 실제 실행 부하는 동적 실행과 측정이 필요한 대상이다.
- ③ 오답. 코드가 정해진 규칙을 따르는지 정적으로 확인할 수 있다.
- ④ 오답. 사용되지 않거나 도달할 수 없는 코드가 검토 대상이 될 수 있다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §3.1.3 Differences between Static and Dynamic Testing
35. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 이진트리에서 사용하는 기본 용어로 보기 어려운 것은?
- 내부 노드
- 루트 노드
- 단말 노드
- 스택 노드
정답과 해설 보기
정답: 4
정답은 ④ 스택 노드이다. 트리에서 루트는 부모가 없는 시작 노드이고, 단말 노드 또는 리프는 자식이 없는 노드다. 내부 노드는 하나 이상의 자식이 있는 노드다. 이진트리에서는 각 노드가 가질 수 있는 자식이 최대 두 개라는 제한이 추가된다.
스택은 후입선출 접근을 제공하는 별도의 자료 구조다. 트리를 순회하는 구현에서 스택을 사용할 수 있지만, 그 사실이 스택 노드를 루트·내부·단말과 같은 트리의 기본 위치 분류로 만들지는 않는다. 원소의 관계와 알고리즘 구현 보조 구조를 구별한다.
선지별 해설
- ① 오답. 하나 이상의 자식을 갖는 노드를 가리킨다.
- ② 오답. 트리의 시작이 되는 부모 없는 노드를 가리킨다.
- ③ 오답. 자식이 없는 리프 노드를 가리킨다.
- ④ 정답. 트리 노드의 기본 위치 분류에 해당하지 않는다.
편집 해설 근거: NIST DADS, tree — Definition 및 Formal Definition; NIST DADS, stack — Definition
36. 소스 코드의 유지보수성을 높이기 위한 개선 방향으로 가장 부적절한 것은?
[학습용 개정문항]
- 코드 가독성 향상
- 코드 중복 제거
- 하드코딩 증가
- 데이터 추상화 적용
정답과 해설 보기
정답: 3
정답은 ③ 하드코딩 증가이다. 코드의 유지보수성을 높이려면 읽기 쉬운 이름과 구조를 사용하고, 같은 지식이 여러 곳에 반복되지 않게 관리하며, 적절한 추상화로 변경의 영향을 줄이는 것이 도움이 된다. 이런 개선이 언제나 실행 시간을 단축한다는 뜻은 아니다.
설정값이나 업무 규칙을 여러 위치의 상수로 직접 박아 넣으면 값이 바뀔 때 수정 지점이 늘어나고 일부만 수정할 위험이 커진다. 모든 상수 사용이 나쁜 것은 아니지만, 변경 가능한 규칙을 무분별하게 하드코딩하는 것은 유지보수성 향상 방향과 거리가 멀다.
선지별 해설
- ① 오답. 의도와 구조를 이해하기 쉬워져 변경과 검토를 돕는다.
- ② 오답. 같은 규칙의 수정 지점을 줄일 수 있다.
- ③ 정답. 변경 가능한 값을 여러 위치에 직접 박아 넣으면 수정 부담이 커진다.
- ④ 오답. 적절한 추상화는 구현 변경의 영향을 제한할 수 있다.
편집 해설 근거: Google Engineering Practices, What to look for in a code review — Design; Complexity; Naming; Style; IEEE Computer Society, SWEBOK Guide V4.0a — Software Construction, Minimizing Complexity; Software Maintenance
37. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소프트웨어 유지보수의 유형으로 보기 어려운 것은?
- 하자 보수
- 완전 보수
- 예방 보수
- 회귀 보수
정답과 해설 보기
정답: 4
정답은 ④ 회귀 보수이다. 하자 보수는 발견된 문제를 수정하는 교정 유지보수이고, 완전 보수는 성능·유지보수성 등 소프트웨어 속성을 개선하는 완전화 유지보수다. 예방 보수는 운영에서 문제가 드러나기 전에 잠재 결함을 수정하는 활동이다.
회귀라는 말은 보통 변경 때문에 기존 기능에 부작용이 생기지 않았는지 확인하는 회귀 테스트에서 사용한다. 유지보수 뒤에 회귀 테스트를 수행할 수 있지만 이를 별도의 표준 유지보수 유형인 회귀 보수라고 분류하지는 않는다. 환경 변화에 대응하는 적응 유지보수 등 다른 유형도 있다.
선지별 해설
- ① 오답. 발견된 결함을 수정하는 교정 유지보수에 해당한다.
- ② 오답. 성능·유지보수성 등 속성을 개선하는 완전화 유지보수에 해당한다.
- ③ 오답. 잠재 결함이 운영 실패로 나타나기 전에 수정한다.
- ④ 정답. 회귀 테스트와 혼동한 이름이며 제시된 유지보수 유형과 다르다.
편집 해설 근거: IEEE Computer Society, SWEBOK Guide V4.0a — Software Maintenance §1.6 Categories of Software Maintenance; ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §2.3.4 Change-related Testing
38. 응답 시간을 요청 시작부터 전체 응답 완료까지로 정의한 성능 시험에서, 다음 설명 중 틀린 것은?
[학습용 개정문항]
- 경과 시간은 시계로 측정하는 값이 아니라 사용자가 느끼는 주관적 시간이다.
- 자원 사용률은 정한 관찰 구간에서 CPU·메모리 등이 사용된 비율이다.
- 처리량은 단위 시간당 처리한 작업량이다.
- 응답 시간은 지정한 요청 시작 시점부터 전체 응답 완료까지의 시간이다.
정답과 해설 보기
정답: 1
정답은 ①이다. 경과 시간은 명시한 측정 시작점부터 종료점까지 실제로 지난 시간이며 사용자가 느끼는 주관적인 길이가 아니다. 예를 들어 JMeter는 요청을 보내기 직전부터 마지막 응답을 받은 직후까지를 측정하며, 브라우저 화면 렌더링 시간까지 포함하지는 않는다.
처리량은 단위 시간당 처리한 요청이나 작업의 수이고, 자원 사용률은 정한 관찰 구간에서 CPU·메모리 등 자원이 사용된 비율이다. 응답 시간도 시작·종료 기준을 명확히 해야 비교할 수 있다. 첫 응답 도착과 전체 응답 완료를 같은 지표로 섞지 않는다.
선지별 해설
- ① 정답. 경과 시간은 측정한 객관적인 시간 간격이다.
- ② 오답. 자원 사용률은 정한 기준과 구간에서의 자원 사용 비율이다.
- ③ 오답. 처리량은 단위 시간당 처리량으로 정의한다.
- ④ 오답. 요청 시작부터 응답 완료까지로 기준을 정했다면 그 간격을 측정한다.
편집 해설 근거: Apache JMeter User Manual, Glossary — Elapsed time; Latency; Throughput
39. 테스트 하네스에서 시험 대상을 구동하거나 의존 구성 요소를 대신하는 직접적인 시험 역할과 가장 거리가 먼 것은?
[학습용 개정문항]
- 데이터 임시 저장 공간인 버퍼(Buffer)
- 대상을 호출하는 드라이버(Driver)
- 의존 구성 요소를 대신하는 스텁(Stub)
- 기대한 상호작용을 확인하는 모의 객체(Mock Object)
정답과 해설 보기
정답: 1
정답은 ① 버퍼이다. 테스트 하네스는 시험 대상을 실행하고 주변 조건을 제공하는 시험 환경이다. 드라이버는 대상 코드를 호출하고, 스텁은 대상이 호출하는 의존 구성 요소의 동작을 대신한다. 모의 객체는 기대한 호출과 상호작용을 확인하는 테스트 대역으로 활용할 수 있다.
버퍼는 데이터를 임시로 보관하는 기억 공간이다. 하네스 구현 내부에서 입출력 버퍼를 사용할 수는 있지만, 버퍼라는 말 자체가 대상을 구동하거나 의존성을 대체하는 직접적인 시험 역할을 뜻하지는 않는다. 구성의 역할과 구현에 쓰일 수 있는 자료 저장 수단을 구별한다.
선지별 해설
- ① 정답. 임시 저장 공간이며 제시된 직접 시험 역할과 다르다.
- ② 오답. 시험 대상을 호출하여 실행을 구동한다.
- ③ 오답. 시험 대상이 의존하는 구성 요소를 대신한다.
- ④ 오답. 기대한 호출이나 상호작용을 검증하는 테스트 대역이다.
편집 해설 근거: ISTQB Glossary Release Notes v3.3 (2019), test harness — Release Notes v3.3 p.13, test harness; Martin Fowler, Mocks Are Not Stubs (2007) — Mocks Are Not Stubs, 도입부 및 The Difference Between Mocks and Stubs
40. 개발·시험 담당자가 다음 사례를 검토한다. 다음 중 소프트웨어 테스트 관련 용어에 대한 기술로 틀린 설명을 고르면?
- 오류(Error)는 소프트웨어 설계나 구현에서 사람에 의해 발생한 실수를 의미한다.
- 결함(Defect)은 오류로 인해 발생한 소프트웨어 내부의 문제를 의미한다.
- 실패(Failure)는 결함이 실행되어 잘못된 결과를 초래한 현상을 의미한다.
- 테스트(Test)는 소프트웨어가 완벽하게 동작함을 증명하기 위한 과정이다.
정답과 해설 보기
정답: 4
정답은 ④이다. 테스트는 요구 충족 여부를 평가하고 결함이나 실패를 발견하며 품질에 대한 정보를 제공하는 활동이다. 시험한 사례에서 문제가 관찰되지 않았다는 결과만으로 모든 입력과 환경에서 완벽하게 동작함을 증명할 수는 없다.
오류는 사람의 실수이고, 그 실수로 산출물에 결함이 생길 수 있으며, 결함이 특정 조건에서 실행되면 관찰 가능한 실패가 나타날 수 있다. 모든 결함이 실행할 때마다 실패를 일으키는 것은 아니므로 오류·결함·실패를 일대일로 연결하지 않는다. 이 구분을 이해하면 발견된 현상과 원인을 나누어 조사할 수 있다.
선지별 해설
- ① 오답. 사람의 잘못된 판단이나 행동을 오류라고 부른다.
- ② 오답. 오류로 산출물에 생긴 문제를 결함이라고 부를 수 있다.
- ③ 오답. 실행 결과가 기대에서 벗어나는 관찰 가능한 현상이다.
- ④ 정답. 테스트 통과만으로 소프트웨어의 완전무결함을 보장하지 못한다.
편집 해설 근거: ISTQB CTFL 2018 Syllabus v3.1.1 (2021-07-01) — §1.2.3 Errors, Defects, and Failures; §1.3 Seven Testing Principles
정보처리기사 필기 기출문제 · 데이터베이스 구축
41. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 데이터 정의어(DDL)에 해당하는 SQL 명령은?
- SELECT
- INSERT
- UPDATE
- CREATE
정답과 해설 보기
정답: 4
정답은 ④ CREATE이다. 데이터 정의어는 테이블과 같은 데이터베이스 객체의 구조를 만들거나 변경·제거하는 명령을 가리킨다. CREATE TABLE은 테이블 이름, 열의 자료형과 제약조건 등을 지정하여 새 테이블을 정의한다. 기존 행의 값 하나를 바꾸는 일과는 목적이 다르다.
SELECT는 데이터를 조회하고 INSERT는 새 행을 추가하며 UPDATE는 기존 행을 변경한다. SELECT를 질의어로 따로 부르는 분류도 있지만, 어느 분류를 쓰더라도 여기에서 객체의 구조를 정의하는 명령은 CREATE라는 점은 같다. 명령의 이름보다 바꾸는 대상이 구조인지 데이터인지 확인한다.
선지별 해설
- ① 오답. 저장된 데이터를 조회하는 명령이다.
- ② 오답. 테이블에 새 데이터 행을 추가한다.
- ③ 오답. 기존 데이터 행의 값을 변경한다.
- ④ 정답. 데이터베이스 객체의 구조를 정의한다.
편집 해설 근거: PostgreSQL 18: Data Definition — Data Definition, Table Basics; PostgreSQL 18 — Data Manipulation — Data Manipulation
42. 전통적인 제1정규형의 수학적 관계 모델에서 릴레이션의 특성으로 옳지 않은 것은?
[학습용 개정문항]
- 튜플은 서로 구별되어야 한다.
- 각 속성 값은 원자값이어야 한다.
- 튜플 사이에는 고정된 순서가 존재한다.
- 속성의 물리적 나열 순서는 의미가 없다.
정답과 해설 보기
정답: 3
정답은 ③이다. 수학적 관계 모델에서 릴레이션은 튜플의 집합이므로 튜플 사이에 고정된 순서가 없고 중복된 동일 튜플을 구별하여 여러 개 넣는 집합도 아니다. 전통적인 제1정규형의 각 속성은 해당 도메인의 원자값을 가지며 속성의 의미는 이름으로 구별한다.
이론상의 릴레이션과 실제 SQL의 결과를 구별해야 한다. SQL 테이블이나 조회 결과에는 중복이 있을 수 있고, 결과 순서를 보장하려면 ORDER BY를 지정해야 한다. 저장 파일에서 우연히 보이는 행의 순서를 릴레이션의 논리적 특성으로 해석하지 않는다.
선지별 해설
- ① 오답. 집합인 릴레이션에는 동일한 튜플의 중복이 없다.
- ② 오답. 지정한 전통적 제1정규형에서 속성 값은 원자값이다.
- ③ 정답. 튜플 집합에는 고정된 논리적 순서가 없다.
- ④ 오답. 속성은 이름으로 식별하며 물리적 배치 순서가 논리적 의미를 정하지 않는다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model, relation 및 tuple; PostgreSQL 18 — SELECT — ORDER BY; DISTINCT
43. 다음 중 관계형 데이터베이스의 키 제약에 관한 설명으로 옳지 않은 것은?
- 외래키는 다른 릴레이션의 기본키를 참조할 수 있다.
- 후보키는 튜플을 유일하게 식별한다.
- 후보키는 유일성과 최소성을 만족한다.
- 기본키는 NULL 값을 가질 수 있다.
정답과 해설 보기
정답: 4
정답은 ④이다. 기본키는 각 행을 식별하는 대표 키로 선택되며 유일성과 NULL 불허 제약을 갖는다. 따라서 기본키 값에 NULL을 허용한다는 설명은 틀리다. 후보키는 행을 유일하게 식별하면서 그 속성 집합에서 일부를 빼면 식별 능력을 잃는 최소성을 만족한다.
최소성은 후보키 중 속성 수가 전역적으로 가장 적어야 한다는 뜻이 아니다. 한편 외래키는 다른 테이블의 기본키를 참조할 수 있고, DBMS가 허용하는 적절한 UNIQUE 키를 참조할 수도 있다. 외래키를 기본키와 혼동하여 무조건 유일해야 한다고 생각하지 않는다.
선지별 해설
- ① 오답. 외래키는 다른 릴레이션의 기본키를 참조할 수 있다.
- ② 오답. 후보키는 튜플을 유일하게 식별한다.
- ③ 오답. 후보키는 유일성과 속성 집합의 최소성을 만족한다.
- ④ 정답. 기본키의 구성 열에는 NULL이 허용되지 않는다.
편집 해설 근거: PostgreSQL 18 — Constraints — Primary Keys; Foreign Keys; Unique Constraints; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Keys and Integrity Constraints
44. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 데이터 모델의 표현 요소로 보기 어려운 것은?
- 데이터 구조(Data Structure)
- 데이터 연산(Operation)
- 데이터 제약조건(Constraint)
- 데이터 가상화(Virtualization)
정답과 해설 보기
정답: 4
정답은 ④ 데이터 가상화이다. 데이터 모델은 어떤 데이터와 관계를 표현하는지에 대한 구조, 데이터를 다루는 연산, 항상 지켜야 하는 제약조건을 함께 설명한다. 관계 모델이라면 릴레이션과 속성이 구조에 해당하고, 선택·투영 등이 연산이며, 키와 참조 무결성 등이 제약의 예다.
데이터 가상화는 여러 데이터 원천을 통합된 접근 방식으로 제공하는 기술적 접근이다. 데이터 모델을 활용할 수 있지만, 질문에서 비교하는 구조·연산·제약이라는 기본 표현 요소와 나란히 놓는 요소는 아니다. 모델의 정의 요소와 이를 활용하는 시스템 기술을 구별한다.
선지별 해설
- ① 오답. 데이터와 관계를 표현하는 구조는 모델의 요소다.
- ② 오답. 데이터를 조회·변환하는 연산은 모델의 요소다.
- ③ 오답. 유효한 데이터 상태를 제한하는 규칙은 모델의 요소다.
- ④ 정답. 기본 표현 요소 세 가지와 구별되는 통합 접근 기술이다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Introduction — Data Models; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Model — Relational Model and Integrity Constraints; Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Relational Algebra
45. 단일 열 외래키에 대한 참조 무결성 제약의 설명으로 가장 알맞은 것은?
[학습용 개정문항]
- 외래키는 항상 NULL이어야 한다.
- 기본키인 열은 외래키 역할을 할 수 없다.
- 외래키 값은 참조하는 테이블과 무관하게 항상 유일해야 한다.
- 외래키 값이 NULL이 아니면, 참조 대상의 기본키 또는 허용된 UNIQUE 키에 같은 값이 존재해야 한다.
정답과 해설 보기
정답: 4
정답은 ④이다. 외래키는 참조하는 테이블의 키 값과의 관계를 제한하여 존재하지 않는 대상을 가리키는 데이터가 생기지 않도록 한다. 예를 들어 주문의 고객 번호가 NULL이 아니라면 참조 대상 고객 번호가 고객 테이블에 존재해야 한다. 참조 대상은 기본키 또는 허용된 UNIQUE 키일 수 있다.
외래키 열은 별도의 NOT NULL 제약이 없으면 NULL을 허용할 수 있고, 여러 주문이 같은 고객을 참조할 수 있으므로 외래키 자체가 항상 유일해야 하는 것은 아니다. 이 문항은 복합 외래키의 부분 NULL 규칙을 제외하고 단일 열 외래키를 기준으로 판단한다.
선지별 해설
- ① 오답. 외래키가 항상 NULL이어야 한다는 제약은 없다.
- ② 오답. 기본키인 열이 동시에 외래키 역할을 할 수도 있다.
- ③ 오답. 여러 행이 같은 대상 키를 참조할 수 있다.
- ④ 정답. NULL이 아닌 외래키 값은 지정한 참조 키에 존재해야 한다.
편집 해설 근거: PostgreSQL 18 — Constraints — Foreign Keys
46. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 E-R 다이어그램(Entity-Relationship Diagram)의 기본 구성 요소로 보기 어려운 것은?
- 속성(Attribute)
- 프로시저(Procedure)
- 개체(Entity)
- 관계(Relationship)
정답과 해설 보기
정답: 2
정답은 ② 프로시저이다. E-R 모델은 업무에서 다루는 개체, 개체의 성질인 속성, 개체 사이의 관계를 중심으로 데이터 구조를 표현한다. 학생이라는 개체에 학번과 이름 속성이 있고 학생이 과목을 수강하는 관계가 있는 식으로 모델링한다.
프로시저는 작업을 수행하는 절차나 실행 코드 단위를 가리키며 E-R 모델의 기본 세 요소와 다르다. 시스템 설계에서 프로시저도 필요할 수 있지만, 어떤 데이터를 저장하고 그 데이터가 서로 어떻게 연결되는지를 설명하는 모델과 처리 절차의 설계를 혼동하지 않는다.
선지별 해설
- ① 오답. 개체나 관계의 성질을 표현하는 기본 요소다.
- ② 정답. 처리 절차를 가리키며 E-R의 기본 구성 요소가 아니다.
- ③ 오답. 업무에서 구별하여 다루는 대상을 표현한다.
- ④ 오답. 개체 사이의 연관을 표현한다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — Entity Sets; Attributes; Relationship Sets
47. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 E-R 다이어그램의 특징으로 보기 어려운 것은?
- 데이터 간의 논리적 구조를 중심으로 모델링한다.
- 개체 간의 관계를 도형을 사용하여 표현한다.
- 데이터베이스의 물리적 저장 구조를 상세히 설계한다.
- 업무의 데이터 구조를 명확히 시각화한다.
정답과 해설 보기
정답: 3
정답은 ③이다. E-R 다이어그램은 업무에 필요한 개체와 속성, 개체 간 관계 및 관련 제약을 시각적으로 표현한다. 예를 들어 고객이 여러 주문을 만들 수 있다는 관계를 모델링하여 데이터 설계의 의미를 공유하는 데 사용한다.
파일을 어느 디스크에 배치할지, 페이지 크기를 어떻게 정할지, 어떤 인덱스를 만들지 등은 물리 설계의 관심사다. E-R 모델에서 얻은 구조가 이후 테이블과 물리 구조 설계의 근거가 될 수는 있지만, E-R 다이어그램 자체가 상세한 저장 장치 배치도를 뜻하는 것은 아니다.
선지별 해설
- ① 오답. 데이터의 의미 있는 구조와 관계가 중심 관심사다.
- ② 오답. 개체 사이 관계를 도형과 연결로 시각화한다.
- ③ 정답. 상세 물리 저장 구조는 E-R 모델의 주된 목적이 아니다.
- ④ 오답. 업무 데이터의 의미를 명확히 전달하는 데 활용한다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, ER Model — Conceptual Design Using the ER Model; Ramakrishnan·Gehrke, Database Management Systems 3판, Physical Database Design — Physical Database Design
48. 다음 중 트랜잭션 제어 언어(TCL)에 해당하지 않는 명령은?
- COMMIT
- ROLLBACK
- SAVEPOINT
- REVOKE
정답과 해설 보기
정답: 4
정답은 ④ REVOKE이다. COMMIT은 현재 트랜잭션의 변경을 확정하고, ROLLBACK은 트랜잭션을 취소하며, SAVEPOINT는 트랜잭션 안에 되돌아갈 수 있는 지점을 만든다. 이러한 명령은 실행한 작업의 확정·취소 범위를 다루므로 트랜잭션 제어에 해당한다.
REVOKE는 사용자나 역할에 부여한 접근 권한을 회수하는 명령이다. 권한 관리를 수행하는 문장이 어떤 DBMS에서 트랜잭션 안에 실행될 수 있는지와 그 문장의 기능 분류는 별개다. 권한을 회수하는 것과 데이터 변경을 롤백하는 것을 구별한다.
선지별 해설
- ① 오답. 현재 트랜잭션을 확정한다.
- ② 오답. 트랜잭션 또는 지정한 저장점 이후의 변경을 취소한다.
- ③ 오답. 트랜잭션 내부에 복귀 지점을 설정한다.
- ④ 정답. 접근 권한을 회수하는 명령이다.
편집 해설 근거: PostgreSQL 18, 3.4 Transactions — Transactions, COMMIT·ROLLBACK·SAVEPOINT; PostgreSQL 18, REVOKE — Description
49. 사용자 kim에게 orders 테이블의 SELECT 권한과 그 권한을 다른 사용자에게 부여할 수 있는 권한까지 주는 SQL은?
- REVOKE SELECT ON orders FROM kim;
- COMMIT SELECT ON orders TO kim WITH GRANT OPTION;
- ROLLBACK SELECT ON orders FROM kim;
- GRANT SELECT ON orders TO kim WITH GRANT OPTION;
정답과 해설 보기
정답: 4
정답은 ④이다. GRANT SELECT ON orders TO kim은 kim에게 orders 테이블을 조회할 권한을 준다. 뒤에 WITH GRANT OPTION을 붙이면 kim이 그 권한을 다른 사용자에게 다시 부여할 수 있는 권한도 함께 받는다.
이 옵션을 받았다고 해서 자동으로 INSERT나 UPDATE 등 다른 모든 권한을 얻게 되는 것은 아니다. 부여받은 SELECT 권한에 대한 재부여 가능성을 뜻한다. REVOKE는 권한 회수이고 COMMIT과 ROLLBACK은 트랜잭션 제어이므로 SELECT 권한 부여 구문을 대체할 수 없다.
선지별 해설
- ① 오답. SELECT 권한을 주는 것이 아니라 회수한다.
- ② 오답. COMMIT은 권한 부여 명령이 아니며 제시 구문도 맞지 않는다.
- ③ 오답. ROLLBACK은 권한 부여 명령이 아니다.
- ④ 정답. 조회 권한과 해당 권한의 재부여 권한을 함께 준다.
편집 해설 근거: PostgreSQL 18, GRANT — Description, WITH GRANT OPTION
50. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 분산 데이터베이스의 특징으로 보기 어려운 것은?
- 데이터베이스 간 통신은 필요하지 않다.
- 장애 발생 시 무결성과 신뢰성을 유지해야 한다.
- 물리적으로 분산되어 있으나 논리적으로 통합되어 관리된다.
- 각 지역 데이터베이스는 독립적으로 관리될 수 있다.
정답과 해설 보기
정답: 1
정답은 ①이다. 분산 데이터베이스는 여러 위치의 데이터베이스가 통신하여 애플리케이션에 통합된 접근을 제공한다. 다른 위치의 데이터를 조회하거나 여러 노드에 걸친 작업을 조정해야 하므로 데이터베이스 사이 통신이 필요 없다는 설명은 맞지 않는다.
각 지역 데이터베이스의 독립적인 관리와 전체 시스템의 논리적 통합은 함께 존재할 수 있다. 다만 분산되어 있다는 사실만으로 장애 시 무결성과 신뢰성이 자동 보장되지는 않는다. 장애 처리, 복구, 일관성 및 분산 트랜잭션 처리를 적절하게 설계해야 한다.
선지별 해설
- ① 정답. 분산된 데이터의 조회와 작업 조정에는 통신이 필요하다.
- ② 오답. 장애 상황의 무결성과 신뢰성은 필요한 설계 목표다.
- ③ 오답. 물리적 분산과 논리적 통합이 핵심 특성이다.
- ④ 오답. 지역 데이터베이스에 관리 자율성을 부여할 수 있다.
편집 해설 근거: Oracle Database — Distributed Database Concepts — Distributed Database Architecture; Distributed Database Management System
51. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 분산 데이터베이스 시스템의 핵심 구성 요소로 보기 어려운 것은?
- 데이터 웨어하우스
- 통신 네트워크
- 분산 DBMS
- 분산처리 처리기
정답과 해설 보기
정답: 1
정답은 ① 데이터 웨어하우스이다. 분산 데이터베이스 시스템은 여러 노드의 데이터 처리와 통신 네트워크, 이를 조정하는 분산 DBMS 기능을 바탕으로 구성한다. 노드들은 지역 데이터를 관리하면서 필요할 때 다른 노드의 데이터나 처리 결과를 이용한다.
데이터 웨어하우스는 분석에 적합하게 데이터를 모으고 구성하는 용도의 시스템이다. 분산 기술로 구축할 수는 있지만 모든 분산 데이터베이스가 반드시 데이터 웨어하우스를 포함해야 하는 것은 아니다. 분산처리 처리기는 처리 노드의 역할을 뜻하며 반드시 특정한 전용 하드웨어 제품을 가리키지는 않는다.
선지별 해설
- ① 정답. 분석용 데이터 시스템으로, 모든 분산 데이터베이스의 필수 요소는 아니다.
- ② 오답. 서로 다른 노드의 데이터와 작업을 연결하는 데 필요하다.
- ③ 오답. 분산된 데이터의 접근과 처리를 관리한다.
- ④ 오답. 지역 처리와 분산 작업을 수행하는 노드의 역할에 해당한다.
편집 해설 근거: Oracle Database — Distributed Database Concepts — Distributed Database Architecture
52. SQL SELECT id, first_name, last_name FROM customers WHERE email IS NOT NULL;의 의미는?
[학습용 개정문항]
- email이 NULL이 아닌 고객들의 ID, 이름, 성을 조회한다.
- email이 NULL인 고객들의 ID, 이름, 성을 조회한다.
- 조건 없이 모든 고객들의 ID, 이름, 성을 조회한다.
- email이 NULL인 고객만 조회한다.
정답과 해설 보기
정답: 1
정답은 ①이다. WHERE email IS NOT NULL은 email 값이 NULL이 아닌 행만 남긴다. 그 행들에서 SELECT에 나열한 id, first_name, last_name 세 열을 조회하므로 결과에 email 열 자체가 반드시 표시되는 것은 아니다.
NULL은 값이 알려지지 않았거나 없음을 나타내며 일반 문자열과 다르다. PostgreSQL처럼 빈 문자열을 별도 값으로 다루는 DBMS에서는 빈 문자열도 IS NOT NULL을 만족한다. 따라서 이 조건만으로 이메일 주소가 유효하거나 실제로 사용 가능하다고 검증할 수 없다. NULL 검사는 등호 대신 IS NULL 또는 IS NOT NULL을 사용한다.
선지별 해설
- ① 정답. NULL이 아닌 email을 가진 행의 지정된 세 열을 조회한다.
- ② 오답. email이 NULL인 행을 찾으려면 IS NULL 조건이 필요하다.
- ③ 오답. WHERE 조건에 따라 일부 행이 제외된다.
- ④ 오답. IS NOT NULL은 IS NULL과 반대 조건이다.
편집 해설 근거: PostgreSQL 18, Comparison Functions and Operators — Comparison Predicates, IS NULL 및 IS NOT NULL; PostgreSQL 18 — SELECT — WHERE Clause; SELECT List
53. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 병행제어(Concurrency Control)의 장점으로 보기 어려운 것은?
- 다수의 사용자가 동시에 데이터에 접근할 수 있다.
- 트랜잭션의 결과를 불일치 상태로 만든다.
- 시스템 자원의 활용도를 높일 수 있다.
- 데이터의 무결성을 유지할 수 있다.
정답과 해설 보기
정답: 2
정답은 ②이다. 병행제어는 여러 트랜잭션이 겹쳐 실행될 때 서로의 작업에 부적절하게 간섭하지 않도록 조정하는 기능이다. 갱신 손실이나 일관되지 않은 읽기와 같은 문제를 제한하면서 여러 사용자의 접근을 처리하는 것이 목적이므로 결과를 불일치 상태로 만든다는 설명은 장점이 아니다.
동시 실행은 자원 활용과 처리량을 높일 수 있지만 락 충돌이나 관리 비용도 발생할 수 있어 항상 더 빠르다고 보장되지는 않는다. 실제 허용되는 읽기 현상은 선택한 격리 수준과 DBMS 구현에 따라 다르며, 무결성 제약과 적절한 트랜잭션 설계도 필요하다.
선지별 해설
- ① 오답. 안전하게 조정된 동시 접근을 가능하게 한다.
- ② 정답. 불일치를 예방·제어하는 목적과 반대다.
- ③ 오답. 대기 시간과 자원의 중첩 활용을 통해 효율을 높일 수 있다.
- ④ 오답. 트랜잭션 간 간섭을 제어하여 무결성 유지에 기여한다.
편집 해설 근거: PostgreSQL 18 — Transaction Isolation — Transaction Isolation; Ramakrishnan·Gehrke, Database Management Systems 3판, Concurrency Control — Concurrency Control, Lock-based protocols
54. 질의 결과를 별도로 저장하지 않는 일반적인 비물질화 뷰(View)에 관한 설명으로 틀린 것은?
[학습용 개정문항]
- 수정 작업이 항상 자유롭고 쉽다.
- 복잡한 질의를 단순화할 수 있다.
- 실제 데이터는 저장하지 않고 정의만 저장된다.
- 보안상 장점에 활용될 수 있다.
정답과 해설 보기
정답: 1
정답은 ①이다. 일반적인 비물질화 뷰는 질의 정의를 이름으로 저장하여 테이블처럼 사용할 수 있게 한 것이다. 복잡한 조회를 단순한 이름으로 재사용하거나 사용자에게 필요한 열과 행을 제한하는 데 활용할 수 있다. 질의 결과를 별도 데이터로 보관하는 물질화 뷰와는 다르다.
뷰의 수정 가능성은 정의한 질의와 DBMS 규칙에 따라 달라진다. 단순한 뷰는 자동 갱신될 수 있지만 집계·그룹화 등을 포함한 뷰는 같은 방식으로 자유롭게 수정할 수 없다. 또한 보안 효과는 올바른 권한 설정과 실행 규칙에 달려 있어 뷰 생성만으로 보안이 완성되지는 않는다.
선지별 해설
- ① 정답. 모든 뷰에서 수정이 자유롭게 허용되지는 않는다.
- ② 오답. 복잡한 질의를 이름으로 재사용하여 단순화할 수 있다.
- ③ 오답. 비물질화 일반 뷰는 결과 데이터를 별도로 저장하지 않는다.
- ④ 오답. 적절한 접근 권한과 함께 제한된 데이터 제공에 활용할 수 있다.
편집 해설 근거: PostgreSQL 18 — CREATE VIEW — Description; Updatable Views
55. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 트랜잭션의 ACID 특성에 포함되지 않는 것은?
- Durability
- Accessibility
- Atomicity
- Consistency
정답과 해설 보기
정답: 2
정답은 ② Accessibility이다. ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 머리글자다. 원자성은 트랜잭션의 효과를 전부 반영하거나 취소하는 성질이고, 지속성은 확정된 결과가 장애 뒤에도 유지되도록 하는 성질이다.
일관성은 정해진 무결성 규칙을 만족하는 상태를 유지하는 것이며, 격리성은 동시에 실행되는 작업의 상호 간섭을 제어한다. 접근 가능성이나 사용 편의성도 시스템에서 중요할 수 있지만 ACID의 A에 해당하지는 않는다. A는 Accessibility가 아니라 Atomicity이다.
선지별 해설
- ① 오답. 확정된 결과의 지속성을 의미하는 ACID의 D다.
- ② 정답. ACID의 구성 단어가 아니다.
- ③ 오답. 전부 반영하거나 취소하는 원자성으로 A다.
- ④ 오답. 정해진 무결성 규칙을 유지하는 일관성으로 C다.
편집 해설 근거: Silberschatz·Korth·Sudarshan, Database System Concepts 7판, Chapter 17 저자 자료 — Transaction Concept, ACID Properties
56. 관계대수의 다음 연산 중 두 릴레이션 사이의 합집합·교집합·차집합 계열 집합 연산에 속하지 않는 것은?
[학습용 개정문항]
- 합집합(UNION, ∪)
- 선택(SELECT 또는 selection, σ)
- 교집합(INTERSECT, ∩)
- 차집합(MINUS, -)
정답과 해설 보기
정답: 2
정답은 ② 선택(σ)이다. 관계대수에서 합집합·교집합·차집합은 두 릴레이션 사이의 집합 연산이다. 같은 속성 수와 호환되는 도메인 등 합병 가능 조건을 갖추어야 해당 튜플 집합을 결합하거나 공통·차이 부분을 구할 수 있다.
선택 연산 σ는 하나의 릴레이션에서 조건을 만족하는 튜플을 골라내는 관계 연산이다. 관계대수의 SELECT 또는 selection이라는 명칭을 SQL의 SELECT 문 전체와 혼동하지 않는다. SQL SELECT 문은 출력 열, 조건, 집합 연산 등 훨씬 넓은 질의 구조를 표현할 수 있다.
선지별 해설
- ① 오답. 두 릴레이션의 튜플을 합치는 집합 연산이다.
- ② 정답. 한 릴레이션에서 조건을 만족하는 튜플을 고르는 선택 연산이다.
- ③ 오답. 두 릴레이션에 공통인 튜플을 구하는 집합 연산이다.
- ④ 오답. 첫 릴레이션에만 있는 튜플을 구하는 집합 연산이다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Selection; Set Operations
57. IP 네트워크 전송을 쓰지 않는 호스트 직접 부착 저장장치의 인터페이스와 달리, SCSI 명령을 TCP/IP로 운반하는 것은?
[학습용 개정문항]
- SATA
- 직접 연결 방식의 SCSI
- iSCSI
- USB
정답과 해설 보기
정답: 3
정답은 ③ iSCSI이다. 이 문항은 IP 네트워크 전송을 사용하지 않고 호스트에 저장장치를 직접 부착하는 인터페이스를 구별한다. SATA, 직접 연결 방식의 SCSI, USB는 그런 직접 부착에 사용할 수 있다. iSCSI는 SCSI 명령과 데이터를 TCP/IP로 운반하는 프로토콜이다.
기존 보기의 Fibre Channel을 무조건 DAS가 아니라고 설명하면 잘못이다. Fibre Channel도 호스트와 저장장치를 직접 연결하는 구성을 지원하며, IBM의 공식 문서에도 해당 구성이 제시된다. 케이블을 직접 연결했는지만 볼 것이 아니라 어떤 프로토콜과 저장 구조를 사용하는지 확인해야 한다.
선지별 해설
- ① 오답. 호스트와 저장장치를 직접 부착하는 데 사용하는 인터페이스다.
- ② 오답. 직접 연결 방식으로 호스트와 저장장치를 연결할 수 있다.
- ③ 정답. SCSI 명령을 TCP/IP 네트워크로 운반하는 프로토콜이다.
- ④ 오답. 외장 저장장치를 호스트에 직접 연결하는 데 사용할 수 있다.
편집 해설 근거: IETF RFC 7143, iSCSI Protocol (Consolidated, 2014) — §1 Introduction; IBM, What Is Data Storage?, Data storage systems and architectures (2026-10-05 확인) — Data storage systems and architectures, Direct-attached storage; IBM, Direct Attachment of Storwize and SAN Volume Controller Systems (2023-03-28) — §1 Direct Attachment Definition; §5 Fibre Channel direct attachment to host systems
58. 데이터베이스 설계자가 다음 조건을 확인한다. 다음 중 데이터베이스 이상 현상(삽입, 갱신, 삭제 이상)의 가장 큰 원인은?
- 저장공간 부족
- 쿼리 최적화 실패
- 인덱스 설정 오류
- 데이터 중복과 종속성 문제
정답과 해설 보기
정답: 4
정답은 ④이다. 한 테이블에 서로 다른 사실을 중복 저장하고 함수 종속성을 적절히 다루지 않으면 삽입·갱신·삭제 이상이 발생할 수 있다. 예를 들어 부서 이름을 사원 행마다 반복 저장하면 이름을 바꿀 때 일부 행만 고쳐 서로 다른 값이 남는 갱신 이상이 생길 수 있다.
사원이 없는 부서 정보를 넣지 못하면 삽입 이상, 마지막 사원을 지우며 부서 정보까지 잃으면 삭제 이상이다. 정규화는 종속성을 분석하여 이런 문제를 줄이는 설계 방법이다. 저장 공간이나 인덱스 문제도 별도로 발생할 수 있지만 여기에서 말하는 논리적 이상 현상의 핵심 원인은 아니다.
선지별 해설
- ① 오답. 용량 부족은 저장 장애를 일으킬 수 있지만 세 이상 현상의 설계 원인은 아니다.
- ② 오답. 질의 실행 계획의 효율과 데이터 중복의 논리적 문제는 다르다.
- ③ 오답. 인덱스 설정은 주로 접근 경로와 성능에 관련된다.
- ④ 정답. 중복된 사실과 부적절하게 다룬 종속성이 이상 현상을 일으킨다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Chapter 19 저자 자료 — The Evils of Redundancy; Functional Dependencies; Normalization
59. STUDENT의 열이 SNO INTEGER, SNAME TEXT, YEAR TEXT, DEPT TEXT 순서로 정의되어 있다. 학번 200, 이름 김길동, 학년 2학년, 학과 전산과를 올바르게 삽입하는 SQL은?
[학습용 개정문항]
- INSERT INTO STUDENT (SNO, SNAME, YEAR, DEPT) VALUES (200, '김길동', '2학년', '전산과');
- INSERT INTO STUDENT (SNO, SNAME, YEAR, DEPT) VALUES ('김길동', 200, '2학년', '전산과');
- INSERT STUDENT (200, '김길동', '2학년', '전산과');
- INSERT INTO STUDENT VALUES ('김길동', 200, '2학년', '전산과');
정답과 해설 보기
정답: 1
정답은 ①이다. INSERT에서 열 목록을 쓰면 VALUES의 값은 그 목록의 순서에 대응한다. SNO, SNAME, YEAR, DEPT 순서이므로 정수 200, 문자열 김길동, 문자열 2학년, 문자열 전산과를 차례대로 지정해야 한다.
②와 ④는 학번 열에 이름을, 이름 열에 학번을 넣는 순서가 되어 지정한 자료형과 의미에 맞지 않는다. 열 목록을 생략하면 테이블의 정의 순서가 기준이 되므로 마음대로 값을 바꿔 넣을 수 없다. ③은 VALUES 등 필요한 문법 요소도 빠져 있다. 문자 데이터는 문자열 리터럴로 작은따옴표로 감싼다.
선지별 해설
- ① 정답. 열 목록과 값의 자료형·순서가 모두 맞다.
- ② 오답. SNO에 이름 문자열이 대응하여 지정한 자료형과 맞지 않는다.
- ③ 오답. 정상 INSERT에 필요한 INTO·VALUES 등의 구조가 빠져 있다.
- ④ 오답. 테이블 열 순서상 첫 값은 정수 학번이어야 한다.
편집 해설 근거: PostgreSQL 18 — Data Manipulation — Inserting Data
60. 관계대수 π name, dept (σ year=3(student))를 SQL로 표현한 것은?
[학습용 개정문항]
- SELECT DISTINCT name, dept FROM student WHERE year=3;
- SELECT year FROM student WHERE name=3;
- SELECT * FROM student WHERE year=3;
- SELECT name, dept FROM student WHERE dept=3;
정답과 해설 보기
정답: 1
정답은 ①이다. 관계대수의 σ year=3은 year 값이 3인 튜플을 고르는 선택 연산이므로 SQL의 WHERE year=3에 대응한다. 그 결과에서 π name, dept는 두 속성만 남기는 투영이므로 SELECT의 출력 열을 name과 dept로 지정한다.
수학적인 릴레이션은 집합이므로 투영 결과의 동일한 튜플은 하나로 취급한다. SQL은 DISTINCT를 생략하면 같은 name과 dept 조합이 여러 번 나올 수 있어, 관계대수의 의미를 정확히 옮기려면 SELECT DISTINCT를 사용한다. 조건에서 사용하는 year 열이 출력 결과에 반드시 포함되어야 하는 것은 아니다.
선지별 해설
- ① 정답. year 조건으로 행을 고르고 name·dept만 중복 없이 출력한다.
- ② 오답. 조건과 출력 열이 모두 관계대수 식과 다르다.
- ③ 오답. 별표는 모든 열을 출력하므로 투영 대상과 다르다.
- ④ 오답. year가 아니라 dept에 조건을 적용하고 있다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Relational Algebra 저자 자료 — Selection; Projection; PostgreSQL 18 — SELECT — DISTINCT Clause; WHERE Clause
정보처리기사 필기 기출문제 · 프로그래밍 언어 활용
61. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 객체지향 기술의 요소로 보기 어려운 것은?
- 정보은닉(Information Hiding)
- 트랜잭션 제어(Transaction Control)
- 상속성(Inheritance)
- 캡슐화(Encapsulation)
정답과 해설 보기
정답: 2
정답은 ② 트랜잭션 제어이다. 객체지향에서는 관련된 상태와 행동을 객체로 묶고 인터페이스를 통해 사용하게 하며, 내부 구현의 세부 사항을 숨겨 변경의 영향을 줄인다. 캡슐화와 정보은닉이 여기에 관련되고, 상속은 기존 타입의 특성을 바탕으로 다른 타입을 정의하는 수단이다.
트랜잭션 제어는 여러 데이터 작업을 확정하거나 취소하고 일관성 있게 처리하는 활동이다. 객체지향 프로그램이 트랜잭션을 사용할 수는 있지만, 그것이 객체지향을 정의하는 기본 요소와 같지는 않다. 소프트웨어 구현 방식과 데이터 작업의 실행 단위를 구별한다.
선지별 해설
- ① 오답. 외부에서 알 필요 없는 구현 세부 사항을 감춘다.
- ② 정답. 데이터 작업의 확정·취소 등에 관한 별도 개념이다.
- ③ 오답. 기존 타입의 특성을 활용해 다른 타입을 정의하는 객체지향 요소다.
- ④ 오답. 상태와 행동을 묶고 접근 경계를 제공한다.
편집 해설 근거: Oracle Java Tutorials (JDK 8), What Is an Object? — What Is an Object?; Python 3 공식 자습서, 9 Classes — Inheritance; PostgreSQL 18, 3.4 Transactions — Transactions
62. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 설명에 해당하는 파일 편성 방식은? <보기> 레코드를 키 값 순서대로 저장하면서 인덱스를 함께 두어 순차 접근과 직접 접근을 모두 지원하는 방식이다.
- 직접 파일 편성(Direct File Organization)
- 해시 파일 편성(Hash File Organization)
- 순차 파일 편성(Sequential File Organization)
- 인덱스 순차 파일 편성(Indexed Sequential File Organization)
정답과 해설 보기
정답: 4
정답은 ④ 인덱스 순차 파일 편성이다. 기본 데이터 영역을 키 순서로 구성하면서 키와 위치를 연결하는 인덱스를 두면, 순서대로 레코드를 읽는 접근과 특정 키의 위치를 찾아가는 접근을 함께 지원할 수 있다. ISAM은 이러한 인덱스 순차 접근의 대표적인 구조다.
순차 파일은 정해진 순서의 처리가 중심이고, 해시 파일은 키에 해시 함수를 적용하여 저장 영역을 찾는다. 인덱스 순차 방식은 정렬과 인덱스를 함께 사용한다는 것이 판단의 핵심이다. 실제 ISAM에서는 삽입으로 오버플로 영역이 생길 수 있어 모든 레코드가 항상 물리적으로 빈틈없이 정렬된다고 단정하지 않는다.
선지별 해설
- ① 오답. 계산한 위치 등으로 접근하는 일반적 직접 편성만으로 정렬과 인덱스 조합을 설명하지 못한다.
- ② 오답. 키의 해시값으로 저장 영역을 결정하는 방식이다.
- ③ 오답. 순서대로 처리하는 기본 방식이며 제시된 인덱스 활용을 포함하지 않는다.
- ④ 정답. 키 순서의 데이터와 인덱스를 결합한다.
편집 해설 근거: Ramakrishnan·Gehrke, Database Management Systems 3판, Tree-Structured Indexes 저자 자료 — 슬라이드 3–5, Range Searches; ISAM; Comments on ISAM
63. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 세마포어(Semaphore)에 대한 기술로 가장 적절한 것은?
- 다수의 프로세스가 공유 자원에 접근할 때 상호 배제를 구현하기 위해 사용하는 동기화 기법이다.
- 프로세스 간 데이터 교환을 위한 고속 메모리 공간이다.
- 하나의 프로세스를 여러 개의 스레드로 분할하는 기법이다.
- 동일한 자원에 대해 접근 권한을 명시적으로 설정하는 정책이다.
정답과 해설 보기
정답: 1
정답은 ①이다. 세마포어는 공유 자원 접근과 작업 순서를 조정하는 동기화 수단이다. 초기값을 1로 두고 임계 구역 진입 전에 대기 연산, 종료 뒤에 신호 연산을 올바르게 사용하면 동시에 하나의 실행 흐름만 들어가도록 상호 배제를 구현할 수 있다.
초기값을 여러 개의 가용 자원 수로 정하면 자원 풀의 동시 사용 개수를 제한할 수도 있다. 따라서 세마포어의 역할이 오직 이진 잠금 하나로 제한되는 것은 아니다. 공유 메모리 자체나 스레드 생성, 사용자 접근 권한 정책과는 다른 실행 동기화 개념이다.
선지별 해설
- ① 정답. 공유 자원 접근을 조정하고 상호 배제에 활용할 수 있다.
- ② 오답. 데이터 교환용 기억 공간 자체를 뜻하지 않는다.
- ③ 오답. 실행 흐름을 새로 만드는 분할 기법이 아니다.
- ④ 오답. 사용자별 권한 정책과 실행 동기화는 다르다.
편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 31 Semaphores — §31.1 Semaphores: A Definition; §31.2 Binary Semaphores; §31.3 Semaphores For Ordering
64. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 통합 개발 환경(IDE)의 세부 기능에 관한 기술로 틀린 설명을 고르면?
[학습용 개정문항]
- 코드 편집 기능은 구문 강조와 자동 완성을 지원할 수 있다.
- 디버깅 기능은 중단점과 변수 관찰로 오류 원인 분석을 돕는다.
- 버전 관리 도구와 연동하여 소스 변경 이력을 관리할 수 있다.
- 별도의 운영체제 관리 절차 없이 실행 중인 OS 커널을 자동 교체하는 것이 IDE의 기본 기능이다.
정답과 해설 보기
정답: 4
정답은 ④이다. IDE는 코드 작성, 빌드·실행, 디버깅, 버전 관리 등의 개발 작업을 한 환경에서 연결하는 도구다. 구문 강조와 자동 완성은 편집을 돕고, 디버거는 중단점과 변수 관찰 등을 통해 동작을 분석하며, 버전 관리 연동은 변경 이력을 다룬다.
운영 중인 컴퓨터의 커널을 자동으로 교체하는 것은 IDE의 일반적인 기본 기능이 아니다. IDE로 운영체제 커널의 소스 코드를 편집하거나 관련 개발 도구를 실행할 수 있다는 사실과 구별해야 한다. 무엇을 개발할 수 있는지와 IDE 자체가 자동으로 수행하는 기능은 다르다.
선지별 해설
- ① 오답. 코드를 읽고 작성하는 데 도움을 주는 편집 기능이다.
- ② 오답. 실행 상태를 관찰하여 결함 원인을 찾는 기능이다.
- ③ 오답. 소스 변경 이력을 관리하는 도구와 연동할 수 있다.
- ④ 정답. 실행 중인 운영체제 커널 자동 교체는 일반적인 IDE 기본 기능이 아니다.
편집 해설 근거: Microsoft, Visual Studio Code Documentation (2026-10-05 확인) — Learn VS Code basics; Source Control; Debugging & Testing; IEEE Computer Society, SWEBOK Guide V4.0a — Software Construction §5.1 Development Environments
65. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 가비지 컬렉터(Garbage Collector)의 역할로 가장 적절한 것은?
- 프로그램 실행 중 사용하지 않는 메모리를 자동으로 회수한다.
- 사용자 입력을 실시간으로 처리한다.
- 데이터베이스 연결을 최적화한다.
- 프로세스 간 통신을 지원한다.
정답과 해설 보기
정답: 1
정답은 ①이다. 가비지 컬렉터는 프로그램이 더 이상 도달할 수 없는 객체 등 회수 가능한 메모리를 찾아 자동으로 재사용할 수 있게 하는 메모리 관리 기능이다. 개발자가 모든 객체마다 명시적인 해제 코드를 작성해야 하는 부담을 줄인다.
아직 참조 가능한 객체를 단지 최근에 쓰지 않았다는 이유만으로 곧바로 회수하는 것은 아니다. 또한 회수 가능한 상태가 되었다고 즉시 수거되는 시점까지 보장되지는 않는다. 파일이나 데이터베이스 연결의 명시적인 종료 책임까지 모두 대신하는 장치로 생각해서는 안 된다.
선지별 해설
- ① 정답. 도달 불가능한 객체 등 회수 가능한 메모리를 자동 관리한다.
- ② 오답. 사용자 입력 이벤트 처리는 별도 기능이다.
- ③ 오답. 연결 질의나 풀의 최적화가 주된 역할이 아니다.
- ④ 오답. 프로세스 사이 통신을 제공하는 기법 자체가 아니다.
편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 12 Execution — §12.6 및 §12.6.1, reachability와 storage reclamation
66. Python에서 def total(*x): return sum(x)로 정의하고 print(total(1,2,3))을 실행하면?
- 6
- 1 2 3
- 5
- 7
정답과 해설 보기
정답: 1
정답은 ① 6이다. 함수 정의에서 *x는 전달된 여러 위치 인수를 하나의 튜플로 모으는 매개변수다. total(1, 2, 3)을 호출하면 함수 내부의 x는 (1, 2, 3)이 되고, sum(x)는 그 원소들의 합인 1+2+3을 계산한다.
return으로 돌려준 값은 정수 6이며 바깥 print가 그 값을 출력한다. 별표가 곱셈을 수행하거나 원소를 각각 출력하는 것이 아니다. 인수가 모이는 단계, 합을 계산하는 단계, 반환값을 출력하는 단계를 나누어 추적하면 가변 인수 함수의 동작을 이해할 수 있다.
선지별 해설
- ① 정답. 튜플 (1, 2, 3)의 합 6을 출력한다.
- ② 오답. 인수를 각각 출력하지 않고 합산한 한 값을 출력한다.
- ③ 오답. 세 원소를 모두 더하므로 5가 아니다.
- ④ 오답. 별도로 1을 추가하는 연산은 없다.
편집 해설 근거: Python 3.14 Tutorial, More Control Flow Tools — §4.9.4 Arbitrary Argument Lists; Python 3.14, Built-in Functions — sum; print
67. Python에서 for ch in 'abcd': print(ch,end=' ')를 실행하면?
- a b c d (각 문자 뒤 공백)
- a, b, c, d가 각각 새 줄에 출력
- abcd
- a-b-c-d
정답과 해설 보기
정답: 1
정답은 ①이다. 문자열 abcd를 순회하면 ch에 a, b, c, d가 차례대로 대입되고 반복문 본문의 print가 네 번 실행된다. end를 공백 한 칸으로 지정했으므로 각 호출은 문자 뒤에 줄바꿈 대신 공백을 덧붙인다.
정확한 출력은 a 뒤 공백, b 뒤 공백, c 뒤 공백, d 뒤 공백이며 마지막에도 공백이 남는다. 다른 출력이 없으므로 마지막 줄바꿈은 추가되지 않는다. end는 출력의 끝에 붙이는 문자열이고 여러 인수 사이의 구분자인 sep와는 다른 매개변수다.
선지별 해설
- ① 정답. 네 문자 각각 뒤에 공백이 붙으며 마지막에도 공백이 남는다.
- ② 오답. end가 기본 줄바꿈에서 공백으로 바뀌었다.
- ③ 오답. 각 호출마다 공백이 붙으므로 연속된 abcd만 출력되지 않는다.
- ④ 오답. 하이픈을 지정한 곳이 없다.
편집 해설 근거: Python 3.14, Built-in Functions — print; Python 3.14 Tutorial, More Control Flow Tools — §4.2 for Statements
68. 다음 C11 프로그램의 출력은?
#include <stdio.h>
int main(void) {
int a=0, b[4]={10,20,30,40};
printf("%d", b[a+++2]);
return 0;
}
[학습용 개정문항]
- 10
- 20
- 30
- 40
정답과 해설 보기
정답: 3
정답은 ③ 30이다. C의 토큰화는 가능한 가장 긴 토큰을 먼저 취하므로 a+++2는 a++와 +와 2로 나뉜다. 후위 증가 연산은 식의 값으로 증가 전의 a를 사용하고 a를 1 증가시킨다. 따라서 배열 첨자는 증가 전 값 0에 2를 더한 2다.
b[2]는 배열의 세 번째 원소인 30이므로 그 값이 출력된다. a의 증가와 별개로 같은 식에서 a를 다시 읽는 부분이 없으며 첨자도 유효 범위 안이다. 후위 증가를 전위 증가처럼 계산하거나 배열의 첫 첨자를 1로 잡으면 잘못된 값을 얻게 된다.
선지별 해설
- ① 오답. 첨자는 0이 아니라 0+2인 2다.
- ② 오답. 배열의 두 번째 원소가 아니라 세 번째 원소를 읽는다.
- ③ 정답. b[2]의 값인 30을 출력한다.
- ④ 오답. 증가 후 a=1을 첨자 계산에 사용하지 않는다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.4 Lexical elements; §6.5.2.4 Postfix increment; §6.5.2.1 Array subscripting
69. 다음 C11 코드의 서식 문자열을 완성하여 A 2.000000을 출력하려고 한다. FORMAT 자리에 들어갈 두 변환 지정자의 조합은?
#include <stdio.h>
int main(void) {
char a='A';
double b=3.0;
printf(FORMAT, a, b/1.5);
return 0;
}
[학습용 개정문항]
- %c %d
- %c %f
- %d %f
- %c %c
정답과 해설 보기
정답: 2
정답은 ② %c %f이다. a를 정수 문자 코드가 아니라 문자 A로 출력하려면 %c를 사용한다. printf의 가변 인수로 char 값이 전달될 때 정수 승격을 거치므로 %c가 int 인수를 받아 문자로 출력하는 규칙에 맞는다.
b는 double이고 b/1.5는 2.0이다. printf에서 %f는 double 값을 소수 표기하며 기본 정밀도는 소수점 아래 여섯 자리이므로 2.000000이 출력된다. a에 %d를 쓰는 것이 그 자체로 항상 잘못된 것은 아니지만, 이번 요구인 문자 A의 출력과는 다르다. double에 %d나 %c를 대응시키면 인수형이 맞지 않는다.
선지별 해설
- ① 오답. double 값을 받는 두 번째 서식으로 %d는 맞지 않는다.
- ② 정답. 문자 A와 실수 2.000000을 출력한다.
- ③ 오답. 첫 값이 문자 A가 아닌 정수 문자 코드로 출력된다.
- ④ 오답. 두 번째 인수는 문자용 int가 아닌 double이다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.2.2 Function calls; §7.21.6.1 fprintf; §7.21.6.3 printf
70. 다음 C11 프로그램의 출력은?
#include <stdio.h>
int main(void) {
printf("%X", 0x5Au & 0x3Cu);
return 0;
}
[학습용 개정문항]
- 1A
- 18
- 5A
- 3C
정답과 해설 보기
정답: 2
정답은 ② 18이다. 비트 AND는 같은 위치의 두 비트가 모두 1일 때만 결과를 1로 만든다. 16진수 5A는 이진수 01011010, 3C는 00111100이며 비트별 AND를 취하면 00011000이 된다.
이를 네 비트씩 나누면 0001과 1000이므로 16진수로 18이다. 십진수 값은 24지만 %X는 대문자 16진수 표기를 요구하므로 화면에는 18이 나온다. 정수 상수에 u를 붙여 연산 결과를 unsigned int로 만들었으므로 printf의 %X가 요구하는 인수형과도 일치한다.
선지별 해설
- ① 오답. 1A의 마지막 두 비트는 AND 결과와 다르다.
- ② 정답. 00011000을 16진수로 쓰면 18이다.
- ③ 오답. 5A를 그대로 출력하는 것이 아니라 비트 AND를 수행한다.
- ④ 오답. 3C를 그대로 출력하는 것이 아니다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.10 Bitwise AND; §7.21.6.1 fprintf, X conversion
71. 다음 C11 프로그램의 출력은?
#include <stdio.h>
int main(void) {
char s[]="ABCAADCD";
for (int i=0; i<8; i++) {
if (s[i]=='B') s[i]='A';
else if (i==4) s[i]='D';
}
printf("%s", s);
return 0;
}
[학습용 개정문항]
- ADBAACDC
- AABACDDC
- ABAAADCC
- AACADDCD
정답과 해설 보기
정답: 4
정답은 ④ AACADDCD이다. 문자열의 인덱스는 0부터 시작한다. 원래 문자열 ABCAADCD에서 인덱스 1의 문자가 B이므로 첫 조건을 만족하여 A로 바뀐다. 인덱스 4의 문자는 A라 첫 조건이 거짓이고, 이어지는 else if의 i==4가 참이므로 D로 바뀐다.
나머지 문자는 그대로 유지되므로 인덱스 0부터 A, A, C, A, D, D, C, D가 된다. 두 번째 조건이 else if이므로 같은 반복에서 앞 조건이 참이면 뒤 조건은 검사하지 않는다. 문자열 끝의 널 문자는 반복 범위 밖에 있어 정상적으로 문자열 종료를 표시한다.
선지별 해설
- ① 오답. 조건이 바꾸지 않는 위치의 문자까지 달라졌다.
- ② 오답. 인덱스 2의 C는 변경되지 않는다.
- ③ 오답. 인덱스 1의 B를 A로 바꾸는 동작이 반영되지 않았다.
- ④ 정답. 1번 위치를 A, 4번 위치를 D로 바꾼 결과다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.5.2.1 Array subscripting; §6.8.4.1 The if statement; §7.21.6.1 s conversion
72. 다음 Java 17 프로그램의 출력은?
public class Main {
public static void main(String[] args) {
int a=70, b=50;
int c=((a+b)/2>=60)?2:4;
System.out.print(c);
}
}
[학습용 개정문항]
- 2
- 4
- 60
- 120
정답과 해설 보기
정답: 1
정답은 ① 2이다. 먼저 a+b는 70+50인 120이고, 정수끼리 2로 나누어 60을 얻는다. 이 값에 대해 60 이상인지 비교하므로 조건은 참이다. 조건 연산자는 조건이 참이면 물음표 뒤의 첫 식인 2를 선택하고 거짓이면 콜론 뒤의 4를 선택한다.
변수 c에는 평균 60이나 합계 120 자체가 아니라 조건에 따라 선택된 정수 2가 저장된다. 마지막 print는 c를 출력한다. 정수 나눗셈과 비교를 먼저 평가한 뒤 선택 결과를 대입하는 순서로 추적하면 중간 값과 최종 출력의 혼동을 피할 수 있다.
선지별 해설
- ① 정답. 평균 60이 조건을 만족하여 2가 선택된다.
- ② 오답. 평균이 60 미만일 때 선택할 값이다.
- ③ 오답. 평균은 중간 값이며 c에 직접 대입되지 않는다.
- ④ 오답. 합계는 중간 값이며 출력 대상이 아니다.
편집 해설 근거: Oracle Java SE 17 Language Specification, Chapter 15 Expressions — §15.17.2 Division Operator; §15.20.1 Numerical Comparison; §15.25 Conditional Operator
73. C 함수 또는 Java 메서드 내부의 일반 지역 변수 이름으로 사용하려 할 때, 두 언어 모두의 식별자 명명 규칙에 어긋나는 것은?
[학습용 개정문항]
- _average
- 1total
- maxValue
- score1
정답과 해설 보기
정답: 2
정답은 ② 1total이다. C와 Java에서 제시한 ASCII 이름을 지역 변수로 사용할 때 첫 문자를 숫자로 시작할 수 없다. 1total은 숫자가 앞에 있으므로 식별자 하나로 인정되지 않는다. maxValue처럼 문자로 시작하거나 score1처럼 뒤에 숫자가 붙는 이름은 가능하다.
_average도 지정한 지역 변수 범위에서는 사용할 수 있다. 다만 C에는 밑줄로 시작하는 일부 이름의 예약 규칙이 있고 Java에서는 밑줄 하나만인 이름과 밑줄 뒤에 문자가 붙은 이름의 규칙이 다르다. 이 문제는 _ 하나나 외부 연결 식별자가 아니라 보기의 전체 지역 변수 이름을 판단한다.
선지별 해설
- ① 오답. 보기의 _average는 지정된 지역 변수 범위에서 사용할 수 있다.
- ② 정답. 숫자로 시작하므로 두 언어의 식별자 규칙에 맞지 않는다.
- ③ 오답. 문자로 시작하며 나머지도 허용되는 문자다.
- ④ 오답. 첫 글자는 문자이고 뒤의 숫자는 허용된다.
편집 해설 근거: ISO/IEC JTC1/SC22/WG14, C11 committee draft N1570 (2011-04-12) — §6.4.2.1 General; §7.1.3 Reserved identifiers; Oracle Java SE 25 Language Specification, Chapter 3 Lexical Structure — §3.8 Identifiers
74. Java Account에서 외부 직접 접근을 막을 balance 필드와 외부 호출을 허용할 deposit 메서드의 접근 제어자는?
- public, public
- private, private
- private, public
- protected, public
정답과 해설 보기
정답: 3
정답은 ③ private, public이다. balance를 private로 선언하면 일반적인 외부 호출 코드가 해당 필드에 직접 접근하지 못하게 제한할 수 있다. deposit을 public으로 선언하면 클래스 자체에 접근할 수 있는 외부 코드가 공개된 메서드를 통해 입금 기능을 호출할 수 있다.
이렇게 하면 잔액 변경을 메서드 안으로 모으고 금액 검증 같은 규칙을 적용하기 쉬워진다. protected는 같은 패키지와 정해진 상속 관계의 접근을 허용하므로 필드 접근을 private와 같은 범위로 제한하지 않는다. 접근 제어와 별개로 메서드 내부에서 올바른 검증 로직을 구현해야 한다.
선지별 해설
- ① 오답. balance까지 공개되어 직접 접근을 막지 못한다.
- ② 오답. deposit도 비공개가 되어 일반 외부 호출을 허용하지 않는다.
- ③ 정답. 필드를 제한하고 필요한 메서드만 공개한다.
- ④ 오답. protected 필드는 같은 패키지 등의 접근을 허용한다.
편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 6 Names — §6.6 Access Control; §6.6.1 Determining Accessibility
75. Java 8 당시의 API를 기준으로, A 클래스의 생성자 이름과 Object에서 상속할 수 있었던 최종화 메서드 이름의 조합은? 최종화 메서드는 결정적 소멸자가 아니다.
[학습용 개정문항]
- 생성자: newA, 최종화 메서드: destroy
- 생성자: A, 최종화 메서드: finalize
- 생성자: init, 최종화 메서드: delete
- 생성자: A, 최종화 메서드: destructor
정답과 해설 보기
정답: 2
정답은 ②이다. Java의 생성자 이름은 선언한 클래스 이름과 같으므로 A 클래스의 생성자는 A이다. Java 8의 Object에는 finalize라는 메서드가 있었으며, 과거 설명에서 객체 정리와 관련하여 소멸자에 비유되기도 했다.
그러나 finalize는 C++의 결정적 소멸자와 같지 않고 객체 사용이 끝나는 순간 실행됨을 보장하지 않는다. JDK 18에서는 최종화와 관련 API가 향후 제거를 위한 사용 중단 대상으로 지정되었다. 자원 종료는 try-with-resources 등 명시적인 관리 방식을 사용해야 하며, 이 문제는 과거 API의 이름을 묻는 것이다.
선지별 해설
- ① 오답. 생성자 이름은 newA가 아니며 destroy가 해당 Object 메서드도 아니다.
- ② 정답. 생성자 A와 과거 Object의 finalize 메서드 조합이다.
- ③ 오답. Java 생성자 이름과 과거 최종화 메서드 이름 모두 다르다.
- ④ 오답. A는 맞지만 destructor라는 Java 소멸자는 없다.
편집 해설 근거: Oracle Java SE 25 Language Specification, Chapter 8 Classes — §8.8 Constructor Declarations; Oracle Java SE 8 API, java.lang.Object.finalize — finalize; Oracle JDK 18 Release Notes, JEP 421 Deprecated Finalization for Removal — JEP 421: Deprecated Finalization for Removal
76. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 페이징(Paging) 기법에 대한 기술로 틀린 설명을 고르면?
[학습용 개정문항]
- 물리 메모리를 동일한 크기의 페이지 프레임으로 나눈다.
- 가상 주소를 페이지 번호와 페이지 내 오프셋으로 구분한다.
- 프로세스 전체를 하나의 연속된 물리 메모리 공간에 적재해야만 한다.
- 외부 단편화를 줄일 수 있지만 페이지 내부의 남는 공간은 생길 수 있다.
정답과 해설 보기
정답: 3
정답은 ③이다. 페이징은 가상 주소 공간을 일정한 크기의 페이지로, 물리 메모리를 대응하는 크기의 페이지 프레임으로 나누어 관리한다. 가상 주소의 페이지 번호를 페이지 테이블 등으로 물리 프레임 번호에 대응시키고 페이지 안의 오프셋을 결합하여 주소를 얻는다.
연속된 가상 페이지가 서로 떨어진 물리 프레임에 놓일 수 있으므로 프로세스 전체를 하나의 연속 물리 구간에 적재할 필요가 없다. 고정 크기 프레임 할당은 외부 단편화 문제를 줄이지만 마지막 페이지의 남는 공간과 같은 내부 단편화까지 모두 없애지는 않는다.
선지별 해설
- ① 오답. 물리 메모리를 고정 크기 프레임으로 나누는 설명은 맞다.
- ② 오답. 가상 주소를 페이지 번호와 오프셋으로 구분한다.
- ③ 정답. 연속된 전체 물리 공간에 적재할 필요가 없다.
- ④ 오답. 외부 단편화를 줄여도 페이지 내부의 남는 공간은 생길 수 있다.
편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 18 Paging: Introduction — Paging: Introduction, Address Translation; Where Are Page Tables Stored?
77. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 리피터(Repeater)에 대한 기술로 틀린 설명을 고르면?
[학습용 개정문항]
- OSI 물리 계층에서 동작한다.
- 신호를 수신하고 재생하여 다시 송신한다.
- 패킷의 목적지를 분석하여 최적 경로를 선택한다.
- 신호를 재생하여 전달 가능한 거리를 연장하는 데 사용한다.
정답과 해설 보기
정답: 3
정답은 ③이다. 리피터는 물리 계층에서 받은 신호를 재생하여 다음 구간으로 전달하는 장치다. 디지털 신호에서는 약해지거나 흐트러진 신호의 형태와 타이밍을 복원하는 역할을 하므로 단순히 모든 잡음까지 크게 만드는 증폭기와 같은 의미로만 이해하면 부족하다.
패킷의 목적지 주소를 보고 경로를 선택하는 역할은 라우터에 해당한다. 리피터는 패킷의 의미를 분석하여 최적 경로를 계산하는 장치가 아니다. 신호를 전달할 수 있는 거리를 늘리는 물리적 기능과 네트워크 경로 결정을 구별한다.
선지별 해설
- ① 오답. 물리 신호 수준에서 동작한다.
- ② 오답. 받은 신호를 재생하여 전달하는 설명은 맞다.
- ③ 정답. 목적지에 따른 패킷 경로 선택은 라우터의 역할이다.
- ④ 오답. 신호 재생은 전달 가능한 범위를 연장하는 데 쓰인다.
편집 해설 근거: ITU-T X.200 (07/1994), OSI Basic Reference Model — Physical layer; Network layer; IETF RFC 1812, Requirements for IP Version 4 Routers (1995) — §2.2.1 Internet Architecture, Routers
78. 프로그램과 운영환경을 분석하여 다음 물음에 답한다. 다음 중 First Fit 메모리 할당 기법에 대한 기술로 가장 적절한 것은?
- 가장 작은 빈 공간을 찾아 할당하는 기법이다.
- 메모리 전체를 탐색하여 최적의 공간을 찾는 기법이다.
- 가장 큰 빈 공간을 찾아 할당하는 기법이다.
- 메모리에서 처음으로 발견된 충분한 크기의 빈 공간에 데이터를 할당하는 기법이다.
정답과 해설 보기
정답: 4
정답은 ④이다. First Fit은 정해진 순서로 빈 공간 목록을 살펴보다 요청한 크기를 수용하는 첫 번째 공간을 찾으면 그곳을 할당하는 방식이다. 예를 들어 빈 공간이 100, 500, 200 단위 순서이고 180이 필요하다면 처음 충분한 500 단위 공간을 선택한다.
충분한 공간 중 가장 작은 것을 찾는 Best Fit과 가장 큰 것을 고르는 Worst Fit은 다른 정책이다. First Fit의 처음은 빈 공간을 탐색하는 목록 순서에 따른 것이며 모든 후보를 조사하여 가장 잘 맞는 크기를 고른다는 뜻이 아니다. 선택 후 남는 공간은 구현에 따라 다시 관리한다.
선지별 해설
- ① 오답. 요청을 수용하는 가장 작은 공간을 고르는 것은 Best Fit이다.
- ② 오답. 첫 충분한 공간을 찾으면 전체 비교 없이 선택할 수 있다.
- ③ 오답. 가장 큰 공간을 고르는 것은 Worst Fit이다.
- ④ 정답. 탐색 순서에서 처음 충분한 크기의 빈 공간을 선택한다.
편집 해설 근거: Arpaci-Dusseau & Arpaci-Dusseau, OSTEP Chapter 17 Free-Space Management — §17.3 Basic Strategies, First Fit; Best Fit; Worst Fit
79. 기본 ACL 등 별도의 권한 규칙이 없고 일반 파일 생성 요청 모드가 8진수 0666이다. umask가 8진수 0022일 때 other에게서 제거되는 권한은?
[학습용 개정문항]
- 읽기와 실행(Read and Execute)
- 읽기(Read)
- 쓰기(Write)
- 실행(Execute)
정답과 해설 보기
정답: 3
정답은 ③ 쓰기 권한이다. 8진수 umask 022의 마지막 자리 2는 other의 쓰기 비트를 제거하라는 뜻이다. 읽기·쓰기·실행의 비트 값은 각각 4, 2, 1이므로 2에 해당하는 권한만 마스크에서 지정된다.
기본 ACL 등 별도 규칙이 없는 조건에서 요청 권한 0666에 마스크 0022를 적용하면 0666 AND NOT 0022로 0644가 된다. 소유자는 읽기·쓰기를 유지하고 그룹과 other는 읽기만 남는다. umask는 일반적인 산술 뺄셈이 아니라 비트를 제거하는 연산이며, 원래 없던 실행 권한을 추가하지 않는다.
선지별 해설
- ① 오답. other에서 제거하는 마스크 비트는 읽기·실행이 아닌 쓰기다.
- ② 오답. 읽기는 비트 값 4이며 해당 마스크에서 제거되지 않는다.
- ③ 정답. 마지막 자리 2는 other의 쓰기 비트를 뜻한다.
- ④ 오답. 실행은 비트 값 1이며 이번 마스크의 제거 비트가 아니다.
편집 해설 근거: POSIX.1-2024 Issue 8, open() — O_CREAT, file permission bits 및 file mode creation mask; GNU Bash Reference Manual, Edition 5.3 (2025) — Bourne Shell Builtins, umask
80. GoF의 23개 디자인 패턴을 목적에 따라 나누는 세 기본 분류에 해당하지 않는 것은?
[학습용 개정문항]
- 생성 패턴(Creational Pattern)
- 구조 패턴(Structural Pattern)
- 동기화 패턴(Synchronization Pattern)
- 행동 패턴(Behavioral Pattern)
정답과 해설 보기
정답: 3
정답은 ③ 동기화 패턴이다. GoF의 23개 디자인 패턴은 목적에 따라 생성·구조·행동의 세 범주로 분류한다. 생성 패턴은 객체를 만드는 방법, 구조 패턴은 클래스나 객체를 구성하는 방법, 행동 패턴은 책임의 배분과 객체 사이의 협력을 다룬다.
동시성과 동기화를 다루는 패턴 자체가 존재하지 않는다는 뜻은 아니다. 다른 패턴 문헌과 분류에는 그런 패턴이 포함될 수 있다. 이 문제는 GoF가 제시한 23개 패턴의 목적별 세 분류를 묻기 때문에 동기화를 네 번째 기본 범주로 선택할 수 없다.
선지별 해설
- ① 오답. 객체 생성 방식을 다루는 GoF의 목적별 분류다.
- ② 오답. 클래스·객체의 구성을 다루는 분류다.
- ③ 정답. GoF의 목적별 세 기본 범주에는 포함되지 않는다.
- ④ 오답. 책임과 협력을 다루는 분류다.
편집 해설 근거: Douglas C. Schmidt, Object-Oriented Patterns & Frameworks — 슬라이드 15 Design Space for GoF Patterns, purpose 분류
정보처리기사 필기 기출문제 · 정보시스템 구축관리
81. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 오용 탐지(Misuse Detection)에 대한 기술로 틀린 설명을 고르면?
- 알려진 공격 패턴을 기반으로 시스템 침입을 탐지한다.
- 오용에 해당하는 패턴을 정의하여 탐지 정확도를 높인다.
- 서명 기반 탐지 방법과 밀접하게 연관된다.
- 정상 행위를 기준으로 이상 징후를 탐지하는 방법이다.
정답과 해설 보기
정답: 4
정답은 ④이다. 이 문항에서 오용 탐지는 알려진 위협에 해당하는 패턴이나 서명을 관찰된 사건과 비교하여 찾는 방식을 가리킨다. 미리 알려진 공격 특징에 잘 맞는 사건을 탐지할 수 있지만 패턴에 없는 새로운 공격이나 변형을 놓칠 수 있다.
정상 행위의 기준을 세우고 그 기준에서 크게 벗어나는 행동을 찾는 것은 이상 탐지다. 두 방식을 한 제품에서 결합할 수 있지만 비교 기준이 다르다. NIST는 실제 오용을 서명으로만 발견할 수 있는 것은 아니라는 이유로 문헌에서 서명 기반 탐지라는 명칭을 사용한다.
선지별 해설
- ① 오답. 알려진 위협의 패턴을 비교하는 설명은 맞다.
- ② 오답. 탐지에 사용할 공격 특징을 규칙으로 정의한다.
- ③ 오답. 여기에서 말하는 오용 탐지는 서명 기반 방식과 관련된다.
- ④ 정답. 정상 기준에서의 이탈을 찾는 것은 이상 탐지다.
편집 해설 근거: NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (2007) — §2.3.1 Signature-Based Detection, 각주5; §2.3.2 Anomaly-Based Detection
82. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 암호 기술과 직접적인 관련이 없는 것은?
- 해시 함수
- 라운드 로빈 스케줄링
- 대칭 키 암호화
- 공개 키 기반구조(PKI)
정답과 해설 보기
정답: 2
정답은 ② 라운드 로빈 스케줄링이다. 라운드 로빈은 준비된 작업에 시간 할당량을 차례로 주어 CPU를 나누어 쓰게 하는 스케줄링 정책이다. 암호문을 만들거나 키를 관리하는 암호 기술 자체를 뜻하지 않는다.
암호학적 해시 함수는 입력을 요약값으로 변환하고, 대칭키 암호는 공유한 비밀키로 암호화와 복호화를 수행한다. PKI는 인증서와 신뢰 체계를 통해 공개키와 주체의 연결을 관리한다. 암호 연산 작업이 라운드 로빈 방식으로 스케줄링될 수 있어도 운영체제의 실행 순서 정책과 암호 기능은 구별된다.
선지별 해설
- ① 오답. 암호학적 해시는 무결성 확인 등 암호 기술에 활용된다.
- ② 정답. CPU 실행 순서를 정하는 운영체제 정책이다.
- ③ 오답. 공유 비밀키를 사용하는 암호화 방식이다.
- ④ 오답. 공개키와 인증서의 신뢰를 관리하는 기반구조다.
편집 해설 근거: Arpaci-Dusseau, OSTEP v1.10, 7 Scheduling: Introduction — Round Robin; NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — AES algorithm; NIST FIPS 180-4, Secure Hash Standard (2015) — Secure Hash Standard
83. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 공개 키 암호 방식 중 두 개의 큰 소수의 곱셈을 기반으로 키를 만들고, 암호화와 복호화에 서로 다른 키를 사용하는 대표적인 비대칭 암호 알고리즘은?
- SHA-256
- AES
- DES
- RSA
정답과 해설 보기
정답: 4
정답은 ④ RSA이다. 전형적인 두 소수 RSA는 서로 다른 큰 소수 p와 q를 골라 그 곱 n=pq를 모듈러 연산의 법으로 사용하고, 서로 관련된 공개 지수와 비밀 지수를 구성한다. 공개키와 개인키라는 다른 키 역할을 이용하는 대표적인 공개키 암호 방식이다.
AES와 DES는 대칭키 블록 암호이고 SHA-256은 해시 함수이므로 질문의 키 구조와 다르다. 큰 정수의 인수분해가 어려운 성질이 RSA의 보안과 관련되지만, 모든 RSA 공격 문제와 인수분해가 완전히 동등하다고 증명되었다고 단정하지 않는다. 실제 사용에서는 적절한 패딩을 포함한 암호 체계가 필요하다.
선지별 해설
- ① 오답. SHA-256은 암호학적 해시 함수다.
- ② 오답. AES는 대칭키 블록 암호다.
- ③ 오답. DES도 대칭키 블록 암호다.
- ④ 정답. 소수들의 곱인 모듈러스와 공개·개인 키를 사용하는 방식이다.
편집 해설 근거: IETF RFC 8017, PKCS #1: RSA Cryptography Specifications Version 2.2 (2016) — §3 Key Types; §3.1 RSA Public Key; §3.2 RSA Private Key; §7 Encryption Schemes; NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — Introduction; NIST FIPS 180-4, Secure Hash Standard (2015) — SHA-256
84. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 세션 하이재킹(Session Hijacking) 탐지나 방어 기법으로 보기 어려운 것은?
[학습용 개정문항]
- 로그인·권한 변경 때 세션 식별자를 재발급하고 이전 식별자를 폐기한다.
- 사용자의 비정상적인 세션 이용 패턴을 분석한다.
- IP 주소와 User-Agent 변화를 보조 탐지 신호로 확인한다.
- 사용자 비밀번호를 평문으로 저장한다.
정답과 해설 보기
정답: 4
정답은 ④이다. 세션 하이재킹은 다른 사용자의 세션 식별자 등을 악용해 그 사용자로 동작하는 공격이다. 로그인이나 권한 변경 때 식별자를 재발급하고 이전 식별자를 폐기하면 세션 고정 등의 위험을 줄일 수 있다. 여기서 식별자는 세션을 가리키는 값이며 암호화키와 같은 뜻은 아니다.
행위 패턴이나 IP 주소·User-Agent의 변화를 보조 신호로 살펴 의심스러운 세션을 찾을 수 있다. 하지만 이동통신 등으로 정상 사용자 정보도 바뀔 수 있고 공격자가 일부 값을 흉내 낼 수 있어 단독 판정 기준으로 완전한 방어를 보장하지 않는다. 비밀번호 평문 저장은 방어가 아니라 자격증명 노출 위험을 높인다.
선지별 해설
- ① 오답. 인증·권한 변경 시 식별자 재발급과 이전 값 폐기는 관련 방어다.
- ② 오답. 비정상적인 세션 사용 행위를 탐지하는 데 도움을 준다.
- ③ 오답. 보조 탐지 신호로 사용할 수 있지만 단독으로 보장하지는 않는다.
- ④ 정답. 평문 비밀번호 저장은 보안 위험이며 방어 방법이 아니다.
편집 해설 근거: OWASP, Session Management Cheat Sheet (2026-10-05 확인) — Renew the Session ID After Any Privilege Level Change; Detecting Session ID Anomalies; Binding the Session ID to Other User Properties; NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management (2025) — Password Verifiers
85. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 거리 벡터(Distance Vector) 라우팅 방식을 사용하며 최대 홉 수가 15로 제한되는 라우팅 프로토콜은?
- BGP
- RIP
- IS-IS
- OSPF
정답과 해설 보기
정답: 2
정답은 ② RIP이다. RIP는 이웃에게 목적지까지의 거리 정보를 전달하는 거리 벡터 방식의 라우팅 프로토콜이다. 비용 척도로 홉 수를 사용하며 도달 가능한 경로의 최대 메트릭은 15다. 16은 더 먼 정상 경로가 아니라 도달 불가능을 나타내는 값으로 사용한다.
이 제한은 라우팅 루프에서 거리를 계속 늘려가는 문제를 제한하는 데 관련되지만 큰 네트워크를 표현하는 데 제약이 된다. OSPF와 IS-IS는 링크 상태 방식이고 BGP는 경로 벡터 방식으로 구별한다. 실제 경로 길이의 단위가 시간이나 대역폭이 아니라 홉이라는 점도 확인한다.
선지별 해설
- ① 오답. BGP는 자율 시스템 경로 정보를 사용하는 경로 벡터 방식이다.
- ② 정답. 거리 벡터 방식이며 유효한 최대 메트릭이 15다.
- ③ 오답. IS-IS는 링크 상태 방식이다.
- ④ 오답. OSPF도 링크 상태 방식이다.
편집 해설 근거: IETF RFC 2453, RIP Version 2 (1998) — §3.1 Introduction; §3.4.2 Prevention of Instability
86. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 HRN(Highest Response Ratio Next) 스케줄링 기법에서 우선순위를 계산하는 공식으로 가장 적절한 것은?
- 서비스 시간 + 대기 시간
- 도착 시간 + 서비스 시간
- (대기 시간 + 서비스 시간) ÷ 서비스 시간
- (도착 시간 + 서비스 시간) ÷ 대기 시간
정답과 해설 보기
정답: 3
정답은 ③이다. HRN 또는 HRRN은 대기 시간 W와 예상 서비스 시간 S를 이용하여 응답비 (W+S)/S를 계산하고 그 값이 큰 작업을 먼저 선택하는 비선점형 스케줄링 방식이다. 식을 1+W/S로 바꾸면 기다린 시간이 길수록 우선순위가 높아지는 구조를 볼 수 있다.
같은 대기 시간이라면 서비스 시간이 짧은 작업의 응답비가 커지지만, 오래 기다린 긴 작업도 비율이 올라가므로 짧은 작업만 계속 우선되는 문제를 완화한다. 여기서 서비스 시간은 0보다 커야 하고 도착 시각 자체를 대기 시간 대신 넣으면 안 된다.
선지별 해설
- ① 오답. 합계만으로는 서비스 시간에 대한 비율을 반영하지 않는다.
- ② 오답. 도착 시각의 합은 응답비 공식이 아니다.
- ③ 정답. 대기와 서비스 시간의 합을 서비스 시간으로 나눈다.
- ④ 오답. 분모와 도착 시각을 잘못 사용했다.
편집 해설 근거: Virginia Tech CS3204, Scheduling Analysis (2005) — Highest Response Ratio Next
87. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. WEP의 취약점을 보완하기 위해 등장했으며 초기 규격에서 TKIP를 사용한 무선 네트워크 보안 규격은?
- SSL
- WPA
- TKIP
- AES
정답과 해설 보기
정답: 2
정답은 ② WPA이다. 초기 WPA는 WEP의 취약점을 보완하기 위한 과도기적 무선 보안 규격으로 등장했고 TKIP를 사용했다. TKIP는 기존 장비와의 호환을 고려하여 키 처리와 무결성 보호 등을 개선한 프로토콜로, WPA라는 전체 규격 이름과는 다르다.
AES는 암호 알고리즘의 이름이며 WPA의 TKIP와 동일한 명칭이 아니다. SSL은 웹 등에서 사용되었던 보안 프로토콜 계열이지 이 무선 규격의 답이 아니다. 이 설명은 역사적 비교이며 현재 네트워크에 WPA/TKIP 사용을 권장하는 의미가 아니다. 참고한 NIST 구판도 현재 철회된 역사 자료로 구분한다.
선지별 해설
- ① 오답. WEP 후속 무선 규격의 이름이 아니다.
- ② 정답. 초기 규격에서 TKIP를 사용한 WPA를 가리킨다.
- ③ 오답. WPA에서 사용한 프로토콜 이름이며 전체 규격명이 아니다.
- ④ 오답. 블록 암호 알고리즘의 이름이다.
편집 해설 근거: NIST SP 800-97 (2007), 2025-12-31 철회·역사 자료 — WPA; TKIP, 2007년 역사 설명
88. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 VLAN(Virtual LAN)에 대한 기술로 가장 적절한 것은?
- 하나의 물리적 네트워크를 여러 개의 가상 네트워크로 분리하는 기술이다.
- 서로 다른 물리적 네트워크를 하나로 통합하는 기술이다.
- 인터넷 접속 속도를 향상시키는 기술이다.
- IP 주소를 자동으로 할당하는 기술이다.
정답과 해설 보기
정답: 1
정답은 ①이다. VLAN은 물리적으로 연결된 스위치 기반 네트워크를 논리적인 브로드캐스트 도메인들로 구분하는 기술이다. 같은 물리 장비를 사용해도 부서나 용도에 따라 서로 다른 VLAN에 속하도록 구성할 수 있다.
서로 다른 VLAN 사이의 통신에는 일반적으로 라우터나 계층 3 기능이 필요하다. VLAN 구성이 자동으로 인터넷 속도를 높이거나 IP 주소를 배정하는 것은 아니다. 주소 자동 설정은 DHCP 같은 별도 기능이며, VLAN 자체가 모든 통신을 암호화하거나 완전한 보안을 보장하는 것도 아니다.
선지별 해설
- ① 정답. 같은 물리 기반에서 논리적 네트워크를 분리한다.
- ② 오답. 분리된 물리 네트워크를 무조건 하나로 합치는 정의가 아니다.
- ③ 오답. 인터넷 회선 속도를 자동으로 높이는 기술이 아니다.
- ④ 오답. 자동 주소 할당은 DHCP 등의 별도 기능이다.
편집 해설 근거: Cisco Configuration Assistant SBCS Administrator Guide 3.0.1, VLANs — VLANs, Overview 및 Inter-VLAN Routing
89. TCP/IP의 IPv4 인터넷 계층과 관련된 기능으로 보기 어려운 것은?
[학습용 개정문항]
- IP 데이터그램 전달
- TCP의 수신 윈도를 이용한 종단 간 흐름 제어
- 논리 주소인 IP 주소의 사용
- 목적지로 향하는 다음 홉의 경로 선택
정답과 해설 보기
정답: 2
정답은 ②이다. TCP/IP의 IPv4 인터넷 계층은 IP 주소를 이용하여 데이터그램을 전달하고 라우터에서 다음 홉을 선택하는 기능과 관련된다. IP는 최선형 전달을 제공하며 수신 애플리케이션의 처리 속도에 맞추는 종단 간 흐름 제어를 보장하지 않는다.
TCP는 전송 계층에서 수신 윈도 등을 이용해 종단 간 흐름 제어를 수행한다. 흐름 제어라는 말이 다른 계층 문맥에서도 쓰일 수 있으므로 여기서는 IPv4와 TCP의 역할을 비교한다. IP 주소를 사용하는 기능과 DHCP로 주소를 자동 할당하는 응용 프로토콜의 기능도 구별한다.
선지별 해설
- ① 오답. IP 데이터그램을 다음 단계로 전달하는 관련 기능이다.
- ② 정답. TCP가 제공하는 종단 간 흐름 제어는 IPv4 인터넷 계층의 기능이 아니다.
- ③ 오답. 인터넷 계층에서 논리 주소인 IP 주소를 사용한다.
- ④ 오답. 목적지로 향하는 다음 홉 선택은 관련 기능이다.
편집 해설 근거: IETF RFC 1122 (1989), Requirements for Internet Hosts — §1.1.3 Internet Protocol Suite, Transport Layer 및 Internet Layer; IETF RFC 791, Internet Protocol (1981) — §1.4 Operation; §2.2 Model of Operation
90. Ethernet 링크에서 IPv4를 사용하는 ARP에 대한 설명으로 틀린 것은?
[학습용 개정문항]
- 같은 링크에 있는 다음 홉의 주소 대응 정보를 알아내는 데 사용한다.
- 주어진 MAC 주소에 대응하는 IPv4 주소를 찾는 것이 기본 역할이다.
- 주어진 IPv4 주소에 대응하는 MAC 주소를 알아내는 데 사용한다.
- 주소 대응을 모르는 경우 링크의 브로드캐스트 프레임으로 요청을 보낼 수 있다.
정답과 해설 보기
정답: 2
정답은 ②이다. Ethernet에서 IPv4를 사용하는 경우 ARP는 같은 링크에 있는 다음 홉의 IPv4 주소에 대응하는 MAC 주소를 알아내는 데 사용한다. MAC 주소만을 입력으로 IP 주소를 찾는 역방향 변환이 ARP의 기본 역할은 아니다.
필요한 대응 정보가 없으면 ARP 요청을 링크의 브로드캐스트 프레임으로 보내고 해당 주소를 가진 장치의 응답을 이용한다. 목적지가 다른 네트워크에 있으면 보통 원격 목적지의 MAC 주소가 아니라 게이트웨이 등 다음 홉의 MAC 주소를 찾는다. ARP를 특정 OSI 계층 하나로 단정하는 대신 실제 주소 대응과 전송 동작을 확인한다.
선지별 해설
- ① 오답. 같은 링크의 다음 홉 주소 대응을 알아내는 동작이다.
- ② 정답. 기본 방향은 IPv4 주소에서 MAC 주소를 찾는 것이다.
- ③ 오답. 지정한 Ethernet/IPv4 문맥에서 맞는 설명이다.
- ④ 오답. 주소 대응을 모를 때 브로드캐스트 요청을 보낼 수 있다.
편집 해설 근거: IETF RFC 826, Ethernet Address Resolution Protocol (1982) — Abstract; Packet Generation; Packet Reception
91. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 IPv4의 특징으로 보기 어려운 것은?
- 네트워크 계층에서 동작한다.
- 32비트 주소 체계를 사용한다.
- 주소 고갈 문제를 해결하기 위해 설계되었다.
- 4개의 옥텟(Octet)으로 구성된다.
정답과 해설 보기
정답: 3
정답은 ③이다. IPv4는 32비트 주소를 사용하여 인터넷 데이터그램의 출발지와 목적지를 식별한다. 이 주소는 8비트씩 네 옥텟으로 나누어 표현할 수 있으며, 흔히 각 옥텟을 십진수로 적고 점으로 구분한다. IP는 인터넷 계층, OSI와 비교하면 네트워크 계층에 해당하는 역할을 한다.
IPv4 자체가 IPv4 주소 고갈을 해결하기 위해 설계되었다는 설명은 맞지 않는다. 더 넓은 주소 공간을 제공하는 IPv6는 128비트 주소를 사용한다. 32비트라는 논리적 주소 길이와 점을 포함해 화면에 쓰는 문자열의 길이는 서로 다른 개념이다.
선지별 해설
- ① 오답. 패킷의 주소와 전달을 다루는 네트워크 계층의 역할이다.
- ② 오답. IPv4 주소의 길이는 32비트다.
- ③ 정답. IPv4 자체의 주소 고갈을 해결하기 위해 설계된 규격이라는 설명은 잘못이다.
- ④ 오답. 32비트는 8비트 옥텟 네 개로 구성된다.
편집 해설 근거: IETF RFC 791, Internet Protocol (1981) — §3.1 Internet Header Format, Source Address 및 Destination Address; IETF RFC 8200, Internet Protocol Version 6 Specification (2017) — §1 Introduction
92. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 블록체인 네트워크의 구축, 운영, 관리 기능을 클라우드 서비스 형태로 제공하는 것은?
- SaaS
- PaaS
- FaaS
- BaaS
정답과 해설 보기
정답: 4
정답은 ④ BaaS이다. 이 문맥에서 BaaS는 Blockchain as a Service를 뜻한다. 블록체인 노드와 네트워크를 구성하고 운영·모니터링하는 기능을 클라우드 관리 서비스로 제공하여 이용자가 기반 인프라의 여러 운영 작업을 줄일 수 있게 한다.
다만 BaaS라는 약자는 다른 분야에서 Backend as a Service를 뜻하기도 하므로 문제에 나온 블록체인이라는 문맥을 확인해야 한다. PaaS는 더 넓은 플랫폼 서비스 범주여서 블록체인 서비스가 그 성격을 가질 수 있지만, 보기 중 해당 서비스를 구체적으로 지칭하는 명칭은 Blockchain as a Service다.
선지별 해설
- ① 오답. 완성된 애플리케이션을 제공하는 일반적인 소프트웨어 서비스 범주다.
- ② 오답. 플랫폼 제공이라는 상위 성격은 가질 수 있지만 질문의 구체적 명칭과 다르다.
- ③ 오답. 함수를 실행하는 서비스 범주다.
- ④ 정답. 이 문맥에서 Blockchain as a Service를 뜻한다.
편집 해설 근거: Oracle Blockchain Platform, What Are the Advantages? (2026-10-05 확인) — What Are the Advantages of Oracle Blockchain Platform?
93. IBM이 개발한 고가용성 클러스터 솔루션의 과거 명칭으로, 노드 장애 때 다른 노드로 서비스 자원을 인계하여 중단을 줄이며 PowerHA 계열로 이어진 것은?
[학습용 개정문항]
- HACMP
- VMware
- Docker
- Memristor
정답과 해설 보기
정답: 1
정답은 ① HACMP이다. HACMP는 IBM의 고가용성 클러스터 솔루션으로, 노드나 자원의 장애를 감지하고 다른 노드가 관련 서비스 자원을 인계받도록 구성하는 데 사용되었다. IBM의 PowerHA 계열로 이어지는 역사적 제품 명칭이다.
장애전환은 서비스 중단을 줄이는 방법이지만 장애 감지, 자원 이동, 애플리케이션 재시작에는 시간이 들 수 있다. 따라서 모든 장애에서 단 한 순간의 중단도 없는 상태를 자동 보장한다고 설명하면 부정확하다. 가상화 제품명인 VMware, 컨테이너 기술인 Docker, 소자 개념인 멤리스터와 구별한다.
선지별 해설
- ① 정답. IBM의 고가용성 클러스터 솔루션에 해당한다.
- ② 오답. 가상화 관련 제품·기업 명칭이며 제시한 IBM 솔루션이 아니다.
- ③ 오답. 컨테이너 실행·관리 기술이며 해당 IBM 제품명이 아니다.
- ④ 오답. 회로 소자 개념으로 클러스터 솔루션이 아니다.
편집 해설 근거: IBM, HACMP 5.5 Planning Guide — Planning Guide, High Availability Concepts 및 Resource Groups; IBM Cloud Docs, Getting started with PowerHA Automation (2026-10-05 확인) — Getting started with PowerHA Automation
94. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 허니팟(Honeypot)에 대한 기술로 틀린 설명을 고르면?
[학습용 개정문항]
- 공격자의 접근을 예외 없이 완전히 차단하는 것이 본래 목적이다.
- 운영 자원에 피해가 번지지 않도록 연결과 접근 범위를 통제하여 구성한다.
- 정상 업무 기능이 없는 유인용 호스트를 두어 의심 행위를 관찰한다.
- 공격자의 접근 기록과 공격 방법을 분석하는 데 활용할 수 있다.
정답과 해설 보기
정답: 1
정답은 ①이다. 허니팟은 정상 업무용 서비스와 구별되는 유인용 시스템으로, 그곳에 접근하는 의심스러운 행동을 관찰해 공격 도구와 방법을 분석하는 데 활용한다. 공격자의 모든 접근을 완전히 차단하는 것 자체가 허니팟의 목적은 아니다.
유인용 호스트에 대한 관찰 환경이 다른 운영 자원에 피해를 주지 않도록 접근 범위와 연결을 통제해야 한다. 허니팟은 침입 탐지·차단 등 다른 보안 통제를 보완하는 수단이지 그 통제를 모두 대체하는 만능 방어 장치가 아니다.
선지별 해설
- ① 정답. 모든 공격 접근을 차단하는 것이 아니라 유인·관찰에 활용한다.
- ② 오답. 운영 자원에 대한 영향을 제한하도록 접근과 연결을 통제한다.
- ③ 오답. 업무 기능이 없는 유인용 호스트에 대한 의심 행위를 관찰한다.
- ④ 오답. 관찰 기록을 공격 방식 분석에 사용할 수 있다.
편집 해설 근거: NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (2007) — §8.3.4 Honeypots
95. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 사용자가 주장하는 신원이 실제와 일치하는지를 시스템이 검증하는 절차를 가리키는 용어를 고르면?
- Authentication
- Authorization
- Accounting
- Auditing
정답과 해설 보기
정답: 1
정답은 ① Authentication이다. 인증은 사용자가 주장하는 신원이나 그 계정과의 연결을 증명할 수 있는지 확인하는 절차다. 비밀번호 검증, 소유한 인증기 확인, 생체 특성 확인 등 정해진 인증 요소를 이용할 수 있다.
Authorization은 인증된 주체 등이 어떤 자원과 기능에 접근할 수 있는지를 결정하는 인가다. Accounting은 사용 이력이나 자원 소비를 기록하는 활동이고 Auditing은 관련 기록과 동작을 검토하는 감사다. 누구인지 확인하는 일과 무엇을 허용할지 정하는 일을 구별해야 한다.
선지별 해설
- ① 정답. 주장하는 신원을 확인하는 인증이다.
- ② 오답. 자원과 행동의 허용 여부를 다루는 인가다.
- ③ 오답. 사용 내역이나 자원 소비를 기록하는 활동이다.
- ④ 오답. 기록과 동작을 검토하는 감사 활동이다.
편집 해설 근거: Peter Reiher, OSTEP v1.10, 54 Authentication — Authentication, Introduction 및 authentication factors; Peter Reiher, OSTEP v1.10, 55 Access Control — Access Control, Introduction
96. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 “something you have” 인증 요소로 보기 어려운 것은?
- OTP 토큰
- 스마트 카드
- 지문 인식
- 보안 카드
정답과 해설 보기
정답: 3
정답은 ③ 지문 인식이다. something you have는 사용자가 소유한 인증기나 매체를 확인하는 소유 요소다. 물리적 OTP 토큰, 스마트 카드, 보안 카드 등은 그 매체를 갖고 있음을 바탕으로 인증 정보를 제시한다.
지문은 사용자의 신체 특성인 something you are에 해당한다. 비밀번호처럼 기억하는 비밀은 something you know다. OTP에 표시된 숫자를 눈으로 읽거나 기억한다고 해서 토큰의 분류가 지식 요소로 바뀌지는 않는다. 무엇이 인증 정보 생성과 증명의 기반인지에 따라 구분한다.
선지별 해설
- ① 오답. 여기서 OTP 토큰은 소유한 인증기를 뜻한다.
- ② 오답. 사용자가 소유한 카드 기반 인증 수단이다.
- ③ 정답. 신체의 생체 특성을 확인하는 요소다.
- ④ 오답. 소유한 카드의 정보를 이용하는 인증 수단이다.
편집 해설 근거: Peter Reiher, OSTEP v1.10, 54 Authentication — Something You Know; Something You Have; Something You Are
97. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 공개키 암호화 기법으로 보기 어려운 것은?
- ElGamal
- AES
- ECC
- RSA
정답과 해설 보기
정답: 2
정답은 ② AES이다. AES는 암호화와 복호화에 공유한 비밀키를 사용하는 대칭키 블록 암호다. 공개키와 개인키의 역할을 나누는 공개키 암호 방식과는 키 사용 구조가 다르다. RSA와 ElGamal은 공개·개인 키 쌍을 이용하는 대표적인 공개키 암호 방식이다.
ECC는 하나의 단일 암호화 알고리즘 이름이라기보다 타원곡선 연산을 사용하는 공개키 암호 기술군을 가리킨다. 실제 시스템은 공개키 기술로 키 합의나 서명을 수행하고 AES로 대량 데이터를 암호화하는 등 둘을 함께 사용할 수 있지만, AES 자체가 공개키 암호로 바뀌는 것은 아니다.
선지별 해설
- ① 오답. ElGamal은 공개키와 개인키를 이용하는 암호 방식이다.
- ② 정답. AES는 공유 비밀키를 사용하는 대칭키 블록 암호다.
- ③ 오답. 타원곡선 기반 공개키 암호 기술군을 가리킨다.
- ④ 오답. RSA는 공개키와 개인키가 구분되는 방식이다.
편집 해설 근거: NIST FIPS 197-upd1, Advanced Encryption Standard (2023) — Introduction; Algorithm Specification; Menezes·van Oorschot·Vanstone, Handbook of Applied Cryptography (1997), Chapter 8 저자 공개본 — §8.4 ElGamal public-key encryption; IETF RFC 6090, Fundamental Elliptic Curve Cryptography Algorithms (2011) — §1 Introduction; Diffie-Hellman 및 ElGamal 관련 알고리즘; IETF RFC 8017, PKCS #1: RSA Cryptography Specifications Version 2.2 (2016) — §3 Key Types
98. 주변 장치에 식별 정보 등을 알리는 Bluetooth Low Energy(BLE) 비콘의 일반적인 동작으로 가장 적절한 것은?
[학습용 개정문항]
- 고속 대용량 전송을 위해 광대역 무선 회선을 중계한다.
- 위성 회선을 통해 장거리 통신을 제공한다.
- Bluetooth LE 광고 패킷을 주변 장치에 반복 송신한다.
- NFC 태그를 휴대전화에 접촉에 가깝게 대야만 정보를 읽을 수 있다.
정답과 해설 보기
정답: 3
정답은 ③이다. Bluetooth LE 비콘은 광고 패킷을 주변으로 반복 송신하여 수신 장치가 식별자나 짧은 정보를 알아내게 한다. 수신 장치는 광고를 스캔하여 근처 비콘의 존재를 파악하고 안내·위치 관련 기능에 사용할 수 있다.
광고 데이터만 받는 방식에서는 반드시 일대일 연결을 먼저 맺을 필요가 없다. Bluetooth SIG는 이런 방송 역할을 GAP Broadcaster로 설명한다. 위성 통신이나 고속 광대역 장치와 다르고, 사용자가 장치를 가까이 대는 NFC 태그 동작과도 구별된다. Beacon이라는 일반 단어가 모든 경우에 Bluetooth만 뜻하는 것은 아니므로 문제의 BLE 조건을 본다.
선지별 해설
- ① 오답. BLE 비콘의 주된 동작을 고속 광대역 전송으로 설명할 수 없다.
- ② 오답. 위성 기반 장거리 통신 장치가 아니다.
- ③ 정답. BLE 광고 패킷으로 주변에 식별 정보 등을 반복 송신한다.
- ④ 오답. NFC 태그를 탭하는 방식과 BLE 광고 방송은 다르다.
편집 해설 근거: Bluetooth SIG, Advertising works, part 1 (2016) — GAP Roles; Non-connectable advertising
99. 2009년 방문 장소를 체크인하고 공유하는 위치 기반 소셜 서비스로 시작한 서비스는? 초기 서비스의 역사적 특징을 기준으로 판단한다.
[학습용 개정문항]
- Spotify
- Foursquare
- Zoom
정답과 해설 보기
정답: 2
정답은 ② Foursquare이다. Foursquare는 2009년에 방문한 장소를 체크인하는 위치 기반 소셜 서비스로 시작했다. 사용자가 어디를 방문했는지 기록하고 친구 등과 공유하는 특징이 초기 서비스의 대표적인 구별점이었다. 음악 감상, 메시지 통신, 화상회의라는 다른 보기의 중심 용도와 다르다.
이 문제는 초기 서비스의 역사적 특징을 묻는다. Foursquare의 City Guide 앱은 2024년 12월 종료되었으며, 현재 체크인 기능은 공식 Swarm 안내에서 확인할 수 있다. 과거 시험 용어를 지금도 같은 앱 구성으로 운영되는 서비스라고 설명하지 않고 당시 기능과 이후 변화를 함께 구별한다.
선지별 해설
- ① 오답. Spotify는 음악 등 오디오 콘텐츠 서비스로 알려져 있다.
- ② 정답. 2009년 체크인 기반 위치 소셜 서비스로 시작했다.
- ③ 오답. WhatsApp은 메시지·통신 서비스로 구별된다.
- ④ 오답. Zoom은 화상회의·협업 서비스로 구별된다.
편집 해설 근거: Foursquare, Foursquare ushers in a new era — 본문의 2009년 시작과 check-in game 설명; Foursquare Support, City Guide Sunset (2024-12-12) — City Guide app sunset date; Foursquare Support, Swarm check-ins (2025-08-27) — How to check in on Swarm; Sharing a Check-in
100. 정보시스템 구축·보안 검토에서 다음 항목을 판단한다. 다음 중 정보보안 3요소(CIA)에 포함되지 않는 것은?
- 기밀성(Confidentiality)
- 무결성(Integrity)
- 가용성(Availability)
- 정확성(Accuracy)
정답과 해설 보기
정답: 4
정답은 ④ 정확성이다. 정보보안의 CIA는 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)을 뜻한다. 기밀성은 허용되지 않은 공개를 막고, 무결성은 부적절한 변경이나 파괴로부터 정보를 보호하며, 가용성은 필요한 때 신뢰할 수 있는 접근과 사용을 보장하는 성질이다.
정확성이 중요하지 않다는 뜻은 아니다. 정보가 올바르고 변조되지 않아야 한다는 요구는 무결성과 관련될 수 있다. 다만 CIA라는 세 이름을 직접 나열하는 문제에서 Accuracy는 별도의 네 번째 구성 요소가 아니다. 보안 목표와 그 목표 안에서 평가할 수 있는 데이터 속성을 구별한다.
선지별 해설
- ① 오답. 허가되지 않은 정보 공개를 막는 CIA의 C다.
- ② 오답. 부적절한 변경·파괴를 막는 CIA의 I다.
- ③ 오답. 적시에 안정적으로 접근·사용할 수 있는 CIA의 A다.
- ④ 정답. 중요할 수 있는 속성이지만 CIA의 세 이름에는 포함되지 않는다.
편집 해설 근거: NIST FIPS 199 — §2 Information and Information Systems, security objectives
정보처리기사 필기 기출문제 학습 방법
먼저 PDF 문제지를 시간에 맞춰 푼 뒤, 이 글에서 오답의 정답·해설·근거를 확인하세요. 법규 문항은 근거 기준일 이후 개정 여부도 함께 확인하는 것이 안전합니다.