21년-3회차-정보처리기사-필기 시험지 PDF 다운로드

21년-3회차-정보처리기사-필기
정보처리기사 필기 기출문제

21년-3회차-정보처리기사-필기

총 100문항 · 객관식 · A4 약 1장

1 / 1
A4정답 포함
정보처리기사 필기 기출문제모두CBT · moducbt.com

21년-3회차-정보처리기사-필기

100문항 · 객관식 · 정답·해설 포함
문제 1
요구사항 검증(Requirements Validation)과 관련한 설명으로 틀린 것은?    
1요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정이다.
2개발완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요하다.
3요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검한다.
4요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수 있다.
정답 및 해설

요구사항 검증은 고객이 정말 원하는 시스템을 제대로 정의했는지, 문서화된 요구사항들이 서로 상충하지 않는지 점검하는 활동이지만, 검토·인스펙션 등 어떤 기법을 적용하더라도 요구사항의 모든 문제를 완전히 발견한다고 보장할 수는 없다.
따라서 모든 요구사항 문제를 발견할 수 있다는 설명은 틀린 진술이다.

문제 2
UML 모델에서 한 사물의 명세가 바뀌면 다른사물에 영향을 주며, 일반적으로 한 클래스가다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계는?    
1Association
2Dependency
3Realization
4Generalization
정답 및 해설

한 클래스의 명세가 바뀔 때 그것을 오퍼레이션의 매개변수로 사용하는 다른 클래스가 영향을 받는 관계는 의존(Dependency)이다.
연관(Association)은 지속적인 구조적 관계, 일반화(Generalization)는 상속 관계, 실체화(Realization)는 인터페이스 구현 관계로 이 설명과는 다르다.

문제 3
익스트림 프로그래밍 (XP)에 대한 설명으로 틀린 것은?    
1빠른 개발을 위해 테스트를 수행하지 않는다.
2사용자의 요구사항은 언제든지 변할 수있다.
3고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다.
4기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수있다.
정답 및 해설

익스트림 프로그래밍(XP)은 테스트 주도 개발(TDD)과 짝 프로그래밍을 핵심 실천법으로 삼아 개발 전 과정에서 지속적으로 테스트를 수행하는 방법론이다.
따라서 빠른 개발을 위해 테스트를 수행하지 않는다는 설명은 XP의 본질과 정반대되는 틀린 진술이다.

문제 4
소프트웨어 설계에서 사용되는 대표적인 추상화(Abstraction) 기법이 아닌 것은?    
1자료 추상화
2제어 추상화
3과정 추상화
4강도 추상화
정답 및 해설

소프트웨어 설계의 대표적 추상화 기법은 자료 추상화·제어 추상화·과정(기능) 추상화 세 가지이며, 강도 추상화라는 기법은 존재하지 않는다.

문제 5
객체지향 설계에서 정보 은닉(Information Hiding)과 관련한 설명으로 틀린 것은?    
1필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부시스템이 다른 모듈의 구현에 영향을 받지 않게 설계되는것을 의미한다.
2모듈들 사이의 독립성을 유지시키는 데 도움이 된다.
3설계에서 은닉되어야 할 기본 정보로는 IP주소와 같은 물리적 코드, 상세 데이터 구조 등이 있다.
4모듈 내부의 자료 구조와 접근 동작들에만 수정을 국한하기 때문에 요구사항 등변화에 따른 수정이 불가능하다.
정답 및 해설

정보 은닉은 모듈 내부의 자료구조와 접근 동작을 외부로부터 감춰 다른 모듈이 이를 직접 참조하지 못하게 함으로써 모듈 간 독립성을 높이고, 오히려 요구사항 변경이 있을 때 수정 범위를 모듈 내부로 국한시켜 유지보수를 쉽게 만든다.
따라서 요구사항 등 변화에 따른 수정이 불가능하다는 설명은 정보 은닉의 목적과 반대되는 틀린 진술이다.

문제 6
소프트웨어 공학에서 모델링 (Modeling)과 관련한 설명으로 틀린 것은?    
1개발팀이 응용문제를 이해하는 데 도움을 줄 수 있다.
2유지보수 단계에서만 모델링 기법을 활용한다.
3개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
4절차적인 프로그램을 위한 자료흐름도는 프로세스 위주의 모델링 방법이다.
정답 및 해설

모델링은 요구분석·설계 등 소프트웨어 개발의 전 단계에서 시스템을 이해하고 여러 분야의 엔지니어가 공통된 개념을 공유하도록 돕기 위해 활용되는 기법이다.
따라서 유지보수 단계에서만 모델링 기법을 활용한다는 설명은 틀린 진술이다.

문제 7
요구 분석(Requirement Analysis)에 대한 설명으로 틀린 것은?    
1요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
2요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
3도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
4기능적(Functional) 요구에서 시스템 구축에대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출한다.
정답 및 해설

시스템 구축에 대한 성능·보안·품질·안정성 등의 요구사항은 비기능적(Non-Functional) 요구에서 도출되는 것이지 기능적 요구에서 도출되는 것이 아니다.
기능적 요구는 시스템이 제공해야 할 기능 자체를 정의하는 것이므로, 이를 기능적 요구라고 설명한 부분이 틀렸다.

문제 8
클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?        
1Instance
2Operation
3Item
4Hiding
정답 및 해설

제시된 설명은 클래스의 동작을 의미하며 클래스에 속한 객체에 적용될 메서드를 정의하고 UML에서 동작에 대한 인터페이스를 지정하는 요소인 오퍼레이션(Operation)에 해당한다.
클래스 다이어그램에서 오퍼레이션은 속성(Attribute)과 함께 클래스 박스 하단부에 표기되는 요소다.

문제 9
분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?    
1일반적으로 실시간 시스템에서 사용된다.
2마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
3슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
4마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
정답 및 해설

마스터-슬레이브 아키텍처에서 마스터는 연산·통신·조정을 총괄하며 슬레이브들을 제어하고, 슬레이브는 마스터의 지시에 따라 특정 연산이나 데이터 수집 같은 작업을 수행한다.
따라서 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다는 설명은 슬레이브의 실제 역할과 반대되는 틀린 진술이다.

문제 10
요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?     
1Data Flow Diagram
2UML Diagram
3E-R Diagram
4AVL Diagram
정답 및 해설

자료흐름도(Data Flow Diagram)·UML 다이어그램·E-R 다이어그램은 요구사항 정의 및 분석·설계 결과물을 표현하는 대표적 모델링 다이어그램이지만, AVL Diagram은 존재하지 않는 용어이며 AVL은 이진 탐색 트리의 균형을 다루는 AVL 트리(자료구조)를 가리킨다.

문제 11
객체지향의 주요 개념에 대한 설명으로 틀린 것은?     
1캡슐화는 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
2객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
3클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
4다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
정답 및 해설

캡슐화(Encapsulation)는 속성(데이터)과 연산(메서드)을 하나로 묶어 외부에 세부 구현을 감추는 개념이다. 반면 의 설명(상위 클래스의 속성·연산을 전달받아 확장)은 상속(Inheritance)에 대한 설명이므로 캡슐화 정의로 틀리다. 객체·클래스·다형성에 대한 나머지 설명은 각각 올바른 정의이다.

문제 12
사용자 인터페이스(User Interface)에 대한 설명으로 틀린 것은?     
1사용자와 시스템이 정보를 주고받는 상호작용이 잘 이루어지도록 하는 장치나 소프트웨어를 의미한다.
2편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다.
3배우기가 용이하고 쉽게 사용할 수 있도록 만들어져야 한다.
4사용자 요구사항이 UI에 반영될 수 있도록 구성해야 한다.
정답 및 해설

사용자 인터페이스(UI)는 편리한 유지보수를 포함하더라도 근본적으로 사용자 중심으로 설계되어야 하며, '개발자 중심으로 설계'된다는 설명은 UI 설계 원칙에 어긋난다. UI는 배우기 쉽고 사용이 편리해야 하며 사용자 요구사항을 반영해야 한다는 나머지 설명은 타당하다.

문제 13
GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?     
1디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
2Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
3행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
4Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 제공한다.
정답 및 해설

Strategy 패턴은 알고리즘군을 캡슐화해 서로 교체 가능하게 만드는 대표적인 행위(Behavioral) 패턴이며, 인스턴스를 복제하여 사용하는 구조는 Prototype 패턴(생성 패턴)의 특징이다. 따라서 Strategy를 '대표적인 구조 패턴'이라 한 설명이 틀리다. GoF 패턴의 목적별 분류(생성·구조·행위)와 Singleton의 정의는 옳다.

문제 14
애자일 개발 방법론과 관련한 설명으로 틀린 것은?     
1빠른 릴리즈를 통해 문제점을 빠르게 파악할 수 있다.
2정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다.
3고객과의 의사소통을 중요하게 생각한다.
4진화하는 요구사항을 수용하는데 적합하다.
정답 및 해설

애자일 방법론은 애자일 선언문에 따라 '포괄적인 문서보다 작동하는 소프트웨어'를 우선시하며, 계획 수립과 문서화보다 고객과의 협업 및 빠른 반복 개발에 중점을 둔다. 따라서 '정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다'는 설명이 틀리다. 빠른 릴리즈, 고객 소통, 변화하는 요구사항 수용은 애자일의 핵심 특징으로 옳다.

문제 15
럼바우(Rumbaugh)의 객체지향 분석 기법 중 자료 흐름도(DFD)를 주로 이용하는 것은?     
1기능 모델링
2동적 모델링
3객체 모델링
4정적 모델링
정답 및 해설

럼바우(Rumbaugh)의 객체지향 분석에서 기능 모델링은 시스템 내 데이터 처리 흐름을 자료 흐름도(DFD)로 표현하는 단계이다. 동적 모델링은 상태 다이어그램, 객체(정적) 모델링은 객체 다이어그램을 주로 사용한다.

문제 16
순차 다이어그램(Sequence Diagram)과 관련한 설명으로 틀린 것은?     
1객체들의 상호 작용을 나타내기 위해 사용한다.
2시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다.
3동적 다이어그램보다는 정적 다이어그램에 가깝다.
4교류 다이어그램(Interaction Diagram)의 한 종류로 볼 수 있다.
정답 및 해설

순차 다이어그램(Sequence Diagram)은 시간 흐름에 따른 객체 간 메시지 교환을 표현하는 동적(행위) 다이어그램이며 교류 다이어그램(Interaction Diagram)의 한 종류이다. 따라서 '정적 다이어그램에 가깝다'는 설명이 틀리다.

문제 17
객체지향 분석 기법과 관련한 설명으로 틀린것은?     
1동적 모델링 기법이 사용될 수 있다.
2기능 중심으로 시스템을 파악하며 순차적인처리가 중요시되는 하향식(Top-down)방식으로 볼 수 있다.
3데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업이라 할 수 있다.
4코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
정답 및 해설

객체지향 분석은 데이터와 행위(기능)를 하나의 객체로 묶어 처리하는 상향식(Bottom-up) 접근 방식이다. 반면 '기능 중심으로 순차적 처리가 중요시되는 하향식(Top-down)' 설명은 구조적 분석(Structured Analysis) 기법의 특징이므로 객체지향 분석 설명으로 틀리다. 나머지 동적 모델링 활용, 데이터·행위의 캡슐화·추상화, 재사용성에 의한 생산성 향상 설명은 옳다.

문제 18
대표적으로 DOS 및 Unix 등의 운영체제에서조작을 위해 사용하던 것으로, 정해진 명령문자열을 입력하여 시스템을 조작하는 사용자인터페이스(User Interface)는?     
1GUI(Graphical User Interface)
2CLI(Command Line Interface)
3CUI(Cell User Interface)
4MUI(Mobile User Interface)
정답 및 해설

정해진 명령문자열을 입력해 시스템을 조작하는 방식은 CLI(Command Line Interface)로, DOS 및 Unix 등에서 사용된 대표적인 문자 기반 인터페이스이다.

문제 19
분산 시스템에서의 미들웨어 (Middleware)와 관련한 설명으로 틀린 것은?     
1분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다.
2위치 투명성(Location Transparency)을 제공한다.
3분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다.
4애플리케이션과 사용자 사이에서만 분산서비스를 제공한다.
정답 및 해설

미들웨어(Middleware)는 애플리케이션과 사용자 사이뿐 아니라 분산 시스템의 여러 컴포넌트·시스템 간에도 통신과 데이터 교환을 중개하는 소프트웨어이다. 따라서 '애플리케이션과 사용자 사이에서만' 서비스를 제공한다는 설명이 틀리다. 위치 투명성 제공, 재사용 가능한 서비스 구현 제공 등 나머지 설명은 미들웨어의 특징으로 옳다.

문제 20
소프트웨어 아키텍처와 관련한 설명으로 틀린것은?     
1파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
2외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다.
3데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
4이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.
정답 및 해설

파이프-필터 아키텍처에서 데이터는 파이프를 통해 단방향으로 흐르며, 필터가 데이터를 변환·전달하는 과정에서 오버헤드가 발생할 수 있다. 따라서 '양방향으로 흐르며 오버헤드가 발생하지 않는다'는 설명이 틀리다. 소프트웨어 아키텍처의 정의, 데이터 중심 아키텍처의 접근자 간 통신 방식, 품질 속성 결정에 대한 나머지 설명은 옳다.

문제 21
테스트를 목적에 따라 분류했을 때,강도(Stress) 테스트에 대한 설명으로 옳은것은?     
1시스템에 고의로 실패를 유도하고 시스템이정상적으로 복귀하는지 테스트한다.
2시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 테스트한다.
3사용자의 이벤트에 시스템이 응답하는 시간,특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트한다.
4부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트한다.
정답 및 해설

강도(Stress) 테스트는 시스템에 정상 범위를 초과하는 과다한 정보량(부하)을 부과했을 때도 기능이 정상적으로 유지되는지 확인하는 테스트다. 이는 고의로 장애를 유발한 뒤 정상 복귀 여부를 보는 회복 테스트(①)나, 불법 침투 여부를 점검하는 보안 테스트(④)와는 목적이 다르다.

문제 22
다음 자료를 버블 정렬을 이용하여오름차순으로 정렬할 경우 PASS 3의 결과는?          
16, 3, 5, 7, 9
23, 5, 6, 7, 9
36, 7, 3, 5, 9
43, 5, 9, 6, 7
정답 및 해설

초기 자료는 9, 6, 7, 3, 5이며, 버블 정렬은 인접한 두 값을 비교해 앞 값이 크면 교환하는 과정을 반복한다. PASS 1에서 최댓값 9가 맨 뒤로 이동해 6, 7, 3, 5, 9가 되고, PASS 2에서 6, 3, 5, 7, 9가 된다. PASS 3에서는 6과 3 교환, 6과 5 교환이 일어나 3, 5, 6, 7, 9가 된다.

문제 23
다음 그래프에서 정점 A를 선택하여 깊이우선탐색(DFS)으로 운행한 결과는?          
1ABECDFG
2ABECFDG
3ABCDEFG
4ABEFGCD
정답 및 해설

DFS는 A에서 시작해 인접한 B를 먼저 방문한 뒤, B의 미방문 인접정점 E로 내려가고, 이어서 E-F, F-G로 깊이 우선 진행한다. G에서 더 갈 곳이 없으므로 되돌아와(백트래킹) F의 남은 인접정점 C를 방문하고, C와 연결된 D를 마지막으로 방문한다. 따라서 방문 순서는 A→B→E→F→G→C→D가 된다.

문제 24
다음 설명에 부합하는 용어로 옳은 것은?          
1통합 프로그램
2저장소
3모듈
4데이터
정답 및 해설

제시된 설명은 소프트웨어 구조를 이루는 독립적 기능 단위이고, 하나 또는 몇 개의 논리적 기능을 수행하는 명령어들의 집합이며, 여러 개가 모여 하나의 완전한 프로그램을 구성한다는 내용으로 모듈(Module)의 정의에 해당한다. 모듈은 프로그램을 기능 단위로 분할해 독립적으로 개발·검사할 수 있게 하는 소프트웨어 구성 요소다.

문제 25
테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?     
1시험대상 모듈을 호출하는 간이 소프트웨어이다.
2필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
3상향식 통합 테스트에서 사용된다.
4테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.
정답 및 해설

테스트 드라이버는 시험 대상 모듈을 호출하고 매개변수를 전달해 수행 결과를 확인하는 상위 모듈 역할의 테스트 도구로, 상향식 통합 테스트에서 사용된다. 반대로 시험 대상 모듈이 호출하는 하위 모듈의 역할을 대신하는 것은 테스트 스텁이므로, 이를 드라이버의 설명이라 한 것은 틀린 내용이다.

문제 26
다음 중 선형 구조로만 묶인 것은?     
1스택, 트리
2큐, 데크
3큐, 그래프
4리스트, 그래프
정답 및 해설

