21년-1회차-정보처리기사-필기 시험지 PDF 다운로드
21년-1회차-정보처리기사-필기
uname 명령어는 리눅스에서 커널 버전을 비롯한 시스템 정보를 출력하는 명령어로, uname -a 형태로 실행하면 운영체제 이름·커널 버전·아키텍처 등을 확인할 수 있다. ls는 파일 목록, cat은 파일 내용 출력, pwd는 현재 작업 디렉터리 확인용 명령어로 버전 확인과는 무관하다.
소켓(Socket) 기술은 프로그램이 특정 포트에 소켓을 개설(bind)하고 클라이언트의 연결 요청을 수신하여 통신 채널을 맺는 내·외부 송·수신 연계기술이다. DB링크는 데이터베이스 간 데이터 연동, 스크럼은 애자일 개발 방법론, 프로토타입은 개발 모델 용어로 포트 기반 통신 연계와는 관련이 없다.
캡슐화(Encapsulation)는 객체 내부의 속성(데이터)과 메서드(함수)를 하나로 묶고 외부와의 경계를 형성하여, 필요한 인터페이스만 외부에 공개하고 세부 구현은 은닉하는 개념이다. 메시지는 객체 간 요청 전달 수단, 다형성은 동일 인터페이스가 다른 동작을 하는 성질, 상속은 상위 클래스 특성을 물려받는 개념으로 각각 캡슐화와 구분된다.
GoF 디자인 패턴의 생성 패턴에는 추상 팩토리·빌더·팩토리 메서드·프로토타입·싱글턴 5가지가 속한다. 어댑터(Adapter)는 인터페이스가 다른 두 클래스를 연결해 함께 동작하도록 하는 구조 패턴에 속하므로 생성 패턴이 아니다.
RPC(Remote Procedure Call)는 네트워크상의 원격 컴퓨터에 있는 프로시저(함수)를 마치 로컬 프로시저를 호출하듯 실행할 수 있게 해주는 미들웨어 방식이다. WAS는 웹 응용프로그램 실행 환경, MOM은 메시지 큐 기반 비동기 통신, ORB는 객체 간 요청을 중개하는 미들웨어로 각각 RPC와 구분되는 개념이다.
바람직한 소프트웨어 설계는 모듈 간 결합도(Coupling)는 최소화하고 모듈 내부의 응집도(Cohesion)는 최대화하는 것을 지침으로 삼는다. 따라서 '결합도를 최대화한다'는 이 원칙에 반하므로 바람직한 설계 지침이 아니다.
Coad-Yourdon 방법은 E-R 다이어그램을 활용하여 객체의 데이터와 행위를 함께 모델링하는 데 초점을 둔 객체지향 분석 방법론이다. 객체·동적·기능 모델로 나누어 분석하는 방식은 Rumbaugh의 OMT, 미시적·거시적 개발 프로세스를 함께 사용하는 방식은 Booch 방법, Use-Case를 강조하는 방식은 Jacobson의 OOSE에 해당한다.
제시된 구조도에서 모듈 F를 호출하는 상위 모듈은 B·C·D 세 개이므로 fan-in은 3이고, F가 호출하는 하위 모듈은 G·H 두 개이므로 fan-out은 2이다.
현행 시스템 분석은 플랫폼 기능·네트워크·운영체제·DBMS 등 기술적 구성 요소를 대상으로 하드웨어·소프트웨어 환경과 성능을 파악하는 과정이다. 인적 자원 분석은 조직·인력 관리 영역에 해당하는 항목으로 현행 시스템(기술 인프라) 분석의 대상에 포함되지 않는다.
미들웨어(Middleware)는 분산 컴퓨팅 환경에서 서로 다른 하드웨어·프로토콜·통신환경을 가진 시스템 간에 응용프로그램과 운영환경을 원만히 연결해 주는 소프트웨어이다. 하드웨어는 물리적 장치, 오픈허브웨어·그레이웨어는 이러한 연계 기능을 지칭하는 표준 용어가 아니다.
CASE(Computer Aided Software Engineering)는 소프트웨어 개발 과정을 자동화된 도구로 지원하여 모듈 재사용성 향상·품질 향상·유지보수 간편화를 목적으로 하는 기법이다.
이는 개발자와 개발 프로세스를 지원하는 도구이지, 최종 사용자에게 소프트웨어 사용법을 신속히 숙지시키기 위한 목적이 아니므로 해당 설명이 틀린 것이다.
UML에서 Sequence Diagram은 객체들 사이에 주고받는 메시지 교환(시간 순서에 따른 상호작용)을 나타내고, State Diagram은 하나의 객체가 가지는 상태와 그 상태 변화(동작순서)를 나타낸다.
해당 보기는 두 다이어그램의 역할을 서로 뒤바꿔 설명하고 있으므로 틀린 설명이다.
유스케이스 다이어그램에서 기본 유스케이스를 수행하는 도중 특별한 조건을 만족할 때만 추가로 수행되는 유스케이스는 확장(extend) 관계로 표현한다.
이는 항상 포함되는 포함(include) 관계와 달리 조건부로 실행되는 선택적 흐름을 나타낸다.
요구사항 모델링에는 애자일 방법, 유스케이스 다이어그램, 시퀀스 다이어그램 등 사용자 요구와 시스템 동작을 표현하는 기법들이 활용된다.
반면 단계 다이어그램(Phase Diagram)은 요구사항 모델링 기법으로 쓰이지 않는 용어이므로 해당하지 않는다.
디자인 패턴을 재사용하면 검증된 설계를 따르게 되어 코드 품질·의사소통·생산성이 향상되는 효과가 있다.
그러나 개발 프로세스를 무시할 수 있다는 것은 디자인 패턴 재사용의 장점이 아니라 오히려 잘못된 진술이므로 정답이다.
럼바우(Rumbaugh)의 OMT 분석기법 중 객체 모델링(Object Model)은 정보모델링이라고도 하며, 시스템에서 요구되는 객체를 찾아 속성·연산을 식별하고 객체 간의 관계를 다이어그램으로 표시하는 모델링이다.
동적 모델링은 상태 변화, 기능 모델링은 데이터 흐름을 다루는 것과 구분된다.
객체지향 분석은 업무(비즈니스)를 객체와 속성, 클래스와 멤버, 전체와 부분 등의 관계로 나누어 분석하는 기법이다.
업무를 기능 중심의 처리 절차로 나누는 구조적 분석과 달리, 객체 단위의 구조와 관계에 초점을 둔다.
애자일 선언문의 4대 가치는 프로세스·도구보다 개인과 상호작용, 계약 협상보다 고객과의 협업, 계획 준수보다 변화 대응, 그리고 포괄적 문서보다 실제 작동하는 소프트웨어에 더 가치를 두는 것이다.
해당 보기는 이를 반대로 서술하여 문서를 소프트웨어보다 우선시한다고 했으므로 틀린 설명이다.
클래스 다이어그램(Class Diagram)은 UML의 정적(구조) 다이어그램으로, 시스템 내 클래스들의 정적 구조와 클래스·속성 간의 관계를 표현한다.
동적인 흐름이나 상태를 표현하는 Activity Diagram, State Diagram과 구분된다.
최상위의 main user function에서 시작해 기능을 점차 하위 기능들로 분할해 나가며 설계하는 방식은 하향식 설계(Top-Down Design)이다.
이는 하위 모듈들을 먼저 구현한 후 이를 결합해 상위 시스템을 완성하는 상향식 설계와 대비되는 접근이다.
구현 단계의 표준 작업 절차는 코딩 작업을 계획한 뒤 이를 바탕으로 코딩을 수행하고, 작성된 코드를 컴파일하여 실행 가능한 형태로 만든 다음 마지막으로 테스트하는 순서를 따른다.
따라서 순서는 ㉡(코딩작업을 계획한다)-㉠(코딩한다)-㉣(컴파일한다)-㉢(코드를 테스트한다)이다.
초기 자료 8, 3, 4, 9, 7에 Selection Sort를 적용하면 각 PASS마다 남은 구간에서 최솟값을 찾아 맨 앞과 교환한다.
PASS1: 최솟값 3을 첫 자리와 교환 → 3, 8, 4, 9, 7
PASS2: 남은 구간(8,4,9,7)에서 최솟값 4를 교환 → 3, 4, 8, 9, 7
PASS3: 남은 구간(8,9,7)에서 최솟값 7을 교환하면 3, 4, 7, 9, 8이 된다.
하향식 통합시험은 상위 모듈부터 순차적으로 통합하며, 아직 구현되지 않은 하위 모듈이 필요할 때 이를 일시적으로 대체하는 시험용 모듈인 Stub을 사용한다.
반대로 상위 모듈이 아직 없을 때 하위 모듈을 호출해 주는 임시 모듈은 Driver이며, 이는 상향식 통합시험에서 사용된다.
전위식 "- / * A + B C D E"는 오른쪽에서 왼쪽으로 스캔하며 연산자를 만날 때마다 직전에 쌓인 두 피연산자를 피연산자·피연산자·연산자 순으로 결합해 후위식을 만든다.
먼저 +로 B와 C를 묶어 BC+를 만들고, *로 A와 BC+를 묶어 ABC+*를 만든다.
이어서 /로 ABC+*와 D를 묶어 ABC+*D/를 만들고, 마지막으로 -로 이를 E와 묶어 A B C + * D / E -를 얻는다.
사이클이 없고 정점 사이의 관계가 계층적으로 나타나는 비선형 자료구조는 트리(Tree)이다.
네트워크는 사이클이 허용되는 더 일반적인 그래프 구조이고, 스택은 선형 자료구조라는 점에서 구별된다.
스택(Stack)은 삽입과 삭제가 한쪽 끝(top)에서만 이루어지는 LIFO 구조로, top 하나의 포인터만 사용한다.
Head(front)와 Tail(rear) 두 개의 포인터를 사용하는 것은 큐(Queue)의 특징이므로 이 설명이 틀렸다.
DRM(디지털 저작권 관리)의 기술요소로는 콘텐츠를 보호하는 암호화, 암호 키를 관리하는 키관리, 불법 복제를 막는 크랙방지 등이 있다.
방화벽은 네트워크 경계에서 외부 침입을 차단하는 보안 기술로 DRM 고유의 기술요소에는 해당하지 않는다.
여러 선택 항목 중 하나만 선택할 수 있도록 하는 사용자 인터페이스 요소는 라디오 버튼이다.
체크박스는 여러 항목을 동시에 선택할 수 있고, 토글 버튼은 두 상태(on/off)를 전환하는 용도라는 점에서 라디오 버튼과 다르다.
소프트웨어의 일부분을 다른 시스템에서도 활용할 수 있는 정도를 나타내는 품질 특성은 재사용성(Reusability)이다.
신뢰성은 오류 없이 기능을 수행하는 정도를, 유지보수성은 결함 수정·개선의 용이성을 뜻하므로 재사용성과 구별된다.
큐(Queue)는 스택과 함께 선형 자료구조에 해당하므로 "큐는 비선형구조에 해당한다"는 설명이 틀렸다.
큐는 First In-First Out으로 동작하고, 스택은 Last In-First Out 구조로 서브루틴 호출·인터럽트 처리·수식 계산 등에 활용된다는 나머지 설명은 모두 옳다.
경계값 분석(Boundary Value Analysis)은 입력 범위의 경계 부근 값을 중점적으로 검사하는 대표적인 블랙박스 검사 기법이다. 반면 조건 검사·기초 경로 검사·루프 검사는 프로그램 내부의 논리 구조를 기준으로 테스트 케이스를 설계하는 화이트박스 검사 기법이다.
이진 검색(Binary Search)은 정렬된 자료의 중앙값과 비교하며 탐색 범위를 절반씩 좁혀가는 기법으로, 비교할 때마다 대상 데이터 수가 절반으로 줄어들어 탐색 효율이 높다. 다음에 비교할 대상을 피보나치 수열에 따라 정하는 것은 피보나치 검색의 특징이므로 이진 검색에 대한 설명으로는 틀리다.
Usability(사용 용이성)는 사용자가 소프트웨어의 사용 방법을 쉽게 배우고 능숙하게 사용할 수 있는 정도를 나타내는 품질 특성이다. Correctness는 정확성, Reliability는 신뢰성, Integrity는 무결성을 뜻하며 학습·사용 편의성과는 관련이 없다.
테스트 케이스는 일반적으로 테스트 조건·테스트 데이터(입력값)·예상 결과로 구성되어 실행 절차와 판정 기준을 정의한다. 테스트 비용은 테스트를 수행하는 데 드는 자원 소모를 뜻할 뿐 테스트 케이스의 구성 항목이 아니다.
설치 매뉴얼에는 제품 소프트웨어의 개요·설치 관련 파일·설치 절차·프로그램 삭제 방법 등 사용자가 설치·삭제를 수행하는 데 필요한 내용이 포함된다. 소프트웨어 개발 기간은 개발 프로세스 관리 정보로, 설치 매뉴얼의 구성 항목이 아니다.
형상관리는 소프트웨어의 수정·변경을 알아내고 통제하여 개발 비용을 줄이고 방해 요인을 최소화하는 활동이며, 버전 제어는 형상관리의 핵심 기능이다. 다만 형상관리를 수행하는 조직은 형상통제위원회(CCB)라 하며, chief programmer team은 이와 무관한 개발팀 조직 구성 방식이므로 형상관리 설명으로 틀리다.
퀵 정렬은 피벗을 기준으로 파일을 두 부분으로 분할한 뒤 각 부분을 재귀적으로 나누어가며 정렬하는 분할 정복 방식이다. 레코드 키를 버킷에 분배하는 방식은 버킷(기수) 정렬, 인접 레코드를 비교·교환하는 방식은 버블 정렬, 매개변수(h) 간격으로 비교·교환하는 방식은 쉘 정렬의 특징이다.
해싱 함수에는 제산법·제곱법·숫자분석법·중첩법 등이 있다. 개방주소법(open addressing)은 해시 충돌이 발생했을 때 빈 버킷을 탐색해 저장하는 충돌 해결 기법이지 해싱 함수의 종류가 아니다.
필드 테스팅이라고도 불리는 베타 검사는 개발자가 참여하지 않은 상태에서 고객의 실제 사용 환경에 소프트웨어를 설치해 다수의 사용자가 수행하는 인수검사이다. 반면 알파 검사는 개발자가 지켜보는 가운데 사용자가 개발 환경에서 수행하는 테스트라는 점에서 구분된다.
Preorder(전위 순회)는 루트→왼쪽 서브트리→오른쪽 서브트리 순으로 방문한다. 주어진 트리를 이 순서로 따라가면 A, B, D, C, E, G, H, F 순으로 탐색되며, 다섯 번째로 탐색되는 노드는 E이다.
결과 집합에는 대신공업사·신촌상사처럼 공급자명에 '신'이라는 문자가 포함된 행만 나타난다.
LIKE '%신%'는 문자열 어디에든 '신'이 들어간 값을 모두 찾는 패턴이므로 이 결과와 일치한다.
'%대%'는 대신공업사는 찾아도 신촌상사는 걸러내지 못해 결과가 달라지므로 옳지 않다.
데이터베이스 전체의 논리적 구조를 정의하는 스키마는 개념 스키마이다.
데이터개체·관계·제약조건·접근권한·무결성 규칙 등 조직 전체 관점의 정의를 포함한다.
외부 스키마는 사용자·응용프로그램별 뷰, 내부 스키마는 물리적 저장 구조를 다룬다는 점에서 구분된다.
저장 레코드의 양식(포맷) 설계, 레코드 집중 분석 및 설계, 접근 경로 설계는 데이터를 실제 저장장치에 배치하는 단계에서 다루는 사항이다.
이는 물리적 설계의 산출물로, 개체-관계 모델링을 수행하는 개념적 설계나 스키마 변환·정규화를 수행하는 논리적 설계와는 구분된다.
릴레이션의 카디널리티는 튜플(행)의 수, 차수는 속성(열)의 수를 의미한다.
표에는 아이디·성명·나이·등급·적립금·가입년도 6개 속성과 4개의 튜플이 있으므로 카디널리티는 4, 차수는 6이다.
트랜잭션 수행 전의 데이터베이스 상태와 수행 완료 후의 상태가 항상 모순 없이 일치해야 한다는 성질은 일관성(consistency)이다.
이는 트랜잭션이 무결성 제약을 위반하지 않고 하나의 일관된 상태에서 다른 일관된 상태로 전이함을 의미한다.
로킹 단위가 작아질수록(세분화될수록) 동시에 수행 가능한 트랜잭션 수가 늘어나 병행성 수준은 오히려 높아진다.
반면 관리해야 할 로크의 개수가 많아져 로킹 오버헤드는 증가한다.
따라서 '로킹 단위가 작아지면 병행성 수준이 낮아진다'는 설명은 통설과 반대되므로 옳지 않다.
여러 테이블을 조인하거나 그룹 함수·DISTINCT 등을 포함한 뷰는 삽입·갱신·삭제 연산에 제약이 따른다.
따라서 '뷰에 대한 삽입·갱신·삭제 연산 시 제약사항이 따르지 않는다'는 설명이 틀리다.
DBA의 보안 활용, 뷰 위에 또 다른 뷰 정의 가능, 독립적인 인덱스를 가질 수 없다는 설명은 모두 옳다.
릴레이션 R에 속한 모든 속성(도메인)의 값이 더 이상 분해할 수 없는 원자값(Atomic Value)만으로 구성되어야 한다는 조건은 제1정규형(1NF)의 정의이다.
제2정규형 이상은 완전 함수 종속·이행 종속 제거 등 추가 조건을 요구한다는 점에서 이와 구분된다.
릴레이션 R1의 외래키를 변경할 때 그 값을 참조하고 있는 릴레이션 R2의 기본키도 함께 변경되어야 일관성이 유지되는 제약을 참조 무결성이라 한다.
이는 외래키 값이 참조 대상 릴레이션의 기본키 값과 항상 일치하도록 보장하는 제약조건이다.
시스템 카탈로그는 DBMS가 스스로 생성·유지·갱신하는 메타데이터 저장소로, 데이터 객체의 정의·명세 정보를 담은 특별한 테이블 집합이다.
따라서 사용자가 무결성 유지를 위해 SQL로 직접 갱신해야 한다는 설명은 틀리다.
사용자는 SELECT로 카탈로그를 조회할 수 있지만 INSERT·UPDATE 등으로 직접 수정하지는 않는다.
관계대수의 Select(σ)는 조건을 만족하는 튜플만 골라내는 수평적 부분집합 연산으로 기호 σ를 사용한다.
반면 Project(π)는 지정한 속성(열)만 추출하는 수직적 연산으로 기호 π를 쓴다는 점에서 구분된다.
DDL(Data Definition Language)은 스키마·도메인·테이블·뷰·인덱스 등 데이터베이스 객체의 구조를 정의·변경·삭제하는 언어로 CREATE·ALTER·DROP 문이 이에 속한다.
데이터 조작은 DML, 권한 부여·회수는 DCL이 담당하므로 이 문항의 기능과는 구분된다.
정규화를 거치지 않으면 삽입 이상·삭제 이상·갱신 이상 세 가지 유형의 이상현상이 발생하며, 이 셋이 표준적인 분류다.
단순히 하나 이상의 함수적 종속성이 존재하는 것은 정상적인 데이터 특성일 뿐 이상현상이 아니므로 종속 이상이라는 유형은 존재하지 않는다.
도메인(domain)은 하나의 속성이 가질 수 있는 동일 타입의 모든 값의 집합이며, 각 속성의 도메인 값은 원자값이어야 한다.
릴레이션의 각 행은 튜플, 각 열은 속성이며, 릴레이션의 이름과 속성 집합으로 이루어진 논리적 구조 정의는 릴레이션 스키마이다.
3NF는 이행적 함수 종속을 제거한 상태이지만 후보키가 아닌 결정자가 남아있을 수 있다.
BCNF는 이러한 결정자이면서 후보키가 아닌 것을 제거하여 모든 결정자가 후보키가 되도록 강화한 정규형이다.
인덱스(Index)는 테이블·클러스터와 연관되어 독립적인 저장 공간을 갖고 데이터베이스 조회 속도를 높이기 위해 사용되는 DBMS 구성요소다.
트랜잭션은 작업의 논리적 단위, 트리거는 이벤트에 반응해 자동 실행되는 절차로 조회 성능 향상이 목적인 인덱스와는 역할이 다르다.
아래의 SQL문을 실행한 결과는?
[R1 테이블]
| 학번 | 이름 | 학년 | 학과 | 주소 |
|---|---|---|---|---|
| 1000 | 홍길동 | 4 | 컴퓨터 | 서울 |
| 2000 | 김철수 | 3 | 전기 | 경기 |
| 3000 | 강남길 | 1 | 컴퓨터 | 경기 |
| 4000 | 오말자 | 4 | 컴퓨터 | 경기 |
| 5000 | 장미화 | 2 | 전자 | 서울 |
[R2 테이블]
| 학번 | 과목번호 | 학점 | 점수 |
|---|---|---|---|
| 1000 | C100 | A | 91 |
| 1000 | C200 | A | 94 |
| 2000 | C300 | B | 85 |
| 3000 | C400 | A | 90 |
| 3000 | C500 | C | 75 |
| 3000 | C100 | A | 90 |
| 4000 | C400 | A | 95 |
| 4000 | C500 | A | 91 |
| 4000 | C100 | B | 80 |
| 4000 | C200 | C | 74 |
| 5000 | C400 | B | 85 |
[SQL 문]
SELECT 이름
FROM R1
WHERE 학번 IN
(SELECT 학번
FROM R2
WHERE 과목번호 = 'C100');


