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

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

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

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

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

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

100문항 · 객관식 · 정답·해설 포함
문제 1
시스템의 구성요소로 볼 수 없는 것은?    
1Process
2Feedback
3Maintenance
4Control
정답 및 해설

시스템은 일반적으로 Input·Process·Output·Feedback·Control을 구성요소로 본다. Maintenance(유지보수)는 시스템 운영 이후에 이루어지는 활동이지 시스템 자체의 구성요소가 아니다.

문제 2
유스케이스(Usecase)에 대한 설명 중 옳은 것은?    
1유스케이스 다이어그램은 개발자의 요구를 추출하고 분석하기 위해 주로 사용한다.
2액터는 대상 시스템과 상호 작용하는 사람이나 다른 시스템에 의한 역할이다.
3사용자 액터는 본 시스템과 데이터를 주고받는 연동 시스템을 의미한다.
4연동의 개념은 일방적으로 데이터를 파일이나 정해진 형식으로 넘겨주는 것을 의미한다.
정답 및 해설

액터(Actor)는 대상 시스템과 상호작용하는 사람이나 다른 시스템에 의한 역할이라는 것이 유스케이스 다이어그램의 표준 정의다. 유스케이스 다이어그램은 개발자가 아니라 사용자의 요구사항을 추출·분석하기 위해 쓰이며, 연동 시스템을 뜻하는 것은 사용자 액터가 아니라 시스템 액터이고, 연동은 일방적 전달이 아니라 상호작용을 의미하므로 나머지 보기는 틀리다.

문제 3
요구사항 개발 프로세스의 순서로 옳은 것은?        
1㉠ - ㉡ - ㉢ - ㉣
2㉠ - ㉢ - ㉡ - ㉣
3㉠ - ㉣ - ㉡ - ㉢
4㉠ - ㉡ - ㉣ - ㉢
정답 및 해설

요구사항 개발 프로세스는 수집 → 분석 → 정의 → 검증의 순서로 진행된다. 이미지의 ㉠은 수집(requirements gathering), ㉡은 분석(analysis), ㉢은 정의(specification), ㉣는 검증(validation)을 나타낸다. 먼저 stakeholder로부터 요구사항을 수집한 후, 수집된 요구사항들의 충돌·불완전성을 분석하고, 이를 바탕으로 명확한 요구사항 명세서를 정의한 다음, 최종적으로 정의된 요구사항이 실제 요구를 만족하는지 검증하는 단계적 프로세스이다.

문제 4
객체지향 기법에서 같은 클래스에 속한 각각의 객체를 의미하는 것은?    
1instance
2message
3method
4module
정답 및 해설

인스턴스(instance)는 객체지향에서 같은 클래스로부터 생성된 개별 객체를 가리키는 용어다. 메시지(message)는 객체 간 상호작용 수단, 메소드(method)는 객체의 동작(연산), 모듈(module)은 프로그램 구성 단위로 각각 의미가 다르다.

문제 5
객체지향 설계에서 객체가 가지고 있는 속성과 오퍼레이션의 일부를 감추어서 객체의 외부에서는 접근이 불가능하게 하는 개념은?
1조직화(Organizing)
2캡슐화(Encapsulation)
3정보은닉(Infomation Hiding)
4구조화(Structuralization)
정답 및 해설

이 문항은 실제 시험에서 출제 오류로 처리되었고, 확정답안은 정보은닉(Information Hiding)이다. 정보은닉은 객체 내부의 속성과 오퍼레이션의 세부 구현을 외부에서 접근할 수 없도록 감추는 개념으로, 캡슐화와 밀접히 연관되지만 별개의 용어로 구분된다.

문제 6
GoF (Gangs of Four) 디자인 패턴에 대한 설명으로 틀린 것은?    
1factory method pattern은 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성하도록 하는 방식이다.
2prototype pattern은 prototype을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조이다.
3bridge pattern은 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 한다.
4mediator pattern은 객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성하게 해준다.
정답 및 해설

브리지(Bridge) 패턴은 추상화와 구현을 분리하여 각각을 독립적으로 확장할 수 있게 하는 구조 패턴이다. 그런데 문제에 제시된 '기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할'은 어댑터(Adapter) 패턴에 대한 설명이므로 브리지 패턴의 설명으로는 틀리다.

문제 7
요구사항 분석이 어려운 이유가 아닌 것은?    
1개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.
2사용자의 요구는 예외가 거의 없어 열거와 구조화가 어렵지 않다.
3사용자의 요구사항이 모호하고 불명확하다.
4소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있다.
정답 및 해설

사용자의 요구사항은 실제로 예외 상황이 많고 열거·구조화가 어려운 것이 요구사항 분석을 어렵게 만드는 원인 중 하나다. '예외가 거의 없어 열거와 구조화가 어렵지 않다'는 설명은 이와 반대되므로 요구사항 분석이 어려운 이유에 해당하지 않는다.

문제 8
소프트웨어 아키텍처 설계에서 시스템 품질속성이 아닌 것은?    
1가용성 (Availability)
2독립성 (Isolation)
3변경 용이성 (Modifiability)
4사용성(Usability)
정답 및 해설

소프트웨어 아키텍처의 시스템 품질속성은 가용성·변경 용이성·사용성 외에 성능·보안·신뢰성 등을 포함하는 개념이다. 독립성(Isolation)은 이러한 품질속성 목록에 속하지 않는다.

문제 9
다음 설명에 해당하는 시스템으로 옳은 것은?        
1연계 서버
2중계 서버
3송신 시스템
4수신 시스템
정답 및 해설

이미지에 표시된 시스템은 데이터를 생성하여 다른 시스템으로 전송하는 역할을 하고 있으므로 송신 시스템이 맞다. 연계 서버는 여러 시스템 간 중간에서 데이터를 변환·매개하는 역할이고, 중계 서버는 네트워크 통신 경로상의 중간 지점으로 신호를 재전송하는 역할이며, 수신 시스템은 데이터를 받아들이는 쪽이므로 모두 설명과 맞지 않다.

문제 10
CASE(Computer-Aided Software Engineering)의 원천 기술이 아닌 것은?     
1구조적 기법
2프로토타이핑 기술
3정보 저장소 기술
4일괄처리 기술
정답 및 해설

CASE의 원천 기술은 구조적 기법·프로토타이핑 기술·정보 저장소(Repository) 기술 및 자동화 도구 기술 등이다. 일괄처리 기술은 이러한 CASE 원천 기술에 해당하지 않는다.

문제 11
객체에게 어떤 행위를 하도록 지시하는 명령은?     
1Class
2Package
3Object
4Message
정답 및 해설

메시지(Message)는 객체 간에 주고받는 명령으로, 송신 객체가 수신 객체에게 특정 행위(오퍼레이션)를 수행하도록 지시하는 역할을 한다. 클래스는 객체의 틀, 객체는 클래스의 인스턴스, 패키지는 클래스들의 묶음이므로 행위 지시와는 무관하다.

문제 12
서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일은?     
1클라이언트 서버 구조
2계층 구조
3MVC 구조
4파이프 필터 구조
정답 및 해설

파이프 필터(Pipe-Filter) 구조는 각 서브시스템(필터)이 입력 데이터를 받아 처리한 뒤 파이프를 통해 다음 필터로 결과를 전달하는 과정이 반복되는 아키텍처 스타일이다. 컴파일러의 어휘분석-구문분석-최적화-코드생성 단계처럼 데이터 흐름 중심 처리에 적합하다.

문제 13
럼바우(Rumbaugh)의 객체지향 분석에서 사용하는 분석 활동으로 옳은 것은?     
1객체 모델링, 동적 모델링, 정적 모델링
2객체 모델링, 동적 모델링, 기능 모델링
3동적 모델링, 기능 모델링, 정적 모델링
4정적 모델링, 객체 모델링, 기능 모델링
정답 및 해설

럼바우(Rumbaugh)의 객체지향 분석(OMT)은 객체 모델링(객체·클래스·속성·관계를 다이어그램으로 표현) → 동적 모델링(상태·이벤트에 따른 제어 흐름 표현) → 기능 모델링(자료 흐름과 처리 기능 표현)의 세 단계로 진행된다. 정적 모델링은 럼바우 OMT의 표준 용어가 아니다.

문제 14
UML 다이어그램이 아닌 것은?     
1액티비티 다이어그램(Activity diagram)
2절차 다이어그램(Procedural diagram)
3클래스 다이어그램(Class diagram)
4시퀀스 다이어그램(Sequence diagram)
정답 및 해설

UML은 클래스·유스케이스·시퀀스·협력(커뮤니케이션)·상태·액티비티·컴포넌트·배치 다이어그램 등을 표준 다이어그램으로 정의하며, 절차 다이어그램(Procedural diagram)은 이 목록에 포함되지 않는 비표준 명칭이다.

문제 15
UML 모델에서 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계로 옳은 것은?     
1Dependency
2Realization
3Generalization
4Association
정답 및 해설

실체화(Realization) 관계는 인터페이스와 같은 명세(사양) 요소가 특정 오퍼레이션의 수행을 지정하고, 이를 클래스가 실제로 구현(수행)하는 의미적 관계이다. 연관(Association)은 객체 간 참조 관계, 의존(Dependency)은 일시적 사용 관계, 일반화(Generalization)는 상속 관계로 각각 성격이 다르다.

문제 16
다음 중 상위 CASE 도구가 지원하는 주요기능으로 볼 수 없는 것은?     
1모델들 사이의 모순검사 기능
2전체 소스코드 생성 기능
3모델의 오류검증 기능
4자료흐름도 작성 기능
정답 및 해설

상위(Upper) CASE 도구는 요구분석·설계 단계에서 자료흐름도 작성, 모델 간 모순검사, 모델 오류검증 등을 지원하는 도구이며, 전체 소스코드 생성은 설계 결과를 코드로 변환하는 하위(Lower) CASE 도구의 기능이다.

문제 17
요구사항 관리 도구의 필요성으로 틀린 것은?     
1요구사항 변경으로 인한 비용 편익 분석
2기존 시스템과 신규 시스템의 성능 비교
3요구사항 변경의 추적
4요구사항 변경에 따른 영향 평가
정답 및 해설

요구사항 관리 도구는 요구사항 변경에 따른 비용 편익 분석, 변경 추적, 영향 평가를 지원해 요구사항을 체계적으로 관리하는 데 목적이 있다. 기존 시스템과 신규 시스템의 성능 비교는 요구사항 관리와 무관한 별도의 성능 평가 활동이다.

문제 18
애자일 개발 방법론이 아닌 것은?     
1스크럼(Scrum)
2익스트림 프로그래밍(XP, eXtreme Programming)
3기능 주도 개발(FDD, Feature Driven Development)
4하둡(Hadoop)
정답 및 해설

스크럼·익스트림 프로그래밍(XP)·기능 주도 개발(FDD)은 반복·점증 개발과 고객 협업을 중시하는 애자일 방법론이다. 하둡(Hadoop)은 대용량 분산 데이터 처리를 위한 빅데이터 프레임워크로 개발 방법론이 아니다.

문제 19
GoF(Gangs of Four) 디자인 패턴 중 생성패턴으로 옳은 것은?     
1singleton pattern
2adapter pattern
3decorator pattern
4state pattern
정답 및 해설

GoF 디자인 패턴 중 싱글턴(Singleton)은 클래스의 인스턴스를 하나만 생성하도록 보장하는 생성 패턴이다. 어댑터(Adapter)와 데코레이터(Decorator)는 구조 패턴, 스테이트(State)는 행위 패턴에 속한다.

문제 20
사용자 인터페이스(UI)의 특징으로 틀린 것은?     
1구현하고자 하는 결과의 오류를 최소화한다.
2사용자의 편의성을 높임으로써 작업시간을 증가시킨다.
3막연한 작업 기능에 대해 구체적인 방법을 제시하여 준다.
4사용자 중심의 상호 작용이 되도록 한다.
정답 및 해설

사용자 인터페이스(UI)는 사용자의 편의성을 높여 작업 시간을 단축시키는 것을 목표로 하며, 오류를 최소화하고 구체적인 방법을 제시해 사용자 중심의 상호작용을 지원한다. 따라서 편의성을 높임으로써 작업시간을 증가시킨다는 설명은 UI의 목적과 반대되므로 틀린 특징이다.

문제 21
힙 정렬(Heap Sort)에 대한 설명으로 틀린것은?     
1정렬할 입력 레코드들로 힙을 구성하고 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법이다.
2평균 수행 시간은 O(nlog2n)이다.
3완전 이진트리(complete binary tree)로 입력자료의 레코드를 구성한다.
4최악의 수행 시간은 O(2n4)이다.
정답 및 해설

힙 정렬(Heap Sort)은 완전 이진트리 형태의 을 구성한 뒤 가장 큰(또는 작은) 키를 가진 루트 노드를 반복적으로 제거·재구성하며 정렬하는 기법으로, 힙 재구성에 O(log n)이 걸리는 과정을 n번 반복하므로 최선·평균·최악 모두 O(n log n)이다.
따라서 최악의 수행 시간이 O(2n4)라는 표현은 힙 정렬의 시간복잡도와 무관한 잘못된 진술이다.

문제 22
다음 중 단위 테스트를 통해 발견할 수 있는 오류가 아닌 것은?     
1알고리즘 오류에 따른 원치 않는 결과
2탈출구가 없는 반복문의 사용
3모듈 간의 비정상적 상호작용으로 인한 원치 않는 결과
4틀린 계산 수식에 의한 잘못된 결과
정답 및 해설

단위 테스트는 하나의 모듈(함수·클래스) 내부의 논리 오류를 검증하는 것으로, 알고리즘 오류, 탈출구 없는 반복문, 잘못된 계산 수식 등은 모듈 내부 검사로 발견할 수 있다.
반면 모듈 간의 비정상적 상호작용으로 인한 오류는 여러 모듈이 결합된 이후에 나타나는 문제이므로 통합 테스트의 영역이며 단위 테스트로는 발견하기 어렵다.

문제 23
다음 설명의 소프트웨어 테스트의 기본원칙은?          
1살충제 패러독스
2결함 집중
3오류 부재의 궤변
4완벽한 테스팅은 불가능
정답 및 해설

결함 집중(Defect Clustering)은 소프트웨어에 존재하는 결함의 대부분이 소수의 특정 모듈에 몰려 있는 경향을 말하며, 전체 결함의 약 80%가 20%의 모듈에서 발견된다는 파레토 법칙과 연관된 테스트 기본 원칙이다.
이는 결함이 발견된 모듈에 추가 테스트 자원을 집중해야 함을 시사한다.

문제 24
버전 관리 항목 중 저장소에 새로운 버전의 파일로 갱신하는 것을 의미하는 용어는?     
1형상 감사(Configuration Audit)
2롤백 (Rollback)
3단위 테스트(Unit Test)
4체크인(Check-In)
정답 및 해설

체크인(Check-In)은 개발자가 로컬에서 수정·작업한 파일을 형상관리 저장소(repository)에 반영하여 새로운 버전으로 갱신하는 것을 의미한다.
이는 저장소의 최신 버전을 로컬로 받아오는 체크아웃(Check-Out)과 반대되는 개념이다.

문제 25
소프트웨어 테스트와 관련한 설명으로 틀린것은?     
1화이트 박스 테스트는 모듈의 논리적인 구조를 체계적으로 점검할 수 있다.
2블랙박스 테스트는 프로그램의 구조를 고려하지 않는다.
3테스트 케이스에는 일반적으로 시험 조건,테스트 데이터, 예상 결과가 포함되어야한다.
4화이트박스 테스트에서 기본 경로(BasisPath)란 흐름 그래프의 시작 노드에서 종료노드까지의 서로 독립된 경로로 싸이클을 허용하지 않는 경로를 말한다.
정답 및 해설

기본 경로(Basis Path)는 흐름 그래프의 시작 노드에서 종료 노드까지 이르는 서로 독립적인 경로들의 집합을 말하지만, 반복문(루프)을 0회·1회 등 서로 다른 횟수로 통과하는 경로도 독립 경로에 포함될 수 있어 사이클(반복)을 허용하지 않는다는 설명은 틀렸다.
화이트박스 테스트는 모듈의 논리 구조를 직접 점검하고, 블랙박스 테스트는 내부 구조와 무관하게 입출력만으로 검증한다는 나머지 설명은 옳다.