선형 구조는 자료가 순차적으로 연결되는 구조로 스택·큐·리스트·데크가 이에 속하며, 트리그래프는 비선형 구조다. 보기 중 큐와 데크만 모두 선형 구조에 해당한다.

문제 27
다음은 스택의 자료 삭제 알고리즘이다. ⓐ에 들어 갈 내용으로 옳은 것은? (단, Top: 스택포인터, S: 스택의 이름)          
1Overflow
2Top = Top + 1
3Underflow
4Top = Top
정답 및 해설

스택에서 원소를 삭제(pop)하기 전에는 스택이 비어 있는지 먼저 확인해야 하며, 스택 포인터 Top이 0이면 제거할 원소가 없는 공백 상태다. 이 경우 정상적으로 삭제 연산을 수행할 수 없으므로 Underflow 상태임을 알려야 한다.

문제 28
제품 소프트웨어의 사용자 매뉴얼 작성절차로 (가)~(다)와 [보기]의 기호를 바르게 연결한 것은?          
1(가)-㉠, (나)-㉡, (다)-㉢
2(가)-㉢, (나)-㉡, (다)-㉠
3(가)-㉠, (나)-㉢, (다)-㉡
4(가)-㉢, (나)-㉠, (다)-㉡
정답 및 해설

사용자 매뉴얼은 작성 지침을 정의한 뒤, 매뉴얼에 담길 구성 요소를 정의하고(㉢), 정의된 구성 요소별 내용을 작성하며(㉡), 마지막으로 완성된 사용 설명서를 검토하는(㉠) 순서로 진행된다. 따라서 (가)-㉢, (나)-㉡, (다)-㉠의 연결이 옳다.

문제 29
순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력한 후 출력한 결과로 불가능한 것은?     
1D, C, B, A
2B, C, D, A
3C, B, A, D
4D, B, C, A
정답 및 해설

스택은 후입선출 구조이므로, 어떤 원소보다 나중에 push된 원소가 먼저 출력된 다음에는 둘 사이에 push되어 스택에 남아 있는 원소부터 순서대로 나와야 한다. D, B, C, A는 D를 먼저 출력하려면 A, B, C, D를 모두 push한 뒤 D를 pop해야 하는데, 이때 스택에는 위에서부터 C, B, A가 남아 있어 B보다 C가 먼저 나올 수밖에 없다. 따라서 D 다음에 B가 출력되는 이 순서는 스택으로 만들 수 없다.

문제 30
소프트웨어 테스트에서 검증(Verification)과 확인 (Validation)에 대한 설명으로 틀린 것은?     
1소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
2검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트 하는 것이다.
3검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
4검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
정답 및 해설

검증(Verification)은 산출물이 명세된 요구사항(기능·비기능)을 올바르게 준수하는지, 즉 개발 과정과 결과가 명세대로 만들어졌는지를 확인하는 활동이며, 확인(Validation)은 실제 사용자의 요구에 부합하는지를 결과물로 테스트하는 활동이다. 사용자 요구 충족 여부는 확인이, 명세 준수 여부는 검증이 담당하는데, 이를 서로 뒤바꿔 설명했으므로 틀린 내용이다.

문제 31
개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?     
1통합 테스트(Integration Test)
2단위 테스트(Unit Test)
3시스템 테스트(System Test)
4인수 테스트(Acceptance Test)
정답 및 해설

단위 테스트(Unit Test)는 개별 모듈이 정확하게 구현되었는지, 설계된 기능을 예정대로 수행하는지를 모듈 단위로 독립적으로 점검하는 테스트이다. 통합 테스트는 모듈 간 인터페이스, 시스템 테스트는 전체 시스템 동작, 인수 테스트는 사용자 요구사항 충족 여부를 검증하는 것이 목적이므로 개별 모듈 검증과는 범위가 다르다.

문제 32
형상 관리의 개념과 절차에 대한 설명으로 틀린 것은?     
1형상 식별은 형상 관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
2형상 관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
3형상 통제 과정에서는 형상 목록의 변경 요구를 즉시 수용 및 반영해야 한다.
4형상 감사는 형상 관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구 사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동이다.
정답 및 해설

형상 통제는 형상통제위원회(CCB) 등의 심의·승인 절차를 거쳐 변경 요구의 수용 여부를 결정하고 통제하는 활동이며, 변경 요구를 즉시 수용 및 반영하는 것은 형상 관리의 기본 원칙에 어긋난다. 형상 식별과 형상 감사에 대한 설명은 각각 형상 항목 식별, 형상 변경의 적합성 점검이라는 정의에 부합해 옳다.

문제 33
소스코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?     
1소스 코드를 실행시키지 않고 분석한다.
2코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
3하드웨어적인 방법으로만 코드 분석이 가능하다.
4자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.
정답 및 해설

정적 분석(Static Analysis)은 소스 코드를 실행하지 않고 코드 자체의 자료 흐름·논리 흐름을 분석해 오류나 잠재적 결함을 찾아내는 소프트웨어적 검사 기법이다. 따라서 하드웨어적인 방법으로만 코드 분석이 가능하다는 설명은 정적 분석의 성격과 맞지 않다.

문제 34
소프트웨어 개발 활동을 수행함에 있어서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 것은?     
1Fault
2Testcase
3Mistake
4Inspection
정답 및 해설

오류(Error)로 인해 소프트웨어 내부에 존재하게 되는 결함을 Fault라 하며, 이 Fault가 실행 중 발현되면 시스템이 고장(Failure)을 일으킨다. 즉 Error → Fault → Failure의 관계이므로, 오류가 있을 때 발생하며 고장을 유발하는 대상은 Fault이다.

문제 35
코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?     
1공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
2복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
3빈 줄을 사용하여 선언부와 구현부를 구별한다.
4한 줄에 최대한 많은 문장을 코딩한다.
정답 및 해설

코드 간결성 지침은 한 줄에 하나의 문장만 기술해 가독성을 높이는 것을 원칙으로 하므로, 한 줄에 최대한 많은 문장을 코딩하는 것은 오히려 가독성을 해쳐 간결성 지침에 어긋난다. 공백·빈 줄·괄호와 들여쓰기를 통한 구분은 모두 간결성을 높이는 올바른 지침이다.

문제 36
소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력을 의미하는 것은?     
1Portability
2Efficiency
3Usability
4Correctness
정답 및 해설

이식성(Portability)은 하나 이상의 서로 다른 하드웨어 환경에서도 쉽게 수정되어 운용될 수 있는 소프트웨어의 능력을 의미한다. Efficiency(효율성)는 자원 사용의 경제성, Usability(사용성)는 사용 편의성, Correctness(정확성)는 요구사항 충족도를 나타내는 별개의 품질 특성이다.

문제 37
다음 중 최악의 경우 검색 효율이 가장 나쁜트리 구조는?     
1이진 탐색트리
2AVL 트리
32-3 트리
4레드-블랙 트리
정답 및 해설

이진 탐색 트리는 삽입 순서에 따라 균형이 무너져 편향(skewed) 트리가 될 수 있으며, 이 경우 검색 효율이 최악의 경우 O(N)까지 저하된다. 반면 AVL 트리·2-3 트리·레드-블랙 트리는 삽입·삭제 시 스스로 균형을 유지하도록 설계되어 최악의 경우에도 O(log N)의 검색 효율을 보장한다.

문제 38
다음 트리에 대한 중위 순회 운행 결과는?          
1ABDCEF
2ABCDEF
3DBECFA
4DBAECF
정답 및 해설

중위 순회(In-order traversal)는 좌측 부분트리 → 현재 노드 → 우측 부분트리 순서로 방문한다. 주어진 트리에서 A를 루트로 하여 순회하면: A의 좌측 부분트리는 B(자식 D, E)이고 우측 부분트리는 C(자식 F)이다. B 노드에서 좌측 자식 D를 먼저 방문하고(D 출력), B를 방문하고(B 출력), 우측 자식 E를 방문한다(E 출력). 그 후 A를 방문하고(A 출력), C의 좌측 부분트리가 없으므로 C를 방문한 후(C 출력), 우측 자식 F를 방문한다(F 출력). 따라서 중위 순회 결과는 D → B → E → A → C → FDBAECF이다.

문제 39
테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?     
1스터브(Stub)와 드라이버(Driver)
2입력 도메인 분석
3랜덤(Random) 테스트
4자료 흐름도
정답 및 해설

테스트 케이스 자동 생성 도구가 테스트 데이터를 찾아내는 방법에는 입력 도메인 분석, 랜덤(Random) 테스트, 자료 흐름도 분석 등이 있다. 스텁(Stub)과 드라이버(Driver)는 미완성 모듈을 대체해 통합 테스트를 실행하기 위한 테스트 하네스 도구로, 테스트 데이터(케이스)를 생성하는 방법이 아니다.

문제 40
저작권 관리 구성 요소 중 패키저(Packager)의 주요 역할로 옳은 것은?     
1콘텐츠를 제공하는 저작권자를 의미한다.
2콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는다.
3라이선스를 발급하고 관리한다.
4배포된 콘텐츠의 이용 권한을 통제한다.
정답 및 해설

DRM 구성 요소 중 패키저(Packager)는 콘텐츠를 유통 가능하도록 메타데이터와 함께 배포 단위(콘텐츠 패키지)로 묶는 역할을 한다. 콘텐츠 제공은 콘텐츠 제공자(Content Provider), 라이선스 발급·관리는 클리어링하우스, 배포된 콘텐츠의 이용 권한 통제는 DRM 컨트롤러의 역할이다.

문제 41
데이터베이스의 무결성 규정(Integrity Rule)과 관련한 설명으로 틀린 것은?     
1무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다.
2무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.
3정식으로 허가 받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다.
4릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이 션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)을 명세한 것이다.
정답 및 해설

무결성 규정은 데이터가 만족해야 할 도메인·키·종속성 등의 제약 조건을 다루어 데이터의 정확성과 일관성을 보장하기 위한 것이다.
정식으로 허가받지 않은 사용자에 의한 갱신으로부터 데이터베이스를 보호하는 것은 접근통제(보안)의 영역이지 무결성 규정의 정의가 아니므로 이 설명이 틀리다.

문제 42
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?     
1트랜잭션
2
3튜플
4카디널리티
정답 및 해설

트랜잭션은 하나의 논리적 기능을 수행하기 위한 작업의 단위, 즉 전부 수행되거나 전부 취소되어야 하는 일련의 연산 집합을 의미한다.
뷰는 가상 테이블, 튜플은 릴레이션의 행, 카디널리티는 튜플의 개수를 뜻하므로 정의에 해당하지 않는다.

문제 43

다음 두 릴레이션 Rl과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?

R1

학년
1
2
3

R2

학과
컴퓨터
국문
수학
1
2
3
4
정답 및 해설

카티션 프로덕트는 두 릴레이션의 튜플을 남김없이 모두 짝지어 만드는 연산이므로 결과는 3×3 = 9개 튜플이다.

R1은 학년 속성에 1, 2, 3 세 튜플을 갖고 R2는 학과 속성에 컴퓨터, 국문, 수학 세 튜플을 가지므로, 결과 릴레이션의 차수(degree)는 1+1=2, 카디널리티는 3×3=9가 된다.

따라서 학년 1에 컴퓨터·국문·수학, 학년 2에 컴퓨터·국문·수학, 학년 3에 컴퓨터·국문·수학이 각각 짝지어진 학년·학과 두 열, 아홉 행짜리 표가 옳다.

세 행짜리 표는 학년과 학과를 1-컴퓨터, 2-국문, 3-수학처럼 한 번씩만 대응시켰거나 특정 학년 하나에만 세 학과를 붙인 것이어서, 나머지 여섯 조합이 통째로 빠져 있다. 이는 곱집합이 아니라 일부만 골라낸 결과다.

문제 44
물리적 데이터베이스 설계에 대한 설명으로 거리가 먼 것은?     
1물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것이다.
2트랜잭션 처리량과 응답시간, 디스크 용량 등을 고려해야 한다.
3저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계한다.
4트랜잭션의 인터페이스를 설계하며, 데이터 타입 및 데이터 타입들 간의 관계로 표현한다.
정답 및 해설

물리적 데이터베이스 설계는 저장 레코드의 형식·순서·접근 경로, 트랜잭션 처리량·응답시간·디스크 용량 등 물리적 저장 구조를 결정하는 단계다.
반면 트랜잭션의 인터페이스를 설계하고 데이터 타입 및 데이터 타입 간의 관계로 표현하는 것은 논리적(개념적) 설계 단계의 내용이므로 물리적 설계와 거리가 멀다.

문제 45
다음 중 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?     
1개체 무결성 제약조건
2참조 무결성 제약조건
3도메인 무결성 제약조건
4속성 무결성 제약조건
정답 및 해설

개체 무결성 제약조건은 기본키를 구성하는 속성이 NULL 값을 가질 수 없고, 릴레이션 내에서 유일한 값이어야 한다는 규정이다.
참조 무결성은 외래키가 참조하는 기본키 값과 일치해야 한다는 규정이고, 도메인 무결성은 속성 값이 정의된 도메인 범위 내에 있어야 한다는 규정으로 서로 다르다.

문제 46
SQL문에서 HAVING을 사용할 수 있는 절은?     
1LIKE 절
2WHERE 절
3GROUP BY 절
4ORDER BY 절
정답 및 해설

HAVING절GROUP BY절로 그룹화된 결과 집합에 조건을 지정할 때 사용하는 절로, GROUP BY와 함께 사용된다.
WHERE절은 그룹화 이전의 개별 행 단위 조건에, ORDER BY절은 결과 정렬에 사용되므로 HAVING과 함께 쓰이지 않는다.

문제 47
관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?     
1디비전(Division)
2프로젝트(Project)
3조인(Join)
4포크(Fork)
정답 및 해설

관계 데이터베이스의 관계대수 연산에는 셀렉트·프로젝트·조인·디비전과 순수 집합 연산인 합집합·차집합·교집합·카티션 프로덕트 등이 있다.
포크(Fork)는 관계대수에 정의된 연산이 아니므로 해당하지 않는다.

문제 48
학적 테이블에서 전화번호가 Null값이 아닌 학생명을 모두 검색할 때, SQL 구문으로 옳은 것은?     
1SELECT FROM 07 WHERE 전화번호 DON'T NULL;
2SELECT FROM WHERE 전화번호 != NOT NULL;
3SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL;
4SELECT FROM WHERE 전화번호 IS NULL;
정답 및 해설

특정 컬럼 값이 NULL이 아닌 행을 조회할 때는 IS NOT NULL 연산자를 사용해야 하며, != NOT NULL이나 DON'T NULL 같은 구문은 SQL 문법에 존재하지 않는다.
SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL; 은 조회할 컬럼(학생명)과 테이블(학적)을 모두 명시하고 IS NOT NULL 조건을 올바르게 사용한 표준 SQL 구문이다.

문제 49
관계형 데이터베이스에서 다음 설명에 해당하는 키(Key)는?          
1후보키
2대체키
3슈퍼키
4외래키
정답 및 해설

이미지의 설명을 읽으면 "릴레이션의 모든 튜플을 유일하게 식별할 수 있는 속성의 집합"이라고 정의되어 있다. 이는 슈퍼키(Superkey)의 정의와 정확히 일치한다. 슈퍼키는 릴레이션의 모든 튜플을 고유하게 구별할 수 있는 하나 이상의 속성 조합으로, 후보키보다 큰 개념이며 불필요한 속성을 포함할 수 있다. 후보키는 최소성을 만족하는 슈퍼키이고, 대체키는 기본키가 아닌 후보키이며, 외래키는 다른 릴레이션의 기본키를 참조하는 속성이므로 모두 다른 개념이다.

문제 50
데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?     
1인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
2B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
3BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
4시스템이 자동으로 생성하여 사용자가 변경할 수 없다.
정답 및 해설

인덱스는 사용자가 CREATE INDEX 문으로 직접 생성하고 DROP INDEX 등으로 삭제·변경할 수 있으므로, 시스템이 자동 생성하여 사용자가 변경할 수 없다는 설명은 틀리다.
검색 성능 최적화가 목적이라는 점, B-트리 인덱스가 분기용 Branch Block을 가진다는 점, BETWEEN 같은 범위 검색에 활용된다는 점은 모두 인덱스의 올바른 특성이다.

문제 51
로킹 단위(Locking Granularity)에 대한 설명으로 옳은 것은?     
1로킹 단위가 크면 병행성 수준이 낮아진다.
2로킹 단위가 크면 병행 제어 기법이 복잡해진다.
3로킹 단위가 작으면 로크(lock)의 수가 적어진다.
4로킹은 파일 단위로 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다.
정답 및 해설