부속 질의가 과목번호 C100을 수강한 학번을 모으고 바깥 질의가 그 학번의 이름을 뽑으므로, 결과는 홍길동·강남길·오말자 세 행짜리 이름 컬럼이다.
R2 테이블에서 과목번호가 C100인 행의 학번은 1000, 3000, 4000 세 개다.
R1 테이블에서 이 학번에 대응하는 이름은 1000이 홍길동, 3000이 강남길, 4000이 오말자다.
- 김철수(학번 2000)는 C300만 수강해 부속 질의 결과에 학번이 없다.
- 장미화(학번 5000)는 C400만 수강해 역시 제외되므로, 장미화가 들어가거나 다섯 명이 모두 나오거나 김철수가 포함된 결과는 옳지 않다.
이미 생성된 테이블에 새로운 컬럼(필드)을 추가하려면 테이블의 구조 자체를 수정하는 ALTER 명령어를 사용하며, 'ALTER TABLE ~ ADD' 구문으로 컬럼을 추가한다.
DELETE는 행 삭제, RESTORE·ACCESS는 이러한 구조 변경 기능을 수행하지 않는다.
Recovery(회복)는 트랜잭션 수행 중 장애로 손상된 데이터베이스를 장애 발생 이전의 정상 상태로 되돌리는 작업이다.
Commit은 트랜잭션의 정상 완료 확정, Abort는 트랜잭션 취소를 의미하므로 손상된 DB를 복구하는 개념과는 다르다.
E-R 다이어그램에서 관계집합(relationship set)은 마름모로 표기하며 삼각형은 사용하지 않는다.
개체타입은 사각형, 속성은 타원, 개체타입과 속성을 잇는 연결선은 직선으로 표기하는 것이 옳다.
모듈 내부 요소들의 관련성 정도를 나타내는 응집도는 기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적 순으로 강도가 낮아진다.
보기 중에서는 한 모듈의 처리 결과(출력)가 다음 활동의 입력으로 이어지며 순서대로 실행되는 순차적 응집도가 절차적·논리적·우연적 응집도보다 강도가 높다.
OSI 7계층 중 인접 노드 간 물리적 링크 위에서 동기화·오류제어·흐름제어를 수행해 신뢰성 있는 프레임 전송을 담당하는 계층은 데이터 링크 계층이다.
물리 계층은 비트 단위의 전기적 신호 전송만 담당하며 오류·흐름제어 기능을 갖지 않는다.
운영체제의 제어 프로그램은 시스템 전체를 통제하는 감시 프로그램, 작업 순서를 관리하는 작업 제어 프로그램, 파일과 데이터를 관리하는 데이터 관리 프로그램으로 구성된다.
서비스 프로그램은 언어 번역·유틸리티 등을 포함하는 처리 프로그램에 속하므로 제어 프로그램이 아니다.
IEEE 802.3 표준은 이더넷(Ethernet) LAN 규격으로, 매체 접속제어(MAC) 방식으로 CSMA/CD(반송파 감지 다중접속/충돌검출)를 사용한다.
Token Bus·Token Ring·Slotted Ring은 각각 다른 토큰 기반 표준(IEEE 802.4, 802.5 등)의 접속 방식이다.
First Fit은 요청 크기(17K) 이상인 빈 공간을 순서대로 탐색해 최초로 발견한 곳에 배치한다.
15K는 17K보다 작아 건너뛰고 다음의 23K 공간에 적재하므로, 내부단편화는 가 된다.
교착상태의 4대 발생조건은 상호배제(Mutual exclusion)·점유대기(Hold and wait)·비선점(Non-preemption)·순환대기(Circular wait)이다.
보기의 Linear wait는 이 네 조건에 해당하지 않는 명칭으로, 정확한 네 번째 조건은 자원 요구가 원형으로 이어지는 순환대기다.
IPv6은 특정 그룹에만 전달하는 멀티캐스트와 가장 가까운 하나의 수신자에게 전달하는 애니캐스트를 사용하며, 비효율적인 브로드캐스트는 폐지되었다.
따라서 “멀티캐스팅 대신 브로드캐스트를 사용한다”는 설명은 사실과 반대이므로 틀린 내용이다. 128비트 주소체계와 보안·인증 확장 헤더(IPsec) 사용에 관한 나머지 설명은 옳다.
TCP/IP 프로토콜 스택에서 TCP는 종단 간 신뢰성 있는 데이터 전달을 담당하는 트랜스포트(전송) 계층에 해당한다.
데이터 링크·네트워크 계층은 각각 프레임 전달과 IP 라우팅을 담당하며, 세션 계층은 TCP/IP 4계층 구조에는 존재하지 않는 OSI 모델의 층위다.
C언어에서 short는 정수형을 선언하는 예약어(키워드)이므로 식별자(변수명)로 사용할 수 없다.
data02, int01, _sub는 문자·숫자·밑줄로 구성되고 숫자로 시작하지 않으며 예약어와 겹치지 않아 유효한 변수명이다.
첫 번째 출력문 System.out.println("5 + 2 = " + 3 + 4)는 문자열과의 + 연산이 왼쪽부터 순차 처리되어 "5 + 2 = "+3 → "5 + 2 = 3", 이어서 +4 → "5 + 2 = 34"가 출력된다.
두 번째 출력문은 괄호로 묶인 (3 + 4)가 먼저 정수 연산되어 7이 된 뒤 문자열과 결합되므로 "5 + 2 = 7"이 출력된다.
두 줄의 출력을 이으면 "5 + 2 = 34"와 "5 + 2 = 7"이 된다.
C언어에서 문자열을 정수형으로 변환하는 표준 라이브러리 함수는 atoi()이다.
atof()는 문자열을 실수형(double)으로, itoa()는 반대로 정수를 문자열로 변환하며, ceil()은 소수점을 올림 처리하는 함수이므로 문자열→정수 변환과는 관계가 없다.
Working Set은 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합을 의미하며, 이를 주기억장치에 유지시켜 페이지 부재(page fault)를 줄이는 가상기억장치 관리 기법의 근거가 된다.
Locality(지역성)는 이러한 참조 경향 자체를 뜻하는 개념이고, Thrashing은 페이지 교체가 과도해 성능이 급격히 저하되는 현상이므로 구분된다.
결합도는 자료 결합도 → 스탬프 결합도 → 제어 결합도 → 외부 결합도 → 공통 결합도 → 내용 결합도 순으로 낮은 것에서 높은 것으로 커진다.
제시된 (ㄴ)자료결합도·(ㄹ)스탬프결합도·(ㅂ)제어결합도·(ㅁ)외부결합도·(ㄷ)공통결합도·(ㄱ)내용결합도를 이 기준에 대입하면 (ㄴ)→(ㄹ)→(ㅂ)→(ㅁ)→(ㄷ)→(ㄱ) 순서가 되어 이 배열만 정답과 일치한다.
제시문은 "프로그램을 고정된 크기의 일정한 블록으로 나누는 ㉠ 기법과 가변적인 크기의 블록으로 나누는 ㉡ 기법"을 설명하고 있다.
가상기억장치 관리에서 고정 크기 블록으로 분할하는 기법은 Paging이고, 가변 크기(의미 단위) 블록으로 분할하는 기법은 Segmentation이므로 ㉠은 Paging, ㉡은 Segmentation이다.
표준 라이브러리는 프로그래밍 언어가 기본적으로 내장하여 제공하는 라이브러리이고, 외부 라이브러리는 별도의 설치가 필요한 라이브러리이다.
③번은 이 정의를 서로 뒤바꿔 "외부 라이브러리=기본 내장, 표준 라이브러리=별도 설치 필요"로 서술했으므로 틀린 설명이다.
=는 값을 저장하는 대입(할당) 연산자이며 산술 연산자가 아니다.
%(나머지)·*(곱셈)·/(나눗셈)는 모두 두 피연산자에 대해 수치 연산을 수행하는 산술 연산자에 해당한다.
UDP는 비연결형(connectionless) 프로토콜로 흐름제어·오류제어·순서제어 기능이 없으며, 이 때문에 오버헤드가 적어 전송속도가 빠르다.
①·③번은 오히려 연결형이며 흐름·순서·오류제어를 수행하는 TCP의 특성이고, ②번도 링크 유지관리를 통한 높은 신뢰성 역시 TCP에 해당하므로 UDP 설명으로는 틀리다.
Java의 char 자료형은 단일 16비트 유니코드 문자 하나만 저장하는 자료형이며, 여러 개의 문자(문자열)를 저장하는 것은 String 자료형의 역할이다.
따라서 "char 자료형은 나열된 여러 개의 문자를 저장"한다는 설명은 틀리며, 나머지 변수·자료형·boolean에 대한 설명은 모두 타당하다.
while(True) 반복문 안에서 print('A'), print('B'), print('C')가 순서대로 출력된 뒤 continue가 실행되면 그 아래의 print('D')는 건너뛰고 즉시 while 조건 검사로 되돌아간다.
조건이 항상 True이므로 A, B, C 출력만 무한히 반복되고 D는 결코 출력되지 않는다.
JVM(Java Virtual Machine)은 자바 바이트코드를 실행하는 런타임 환경일 뿐, 웹 요청을 처리하고 동적 콘텐츠를 생성하는 WAS(Web Application Server)가 아니다.
JEUS·Tomcat·WebSphere는 모두 실제 서비스되는 대표적인 WAS 제품이므로 WAS가 아닌 것은 JVM이다.
MD4·MD5·SHA-1은 모두 입력을 고정 길이 값으로 변환하고 복호화가 불가능한 해시 함수인 반면, AES는 암호화·복호화가 모두 가능한 대칭키 블록 암호 알고리즘이다.
따라서 나머지 셋과 성격이 다른 것은 해시 알고리즘이 아닌 AES이다.
tripwire는 시스템 파일의 체크섬(해시)을 주기적으로 비교해 무결성을 검사함으로써 백도어 설치나 설정파일 변조 등의 변경 여부를 탐지하는 도구다.
tcpdump는 네트워크 패킷 캡처, cron은 작업 스케줄러, netcat은 포트 간 데이터 송수신 도구로 파일 변조 탐지와는 무관하다.
다음 내용이 설명하는 것은?
- 사물통신, 사물인터넷과 같이 대역폭이 제한된 통신환경에 최적화하여 개발된 푸시기술 기반의 경량 메시지 전송 프로토콜
- 메시지 매개자(Broker)를 통해 송신자가 특정 메시지를 발행하고 수신자가 메시지를 구독하는 방식
- IBM이 주도하여 개발
브로커를 통한 발행/구독 방식의 경량 메시지 전송 프로토콜은 MQTT(Message Queuing Telemetry Transport)다.
대역폭이 좁고 전력·자원이 부족한 사물인터넷 환경을 겨냥해 헤더를 최소화했고, 송신자가 브로커에 메시지를 발행(publish)하면 해당 주제를 구독(subscribe)한 수신자에게 전달되는 구조다. IBM이 주도해 개발한 뒤 표준으로 자리 잡았다는 설명도 그대로 들어맞는다.
- TELNET은 원격 단말 접속용 프로토콜로 메시지 브로커나 발행/구독 개념이 없다.
- 그리드(GRID)는 분산된 컴퓨팅 자원을 묶어 쓰는 컴퓨팅 방식이지 메시지 전송 프로토콜이 아니다.
나선형(Spiral) 모형은 계획 수립, 위험 분석, 개발(공학), 고객 평가라는 4단계를 반복하며 진행되는 모델이다.
이 문제는 나선형 모형의 주요 태스크에 '해당되지 않는' 것을 묻고 있으므로, 위 네 단계에 포함되지 않는 버전 관리가 정답이다.
정보 보안의 접근통제 정책은 임의적 접근통제(DAC)·강제적 접근통제(MAC)·역할 기반 접근통제(RBAC) 세 가지로 분류된다.
'데이터 전환 접근 통제'라는 정책 유형은 존재하지 않으므로 이것이 해당되지 않는 것이다.
LOC 기법의 개발 기간은 총 인월을 투입 인원으로 나누어 구한다.
총 인월은 인월이며, 이를 프로그래머 6명이 수행하면 개발 기간은 개월이다.
자료흐름도(DFD)·자료사전(DD)·소단위명세서(Mini-Spec)를 이용해 정형화된 절차로 사용자 요구사항을 분석·문서화하는 기법은 구조적 개발 방법론이다.
객체지향 방법론은 클래스·객체 중심의 분석이고 정보공학 방법론은 데이터 중심의 전사적 접근이라는 점에서 구조적 방법론과 구분된다.
복호화(Decryption)는 암호문을 평문으로 되돌리는 과정이며, 반대로 평문을 암호문으로 바꾸는 작업은 암호화(Encryption)다.
따라서 '복호화 – 평문을 암호문으로 바꾸는 작업'이라는 설명이 틀린 것이다.
이미지의 설명 내용을 확인하면 클라우드 기반의 서비스 제공 모델로, 개발자가 서버 인프라 관리 없이 함수 단위로 코드를 실행하고 사용량에 따라 요금을 지불하는 방식을 나타내고 있습니다. 이는 Backend as a Service(BaaS)의 정의에 해당하며, 서버리스 컴퓨팅 또는 Function as a Service(FaaS) 형태의 클라우드 서비스입니다. OTT는 동영상 스트리밍 서비스, SDDC는 소프트웨어 정의 데이터센터, Wi-SUN은 무선통신 표준으로 이미지의 설명과는 무관합니다.
소프트웨어 개발 유형을 Organic(유기적)·Semi-detached(반분리형)·Embedded(내장형)로 나누어 비용을 산정하는 기법은 COCOMO 모델이다.
PUTNAM(SLIM)은 Rayleigh-Norden 곡선을 이용한 기법이고 FP는 기능점수 기반 기법으로, 이러한 3유형 분류와는 무관하다.
버스형 토폴로지는 하나의 공용 백본(버스) 케이블에 모든 노드가 일렬로 연결되고, 케이블 양 끝에는 신호 반사를 막는 터미네이터를 부착하는 구조다.
모든 통신이 단일 회선을 공유하므로 구조가 간단하고 설치비용이 저렴하지만, 회선의 한 지점이 단선되면 전체 네트워크 통신이 마비될 수 있다.
스마트 그리드는 기존 전력망에 정보통신기술(ICT)을 접목해 전력 공급자와 소비자가 실시간으로 정보를 주고받으며 전력망을 지능화·고도화한 것으로, 에너지 이용 효율을 극대화하고 고품질의 전력 서비스를 제공한다.
사물 인터넷은 사물을 인터넷으로 연결하는 기술이고 디지털 아카이빙은 디지털 자료의 장기 보존을 의미할 뿐 전력망 자체와는 직접 관련이 없다.
폭포수 모형(Waterfall Model)은 요구사항 분석·설계·구현·테스트·유지보수의 각 단계를 순차적으로 진행하며 한 단계가 끝나야 다음 단계로 넘어가는 가장 전통적인 선형 순차적 생명주기 모형이다.
단계별 산출물이 명확해 관리가 쉬운 반면, 이전 단계로 되돌아가기 어렵고 개발 중 요구사항 변경을 반영하기 어렵다는 한계가 있다.
스트림 암호는 비트·바이트·단어 단위로 평문을 순차적으로 암호화하는 대칭키 암호화 방식이며, RC4가 대표적인 스트림 암호 알고리즘이다.
스트림 암호는 키스트림 생성기(PRNG)가 만든 난수열과 평문을 XOR 연산해 암호화하는 구조이지 해쉬 함수를 이용한 해쉬 암호화 방식을 쓰지 않으므로, 이 설명이 옳지 않다.
세션 하이재킹 탐지 기법으로는 정상 시퀀스 번호에서 어긋나는 비동기화 상태 탐지, 다량의 ACK 패킷이 오가는 ACK Storm 탐지, 시퀀스 불일치로 인한 패킷 유실 및 재전송 증가 탐지 등이 알려져 있다.
이에 비해 FTP SYN 세그먼트 탐지는 세션 하이재킹 탐지 기법으로 통용되지 않으므로 거리가 멀다.
소프트웨어공학의 목표는 신뢰성 있는 소프트웨어를 최소의 비용으로 계획된 일정 내에 개발해 생산성·품질과 작업 만족도를 높이는 데 있다.
따라서 "최대의 비용으로... 가능한 빠른 시일 내에 개발한다"는 설명은 비용을 최소화한다는 본래 목표와 어긋나므로 옳지 않다.
CBD(Component Based Development)는 재사용 가능한 컴포넌트를 조립해 시스템을 구축하는 상향식(Bottom-Up) 개발 방식으로, 생산성·품질 향상과 유지보수 비용 최소화, 복잡성 최소화라는 장점을 가진다.
큰 모듈을 세부 단위로 나누어가는 하향식(Top-Down) 분할과 정복 방식은 CBD가 아니라 구조적 설계 기법의 특징이므로 이 설명이 틀렸다.
정보 보안의 3요소는 인가된 자만 정보에 접근할 수 있게 하는 기밀성, 정보가 변조되지 않고 정확함을 보장하는 무결성, 필요할 때 정보에 접근·이용할 수 있게 하는 가용성이다.
휘발성은 전원이 꺼지면 데이터가 사라지는 메모리의 성질을 뜻할 뿐 정보보안 3요소에 속하지 않는다.
이 문항은 원 설명이 제시된 공격 기법과 정확히 대응하지 않는 문제 오류로 판정되어, 공식적으로 Evil Twin Attack(①)이 정답으로 처리되었다.
따라서 개별 보기의 기술적 정의로 정답 근거를 단정하기보다, 공식 정답 처리 결과에 따른 것임을 밝힌다.
공개키 암호(비대칭키 암호)는 사용자마다 공개키와 개인키(복호화키) 한 쌍을 가지며, 송신자는 수신자의 공개키로 문서를 암호화하고 수신자는 자신만 아는 개인키로 복호화하는 방식으로 RSA가 대표적이다.
n명이 공개키 암호를 사용하면 각자 한 쌍씩 총 개의 키가 필요하므로 10명이 사용할 경우 필요한 키는 5개가 아니라 개이며, 이 설명이 틀렸다.