20년-1, 2회차-정보처리기사-필기 시험지 PDF 다운로드
20년-1, 2회차-정보처리기사-필기
워크 스루는 검토 자료를 회의 전에 미리 배포해 참가자가 사전 검토를 마친 뒤, 짧은 검토 회의를 열어 오류를 조기에 찾아내는 비공식 요구사항 검토 기법이다.
② 동료 검토는 사전 배포 없이 요구사항 명세서 작성자가 그 내용을 직접 설명하고 동료·이해관계자가 들으면서 결함을 발견하는 방식이라는 점에서 구분되며, ④ 개발자 검토·① 빌드 검증은 표준 요구사항 검토 기법 명칭이 아니다.
순차 코드(Sequence Code)는 코드를 발생 순서대로 일련번호를 부여하는 가장 단순한 코드 방식이다.
연상 코드는 대상의 특성을 코드에 반영하고, 블록 코드는 특정 범위를 블록으로 나누어 구간별로 부여하며, 표의 숫자 코드는 다차원 항목을 조합해 표현하는 방식이라 일련번호 부여와는 다르다.
클래스는 객체가 갖는 속성(데이터)과 동작(메소드)을 하나로 묶어 정의하는 데이터 추상화의 단위이며, 객체는 클래스의 인스턴스이다.
메소드는 클래스 내부의 동작 정의, 상속성은 클래스 간 관계, 메시지는 객체 간 상호작용 수단이므로 추상화 단위 자체를 지칭하지 않는다.
DFD(자료흐름도)의 기본 구성요소는 process(처리)·data flow(자료흐름)·data store(자료저장소)·terminator(단말)의 네 가지이다.
data dictionary(자료사전)는 DFD에서 사용된 자료의 정의를 별도로 기술하는 보조 문서로, DFD 자체의 구성요소는 아니다.
플랫폼 성능특성 분석의 측정 항목은 처리 요청 후 응답까지 걸리는 응답시간, 시스템 가동 가능 정도를 나타내는 가용성, 자원의 사용 정도를 나타내는 사용률 등이다.
서버 튜닝은 성능을 개선하기 위한 조치·활동이지 성능을 측정하는 항목이 아니므로 해당하지 않는다.
UML에서 스테레오 타입은 기존 요소를 확장해 새로운 의미를 부여할 때 사용하며, 길러멧(guillemet) 기호인 《 》 안에 표기한다(예: 《include》, 《interface》).
이는 UML 확장 모델(profile) 표기의 표준 방식이다.
GoF 디자인 패턴 중 Visitor는 객체 구조와 처리 로직을 분리하여 알고리즘을 객체 외부에서 적용하는 행위(Behavioral) 패턴이다.
Builder와 Prototype은 객체 생성을 다루는 생성 패턴, Bridge는 추상과 구현을 분리하는 구조 패턴이므로 행위 패턴이 아니다.
자료 사전(Data Dictionary) 표기에서 ( ) 기호는 해당 자료 항목이 있을 수도 없을 수도 있는 생략 가능(선택적) 항목임을 의미한다.
{ }은 반복, **는 주석, =은 정의(구성)를 나타내는 기호로 각각 용도가 다르다.
TP 모니터(Transaction Processing Monitor)는 온라인 트랜잭션이 정상적으로 처리되는지 감시·제어하고 자원을 관리하는 미들웨어이다.
RPC는 원격 프로시저 호출, ORB는 객체 간 분산 통신 중개, HUB는 시스템 간 연계 허브 역할을 하므로 트랜잭션 감시·제어가 핵심 기능은 아니다.
UI 설계 원칙 중 직관성은 별도의 학습 없이도 누구나 쉽게 이해하고 사용할 수 있어야 한다는 원칙이다.
유효성은 정확하고 완벽하게 처리되어야 함을, 유연성은 다양한 사용자 요구를 수용할 수 있어야 함을 의미해 직관성과는 구분된다.
XP(eXtreme Programming)의 5가지 핵심 가치는 의사소통·단순성·피드백·용기·존중이다.
제시된 보기 중 용기·의사소통·피드백은 이 5가지 가치에 해당하지만, 정형분석은 XP 가치가 아닌 요구사항 분석 기법에 해당하는 용어다.
UML의 Structural(구조) 다이어그램에는 Class·Object·Component·Composite Structure·Package·Deployment 다이어그램이 속한다.
Activity Diagram은 시스템의 동작 흐름을 표현하는 Behavioral(행위) 다이어그램으로 분류되므로 구조 다이어그램에 속하지 않는다.
요구사항 분석 단계는 이해관계자의 요구를 이해·정리하는 활동으로, 타당성 조사·비용과 일정에 대한 제약설정·요구사항 정의 문서화가 이에 해당한다.
설계 명세서 작성은 요구사항 분석 이후 진행되는 설계(design) 단계의 산출물이므로 요구사항 분석과는 거리가 멀다.
럼바우(Rumbaugh)의 객체지향 분석은 객체 모형(Object Model) → 동적 모형(Dynamic Model) → 기능 모형(Functional Model) 순으로 진행된다.
객체 모형에서 클래스와 관계를 정의한 뒤, 동적 모형으로 상태와 흐름을 표현하고, 마지막으로 기능 모형으로 데이터 처리 과정을 나타낸다.
공통 모듈 명세 기법의 원칙 중 명확성은 해당 기능이 하나의 의미로만 해석되도록, 즉 누가 보더라도 일관되게 이해할 수 있도록 작성하는 원칙을 의미한다.
상호작용성·독립성·내용성은 각각 다른 명세 원칙(정확성·완전성 등)과는 별개로, 문제에서 설명하는 '일관된 한 가지 해석'과는 부합하지 않는다.
객체지향에서 클래스 간 '부분-전체(part-whole)' 또는 'is-a-part-of' 관계로 표현되는 연관성은 집단화(Aggregation)다.
일반화(is-a 관계)나 캡슐화(정보 은닉)와는 구분되는 개념으로, 전체 객체가 부분 객체들로 구성됨을 나타낸다.
CASE(Computer Aided Software Engineering)의 주요 기능에는 그래픽 지원, 소프트웨어 생명주기 전 단계의 연결, 다양한 소프트웨어 개발 모형 지원 등이 포함된다.
언어번역은 컴파일러·인터프리터의 역할이지 CASE 도구가 제공하는 기능이 아니다.
DBMS 분석 시 고려사항으로는 가용성, 성능, 상호 호환성, 기술 지원 등이 일반적으로 제시된다.
네트워크 구성도는 시스템 구축 시 작성되는 산출물이지 DBMS 자체의 분석 고려사항에 해당하지 않는다.
HIPO(Hierarchy Input Process Output)는 시스템의 기능을 계층적으로 도식화하는 하향식(top-down) 소프트웨어 개발 문서화 도구다.
'상향식'이라고 설명한 보기가 HIPO의 실제 개발 방식과 반대되므로 틀린 설명이며, HIPO 차트에는 가시적 도표·총체적 도표·세부적 도표가 있고 기능과 자료의 의존 관계를 함께 표현할 수 있다.
E-R 다이어그램을 사용하여 객체의 행위를 모델링하고, 객체식별·구조식별·주체정의·속성 및 관계정의·서비스정의의 절차로 구성되는 객체지향 분석 방법론은 Coad와 Yourdon 방법이다.
Booch 방법은 미시적·거시적 개발 프로세스를, Jacobson 방법은 Use Case를 중심으로 분석하는 점에서 이 절차와 구분된다.
합병정렬(Merge Sort)은 분할 정복 기법으로 리스트를 절반씩 나눈 뒤 병합하며, 평균·최악 모두 O(N log N)의 시간복잡도를 갖는다. 선택정렬·삽입정렬·버블정렬은 모두 이중 반복문 구조로 O(N²)의 시간복잡도를 가지므로 해당하지 않는다.
화이트박스 테스트는 프로그램 내부 로직과 제어구조를 검사하는 기법으로, 기초경로(Base Path) 검사·조건 검사·루프 검사 등이 대표 기법이다. 경계값 분석(Boundary Value Analysis)은 입력값의 경계를 기준으로 테스트 케이스를 설계하는 블랙박스 테스트 기법이므로, 이를 화이트박스의 대표 기법으로 서술한 설명은 옳지 않다.
소프트웨어 품질의 개발자 관점 측정 항목은 내부 품질 속성으로, 코드 구조와 구현 방식의 우수성을 평가한다. 정확성(correctness)은 요구사항 충족 여부, 무결성(integrity)은 불완전하거나 잘못된 데이터 처리 능력, 간결성(simplicity)은 코드의 이해도와 유지보수성을 나타내는 개발자 관점의 핵심 지표다. 반면 사용성(usability)은 최종 사용자가 시스템을 얼마나 쉽게 사용할 수 있는지를 평가하는 사용자 관점의 항목으로, 사용자 인터페이스, 문서화, 학습곡선 등 외부 품질에 해당하므로 개발자 관점과는 거리가 멀다.
STAF(Software Testing Automation Framework)는 서비스 호출·컴포넌트 재사용 등을 통해 다양한 플랫폼에서 분산 테스트 환경을 지원하는 테스트 자동화 프레임워크로, 데몬 기반으로 각 테스트 대상 환경에 재사용 가능한 컴포넌트를 제공하는 것이 특징이다. 이는 단위테스트 프레임워크인 xUnit이나 웹 기반 인수테스트 도구인 FitNesse와 구분되는 STAF만의 특징이다.
EAI(전사적 애플리케이션 통합)의 대표 구축 유형은 시스템을 1:1로 직접 연결하는 Point-to-Point, 중앙 허브를 두어 연계하는 Hub&Spoke, 미들웨어 버스를 통해 연계하는 Message Bus, 그리고 이를 혼합한 Hybrid이다. Tree 구조는 EAI 구축 유형으로 분류되지 않는다.
전위 순회(Preorder)는 루트 → 왼쪽 서브트리 → 오른쪽 서브트리 순으로 노드를 방문하는 순회 방식이다. 각 서브트리의 루트에 연산자가, 말단에 피연산자가 위치한 수식 트리에 이 규칙을 재귀적으로 적용하면 연산자가 피연산자보다 먼저 나열되어 +**/ABCDE 순서로 출력된다.
IPSec·SSL·S-HTTP는 네트워크·전송 구간의 데이터를 암호화·인증하여 보호하는 보안 프로토콜이다. SMTP는 전자메일을 전송하기 위한 통신 프로토콜일 뿐 보안 기능을 제공하지 않으므로 인터페이스 보안 솔루션과 거리가 멀다.
경계값 분석(boundary value analysis) 기법은 경계값 주변에서 결함이 발생할 확률이 높다는 원칙에 따라, 범위의 경계와 그 인접값을 테스트 케이스로 선택한다. 주어진 표에서 성적 구간의 경계값은 60, 70, 80, 90이므로, 테스트 케이스는 이들 경계값 및 바로 아래·위의 값들(59, 60, 61 / 69, 70, 71 / 79, 80, 81 / 89, 90, 91 등)이어야 한다. 또한 유효 범위(0~100) 밖의 값들도 포함해야 한다. 보기 검토: 1번 59는 D학점 경계(60) 바로 아래, 2번 80은 B학점 경계값, 4번 101은 유효 범위 초과값으로 모두 경계값 분석의 대상이 되지만, 3번 90은 경계값이면서도 일반적인 경계값 분석에서 테스트해야 할 중점 대상이 아니라 범위 내 임의값으로 처리되거나, 더 정확히는 A학점 경계값 자체이므로 89, 90, 91 중에서 선택할 때 90 하나만으로는 부족하다. 다만 정답 의도는 101은 범위 초과이므로 입력값 자체로 부적절하기도 하지만, 표를 다시 보면 90 이상이 A학점이므로 90은 유효범위 내 정상 경계값이고, 101은 범위를 벗어나므로 테스트 입력값으로 옳지 않다는 해석도 가능하다. 그러나 정답이 3번이라면, 경계값 분석의 맥락에서 90은 A학점 하한 경계값으로서 89, 90, 91 중 필수 대상이지만, 단순히 90 하나만 제시되는 것은 경계 양쪽을 모두 커버하지 못하므로 부분적 테스트로 간주되거나, 문제 출제 의도가 경계 바로 아래값(89)과 바로 위값(91)을 놓친 불완전한 케이스를 찾는 것으로 보인다.
반정규화 중 중복 테이블 추가 기법에는 자료의 일부 범위만 담는 특정 부분 테이블 추가, 통계성 수치를 미리 집계해두는 집계 테이블 추가, 상태·이력의 진행 정보를 관리하는 진행 테이블 추가 등이 있다. 빌드 테이블은 반정규화의 중복 테이블 추가 유형에 해당하는 용어가 아니다.
ISO/IEC 9126에서 기능성(Functionality)의 하위 특성은 적합성·정확성·상호운용성·보안성·준수성(순응성)으로 구성된다. 학습성(Learnability)은 사용자가 기능을 얼마나 쉽게 익히는지를 다루는 사용성(Usability)의 하위 특성이므로 기능성에 속하지 않는다.
트리의 차수(degree)는 루트 노드의 자식 노드 개수이고, 단말 노드(터미널 노드)는 자식이 없는 노드입니다. 이미지의 트리를 보면 루트에서 출발하는 노드가 좌우 2개의 자식을 가지므로 차수는 2입니다. 트리의 맨 아래층(말단)을 따라가면 자식이 없는 노드들이 총 4개 있으므로 단말 노드는 4입니다. 따라서 차수: 2, 단말 노드: 4입니다.
DRM(디지털 저작권 관리)의 기술 요소에는 암호화·복호화 기술, 크랙 방지 기술, 정책 관리 기술, 식별 기술, 인증 기술, 사용 권한 관리 기술 등이 있다.
이 중 방화벽 기술은 네트워크 보안(외부 침입 차단)을 위한 요소로 DRM 고유의 저작권 보호 메커니즘에 해당하지 않는다.
파레토(Pareto)의 법칙은 전체 결과의 80%가 20%의 원인에서 발생한다는 원리로, 소프트웨어 품질 분야에서는 전체 결함(오류)의 80%가 전체 모듈 중 20% 이내에서 발견된다는 형태로 인용된다.
Brooks의 법칙은 지연된 프로젝트에 인력을 추가하면 오히려 더 늦어진다는 내용으로 이 문제와 무관하다.
소프트웨어 형상 관리(SCM)는 개발 과정에서 발생하는 산출물(소스코드·문서 등)의 변경 사항을 버전별로 통제·추적·관리하는 활동을 의미한다.
비용 관리나 인력 관리, 테스트 통합은 형상 관리의 정의에 해당하지 않는다.
시간복잡도 O(1)은 입력 데이터의 크기가 아무리 커져도 알고리즘 수행 시간이 일정(상수 시간)함을 의미한다.
예를 들어 배열의 인덱스 접근처럼 입력 크기와 관계없이 항상 동일한 연산 횟수로 처리되는 경우가 이에 해당한다.
정적분석 도구는 프로그램을 실행하지 않고 소스코드 자체를 검사하는 도구로 pmd·cppcheck·checkstyle 등이 있다.
valMeter는 프로그램을 실제로 실행하며 메모리 등의 상태를 분석하는 동적분석 도구에 해당하므로 정적분석 도구가 아니다.
알파 검사는 개발자의 장소에서 사용자가 개발자가 지켜보는 가운데 통제된 환경에서 수행하는 검사 기법이다.
이와 대비되는 베타 검사는 사용자 환경에서 개발자 없이 다수의 사용자가 직접 수행하는 검사이므로 이 설명과 구분된다.
Stub은 하향식 통합 시험에서 상위 모듈이 호출하는 아직 개발되지 않은 하위 모듈을 임시로 대체하는 시험용 모듈로, 필요한 최소 기능만 가지고 있다.
반대로 Driver는 상향식 통합 시험에서 상위 모듈을 임시로 대체하여 하위 모듈을 호출·구동하는 역할을 한다.
SW 패키징 도구는 다양한 실행 환경(운영체제·하드웨어 등)에서 동작할 수 있도록 이식성을 고려해야 하며, 특정 단일 기종에서만 사용하도록 제한하는 것은 패키징의 목적에 어긋난다.
따라서 “보안상 단일 기종에서만 사용할 수 있도록 해야 한다”는 고려 사항으로 옳지 않은 설명이다.
외계인 코드(Alien Code)는 오래전에 작성되어 원 개발자나 관련 문서가 남아 있지 않아 소스코드를 이해하고 수정하기 매우 어려운 프로그램을 가리킨다.
로직이 단순히 복잡한 경우나 오류가 전혀 없는 경우를 뜻하는 용어가 아니다.
UPDATE는 테이블에 저장된 데이터 값을 변경하는 DML(데이터 조작어) 명령이다. CREATE·ALTER·DROP은 테이블·뷰 등 스키마 객체의 구조를 정의·변경·삭제하는 DDL에 해당하므로 이들과 성격이 다른 UPDATE가 DDL이 아니다.
외래키(FK)는 한 릴레이션의 속성이 다른 릴레이션의 기본키 값을 그대로 참조하는 속성이다. 제시된 두 릴레이션에서 과목번호는 한쪽 릴레이션의 기본키이면서 다른 릴레이션에도 속성으로 포함되어 그 기본키 값을 참조하므로 외래키에 해당한다.
개체 무결성 제약은 기본키를 구성하는 애트리뷰트가 널(NULL) 값이나 중복값을 가질 수 없다는 규칙이다. 도메인에 지정된 값만 가져야 한다는 설명은 도메인 무결성, 외래키가 참조 릴레이션의 기본키 값과 일치해야 한다는 설명은 참조 무결성에 해당한다.
뷰(view)는 하나 이상의 기본 테이블로부터 유도되는 가상 테이블로, 실제 데이터가 저장장치에 별도로 저장되지 않고 질의 시점에 기본 테이블을 참조하여 만들어진다. CREATE 문으로 정의하고 DROP 문으로 제거하며 데이터의 논리적 독립성을 제공한다는 나머지 설명은 모두 옳다.
다음 SQL 문의 실행 결과는?
SELECT 가격 FROM 도서가격
WHERE 책번호 = (SELECT 책번호
FROM 도서 WHERE 책명='자료구조');
[도서]
| 책번호 | 책명 |
|---|---|
| 111 | 운영체제 |
| 222 | 자료구조 |
| 333 | 컴퓨터구조 |
[도서가격]
| 책번호 | 가격 |
|---|---|
| 111 | 20,000 |
| 222 | 25,000 |
| 333 | 10,000 |
| 444 | 15,000 |
부속 질의가 책명이 '자료구조'인 책번호를 먼저 구하고 바깥 질의가 그 책번호의 가격을 출력하므로 결과는 25,000 한 행이다.
도서 테이블에서 책명이 '자료구조'인 행은 책번호 222 하나뿐이다(111은 운영체제, 333은 컴퓨터구조).
따라서 바깥 질의의 조건은 책번호 = 222 가 되고, 도서가격 테이블에서 책번호 222인 행의 가격 25,000이 출력된다.
도서가격의 나머지 행인 111의 20,000, 333의 10,000, 444의 15,000은 책번호가 222가 아니어서 결과에 포함되지 않는다.
레코드 집중(clustering)의 분석 및 설계는 저장 레코드의 물리적 배치·접근 경로 등을 다루는 물리적 설계(physical design) 단계의 작업이다. 논리적 설계 단계는 개념적 스키마를 목표 DBMS의 논리적 데이터베이스 구조로 매핑하고, 트랜잭션 인터페이스를 설계하며, 스키마를 평가·정제하는 작업으로 구성된다.
이행적 함수 종속은 A→B이고 B→C일 때 A→C가 성립하는 관계, 즉 B를 매개로 하여 A가 C를 간접적으로 결정하는 종속 관계를 말한다. 이는 제3정규형(3NF)에서 제거 대상이 되는 종속 형태이다.
도메인은 하나의 애트리뷰트가 취할 수 있는 원자값들의 집합을 의미한다(예: '성별' 애트리뷰트의 도메인은 {남, 여}). 튜플은 릴레이션의 한 행, 엔티티는 데이터베이스로 표현하고자 하는 실세계 객체를 뜻해 도메인과는 구분된다.
STUDENT 테이블의 전체 튜플 수는 독일어과 50명·중국어과 30명·영어영문학과 50명을 합한 130건이다. DISTINCT 없이 DEPT를 조회하면 중복을 제거하지 않으므로 결과가 130건 그대로 출력되고, DISTINCT를 적용해 조회하면 중복된 학과명이 제거되어 서로 다른 학과명 3건만 출력된다.