로킹 단위(Locking Granularity)가 크면 한 번의 로크로 넓은 범위(예: 파일·테이블)를 잠그므로 로크의 수는 적어지고 관리는 단순해지지만, 동시에 그 자원에 접근하려는 다른 트랜잭션이 대기해야 하므로 병행성 수준이 낮아진다.
반대로 로킹 단위가 작아지면(필드·레코드 단위) 병행성은 높아지지만 로크의 수가 늘어 관리가 복잡해지며, 로킹은 필드·레코드·페이지·테이블·파일 등 여러 단위로 적용될 수 있다.

문제 52
관계 대수에 대한 설명으로 틀린 것은?     
1원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
2릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
3일반 집합 연산과 순수 관계 연산으로 구분된다.
4질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
정답 및 해설

관계대수(Relational Algebra)는 원하는 결과를 얻기 위해 수행해야 할 연산의 순서(절차)를 명시하는 절차적 언어이며, 릴레이션을 피연산자와 결과로 하는 연산의 집합으로 일반 집합 연산과 순수 관계 연산으로 구분된다.
"원하는 릴레이션을 정의하는 방법만 제공하며 비절차적"이라는 설명은 관계대수가 아니라 관계해석(Relational Calculus)의 특징이므로 틀린 설명이다.

문제 53
데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 무엇이라 하는가?     
1이상(Anomaly)
2제한 (Restriction)
3종속성(Dependency)
4변환(Translation)
정답 및 해설

하나의 사실이 여러 릴레이션이나 튜플에 중복 저장되어 있을 때, 삽입·삭제·갱신 연산 과정에서 데이터 불일치나 예기치 못한 부작용이 발생하는 현상을 이상(Anomaly)이라 한다.
정규화는 이러한 삽입 이상·삭제 이상·갱신 이상을 제거하기 위해 수행하는 과정이다.

문제 54
다음 중 SQL에서의 DDL 문이 아닌 것은?     
1CREATE
2DELETE
3ALTER
4DROP
정답 및 해설

DDL(Data Definition Language)은 테이블 등 스키마 객체를 정의·변경·삭제하는 언어로 CREATE·ALTER·DROP이 이에 속한다.
반면 DELETE는 저장된 데이터(튜플)를 조작하는 명령으로 INSERT·UPDATE·SELECT와 함께 DML(Data Manipulation Language)에 속하므로 DDL이 아니다.

문제 55
정규화에 대한 설명으로 적절하지 않은 것은?     
1데이터베이스의 개념적 설계 단계 이전에 수행한다.
2데이터 구조의 안정성을 최대화한다.
3중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
4데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
정답 및 해설

정규화(Normalization)는 요구사항 분석 후 만들어진 개념적 스키마(E-R 모델)를 바탕으로 논리적 설계 단계에서 릴레이션을 분해·재구성하며 수행되는 절차로, 개념적 설계 단계 이전에 수행되는 것이 아니다.
정규화는 데이터 중복을 배제해 삽입·삭제·갱신 이상을 방지하고 데이터 구조의 안정성을 높이며, 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄이는 것이 목적이므로 이 부분은 옳은 설명이다.

문제 56
트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?     
1Log
2Consistency
3Isolation
4Durability
정답 및 해설

트랜잭션의 ACID 특성 중 Isolation(고립성)은 여러 트랜잭션이 동시에 병행 실행되더라도 한 트랜잭션의 실행 중간 결과를 다른 트랜잭션이 참조하거나 끼어들 수 없도록 보장하는 특성이다.
Atomicity(원자성)·Consistency(일관성)·Durability(지속성)와 함께 트랜잭션의 4대 특성을 이루며, 이 문제의 정의는 그중 고립성에 해당한다.

문제 57
SQL의 논리 연산자가 아닌 것은?     
1AND
2OTHER
3OR
4NOT
정답 및 해설

SQL의 논리 연산자는 조건을 결합·부정하는 데 쓰이는 AND·OR·NOT 세 가지이며, OTHER는 SQL에서 정의된 논리 연산자가 아니다.

문제 58
동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법은?     
1로킹 기법
2타임스탬프 기법
3검증 기법
4배타 로크 기법
정답 및 해설

타임스탬프 기법(Timestamp Ordering)은 트랜잭션이 시작되기 전에 고유한 타임스탬프를 부여하여 그 순서대로 트랜잭션이 실행된 것과 동일한 결과가 되도록 직렬화 순서를 미리 정해 병행 제어를 수행하는 기법이다.
이는 트랜잭션이 자원을 획득한 뒤 충돌을 검사하는 로킹 기법이나, 실행이 끝난 후 검증하는 검증(낙관적) 기법과 구분된다.

문제 59
이전 단계의 정규형을 만족하면서 후보키를 통하지 않는 조인 종속(JD : Join Dependency) 제거해야 만족하는 정규형은?     
1제3정규형
2제4정규형
3제5정규형
4제6정규형
정답 및 해설

이전 단계(제4정규형)의 정규형 조건을 만족하면서, 후보키를 통하지 않는 조인 종속(Join Dependency)을 제거해야 만족하는 정규형은 제5정규형(5NF, PJ/NF)이다.
제5정규형은 릴레이션의 모든 조인 종속이 후보키를 통해서만 성립하도록 무손실 분해가 이루어진 상태를 의미한다.

문제 60
어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라고 한다. 이 함수 종속의 표기로 옳은 것은?     
1Y → X
2Y ⊂ X
3X → Y
4X ⊂ Y
정답 및 해설

애트리뷰트 집합 X의 값에 대응하는 Y의 값이 시간에 관계없이 항상 유일하게 결정될 때, 이를 함수 종속(Functional Dependency)이라 하며 X → Y로 표기하고 "Y는 X에 함수 종속이다" 또는 "X가 Y를 함수적으로 결정한다"라고 읽는다.
이때 X를 결정자(Determinant), Y를 종속자(Dependent)라 한다.

문제 61
모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우의 응집도(Cohesion)는?     
1Temporal Cohesion
2Logical Cohesion
3Coincidental Cohesion
4Sequential Cohesion
정답 및 해설

시간적 응집도(Temporal Cohesion)는 서로 다른 기능을 수행하는 요소들이 특정 시간대에 함께 실행되도록 묶인 경우에 해당한다.
초기화·종료 처리처럼 실행 시점만 같을 뿐 기능적 연관성은 없는 모듈이 대표적인 예다.
기능 간 연관성이 전혀 없이 우연히 묶인 우연적 응집도보다는 강하지만, 실행 순서·데이터 흐름으로 연결된 순차적 응집도보다는 약하다.

문제 62
오류 제어에 사용되는 자동반복 요청방식(ARQ)이 아닌 것은?     
1Stop-and-wait ARQ
2Go-back-N ARQ
3Selective-Repeat ARQ
4Non-Acknowledge ARQ
정답 및 해설

오류 제어에 쓰이는 ARQ(자동반복요청) 방식으로는 Stop-and-wait ARQ·Go-back-N ARQ·Selective-Repeat ARQ(및 적응적 ARQ)가 있으며, 모두 수신측 응답을 확인해 오류 발생 시 프레임을 재전송하는 기법이다.
Non-Acknowledge ARQ는 실재하는 ARQ 방식이 아니다.

문제 63
다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?          
145
255
366
478
정답 및 해설

함수 cs(n)은 s=0에서 시작해 range(n+1)의 0부터 n까지를 모두 더해 반환하므로, cs(11)은 0+1++11=660+1+\cdots+11 = 66을 계산한다.
따라서 print(cs(11))의 출력은 66이다.

문제 64
다음 C언어 프로그램이 실행되었을 때의 결과는?          
1nation
2nationalter
3alter
4alternation
정답 및 해설

strcat(str, p2)는 str에 저장된 문자열 "nation" 뒤에 p2가 가리키는 문자열 "alter"를 이어붙이는 함수다.
따라서 str은 "nationalter"가 되고 printf("%s", str)의 출력은 nationalter이다.

문제 65
JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은?     
1Heap Collector
2Garbage Collector
3Memory Collector
4Variable Collector
정답 및 해설

가비지 컬렉터(Garbage Collector)는 JAVA 힙 영역에서 더 이상 참조되지 않는(참조값을 잃거나 참조 변수 자체가 사라진) 객체를 자동으로 탐지해 회수하는 모듈이다.
개발자가 직접 메모리를 해제하지 않아도 되게 하는 JAVA의 자동 메모리 관리 기능이다.

문제 66
다음 C언어 프로그램이 실행되었을 때의 결과는?          
10
21
32
43
정답 및 해설

r1은 b<=4(참)가 성립해 1, r2는 a>0(참)과 b<5(참)이 모두 성립해 1이 되며, r3는 c가 2로 0이 아니므로 !c 결과가 0이 된다.
따라서 printf("%d", r1+r2+r3)의 출력은 1+1+0 = 2이다.

문제 67
다음 중 JAVA에서 우선순위가 가장 낮은 연산자는?     
1--
2%
3&
4=
정답 및 해설

JAVA 연산자 우선순위에서 대입 연산자(=)는 모든 연산자 중 가장 낮은 우선순위를 가진다.
증감 연산자(--), 산술 연산자(%), 비트 AND 연산자(&)는 모두 대입 연산자보다 먼저 계산되는 상위 우선순위 연산자다.

문제 68
사용자가 요청한 디스크 입·출력 내용이 다음과 같은 순서로 큐에 들어 있을 때 SSTF 스케쥴링을 사용한 경우의 처리 순서는? (단, 현재 헤드 위치는 53 이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)          
153-65-67-37-14-98-122-124-183
253-98-183-37-122-14-124-65-67
353-37-14-65-67-98-122-124-183
453-67-65-124-14-122-37-183-98
정답 및 해설

SSTF(Shortest Seek Time First)는 현재 헤드 위치에서 탐색 거리가 가장 짧은 요청을 우선 처리하는 디스크 스케줄링 기법이다.
헤드 위치 53에서 시작해 매 단계 가장 가까운 트랙을 선택하면 53→65(거리12)→67(거리2)→37(거리30)→14(거리23)→98(거리84)→122(거리24)→124(거리2)→183 순으로 처리된다.

문제 69
192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이 때 Subnetting 된 네트워크 중 4번째 네트워크의 4번째 사용가능한 IP는 무엇인가?     
1192.168.1.192
2192.168.1.195
3192.168.1.196
4192.168.1.198
정답 및 해설

192.168.1.0/24를 4개의 서브넷으로 나누려면 2비트를 추가로 빌려 /26(블록 크기 64)으로 분할하며, subnet-zero를 적용하면 네 번째 네트워크는 192.168.1.192/26(192~255) 대역이 된다.
이 대역에서 네트워크 주소(.192)를 제외한 첫 사용 가능 IP부터 세면 .193·.194·.195·.196 순이므로 네 번째 사용 가능 IP는 192.168.1.196이다.

문제 70
C Class에 속하는 IP address는?     
1200.168.30.1
210.3.2.1 4
3225.2.4.1
4172.16.98.3
정답 및 해설

IP 주소 클래스는 첫 옥텟 값으로 구분되며 C 클래스는 192~223 범위에 해당한다.
200.168.30.1의 첫 옥텟 200이 이 범위에 속해 C 클래스이고, 10.3.2.14는 A클래스(1~126), 172.16.98.3은 B클래스(128~191), 225.2.4.1은 D클래스(224~239)에 해당한다.

문제 71
다음 C언어 프로그램이 실행되었을 때의 결과는?          
10
24
38
412
정답 및 해설

이미지의 C 코드를 읽으면, 정수형 배열 arr에 {1, 2, 3, 4}가 저장되고, 포인터 p가 arr을 가리킨다. 반복문에서 p++는 포인터를 다음 요소로 이동시키는데, 정수형 포인터이므로 4바이트씩 증가한다(32비트 정수 기준). 루프는 i가 0부터 2까지(3번) 실행되므로, p는 arr[0]에서 arr[3]까지 이동하며 3번 증가한다. 포인터 산술에서 p++를 3번 수행하면 메모리 주소가 12바이트 증가하므로, (p - arr)은 3이 되고, 이를 4로 곱하면 3 × 4 = 12가 아니라, (p - arr)은 배열 인덱스 단위로 계산되므로 최종 결과는 2 × 4 = 8이다. 루프 조건 i < 2에서 i는 0, 1만 실행되므로 p는 2번 증가하여 arr[2]를 가리키게 되고, (p - arr) = 2, 2 × 4 = 8이다.

문제 72
귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?     
1C++
2JAVA
3C#
4Python
정답 및 해설

Python귀도 반 로섬(Guido van Rossum)이 발표한 인터프리터 방식의 객체지향 스크립트 언어로, 문법이 간결해 배우기 쉽고 다양한 플랫폼에서 동작하는 이식성을 갖춘 것이 특징이다. C++·JAVA·C#은 모두 컴파일 기반 언어이거나 귀도 반 로섬과 무관한 언어이므로 해당하지 않는다.

문제 73

다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.

public class ovr {
public static void main(String [] arge) {
int arr[];
int i = 0;
arr = new int[10];
arr[0] = 0;
arr[1] = 1;
while(i<8) {
arr[i+2] = arr[i+1] + arr[i];
i++;
}
System.out.println(arr[9]);
}
}
113
221
334
455
정답 및 해설

배열이 피보나치 수열로 채워지고 마지막에 인덱스 9의 값을 출력하므로 결과는 34다.

arr[0]=0, arr[1]=1로 시작해 i가 0부터 7까지 여덟 번 도는 동안 arr[i+2] = arr[i+1] + arr[i] 를 수행하므로 arr[2]부터 arr[9]까지가 앞의 두 값을 더한 값으로 채워진다.

차례로 계산하면 arr = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 가 되고, 출력 대상인 arr[9]는 21+13 = 34다.

21은 arr[8], 13은 arr[7]의 값이므로 반복 횟수를 하나 적게 세면 나오는 값이고, 출력되는 값은 아니다.

문제 74
프로세스와 관련한 설명으로 틀린 것은?     
1프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
2프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
3이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
4프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
정답 및 해설

스레드(Thread)프로세스(Process) 내에서 실행되는 흐름의 단위이며, 스레드는 프로세스와 달리 독자적인 주소 공간을 갖지 않고 프로세스의 자원을 공유하되 실행을 위한 스택(Stack)은 개별적으로 갖는다. 프로세스가 스레드 내에서 실행되며 실행 스택이 없다는 설명은 주체와 특성이 뒤바뀐 틀린 설명이다.

문제 75
모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?     
1오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
2인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
3모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
4다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
정답 및 해설

모듈 간에 변수를 공유하거나 제어 정보를 교류하는 방식(공통 결합·제어 결합)은 모듈 간 의존성을 높여 오히려 결합도(Coupling)를 증가시키는 요인이며, 결합도를 낮추려면 전역변수 대신 매개변수를 통한 자료 전달처럼 모듈 간 상호작용을 최소화해야 한다. 변수·제어 정보 공유로 결합도를 낮춘다는 설명은 결합도의 원리와 반대되는 틀린 설명이다.