문제 26
애플리케이션의 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 테스트 자동화 도구는?     
1명세 기반 테스트 설계 도구
2코드 기반 테스트 설계 도구
3기능 테스트 수행 도구
4성능 테스트 도구
정답 및 해설

성능 테스트 도구는 가상의 다수 사용자를 생성하여 애플리케이션에 부하를 가하고 처리량·응답시간·경과시간·자원사용률 등을 측정함으로써 성능 목표 달성 여부를 확인하는 테스트 자동화 도구이다(예: LoadRunner, JMeter).
명세 기반·코드 기반 테스트 설계 도구나 기능 테스트 수행 도구는 기능적 정확성 검증에 초점을 두므로 부하·응답시간 측정과는 목적이 다르다.

문제 27
소프트웨어 형상 관리에 대한 설명으로 거리가 먼 것은?     
1소프트웨어에 가해지는 변경을 제어하고 관리한다.
2프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 모두 관리 대상이다.
3대표적인 형상관리 도구로 Ant, Maven, Gradle 등이 있다.
4유지 보수 단계뿐만 아니라 개발 단계에도 적용할 수 있다.
정답 및 해설

형상관리 도구는 소프트웨어 산출물(프로젝트 계획서·분석서·설계서·프로그램·테스트 케이스 등)의 버전과 변경 이력을 관리하는 도구로 Git, SVN, CVS, ClearCase 등이 대표적이다.
Ant·Maven·Gradle은 컴파일·패키징·의존성 관리를 자동화하는 빌드 도구이지 형상관리 도구가 아니므로 해당 설명이 거리가 멀다.

문제 28
디지털 저작권 관리(DRM) 구성 요소가 아닌 것은?     
1Dataware house
2DRM Controller
3Packager
4Contents Distributor
정답 및 해설

DRM(디지털 저작권 관리)의 구성요소로는 콘텐츠를 암호화하는 Packager, 라이선스·정책을 관리하는 DRM Controller, 암호화된 콘텐츠를 배포하는 Contents Distributor, 이 외에 Contents Provider·Clearing House·DRM Agent 등이 있다.
데이터웨어하우스(Data warehouse)는 대용량 데이터 분석·저장을 위한 시스템으로 DRM 구성요소에 해당하지 않는다.

문제 29
다음 설명의 소프트웨어 버전 관리도구 방식은?          
1단일 저장소 방식
2분산 저장소 방식
3공유폴더 방식
4클라이언트·서버 방식
정답 및 해설

분산 저장소 방식은 중앙 저장소뿐 아니라 각 개발자의 로컬 환경에도 전체 버전 이력을 가진 저장소를 두어, 로컬에서 커밋한 뒤 원격 저장소와 동기화(push/pull)하는 버전 관리 방식이다(대표적으로 Git).
이는 하나의 중앙 저장소만 두는 단일 저장소 방식이나 서버가 파일을 직접 관리하는 클라이언트·서버 방식과 구분된다.

문제 30
블랙박스 테스트를 이용하여 발견할 수 있는 오류가 아닌 것은?     
1비정상적인 자료를 입력해도 오류 처리를 수행하지 않는 경우
2정상적인 자료를 입력해도 요구된 기능이 제대로 수행되지 않는 경우
3반복 조건을 만족하는데도 루프 내의 문장이 수행되지 않는 경우
4경계값을 입력할 경우 요구된 출력 결과가 나오지 않는 경우
정답 및 해설

블랙박스 테스트는 프로그램의 내부 구조나 제어 흐름을 보지 않고 입력에 대한 출력 결과만으로 검증하는 기법이다.
반복 조건을 만족하는데도 루프 내부 문장이 수행되지 않는 경우는 프로그램 내부의 제어 흐름 구조를 살펴봐야 발견할 수 있는 오류이므로, 이는 화이트박스 테스트(예: 루프 테스트)의 영역이지 블랙박스 테스트로 발견할 수 있는 오류가 아니다.

문제 31
다음 자료를 버블 정렬을 이용하여 오름차순으로 정렬할 경우 Pass 2의 결과는?          
13, 5, 6, 7, 9
26, 7, 3, 5, 9
33, 5, 9, 6, 7
46, 3, 5, 7, 9
정답 및 해설

버블 정렬은 인접한 두 값을 비교해 큰 값을 오른쪽으로 밀어내며, 한 Pass가 끝날 때마다 뒤쪽부터 정렬 값이 하나씩 확정된다.
초기값 9, 6, 7, 3, 5에서 Pass 1을 수행하면 (9,6)→(9,7)→(9,3)→(9,5) 순으로 모두 교환되어 6, 7, 3, 5, 9가 된다.
이어서 Pass 2에서는 (6,7) 비교는 교환 없음, (7,3)과 (7,5)는 교환, 마지막 (7,9)는 교환 없음이 일어나 결과가 6, 3, 5, 7, 9가 된다.

문제 32
정렬된 N개의 데이터를 처리하는 데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?     
1합병정렬
2버블정렬
3선택정렬
4삽입정렬
정답 및 해설

합병정렬(Merge Sort)은 데이터를 반씩 분할해 재귀적으로 정렬한 뒤 병합하는 방식으로, 분할 단계가 log2N\log_2 N회 반복되고 각 단계마다 N개의 원소를 병합하므로 시간복잡도가 항상 O(Nlog2N)O(N\log_2 N)이다.
반면 버블정렬·선택정렬·삽입정렬은 단순 비교·교환 기반으로 평균 및 최악 시간복잡도가 O(N2)O(N^2)이다.

문제 33
다음 postfix로 표현된 연산식의 연산 결과로 옳은 것은?          
135
242
381
4360
정답 및 해설

후위표기법(postfix)은 피연산자를 스택에 쌓다가 연산자를 만나면 스택에서 두 값을 꺼내 연산한 뒤 결과를 다시 push하는 방식으로 계산한다.
3 4 * 5 6 * +를 처리하면 먼저 3과 4를 곱해 12를 push하고, 이어 5와 6을 곱해 30을 push한 뒤, 마지막 +에서 12와 30을 더해 최종 결과 42가 된다.

문제 34
EAI(Enterprise Application Integration) 구축 유형에서 애플리케이션 사이에 미들웨어를 두어 처리하는 것은?
1Message Bus
2Point-to-point
3Hub &Spoke
4Hybrid
정답 및 해설

EAI 구축 유형 중 메시지 버스(Message Bus) 방식은 애플리케이션 사이에 미들웨어(버스)를 두고 이를 통해 표준화된 방식으로 데이터를 전송·중계한다.
이는 애플리케이션을 1:1로 직접 연결하는 Point-to-Point, 중앙 허브가 모든 연계를 집중 관리하는 Hub&Spoke, 두 방식을 혼합한 Hybrid와 구분된다.

문제 35
인터페이스 구현 검증 도구가 아닌 것은?     
1Foxbase
2STAF
3watir
4xUnit
정답 및 해설

STAF·watir·xUnit은 각각 분산 테스트 자동화 프레임워크, 웹 애플리케이션 테스트 도구, 단위 테스트 프레임워크로 인터페이스 구현 검증에 활용된다.
반면 Foxbase는 dBASE 계열의 데이터베이스 관리 프로그램으로 테스트 도구가 아니다.

문제 36
클린코드 작성원칙에 대한 설명으로 틀린 것은?     
1코드의 중복을 최소화 한다.
2코드가 다른 모듈에 미치는 영향을 최대화하도록 작성한다.
3누구든지 코드를 쉽게 읽을 수 있도록 작성한다.
4간단하게 코드를 작성한다.
정답 및 해설

클린코드는 다른 코드(모듈)에 미치는 영향, 즉 의존성을 최소화하도록 작성해 변경 시 파급 효과를 줄이는 것을 원칙으로 한다.
따라서 '다른 모듈에 미치는 영향을 최대화하도록 작성한다'는 설명은 클린코드 원칙에 반한다.

문제 37
소프트웨어 패키징에 대한 설명으로 틀린 것은?     
1패키징은 개발자 중심으로 진행한다.
2신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징 한다.
3고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.
4범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.
정답 및 해설

소프트웨어 패키징은 개발자가 아닌 사용자(고객) 중심으로 진행되어야 하며, 사용자가 최소한의 환경 설정만으로 쉽게 사용할 수 있도록 범용 배포 형태로 구성하는 것이 원칙이다.
따라서 '개발자 중심으로 진행한다'는 설명은 틀린 내용이다.

문제 38
공학적으로 잘된 소프트웨어(Well Engineered Software)의 설명 중 틀린 것은?     
1소프트웨어는 유지보수가 용이해야 한다.
2소프트웨어는 신뢰성이 높아야 한다.
3소프트웨어는 사용자 수준에 무관하게 일관된 인터페이스를 제공해야 한다.
4소프트웨어는 충분한 테스팅을 거쳐야 한다.
정답 및 해설

공학적으로 잘된 소프트웨어는 사용자의 수준과 요구에 맞는 인터페이스를 제공해야 하며, 이러한 사용성(Usability)이 특성 중 하나다.
따라서 '사용자 수준에 무관하게 일관된 인터페이스를 제공해야 한다'는 설명은 틀리며, 유지보수 용이성·신뢰성·충분한 테스팅은 올바른 특성이다.

문제 39
테스트와 디버그의 목적으로 옳은 것은?     
1테스트는 오류를 찾는 작업이고 디버깅은 오류를 수정하는 작업이다.
2테스트는 오류를 수정하는 작업이고 디버깅은 오류를 찾는 작업이다.
3둘 다 소프트웨어의 오류를 찾는 작업으로 오류 수정은 하지 않는다.
4둘 다 소프트웨어 오류의 발견, 수정과 무관하다.
정답 및 해설

테스트는 소프트웨어에 존재하는 오류를 찾아내는 작업이고, 디버깅은 테스트로 발견된 오류의 원인을 찾아 수정하는 작업이다.
즉 두 활동은 각각 오류 발견과 오류 수정이라는 서로 다른 목적을 갖는다.

문제 40
다음 중 스택을 이용한 연산과 거리가 먼 것은?     
1선택정렬
2재귀호출
3후위표현(Post-fix expression)의 연산
4깊이우선탐색
정답 및 해설

재귀호출은 함수 복귀 주소를 스택에 저장하고, 후위표현(postfix) 연산은 피연산자를 스택에 push하며 계산하고, 깊이우선탐색(DFS)은 방문 경로를 스택으로 관리하므로 모두 스택 기반 연산이다.
선택정렬은 매 회전마다 배열 전체를 순회하며 최솟값을 찾아 교환하는 방식으로 스택을 사용하지 않는다.

문제 41
병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법이 아닌 것은?     
1라운드-로빈
2범위 분할
3예측 분할
4해시 분할
정답 및 해설

병렬 데이터베이스의 수평 분할 기법에는 라운드-로빈·범위 분할·해시 분할이 있으며, 각각 순차 배분·값의 범위·해시 함수 결과에 따라 튜플을 여러 노드에 분산 저장한다. 예측 분할은 표준적인 수평 분할 기법으로 분류되지 않는 용어이다.

문제 42
시스템 카탈로그에 대한 설명으로 옳지 않은 것은?     
1사용자가 직접 시스템 카탈로그의 내용을 갱신하여 데이터베이스 무결성을 유지한다.
2시스템 자신이 필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
3시스템 카탈로그에 저장되는 내용을 메타데이터라고도 한다.
4시스템 카탈로그는 DBMS가 스스로 생성하고 유지한다.
정답 및 해설

시스템 카탈로그는 DBMS가 스스로 생성·유지·관리하는 메타데이터 저장소로서, 사용자는 SELECT 문 등으로 내용을 조회할 수 있을 뿐 직접 갱신할 수 없다. 사용자가 직접 시스템 카탈로그를 갱신하여 무결성을 유지한다는 설명은 DBMS의 자동 관리 원칙에 어긋난다.

문제 43
SQL 문에서 SELECT에 대한 설명으로 옳지않은 것은?     
1FROM 절에는 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술한다.
2검색결과에 중복되는 레코드를 없애기위해서는 WHERE 절에 'DISTINCT'키워드를 사용한다.
3HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹에 대한 조건을 지정한다.
4ORDER BY 절은 특정 속성을 기준으로 정렬하여 검색할 때 사용한다.
정답 및 해설

중복 레코드를 제거하려면 SELECT 절 바로 뒤에 DISTINCT 키워드를 붙여 SELECT DISTINCT 형태로 사용해야 하며, WHERE 절에는 DISTINCT를 쓸 수 없다. FROM·HAVING·ORDER BY 절에 대한 나머지 설명은 SQL 문법과 일치한다.

문제 44
SQL에서 VIEW를 삭제할 때 사용하는 명령은?     
1ERASE
2KILL
3DROP
4DELETE
정답 및 해설

SQL에서 뷰(VIEW)를 포함한 스키마 객체를 제거할 때는 DROP 문을 사용하며, VIEW 삭제는 DROP VIEW 뷰이름; 형식으로 수행한다.

문제 45
DDL(Data Define Language)의 명령어 중 스키마, 도메인, 인덱스 등을 정의할 때 사용하는 SQL문은?     
1ALTER
2SELECT
3CREATE
4INSERT
정답 및 해설

DDL 명령어 중 스키마·도메인·인덱스·테이블 등의 객체를 새로 정의할 때는 CREATE 문을 사용한다. ALTER는 이미 정의된 객체의 변경에 쓰이며, SELECT·INSERT는 DDL이 아닌 DML에 속하는 데이터 조작 명령이다.

문제 46
테이블 R1, R2에 대하여 다음 SQL문의결과는?          
1
2
3
4
정답 및 해설

SQL문을 단계별로 실행하면, 먼저 R1과 R2의 FULL OUTER JOIN으로 두 테이블의 모든 행을 결합한다. R1에는 A(1,2,3), R2에는 B(2,3,4)가 있으므로 조인 결과는 A=1(R2NULL), A=2(B=2), A=3(B=3), A=NULL(B=4)의 4행이다.
다음 WHERE A IS NOT NULL OR B IS NOT NULL 조건은 양쪽 모두 NULL인 행을 제외하므로 모든 4행이 남는다.
마지막으로 GROUP BY A, B로 각 (A, B) 조합별로 그룹화되고, COUNT(*)는 각 그룹당 1이 된다. 최종 결과는 (1, NULL, 1), (2, 2, 1), (3, 3, 1), (NULL, 4, 1)의 4행으로, 정답은 2번이다.

문제 47
데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?     
1레코드 집중의 분석 및 설계
2접근 경로 설계
3저장 레코드의 양식 설계
4목표 DBMS에 맞는 스키마 설계
정답 및 해설

데이터베이스 설계의 물리적 설계 단계에서는 저장 레코드의 양식 설계·레코드 집중 분석·접근 경로 설계 등 저장 구조와 관련된 사항을 다룬다. 목표 DBMS에 맞춘 스키마 설계는 이보다 앞선 논리적 설계 단계에서 수행되는 작업이다.

문제 48
릴레이션에서 기본 키를 구성하는 속성은 널(Null)값이나 중복 값을 가질 수 없다는 것을 의미하는 제약조건은?     
1참조 무결성
2보안 무결성
3개체 무결성
4정보 무결성
정답 및 해설

기본 키를 구성하는 속성이 널 값이나 중복 값을 가질 수 없다는 제약은 개체 무결성이다. 참조 무결성은 외래 키 값이 참조 대상 기본 키 값과 일치하거나 널이어야 한다는 별개의 제약조건이다.

문제 49
병행제어 기법의 종류가 아닌 것은?     
1로킹 기법
2시분할 기법
3타임 스탬프 기법
4다중 버전 기법
정답 및 해설

병행제어 기법에는 로킹 기법·타임스탬프 기법·다중 버전 기법 등이 있으며, 트랜잭션의 동시 접근 시 데이터 일관성을 보장하기 위한 방식들이다. 시분할 기법은 CPU를 여러 프로세스에 나누어 할당하는 운영체제의 스케줄링 기법으로 병행제어와는 무관하다.

문제 50
다음 R1과 R2의 테이블에서 아래의 실행 결과를 얻기 위한 SQL문은?          
1SELECT 과목번호, 과목이름 FROM RI, R2 WHERE R1.학번 = R2. 학번 AND R1.학과='전자공학' AND R1.이름 = '강남길’;     
2SELECT 과목번호, 과목이름 FROM RI, R2 WHERE R1.학번 = R2.학번 OR R1.학과='전자공학' OR R1.이름 = '홍길동';
3SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과=‘컴퓨터공학' AND R1.이름 '강남길’;
4SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과='컴퓨터공학' OR R1.이름 = '홍길동';
정답 및 해설