두 릴레이션이 공통으로 가지는 속성(도메인이 같은 속성)을 기준으로 값이 같은 튜플들을 결합한 뒤 중복된 속성을 제거하여 하나의 릴레이션으로 만드는 연산은 자연조인(natural join, ⋈)이다. 합집합·교집합·차집합 같은 순수 집합 연산과 달리, 자연조인은 두 릴레이션의 공통 속성값이 일치하는 튜플들만 골라 결합한다는 점이 특징이다.
트랜잭션은 데이터베이스에 완전히 반영되거나 전혀 반영되지 않아야 하는 all-or-nothing 성질을 가지며, 이를 트랜잭션의 ACID 특성 중 원자성(Atomicity)이라 한다. 일관성(Consistency)·지속성(Durability)은 각각 무결성 유지, 완료 후 결과의 영구 보장을 의미하므로 해당 설명과는 구분된다.
분산 데이터베이스의 장애 투명성(Failure Transparency)은 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 트랜잭션을 정상적으로 처리하여 데이터 무결성이 보장되어야 함을 의미한다. 위치 투명성은 데이터의 물리적 저장 위치를 사용자가 몰라도 접근 가능함을, 중복 투명성은 동일 데이터가 여러 곳에 중복 저장되어도 이를 인식할 필요가 없음을 뜻하므로 장애 상황에 대한 설명과는 다르다.
트리거(trigger)는 삽입·갱신·삭제 등 데이터베이스에 특정 이벤트가 발생할 때 관련 작업이 자동으로 수행되도록 정의된 절차형 SQL이다. 무결성 제약조건은 값의 유효성을 선언적으로 검사할 뿐 이벤트에 반응해 별도 작업을 수행하지 않는다는 점에서 트리거와 구분된다.
DROP문에서 CASCADE 옵션을 지정하면 부모 테이블의 항목(또는 테이블)을 삭제할 때 이를 참조하는 자식 테이블의 관련 레코드까지 연쇄적으로 자동 삭제된다. 반대로 RESTRICTED는 참조하는 자식 데이터가 있으면 삭제 자체를 거부한다.
DML(데이터 조작어)은 데이터를 조회·조작하는 SELECT, INSERT, DELETE, UPDATE로 구성된다. CREATE, ALTER, DROP은 데이터 구조를 정의하는 DDL 명령이므로 이를 포함한 나머지 보기는 DML만으로 구성되지 않는다.
DCL(데이터 제어어)은 GRANT·REVOKE·COMMIT·ROLLBACK 등을 통해 데이터 보안, 무결성 유지, 병행수행 제어를 담당한다. 논리적·물리적 데이터 구조 정의는 CREATE·ALTER 등으로 수행하는 DDL의 기능이므로 DCL의 기능으로 옳지 않다.
로킹 단위가 작아질수록(세분화될수록) 관리해야 할 잠금의 수가 늘어나 로킹 오버헤드는 오히려 증가하며, 대신 동시에 접근 가능한 데이터 범위가 넓어져 병행성(공유도)은 높아진다. 따라서 로킹 단위가 작아지면 오버헤드가 감소한다는 설명은 옳지 않다.
E-R 모델에서 속성(attribute)은 타원(원)으로 표현하며, 사각형은 개체타입, 마름모는 관계타입, 선은 개체·속성·관계 간의 연결을 나타낸다. 따라서 속성을 오각형으로 표현한다는 설명은 옳지 않다.
후보키(candidate key)는 튜플을 유일하게 식별하는 유일성과, 그 구성 속성 중 하나라도 제외하면 유일성이 깨지는 최소성을 동시에 만족해야 한다. 제시된 설명은 이 중 최소한의 속성 집합으로 식별이 가능해야 한다는 최소성 조건에 해당한다.
1NF가 2NF로 진행되려면, 1NF를 만족한 상태에서 키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속 관계를 만족해야 한다. 즉 기본키 일부에만 종속되는 부분 함수 종속이 제거되어야 하며, 이행적 함수 종속 제거는 3NF, 다치 종속 제거는 4NF의 조건이다.
IPv6은 128비트 주소 공간과 IPsec 기반 인증·보안 기능을 기본 내장하며, 확장 헤더를 통해 네트워크 기능을 유연하게 확장할 수 있다. 반면 IPv6 기본 헤더의 페이로드 길이 필드(16비트)는 최대 65,535바이트(약 64KB)까지 표현하지만 점보그램 확장 헤더로 그 이상도 전송 가능하므로, 패킷 크기가 64Kbyte로 고정되어 있다는 설명은 옳지 않다.
C언어의 비트 논리연산자는 & (AND) · ^ (XOR) · ~ (NOT), 그리고 시프트 연산자 <<, >>로 구성된다. ?는 조건에 따라 값을 선택하는 삼항 조건 연산자(?:)로 비트 연산과는 무관하다.
TCP/IP 계층 구조에서 전송계층은 종단 간 신뢰성 있는 데이터 전달을 담당하는 TCP(및 UDP)를 포함한다. HTTP·FTP·SMTP는 모두 전송계층 위에서 동작하는 응용계층 프로토콜이다.
결합도(Coupling)는 모듈 간의 상호 의존 정도를 의미하며, 결합도가 낮을수록 모듈 독립성이 향상되어 유지보수와 재사용이 쉬워진다. 참고로 한 모듈 내부 요소들의 연관 정도는 결합도가 아닌 응집도의 정의이며, 자료결합도는 내용결합도보다 결합도가 낮다(느슨하다).
은행가 알고리즘(Banker's Algorithm)은 자원 할당 전에 시스템이 안전 상태를 유지할 수 있는지 미리 검사하여 교착상태 발생 자체를 사전에 막는 회피(Avoidance) 기법이다. 발생 후 탐지하는 Detection, 애초에 조건을 제거하는 Prevention, 발생 후 자원을 회수하는 Recovery와는 구분된다.
UNIX의 쉘(Shell)은 사용자의 명령을 해석하여 커널에 전달하는 명령어 해석기이자 사용자와 시스템 간의 인터페이스이며, bash·csh·ksh 등 여러 종류가 존재한다. 반면 프로세스·기억장치·입출력 관리는 쉘이 아니라 커널(Kernel)의 역할이다.
교착상태 발생의 4가지 필요충분조건은 상호 배제, 점유와 대기, 비선점(non-preemption), 환형 대기이다. 자원을 강제로 빼앗을 수 없다는 비선점 조건이 필요한 것이지, 그 반대 개념인 선점(preemption)은 교착상태 조건에 해당하지 않는다.
OSI 7계층에서 종단 간(End-to-End) 신뢰성 있는 데이터 전송을 위해 오류 검출·복구와 흐름 제어를 수행하는 계층은 전송 계층(Transport Layer)이다. 세션 계층은 통신 세션의 설정·유지·종료를, 표현 계층은 데이터 형식 변환을 담당한다.
IPv6의 주소체계는 Unicast(유니캐스트), Anycast(애니캐스트), Multicast(멀티캐스트) 세 가지로 구성된다. IPv4에 있던 Broadcast(브로드캐스트)는 IPv6에서 Multicast로 대체되어 별도로 존재하지 않는다.
ARP(Address Resolution Protocol)는 TCP/IP 네트워크에서 논리 주소인 IP 주소를 물리 주소인 MAC 주소로 변환하는 프로토콜이다. 반대로 MAC 주소를 IP 주소로 변환하는 것은 RARP이다.
프로세스의 상태는 일반적으로 New·Ready·Running·Waiting(Blocked)·Terminated(Exit)로 구분된다.
Request는 프로세스 상태 모델에 속하지 않는 용어다.
한 개의 프로세스는 여러 개의 스레드를 가질 수 있으며, 이를 멀티스레드라 한다.
커널 스레드는 운영체제가, 사용자 스레드는 사용자 라이브러리가 관리하고 스레드 사용이 처리율 향상에 기여한다는 나머지 설명은 모두 옳으므로, 여러 스레드를 가질 수 없다는 설명이 틀린 것이다.
HRN의 우선순위는 로 계산하며, 이 값이 클수록 우선순위가 높아 먼저 처리된다.
따라서 수치가 가장 낮은 것부터 높은 순으로 우선순위가 부여된다는 설명은 계산값과 우선순위의 관계를 반대로 서술한 것이다.
대기 시간이 긴 프로세스일수록 우선순위가 높아져 SJF의 약점인 긴 작업·짧은 작업 간 불평등을 완화한다는 나머지 설명은 옳다.
IEEE 802.11e는 무선 LAN에서 QoS(서비스 품질) 강화를 위해 MAC 계층에 트래픽 우선순위 처리 기능을 추가한 표준이다.
802.11a·802.11b·802.11g는 각각 물리계층의 전송 속도·주파수 대역과 관련된 표준으로 QoS 지원과는 무관하다.
C언어의 식별자는 영문자·숫자·밑줄(_)만 사용할 수 있고 숫자로 시작할 수 없다.
text-color는 식별자에 허용되지 않는 하이픈(-)을 포함하므로 사용할 수 없는 변수명이며, student2019·_korea·amount는 모두 규칙에 맞는 식별자다.
Cobol은 컴파일 과정을 거쳐 실행되는 3세대 절차형 언어로 스크립트 언어가 아니다.
PHP·Basic·Python은 인터프리터가 소스 코드를 즉시 해석·실행하는 대표적인 스크립트 언어다.
페이지 참조열 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0(총 19회 참조)을 프레임 3개로 FIFO 교체하며 추적하면, 적중(Hit)은 5번째 0·12번째 3·13번째 2·16번째 0·17번째 1로 총 5회뿐이다.
나머지 19-5=14회가 모두 페이지 부재이므로 페이지 부재 횟수는 14회이다.
static int b[9]={1,2,3};는 배열 크기 9 중 앞의 세 원소만 1·2·3으로 초기화하고 나머지는 명시하지 않은 부분 초기화다.
C언어에서 정적(static) 배열을 부분 초기화하면 나머지 원소는 자동으로 0으로 채워지므로 b[5]의 값은 0이다.
응집도는 강한 순서대로 기능적·순차적·교환(통신)적·절차적·시간적·논리적·우연적 응집도로 구분되며, 우연적 응집도가 가장 낮다.
서로 관련 없는 요소들이 우연히 하나의 모듈로 묶인 경우가 우연적 응집도이며, 제시된 보기 중 응집도가 가장 낮다.
자바의 접근제한자는 public·protected·private와 아무 것도 지정하지 않는 default(package-private) 네 가지다.
package는 패키지를 선언할 때 쓰는 키워드일 뿐 접근제한자가 아니므로 정답이다.
Putnam 모형은 Rayleigh-Norden 곡선을 이용해 소프트웨어 개발 전 기간에 걸친 노력(인력) 분포를 모델링하여 비용을 산정하는 기법이다.
COCOMO는 원시 코드 라인 수(LOC)를, 기능점수 모형은 입출력·조회 등 기능 항목의 가중치를, 델파이 모형은 전문가 집단의 경험적 판단을 근거로 산정하므로 Rayleigh-Norden 곡선과는 무관하다.
스택가드(StackGuard)는 함수의 복귀 주소와 지역변수 사이에 특정 값(canary)을 저장해 두었다가, 실행 중 이 값이 변조되면 버퍼 오버플로우로 판단하여 프로그램 실행을 즉시 중단시키는 기술이다.
백도어 탐지는 비정상적으로 열려 있는 포트를 확인하는 방식이며, 닫힌 포트 확인은 백도어 존재 여부를 판단하는 데 의미가 없어 탐지 방법으로 옳지 않다.
무결성 검사·로그 분석·SetUID 파일 검사는 각각 파일 변조, 침입 흔적, 권한 상승형 백도어를 확인하는 유효한 방법이다.
스머핑(Smurfing)은 발신지 IP를 공격 대상으로 위조한 ICMP Echo Request를 네트워크 브로드캐스트 주소로 전송하여, 다수의 호스트가 동시에 대상 시스템으로 응답(Echo Reply)을 보내게 함으로써 트래픽을 폭주시켜 서비스를 불능으로 만드는 공격 기법이다.
CMM은 초기(Initial)·반복(Repeatable)·정의(Defined)·관리(Managed)·최적화(Optimizing)의 5단계로 소프트웨어 프로세스 성숙도를 구분하며, 계획단계는 CMM의 레벨 명칭에 해당하지 않는다.
JSON(JavaScript Object Notation)은 자바스크립트 객체 문법을 기반으로 데이터를 속성-값 쌍 형태로 표현하는 경량의 데이터 교환 형식이다.
트립와이어(tripwire)는 파일 시스템의 무결성을 검사하여 설정 파일 변경이나 백도어 설치로 인한 파일 변조 여부를 탐지·분석하는 도구다.
소프트웨어 개발 프레임워크는 검증된 아키텍처와 재사용 가능한 컴포넌트를 제공하여 시스템 복잡도를 감소시키므로, 시스템 복잡도 증가는 프레임워크 적용의 기대효과와 거리가 멀다.
반대로 품질보증·개발 용이성·변경 용이성은 프레임워크 적용에 따른 대표적 기대효과다.
organic(유기적) 모드는 기관 내부에서 친숙한 응용 분야를 대상으로 개발되는 5만 라인(50KDSI) 이하의 소규모 소프트웨어에 적용되는 COCOMO 유형으로, 일괄 자료 처리·과학기술 계산·비즈니스 자료 처리용 프로젝트가 이에 해당한다.
피코넷(PICONET)은 블루투스 또는 UWB(Ultra Wideband) 기술을 이용해 여러 독립된 통신장치가 임시로 연결되어 형성하는 근거리 무선 네트워크 기술이다.
나선형 모형(Spiral Model)은 폭포수 모형과 프로토타이핑의 장점을 결합해 계획 수립·위험 분석·개발 및 검증·고객 평가 단계를 반복하면서 프로토타입을 점진적으로 완성해가는 생명주기 모형이다. 매 반복 주기마다 위험을 식별·분석해 대응하므로 위험관리가 중심이 되며, 이 점에서 순차적 진행만 하는 폭포수 모형이나 비용산정 기법인 기능점수 모형과 구분된다.
제시된 설명은 오픈소스 기반의 분산 컴퓨팅 플랫폼으로, 일반 PC급 컴퓨터를 가상화해 대형 스토리지를 구성하고 다양한 소스에서 생성된 빅데이터를 효율적으로 저장·처리한다는 내용이다. 이는 대용량 데이터의 분산 저장(HDFS)과 분산 처리(MapReduce)를 지원하는 하둡(Hadoop)의 정의와 일치한다. 비컨·포스퀘어·맴리스터는 각각 근거리 위치기반 통신, 위치기반 SNS 서비스, 차세대 반도체 소자로 빅데이터 분산 처리와는 무관하다.
RSA는 큰 합성수를 소인수분해하기 어렵다는 수학적 난제(소인수분해 문제)를 안전성의 근거로 삼는 대표적인 공개키(비대칭키) 암호 알고리즘이다. 반면 ECC(타원곡선 암호)는 타원곡선 이산대수 문제에 기반하고, PKI는 공개키 기반구조, PEM은 인증서·키 저장 형식이므로 소인수분해 기반 암호 알고리즘 자체를 가리키지 않는다.
LOC 기법에서 총 개발 노력(인월)은 으로 구하며, 개발 기간은 이를 투입 인원수로 나눈다. 대입하면 총 노력은 인월이고, 개발 기간은 개월이다.
RIP(Routing Information Protocol)는 거리벡터 방식의 라우팅 프로토콜로 홉 카운트를 메트릭으로 사용하며, 최대 15홉까지만 허용하고 16홉은 무한대(도달 불가)로 처리해 경로 규모를 제한한다. 링크 상태 방식인 OSPF나 벤더 고유 프로토콜인 EIGRP는 홉수가 아닌 비용·대역폭 기반 메트릭을 사용하므로 이러한 홉수 제한이 없다.
Key Logger Attack은 사용자의 키보드 입력을 몰래 기록·탐지하여 ID·패스워드 등 중요 정보를 빼내는 해킹 기법이다. 웜(Worm)은 스스로 복제되어 네트워크로 확산되는 악성코드, 롤백(Rollback)은 트랜잭션 취소, 좀비(Zombie) PC는 공격자에게 원격 조종당하는 감염 시스템을 뜻하므로 키보드 입력 탈취와는 직접 관련이 없다.
테일러링의 내부 기준은 프로젝트 목표환경·구성원의 능력·프로젝트 규모·납기 및 비용 등 조직·프로젝트 내부에서 통제 가능한 요소를 말한다. 반면 국제표준 품질기준은 법적 규제나 표준 프로세스 준수 요구처럼 조직 외부에서 부과되는 외부 기준에 해당하므로 내부 기준으로 볼 수 없다.
폭포수 모형은 요구분석·설계·구현·시험 등의 단계를 순차적으로 진행하며 각 단계의 산출물이 명확하고 오랜 적용 경험과 성공사례를 보유한 모형이다. 다만 한 단계가 끝나야 다음 단계로 넘어가는 구조상 개발 중 발생한 요구사항 변경을 반영하기 어렵다는 것이 대표적 한계이므로, 이는 폭포수 모형의 특징과 거리가 멀다.
제시된 설명은 인터넷 사용자의 컴퓨터에 침입해 내부 문서 파일 등을 암호화함으로써 사용자가 파일을 열지 못하게 만들고, 암호 해독 프로그램 제공을 조건으로 금전을 요구한다는 내용이다. 이는 랜섬웨어(Ransomware)의 전형적인 동작 방식과 일치한다. 스미싱은 문자메시지를 이용한 피싱, C-brain은 초기 부트섹터 바이러스, 트로이목마는 정상 프로그램으로 위장해 침투하는 악성코드로 파일 암호화 후 금전을 요구하는 방식과는 구분된다.
무결성(Integrity)은 시스템 내의 정보가 인가된 사용자에 의해서만 변경(생성·수정·삭제)될 수 있도록 보장하는 정보보안 요소이다. 기밀성은 인가된 사용자만 정보에 접근·열람할 수 있도록 하는 것, 가용성은 필요할 때 정보에 접근 가능하도록 하는 것, 부인방지는 송수신 사실을 부인하지 못하도록 하는 것이므로 수정 권한 통제와는 구분된다.