문제 76
TCP헤더와 관련한 설명으로 틀린 것은?     
1순서번호(Sequence Number)는 전달하는 바이트마다 번호가 부여된다.
2수신번호확인(Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호를 정의한다.
3체크섬(Checksum)은 데이터를 포함한 세그먼트의 오류를 검사한다.
4윈도우 크기는 송수신 측의 버퍼 크기로 최대크기는 32767bit 이다.
정답 및 해설

TCP 헤더의 윈도우 크기(Window Size) 필드는 16비트로 구성되어 최대값이 65,535바이트이며, 32767bit라는 수치는 필드 길이·단위 모두 사실과 다르다. 순서번호·수신번호확인·체크섬에 대한 설명은 모두 TCP 헤더의 실제 기능과 일치한다.

문제 77
모듈화(Modularity)와 관련한 설명으로 틀린 것은?     
1소프트웨어의 모듈은 프로그래밍 언어에서 Subroutine, Function 등으로 표현될 수 있다.
2모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다.
3모듈화는 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도 문제를 해결하는 데 도움을 준다.
4모듈화는 시스템의 유지보수와 수정을 용이하게 한다.
정답 및 해설

모듈의 수가 증가하면 개별 모듈의 크기는 상대적으로 작아지고 모듈 간 상호교류(인터페이스)는 증가하여 과부하 현상이 나타나므로, 모듈 수가 증가하면 모듈 크기가 커지고 상호교류가 감소한다는 설명은 관계가 반대로 서술된 틀린 설명이다. 모듈화가 시스템 복잡도 해결과 유지보수 용이성에 기여한다는 나머지 설명은 모두 타당하다.

문제 78
다음 중 페이지 교체(Page Replacement)알고리즘이 아닌 것은?     
1FIFO(First-In-First-Out)
2LUF(Least Used First)
3Optimal
4LRU(Least Recently Used)
정답 및 해설

페이지 교체 알고리즘에는 FIFO·LRU·LFU(Least Frequently Used)·Optimal 등이 있으며, 가장 적게 사용된 페이지를 교체하는 기법은 LFU로 정의된다. LUF(Least Used First)라는 명칭은 실제 존재하는 페이지 교체 알고리즘이 아니다.

문제 79
C언어에서의 변수 선언으로 틀린 것은?     
1int else;
2int Test2;
3int pc;
4int True;
정답 및 해설

else는 C언어의 조건문에 사용되는 예약어(키워드)이므로 식별자(변수명)로 사용할 수 없어 int else; 는 잘못된 선언이다. Test2·pc·True는 예약어와 무관한 유효한 식별자이므로 변수 선언에 문제가 없다.

문제 80
파일 디스크립터(File Descriptor)에 대한 설명으로 틀린 것은?     
1파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
2보조기억장치에 저장되어 있다가 파일이 개방(open)되면 주기억장치로 이동된다.
3사용자가 파일 디스크립터를 직접 참조할 수 있다.
4파일 제어 블록(File Control Block)이라고도 한다.
정답 및 해설

파일 디스크립터(File Descriptor), 즉 파일 제어 블록(File Control Block)은 파일 관리에 필요한 정보를 담아 운영체제가 관리하는 영역으로, 평소 보조기억장치에 있다가 파일이 개방되면 주기억장치로 옮겨지며 사용자가 직접 참조할 수 없고 시스템(운영체제)을 통해서만 접근된다.

문제 81
침입탐지 시스템(IDS : Intrusion Detection System)과 관련한 설명으로 틀린 것은?     
1이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단한다.
2HIDS(Host-Based Intrusion Detection)는 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적한다.
3NIDS(Network-Based Intrusion Detection System)로는 대표적으로 Snort가 있다.
4외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다.
정답 및 해설

이상 탐지(Anomaly Detection)는 정상 행위의 통계적 프로파일을 기준으로 이를 벗어나는 비정상 패턴을 탐지하는 기법인데, 지문의 설명(Signature Base·Knowledge Base, 이미 정립된 공격 패턴 매칭)은 실제로는 오용 탐지(Misuse Detection)에 해당한다. 나머지 보기는 각각 HIDS의 계정별 접근 기록, Snort를 대표로 하는 NIDS, DMZ 내 IDS 설치 가능성으로 모두 옳은 설명이다.

문제 82
정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은?     
1Mandatory Access Control
2User Access Control
3Discretionary Access Control
4Data-Label Access Control
정답 및 해설

강제적 접근 통제(Mandatory Access Control, MAC)는 주체와 객체 각각에 부여된 보안 레이블(Security Label)을 비교해, 높은 보안 등급의 정보가 낮은 등급의 주체에게 노출되지 않도록 강제하는 접근 제어 방식이다. 소유자가 임의로 권한을 부여하는 DAC(임의적 접근 통제)와 달리, MAC은 시스템(관리자)이 정한 보안 등급 규칙에 따라 접근 여부가 결정된다.

문제 83
구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Leaming)을 위한 오픈소스 소프트웨어 라이브러리는?     
1타조(Tajo)
2원 세그(One Seg)
3포스퀘어(Foursquare)
4텐서플로(TensorFlow)
정답 및 해설

텐서플로(TensorFlow)는 구글 브레인 팀이 개발해 공개한 기계 학습·딥러닝용 오픈소스 라이브러리로, 데이터 흐름 그래프 기반의 수치 연산을 지원한다. 타조·원 세그·포스퀘어는 각각 데이터 처리 엔진, 방송 규격, 위치 기반 SNS 서비스로 기계 학습 라이브러리가 아니다.

문제 84
국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영환경으로 구성되어 있는 개방형 클라우드 컴퓨팅 플랫폼은?     
1N20S
2PaaS-TA
3KAWS
4Metaverse
정답 및 해설

PaaS-TA는 국내 IT 서비스 경쟁력 강화를 목표로 개발된 개방형 클라우드 컴퓨팅 플랫폼(PaaS)으로, 인프라 제어·관리, 실행, 개발, 서비스, 운영 환경으로 구성된다. N20S·KAWS·Metaverse는 이러한 국산 클라우드 플랫폼과 무관한 용어이다.

문제 85
정보 보안을 위한 접근 제어(Access Control)과 관련한 설명으로 틀린 것은?     
1적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것이다.
2시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 볼 수 있다.
3DBMS에 보안 정책을 적용하는 도구인 XDMCP를 통해 데이터베이스에 대한 접근제어를 수행할 수 있다.
4네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근제어와 ACL(Access Control List) 등 있다.
정답 및 해설

XDMCP(X Display Manager Control Protocol)는 X 윈도우 시스템에서 원격 디스플레이 세션을 관리하기 위한 프로토콜로, DBMS 보안 정책을 적용하는 도구가 아니다. 나머지 보기는 각각 인가자 통제라는 접근 제어의 정의, IP·포트 기반 통제, 네트워크 장비의 관리 인터페이스·ACL 통제로 모두 옳은 설명이다.

문제 86
소프트웨어 개발 프레임워크와 관련한 설명으로 틀린 것은?     
1반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장 받을 수 있게하는 개발 소프트웨어이다.
2개발해야 할 애플리케이션의 일부분이 이미구현되어 있어 동일한 로직 반복을 줄일 수있다.
3라이브러리와 달리 사용자 코드가 직접호출하여 사용하기 때문에 소프트웨어 개발프레임워크가 직접 코드의 흐름을 제어할수 없다.
4생산성 향상과 유지보수성 향상 등의장점이 있다.
정답 및 해설

소프트웨어 개발 프레임워크는 제어의 역전(IoC, Inversion of Control) 원칙에 따라 프레임워크가 전체 실행 흐름을 제어하며 필요한 시점에 사용자(개발자)가 작성한 코드를 호출하는 구조이다. 지문은 이를 반대로, 사용자 코드가 직접 호출하여 프레임워크가 흐름을 제어할 수 없다고 서술하고 있어 틀린 설명이다.

문제 87
물리적 배치와 상관없이 논리적으로 LAN을구성하여 Broadcast Domain을 구분할 수있게 해주는 기술로 접속된 장비들의 성능향상 및 보안성 증대 효과가 있는 것은?     
1VLAN
2STP
3L2AN
4ARP
정답 및 해설

VLAN(Virtual LAN)은 스위치의 포트를 논리적으로 그룹화해 물리적 배치와 무관하게 브로드캐스트 도메인을 분리하는 기술로, 트래픽 감소를 통한 성능 향상과 네트워크 간 격리를 통한 보안성 증대 효과를 제공한다. STP는 루프 방지용 프로토콜, ARP는 IP-MAC 주소 변환 프로토콜로 브로드캐스트 도메인 분리 기능과는 무관하다.

문제 88
SQL Injection 공격과 관련한 설명으로 틀린것은?     
1SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
2SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
3DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
4로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
정답 및 해설

SQL Injection의 기본 개념(임의 SQL 구문 삽입, 웹-DB 연동 구간에서 발생, 사용자 입력값을 통한 공격)은 DBMS 종류에 관계없이 공통되지만, 실제 구체적 공격 기법과 문법(주석 처리 방식, 내장 함수, 오류 메시지 형식 등)은 MySQL·Oracle·MSSQL 등 DBMS마다 차이가 있다. 따라서 공격 기법이 모두 동일하다는 설명은 틀린 설명이다.

문제 89
비대칭 암호화 방식으로 소수를 활용한암호화 알고리즘은?     
1DES
2AES
3SMT
4RSA
정답 및 해설

RSA는 큰 수의 소인수분해가 어렵다는 수학적 특성을 이용한 대표적인 비대칭(공개키) 암호화 알고리즘이다. DES와 AES는 대칭키 암호화 알고리즘이고, SMT는 암호화 알고리즘이 아니다.

문제 90
다음에서 설명하는 IT 스토리지 기술은?          
1Software Defined Storage
2Distribution Oriented Storage
3Network Architected Storage
4Systematic Network Storage
정답 및 해설

이미지의 설명을 읽으면 소프트웨어 기반의 스토리지 관리, 하드웨어와 소프트웨어 분리, 가상화를 통한 유연한 확장 등의 특징이 보입니다. 이는 Software Defined Storage(SDS)의 핵심 개념으로, 스토리지 인프라를 소프트웨어로 정의하고 제어하여 하드웨어 종속성을 제거하는 기술입니다. Distribution Oriented Storage는 분산 저장 기술, Network Architected Storage와 Systematic Network Storage는 실제 표준 용어가 아니며, SDS만이 스토리지 가상화와 소프트웨어 중심 관리라는 현대 스토리지 아키텍처 표준을 나타냅니다.

문제 91
Cocomo model 중 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술계산용, 비즈니스 자료 처리용으로 5만 라인이하의 소프트웨어를 개발하는 유형은?     
1Embeded
2Organic
3Semi-detached
4Semi-embeded
정답 및 해설

COCOMO 모형은 규모와 특성에 따라 Organic(조직형)·Semi-detached(반분리형)·Embedded(내장형)으로 구분된다. Organic형은 기관 내부에서 개발되는 중소규모 소프트웨어로 일괄 자료처리·과학기술계산·비즈니스 자료처리용이며 5만 라인(50KDSI) 이하 규모를 대상으로 한다.

문제 92
다음 내용이 설명하는 것은?          
1Format String
2Ransomware
3Buffer overflow
4Adware
정답 및 해설

랜섬웨어(Ransomware)는 사용자의 파일이나 시스템을 암호화하여 사용할 수 없게 만든 뒤, 이를 복구해 주는 대가로 금품을 요구하는 악성 프로그램이다. Format String은 서식 문자열 처리 취약점, Buffer overflow는 메모리 경계를 벗어난 값 기록으로 발생하는 취약점, Adware는 광고성 소프트웨어를 가리키므로 금품 요구를 목적으로 하는 설명과는 구별된다.

문제 93
생명주기 모형 중 가장 오래된 모형으로 많은적용 사례가 있지만 요구사항의 변경이어렵고 각 단계의 결과가 확인 되어야 다음단계로 넘어갈 수 있는 선형 순차적, 고전적생명 주기 모형이라고도 하는 것은?     
1Waterfall Model
2Prototype Model
3Cocomo Model
4Spiral Model
정답 및 해설

Waterfall Model(폭포수 모형)은 가장 오래된 소프트웨어 생명주기 모형으로, 요구분석·설계·구현·시험 등 각 단계를 순차적으로 진행하며 한 단계의 결과가 확인되어야 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다. 개발 도중 요구사항 변경이나 보완이 어렵다는 한계가 있어 고전적 생명주기 모형이라고도 불린다.

문제 94
소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 틀린 것은?     
1비교적 대규모 시스템에 적합하다.
2개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
3소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
4계획, 설계, 개발, 평가의 개발 주기가 한번만 수행된다.
정답 및 해설

Spiral Model(나선형 모형)은 계획 및 정의·위험 분석·공학적 개발·고객 평가의 주기를 여러 번 반복하며 점진적으로 완성도를 높이는 모형으로, 대규모 시스템에서 발생할 수 있는 위험을 관리·최소화하는 데 목적이 있다. 따라서 "개발 주기가 한 번만 수행된다"는 설명은 나선형 모형의 반복적 특성에 반하므로 틀린 설명이다.

문제 95
특정 사이트에 매우 많은 ICMP Echo를 보내면, 이에 대한 응답(Respond)을 하기 위해 시스템 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격방법은?     
1Role-Based Access Control
2Ping Flood
3Brute-Force
4Trojan Horses
정답 및 해설

Ping Flood는 다량의 ICMP Echo Request를 대상 시스템에 전송해 그 응답 처리에 필요한 시스템 자원을 고갈시켜 정상적인 서비스를 방해하는 서비스 거부(DoS) 공격이다. Brute-Force는 인증정보를 무차별 대입으로 알아내는 공격이므로 자원 고갈을 통한 시스템 마비와는 공격 방식이 다르다.

문제 96
TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜로 최근 IoT 환경에서 자주 사용되고 있는 프로토콜은?     
1MLFQ
2MQTT
3Zigbee
4MTSP
정답 및 해설

MQTT(Message Queuing Telemetry Transport)는 TCP/IP 기반 네트워크에서 동작하는 발행-구독(Publish-Subscribe) 방식의 경량 메시징 프로토콜로, 대역폭과 자원이 제한된 IoT 환경의 기기 간 통신에 널리 사용된다.

문제 97
시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근권한도 얻는 시스템을 의미하는 것은?     
1SOS
2SBO
3SSO
4SOA
정답 및 해설

SSO(Single Sign-On)는 한 번의 사용자 인증만으로 여러 시스템 및 서비스에 대한 접근 권한을 함께 획득할 수 있게 하는 통합 인증 체계이다.

문제 98
시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과 값으로 저장된다. 이때 암호공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미하는 것은?     
1Pass flag
2Bucket
3Opcode
4Salt
정답 및 해설

Salt는 패스워드를 해시 또는 암호화하여 저장할 때 원본 값에 추가로 부여하는 임의의 값으로, 동일한 패스워드라도 서로 다른 암호화 결과값이 저장되도록 하여 레인보우 테이블 등을 이용한 암호 공격을 방어한다.

문제 99
S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?     
1Effort Per Task기법
2전문가 감정 기법
3델파이기법
4LOC기법 1
정답 및 해설

LOC 기법은 소프트웨어 각 기능의 원시 코드 라인 수에 대한 낙관치·비관치·기대치(중간치)를 측정한 뒤, 예측치=a+4m+b6\text{예측치}=\frac{a+4m+b}{6}(a=낙관치, m=기대치, b=비관치) 공식으로 예상 라인 수를 구하고 이를 바탕으로 비용을 산정하는 기법이다.

문제 100
오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?     
1WWW
2OWASP
3WBSEC
4ITU
정답 및 해설

OWASP(Open Web Application Security Project)는 웹 애플리케이션을 통한 정보 유출, 악성 스크립트, 보안 취약점 등을 연구하고 웹 보안 표준(OWASP Top 10 등)을 제시하는 개방형 웹 애플리케이션 보안 프로젝트이다.

정보처리기사 필기 기출문제모두CBT · moducbt.com

21년-3회차-정보처리기사-필기

100문항 · 객관식 · 정답·해설 포함
문제 1
요구사항 검증(Requirements Validation)과 관련한 설명으로 틀린 것은?    
1요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정이다.
2개발완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요하다.
3요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검한다.
4요구사항 검증 과정을 통해 모든 요구사항 문제를 발견할 수 있다.
정답 및 해설

요구사항 검증은 고객이 정말 원하는 시스템을 제대로 정의했는지, 문서화된 요구사항들이 서로 상충하지 않는지 점검하는 활동이지만, 검토·인스펙션 등 어떤 기법을 적용하더라도 요구사항의 모든 문제를 완전히 발견한다고 보장할 수는 없다.
따라서 모든 요구사항 문제를 발견할 수 있다는 설명은 틀린 진술이다.

문제 2
UML 모델에서 한 사물의 명세가 바뀌면 다른사물에 영향을 주며, 일반적으로 한 클래스가다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우에 나타나는 관계는?    
1Association
2Dependency
3Realization
4Generalization
정답 및 해설

한 클래스의 명세가 바뀔 때 그것을 오퍼레이션의 매개변수로 사용하는 다른 클래스가 영향을 받는 관계는 의존(Dependency)이다.
연관(Association)은 지속적인 구조적 관계, 일반화(Generalization)는 상속 관계, 실체화(Realization)는 인터페이스 구현 관계로 이 설명과는 다르다.

문제 3
익스트림 프로그래밍 (XP)에 대한 설명으로 틀린 것은?    
1빠른 개발을 위해 테스트를 수행하지 않는다.
2사용자의 요구사항은 언제든지 변할 수있다.
3고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다.
4기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수있다.
정답 및 해설

익스트림 프로그래밍(XP)은 테스트 주도 개발(TDD)과 짝 프로그래밍을 핵심 실천법으로 삼아 개발 전 과정에서 지속적으로 테스트를 수행하는 방법론이다.
따라서 빠른 개발을 위해 테스트를 수행하지 않는다는 설명은 XP의 본질과 정반대되는 틀린 진술이다.

문제 4
소프트웨어 설계에서 사용되는 대표적인 추상화(Abstraction) 기법이 아닌 것은?    
1자료 추상화
2제어 추상화
3과정 추상화
4강도 추상화
정답 및 해설

소프트웨어 설계의 대표적 추상화 기법은 자료 추상화·제어 추상화·과정(기능) 추상화 세 가지이며, 강도 추상화라는 기법은 존재하지 않는다.