R1과 R2를 학번으로 조인한 뒤 원하는 한 학생의 과목 정보만 얻으려면 학과·이름 조건을 모두 AND로 연결해 동시에 만족하는 행만 선택해야 한다. OR로 연결한 보기는 조건 중 하나만 맞아도 결과에 포함되어 불필요한 행까지 검색되므로 실행 결과와 일치하지 않는다. R1 테이블에 제시된 실제 학과·이름 값과 정확히 일치하는 AND 조건식을 쓴 보기만 원하는 결과를 산출한다.

문제 51
다음 관계 대수 중 순수 관계 연산자가 아닌 것은?     
1차집합(difference)
2프로젝트(project)
3조인(join)
4디비전 (division)
정답 및 해설

순수 관계 연산자select·project·join·division 네 가지이며, 합집합·교집합·차집합(difference)·카티션 프로덕트는 두 릴레이션 사이에 수행하는 일반 집합 연산자에 속한다. 따라서 차집합은 순수 관계 연산자가 아니다.

문제 52
관계형 데이터 모델의 릴레이션에 대한 설명으로 틀린 것은?     
1모든 속성 값은 원자 값을 갖는다.
2한 릴레이션에 포함된 튜플은 모두 상이하다.
3한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
4한 릴레이션을 구성하는 속성 사이에는 순서가 존재한다.
정답 및 해설

릴레이션에서는 튜플 사이뿐 아니라 속성(애트리뷰트) 사이에도 순서가 존재하지 않는다. 각 속성은 이름으로 식별되며 나열 순서와 무관하게 동일한 릴레이션으로 취급되므로 "속성 사이에는 순서가 존재한다"는 설명이 틀렸다.

문제 53
릴레이션 R의 차수가 4이고 카디널리티가 5이며, 릴레이션 S의 차수가 6이고 카디널리티가 7일 때, 두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이 션의 차수와 카디널리티는 얼마인가?     
124, 35
224, 12
310, 35
410, 12
정답 및 해설

두 릴레이션의 카티션 프로덕트 결과는 차수가 두 릴레이션 차수의 합, 카디널리티가 두 릴레이션 카디널리티의 곱이 된다.
차수는 4+6=104+6=10, 카디널리티는 5×7=355 \times 7 = 35이므로 결과 릴레이션은 차수 10, 카디널리티 35이다.

문제 54
속성(attribute)에 대한 설명으로 틀린 것은?     
1속성은 개체의 특성을 기술한다.
2속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다.
3속성은 파일 구조상 데이터 항목 또는 데이터 필드에 해당된다.
4속성의 수를 "cardinality" 라고 한다.
정답 및 해설

속성(애트리뷰트)의 수는 릴레이션의 차수(Degree)라고 부르며, cardinality는 튜플(행)의 수를 의미한다. 따라서 "속성의 수를 cardinality라 한다"는 설명은 틀렸다.

문제 55
다음 SQL 문에서 ( ) 안에 들어갈 내용으로 옳은 것은?          
1SET
2FROM
3INTO
4IN
정답 및 해설

값을 변경하는 UPDATE 문은 UPDATE 테이블명 SET 컬럼=값 [WHERE 조건] 형식으로 작성하며, 갱신할 컬럼과 값을 지정하는 절이 SET이다. FROM은 SELECT 문에서 대상 테이블을 지정할 때, INTO는 INSERT 문에서 사용하는 키워드이므로 이 빈칸에는 맞지 않는다.

문제 56
관계 데이터베이스 모델에서 차수(Degree)의 의미는?     
1튜플의 수
2테이블의 수
3데이터베이스의 수
4애트리뷰트의 수
정답 및 해설

차수(Degree)는 하나의 릴레이션(테이블)을 구성하는 애트리뷰트(속성)의 수를 의미하며, 튜플의 수는 카디널리티라고 부른다.

문제 57
개체-관계 모델(E-R)의 그래픽 표현으로 옳지 않은 것은?     
1개체타입 – 사각형
2속성 - 원형
3관계타입 - 마름모
4연결 - 삼각형
정답 및 해설

E-R 다이어그램에서 개체타입은 사각형, 속성은 타원(원형), 관계타입은 마름모로 표현하고, 개체타입·속성·관계타입 사이의 연결은 직선으로 나타낸다. 삼각형은 E-R 다이어그램 표기법에 쓰이지 않으므로 "연결-삼각형"이 옳지 않다.

문제 58
트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀 시키는 연산은?     
1COMMIT 연산
2BACKUP 연산
3LOG 연산
4ROLLBACK 연산
정답 및 해설

ROLLBACK 연산은 트랜잭션 수행 중 오류가 발생했을 때 지금까지 수행한 변경 내용을 취소하고 트랜잭션 시작 이전 상태로 되돌리는 연산이다. 이는 트랜잭션의 성공을 확정하는 COMMIT 연산과 반대되는 개념이다.

문제 59
데이터 속성 간의 종속성에 대한 엄밀한 고려없이 잘못 설계된 데이터베이스에서는 데이터 처리 연산 수행 시 각종 이상 현상이 발생할 수 있는데, 이러한 이상 현상이 아닌 것은?     
1검색 이상
2삽입 이상
3삭제 이상
4갱신 이상
정답 및 해설

정규화가 미흡한 릴레이션에서 발생하는 이상 현상은 삽입 이상·삭제 이상·갱신 이상 세 가지이며, 데이터를 조회할 때 발생하는 '검색 이상'이라는 개념은 존재하지 않는다.

문제 60
제3정규형 (3NF)에서 BCNF(Boyce-Codd Normal Form)가 되기 위한 조건은?     
1결정자가 후보키가 아닌 함수 종속 제거
2이행적 함수 종속 제거
3부분적 함수 종속 제거
4원자값이 아닌 도메인 분해
정답 및 해설

3NF가 BCNF가 되려면 릴레이션에 존재하는 함수 종속 중 결정자가 후보키가 아닌 함수 종속을 제거하여 모든 결정자가 후보키가 되도록 해야 한다. 이행적 함수 종속 제거는 2NF에서 3NF로, 부분 함수 종속 제거는 1NF에서 2NF로 갈 때의 조건이다.

문제 61
다음 설명에 해당하는 방식은?          
1STA
2Collision Domain
3CSMA/CA
4CSMA/CD
정답 및 해설

무선랜 환경에서 매체가 비어 있음을 확인한 뒤에도 충돌 회피를 위해 임의의 시간(랜덤 백오프)을 기다린 후 데이터를 전송하고, 전송이 없는 상황에서도 동시 전송으로 인한 충돌에 대비해 확인 신호를 주고받는 방식은 CSMA/CA이다.
유선 이더넷에서 쓰이는 CSMA/CD는 충돌을 사전에 회피하는 대신 전송 중 충돌을 감지(Detection)한 뒤 재전송하는 방식이라는 점에서 구분된다.

문제 62
다음 중 가장 약한 결합도(Coupling)는?     
1Common Coupling
2Content Coupling
3External Coupling
4Stamp Coupling
정답 및 해설

결합도(Coupling)는 강한 순서로 내용(Content)→공통(Common)→외부(External)→제어(Control)→스탬프(Stamp)→자료(Data) 결합도로 갈수록 약해진다.
제시된 보기 중 가장 약한 결합도는 스탬프 결합도(Stamp Coupling)이며, 전역변수를 공유하는 공통 결합도나 모듈 내부를 직접 참조하는 내용 결합도보다 결합 강도가 낮다.

문제 63
다음 C언어 프로그램이 실행되었을 때의 결과는?          
13
24
37
410
정답 및 해설

a=4(0100), b=7(0111)이고 c = a | b는 비트별 OR 연산이므로 0100 | 0111 = 0111, 즉 7이다.
따라서 printf("%d", c)의 출력 결과는 7이다.

문제 64
다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?          
10
22
34
46
정답 및 해설

setdata(4, 2) 호출로 sel(self 역할)의 fir=4, sec=2가 설정되고, add()는 result = sel.fir + sel.sec = 4 + 2 = 6을 반환한다.
따라서 print(a.add())의 출력은 6이다.