문제 5
객체지향 설계에서 정보 은닉(Information Hiding)과 관련한 설명으로 틀린 것은?    
1필요하지 않은 정보는 접근할 수 없도록 하여 한 모듈 또는 하부시스템이 다른 모듈의 구현에 영향을 받지 않게 설계되는것을 의미한다.
2모듈들 사이의 독립성을 유지시키는 데 도움이 된다.
3설계에서 은닉되어야 할 기본 정보로는 IP주소와 같은 물리적 코드, 상세 데이터 구조 등이 있다.
4모듈 내부의 자료 구조와 접근 동작들에만 수정을 국한하기 때문에 요구사항 등변화에 따른 수정이 불가능하다.
정답 및 해설

정보 은닉은 모듈 내부의 자료구조와 접근 동작을 외부로부터 감춰 다른 모듈이 이를 직접 참조하지 못하게 함으로써 모듈 간 독립성을 높이고, 오히려 요구사항 변경이 있을 때 수정 범위를 모듈 내부로 국한시켜 유지보수를 쉽게 만든다.
따라서 요구사항 등 변화에 따른 수정이 불가능하다는 설명은 정보 은닉의 목적과 반대되는 틀린 진술이다.

문제 6
소프트웨어 공학에서 모델링 (Modeling)과 관련한 설명으로 틀린 것은?    
1개발팀이 응용문제를 이해하는 데 도움을 줄 수 있다.
2유지보수 단계에서만 모델링 기법을 활용한다.
3개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
4절차적인 프로그램을 위한 자료흐름도는 프로세스 위주의 모델링 방법이다.
정답 및 해설

모델링은 요구분석·설계 등 소프트웨어 개발의 전 단계에서 시스템을 이해하고 여러 분야의 엔지니어가 공통된 개념을 공유하도록 돕기 위해 활용되는 기법이다.
따라서 유지보수 단계에서만 모델링 기법을 활용한다는 설명은 틀린 진술이다.

문제 7
요구 분석(Requirement Analysis)에 대한 설명으로 틀린 것은?    
1요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계라 할 수 있다.
2요구 추출(Requirement Elicitation)은 프로젝트 계획 단계에 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계이다.
3도메인 분석(Domain Analysis)은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 된다.
4기능적(Functional) 요구에서 시스템 구축에대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출한다.
정답 및 해설

시스템 구축에 대한 성능·보안·품질·안정성 등의 요구사항은 비기능적(Non-Functional) 요구에서 도출되는 것이지 기능적 요구에서 도출되는 것이 아니다.
기능적 요구는 시스템이 제공해야 할 기능 자체를 정의하는 것이므로, 이를 기능적 요구라고 설명한 부분이 틀렸다.

문제 8
클래스 다이어그램의 요소로 다음 설명에 해당하는 용어는?        
1Instance
2Operation
3Item
4Hiding
정답 및 해설

제시된 설명은 클래스의 동작을 의미하며 클래스에 속한 객체에 적용될 메서드를 정의하고 UML에서 동작에 대한 인터페이스를 지정하는 요소인 오퍼레이션(Operation)에 해당한다.
클래스 다이어그램에서 오퍼레이션은 속성(Attribute)과 함께 클래스 박스 하단부에 표기되는 요소다.

문제 9
분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?    
1일반적으로 실시간 시스템에서 사용된다.
2마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.
3슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.
4마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.
정답 및 해설

마스터-슬레이브 아키텍처에서 마스터는 연산·통신·조정을 총괄하며 슬레이브들을 제어하고, 슬레이브는 마스터의 지시에 따라 특정 연산이나 데이터 수집 같은 작업을 수행한다.
따라서 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다는 설명은 슬레이브의 실제 역할과 반대되는 틀린 진술이다.

문제 10
요구 사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램(Diagram)이 아닌 것은?     
1Data Flow Diagram
2UML Diagram
3E-R Diagram
4AVL Diagram
정답 및 해설

자료흐름도(Data Flow Diagram)·UML 다이어그램·E-R 다이어그램은 요구사항 정의 및 분석·설계 결과물을 표현하는 대표적 모델링 다이어그램이지만, AVL Diagram은 존재하지 않는 용어이며 AVL은 이진 탐색 트리의 균형을 다루는 AVL 트리(자료구조)를 가리킨다.

문제 11
객체지향의 주요 개념에 대한 설명으로 틀린 것은?     
1캡슐화는 상위클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.
2객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.
3클래스는 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 것이다.
4다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.
정답 및 해설

캡슐화(Encapsulation)는 속성(데이터)과 연산(메서드)을 하나로 묶어 외부에 세부 구현을 감추는 개념이다. 반면 의 설명(상위 클래스의 속성·연산을 전달받아 확장)은 상속(Inheritance)에 대한 설명이므로 캡슐화 정의로 틀리다. 객체·클래스·다형성에 대한 나머지 설명은 각각 올바른 정의이다.

문제 12
사용자 인터페이스(User Interface)에 대한 설명으로 틀린 것은?     
1사용자와 시스템이 정보를 주고받는 상호작용이 잘 이루어지도록 하는 장치나 소프트웨어를 의미한다.
2편리한 유지보수를 위해 개발자 중심으로 설계되어야 한다.
3배우기가 용이하고 쉽게 사용할 수 있도록 만들어져야 한다.
4사용자 요구사항이 UI에 반영될 수 있도록 구성해야 한다.
정답 및 해설

사용자 인터페이스(UI)는 편리한 유지보수를 포함하더라도 근본적으로 사용자 중심으로 설계되어야 하며, '개발자 중심으로 설계'된다는 설명은 UI 설계 원칙에 어긋난다. UI는 배우기 쉽고 사용이 편리해야 하며 사용자 요구사항을 반영해야 한다는 나머지 설명은 타당하다.

문제 13
GoF(Gang of Four) 디자인 패턴과 관련한 설명으로 틀린 것은?     
1디자인 패턴을 목적(Purpose)으로 분류할 때 생성, 구조, 행위로 분류할 수 있다.
2Strategy 패턴은 대표적인 구조 패턴으로 인스턴스를 복제하여 사용하는 구조를 말한다.
3행위 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다.
4Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 대한 접근 방법을 제공한다.
정답 및 해설

Strategy 패턴은 알고리즘군을 캡슐화해 서로 교체 가능하게 만드는 대표적인 행위(Behavioral) 패턴이며, 인스턴스를 복제하여 사용하는 구조는 Prototype 패턴(생성 패턴)의 특징이다. 따라서 Strategy를 '대표적인 구조 패턴'이라 한 설명이 틀리다. GoF 패턴의 목적별 분류(생성·구조·행위)와 Singleton의 정의는 옳다.

문제 14
애자일 개발 방법론과 관련한 설명으로 틀린 것은?     
1빠른 릴리즈를 통해 문제점을 빠르게 파악할 수 있다.
2정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다.
3고객과의 의사소통을 중요하게 생각한다.
4진화하는 요구사항을 수용하는데 적합하다.
정답 및 해설

애자일 방법론은 애자일 선언문에 따라 '포괄적인 문서보다 작동하는 소프트웨어'를 우선시하며, 계획 수립과 문서화보다 고객과의 협업 및 빠른 반복 개발에 중점을 둔다. 따라서 '정확한 결과 도출을 위해 계획 수립과 문서화에 중점을 둔다'는 설명이 틀리다. 빠른 릴리즈, 고객 소통, 변화하는 요구사항 수용은 애자일의 핵심 특징으로 옳다.

문제 15
럼바우(Rumbaugh)의 객체지향 분석 기법 중 자료 흐름도(DFD)를 주로 이용하는 것은?     
1기능 모델링
2동적 모델링
3객체 모델링
4정적 모델링
정답 및 해설

럼바우(Rumbaugh)의 객체지향 분석에서 기능 모델링은 시스템 내 데이터 처리 흐름을 자료 흐름도(DFD)로 표현하는 단계이다. 동적 모델링은 상태 다이어그램, 객체(정적) 모델링은 객체 다이어그램을 주로 사용한다.

문제 16
순차 다이어그램(Sequence Diagram)과 관련한 설명으로 틀린 것은?     
1객체들의 상호 작용을 나타내기 위해 사용한다.
2시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다.
3동적 다이어그램보다는 정적 다이어그램에 가깝다.
4교류 다이어그램(Interaction Diagram)의 한 종류로 볼 수 있다.
정답 및 해설

순차 다이어그램(Sequence Diagram)은 시간 흐름에 따른 객체 간 메시지 교환을 표현하는 동적(행위) 다이어그램이며 교류 다이어그램(Interaction Diagram)의 한 종류이다. 따라서 '정적 다이어그램에 가깝다'는 설명이 틀리다.

문제 17
객체지향 분석 기법과 관련한 설명으로 틀린것은?     
1동적 모델링 기법이 사용될 수 있다.
2기능 중심으로 시스템을 파악하며 순차적인처리가 중요시되는 하향식(Top-down)방식으로 볼 수 있다.
3데이터와 행위를 하나로 묶어 객체를 정의내리고 추상화시키는 작업이라 할 수 있다.
4코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다.
정답 및 해설

객체지향 분석은 데이터와 행위(기능)를 하나의 객체로 묶어 처리하는 상향식(Bottom-up) 접근 방식이다. 반면 '기능 중심으로 순차적 처리가 중요시되는 하향식(Top-down)' 설명은 구조적 분석(Structured Analysis) 기법의 특징이므로 객체지향 분석 설명으로 틀리다. 나머지 동적 모델링 활용, 데이터·행위의 캡슐화·추상화, 재사용성에 의한 생산성 향상 설명은 옳다.

문제 18
대표적으로 DOS 및 Unix 등의 운영체제에서조작을 위해 사용하던 것으로, 정해진 명령문자열을 입력하여 시스템을 조작하는 사용자인터페이스(User Interface)는?     
1GUI(Graphical User Interface)
2CLI(Command Line Interface)
3CUI(Cell User Interface)
4MUI(Mobile User Interface)
정답 및 해설

정해진 명령문자열을 입력해 시스템을 조작하는 방식은 CLI(Command Line Interface)로, DOS 및 Unix 등에서 사용된 대표적인 문자 기반 인터페이스이다.

문제 19
분산 시스템에서의 미들웨어 (Middleware)와 관련한 설명으로 틀린 것은?     
1분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다.
2위치 투명성(Location Transparency)을 제공한다.
3분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다.
4애플리케이션과 사용자 사이에서만 분산서비스를 제공한다.
정답 및 해설

미들웨어(Middleware)는 애플리케이션과 사용자 사이뿐 아니라 분산 시스템의 여러 컴포넌트·시스템 간에도 통신과 데이터 교환을 중개하는 소프트웨어이다. 따라서 '애플리케이션과 사용자 사이에서만' 서비스를 제공한다는 설명이 틀리다. 위치 투명성 제공, 재사용 가능한 서비스 구현 제공 등 나머지 설명은 미들웨어의 특징으로 옳다.

문제 20
소프트웨어 아키텍처와 관련한 설명으로 틀린것은?     
1파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.
2외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다.
3데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.
4이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.
정답 및 해설

파이프-필터 아키텍처에서 데이터는 파이프를 통해 단방향으로 흐르며, 필터가 데이터를 변환·전달하는 과정에서 오버헤드가 발생할 수 있다. 따라서 '양방향으로 흐르며 오버헤드가 발생하지 않는다'는 설명이 틀리다. 소프트웨어 아키텍처의 정의, 데이터 중심 아키텍처의 접근자 간 통신 방식, 품질 속성 결정에 대한 나머지 설명은 옳다.

문제 21
테스트를 목적에 따라 분류했을 때,강도(Stress) 테스트에 대한 설명으로 옳은것은?     
1시스템에 고의로 실패를 유도하고 시스템이정상적으로 복귀하는지 테스트한다.
2시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 테스트한다.
3사용자의 이벤트에 시스템이 응답하는 시간,특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 테스트한다.
4부당하고 불법적인 침입을 시도하여 보안시스템이 불법적인 침투를 잘 막아내는지 테스트한다.
정답 및 해설

강도(Stress) 테스트는 시스템에 정상 범위를 초과하는 과다한 정보량(부하)을 부과했을 때도 기능이 정상적으로 유지되는지 확인하는 테스트다. 이는 고의로 장애를 유발한 뒤 정상 복귀 여부를 보는 회복 테스트(①)나, 불법 침투 여부를 점검하는 보안 테스트(④)와는 목적이 다르다.

문제 22
다음 자료를 버블 정렬을 이용하여오름차순으로 정렬할 경우 PASS 3의 결과는?          
16, 3, 5, 7, 9
23, 5, 6, 7, 9
36, 7, 3, 5, 9
43, 5, 9, 6, 7
정답 및 해설

초기 자료는 9, 6, 7, 3, 5이며, 버블 정렬은 인접한 두 값을 비교해 앞 값이 크면 교환하는 과정을 반복한다. PASS 1에서 최댓값 9가 맨 뒤로 이동해 6, 7, 3, 5, 9가 되고, PASS 2에서 6, 3, 5, 7, 9가 된다. PASS 3에서는 6과 3 교환, 6과 5 교환이 일어나 3, 5, 6, 7, 9가 된다.

문제 23
다음 그래프에서 정점 A를 선택하여 깊이우선탐색(DFS)으로 운행한 결과는?          
1ABECDFG
2ABECFDG
3ABCDEFG
4ABEFGCD
정답 및 해설

DFS는 A에서 시작해 인접한 B를 먼저 방문한 뒤, B의 미방문 인접정점 E로 내려가고, 이어서 E-F, F-G로 깊이 우선 진행한다. G에서 더 갈 곳이 없으므로 되돌아와(백트래킹) F의 남은 인접정점 C를 방문하고, C와 연결된 D를 마지막으로 방문한다. 따라서 방문 순서는 A→B→E→F→G→C→D가 된다.

문제 24
다음 설명에 부합하는 용어로 옳은 것은?          
1통합 프로그램
2저장소
3모듈
4데이터
정답 및 해설

제시된 설명은 소프트웨어 구조를 이루는 독립적 기능 단위이고, 하나 또는 몇 개의 논리적 기능을 수행하는 명령어들의 집합이며, 여러 개가 모여 하나의 완전한 프로그램을 구성한다는 내용으로 모듈(Module)의 정의에 해당한다. 모듈은 프로그램을 기능 단위로 분할해 독립적으로 개발·검사할 수 있게 하는 소프트웨어 구성 요소다.

문제 25
테스트 드라이버(Test Driver)에 대한 설명으로 틀린 것은?     
1시험대상 모듈을 호출하는 간이 소프트웨어이다.
2필요에 따라 매개 변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있다.
3상향식 통합 테스트에서 사용된다.
4테스트 대상 모듈이 호출하는 하위 모듈의 역할을 한다.
정답 및 해설

테스트 드라이버는 시험 대상 모듈을 호출하고 매개변수를 전달해 수행 결과를 확인하는 상위 모듈 역할의 테스트 도구로, 상향식 통합 테스트에서 사용된다. 반대로 시험 대상 모듈이 호출하는 하위 모듈의 역할을 대신하는 것은 테스트 스텁이므로, 이를 드라이버의 설명이라 한 것은 틀린 내용이다.

문제 26
다음 중 선형 구조로만 묶인 것은?     
1스택, 트리
2큐, 데크
3큐, 그래프
4리스트, 그래프
정답 및 해설

선형 구조는 자료가 순차적으로 연결되는 구조로 스택·큐·리스트·데크가 이에 속하며, 트리그래프는 비선형 구조다. 보기 중 큐와 데크만 모두 선형 구조에 해당한다.

문제 27
다음은 스택의 자료 삭제 알고리즘이다. ⓐ에 들어 갈 내용으로 옳은 것은? (단, Top: 스택포인터, S: 스택의 이름)          
1Overflow
2Top = Top + 1
3Underflow
4Top = Top
정답 및 해설

스택에서 원소를 삭제(pop)하기 전에는 스택이 비어 있는지 먼저 확인해야 하며, 스택 포인터 Top이 0이면 제거할 원소가 없는 공백 상태다. 이 경우 정상적으로 삭제 연산을 수행할 수 없으므로 Underflow 상태임을 알려야 한다.

문제 28
제품 소프트웨어의 사용자 매뉴얼 작성절차로 (가)~(다)와 [보기]의 기호를 바르게 연결한 것은?          
1(가)-㉠, (나)-㉡, (다)-㉢
2(가)-㉢, (나)-㉡, (다)-㉠
3(가)-㉠, (나)-㉢, (다)-㉡
4(가)-㉢, (나)-㉠, (다)-㉡
정답 및 해설

사용자 매뉴얼은 작성 지침을 정의한 뒤, 매뉴얼에 담길 구성 요소를 정의하고(㉢), 정의된 구성 요소별 내용을 작성하며(㉡), 마지막으로 완성된 사용 설명서를 검토하는(㉠) 순서로 진행된다. 따라서 (가)-㉢, (나)-㉡, (다)-㉠의 연결이 옳다.

문제 29
순서가 A, B, C, D로 정해진 입력 자료를 스택에 입력한 후 출력한 결과로 불가능한 것은?     
1D, C, B, A
2B, C, D, A
3C, B, A, D
4D, B, C, A
정답 및 해설

스택은 후입선출 구조이므로, 어떤 원소보다 나중에 push된 원소가 먼저 출력된 다음에는 둘 사이에 push되어 스택에 남아 있는 원소부터 순서대로 나와야 한다. D, B, C, A는 D를 먼저 출력하려면 A, B, C, D를 모두 push한 뒤 D를 pop해야 하는데, 이때 스택에는 위에서부터 C, B, A가 남아 있어 B보다 C가 먼저 나올 수밖에 없다. 따라서 D 다음에 B가 출력되는 이 순서는 스택으로 만들 수 없다.

문제 30
소프트웨어 테스트에서 검증(Verification)과 확인 (Validation)에 대한 설명으로 틀린 것은?     
1소프트웨어 테스트에서 검증과 확인을 구별하면 찾고자 하는 결함 유형을 명확하게 하는 데 도움이 된다.
2검증은 소프트웨어 개발 과정을 테스트하는 것이고, 확인은 소프트웨어 결과를 테스트 하는 것이다.
3검증은 작업 제품이 요구 명세의 기능, 비기능 요구사항을 얼마나 잘 준수하는지 측정하는 작업이다.
4검증은 작업 제품이 사용자의 요구에 적합한지 측정하며, 확인은 작업 제품이 개발자의 기대를 충족시키는지를 측정한다.
정답 및 해설

검증(Verification)은 산출물이 명세된 요구사항(기능·비기능)을 올바르게 준수하는지, 즉 개발 과정과 결과가 명세대로 만들어졌는지를 확인하는 활동이며, 확인(Validation)은 실제 사용자의 요구에 부합하는지를 결과물로 테스트하는 활동이다. 사용자 요구 충족 여부는 확인이, 명세 준수 여부는 검증이 담당하는데, 이를 서로 뒤바꿔 설명했으므로 틀린 내용이다.

문제 31
개별 모듈을 시험하는 것으로 모듈이 정확하게 구현되었는지, 예정한 기능이 제대로 수행되는지를 점검하는 것이 주요 목적인 테스트는?     
1통합 테스트(Integration Test)
2단위 테스트(Unit Test)
3시스템 테스트(System Test)
4인수 테스트(Acceptance Test)
정답 및 해설

단위 테스트(Unit Test)는 개별 모듈이 정확하게 구현되었는지, 설계된 기능을 예정대로 수행하는지를 모듈 단위로 독립적으로 점검하는 테스트이다. 통합 테스트는 모듈 간 인터페이스, 시스템 테스트는 전체 시스템 동작, 인수 테스트는 사용자 요구사항 충족 여부를 검증하는 것이 목적이므로 개별 모듈 검증과는 범위가 다르다.

문제 32
형상 관리의 개념과 절차에 대한 설명으로 틀린 것은?     
1형상 식별은 형상 관리 계획을 근거로 형상관리의 대상이 무엇인지 식별하는 과정이다.
2형상 관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있다.
3형상 통제 과정에서는 형상 목록의 변경 요구를 즉시 수용 및 반영해야 한다.
4형상 감사는 형상 관리 계획대로 형상관리가 진행되고 있는지, 형상 항목의 변경이 요구 사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동이다.
정답 및 해설

형상 통제는 형상통제위원회(CCB) 등의 심의·승인 절차를 거쳐 변경 요구의 수용 여부를 결정하고 통제하는 활동이며, 변경 요구를 즉시 수용 및 반영하는 것은 형상 관리의 기본 원칙에 어긋난다. 형상 식별과 형상 감사에 대한 설명은 각각 형상 항목 식별, 형상 변경의 적합성 점검이라는 정의에 부합해 옳다.

문제 33
소스코드 정적 분석(Static Analysis)에 대한 설명으로 틀린 것은?     
1소스 코드를 실행시키지 않고 분석한다.
2코드에 있는 오류나 잠재적인 오류를 찾아내기 위한 활동이다.
3하드웨어적인 방법으로만 코드 분석이 가능하다.
4자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.
정답 및 해설

정적 분석(Static Analysis)은 소스 코드를 실행하지 않고 코드 자체의 자료 흐름·논리 흐름을 분석해 오류나 잠재적 결함을 찾아내는 소프트웨어적 검사 기법이다. 따라서 하드웨어적인 방법으로만 코드 분석이 가능하다는 설명은 정적 분석의 성격과 맞지 않다.

문제 34
소프트웨어 개발 활동을 수행함에 있어서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 것은?     
1Fault
2Testcase
3Mistake
4Inspection
정답 및 해설

오류(Error)로 인해 소프트웨어 내부에 존재하게 되는 결함을 Fault라 하며, 이 Fault가 실행 중 발현되면 시스템이 고장(Failure)을 일으킨다. 즉 Error → Fault → Failure의 관계이므로, 오류가 있을 때 발생하며 고장을 유발하는 대상은 Fault이다.

문제 35
코드의 간결성을 유지하기 위해 사용되는 지침으로 틀린 것은?     
1공백을 이용하여 실행문 그룹과 주석을 명확히 구분한다.
2복잡한 논리식과 산술식은 괄호와 들여쓰기(Indentation)를 통해 명확히 표현한다.
3빈 줄을 사용하여 선언부와 구현부를 구별한다.
4한 줄에 최대한 많은 문장을 코딩한다.
정답 및 해설

코드 간결성 지침은 한 줄에 하나의 문장만 기술해 가독성을 높이는 것을 원칙으로 하므로, 한 줄에 최대한 많은 문장을 코딩하는 것은 오히려 가독성을 해쳐 간결성 지침에 어긋난다. 공백·빈 줄·괄호와 들여쓰기를 통한 구분은 모두 간결성을 높이는 올바른 지침이다.

문제 36
소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력을 의미하는 것은?     
1Portability
2Efficiency
3Usability
4Correctness
정답 및 해설

이식성(Portability)은 하나 이상의 서로 다른 하드웨어 환경에서도 쉽게 수정되어 운용될 수 있는 소프트웨어의 능력을 의미한다. Efficiency(효율성)는 자원 사용의 경제성, Usability(사용성)는 사용 편의성, Correctness(정확성)는 요구사항 충족도를 나타내는 별개의 품질 특성이다.

문제 37
다음 중 최악의 경우 검색 효율이 가장 나쁜트리 구조는?     
1이진 탐색트리
2AVL 트리
32-3 트리
4레드-블랙 트리
정답 및 해설

이진 탐색 트리는 삽입 순서에 따라 균형이 무너져 편향(skewed) 트리가 될 수 있으며, 이 경우 검색 효율이 최악의 경우 O(N)까지 저하된다. 반면 AVL 트리·2-3 트리·레드-블랙 트리는 삽입·삭제 시 스스로 균형을 유지하도록 설계되어 최악의 경우에도 O(log N)의 검색 효율을 보장한다.

문제 38
다음 트리에 대한 중위 순회 운행 결과는?          
1ABDCEF
2ABCDEF
3DBECFA
4DBAECF
정답 및 해설

중위 순회(In-order traversal)는 좌측 부분트리 → 현재 노드 → 우측 부분트리 순서로 방문한다. 주어진 트리에서 A를 루트로 하여 순회하면: A의 좌측 부분트리는 B(자식 D, E)이고 우측 부분트리는 C(자식 F)이다. B 노드에서 좌측 자식 D를 먼저 방문하고(D 출력), B를 방문하고(B 출력), 우측 자식 E를 방문한다(E 출력). 그 후 A를 방문하고(A 출력), C의 좌측 부분트리가 없으므로 C를 방문한 후(C 출력), 우측 자식 F를 방문한다(F 출력). 따라서 중위 순회 결과는 D → B → E → A → C → FDBAECF이다.

문제 39
테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?     
1스터브(Stub)와 드라이버(Driver)
2입력 도메인 분석
3랜덤(Random) 테스트
4자료 흐름도
정답 및 해설

테스트 케이스 자동 생성 도구가 테스트 데이터를 찾아내는 방법에는 입력 도메인 분석, 랜덤(Random) 테스트, 자료 흐름도 분석 등이 있다. 스텁(Stub)과 드라이버(Driver)는 미완성 모듈을 대체해 통합 테스트를 실행하기 위한 테스트 하네스 도구로, 테스트 데이터(케이스)를 생성하는 방법이 아니다.

문제 40
저작권 관리 구성 요소 중 패키저(Packager)의 주요 역할로 옳은 것은?     
1콘텐츠를 제공하는 저작권자를 의미한다.
2콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는다.
3라이선스를 발급하고 관리한다.
4배포된 콘텐츠의 이용 권한을 통제한다.
정답 및 해설

DRM 구성 요소 중 패키저(Packager)는 콘텐츠를 유통 가능하도록 메타데이터와 함께 배포 단위(콘텐츠 패키지)로 묶는 역할을 한다. 콘텐츠 제공은 콘텐츠 제공자(Content Provider), 라이선스 발급·관리는 클리어링하우스, 배포된 콘텐츠의 이용 권한 통제는 DRM 컨트롤러의 역할이다.

문제 41
데이터베이스의 무결성 규정(Integrity Rule)과 관련한 설명으로 틀린 것은?     
1무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다.
2무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.
3정식으로 허가 받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다.
4릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이 션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)을 명세한 것이다.
정답 및 해설

무결성 규정은 데이터가 만족해야 할 도메인·키·종속성 등의 제약 조건을 다루어 데이터의 정확성과 일관성을 보장하기 위한 것이다.
정식으로 허가받지 않은 사용자에 의한 갱신으로부터 데이터베이스를 보호하는 것은 접근통제(보안)의 영역이지 무결성 규정의 정의가 아니므로 이 설명이 틀리다.

문제 42
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?     
1트랜잭션
2
3튜플
4카디널리티
정답 및 해설

트랜잭션은 하나의 논리적 기능을 수행하기 위한 작업의 단위, 즉 전부 수행되거나 전부 취소되어야 하는 일련의 연산 집합을 의미한다.
뷰는 가상 테이블, 튜플은 릴레이션의 행, 카디널리티는 튜플의 개수를 뜻하므로 정의에 해당하지 않는다.

문제 43

다음 두 릴레이션 Rl과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?

R1

학년
1
2
3

R2

학과
컴퓨터
국문
수학
1
2
3
4
정답 및 해설

카티션 프로덕트는 두 릴레이션의 튜플을 남김없이 모두 짝지어 만드는 연산이므로 결과는 3×3 = 9개 튜플이다.

R1은 학년 속성에 1, 2, 3 세 튜플을 갖고 R2는 학과 속성에 컴퓨터, 국문, 수학 세 튜플을 가지므로, 결과 릴레이션의 차수(degree)는 1+1=2, 카디널리티는 3×3=9가 된다.

따라서 학년 1에 컴퓨터·국문·수학, 학년 2에 컴퓨터·국문·수학, 학년 3에 컴퓨터·국문·수학이 각각 짝지어진 학년·학과 두 열, 아홉 행짜리 표가 옳다.

세 행짜리 표는 학년과 학과를 1-컴퓨터, 2-국문, 3-수학처럼 한 번씩만 대응시켰거나 특정 학년 하나에만 세 학과를 붙인 것이어서, 나머지 여섯 조합이 통째로 빠져 있다. 이는 곱집합이 아니라 일부만 골라낸 결과다.

문제 44
물리적 데이터베이스 설계에 대한 설명으로 거리가 먼 것은?     
1물리적 설계의 목적은 효율적인 방법으로 데이터를 저장하는 것이다.
2트랜잭션 처리량과 응답시간, 디스크 용량 등을 고려해야 한다.
3저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 설계한다.
4트랜잭션의 인터페이스를 설계하며, 데이터 타입 및 데이터 타입들 간의 관계로 표현한다.
정답 및 해설

물리적 데이터베이스 설계는 저장 레코드의 형식·순서·접근 경로, 트랜잭션 처리량·응답시간·디스크 용량 등 물리적 저장 구조를 결정하는 단계다.
반면 트랜잭션의 인터페이스를 설계하고 데이터 타입 및 데이터 타입 간의 관계로 표현하는 것은 논리적(개념적) 설계 단계의 내용이므로 물리적 설계와 거리가 멀다.

문제 45
다음 중 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?     
1개체 무결성 제약조건
2참조 무결성 제약조건
3도메인 무결성 제약조건
4속성 무결성 제약조건
정답 및 해설

개체 무결성 제약조건은 기본키를 구성하는 속성이 NULL 값을 가질 수 없고, 릴레이션 내에서 유일한 값이어야 한다는 규정이다.
참조 무결성은 외래키가 참조하는 기본키 값과 일치해야 한다는 규정이고, 도메인 무결성은 속성 값이 정의된 도메인 범위 내에 있어야 한다는 규정으로 서로 다르다.

문제 46
SQL문에서 HAVING을 사용할 수 있는 절은?     
1LIKE 절
2WHERE 절
3GROUP BY 절
4ORDER BY 절
정답 및 해설

HAVING절GROUP BY절로 그룹화된 결과 집합에 조건을 지정할 때 사용하는 절로, GROUP BY와 함께 사용된다.
WHERE절은 그룹화 이전의 개별 행 단위 조건에, ORDER BY절은 결과 정렬에 사용되므로 HAVING과 함께 쓰이지 않는다.

문제 47
관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?     
1디비전(Division)
2프로젝트(Project)
3조인(Join)
4포크(Fork)
정답 및 해설

관계 데이터베이스의 관계대수 연산에는 셀렉트·프로젝트·조인·디비전과 순수 집합 연산인 합집합·차집합·교집합·카티션 프로덕트 등이 있다.
포크(Fork)는 관계대수에 정의된 연산이 아니므로 해당하지 않는다.

문제 48
학적 테이블에서 전화번호가 Null값이 아닌 학생명을 모두 검색할 때, SQL 구문으로 옳은 것은?     
1SELECT FROM 07 WHERE 전화번호 DON'T NULL;
2SELECT FROM WHERE 전화번호 != NOT NULL;
3SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL;
4SELECT FROM WHERE 전화번호 IS NULL;
정답 및 해설

특정 컬럼 값이 NULL이 아닌 행을 조회할 때는 IS NOT NULL 연산자를 사용해야 하며, != NOT NULL이나 DON'T NULL 같은 구문은 SQL 문법에 존재하지 않는다.
SELECT 학생명 FROM 학적 WHERE 전화번호 IS NOT NULL; 은 조회할 컬럼(학생명)과 테이블(학적)을 모두 명시하고 IS NOT NULL 조건을 올바르게 사용한 표준 SQL 구문이다.

문제 49
관계형 데이터베이스에서 다음 설명에 해당하는 키(Key)는?          
1후보키
2대체키
3슈퍼키
4외래키
정답 및 해설

이미지의 설명을 읽으면 "릴레이션의 모든 튜플을 유일하게 식별할 수 있는 속성의 집합"이라고 정의되어 있다. 이는 슈퍼키(Superkey)의 정의와 정확히 일치한다. 슈퍼키는 릴레이션의 모든 튜플을 고유하게 구별할 수 있는 하나 이상의 속성 조합으로, 후보키보다 큰 개념이며 불필요한 속성을 포함할 수 있다. 후보키는 최소성을 만족하는 슈퍼키이고, 대체키는 기본키가 아닌 후보키이며, 외래키는 다른 릴레이션의 기본키를 참조하는 속성이므로 모두 다른 개념이다.

문제 50
데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?     
1인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
2B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
3BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
4시스템이 자동으로 생성하여 사용자가 변경할 수 없다.
정답 및 해설

인덱스는 사용자가 CREATE INDEX 문으로 직접 생성하고 DROP INDEX 등으로 삭제·변경할 수 있으므로, 시스템이 자동 생성하여 사용자가 변경할 수 없다는 설명은 틀리다.
검색 성능 최적화가 목적이라는 점, B-트리 인덱스가 분기용 Branch Block을 가진다는 점, BETWEEN 같은 범위 검색에 활용된다는 점은 모두 인덱스의 올바른 특성이다.

문제 51
로킹 단위(Locking Granularity)에 대한 설명으로 옳은 것은?     
1로킹 단위가 크면 병행성 수준이 낮아진다.
2로킹 단위가 크면 병행 제어 기법이 복잡해진다.
3로킹 단위가 작으면 로크(lock)의 수가 적어진다.
4로킹은 파일 단위로 이루어지며, 레코드와 필드는 로킹 단위가 될 수 없다.
정답 및 해설