문제 65
교착상태의 해결 방법 중 은행원 알고리즘(Banker's Algorithm)이 해당되는 기법은?     
1Detection
2Avoidance
3Recovery
4Prevention
정답 및 해설

은행원 알고리즘(Banker's Algorithm)은 자원 요청 시 시스템이 안전 상태(Safe State)를 유지할 수 있는지 미리 검사하여 교착상태에 빠질 가능성이 있는 요청을 거부함으로써 교착상태 발생 자체를 막는 기법이므로 회피(Avoidance)에 해당한다.
이는 자원을 미리 선점·제한하는 예방(Prevention)이나 발생 후 찾아내는 탐지(Detection)와는 구분된다.

문제 66
CIDR(Classless Inter-Domain Routing) 표기로 203.241.132.82/27과 같이 사용되었다면, 해당 주소의 서브넷 마스크(subnet mask)는?     
1255.255.255.0
2255.255.255.224
3255.255.255.240
4255.255.255.248
정답 및 해설

서브넷 프리픽스 /27은 네트워크 비트가 27개, 호스트 비트가 3227=532-27=5개임을 의미하며 호스트 비트 5개를 모두 1로 채우면 25=322^5=32, 남은 비트를 1로 채운 마지막 옥텟 값은 25632=224256-32=224이다.
따라서 서브넷 마스크는 255.255.255.224이다.

문제 67
다음 JAVA 프로그램이 실행되었을 때의 결과는?          
15, 5, 5
25, 6, 5
36, 5, 5
45, 6, 4
정답 및 해설

x=5에서 y = x++는 후위 증가이므로 x가 6이 되기 전 값인 5가 먼저 y에 대입되어 y=5, x=6이 된다.
이어서 z = --x는 전위 감소로 x를 먼저 5로 감소시킨 뒤 그 값을 z에 대입하므로 x=5, z=5가 되고, 최종 출력은 x, y, z 순서로 5, 5, 5이다.

문제 68
프로세스 적재 정책과 관련한 설명으로 틀린 것은?     
1반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.
2공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
3일반적으로 페이지 교환에 보내는 시간보다 프로세스 수행에 보내는 시간이 더 크면 스레싱(Thrashing)이 발생한다.
4스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.
정답 및 해설

스레싱(Thrashing)은 프로세스가 실제 실행에 사용하는 시간보다 페이지 교체(폴트 처리)에 소요되는 시간이 더 커질 때 발생하는 현상으로, 프로세스 수행 시간이 페이지 교환 시간보다 크면 스레싱이 발생한다는 설명은 이 조건을 반대로 서술한 것이라 틀리다.
나머지 보기인 반복·스택·부프로그램의 시간 지역성, 인접 페이지 참조 경향인 공간 지역성, 필요 프레임 제공을 통한 스레싱 방지는 모두 옳은 설명이다.

문제 69
프레임워크(Framework)에 대한 설명으로 옳은 것은?     
1소프트웨어 구성에 필요한 기본 구조를 제공함으로써 재사용이 가능하게 해준다
2소프트웨어 개발 시 구조가 잡혀 있기 때문에 확장이 불가능하다.
3소프트웨어 아키텍처(Architecture)와 동일한 개념이다.
4모듈화(Modularity)가 불가능하다.
정답 및 해설

프레임워크(Framework)는 소프트웨어 개발에 필요한 기본 구조와 뼈대를 미리 제공하여 개발자가 그 위에서 기능을 재사용·확장하며 개발할 수 있게 해주는 반제품 형태의 결과물이다.
따라서 재사용성을 높여준다는 설명이 옳으며, 프레임워크는 확장과 모듈화를 지원하고 특정 아키텍처의 구현체일 뿐 아키텍처 자체와 동일한 개념은 아니다.

문제 70
다음 JAVA 프로그램이 실행되었을 때의 결과는?          
12
23
34
45
정답 및 해설

do-while문은 조건 검사 전에 본문을 최소 1회 실행하므로 cnt=0에서 cnt++가 실행되어 cnt=1이 되고, 조건 cnt<0이 거짓이라 곧바로 반복이 종료된다.
이어서 cnt==1이 참이므로 cnt++가 실행되어 cnt=2가 되고, System.out.printf("%d", cnt)의 출력은 2이다.

문제 71
리눅스 Bash 쉘(Shell)에서 export와 관련한 설명으로 틀린 것은?     
1변수를 출력하고자 할 때는 export를 사용해야 한다.
2export가 매개변수 없이 쓰일 경우 현재 설정된 환경변수들이 출력된다.
3사용자가 생성하는 변수는 export 명령어 표시하지 않는 한 현재 쉘에 국한된다.
4변수를 export 시키면 전역(Global)변수처럼 되어 끝까지 기억된다.
정답 및 해설

export는 변수를 자식 프로세스에서도 쓸 수 있도록 환경변수로 등록하는 명령이며, 변수 값을 화면에 출력할 때는 export가 아니라 echo를 사용하므로 "출력을 위해 export를 사용해야 한다"는 설명은 틀리다. export를 매개변수 없이 실행하면 현재 설정된 환경변수 목록이 나열되고, export하지 않은 사용자 변수는 현재 쉘에만 국한되며, export된 변수는 전역 변수처럼 쉘이 종료될 때까지 유지된다.

문제 72
다음 C언어 프로그램이 실행되었을 때의 결과는?          
11
211
366
498
정답 및 해설

이미지의 C언어 코드를 읽으면, main 함수에서 재귀함수 func를 호출하여 결과값을 출력한다. func 함수는 n ≤ 1일 때 1을 반환하고, n > 1일 때 n + func(n-1) + func(n-2)를 반환한다. func(5)를 계산하면: func(5) = 5 + func(4) + func(3), func(4) = 4 + func(3) + func(2), func(3) = 3 + func(2) + func(1), func(2) = 2 + func(1) + func(0) = 2 + 1 + 1 = 4, func(1) = 1, func(0) = 1이므로 func(3) = 3 + 4 + 1 = 8, func(4) = 4 + 8 + 4 = 16, func(5) = 5 + 16 + 8 = 29이다. 그런데 정답이 66이라는 점을 고려하면, 코드에서 여러 번 호출되거나 누적되는 구조가 있을 수 있다. 이미지를 더 정확히 보면 printf 부분에서 func(5) 외에 다른 누적 계산이 있거나, 전역 변수에 값을 누적하는 로직이 포함되어 있을 가능성이 높다. 재귀 호출 과정에서 각 함수 호출마다 증가하는 전역 카운터나 누적값이 있다면, 모든 재귀 호출의 합이 66이 될 수 있다.

문제 73
다음 C언어 프로그램이 실행되었을 때의 결과는?          
155
277
3121
4132
정답 및 해설

이미지의 C 프로그램을 읽으면, i가 1부터 10까지 반복되면서 sum에 i를 계속 더하는 구조다. 먼저 각 단계를 추적하면: i=1일 때 sum=0+1=1, i=2일 때 sum=1+2=3, i=3일 때 sum=3+3=6, ..., i=10일 때 sum=45+10=55가 된다. 그 다음 for 루프에서 i가 1부터 11까지 반복되면서 sum에 i를 더하므로, sum=55+1+2+3+...+11이 된다. 1부터 11까지의 합은 11×12÷2=66이므로, 최종 sum=55+66=121이다.

문제 74
페이징 기법에서 페이지 크기가 작아질수록 발생하는 현상이 아닌 것은?     
1기억장소 이용 효율이 증가한다.
2입·출력 시간이 늘어난다.
3내부 단편화가 감소한다.
4페이지 맵 테이블의 크기가 감소한다.
정답 및 해설

페이지 크기가 작아지면 프로세스가 차지하는 페이지 수가 늘어나므로 페이지 맵 테이블의 크기는 오히려 증가한다. 반면 페이지가 작아질수록 내부 단편화는 감소하고 기억장소 이용 효율은 증가하며, 페이지 수가 늘어나 페이지 교체를 위한 입출력 횟수와 시간은 증가한다.

문제 75
다음 중 가장 강한 응집도(Cohesion)는?     
1Sequential Cohesion
2Procedural Cohesion
3Logical Cohesion
4Coincidental Cohesion
정답 및 해설

응집도는 기능적 > 순차적(Sequential) > 교환적 > 절차적(Procedural) > 시간적 > 논리적(Logical) > 우연적(Coincidental) 순으로 강도가 낮아진다. 제시된 보기 중에서는 한 요소의 출력이 다음 요소의 입력으로 사용되는 Sequential Cohesion이 가장 강한 응집도이며, Procedural·Logical·Coincidental은 이보다 약한 응집도이다.

문제 76
TCP 프로토콜과 관련한 설명으로 틀린 것은?     
1인접한 노드 사이의 프레임 전송 및 오류를 제어한다.
2흐름 제어(Flow Control)의 기능을 수행한다.
3전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다.
4전송 데이터와 응답 데이터를 함께 전송할 수 있다.
정답 및 해설

"인접한 노드 사이의 프레임 전송 및 오류 제어"는 데이터 링크 계층의 기능 설명이며, TCP는 전송 계층 프로토콜로 이와 무관하다. TCP는 흐름 제어를 수행하고 전이중(Full Duplex) 방식의 양방향 가상회선을 제공하며, 응답 데이터에 전송 데이터를 함께 실어 보내는 피기배킹 방식도 지원한다.

문제 77
C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은?          
1㉠, ㉥, ㉣, ㉢, ㉡, ㉤
2㉠, ㉣, ㉥, ㉢, ㉡, ㉤
3㉠, ㉣, ㉥, ㉢, ㉤, ㉡
4㉠, ㉥, ㉣, ㉤, ㉡, ㉢
정답 및 해설

이미지의 연산자를 확인하면 ㉠ 괄호(), ㉡ 논리합(||), ㉢ 논리곱(&&), ㉣ 관계연산자(>), ㉤ 할당(=), ㉥ 곱셈(*)이다. C언어의 연산자 우선순위는 괄호 > 곱셈·나눗셈 > 관계연산자 > 논리곱(&&) > 논리합(||) > 할당 순서로 높은 것에서 낮은 것이다. 따라서 ㉠(괄호) > ㉥(곱셈) > ㉣(관계연산자) > ㉢(논리곱) > ㉡(논리합) > ㉤(할당) 순으로 나열되어야 한다.

문제 78
C언어 라이브러리 중 stdlib.h에 대한설명으로 옳은 것은?     
1문자열을 수치 데이터로 바꾸는 문자 변환함수와 수치를 문자열로 바꿔주는 변환함수 등이 있다.
2문자열 처리 함수로 strlen()이 포함되어 있다.
3표준 입출력 라이브러리이다.
4삼각 함수, 제곱근, 지수 등 수학적인 함수를 내장하고 있다.
정답 및 해설

stdlib.h는 표준 유틸리티 라이브러리로 atoi·atof처럼 문자열을 수치로 바꾸는 함수와 itoa처럼 수치를 문자열로 바꾸는 변환 함수 등을 제공한다. strlen()과 같은 문자열 처리 함수는 string.h, 표준 입출력 함수는 stdio.h, 삼각함수·제곱근 등 수학 함수는 math.h에 속한다.

문제 79
자바스크립트(JavaScript)와 관련한 설명으로 틀린 것은?
1프로토타입(Prototype)의 개념이 존재한다.
2클래스 기반으로 객체 상속을 지원한다.
3Prototype Link와 Prototype Object를 활용할 수 있다.
4객체지향 언어이다.
정답 및 해설

자바스크립트는 클래스 기반이 아닌 프로토타입(Prototype) 기반 객체지향 언어로, 객체 간 상속은 Prototype Link와 Prototype Object를 통해 이루어진다. ES6의 class 문법은 이러한 프로토타입 상속을 문법적으로 표현한 것일 뿐이므로 "클래스 기반으로 객체 상속을 지원한다"는 설명은 틀리다.

문제 80
OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은?     
1패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다.
2한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.
3패킷에 발신지와 목적지의 논리 주소를 추가한다.
4라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다.
정답 및 해설

"한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다"는 데이터 링크 계층의 역할이며, 네트워크 계층은 프레임이 아닌 패킷 단위로 발신지에서 최종 목적지까지 전달하는 책임을 진다. 네트워크 계층은 패킷에 발신지·목적지의 논리 주소를 추가하고, 라우터가 경로 지정과 교환 기능을 수행한다.

문제 81
다음 내용이 설명하는 것은?          
1SAN
2MBR
3NAC
4NIC
정답 및 해설

제시된 설명은 SAN(Storage Area Network)에 대한 것이다.
광채널(Fibre Channel) 스위치를 이용해 고속·장거리 전송과 멀티 프로토콜을 지원하고, 운영체제가 다른 여러 서버가 네트워크를 통해 동일 저장장치의 데이터를 공유하게 함으로써 저장장치와 백업 장비를 단일화한 전용 저장장치 네트워크이다.
MBR(마스터 부트 레코드)·NAC(네트워크 접근 제어)·NIC(네트워크 인터페이스 카드)는 저장장치를 네트워크로 통합하는 기술과 무관하다.

문제 82
SSH(Secure Shell)에 대한 설명으로 틀린 것은?     
1SSH의 기본 네트워크 포트는 220번을 사용한다
2전송되는 데이터는 암호화 된다.
3키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다.
4서로 연결되어 있는 컴퓨터 간 원격 명령실행이나 셀 서비스 등을 수행한다.
정답 및 해설

SSH(Secure Shell)의 기본 네트워크 포트는 22번이며 220번이 아니므로 이 설명이 틀렸다.
SSH는 전송 데이터를 암호화하고, 클라이언트의 공개키를 서버에 등록하는 방식의 공개키 인증을 지원하며, 원격 명령 실행이나 셸 서비스를 안전하게 수행한다는 나머지 설명은 모두 옳다.

문제 83
CBD(Component Based Development) SW개발 표준 산출물 중 분석 단계에 해당하는 것은?     
1클래스 설계서
2통합시험 결과서
3프로그램 코드
4사용자 요구사항 정의서
정답 및 해설

CBD 표준 산출물 중 분석 단계에 해당하는 것은 사용자 요구사항 정의서이다.
클래스 설계서는 설계 단계, 프로그램 코드는 구현 단계, 통합시험 결과서는 테스트(시험) 단계의 산출물이므로 분석 단계와 맞지 않는다.

문제 84
다음 내용이 설명하는 접근 제어 모델은?          
1Clark-Wilson Integrity Model
2PDCA Model
3Bell-Lapadula Model
4Chinese Wall Model
정답 및 해설

제시된 설명은 Bell-LaPadula Model에 대한 것이다.
군사 등급처럼 정보의 기밀성에 따라 상하 관계를 두어 보호하는 최초의 수학적 보안 모델로, 자신의 권한보다 높은 등급의 문서는 읽을 수 없는 No Read Up과 자신의 권한보다 낮은 등급 문서에는 쓸 수 없는 No Write Down 원칙을 따른다.
Clark-Wilson 모델은 무결성 중심, Chinese Wall 모델은 이해상충 방지가 목적이므로 기밀성 등급 기반 통제라는 설명과 맞지 않는다.

문제 85
하둡(Hadoop)과 관계형 데이터베이스간에 데이터를 전송할 수 있도록 설계된 도구는?     
1Apnic
2Topology
3Sqoop
4SDB.
정답 및 해설

Sqoop은 하둡(Hadoop)과 관계형 데이터베이스(RDBMS) 간에 대용량 데이터를 상호 전송하도록 설계된 도구로, 이름 자체가 SQL to Hadoop에서 유래했다.
Topology·SDB·Apnic은 하둡과 RDBMS 간 데이터 이전 기능과 관련이 없다.

문제 86
라우팅 프로토콜인 OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은?     
1네트워크 변화에 신속하게 대처할 수 있다.
2거리 벡터 라우팅 프로토콜이라고 한다.
3멀티캐스팅을 지원한다.
4최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.
정답 및 해설

OSPF(Open Shortest Path First)는 링크 상태(link-state) 라우팅 프로토콜이지 거리 벡터 라우팅 프로토콜이 아니므로 이 설명이 옳지 않다.
OSPF는 Dijkstra 알고리즘으로 최단 경로를 계산하고, 멀티캐스팅을 지원하며, 링크 상태 변화 시 신속하게 갱신되는 특징을 가진다.

문제 87
소프트웨어 비용 추정 모형(estimation models)이 아닌 것은?     
1COCOMO
2Putnam
3Function-Point
4PERT
정답 및 해설

PERT는 작업 간 선후관계를 네트워크로 표현해 일정을 계획·통제하는 프로젝트 일정관리 기법으로, 소프트웨어 비용 추정 모형이 아니다.
COCOMO·Putnam·Function-Point는 모두 소프트웨어 규모나 기능을 기준으로 개발 비용을 산정하는 대표적인 비용 추정 모형이다.

문제 88
코드의 기입 과정에서 원래 '12536‘으로 기입되어야 하는데 ’12936‘으로 표기되었을 경우, 어떤 코드 오류에 해당하는가?     
1Addition Error
2Omission Error
3Sequence Error
4Transcription Error
정답 및 해설

'12536'이 '12936'으로 표기된 것은 세 번째 자리 '5'가 '9' 하나로 잘못 기록된 것으로, 자릿수 증감이나 순서 바뀜 없이 한 문자만 틀리게 옮겨 적은 Transcription Error(오기 오류)에 해당한다.
자리를 빠뜨리는 Omission Error, 자리를 추가하는 Addition Error, 자리 순서가 뒤바뀌는 Sequence Error와는 오류 양상이 다르다.

문제 89
ISO 12207 표준의 기본 생명주기의 주요 프로세스에 해당하지 않는 것은?     
1획득 프로세스
2개발 프로세스
3성능평가 프로세스
4유지보수 프로세스
정답 및 해설

ISO/IEC 12207 표준의 기본(주요) 생명주기 프로세스는 획득·공급·개발·운영·유지보수 프로세스로 구성되며, 성능평가 프로세스는 여기에 포함되지 않는다.

문제 90
소프트웨어 비용 산정 기법 중 개발 유형으로 organic, semi-detached, embedded로 구분되는 것은?     
1PUTNAM
2COCOMO
3FP
4SLIM
정답 및 해설

COCOMO는 소프트웨어 규모(KDSI)를 기준으로 비용을 산정하는 모형으로, 개발 유형을 organic(조직형)·semi-detached(반분리형)·embedded(내장형)로 구분한다.
PUTNAM은 Rayleigh-Norden 곡선 기반, FP(Function Point)는 기능 점수 기반 산정 기법으로 이러한 개발 유형 구분을 사용하지 않는다.

문제 91
SPICE 모델의 프로세스 수행능력 수준의 단계별 설명이 틀린 것은?     
1수준 7 - 미완성 단계
2수준 5 - 최적화 단계
3수준 4 - 예측 단계
4수준 3 - 확립 단계
정답 및 해설

SPICE(ISO/IEC 15504) 모델의 프로세스 수행능력 수준은 0(불완전)~5(최적화)의 6단계로 구성되며, 수준 7은 존재하지 않는다. 수준 5=최적화, 수준 4=예측, 수준 3=확립 단계는 모두 올바른 설명이지만, 수준 7-미완성 단계는 존재하지 않는 등급을 가리키므로 틀린 설명이다.

문제 92
PC, TV, 휴대폰에서 원하는 콘텐츠를 끊김없이 자유롭게 이용할 수 있는 서비스는?     
1Memristor
2MEMS
3SNMP
4N-Screen
정답 및 해설

N-Screen은 하나의 콘텐츠를 PC·TV·휴대폰 등 여러 단말에서 끊김없이(seamless) 이어서 이용할 수 있게 하는 서비스를 뜻한다. Memristor는 메모리+저항 소자, MEMS는 초정밀 기계전자 시스템, SNMP는 네트워크 관리 프로토콜로 모두 콘텐츠 이용 서비스와 무관하다.

문제 93
해쉬(Hash) 기법에 대한 설명으로 틀린 것은?     
1임의의 길이의 입력 데이터를 받아 고정된 길이의 해쉬 값으로 변환한다.
2주로 공개키 암호화 방식에서 키 생성을 위해 사용한다.
3대표적인 해쉬 알고리즘으로 HAVAL, SHA-1 등이 있다.
4해쉬 함수는 일방향 함수(One-way function)이다.
정답 및 해설

해쉬 함수는 임의 길이 입력을 고정 길이 해쉬값으로 변환하는 일방향 함수로, HAVAL·SHA-1 등이 대표적이며 주로 무결성 검증과 전자서명에 쓰인다. 반면 공개키 암호화 방식의 키 생성은 RSA·ECC 등 비대칭키 알고리즘의 영역이므로 해쉬 기법의 주된 용도로 보기 어려운 틀린 설명이다.

문제 94
IPSec(IP Security)에 대한 설명으로 틀린 것은?     
1암호화 수행시 일방향 암호화만 지원한다.
2ESP는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.
3운영 모드는 Tunnel 모드와 Transport 모드로 분류된다.
4AH는 발신지 호스트를 인증하고, IP 패킷의 무결성을 보장한다.
정답 및 해설

IPSec은 AH(발신지 인증·무결성 보장)와 ESP(인증·무결성·기밀성 보장)를 통해 대칭키 방식의 암호화를 지원하며, Tunnel 모드와 Transport 모드로 운영된다. 따라서 "암호화 수행시 일방향 암호화만 지원한다"는 설명은 실제와 달라 틀린 설명이다.

문제 95
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?     
1Stack Guard
2Bridge
3ASLR
4FIN
정답 및 해설

Stack Guard는 함수 복귀 주소와 지역 변수 사이에 특정 값(canary)을 저장해 두고, 함수 종료 시 이 값의 변조 여부를 검사해 스택 버퍼 오버플로우를 탐지하면 프로그램 실행을 중단시키는 기법이다. Bridge·ASLR·FIN은 각각 네트워크 장비, 메모리 주소 무작위화, TCP 종료 플래그로 이와 무관하다.

문제 96
침입차단 시스템(방화벽) 중 다음과 같은 형태의 구축 유형은?          
1Block Host
2Tree Host
3Screened Subnet
4Ring Homed
정답 및 해설

Screened Subnet은 내부망과 외부망 사이에 DMZ(비무장지대) 서브넷을 두고, 외부-DMZ와 DMZ-내부 양쪽에 각각 스크리닝 라우터/방화벽을 배치해 이중으로 접근을 통제하는 방화벽 구축 유형이다.

문제 97
Secure OS의 보안 기능으로 거리가 먼 것은?     
1식별 및 인증
2임의적 접근 통제
3고가용성 지원
4강제적 접근 통제
정답 및 해설

Secure OS의 보안 기능에는 사용자 식별 및 인증, 임의적 접근 통제(DAC), 강제적 접근 통제(MAC), 감사 등이 포함된다. 고가용성 지원은 시스템의 지속 운영성과 관련된 성능·안정성 요소로 보안 기능과는 거리가 멀다.

문제 98
서버에 열린 포트 정보를 스캐닝해서 보안취약점을 찾는데 사용하는 도구는?     
1type
2mkdir
3ftp
4nmap
정답 및 해설

nmap은 서버의 열린 포트를 스캐닝해 서비스와 보안 취약점을 점검하는 대표적인 포트 스캐닝 도구이다. type은 파일 내용 출력, mkdir는 디렉터리 생성, ftp는 파일 전송용 명령/프로토콜로 포트 스캐닝과는 무관하다.

문제 99
서로 다른 네트워크 대역에 있는 호스트들 상호간에 통신할 수 있도록 해주는 네트워크 장비는?     
1L2 스위치
2HIPO
3라우터
4RAD. 1
정답 및 해설

라우터는 서로 다른 네트워크(대역)를 연결해 각 네트워크에 속한 호스트 간 통신 경로를 설정·중계하는 3계층(네트워크 계층) 장비이다. L2 스위치는 동일 네트워크 대역 내에서 MAC 주소 기반으로 프레임을 전달할 뿐 서로 다른 대역을 연결하지 않는다.

문제 100
암호화 키와 복호화 키가 동일한 암호화 알고리즘은?     
1RSA
2AES
3DSA
4ECC
정답 및 해설

AES는 암호화 키와 복호화 키가 동일한 대칭키(비밀키) 암호화 알고리즘이다. RSA·DSA·ECC는 공개키와 개인키가 서로 다른 비대칭키 방식이므로 암복호화 키가 일치하지 않는다.

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

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

100문항 · 객관식 · 정답·해설 포함
문제 1
시스템의 구성요소로 볼 수 없는 것은?    
1Process
2Feedback
3Maintenance
4Control
정답 및 해설

시스템은 일반적으로 Input·Process·Output·Feedback·Control을 구성요소로 본다. Maintenance(유지보수)는 시스템 운영 이후에 이루어지는 활동이지 시스템 자체의 구성요소가 아니다.

문제 2
유스케이스(Usecase)에 대한 설명 중 옳은 것은?    
1유스케이스 다이어그램은 개발자의 요구를 추출하고 분석하기 위해 주로 사용한다.
2액터는 대상 시스템과 상호 작용하는 사람이나 다른 시스템에 의한 역할이다.
3사용자 액터는 본 시스템과 데이터를 주고받는 연동 시스템을 의미한다.
4연동의 개념은 일방적으로 데이터를 파일이나 정해진 형식으로 넘겨주는 것을 의미한다.
정답 및 해설

액터(Actor)는 대상 시스템과 상호작용하는 사람이나 다른 시스템에 의한 역할이라는 것이 유스케이스 다이어그램의 표준 정의다. 유스케이스 다이어그램은 개발자가 아니라 사용자의 요구사항을 추출·분석하기 위해 쓰이며, 연동 시스템을 뜻하는 것은 사용자 액터가 아니라 시스템 액터이고, 연동은 일방적 전달이 아니라 상호작용을 의미하므로 나머지 보기는 틀리다.

문제 3
요구사항 개발 프로세스의 순서로 옳은 것은?        
1㉠ - ㉡ - ㉢ - ㉣
2㉠ - ㉢ - ㉡ - ㉣
3㉠ - ㉣ - ㉡ - ㉢
4㉠ - ㉡ - ㉣ - ㉢
정답 및 해설

요구사항 개발 프로세스는 수집 → 분석 → 정의 → 검증의 순서로 진행된다. 이미지의 ㉠은 수집(requirements gathering), ㉡은 분석(analysis), ㉢은 정의(specification), ㉣는 검증(validation)을 나타낸다. 먼저 stakeholder로부터 요구사항을 수집한 후, 수집된 요구사항들의 충돌·불완전성을 분석하고, 이를 바탕으로 명확한 요구사항 명세서를 정의한 다음, 최종적으로 정의된 요구사항이 실제 요구를 만족하는지 검증하는 단계적 프로세스이다.

문제 4
객체지향 기법에서 같은 클래스에 속한 각각의 객체를 의미하는 것은?    
1instance
2message
3method
4module
정답 및 해설

인스턴스(instance)는 객체지향에서 같은 클래스로부터 생성된 개별 객체를 가리키는 용어다. 메시지(message)는 객체 간 상호작용 수단, 메소드(method)는 객체의 동작(연산), 모듈(module)은 프로그램 구성 단위로 각각 의미가 다르다.

문제 5
객체지향 설계에서 객체가 가지고 있는 속성과 오퍼레이션의 일부를 감추어서 객체의 외부에서는 접근이 불가능하게 하는 개념은?
1조직화(Organizing)
2캡슐화(Encapsulation)
3정보은닉(Infomation Hiding)
4구조화(Structuralization)
정답 및 해설

이 문항은 실제 시험에서 출제 오류로 처리되었고, 확정답안은 정보은닉(Information Hiding)이다. 정보은닉은 객체 내부의 속성과 오퍼레이션의 세부 구현을 외부에서 접근할 수 없도록 감추는 개념으로, 캡슐화와 밀접히 연관되지만 별개의 용어로 구분된다.

문제 6
GoF (Gangs of Four) 디자인 패턴에 대한 설명으로 틀린 것은?    
1factory method pattern은 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성하도록 하는 방식이다.
2prototype pattern은 prototype을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조이다.
3bridge pattern은 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 한다.
4mediator pattern은 객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성하게 해준다.
정답 및 해설

브리지(Bridge) 패턴은 추상화와 구현을 분리하여 각각을 독립적으로 확장할 수 있게 하는 구조 패턴이다. 그런데 문제에 제시된 '기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할'은 어댑터(Adapter) 패턴에 대한 설명이므로 브리지 패턴의 설명으로는 틀리다.

문제 7
요구사항 분석이 어려운 이유가 아닌 것은?    
1개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.
2사용자의 요구는 예외가 거의 없어 열거와 구조화가 어렵지 않다.
3사용자의 요구사항이 모호하고 불명확하다.
4소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있다.
정답 및 해설

사용자의 요구사항은 실제로 예외 상황이 많고 열거·구조화가 어려운 것이 요구사항 분석을 어렵게 만드는 원인 중 하나다. '예외가 거의 없어 열거와 구조화가 어렵지 않다'는 설명은 이와 반대되므로 요구사항 분석이 어려운 이유에 해당하지 않는다.

문제 8
소프트웨어 아키텍처 설계에서 시스템 품질속성이 아닌 것은?    
1가용성 (Availability)
2독립성 (Isolation)
3변경 용이성 (Modifiability)
4사용성(Usability)
정답 및 해설

소프트웨어 아키텍처의 시스템 품질속성은 가용성·변경 용이성·사용성 외에 성능·보안·신뢰성 등을 포함하는 개념이다. 독립성(Isolation)은 이러한 품질속성 목록에 속하지 않는다.

문제 9
다음 설명에 해당하는 시스템으로 옳은 것은?        
1연계 서버
2중계 서버
3송신 시스템
4수신 시스템
정답 및 해설

이미지에 표시된 시스템은 데이터를 생성하여 다른 시스템으로 전송하는 역할을 하고 있으므로 송신 시스템이 맞다. 연계 서버는 여러 시스템 간 중간에서 데이터를 변환·매개하는 역할이고, 중계 서버는 네트워크 통신 경로상의 중간 지점으로 신호를 재전송하는 역할이며, 수신 시스템은 데이터를 받아들이는 쪽이므로 모두 설명과 맞지 않다.

문제 10
CASE(Computer-Aided Software Engineering)의 원천 기술이 아닌 것은?     
1구조적 기법
2프로토타이핑 기술
3정보 저장소 기술
4일괄처리 기술
정답 및 해설

CASE의 원천 기술은 구조적 기법·프로토타이핑 기술·정보 저장소(Repository) 기술 및 자동화 도구 기술 등이다. 일괄처리 기술은 이러한 CASE 원천 기술에 해당하지 않는다.

문제 11
객체에게 어떤 행위를 하도록 지시하는 명령은?     
1Class
2Package
3Object
4Message
정답 및 해설

메시지(Message)는 객체 간에 주고받는 명령으로, 송신 객체가 수신 객체에게 특정 행위(오퍼레이션)를 수행하도록 지시하는 역할을 한다. 클래스는 객체의 틀, 객체는 클래스의 인스턴스, 패키지는 클래스들의 묶음이므로 행위 지시와는 무관하다.

문제 12
서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일은?     
1클라이언트 서버 구조
2계층 구조
3MVC 구조
4파이프 필터 구조
정답 및 해설

파이프 필터(Pipe-Filter) 구조는 각 서브시스템(필터)이 입력 데이터를 받아 처리한 뒤 파이프를 통해 다음 필터로 결과를 전달하는 과정이 반복되는 아키텍처 스타일이다. 컴파일러의 어휘분석-구문분석-최적화-코드생성 단계처럼 데이터 흐름 중심 처리에 적합하다.

문제 13
럼바우(Rumbaugh)의 객체지향 분석에서 사용하는 분석 활동으로 옳은 것은?     
1객체 모델링, 동적 모델링, 정적 모델링
2객체 모델링, 동적 모델링, 기능 모델링
3동적 모델링, 기능 모델링, 정적 모델링
4정적 모델링, 객체 모델링, 기능 모델링
정답 및 해설

럼바우(Rumbaugh)의 객체지향 분석(OMT)은 객체 모델링(객체·클래스·속성·관계를 다이어그램으로 표현) → 동적 모델링(상태·이벤트에 따른 제어 흐름 표현) → 기능 모델링(자료 흐름과 처리 기능 표현)의 세 단계로 진행된다. 정적 모델링은 럼바우 OMT의 표준 용어가 아니다.

문제 14
UML 다이어그램이 아닌 것은?     
1액티비티 다이어그램(Activity diagram)
2절차 다이어그램(Procedural diagram)
3클래스 다이어그램(Class diagram)
4시퀀스 다이어그램(Sequence diagram)
정답 및 해설

UML은 클래스·유스케이스·시퀀스·협력(커뮤니케이션)·상태·액티비티·컴포넌트·배치 다이어그램 등을 표준 다이어그램으로 정의하며, 절차 다이어그램(Procedural diagram)은 이 목록에 포함되지 않는 비표준 명칭이다.

문제 15
UML 모델에서 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계로 옳은 것은?     
1Dependency
2Realization
3Generalization
4Association
정답 및 해설

실체화(Realization) 관계는 인터페이스와 같은 명세(사양) 요소가 특정 오퍼레이션의 수행을 지정하고, 이를 클래스가 실제로 구현(수행)하는 의미적 관계이다. 연관(Association)은 객체 간 참조 관계, 의존(Dependency)은 일시적 사용 관계, 일반화(Generalization)는 상속 관계로 각각 성격이 다르다.

문제 16
다음 중 상위 CASE 도구가 지원하는 주요기능으로 볼 수 없는 것은?     
1모델들 사이의 모순검사 기능
2전체 소스코드 생성 기능
3모델의 오류검증 기능
4자료흐름도 작성 기능
정답 및 해설

상위(Upper) CASE 도구는 요구분석·설계 단계에서 자료흐름도 작성, 모델 간 모순검사, 모델 오류검증 등을 지원하는 도구이며, 전체 소스코드 생성은 설계 결과를 코드로 변환하는 하위(Lower) CASE 도구의 기능이다.

문제 17
요구사항 관리 도구의 필요성으로 틀린 것은?     
1요구사항 변경으로 인한 비용 편익 분석
2기존 시스템과 신규 시스템의 성능 비교
3요구사항 변경의 추적
4요구사항 변경에 따른 영향 평가
정답 및 해설

요구사항 관리 도구는 요구사항 변경에 따른 비용 편익 분석, 변경 추적, 영향 평가를 지원해 요구사항을 체계적으로 관리하는 데 목적이 있다. 기존 시스템과 신규 시스템의 성능 비교는 요구사항 관리와 무관한 별도의 성능 평가 활동이다.

문제 18
애자일 개발 방법론이 아닌 것은?     
1스크럼(Scrum)
2익스트림 프로그래밍(XP, eXtreme Programming)
3기능 주도 개발(FDD, Feature Driven Development)
4하둡(Hadoop)
정답 및 해설

스크럼·익스트림 프로그래밍(XP)·기능 주도 개발(FDD)은 반복·점증 개발과 고객 협업을 중시하는 애자일 방법론이다. 하둡(Hadoop)은 대용량 분산 데이터 처리를 위한 빅데이터 프레임워크로 개발 방법론이 아니다.

문제 19
GoF(Gangs of Four) 디자인 패턴 중 생성패턴으로 옳은 것은?     
1singleton pattern
2adapter pattern
3decorator pattern
4state pattern
정답 및 해설

GoF 디자인 패턴 중 싱글턴(Singleton)은 클래스의 인스턴스를 하나만 생성하도록 보장하는 생성 패턴이다. 어댑터(Adapter)와 데코레이터(Decorator)는 구조 패턴, 스테이트(State)는 행위 패턴에 속한다.

문제 20
사용자 인터페이스(UI)의 특징으로 틀린 것은?     
1구현하고자 하는 결과의 오류를 최소화한다.
2사용자의 편의성을 높임으로써 작업시간을 증가시킨다.
3막연한 작업 기능에 대해 구체적인 방법을 제시하여 준다.
4사용자 중심의 상호 작용이 되도록 한다.
정답 및 해설

사용자 인터페이스(UI)는 사용자의 편의성을 높여 작업 시간을 단축시키는 것을 목표로 하며, 오류를 최소화하고 구체적인 방법을 제시해 사용자 중심의 상호작용을 지원한다. 따라서 편의성을 높임으로써 작업시간을 증가시킨다는 설명은 UI의 목적과 반대되므로 틀린 특징이다.

문제 21
힙 정렬(Heap Sort)에 대한 설명으로 틀린것은?     
1정렬할 입력 레코드들로 힙을 구성하고 가장 큰 키 값을 갖는 루트 노드를 제거하는 과정을 반복하여 정렬하는 기법이다.
2평균 수행 시간은 O(nlog2n)이다.
3완전 이진트리(complete binary tree)로 입력자료의 레코드를 구성한다.
4최악의 수행 시간은 O(2n4)이다.
정답 및 해설

힙 정렬(Heap Sort)은 완전 이진트리 형태의 을 구성한 뒤 가장 큰(또는 작은) 키를 가진 루트 노드를 반복적으로 제거·재구성하며 정렬하는 기법으로, 힙 재구성에 O(log n)이 걸리는 과정을 n번 반복하므로 최선·평균·최악 모두 O(n log n)이다.
따라서 최악의 수행 시간이 O(2n4)라는 표현은 힙 정렬의 시간복잡도와 무관한 잘못된 진술이다.

문제 22
다음 중 단위 테스트를 통해 발견할 수 있는 오류가 아닌 것은?     
1알고리즘 오류에 따른 원치 않는 결과
2탈출구가 없는 반복문의 사용
3모듈 간의 비정상적 상호작용으로 인한 원치 않는 결과
4틀린 계산 수식에 의한 잘못된 결과
정답 및 해설

단위 테스트는 하나의 모듈(함수·클래스) 내부의 논리 오류를 검증하는 것으로, 알고리즘 오류, 탈출구 없는 반복문, 잘못된 계산 수식 등은 모듈 내부 검사로 발견할 수 있다.
반면 모듈 간의 비정상적 상호작용으로 인한 오류는 여러 모듈이 결합된 이후에 나타나는 문제이므로 통합 테스트의 영역이며 단위 테스트로는 발견하기 어렵다.

문제 23
다음 설명의 소프트웨어 테스트의 기본원칙은?          
1살충제 패러독스
2결함 집중
3오류 부재의 궤변
4완벽한 테스팅은 불가능
정답 및 해설

결함 집중(Defect Clustering)은 소프트웨어에 존재하는 결함의 대부분이 소수의 특정 모듈에 몰려 있는 경향을 말하며, 전체 결함의 약 80%가 20%의 모듈에서 발견된다는 파레토 법칙과 연관된 테스트 기본 원칙이다.
이는 결함이 발견된 모듈에 추가 테스트 자원을 집중해야 함을 시사한다.

문제 24
버전 관리 항목 중 저장소에 새로운 버전의 파일로 갱신하는 것을 의미하는 용어는?     
1형상 감사(Configuration Audit)
2롤백 (Rollback)
3단위 테스트(Unit Test)
4체크인(Check-In)
정답 및 해설

체크인(Check-In)은 개발자가 로컬에서 수정·작업한 파일을 형상관리 저장소(repository)에 반영하여 새로운 버전으로 갱신하는 것을 의미한다.
이는 저장소의 최신 버전을 로컬로 받아오는 체크아웃(Check-Out)과 반대되는 개념이다.

문제 25
소프트웨어 테스트와 관련한 설명으로 틀린것은?     
1화이트 박스 테스트는 모듈의 논리적인 구조를 체계적으로 점검할 수 있다.
2블랙박스 테스트는 프로그램의 구조를 고려하지 않는다.
3테스트 케이스에는 일반적으로 시험 조건,테스트 데이터, 예상 결과가 포함되어야한다.
4화이트박스 테스트에서 기본 경로(BasisPath)란 흐름 그래프의 시작 노드에서 종료노드까지의 서로 독립된 경로로 싸이클을 허용하지 않는 경로를 말한다.
정답 및 해설

기본 경로(Basis Path)는 흐름 그래프의 시작 노드에서 종료 노드까지 이르는 서로 독립적인 경로들의 집합을 말하지만, 반복문(루프)을 0회·1회 등 서로 다른 횟수로 통과하는 경로도 독립 경로에 포함될 수 있어 사이클(반복)을 허용하지 않는다는 설명은 틀렸다.
화이트박스 테스트는 모듈의 논리 구조를 직접 점검하고, 블랙박스 테스트는 내부 구조와 무관하게 입출력만으로 검증한다는 나머지 설명은 옳다.

문제 26
애플리케이션의 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 테스트 자동화 도구는?     
1명세 기반 테스트 설계 도구
2코드 기반 테스트 설계 도구
3기능 테스트 수행 도구
4성능 테스트 도구
정답 및 해설

성능 테스트 도구는 가상의 다수 사용자를 생성하여 애플리케이션에 부하를 가하고 처리량·응답시간·경과시간·자원사용률 등을 측정함으로써 성능 목표 달성 여부를 확인하는 테스트 자동화 도구이다(예: LoadRunner, JMeter).
명세 기반·코드 기반 테스트 설계 도구나 기능 테스트 수행 도구는 기능적 정확성 검증에 초점을 두므로 부하·응답시간 측정과는 목적이 다르다.

문제 27
소프트웨어 형상 관리에 대한 설명으로 거리가 먼 것은?     
1소프트웨어에 가해지는 변경을 제어하고 관리한다.
2프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 모두 관리 대상이다.
3대표적인 형상관리 도구로 Ant, Maven, Gradle 등이 있다.
4유지 보수 단계뿐만 아니라 개발 단계에도 적용할 수 있다.
정답 및 해설

형상관리 도구는 소프트웨어 산출물(프로젝트 계획서·분석서·설계서·프로그램·테스트 케이스 등)의 버전과 변경 이력을 관리하는 도구로 Git, SVN, CVS, ClearCase 등이 대표적이다.
Ant·Maven·Gradle은 컴파일·패키징·의존성 관리를 자동화하는 빌드 도구이지 형상관리 도구가 아니므로 해당 설명이 거리가 멀다.

문제 28
디지털 저작권 관리(DRM) 구성 요소가 아닌 것은?     
1Dataware house
2DRM Controller
3Packager
4Contents Distributor
정답 및 해설

DRM(디지털 저작권 관리)의 구성요소로는 콘텐츠를 암호화하는 Packager, 라이선스·정책을 관리하는 DRM Controller, 암호화된 콘텐츠를 배포하는 Contents Distributor, 이 외에 Contents Provider·Clearing House·DRM Agent 등이 있다.
데이터웨어하우스(Data warehouse)는 대용량 데이터 분석·저장을 위한 시스템으로 DRM 구성요소에 해당하지 않는다.

문제 29
다음 설명의 소프트웨어 버전 관리도구 방식은?          
1단일 저장소 방식
2분산 저장소 방식
3공유폴더 방식
4클라이언트·서버 방식
정답 및 해설

분산 저장소 방식은 중앙 저장소뿐 아니라 각 개발자의 로컬 환경에도 전체 버전 이력을 가진 저장소를 두어, 로컬에서 커밋한 뒤 원격 저장소와 동기화(push/pull)하는 버전 관리 방식이다(대표적으로 Git).
이는 하나의 중앙 저장소만 두는 단일 저장소 방식이나 서버가 파일을 직접 관리하는 클라이언트·서버 방식과 구분된다.

문제 30
블랙박스 테스트를 이용하여 발견할 수 있는 오류가 아닌 것은?     
1비정상적인 자료를 입력해도 오류 처리를 수행하지 않는 경우
2정상적인 자료를 입력해도 요구된 기능이 제대로 수행되지 않는 경우
3반복 조건을 만족하는데도 루프 내의 문장이 수행되지 않는 경우
4경계값을 입력할 경우 요구된 출력 결과가 나오지 않는 경우
정답 및 해설

블랙박스 테스트는 프로그램의 내부 구조나 제어 흐름을 보지 않고 입력에 대한 출력 결과만으로 검증하는 기법이다.
반복 조건을 만족하는데도 루프 내부 문장이 수행되지 않는 경우는 프로그램 내부의 제어 흐름 구조를 살펴봐야 발견할 수 있는 오류이므로, 이는 화이트박스 테스트(예: 루프 테스트)의 영역이지 블랙박스 테스트로 발견할 수 있는 오류가 아니다.

문제 31
다음 자료를 버블 정렬을 이용하여 오름차순으로 정렬할 경우 Pass 2의 결과는?          
13, 5, 6, 7, 9
26, 7, 3, 5, 9
33, 5, 9, 6, 7
46, 3, 5, 7, 9
정답 및 해설

버블 정렬은 인접한 두 값을 비교해 큰 값을 오른쪽으로 밀어내며, 한 Pass가 끝날 때마다 뒤쪽부터 정렬 값이 하나씩 확정된다.
초기값 9, 6, 7, 3, 5에서 Pass 1을 수행하면 (9,6)→(9,7)→(9,3)→(9,5) 순으로 모두 교환되어 6, 7, 3, 5, 9가 된다.
이어서 Pass 2에서는 (6,7) 비교는 교환 없음, (7,3)과 (7,5)는 교환, 마지막 (7,9)는 교환 없음이 일어나 결과가 6, 3, 5, 7, 9가 된다.

문제 32
정렬된 N개의 데이터를 처리하는 데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?     
1합병정렬
2버블정렬
3선택정렬
4삽입정렬
정답 및 해설

합병정렬(Merge Sort)은 데이터를 반씩 분할해 재귀적으로 정렬한 뒤 병합하는 방식으로, 분할 단계가 log2N\log_2 N회 반복되고 각 단계마다 N개의 원소를 병합하므로 시간복잡도가 항상 O(Nlog2N)O(N\log_2 N)이다.
반면 버블정렬·선택정렬·삽입정렬은 단순 비교·교환 기반으로 평균 및 최악 시간복잡도가 O(N2)O(N^2)이다.

문제 33
다음 postfix로 표현된 연산식의 연산 결과로 옳은 것은?          
135
242
381
4360
정답 및 해설

후위표기법(postfix)은 피연산자를 스택에 쌓다가 연산자를 만나면 스택에서 두 값을 꺼내 연산한 뒤 결과를 다시 push하는 방식으로 계산한다.
3 4 * 5 6 * +를 처리하면 먼저 3과 4를 곱해 12를 push하고, 이어 5와 6을 곱해 30을 push한 뒤, 마지막 +에서 12와 30을 더해 최종 결과 42가 된다.

문제 34
EAI(Enterprise Application Integration) 구축 유형에서 애플리케이션 사이에 미들웨어를 두어 처리하는 것은?
1Message Bus
2Point-to-point
3Hub &Spoke
4Hybrid
정답 및 해설

EAI 구축 유형 중 메시지 버스(Message Bus) 방식은 애플리케이션 사이에 미들웨어(버스)를 두고 이를 통해 표준화된 방식으로 데이터를 전송·중계한다.
이는 애플리케이션을 1:1로 직접 연결하는 Point-to-Point, 중앙 허브가 모든 연계를 집중 관리하는 Hub&Spoke, 두 방식을 혼합한 Hybrid와 구분된다.

문제 35
인터페이스 구현 검증 도구가 아닌 것은?     
1Foxbase
2STAF
3watir
4xUnit
정답 및 해설

STAF·watir·xUnit은 각각 분산 테스트 자동화 프레임워크, 웹 애플리케이션 테스트 도구, 단위 테스트 프레임워크로 인터페이스 구현 검증에 활용된다.
반면 Foxbase는 dBASE 계열의 데이터베이스 관리 프로그램으로 테스트 도구가 아니다.

문제 36
클린코드 작성원칙에 대한 설명으로 틀린 것은?     
1코드의 중복을 최소화 한다.
2코드가 다른 모듈에 미치는 영향을 최대화하도록 작성한다.
3누구든지 코드를 쉽게 읽을 수 있도록 작성한다.
4간단하게 코드를 작성한다.
정답 및 해설

클린코드는 다른 코드(모듈)에 미치는 영향, 즉 의존성을 최소화하도록 작성해 변경 시 파급 효과를 줄이는 것을 원칙으로 한다.
따라서 '다른 모듈에 미치는 영향을 최대화하도록 작성한다'는 설명은 클린코드 원칙에 반한다.

문제 37
소프트웨어 패키징에 대한 설명으로 틀린 것은?     
1패키징은 개발자 중심으로 진행한다.
2신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징 한다.
3고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.
4범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.
정답 및 해설

소프트웨어 패키징은 개발자가 아닌 사용자(고객) 중심으로 진행되어야 하며, 사용자가 최소한의 환경 설정만으로 쉽게 사용할 수 있도록 범용 배포 형태로 구성하는 것이 원칙이다.
따라서 '개발자 중심으로 진행한다'는 설명은 틀린 내용이다.

문제 38
공학적으로 잘된 소프트웨어(Well Engineered Software)의 설명 중 틀린 것은?     
1소프트웨어는 유지보수가 용이해야 한다.
2소프트웨어는 신뢰성이 높아야 한다.
3소프트웨어는 사용자 수준에 무관하게 일관된 인터페이스를 제공해야 한다.
4소프트웨어는 충분한 테스팅을 거쳐야 한다.
정답 및 해설

공학적으로 잘된 소프트웨어는 사용자의 수준과 요구에 맞는 인터페이스를 제공해야 하며, 이러한 사용성(Usability)이 특성 중 하나다.
따라서 '사용자 수준에 무관하게 일관된 인터페이스를 제공해야 한다'는 설명은 틀리며, 유지보수 용이성·신뢰성·충분한 테스팅은 올바른 특성이다.

문제 39
테스트와 디버그의 목적으로 옳은 것은?     
1테스트는 오류를 찾는 작업이고 디버깅은 오류를 수정하는 작업이다.
2테스트는 오류를 수정하는 작업이고 디버깅은 오류를 찾는 작업이다.
3둘 다 소프트웨어의 오류를 찾는 작업으로 오류 수정은 하지 않는다.
4둘 다 소프트웨어 오류의 발견, 수정과 무관하다.
정답 및 해설

테스트는 소프트웨어에 존재하는 오류를 찾아내는 작업이고, 디버깅은 테스트로 발견된 오류의 원인을 찾아 수정하는 작업이다.
즉 두 활동은 각각 오류 발견과 오류 수정이라는 서로 다른 목적을 갖는다.

문제 40
다음 중 스택을 이용한 연산과 거리가 먼 것은?     
1선택정렬
2재귀호출
3후위표현(Post-fix expression)의 연산
4깊이우선탐색
정답 및 해설

재귀호출은 함수 복귀 주소를 스택에 저장하고, 후위표현(postfix) 연산은 피연산자를 스택에 push하며 계산하고, 깊이우선탐색(DFS)은 방문 경로를 스택으로 관리하므로 모두 스택 기반 연산이다.
선택정렬은 매 회전마다 배열 전체를 순회하며 최솟값을 찾아 교환하는 방식으로 스택을 사용하지 않는다.

문제 41
병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법이 아닌 것은?     
1라운드-로빈
2범위 분할
3예측 분할
4해시 분할
정답 및 해설

병렬 데이터베이스의 수평 분할 기법에는 라운드-로빈·범위 분할·해시 분할이 있으며, 각각 순차 배분·값의 범위·해시 함수 결과에 따라 튜플을 여러 노드에 분산 저장한다. 예측 분할은 표준적인 수평 분할 기법으로 분류되지 않는 용어이다.

문제 42
시스템 카탈로그에 대한 설명으로 옳지 않은 것은?     
1사용자가 직접 시스템 카탈로그의 내용을 갱신하여 데이터베이스 무결성을 유지한다.
2시스템 자신이 필요로 하는 스키마 및 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
3시스템 카탈로그에 저장되는 내용을 메타데이터라고도 한다.
4시스템 카탈로그는 DBMS가 스스로 생성하고 유지한다.
정답 및 해설

시스템 카탈로그는 DBMS가 스스로 생성·유지·관리하는 메타데이터 저장소로서, 사용자는 SELECT 문 등으로 내용을 조회할 수 있을 뿐 직접 갱신할 수 없다. 사용자가 직접 시스템 카탈로그를 갱신하여 무결성을 유지한다는 설명은 DBMS의 자동 관리 원칙에 어긋난다.

문제 43
SQL 문에서 SELECT에 대한 설명으로 옳지않은 것은?     
1FROM 절에는 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술한다.
2검색결과에 중복되는 레코드를 없애기위해서는 WHERE 절에 'DISTINCT'키워드를 사용한다.
3HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹에 대한 조건을 지정한다.
4ORDER BY 절은 특정 속성을 기준으로 정렬하여 검색할 때 사용한다.
정답 및 해설

중복 레코드를 제거하려면 SELECT 절 바로 뒤에 DISTINCT 키워드를 붙여 SELECT DISTINCT 형태로 사용해야 하며, WHERE 절에는 DISTINCT를 쓸 수 없다. FROM·HAVING·ORDER BY 절에 대한 나머지 설명은 SQL 문법과 일치한다.

문제 44
SQL에서 VIEW를 삭제할 때 사용하는 명령은?     
1ERASE
2KILL
3DROP
4DELETE
정답 및 해설

SQL에서 뷰(VIEW)를 포함한 스키마 객체를 제거할 때는 DROP 문을 사용하며, VIEW 삭제는 DROP VIEW 뷰이름; 형식으로 수행한다.

문제 45
DDL(Data Define Language)의 명령어 중 스키마, 도메인, 인덱스 등을 정의할 때 사용하는 SQL문은?     
1ALTER
2SELECT
3CREATE
4INSERT
정답 및 해설

DDL 명령어 중 스키마·도메인·인덱스·테이블 등의 객체를 새로 정의할 때는 CREATE 문을 사용한다. ALTER는 이미 정의된 객체의 변경에 쓰이며, SELECT·INSERT는 DDL이 아닌 DML에 속하는 데이터 조작 명령이다.

문제 46
테이블 R1, R2에 대하여 다음 SQL문의결과는?          
1
2
3
4
정답 및 해설

SQL문을 단계별로 실행하면, 먼저 R1과 R2의 FULL OUTER JOIN으로 두 테이블의 모든 행을 결합한다. R1에는 A(1,2,3), R2에는 B(2,3,4)가 있으므로 조인 결과는 A=1(R2NULL), A=2(B=2), A=3(B=3), A=NULL(B=4)의 4행이다.
다음 WHERE A IS NOT NULL OR B IS NOT NULL 조건은 양쪽 모두 NULL인 행을 제외하므로 모든 4행이 남는다.
마지막으로 GROUP BY A, B로 각 (A, B) 조합별로 그룹화되고, COUNT(*)는 각 그룹당 1이 된다. 최종 결과는 (1, NULL, 1), (2, 2, 1), (3, 3, 1), (NULL, 4, 1)의 4행으로, 정답은 2번이다.

문제 47
데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?     
1레코드 집중의 분석 및 설계
2접근 경로 설계
3저장 레코드의 양식 설계
4목표 DBMS에 맞는 스키마 설계
정답 및 해설

데이터베이스 설계의 물리적 설계 단계에서는 저장 레코드의 양식 설계·레코드 집중 분석·접근 경로 설계 등 저장 구조와 관련된 사항을 다룬다. 목표 DBMS에 맞춘 스키마 설계는 이보다 앞선 논리적 설계 단계에서 수행되는 작업이다.

문제 48
릴레이션에서 기본 키를 구성하는 속성은 널(Null)값이나 중복 값을 가질 수 없다는 것을 의미하는 제약조건은?     
1참조 무결성
2보안 무결성
3개체 무결성
4정보 무결성
정답 및 해설

기본 키를 구성하는 속성이 널 값이나 중복 값을 가질 수 없다는 제약은 개체 무결성이다. 참조 무결성은 외래 키 값이 참조 대상 기본 키 값과 일치하거나 널이어야 한다는 별개의 제약조건이다.

문제 49
병행제어 기법의 종류가 아닌 것은?     
1로킹 기법
2시분할 기법
3타임 스탬프 기법
4다중 버전 기법
정답 및 해설

병행제어 기법에는 로킹 기법·타임스탬프 기법·다중 버전 기법 등이 있으며, 트랜잭션의 동시 접근 시 데이터 일관성을 보장하기 위한 방식들이다. 시분할 기법은 CPU를 여러 프로세스에 나누어 할당하는 운영체제의 스케줄링 기법으로 병행제어와는 무관하다.

문제 50
다음 R1과 R2의 테이블에서 아래의 실행 결과를 얻기 위한 SQL문은?          
1SELECT 과목번호, 과목이름 FROM RI, R2 WHERE R1.학번 = R2. 학번 AND R1.학과='전자공학' AND R1.이름 = '강남길’;     
2SELECT 과목번호, 과목이름 FROM RI, R2 WHERE R1.학번 = R2.학번 OR R1.학과='전자공학' OR R1.이름 = '홍길동';
3SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과=‘컴퓨터공학' AND R1.이름 '강남길’;
4SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과='컴퓨터공학' OR R1.이름 = '홍길동';
정답 및 해설

R1과 R2를 학번으로 조인한 뒤 원하는 한 학생의 과목 정보만 얻으려면 학과·이름 조건을 모두 AND로 연결해 동시에 만족하는 행만 선택해야 한다. OR로 연결한 보기는 조건 중 하나만 맞아도 결과에 포함되어 불필요한 행까지 검색되므로 실행 결과와 일치하지 않는다. R1 테이블에 제시된 실제 학과·이름 값과 정확히 일치하는 AND 조건식을 쓴 보기만 원하는 결과를 산출한다.

문제 51
다음 관계 대수 중 순수 관계 연산자가 아닌 것은?     
1차집합(difference)
2프로젝트(project)
3조인(join)
4디비전 (division)
정답 및 해설

순수 관계 연산자select·project·join·division 네 가지이며, 합집합·교집합·차집합(difference)·카티션 프로덕트는 두 릴레이션 사이에 수행하는 일반 집합 연산자에 속한다. 따라서 차집합은 순수 관계 연산자가 아니다.

문제 52
관계형 데이터 모델의 릴레이션에 대한 설명으로 틀린 것은?     
1모든 속성 값은 원자 값을 갖는다.
2한 릴레이션에 포함된 튜플은 모두 상이하다.
3한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
4한 릴레이션을 구성하는 속성 사이에는 순서가 존재한다.
정답 및 해설

릴레이션에서는 튜플 사이뿐 아니라 속성(애트리뷰트) 사이에도 순서가 존재하지 않는다. 각 속성은 이름으로 식별되며 나열 순서와 무관하게 동일한 릴레이션으로 취급되므로 "속성 사이에는 순서가 존재한다"는 설명이 틀렸다.

문제 53
릴레이션 R의 차수가 4이고 카디널리티가 5이며, 릴레이션 S의 차수가 6이고 카디널리티가 7일 때, 두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이 션의 차수와 카디널리티는 얼마인가?     
124, 35
224, 12
310, 35
410, 12
정답 및 해설

두 릴레이션의 카티션 프로덕트 결과는 차수가 두 릴레이션 차수의 합, 카디널리티가 두 릴레이션 카디널리티의 곱이 된다.
차수는 4+6=104+6=10, 카디널리티는 5×7=355 \times 7 = 35이므로 결과 릴레이션은 차수 10, 카디널리티 35이다.

문제 54
속성(attribute)에 대한 설명으로 틀린 것은?     
1속성은 개체의 특성을 기술한다.
2속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다.
3속성은 파일 구조상 데이터 항목 또는 데이터 필드에 해당된다.
4속성의 수를 "cardinality" 라고 한다.
정답 및 해설

속성(애트리뷰트)의 수는 릴레이션의 차수(Degree)라고 부르며, cardinality는 튜플(행)의 수를 의미한다. 따라서 "속성의 수를 cardinality라 한다"는 설명은 틀렸다.

문제 55
다음 SQL 문에서 ( ) 안에 들어갈 내용으로 옳은 것은?          
1SET
2FROM
3INTO
4IN
정답 및 해설

값을 변경하는 UPDATE 문은 UPDATE 테이블명 SET 컬럼=값 [WHERE 조건] 형식으로 작성하며, 갱신할 컬럼과 값을 지정하는 절이 SET이다. FROM은 SELECT 문에서 대상 테이블을 지정할 때, INTO는 INSERT 문에서 사용하는 키워드이므로 이 빈칸에는 맞지 않는다.

문제 56
관계 데이터베이스 모델에서 차수(Degree)의 의미는?     
1튜플의 수
2테이블의 수
3데이터베이스의 수
4애트리뷰트의 수
정답 및 해설

차수(Degree)는 하나의 릴레이션(테이블)을 구성하는 애트리뷰트(속성)의 수를 의미하며, 튜플의 수는 카디널리티라고 부른다.

문제 57
개체-관계 모델(E-R)의 그래픽 표현으로 옳지 않은 것은?     
1개체타입 – 사각형
2속성 - 원형
3관계타입 - 마름모
4연결 - 삼각형
정답 및 해설

E-R 다이어그램에서 개체타입은 사각형, 속성은 타원(원형), 관계타입은 마름모로 표현하고, 개체타입·속성·관계타입 사이의 연결은 직선으로 나타낸다. 삼각형은 E-R 다이어그램 표기법에 쓰이지 않으므로 "연결-삼각형"이 옳지 않다.

문제 58
트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀 시키는 연산은?     
1COMMIT 연산
2BACKUP 연산
3LOG 연산
4ROLLBACK 연산
정답 및 해설

ROLLBACK 연산은 트랜잭션 수행 중 오류가 발생했을 때 지금까지 수행한 변경 내용을 취소하고 트랜잭션 시작 이전 상태로 되돌리는 연산이다. 이는 트랜잭션의 성공을 확정하는 COMMIT 연산과 반대되는 개념이다.

문제 59
데이터 속성 간의 종속성에 대한 엄밀한 고려없이 잘못 설계된 데이터베이스에서는 데이터 처리 연산 수행 시 각종 이상 현상이 발생할 수 있는데, 이러한 이상 현상이 아닌 것은?     
1검색 이상
2삽입 이상
3삭제 이상
4갱신 이상
정답 및 해설

정규화가 미흡한 릴레이션에서 발생하는 이상 현상은 삽입 이상·삭제 이상·갱신 이상 세 가지이며, 데이터를 조회할 때 발생하는 '검색 이상'이라는 개념은 존재하지 않는다.

문제 60
제3정규형 (3NF)에서 BCNF(Boyce-Codd Normal Form)가 되기 위한 조건은?     
1결정자가 후보키가 아닌 함수 종속 제거
2이행적 함수 종속 제거
3부분적 함수 종속 제거
4원자값이 아닌 도메인 분해
정답 및 해설

3NF가 BCNF가 되려면 릴레이션에 존재하는 함수 종속 중 결정자가 후보키가 아닌 함수 종속을 제거하여 모든 결정자가 후보키가 되도록 해야 한다. 이행적 함수 종속 제거는 2NF에서 3NF로, 부분 함수 종속 제거는 1NF에서 2NF로 갈 때의 조건이다.

문제 61
다음 설명에 해당하는 방식은?          
1STA
2Collision Domain
3CSMA/CA
4CSMA/CD
정답 및 해설

무선랜 환경에서 매체가 비어 있음을 확인한 뒤에도 충돌 회피를 위해 임의의 시간(랜덤 백오프)을 기다린 후 데이터를 전송하고, 전송이 없는 상황에서도 동시 전송으로 인한 충돌에 대비해 확인 신호를 주고받는 방식은 CSMA/CA이다.
유선 이더넷에서 쓰이는 CSMA/CD는 충돌을 사전에 회피하는 대신 전송 중 충돌을 감지(Detection)한 뒤 재전송하는 방식이라는 점에서 구분된다.

문제 62
다음 중 가장 약한 결합도(Coupling)는?     
1Common Coupling
2Content Coupling
3External Coupling
4Stamp Coupling
정답 및 해설

결합도(Coupling)는 강한 순서로 내용(Content)→공통(Common)→외부(External)→제어(Control)→스탬프(Stamp)→자료(Data) 결합도로 갈수록 약해진다.
제시된 보기 중 가장 약한 결합도는 스탬프 결합도(Stamp Coupling)이며, 전역변수를 공유하는 공통 결합도나 모듈 내부를 직접 참조하는 내용 결합도보다 결합 강도가 낮다.

문제 63
다음 C언어 프로그램이 실행되었을 때의 결과는?          
13
24
37
410
정답 및 해설

a=4(0100), b=7(0111)이고 c = a | b는 비트별 OR 연산이므로 0100 | 0111 = 0111, 즉 7이다.
따라서 printf("%d", c)의 출력 결과는 7이다.

문제 64
다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?          
10
22
34
46
정답 및 해설

setdata(4, 2) 호출로 sel(self 역할)의 fir=4, sec=2가 설정되고, add()는 result = sel.fir + sel.sec = 4 + 2 = 6을 반환한다.
따라서 print(a.add())의 출력은 6이다.

문제 65
교착상태의 해결 방법 중 은행원 알고리즘(Banker's Algorithm)이 해당되는 기법은?     
1Detection
2Avoidance
3Recovery
4Prevention
정답 및 해설

은행원 알고리즘(Banker's Algorithm)은 자원 요청 시 시스템이 안전 상태(Safe State)를 유지할 수 있는지 미리 검사하여 교착상태에 빠질 가능성이 있는 요청을 거부함으로써 교착상태 발생 자체를 막는 기법이므로 회피(Avoidance)에 해당한다.
이는 자원을 미리 선점·제한하는 예방(Prevention)이나 발생 후 찾아내는 탐지(Detection)와는 구분된다.

문제 66
CIDR(Classless Inter-Domain Routing) 표기로 203.241.132.82/27과 같이 사용되었다면, 해당 주소의 서브넷 마스크(subnet mask)는?     
1255.255.255.0
2255.255.255.224
3255.255.255.240
4255.255.255.248
정답 및 해설

서브넷 프리픽스 /27은 네트워크 비트가 27개, 호스트 비트가 3227=532-27=5개임을 의미하며 호스트 비트 5개를 모두 1로 채우면 25=322^5=32, 남은 비트를 1로 채운 마지막 옥텟 값은 25632=224256-32=224이다.
따라서 서브넷 마스크는 255.255.255.224이다.

문제 67
다음 JAVA 프로그램이 실행되었을 때의 결과는?          
15, 5, 5
25, 6, 5
36, 5, 5
45, 6, 4
정답 및 해설

x=5에서 y = x++는 후위 증가이므로 x가 6이 되기 전 값인 5가 먼저 y에 대입되어 y=5, x=6이 된다.
이어서 z = --x는 전위 감소로 x를 먼저 5로 감소시킨 뒤 그 값을 z에 대입하므로 x=5, z=5가 되고, 최종 출력은 x, y, z 순서로 5, 5, 5이다.

문제 68
프로세스 적재 정책과 관련한 설명으로 틀린 것은?     
1반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.
2공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미한다.
3일반적으로 페이지 교환에 보내는 시간보다 프로세스 수행에 보내는 시간이 더 크면 스레싱(Thrashing)이 발생한다.
4스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.
정답 및 해설

스레싱(Thrashing)은 프로세스가 실제 실행에 사용하는 시간보다 페이지 교체(폴트 처리)에 소요되는 시간이 더 커질 때 발생하는 현상으로, 프로세스 수행 시간이 페이지 교환 시간보다 크면 스레싱이 발생한다는 설명은 이 조건을 반대로 서술한 것이라 틀리다.
나머지 보기인 반복·스택·부프로그램의 시간 지역성, 인접 페이지 참조 경향인 공간 지역성, 필요 프레임 제공을 통한 스레싱 방지는 모두 옳은 설명이다.

문제 69
프레임워크(Framework)에 대한 설명으로 옳은 것은?     
1소프트웨어 구성에 필요한 기본 구조를 제공함으로써 재사용이 가능하게 해준다
2소프트웨어 개발 시 구조가 잡혀 있기 때문에 확장이 불가능하다.
3소프트웨어 아키텍처(Architecture)와 동일한 개념이다.
4모듈화(Modularity)가 불가능하다.
정답 및 해설

프레임워크(Framework)는 소프트웨어 개발에 필요한 기본 구조와 뼈대를 미리 제공하여 개발자가 그 위에서 기능을 재사용·확장하며 개발할 수 있게 해주는 반제품 형태의 결과물이다.
따라서 재사용성을 높여준다는 설명이 옳으며, 프레임워크는 확장과 모듈화를 지원하고 특정 아키텍처의 구현체일 뿐 아키텍처 자체와 동일한 개념은 아니다.

문제 70
다음 JAVA 프로그램이 실행되었을 때의 결과는?          
12
23
34
45
정답 및 해설

do-while문은 조건 검사 전에 본문을 최소 1회 실행하므로 cnt=0에서 cnt++가 실행되어 cnt=1이 되고, 조건 cnt<0이 거짓이라 곧바로 반복이 종료된다.
이어서 cnt==1이 참이므로 cnt++가 실행되어 cnt=2가 되고, System.out.printf("%d", cnt)의 출력은 2이다.

문제 71
리눅스 Bash 쉘(Shell)에서 export와 관련한 설명으로 틀린 것은?     
1변수를 출력하고자 할 때는 export를 사용해야 한다.
2export가 매개변수 없이 쓰일 경우 현재 설정된 환경변수들이 출력된다.
3사용자가 생성하는 변수는 export 명령어 표시하지 않는 한 현재 쉘에 국한된다.
4변수를 export 시키면 전역(Global)변수처럼 되어 끝까지 기억된다.
정답 및 해설

export는 변수를 자식 프로세스에서도 쓸 수 있도록 환경변수로 등록하는 명령이며, 변수 값을 화면에 출력할 때는 export가 아니라 echo를 사용하므로 "출력을 위해 export를 사용해야 한다"는 설명은 틀리다. export를 매개변수 없이 실행하면 현재 설정된 환경변수 목록이 나열되고, export하지 않은 사용자 변수는 현재 쉘에만 국한되며, export된 변수는 전역 변수처럼 쉘이 종료될 때까지 유지된다.

문제 72
다음 C언어 프로그램이 실행되었을 때의 결과는?          
11
211
366
498
정답 및 해설

이미지의 C언어 코드를 읽으면, main 함수에서 재귀함수 func를 호출하여 결과값을 출력한다. func 함수는 n ≤ 1일 때 1을 반환하고, n > 1일 때 n + func(n-1) + func(n-2)를 반환한다. func(5)를 계산하면: func(5) = 5 + func(4) + func(3), func(4) = 4 + func(3) + func(2), func(3) = 3 + func(2) + func(1), func(2) = 2 + func(1) + func(0) = 2 + 1 + 1 = 4, func(1) = 1, func(0) = 1이므로 func(3) = 3 + 4 + 1 = 8, func(4) = 4 + 8 + 4 = 16, func(5) = 5 + 16 + 8 = 29이다. 그런데 정답이 66이라는 점을 고려하면, 코드에서 여러 번 호출되거나 누적되는 구조가 있을 수 있다. 이미지를 더 정확히 보면 printf 부분에서 func(5) 외에 다른 누적 계산이 있거나, 전역 변수에 값을 누적하는 로직이 포함되어 있을 가능성이 높다. 재귀 호출 과정에서 각 함수 호출마다 증가하는 전역 카운터나 누적값이 있다면, 모든 재귀 호출의 합이 66이 될 수 있다.

문제 73
다음 C언어 프로그램이 실행되었을 때의 결과는?          
155
277
3121
4132
정답 및 해설

이미지의 C 프로그램을 읽으면, i가 1부터 10까지 반복되면서 sum에 i를 계속 더하는 구조다. 먼저 각 단계를 추적하면: i=1일 때 sum=0+1=1, i=2일 때 sum=1+2=3, i=3일 때 sum=3+3=6, ..., i=10일 때 sum=45+10=55가 된다. 그 다음 for 루프에서 i가 1부터 11까지 반복되면서 sum에 i를 더하므로, sum=55+1+2+3+...+11이 된다. 1부터 11까지의 합은 11×12÷2=66이므로, 최종 sum=55+66=121이다.

문제 74
페이징 기법에서 페이지 크기가 작아질수록 발생하는 현상이 아닌 것은?     
1기억장소 이용 효율이 증가한다.
2입·출력 시간이 늘어난다.
3내부 단편화가 감소한다.
4페이지 맵 테이블의 크기가 감소한다.
정답 및 해설

페이지 크기가 작아지면 프로세스가 차지하는 페이지 수가 늘어나므로 페이지 맵 테이블의 크기는 오히려 증가한다. 반면 페이지가 작아질수록 내부 단편화는 감소하고 기억장소 이용 효율은 증가하며, 페이지 수가 늘어나 페이지 교체를 위한 입출력 횟수와 시간은 증가한다.

문제 75
다음 중 가장 강한 응집도(Cohesion)는?     
1Sequential Cohesion
2Procedural Cohesion
3Logical Cohesion
4Coincidental Cohesion
정답 및 해설

응집도는 기능적 > 순차적(Sequential) > 교환적 > 절차적(Procedural) > 시간적 > 논리적(Logical) > 우연적(Coincidental) 순으로 강도가 낮아진다. 제시된 보기 중에서는 한 요소의 출력이 다음 요소의 입력으로 사용되는 Sequential Cohesion이 가장 강한 응집도이며, Procedural·Logical·Coincidental은 이보다 약한 응집도이다.

문제 76
TCP 프로토콜과 관련한 설명으로 틀린 것은?     
1인접한 노드 사이의 프레임 전송 및 오류를 제어한다.
2흐름 제어(Flow Control)의 기능을 수행한다.
3전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다.
4전송 데이터와 응답 데이터를 함께 전송할 수 있다.
정답 및 해설

"인접한 노드 사이의 프레임 전송 및 오류 제어"는 데이터 링크 계층의 기능 설명이며, TCP는 전송 계층 프로토콜로 이와 무관하다. TCP는 흐름 제어를 수행하고 전이중(Full Duplex) 방식의 양방향 가상회선을 제공하며, 응답 데이터에 전송 데이터를 함께 실어 보내는 피기배킹 방식도 지원한다.

문제 77
C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은?          
1㉠, ㉥, ㉣, ㉢, ㉡, ㉤
2㉠, ㉣, ㉥, ㉢, ㉡, ㉤
3㉠, ㉣, ㉥, ㉢, ㉤, ㉡
4㉠, ㉥, ㉣, ㉤, ㉡, ㉢
정답 및 해설

이미지의 연산자를 확인하면 ㉠ 괄호(), ㉡ 논리합(||), ㉢ 논리곱(&&), ㉣ 관계연산자(>), ㉤ 할당(=), ㉥ 곱셈(*)이다. C언어의 연산자 우선순위는 괄호 > 곱셈·나눗셈 > 관계연산자 > 논리곱(&&) > 논리합(||) > 할당 순서로 높은 것에서 낮은 것이다. 따라서 ㉠(괄호) > ㉥(곱셈) > ㉣(관계연산자) > ㉢(논리곱) > ㉡(논리합) > ㉤(할당) 순으로 나열되어야 한다.

문제 78
C언어 라이브러리 중 stdlib.h에 대한설명으로 옳은 것은?     
1문자열을 수치 데이터로 바꾸는 문자 변환함수와 수치를 문자열로 바꿔주는 변환함수 등이 있다.
2문자열 처리 함수로 strlen()이 포함되어 있다.
3표준 입출력 라이브러리이다.
4삼각 함수, 제곱근, 지수 등 수학적인 함수를 내장하고 있다.
정답 및 해설

stdlib.h는 표준 유틸리티 라이브러리로 atoi·atof처럼 문자열을 수치로 바꾸는 함수와 itoa처럼 수치를 문자열로 바꾸는 변환 함수 등을 제공한다. strlen()과 같은 문자열 처리 함수는 string.h, 표준 입출력 함수는 stdio.h, 삼각함수·제곱근 등 수학 함수는 math.h에 속한다.

문제 79
자바스크립트(JavaScript)와 관련한 설명으로 틀린 것은?
1프로토타입(Prototype)의 개념이 존재한다.
2클래스 기반으로 객체 상속을 지원한다.
3Prototype Link와 Prototype Object를 활용할 수 있다.
4객체지향 언어이다.
정답 및 해설

자바스크립트는 클래스 기반이 아닌 프로토타입(Prototype) 기반 객체지향 언어로, 객체 간 상속은 Prototype Link와 Prototype Object를 통해 이루어진다. ES6의 class 문법은 이러한 프로토타입 상속을 문법적으로 표현한 것일 뿐이므로 "클래스 기반으로 객체 상속을 지원한다"는 설명은 틀리다.

문제 80
OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은?     
1패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다.
2한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.
3패킷에 발신지와 목적지의 논리 주소를 추가한다.
4라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다.
정답 및 해설

"한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다"는 데이터 링크 계층의 역할이며, 네트워크 계층은 프레임이 아닌 패킷 단위로 발신지에서 최종 목적지까지 전달하는 책임을 진다. 네트워크 계층은 패킷에 발신지·목적지의 논리 주소를 추가하고, 라우터가 경로 지정과 교환 기능을 수행한다.

문제 81
다음 내용이 설명하는 것은?          
1SAN
2MBR
3NAC
4NIC
정답 및 해설

제시된 설명은 SAN(Storage Area Network)에 대한 것이다.
광채널(Fibre Channel) 스위치를 이용해 고속·장거리 전송과 멀티 프로토콜을 지원하고, 운영체제가 다른 여러 서버가 네트워크를 통해 동일 저장장치의 데이터를 공유하게 함으로써 저장장치와 백업 장비를 단일화한 전용 저장장치 네트워크이다.
MBR(마스터 부트 레코드)·NAC(네트워크 접근 제어)·NIC(네트워크 인터페이스 카드)는 저장장치를 네트워크로 통합하는 기술과 무관하다.

문제 82
SSH(Secure Shell)에 대한 설명으로 틀린 것은?     
1SSH의 기본 네트워크 포트는 220번을 사용한다
2전송되는 데이터는 암호화 된다.
3키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다.
4서로 연결되어 있는 컴퓨터 간 원격 명령실행이나 셀 서비스 등을 수행한다.
정답 및 해설

SSH(Secure Shell)의 기본 네트워크 포트는 22번이며 220번이 아니므로 이 설명이 틀렸다.
SSH는 전송 데이터를 암호화하고, 클라이언트의 공개키를 서버에 등록하는 방식의 공개키 인증을 지원하며, 원격 명령 실행이나 셸 서비스를 안전하게 수행한다는 나머지 설명은 모두 옳다.

문제 83
CBD(Component Based Development) SW개발 표준 산출물 중 분석 단계에 해당하는 것은?     
1클래스 설계서
2통합시험 결과서
3프로그램 코드
4사용자 요구사항 정의서
정답 및 해설

CBD 표준 산출물 중 분석 단계에 해당하는 것은 사용자 요구사항 정의서이다.
클래스 설계서는 설계 단계, 프로그램 코드는 구현 단계, 통합시험 결과서는 테스트(시험) 단계의 산출물이므로 분석 단계와 맞지 않는다.

문제 84
다음 내용이 설명하는 접근 제어 모델은?          
1Clark-Wilson Integrity Model
2PDCA Model
3Bell-Lapadula Model
4Chinese Wall Model
정답 및 해설

제시된 설명은 Bell-LaPadula Model에 대한 것이다.
군사 등급처럼 정보의 기밀성에 따라 상하 관계를 두어 보호하는 최초의 수학적 보안 모델로, 자신의 권한보다 높은 등급의 문서는 읽을 수 없는 No Read Up과 자신의 권한보다 낮은 등급 문서에는 쓸 수 없는 No Write Down 원칙을 따른다.
Clark-Wilson 모델은 무결성 중심, Chinese Wall 모델은 이해상충 방지가 목적이므로 기밀성 등급 기반 통제라는 설명과 맞지 않는다.

문제 85
하둡(Hadoop)과 관계형 데이터베이스간에 데이터를 전송할 수 있도록 설계된 도구는?     
1Apnic
2Topology
3Sqoop
4SDB.
정답 및 해설

Sqoop은 하둡(Hadoop)과 관계형 데이터베이스(RDBMS) 간에 대용량 데이터를 상호 전송하도록 설계된 도구로, 이름 자체가 SQL to Hadoop에서 유래했다.
Topology·SDB·Apnic은 하둡과 RDBMS 간 데이터 이전 기능과 관련이 없다.

문제 86
라우팅 프로토콜인 OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은?     
1네트워크 변화에 신속하게 대처할 수 있다.
2거리 벡터 라우팅 프로토콜이라고 한다.
3멀티캐스팅을 지원한다.
4최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.
정답 및 해설

OSPF(Open Shortest Path First)는 링크 상태(link-state) 라우팅 프로토콜이지 거리 벡터 라우팅 프로토콜이 아니므로 이 설명이 옳지 않다.
OSPF는 Dijkstra 알고리즘으로 최단 경로를 계산하고, 멀티캐스팅을 지원하며, 링크 상태 변화 시 신속하게 갱신되는 특징을 가진다.

문제 87
소프트웨어 비용 추정 모형(estimation models)이 아닌 것은?     
1COCOMO
2Putnam
3Function-Point
4PERT
정답 및 해설

PERT는 작업 간 선후관계를 네트워크로 표현해 일정을 계획·통제하는 프로젝트 일정관리 기법으로, 소프트웨어 비용 추정 모형이 아니다.
COCOMO·Putnam·Function-Point는 모두 소프트웨어 규모나 기능을 기준으로 개발 비용을 산정하는 대표적인 비용 추정 모형이다.

문제 88
코드의 기입 과정에서 원래 '12536‘으로 기입되어야 하는데 ’12936‘으로 표기되었을 경우, 어떤 코드 오류에 해당하는가?     
1Addition Error
2Omission Error
3Sequence Error
4Transcription Error
정답 및 해설

'12536'이 '12936'으로 표기된 것은 세 번째 자리 '5'가 '9' 하나로 잘못 기록된 것으로, 자릿수 증감이나 순서 바뀜 없이 한 문자만 틀리게 옮겨 적은 Transcription Error(오기 오류)에 해당한다.
자리를 빠뜨리는 Omission Error, 자리를 추가하는 Addition Error, 자리 순서가 뒤바뀌는 Sequence Error와는 오류 양상이 다르다.

문제 89
ISO 12207 표준의 기본 생명주기의 주요 프로세스에 해당하지 않는 것은?     
1획득 프로세스
2개발 프로세스
3성능평가 프로세스
4유지보수 프로세스
정답 및 해설

ISO/IEC 12207 표준의 기본(주요) 생명주기 프로세스는 획득·공급·개발·운영·유지보수 프로세스로 구성되며, 성능평가 프로세스는 여기에 포함되지 않는다.

문제 90
소프트웨어 비용 산정 기법 중 개발 유형으로 organic, semi-detached, embedded로 구분되는 것은?     
1PUTNAM
2COCOMO
3FP
4SLIM
정답 및 해설

COCOMO는 소프트웨어 규모(KDSI)를 기준으로 비용을 산정하는 모형으로, 개발 유형을 organic(조직형)·semi-detached(반분리형)·embedded(내장형)로 구분한다.
PUTNAM은 Rayleigh-Norden 곡선 기반, FP(Function Point)는 기능 점수 기반 산정 기법으로 이러한 개발 유형 구분을 사용하지 않는다.

문제 91
SPICE 모델의 프로세스 수행능력 수준의 단계별 설명이 틀린 것은?     
1수준 7 - 미완성 단계
2수준 5 - 최적화 단계
3수준 4 - 예측 단계
4수준 3 - 확립 단계
정답 및 해설

SPICE(ISO/IEC 15504) 모델의 프로세스 수행능력 수준은 0(불완전)~5(최적화)의 6단계로 구성되며, 수준 7은 존재하지 않는다. 수준 5=최적화, 수준 4=예측, 수준 3=확립 단계는 모두 올바른 설명이지만, 수준 7-미완성 단계는 존재하지 않는 등급을 가리키므로 틀린 설명이다.

문제 92
PC, TV, 휴대폰에서 원하는 콘텐츠를 끊김없이 자유롭게 이용할 수 있는 서비스는?     
1Memristor
2MEMS
3SNMP
4N-Screen
정답 및 해설

N-Screen은 하나의 콘텐츠를 PC·TV·휴대폰 등 여러 단말에서 끊김없이(seamless) 이어서 이용할 수 있게 하는 서비스를 뜻한다. Memristor는 메모리+저항 소자, MEMS는 초정밀 기계전자 시스템, SNMP는 네트워크 관리 프로토콜로 모두 콘텐츠 이용 서비스와 무관하다.

문제 93
해쉬(Hash) 기법에 대한 설명으로 틀린 것은?     
1임의의 길이의 입력 데이터를 받아 고정된 길이의 해쉬 값으로 변환한다.
2주로 공개키 암호화 방식에서 키 생성을 위해 사용한다.
3대표적인 해쉬 알고리즘으로 HAVAL, SHA-1 등이 있다.
4해쉬 함수는 일방향 함수(One-way function)이다.
정답 및 해설

해쉬 함수는 임의 길이 입력을 고정 길이 해쉬값으로 변환하는 일방향 함수로, HAVAL·SHA-1 등이 대표적이며 주로 무결성 검증과 전자서명에 쓰인다. 반면 공개키 암호화 방식의 키 생성은 RSA·ECC 등 비대칭키 알고리즘의 영역이므로 해쉬 기법의 주된 용도로 보기 어려운 틀린 설명이다.

문제 94
IPSec(IP Security)에 대한 설명으로 틀린 것은?     
1암호화 수행시 일방향 암호화만 지원한다.
2ESP는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.
3운영 모드는 Tunnel 모드와 Transport 모드로 분류된다.
4AH는 발신지 호스트를 인증하고, IP 패킷의 무결성을 보장한다.
정답 및 해설

IPSec은 AH(발신지 인증·무결성 보장)와 ESP(인증·무결성·기밀성 보장)를 통해 대칭키 방식의 암호화를 지원하며, Tunnel 모드와 Transport 모드로 운영된다. 따라서 "암호화 수행시 일방향 암호화만 지원한다"는 설명은 실제와 달라 틀린 설명이다.

문제 95
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?     
1Stack Guard
2Bridge
3ASLR
4FIN
정답 및 해설

Stack Guard는 함수 복귀 주소와 지역 변수 사이에 특정 값(canary)을 저장해 두고, 함수 종료 시 이 값의 변조 여부를 검사해 스택 버퍼 오버플로우를 탐지하면 프로그램 실행을 중단시키는 기법이다. Bridge·ASLR·FIN은 각각 네트워크 장비, 메모리 주소 무작위화, TCP 종료 플래그로 이와 무관하다.

문제 96
침입차단 시스템(방화벽) 중 다음과 같은 형태의 구축 유형은?          
1Block Host
2Tree Host
3Screened Subnet
4Ring Homed
정답 및 해설

Screened Subnet은 내부망과 외부망 사이에 DMZ(비무장지대) 서브넷을 두고, 외부-DMZ와 DMZ-내부 양쪽에 각각 스크리닝 라우터/방화벽을 배치해 이중으로 접근을 통제하는 방화벽 구축 유형이다.

문제 97
Secure OS의 보안 기능으로 거리가 먼 것은?     
1식별 및 인증
2임의적 접근 통제
3고가용성 지원
4강제적 접근 통제
정답 및 해설

Secure OS의 보안 기능에는 사용자 식별 및 인증, 임의적 접근 통제(DAC), 강제적 접근 통제(MAC), 감사 등이 포함된다. 고가용성 지원은 시스템의 지속 운영성과 관련된 성능·안정성 요소로 보안 기능과는 거리가 멀다.

문제 98
서버에 열린 포트 정보를 스캐닝해서 보안취약점을 찾는데 사용하는 도구는?     
1type
2mkdir
3ftp
4nmap
정답 및 해설

nmap은 서버의 열린 포트를 스캐닝해 서비스와 보안 취약점을 점검하는 대표적인 포트 스캐닝 도구이다. type은 파일 내용 출력, mkdir는 디렉터리 생성, ftp는 파일 전송용 명령/프로토콜로 포트 스캐닝과는 무관하다.

문제 99
서로 다른 네트워크 대역에 있는 호스트들 상호간에 통신할 수 있도록 해주는 네트워크 장비는?     
1L2 스위치
2HIPO
3라우터
4RAD. 1
정답 및 해설

라우터는 서로 다른 네트워크(대역)를 연결해 각 네트워크에 속한 호스트 간 통신 경로를 설정·중계하는 3계층(네트워크 계층) 장비이다. L2 스위치는 동일 네트워크 대역 내에서 MAC 주소 기반으로 프레임을 전달할 뿐 서로 다른 대역을 연결하지 않는다.

문제 100
암호화 키와 복호화 키가 동일한 암호화 알고리즘은?     
1RSA
2AES
3DSA
4ECC
정답 및 해설

AES는 암호화 키와 복호화 키가 동일한 대칭키(비밀키) 암호화 알고리즘이다. RSA·DSA·ECC는 공개키와 개인키가 서로 다른 비대칭키 방식이므로 암복호화 키가 일치하지 않는다.