로킹 단위(Locking Granularity)가 크면 한 번의 로크로 넓은 범위(예: 파일·테이블)를 잠그므로 로크의 수는 적어지고 관리는 단순해지지만, 동시에 그 자원에 접근하려는 다른 트랜잭션이 대기해야 하므로 병행성 수준이 낮아진다.
반대로 로킹 단위가 작아지면(필드·레코드 단위) 병행성은 높아지지만 로크의 수가 늘어 관리가 복잡해지며, 로킹은 필드·레코드·페이지·테이블·파일 등 여러 단위로 적용될 수 있다.

문제 52
관계 대수에 대한 설명으로 틀린 것은?     
1원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
2릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
3일반 집합 연산과 순수 관계 연산으로 구분된다.
4질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
정답 및 해설

관계대수(Relational Algebra)는 원하는 결과를 얻기 위해 수행해야 할 연산의 순서(절차)를 명시하는 절차적 언어이며, 릴레이션을 피연산자와 결과로 하는 연산의 집합으로 일반 집합 연산과 순수 관계 연산으로 구분된다.
"원하는 릴레이션을 정의하는 방법만 제공하며 비절차적"이라는 설명은 관계대수가 아니라 관계해석(Relational Calculus)의 특징이므로 틀린 설명이다.

문제 53
데이터의 중복으로 인하여 관계연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 무엇이라 하는가?     
1이상(Anomaly)
2제한 (Restriction)
3종속성(Dependency)
4변환(Translation)
정답 및 해설

하나의 사실이 여러 릴레이션이나 튜플에 중복 저장되어 있을 때, 삽입·삭제·갱신 연산 과정에서 데이터 불일치나 예기치 못한 부작용이 발생하는 현상을 이상(Anomaly)이라 한다.
정규화는 이러한 삽입 이상·삭제 이상·갱신 이상을 제거하기 위해 수행하는 과정이다.

문제 54
다음 중 SQL에서의 DDL 문이 아닌 것은?     
1CREATE
2DELETE
3ALTER
4DROP
정답 및 해설

DDL(Data Definition Language)은 테이블 등 스키마 객체를 정의·변경·삭제하는 언어로 CREATE·ALTER·DROP이 이에 속한다.
반면 DELETE는 저장된 데이터(튜플)를 조작하는 명령으로 INSERT·UPDATE·SELECT와 함께 DML(Data Manipulation Language)에 속하므로 DDL이 아니다.

문제 55
정규화에 대한 설명으로 적절하지 않은 것은?     
1데이터베이스의 개념적 설계 단계 이전에 수행한다.
2데이터 구조의 안정성을 최대화한다.
3중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
4데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
정답 및 해설

정규화(Normalization)는 요구사항 분석 후 만들어진 개념적 스키마(E-R 모델)를 바탕으로 논리적 설계 단계에서 릴레이션을 분해·재구성하며 수행되는 절차로, 개념적 설계 단계 이전에 수행되는 것이 아니다.
정규화는 데이터 중복을 배제해 삽입·삭제·갱신 이상을 방지하고 데이터 구조의 안정성을 높이며, 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄이는 것이 목적이므로 이 부분은 옳은 설명이다.

문제 56
트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?     
1Log
2Consistency
3Isolation
4Durability
정답 및 해설

트랜잭션의 ACID 특성 중 Isolation(고립성)은 여러 트랜잭션이 동시에 병행 실행되더라도 한 트랜잭션의 실행 중간 결과를 다른 트랜잭션이 참조하거나 끼어들 수 없도록 보장하는 특성이다.
Atomicity(원자성)·Consistency(일관성)·Durability(지속성)와 함께 트랜잭션의 4대 특성을 이루며, 이 문제의 정의는 그중 고립성에 해당한다.

문제 57
SQL의 논리 연산자가 아닌 것은?     
1AND
2OTHER
3OR
4NOT
정답 및 해설

SQL의 논리 연산자는 조건을 결합·부정하는 데 쓰이는 AND·OR·NOT 세 가지이며, OTHER는 SQL에서 정의된 논리 연산자가 아니다.

문제 58
동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법은?     
1로킹 기법
2타임스탬프 기법
3검증 기법
4배타 로크 기법
정답 및 해설

타임스탬프 기법(Timestamp Ordering)은 트랜잭션이 시작되기 전에 고유한 타임스탬프를 부여하여 그 순서대로 트랜잭션이 실행된 것과 동일한 결과가 되도록 직렬화 순서를 미리 정해 병행 제어를 수행하는 기법이다.
이는 트랜잭션이 자원을 획득한 뒤 충돌을 검사하는 로킹 기법이나, 실행이 끝난 후 검증하는 검증(낙관적) 기법과 구분된다.

문제 59
이전 단계의 정규형을 만족하면서 후보키를 통하지 않는 조인 종속(JD : Join Dependency) 제거해야 만족하는 정규형은?     
1제3정규형
2제4정규형
3제5정규형
4제6정규형
정답 및 해설

이전 단계(제4정규형)의 정규형 조건을 만족하면서, 후보키를 통하지 않는 조인 종속(Join Dependency)을 제거해야 만족하는 정규형은 제5정규형(5NF, PJ/NF)이다.
제5정규형은 릴레이션의 모든 조인 종속이 후보키를 통해서만 성립하도록 무손실 분해가 이루어진 상태를 의미한다.

문제 60
어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분 집합이라고 할 경우 애트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라고 한다. 이 함수 종속의 표기로 옳은 것은?     
1Y → X
2Y ⊂ X
3X → Y
4X ⊂ Y
정답 및 해설

애트리뷰트 집합 X의 값에 대응하는 Y의 값이 시간에 관계없이 항상 유일하게 결정될 때, 이를 함수 종속(Functional Dependency)이라 하며 X → Y로 표기하고 "Y는 X에 함수 종속이다" 또는 "X가 Y를 함수적으로 결정한다"라고 읽는다.
이때 X를 결정자(Determinant), Y를 종속자(Dependent)라 한다.

문제 61
모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우의 응집도(Cohesion)는?     
1Temporal Cohesion
2Logical Cohesion
3Coincidental Cohesion
4Sequential Cohesion
정답 및 해설

시간적 응집도(Temporal Cohesion)는 서로 다른 기능을 수행하는 요소들이 특정 시간대에 함께 실행되도록 묶인 경우에 해당한다.
초기화·종료 처리처럼 실행 시점만 같을 뿐 기능적 연관성은 없는 모듈이 대표적인 예다.
기능 간 연관성이 전혀 없이 우연히 묶인 우연적 응집도보다는 강하지만, 실행 순서·데이터 흐름으로 연결된 순차적 응집도보다는 약하다.

문제 62
오류 제어에 사용되는 자동반복 요청방식(ARQ)이 아닌 것은?     
1Stop-and-wait ARQ
2Go-back-N ARQ
3Selective-Repeat ARQ
4Non-Acknowledge ARQ
정답 및 해설

오류 제어에 쓰이는 ARQ(자동반복요청) 방식으로는 Stop-and-wait ARQ·Go-back-N ARQ·Selective-Repeat ARQ(및 적응적 ARQ)가 있으며, 모두 수신측 응답을 확인해 오류 발생 시 프레임을 재전송하는 기법이다.
Non-Acknowledge ARQ는 실재하는 ARQ 방식이 아니다.

문제 63
다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?          
145
255
366
478
정답 및 해설

함수 cs(n)은 s=0에서 시작해 range(n+1)의 0부터 n까지를 모두 더해 반환하므로, cs(11)은 0+1++11=660+1+\cdots+11 = 66을 계산한다.
따라서 print(cs(11))의 출력은 66이다.

문제 64
다음 C언어 프로그램이 실행되었을 때의 결과는?          
1nation
2nationalter
3alter
4alternation
정답 및 해설

strcat(str, p2)는 str에 저장된 문자열 "nation" 뒤에 p2가 가리키는 문자열 "alter"를 이어붙이는 함수다.
따라서 str은 "nationalter"가 되고 printf("%s", str)의 출력은 nationalter이다.

문제 65
JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈은?     
1Heap Collector
2Garbage Collector
3Memory Collector
4Variable Collector
정답 및 해설

가비지 컬렉터(Garbage Collector)는 JAVA 힙 영역에서 더 이상 참조되지 않는(참조값을 잃거나 참조 변수 자체가 사라진) 객체를 자동으로 탐지해 회수하는 모듈이다.
개발자가 직접 메모리를 해제하지 않아도 되게 하는 JAVA의 자동 메모리 관리 기능이다.

문제 66
다음 C언어 프로그램이 실행되었을 때의 결과는?          
10
21
32
43
정답 및 해설

r1은 b<=4(참)가 성립해 1, r2는 a>0(참)과 b<5(참)이 모두 성립해 1이 되며, r3는 c가 2로 0이 아니므로 !c 결과가 0이 된다.
따라서 printf("%d", r1+r2+r3)의 출력은 1+1+0 = 2이다.

문제 67
다음 중 JAVA에서 우선순위가 가장 낮은 연산자는?     
1--
2%
3&
4=
정답 및 해설

JAVA 연산자 우선순위에서 대입 연산자(=)는 모든 연산자 중 가장 낮은 우선순위를 가진다.
증감 연산자(--), 산술 연산자(%), 비트 AND 연산자(&)는 모두 대입 연산자보다 먼저 계산되는 상위 우선순위 연산자다.

문제 68
사용자가 요청한 디스크 입·출력 내용이 다음과 같은 순서로 큐에 들어 있을 때 SSTF 스케쥴링을 사용한 경우의 처리 순서는? (단, 현재 헤드 위치는 53 이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)          
153-65-67-37-14-98-122-124-183
253-98-183-37-122-14-124-65-67
353-37-14-65-67-98-122-124-183
453-67-65-124-14-122-37-183-98
정답 및 해설

SSTF(Shortest Seek Time First)는 현재 헤드 위치에서 탐색 거리가 가장 짧은 요청을 우선 처리하는 디스크 스케줄링 기법이다.
헤드 위치 53에서 시작해 매 단계 가장 가까운 트랙을 선택하면 53→65(거리12)→67(거리2)→37(거리30)→14(거리23)→98(거리84)→122(거리24)→124(거리2)→183 순으로 처리된다.

문제 69
192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 Subnet으로 나누고 IP Subnet-zero를 적용했다. 이 때 Subnetting 된 네트워크 중 4번째 네트워크의 4번째 사용가능한 IP는 무엇인가?     
1192.168.1.192
2192.168.1.195
3192.168.1.196
4192.168.1.198
정답 및 해설

192.168.1.0/24를 4개의 서브넷으로 나누려면 2비트를 추가로 빌려 /26(블록 크기 64)으로 분할하며, subnet-zero를 적용하면 네 번째 네트워크는 192.168.1.192/26(192~255) 대역이 된다.
이 대역에서 네트워크 주소(.192)를 제외한 첫 사용 가능 IP부터 세면 .193·.194·.195·.196 순이므로 네 번째 사용 가능 IP는 192.168.1.196이다.

문제 70
C Class에 속하는 IP address는?     
1200.168.30.1
210.3.2.1 4
3225.2.4.1
4172.16.98.3
정답 및 해설

IP 주소 클래스는 첫 옥텟 값으로 구분되며 C 클래스는 192~223 범위에 해당한다.
200.168.30.1의 첫 옥텟 200이 이 범위에 속해 C 클래스이고, 10.3.2.14는 A클래스(1~126), 172.16.98.3은 B클래스(128~191), 225.2.4.1은 D클래스(224~239)에 해당한다.

문제 71
다음 C언어 프로그램이 실행되었을 때의 결과는?          
10
24
38
412
정답 및 해설

이미지의 C 코드를 읽으면, 정수형 배열 arr에 {1, 2, 3, 4}가 저장되고, 포인터 p가 arr을 가리킨다. 반복문에서 p++는 포인터를 다음 요소로 이동시키는데, 정수형 포인터이므로 4바이트씩 증가한다(32비트 정수 기준). 루프는 i가 0부터 2까지(3번) 실행되므로, p는 arr[0]에서 arr[3]까지 이동하며 3번 증가한다. 포인터 산술에서 p++를 3번 수행하면 메모리 주소가 12바이트 증가하므로, (p - arr)은 3이 되고, 이를 4로 곱하면 3 × 4 = 12가 아니라, (p - arr)은 배열 인덱스 단위로 계산되므로 최종 결과는 2 × 4 = 8이다. 루프 조건 i < 2에서 i는 0, 1만 실행되므로 p는 2번 증가하여 arr[2]를 가리키게 되고, (p - arr) = 2, 2 × 4 = 8이다.

문제 72
귀도 반 로섬(Guido van Rossum)이 발표한 언어로 인터프리터 방식이자 객체지향적이며, 배우기 쉽고 이식성이 좋은 것이 특징인 스크립트 언어는?     
1C++
2JAVA
3C#
4Python
정답 및 해설

Python귀도 반 로섬(Guido van Rossum)이 발표한 인터프리터 방식의 객체지향 스크립트 언어로, 문법이 간결해 배우기 쉽고 다양한 플랫폼에서 동작하는 이식성을 갖춘 것이 특징이다. C++·JAVA·C#은 모두 컴파일 기반 언어이거나 귀도 반 로섬과 무관한 언어이므로 해당하지 않는다.

문제 73

다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.

public class ovr {
public static void main(String [] arge) {
int arr[];
int i = 0;
arr = new int[10];
arr[0] = 0;
arr[1] = 1;
while(i<8) {
arr[i+2] = arr[i+1] + arr[i];
i++;
}
System.out.println(arr[9]);
}
}
113
221
334
455
정답 및 해설

배열이 피보나치 수열로 채워지고 마지막에 인덱스 9의 값을 출력하므로 결과는 34다.

arr[0]=0, arr[1]=1로 시작해 i가 0부터 7까지 여덟 번 도는 동안 arr[i+2] = arr[i+1] + arr[i] 를 수행하므로 arr[2]부터 arr[9]까지가 앞의 두 값을 더한 값으로 채워진다.

차례로 계산하면 arr = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 가 되고, 출력 대상인 arr[9]는 21+13 = 34다.

21은 arr[8], 13은 arr[7]의 값이므로 반복 횟수를 하나 적게 세면 나오는 값이고, 출력되는 값은 아니다.

문제 74
프로세스와 관련한 설명으로 틀린 것은?     
1프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것을 디스패치(Dispatch)라고 한다.
2프로세스 제어 블록(PCB, Process Control Block)은 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다.
3이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정을 문맥 교환(Context Switching)이라고 한다.
4프로세스는 스레드(Thread) 내에서 실행되는 흐름의 단위이며, 스레드와 달리 주소 공간에 실행 스택(Stack)이 없다.
정답 및 해설

스레드(Thread)프로세스(Process) 내에서 실행되는 흐름의 단위이며, 스레드는 프로세스와 달리 독자적인 주소 공간을 갖지 않고 프로세스의 자원을 공유하되 실행을 위한 스택(Stack)은 개별적으로 갖는다. 프로세스가 스레드 내에서 실행되며 실행 스택이 없다는 설명은 주체와 특성이 뒤바뀐 틀린 설명이다.

문제 75
모듈의 독립성을 높이기 위한 결합도(Coupling)와 관련한 설명으로 틀린 것은?     
1오류가 발생했을 때 전파되어 다른 오류의 원인이 되는 파문 효과(Ripple Effect)를 최소화해야 한다.
2인터페이스가 정확히 설정되어 있지 않을 경우 불필요한 인터페이스가 나타나 모듈 사이의 의존도는 높아지고 결합도가 증가한다.
3모듈들이 변수를 공유하여 사용하게 하거나 제어 정보를 교류하게 함으로써 결합도를 낮추어야 한다.
4다른 모듈과 데이터 교류가 필요한 경우 전역변수(Global Variable)보다는 매개변수(Parameter)를 사용하는 것이 결합도를 낮추는 데 도움이 된다.
정답 및 해설

모듈 간에 변수를 공유하거나 제어 정보를 교류하는 방식(공통 결합·제어 결합)은 모듈 간 의존성을 높여 오히려 결합도(Coupling)를 증가시키는 요인이며, 결합도를 낮추려면 전역변수 대신 매개변수를 통한 자료 전달처럼 모듈 간 상호작용을 최소화해야 한다. 변수·제어 정보 공유로 결합도를 낮춘다는 설명은 결합도의 원리와 반대되는 틀린 설명이다.

문제 76
TCP헤더와 관련한 설명으로 틀린 것은?     
1순서번호(Sequence Number)는 전달하는 바이트마다 번호가 부여된다.
2수신번호확인(Acknowledgement Number)은 상대편 호스트에서 받으려는 바이트의 번호를 정의한다.
3체크섬(Checksum)은 데이터를 포함한 세그먼트의 오류를 검사한다.
4윈도우 크기는 송수신 측의 버퍼 크기로 최대크기는 32767bit 이다.
정답 및 해설

TCP 헤더의 윈도우 크기(Window Size) 필드는 16비트로 구성되어 최대값이 65,535바이트이며, 32767bit라는 수치는 필드 길이·단위 모두 사실과 다르다. 순서번호·수신번호확인·체크섬에 대한 설명은 모두 TCP 헤더의 실제 기능과 일치한다.

문제 77
모듈화(Modularity)와 관련한 설명으로 틀린 것은?     
1소프트웨어의 모듈은 프로그래밍 언어에서 Subroutine, Function 등으로 표현될 수 있다.
2모듈의 수가 증가하면 상대적으로 각 모듈의 크기가 커지며, 모듈 사이의 상호교류가 감소하여 과부하(Overload) 현상이 나타난다.
3모듈화는 시스템을 지능적으로 관리할 수 있도록 해주며, 복잡도 문제를 해결하는 데 도움을 준다.
4모듈화는 시스템의 유지보수와 수정을 용이하게 한다.
정답 및 해설

모듈의 수가 증가하면 개별 모듈의 크기는 상대적으로 작아지고 모듈 간 상호교류(인터페이스)는 증가하여 과부하 현상이 나타나므로, 모듈 수가 증가하면 모듈 크기가 커지고 상호교류가 감소한다는 설명은 관계가 반대로 서술된 틀린 설명이다. 모듈화가 시스템 복잡도 해결과 유지보수 용이성에 기여한다는 나머지 설명은 모두 타당하다.

문제 78
다음 중 페이지 교체(Page Replacement)알고리즘이 아닌 것은?     
1FIFO(First-In-First-Out)
2LUF(Least Used First)
3Optimal
4LRU(Least Recently Used)
정답 및 해설

페이지 교체 알고리즘에는 FIFO·LRU·LFU(Least Frequently Used)·Optimal 등이 있으며, 가장 적게 사용된 페이지를 교체하는 기법은 LFU로 정의된다. LUF(Least Used First)라는 명칭은 실제 존재하는 페이지 교체 알고리즘이 아니다.

문제 79
C언어에서의 변수 선언으로 틀린 것은?     
1int else;
2int Test2;
3int pc;
4int True;
정답 및 해설

else는 C언어의 조건문에 사용되는 예약어(키워드)이므로 식별자(변수명)로 사용할 수 없어 int else; 는 잘못된 선언이다. Test2·pc·True는 예약어와 무관한 유효한 식별자이므로 변수 선언에 문제가 없다.

문제 80
파일 디스크립터(File Descriptor)에 대한 설명으로 틀린 것은?     
1파일 관리를 위해 시스템이 필요로 하는 정보를 가지고 있다.
2보조기억장치에 저장되어 있다가 파일이 개방(open)되면 주기억장치로 이동된다.
3사용자가 파일 디스크립터를 직접 참조할 수 있다.
4파일 제어 블록(File Control Block)이라고도 한다.
정답 및 해설

파일 디스크립터(File Descriptor), 즉 파일 제어 블록(File Control Block)은 파일 관리에 필요한 정보를 담아 운영체제가 관리하는 영역으로, 평소 보조기억장치에 있다가 파일이 개방되면 주기억장치로 옮겨지며 사용자가 직접 참조할 수 없고 시스템(운영체제)을 통해서만 접근된다.

문제 81
침입탐지 시스템(IDS : Intrusion Detection System)과 관련한 설명으로 틀린 것은?     
1이상 탐지 기법(Anomaly Detection)은 Signature Base나 Knowledge Base라고도 불리며 이미 발견되고 정립된 공격 패턴을 입력해두었다가 탐지 및 차단한다.
2HIDS(Host-Based Intrusion Detection)는 운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지에 대한 기록을 남기고 추적한다.
3NIDS(Network-Based Intrusion Detection System)로는 대표적으로 Snort가 있다.
4외부 인터넷에 서비스를 제공하는 서버가 위치하는 네트워크인 DMZ(Demilitarized Zone)에는 IDS가 설치될 수 있다.
정답 및 해설

이상 탐지(Anomaly Detection)는 정상 행위의 통계적 프로파일을 기준으로 이를 벗어나는 비정상 패턴을 탐지하는 기법인데, 지문의 설명(Signature Base·Knowledge Base, 이미 정립된 공격 패턴 매칭)은 실제로는 오용 탐지(Misuse Detection)에 해당한다. 나머지 보기는 각각 HIDS의 계정별 접근 기록, Snort를 대표로 하는 NIDS, DMZ 내 IDS 설치 가능성으로 모두 옳은 설명이다.

문제 82
정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(Security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은?     
1Mandatory Access Control
2User Access Control
3Discretionary Access Control
4Data-Label Access Control
정답 및 해설

강제적 접근 통제(Mandatory Access Control, MAC)는 주체와 객체 각각에 부여된 보안 레이블(Security Label)을 비교해, 높은 보안 등급의 정보가 낮은 등급의 주체에게 노출되지 않도록 강제하는 접근 제어 방식이다. 소유자가 임의로 권한을 부여하는 DAC(임의적 접근 통제)와 달리, MAC은 시스템(관리자)이 정한 보안 등급 규칙에 따라 접근 여부가 결정된다.

문제 83
구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Leaming)을 위한 오픈소스 소프트웨어 라이브러리는?     
1타조(Tajo)
2원 세그(One Seg)
3포스퀘어(Foursquare)
4텐서플로(TensorFlow)
정답 및 해설

텐서플로(TensorFlow)는 구글 브레인 팀이 개발해 공개한 기계 학습·딥러닝용 오픈소스 라이브러리로, 데이터 흐름 그래프 기반의 수치 연산을 지원한다. 타조·원 세그·포스퀘어는 각각 데이터 처리 엔진, 방송 규격, 위치 기반 SNS 서비스로 기계 학습 라이브러리가 아니다.

문제 84
국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영환경으로 구성되어 있는 개방형 클라우드 컴퓨팅 플랫폼은?     
1N20S
2PaaS-TA
3KAWS
4Metaverse
정답 및 해설

PaaS-TA는 국내 IT 서비스 경쟁력 강화를 목표로 개발된 개방형 클라우드 컴퓨팅 플랫폼(PaaS)으로, 인프라 제어·관리, 실행, 개발, 서비스, 운영 환경으로 구성된다. N20S·KAWS·Metaverse는 이러한 국산 클라우드 플랫폼과 무관한 용어이다.

문제 85
정보 보안을 위한 접근 제어(Access Control)과 관련한 설명으로 틀린 것은?     
1적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근할 수 있도록 통제하는 것이다.
2시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 볼 수 있다.
3DBMS에 보안 정책을 적용하는 도구인 XDMCP를 통해 데이터베이스에 대한 접근제어를 수행할 수 있다.
4네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근제어와 ACL(Access Control List) 등 있다.
정답 및 해설

XDMCP(X Display Manager Control Protocol)는 X 윈도우 시스템에서 원격 디스플레이 세션을 관리하기 위한 프로토콜로, DBMS 보안 정책을 적용하는 도구가 아니다. 나머지 보기는 각각 인가자 통제라는 접근 제어의 정의, IP·포트 기반 통제, 네트워크 장비의 관리 인터페이스·ACL 통제로 모두 옳은 설명이다.

문제 86
소프트웨어 개발 프레임워크와 관련한 설명으로 틀린 것은?     
1반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장 받을 수 있게하는 개발 소프트웨어이다.
2개발해야 할 애플리케이션의 일부분이 이미구현되어 있어 동일한 로직 반복을 줄일 수있다.
3라이브러리와 달리 사용자 코드가 직접호출하여 사용하기 때문에 소프트웨어 개발프레임워크가 직접 코드의 흐름을 제어할수 없다.
4생산성 향상과 유지보수성 향상 등의장점이 있다.
정답 및 해설

소프트웨어 개발 프레임워크는 제어의 역전(IoC, Inversion of Control) 원칙에 따라 프레임워크가 전체 실행 흐름을 제어하며 필요한 시점에 사용자(개발자)가 작성한 코드를 호출하는 구조이다. 지문은 이를 반대로, 사용자 코드가 직접 호출하여 프레임워크가 흐름을 제어할 수 없다고 서술하고 있어 틀린 설명이다.

문제 87
물리적 배치와 상관없이 논리적으로 LAN을구성하여 Broadcast Domain을 구분할 수있게 해주는 기술로 접속된 장비들의 성능향상 및 보안성 증대 효과가 있는 것은?     
1VLAN
2STP
3L2AN
4ARP
정답 및 해설

VLAN(Virtual LAN)은 스위치의 포트를 논리적으로 그룹화해 물리적 배치와 무관하게 브로드캐스트 도메인을 분리하는 기술로, 트래픽 감소를 통한 성능 향상과 네트워크 간 격리를 통한 보안성 증대 효과를 제공한다. STP는 루프 방지용 프로토콜, ARP는 IP-MAC 주소 변환 프로토콜로 브로드캐스트 도메인 분리 기능과는 무관하다.

문제 88
SQL Injection 공격과 관련한 설명으로 틀린것은?     
1SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
2SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
3DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
4로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
정답 및 해설

SQL Injection의 기본 개념(임의 SQL 구문 삽입, 웹-DB 연동 구간에서 발생, 사용자 입력값을 통한 공격)은 DBMS 종류에 관계없이 공통되지만, 실제 구체적 공격 기법과 문법(주석 처리 방식, 내장 함수, 오류 메시지 형식 등)은 MySQL·Oracle·MSSQL 등 DBMS마다 차이가 있다. 따라서 공격 기법이 모두 동일하다는 설명은 틀린 설명이다.

문제 89
비대칭 암호화 방식으로 소수를 활용한암호화 알고리즘은?     
1DES
2AES
3SMT
4RSA
정답 및 해설

RSA는 큰 수의 소인수분해가 어렵다는 수학적 특성을 이용한 대표적인 비대칭(공개키) 암호화 알고리즘이다. DES와 AES는 대칭키 암호화 알고리즘이고, SMT는 암호화 알고리즘이 아니다.

문제 90
다음에서 설명하는 IT 스토리지 기술은?          
1Software Defined Storage
2Distribution Oriented Storage
3Network Architected Storage
4Systematic Network Storage
정답 및 해설

이미지의 설명을 읽으면 소프트웨어 기반의 스토리지 관리, 하드웨어와 소프트웨어 분리, 가상화를 통한 유연한 확장 등의 특징이 보입니다. 이는 Software Defined Storage(SDS)의 핵심 개념으로, 스토리지 인프라를 소프트웨어로 정의하고 제어하여 하드웨어 종속성을 제거하는 기술입니다. Distribution Oriented Storage는 분산 저장 기술, Network Architected Storage와 Systematic Network Storage는 실제 표준 용어가 아니며, SDS만이 스토리지 가상화와 소프트웨어 중심 관리라는 현대 스토리지 아키텍처 표준을 나타냅니다.

문제 91
Cocomo model 중 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술계산용, 비즈니스 자료 처리용으로 5만 라인이하의 소프트웨어를 개발하는 유형은?     
1Embeded
2Organic
3Semi-detached
4Semi-embeded
정답 및 해설

COCOMO 모형은 규모와 특성에 따라 Organic(조직형)·Semi-detached(반분리형)·Embedded(내장형)으로 구분된다. Organic형은 기관 내부에서 개발되는 중소규모 소프트웨어로 일괄 자료처리·과학기술계산·비즈니스 자료처리용이며 5만 라인(50KDSI) 이하 규모를 대상으로 한다.

문제 92
다음 내용이 설명하는 것은?          
1Format String
2Ransomware
3Buffer overflow
4Adware
정답 및 해설

랜섬웨어(Ransomware)는 사용자의 파일이나 시스템을 암호화하여 사용할 수 없게 만든 뒤, 이를 복구해 주는 대가로 금품을 요구하는 악성 프로그램이다. Format String은 서식 문자열 처리 취약점, Buffer overflow는 메모리 경계를 벗어난 값 기록으로 발생하는 취약점, Adware는 광고성 소프트웨어를 가리키므로 금품 요구를 목적으로 하는 설명과는 구별된다.

문제 93
생명주기 모형 중 가장 오래된 모형으로 많은적용 사례가 있지만 요구사항의 변경이어렵고 각 단계의 결과가 확인 되어야 다음단계로 넘어갈 수 있는 선형 순차적, 고전적생명 주기 모형이라고도 하는 것은?     
1Waterfall Model
2Prototype Model
3Cocomo Model
4Spiral Model
정답 및 해설

Waterfall Model(폭포수 모형)은 가장 오래된 소프트웨어 생명주기 모형으로, 요구분석·설계·구현·시험 등 각 단계를 순차적으로 진행하며 한 단계의 결과가 확인되어야 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다. 개발 도중 요구사항 변경이나 보완이 어렵다는 한계가 있어 고전적 생명주기 모형이라고도 불린다.

문제 94
소프트웨어 생명주기 모형 중 Spiral Model에 대한 설명으로 틀린 것은?     
1비교적 대규모 시스템에 적합하다.
2개발 순서는 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가 순으로 진행된다.
3소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 한다.
4계획, 설계, 개발, 평가의 개발 주기가 한번만 수행된다.
정답 및 해설

Spiral Model(나선형 모형)은 계획 및 정의·위험 분석·공학적 개발·고객 평가의 주기를 여러 번 반복하며 점진적으로 완성도를 높이는 모형으로, 대규모 시스템에서 발생할 수 있는 위험을 관리·최소화하는 데 목적이 있다. 따라서 "개발 주기가 한 번만 수행된다"는 설명은 나선형 모형의 반복적 특성에 반하므로 틀린 설명이다.

문제 95
특정 사이트에 매우 많은 ICMP Echo를 보내면, 이에 대한 응답(Respond)을 하기 위해 시스템 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격방법은?     
1Role-Based Access Control
2Ping Flood
3Brute-Force
4Trojan Horses
정답 및 해설

Ping Flood는 다량의 ICMP Echo Request를 대상 시스템에 전송해 그 응답 처리에 필요한 시스템 자원을 고갈시켜 정상적인 서비스를 방해하는 서비스 거부(DoS) 공격이다. Brute-Force는 인증정보를 무차별 대입으로 알아내는 공격이므로 자원 고갈을 통한 시스템 마비와는 공격 방식이 다르다.

문제 96
TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메시징 프로토콜로 최근 IoT 환경에서 자주 사용되고 있는 프로토콜은?     
1MLFQ
2MQTT
3Zigbee
4MTSP
정답 및 해설

MQTT(Message Queuing Telemetry Transport)는 TCP/IP 기반 네트워크에서 동작하는 발행-구독(Publish-Subscribe) 방식의 경량 메시징 프로토콜로, 대역폭과 자원이 제한된 IoT 환경의 기기 간 통신에 널리 사용된다.

문제 97
시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근권한도 얻는 시스템을 의미하는 것은?     
1SOS
2SBO
3SSO
4SOA
정답 및 해설

SSO(Single Sign-On)는 한 번의 사용자 인증만으로 여러 시스템 및 서비스에 대한 접근 권한을 함께 획득할 수 있게 하는 통합 인증 체계이다.

문제 98
시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과 값으로 저장된다. 이때 암호공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미하는 것은?     
1Pass flag
2Bucket
3Opcode
4Salt
정답 및 해설

Salt는 패스워드를 해시 또는 암호화하여 저장할 때 원본 값에 추가로 부여하는 임의의 값으로, 동일한 패스워드라도 서로 다른 암호화 결과값이 저장되도록 하여 레인보우 테이블 등을 이용한 암호 공격을 방어한다.

문제 99
S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법은?     
1Effort Per Task기법
2전문가 감정 기법
3델파이기법
4LOC기법 1
정답 및 해설

LOC 기법은 소프트웨어 각 기능의 원시 코드 라인 수에 대한 낙관치·비관치·기대치(중간치)를 측정한 뒤, 예측치=a+4m+b6\text{예측치}=\frac{a+4m+b}{6}(a=낙관치, m=기대치, b=비관치) 공식으로 예상 라인 수를 구하고 이를 바탕으로 비용을 산정하는 기법이다.

문제 100
오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?     
1WWW
2OWASP
3WBSEC
4ITU
정답 및 해설

OWASP(Open Web Application Security Project)는 웹 애플리케이션을 통한 정보 유출, 악성 스크립트, 보안 취약점 등을 연구하고 웹 보안 표준(OWASP Top 10 등)을 제시하는 개방형 웹 애플리케이션 보안 프로젝트이다.