[문제1] 시스템 관리와 관련하여 다음의 설명이 의미하는 용어를 쓰시오.
A는 한국IT 보안관제실에서 근무하게 되었다. A는 서비스 운용 중 외부 공격으로 인한 서버다운, 자연재해, 시스템 장애 등의 비상 상황에도 고객 응대 서비스를 정상적으로 수행하기 위해 구축한 시스템을 관리하는 업무를 수행한다. 이 용어는 위와 같은 비상 상황이 발생한 경우 비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상 가동 될 때까지의 시간을 의미한다.
RTO(Recovery Time Objective): 시간 측면에서의 목표(중단 시점부터 ‘얼마나 빨리’ 서비스 정상화를 할 것인가)
RPO(Recovery Point Objective): 데이터 측면에서의 목표(장애가 발생했을 때 ‘어느 시점’으로 데이터를 복원할 것인가, 즉 허용 가능한 데이터 손실 범위)
[문제2]
클라이언트와 서버 간 자바스크립트 및 XML을 비동기 방식으로 처리하며, 전체 페이지를 새로 고치지 않고도 웹페이지 일부 영역만을 업데이트할 수 있도록 하는 기술을 의미하는 용어를 쓰시오.
초기에는 XML을 주로 사용했지만, JSON(JavaScript Object Notation)이 가볍고 다루기 편해 현대에는 JSON이 사실상 표준처럼 자주 활용된다.
페이지 전체 재로딩을 방지해, 자연스럽고 빠른 인터랙션(상호작용)이 가능해진다.
[문제3]
시제품을 끊임없이 제작하며 사이클을 반복하는 개발 방법론으로, 워터폴과 대조적이며, 소프트웨어 개발을 넘어 기업 경영 전반에서 사용되고 있다. 고객의 변화하는 요구사항과 환경변화에 능동적인 이 소프트웨어 개발 방법론을 쓰시오.
"시제품을 끊임없이 제작하며"라는 지문 때문에 '프로토타이핑'이라고 생각할 수 있겠지만, 프로토타이핑 기법은 애자일 방법론에서 주로 사용하는 기법 중 하나일 뿐 이며, 애초에 이는 소프트웨어 개발 방법론이 아니라 하나의 '기법'이기때문에 정답이 될 수 없다.
문제의 지문에서 핵심은 "사이클을 반복하는 개발 방법론", "고객의 변화하는 요구사항과 환경변화에 능동적인"이다.
애자일 방법론은 짧은 반복 주기 안에서 빠르게 시제품(프로토타입)을 만들어 보고 수정 및 보완하는 과정이다.
워터폴(Waterfall) 방법론은 개발 생명주기 단계를 순차적으로 한 번씩만 진행하고, 각 단계가 끝나야 다음 단계로 넘어가는 고정된 절차라는 점에서 대조적이다
[문제4]
데이터를 제어하는 DCL의 하나인 ROLLBACK에 대해 간략히 서술하시오.
아직 COMMIT하지 않은 변경사항을 트랜잭션 시작 시점 또는 저장점(SAVEPOINT) 시점으로 되돌린다.
[문제5]
네트워크 트래픽에 대해 IP(Internet Protocol) 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 네트워크 계층에서의 보안 통신 규약을 쓰시오.
AH(Authentication Header): IPSec을 구성하는 주요 프로토콜이며, 패킷의 헤더 및 데이터에 대해 해시를 생성하고 수신 측에서 동일 해시를 계산해 비교함으로써 데이터 변조 여부를 확인한다. 이를 통해 데이터 무결성과 송신자 인증(데이터 출처 신회성)을 보장한다.
ESP(Encapsulation Security Payload): IPSec을 구성하는 주요 프토로콜이며, 실제 데이터를 암호화하여 전송 과정에서 데이터를 은닉함으로써 기밀성과 추가적인 데이터 무결성을 확보할 수 있다.
'보안 통신 규약(Security Protocol)'이란, 안전한 통신 경로를 구축하고 데이터 보호를 목적으로 설계된 일련의 프로토콜 체계를 의미한다.
문제의 지문에서 "IP계층"이라고 표현하여 혼동이 있을 수 있는데, 네트워크 계층이라고 생각하면 된다. 네트워크 계층을 일부 IP계층이라고 표현하는 이유는 물론 IP프로토콜이 네트워크 계층의 주요 요소이기 때문이겠지만, 'OSI 7 Layer'나 'TCP/IP 4 Layer'에서는 명확하게 '네트워크 계층'이라고 표현하고있는데 왜 IP계층이라고 표현하는지는 의문이다.
[문제6]
애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트를 쓰시오.
대표적으로 '동료검토(Peer Review), 워크스루(Walkthrough), 인스펙션(Inspection)'이 있다.
'코드 인스펙션(Code Inspection)'도 완전히 틀린 정답은 아니지만 오답 처리 될 가능성이 상당히 높다. 코드 인스펙션은 엄격한 절차에 따라 리뷰를 진행하는 정적 테스트 기법 중 하나이며 좀 더 구체적인 방법론에 해당한다. 문제에서는 "애플리케이션을 실행하지 않고 소스 코드를 분석"하는 행위를 포괄적으로 지칭하는 '정적 테스트(Static Testing)' 또는 '정적 분석(Static Analysis)'을 의도하고있다.
[문제7]
한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식으로, 일대다의 의존성을 정의하는 패턴이다. 상호 작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 이 패턴을 영문으로 쓰시오.
옵저버 패턴은 크게 '주체(Subject)'와 '옵저버(Observer)'로 구성되는데, 서로 구체적인 내용을 알 필요가 적도록 설계된다. 주체는 옵저버가 등록되어 있다는 사실만 알 뿐, 구체적으로 어떤 클래스인지, 내부 로직이 어떻게 구성되어 있는지는 알지 못한다. 이러한 점에서 문제의 지문에서 "상호 작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는"이라고 서술하고 있는 것이다.
[문제8]
리눅스의 커널 위에서 동작하며, 자바와 코틀린으로 애플리케이션을 작성하는 운영체제로, 휴대용 장치에서 주로 사용되는 이 운영체제의 이름을 쓰시오.
[문제9] 통합 구현과 관련하여 다음 설명의 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
( )는 HTTP, HTTPS, SMTP 등을 사용하여 xml 기반의 메시지를 네트워크 상에서 교환하는 프로토콜로, ( ) envelope, 헤더(header), 바디(body) 등이 추가된 xml 문서이다. ( )는 복잡하고 무거운 구조로 구성되어 있어 ( ) 보다는 restful 프로토콜을 이용하기도 한다.
[문제10]
보안 위협의 하나인 SQL Injection에 대해 간략히 서술하시오.
공격자는 악의적인 SQL 구문 등을 입력하여 일반적으로는 접근하기 어려운 데이터베이스에서 임의로 데이터를 열람, 수정, 삭제할 수 있게 되므로, 개인정보 유출 등의 보안 위협이 발생할 수 있다.
[문제11] 사용자 인터페이스에 대한 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
직관성: 누구나 쉽게 이해하고 사용할 수 있어야 한다.
( ): 사용자의 목적을 정확하고 완벽하게 달성해야 한다.
학습성: 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성: 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 한다.
'직관성, 유효성, 학습성, 유연성'은 사용자 인터페이스의 '사용성(Usability)' 4가지 주요 요소이다.
[문제12] 리눅스 또는 유닉스에서 'a.txt' 파일에 대해 다음 <처리 조건>과 같이 권한을 부여하고자 한다. <처리 조건>을 준수하여 적합안 명령문을 작성하시오.
<처리 조건>
1. 사용자에게 읽기, 쓰기, 실행 권한을 부여한다.
2. 그룹에게 읽기, 실행 권한을 부여한다.
3. 기타 사용자에게 실행 권한을 부여한다.
4. 한 줄로 작성하고, 8진법 숫자를 이용한 명령문을 이용한다.
[문제13] 다음 설명에서 가리키는 용어를 쓰시오.
가. 정의
웹상에 존재하는 데이터를 개별 URI(Uniform Resource Identifier)로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형이다. 링크 기능이 강조된 시맨틱웹의 모형에 속한다고 볼 수 있으며 팀 버너스 리의 W3C를 중심으로 발전하고 있다.
나. 주요기능
1. 공개된 데이터를 이용하면 내가 원하는 데이터가 이미 존재하는지, 어디에 존재하는지 알 수 있다.
2. URI로 구별되는 데이터 리소스의 자유로운 접근 및 이용이 가능하므로 큰 노력 없이 데이터의 매쉬업이 가능하다.
3. 내가 만든 데이터가 아니라도 URI를 이용하여 링크만 해주면 이용할 수 있다.
다. 4대 원칙
1. 통합 자원 식별자(URI)를 사용한다.
2. URI는 HTTP 프로토콜을 통해 접근할 수 있어야 한다.
3. RDF나 스파클 같은 표준을 사용한다.
4. 풍부한 링크 정보가 있어야 한다.
라. Linked Data와 Open Data를 결합한 용어이다.
하나의 대표격이 되는 기관에서 공통으로 사용될 데이터에 대한 고유한 URI를 부여하면, 그것을 인용하는 각 기관에서도 동일한 URI를 사용하여 같은 구조를 사용하므로, 개발자는 다양한 출처에서 온 데이터를 중앙 집중식으로 손쉽게 통합할 수 있게 된다.
[문제14] 다음은 데이터베이스 구축까지의 과정을 나열한 것이다. 괄호에 들어갈 알맞은 답을 쓰시오.
요구 분석 → ( ) → ( ) → ( ) → 구현
요구분석: 데이터베이스를 통해 달성해야 할 목표와 요구사항을 수집하고 정의하는 단계이다.
개념적 설계: 요구 분석 결과를 바탕으로, 현실 세계의 개체, 속성, 관계를 파악하고, 개념적 모델(ERD)로 표현하며 특정 DBMS에 구애받지 않는다.
논리적 설계: 개념적 모델(ERD)을 구체적인 논리 모델로 변환한다. 예를 들면, 특정 DBMS가 갖는 테이블 구조에 맞게 변환하는 것이다. 이 단계에서 정규화 등을 통해 중복 최소화 및 일관성을 확보하는 과정을 거치게 된다.
물리적 설계: 논리적으로 설계된 스키마(구조)를 실제 사용할 DBMS 환경에 맞춰 구체화한다. 논리적 설계에서는 관계형 데이터베이스, 계층형 데이터베이스, NoSQL 등과 같은 특정 데이터베이스 종류에 대한 구조를 설계했다면, 물리적 설계에서는 MySQL, MariaDB, PostgreSQL과 같은 실제 데이터베이스 프로그램의 환경에 맞춰 구체화하는 것이다. 데이터를 어떤 방식으로 기록할것이며 저장소(스토리지)는 어떤 구조로 설계할지 등 구현 세부사항을 결정한다.
구현: 물리 설계까지 끝난 내용을 실제 DBMS에 CRATE TABLE, CREATE INDEX 등 명령으로 구현한다.
[문제15] 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
소프트웨어 ( )는 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 관리하는 것을 말한다. 소프트웨어의 개발 과정에서 만들어지는 여러 버전들의 변경 사항을 관리하는 일련의 활동이며 이를 지원하는 도구로 Git, SVN 등이 있다.
[문제16]
소프트웨어 공학에서 리팩토링(Refactoring)을 하는 목적에 대해 간략히 서술하시오.
[문제17] 다음 네트워크 관련 설명에서 괄호에 들어갈 알맞은 용어를 영문(Full name 또는 약어)으로 쓰시오.
( )는 TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜(IP)과 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 위한 제어 메시지를 취급하는 무연결 전송용 프로토콜로, OSI 기본 참조 모델의 네트워크 계층에 속한다.
예를 들어, 패킷을 송수신하는 과정에서 문제가 있을 때 오류 메시지를 보냄으로써 상대방에게 오류를 알리게 된다.
ICMP에서 '무연결 전송'이란, 별도의 연결 설정 없이 메시지를 전송하는 구조를 의미하며 단순히 오류 상태나 제어 정보를 전달하는 데 초점을 맞춘것을 의미한다.
[문제18]
데이터베이스의 스키마(Schema)에 대해 간략히 서술하시오.
[문제19] 다음 네트워크 관련 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( )이라는 용어로 정의하였다.
문제 지문의 설명은 마치 'ARQ(Automatic Repeat reQuest)'를 연상 시키지만, ARQ는 문제의 지문에서 설명하는 방법을 구현한 구체적인 '기법' 중 하나일 뿐, 톰 마릴이 정의한 기술적 은어인 '프로토콜(Protocol)'은 그 전체 과정을 아우르는 통신 규약 전반을 가리킨다.
[문제20] 다음이 설명하고 있는 관계대수 연산자의 기호를 쓰시오.
릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산이다.
B의 조건에 부합하는 행만 A에서 추출하여 프로젝션 하는 연산이며, 이때 B의 조건은 제외된 상태로 프로젝션 된다.
'프로젝션(Projection)'이란, 원하는 컬럼(속성)만 추출하여 새로운 릴레이션을 만드는것을 의미한다.
[문제21] 다음은 화이트박스 테스트의 프로그램 제어흐름이다. 다음의 순서도를 참고하여 분기 커버리지로 구성할 테스트 케이스를 작성하시오.

1→2→3→4→5→6→7
1→2→4→5→6→1
※두 경로 모두 작성해야 정답
문제의 순서도에서는 2번, 6번이 '분기(Branch)'이므로 YES와 NO를 최소 1회씩은 수행되도록 테스트 케이스를 작성한다.
[문제22]
소프트웨어 개발에서의 작업 중 형상 통제에 대해 간략히 서술하시오.
'기준선(Baseline)'이란, 특정 시점에 승인되어 고정된 형상 항목들의 상태를 말한다. 이후 발생하는 변경 사항은 이 기준선을 토대로 검토되고 반영된다.
[문제23]
소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 동치 클래스 분해 및 경계값 분석을 이용하는 테스트 기법을 쓰시오.
동치 클래스 분해(Equivalence Class Partitioning): 입력값의 범위나 유형을 몇 개의 동등한 클래스(집합)로 나누어 각 대표값만 테스트하는 기법이다. 예를 들어, 어떤 입력값이 1부터 100까지 가능하다면, 정상 범위를 하나의 동치 클래스로, 그 밖에 음수 범위나 101 이상의 범위를 다른 동치 클래스로 구분해 각각의 대표값을 테스트한다.
경계값 분석(Boundary Value Analysis): 동치 클래스로 구분된 영역의 경계 지점(시작점, 끝점, 경계 바로 안팎 등)이 오류가 가장 많이 발생한다고 보고, 이 경계를 집중적으로 테스트하는 기법이다. 예를 들어, 입력 가능한 범위가 1~100이라면, 0, 1, 2와 99, 100, 101 등을 집중적으로 테스트 한다.
[문제24]
헝가리안 표기법(Hungarian Notation)에 대해 간략히 서술하시오.
[문제25] 다음 설명에 해당하는 라우팅 프로토콜(Routing Protocol)을 쓰시오.
1. RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜이다.
2. 인터넷 망에서 이용자가 최단 경로를 선정할 수 있도록 라우팅 정보에 노드 간의 거 리 정보, 링크 상태 정보를 실시간으로 반영하여 최단 경로로 라우팅을 지원한다.
3. 대규모 네트워크에서 많이 사용된다.
4. 최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.
5. 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알린다.
6. 링크 스테이트 라우팅 알고리즘을 사용하며, 하나의 자율 시스템(AS)에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달한다.
대규모 네트워크에서 많이 사용되는 이유: 링크 상태(Link State)방식을 사용하기 때문에 각각의 라우터가 네트워크 전체 상황(어느 구간이 혼잡한지, 어떤 경로가 끊겼는지 등)을 더 정확하게 파악할 수 있고, Dijkstra 알고리즘을 이용해 최단 경로(가장 빠른 경로)를 계산하므로, 라우팅 정보가 바뀌어도 비교적 빠르게 새로운 경로를 찾고 전체 라우터에 반영할 수 있다. 이러한 많은 정보를 활용하여 단순히 거리만 계산하는 RIP보다 더 큰 규모의 네트워크 에서도 효율적이고 안정적인 라우팅을 지원할 수 있다.
[문제26] 다음은 EAI(Enterprise Application Integration)의 구축 유형에 대한 설명이다. 괄호(①, ②) 안에 각각 들어갈 알맞은 유형을 쓰시오.
EAI(Enterprise Application Integration)는 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션이다. 비즈니스 간 통합 및 연계성을 증대시켜 효율성 및 각 시스템 간의 확정성(Determinacy)을 높여 준다. EAI의 구축 유형은 다음과 같다.

[문제27]
UI(User Interface)의 설계 원칙 중 직관성에 대해 간략히 서술하시오.
[문제28]
C++에서 생성자(Constructor)에 대해 서술하시오.
[문제29] 네트워크 및 인터넷과 관련된 다음 설명에 해당하는 용어를 영문(Full name 또는 약어)으로 쓰시오.
1. 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
2. 16비트씩 8부분, 총 128비트로 구성되어 있다.
3. 각 부분을 16진수로 표현하고, 콜론(:)으로 구분한다.
4. 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다.
5. 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원한다.
IPv6는 'IPsec(IP Security)'가 표준적으로 포함되어 있어, 인증 헤더(AH)와 ESP(Encapsulating Security Payload) 프로토콜을 통해 인증성, 기밀성, 무결성을 보장한다. 예를 들어, 인증 헤더는 송·수신 데이터의 위변조 여부를 검증하고, ESP는 패킷을 암호화해 데이터 기밀성을 유지한다. 이를 통해 IPv6 환경에서는 보안성을 높인 통신이 가능하다.
[문제30] 소프트웨어 공학의 디자인 패턴(Design Pattern)에 대한 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
1. 디자인 패턴은 1995년 GoF(Gang of Four)라고 불리는 에릭 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides)가 처음으로 구체화 및 체계화하였다.
2. 디자인 패턴은 수많은 디자인 패턴들 중 가장 일반적인 사례에 적용될 수 있는 패턴들을 분류하여 정리함으로써, 지금까지도 소프트웨어 공학이나 현업에서 가장 많이 사용되고 있다.
3. 디자인 패턴은 총 23가지이며, 생성, 구조, ( )의 3가지로 분류한다.
[문제31] UML을 이용한 다이어그램 중 다음 그림에 해당하는 다이어그램을 쓰시오.

패키지(예: Order, Security): 클래스, 인터페이스, 유스케이스 등 다양한 UML 요소를 하나로 묶는 논리적 컨테이너이다. 이름을 통해 기능 영역별로 모듈화하거나, 계층 구조를 만들어 조직적으로 모델링할 수 있다.
의존 관계(Dependency): 어떤 패키지가 다른 패키지의 요소(클래스, 인터페이스 등)에 의존하는 경우를 나타낸다. 예시 그림에서는 Order 패키지가 Security 패키지를 참조해야 하므로, 점선 화살표로 이어져 있다.
«import» 관계: UML에서 import 관계는 다른 패키지의 공개된(public) 요소를 가져와 사용할 수 있음을 의미한다. 즉, Order 패키지 안의 요소들이 Security 패키지에 있는 Credentials, MD5Crypt 등의 공개 멤버를 참조할 수 있게 된다.
패키지 다이어그램은 시스템을 여러 논리적 패키지(모듈)로 나누어 '큰 그림'을 단순화하는 데 사용된다. 이를 통해 세부적인 클래스나 인터페이스 등의 관계를 일일이 표현하기보다는, 각 패키지의 역할과 패키지 간의 의존성을 한눈에 파악할 수 있게 해준다.
[문제32] 데이터베이스 회복(Recovery) 기법에 관련된 다음 설명에서 괄호에 공통적으로 들어갈 가장 알맞은답을 쓰시오
( )은 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB에 그 내용을 반영하는 기법으로, 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들을 로그(Log)에 보관시킨다. ( )에서 회복 작업을 수행할 경우 Redo와 Undo 모두 수행이 가능하다.
일부가 반영된 트랜잭션이라도 커밋되지 않았다면 무효이므로 원상복구(Undo)하고, 반대로 커밋된 트랜잭션 중 반영이 덜 된 부분(즉, 로그에는 남아 있지만 실제 DB 적용이 덜 된 부분)이 있다면 Redo를 통해 완전히 반영하게 된다.
[문제33]
스니핑(Sniffing)은 사전적 의미로 '코를 킁킁 거리다, 냄새를 맡다'이다. 네트워크 보안에서 스니핑에 대한 개념을 간략히 한 문장(1 문장)으로 쓰시오.
스니핑 방지를 위해서는 암호화된 프로토콜 사용(예: HTTPS), 네트워크 분할, 침입 방지 시스템 설정 등의 대책이 필요하다.
[문제34] 네트워크에 대한 다음 설명에 해당하는 용어를 쓰시오.
1. 우리말로 번역하면 '네트워크 주소 변환' 이라는 의미의 영문 3글자 약자이다.
2. 1개의 정식 IP 주소에 다량의 가상 사설 IP 주소를 할당 및 연결하는 방식이다.
3. 1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개만으로 제한되는 문제가 있으나, 이 때에는 IP 마스커레이드(Masquerade를 이용하면 된다.
[문제35] 분산 컴퓨팅에 대한 다음 설명에 해당하는 용어를 쓰시오.
1. 오픈 소스 기반 분산 컴퓨팅 플랫폼이다.
2. 분산 저장된 데이터들은 클러스터 환경에서 병렬 처리된다.
3. 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발되었다.
4. 더그 커팅과 마이크 캐퍼렐라가 개발했으며, 구글의 맵리듀스(MapReduce) 엔진을 사용하고 있다.
[문제36]
특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클로, 전수테스트가 불가능한 경우 사용하고, 경계값 및 구간별 예상값 결과 작성시 사용하는 오라클을 쓰시오.
참 오라클(True/Perfect Oracle): 모든 입력값에 대해 ‘정확한 기대 결과’를 알고 있어, 실제 결과와 1:1로 비교할 수 있는 가장 이상적인 오라클이다.
일관성 검사 오라클(Consistency Checking Oracle): 정확한 기대 결과 자체는 모르지만, 다른 테스트나 이전 버전과의 일관성을 검사한다. 예를 들면, 동일 입력을 여러 번 처리했을 때 결과가 달라지지 않는지, 혹은 사전 조건·후속 조건과 모순이 없는지 등을 확인한다.
추정 오라클(Heuristic/Parametric Oracle): 결과를 완벽히 아는 것은 아니지만, 어느 정도 합리적인 가정이나 휴리스틱을 통해 출력을 검증한다.
[문제37]
데이터베이스의 이상(Anomaly)의 종류 3가지를 쓰시오.
삽입 이상(Insert Anomaly): 데이터를 삽입할 때 불필요한 데이터까지 함께 삽입되는 문제
갱신 이상(Update Anomaly): 튜플의 속성값 일부만 갱신되어 정보 모순이 생기는 문제
삭제 이상(Delete Anomaly): 한 튜플을 삭제할 때 관련된 데이터가 함께 삭제되어 정보 손실이 발생
[문제38] 테스트 기법 중 다음과 같이 ‘평가 점수표’를 미리 정해 놓은 후 각 영역에 해당하는 입력값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을 쓰시오.

[문제39] 다음 설명에 해당하는 운영체제(OS)를 쓰시오.
1. 1960년대 AT&T 벨(Bell) 연구소가 MIT, General Electric 사와 함께 공동 개발한 운영체제이다.
2. 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제이다.
3. 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
4. 트리 구조의 파일 시스템을 갖는다.
유닉스 시스템은 여러 터미널을 통해 사용자가 동시에 접속할 수 있으며 운영체제가 시분할 처리 방식을 통해 여러 사용자 프로세스에 CPU를 교대로 할당한다. 각 사용자는 자신의 터미널에서 독립적으로 명령어를 입력하고 결과를 받을 수 있다.
터미널(Terminal): 텍스트 기반으로 사용자와 컴퓨터 시스템이 상호 작용할 수 있도록 해주는 입출력 장치 또는 프로그램이다.
[문제40]
피투피(P2P) 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(Peer)의 디지털 장비에 분산 저장하는 기술을 쓰시오
P2P(Peer-to-Peer) 네트워크: 중앙 서버 없이 참여자(피어, Peer)들 사이에서 직접 데이터와 자원을 주고받는 분산형 네트워크 구조이다. 각 노드는 동등한 지위를 가지며, 동시에 서버와 클라이언트 역할을 수행할 수 있다.
블록체인에서 거래 정보를 여러 참여자(Peer)에 분산 저장하면 중앙 서버 의존성을 제거하고, 단일 장애 지점(Single Point of Failure)을 줄이며, 데이터 위·변조가 어렵도록 보안과 신뢰성을 강화할 수 있다. 한 곳에만 저장되면 해당 서버가 해킹·장애에 취약하지만, 네트워크 전체로 분산하면 하나를 공격해도 전체 기록이 유지되므로 안전성이 높아지는 것이 핵심 이유이다.
[문제41]

준비(Ready): CPU를 배정받기 위해 대기 중인 상태
실행(Running): CPU를 할당받아 실제로 명령을 수행 중인 상태
대기(Blocked): 입출력 요청 등으로 잠시 대기하며, 작업이 끝나면 Ready 상태로 되돌아간다.
Dispatch: 프로세스가 준비(Ready) 상태에서 실행(Running) 상태로 전환될 때 이뤄지는 스케줄러의 동작이다. 즉, CPU를 실제로 할당해주는 과정을 가리킨다.
선점(Preemption), 시간 초과(Time Out): 운영체제가 현재 실행 중인 프로세스에서 CPU를 강제로 회수해 다른 프로세스에게 CPU를 넘겨주는 메커니즘이다.
[문제42]
데이터베이스 보안에서 가용성(Availability)에 대해 간략히 서술하시오.
[문제43] 네트워크 및 인터넷과 관련된 다음 설명에 해당하는 용어를 쓰시오.
인터넷 환경에서의 호스트 상호 간 통신에서 연결된 네트워크 접속 장치의 물리적 주소인 MAC 주소를 이용하여 IP 주소를 찾는 인터넷 계층의 프로토콜로, 역순 주소 결정 프로토콜이라 불린다.
RARP(Reverse Address Resolution Protocol): IP가 없는 호스트가 네트워크에 접속하기 위해 MAC 주소만으로 IP를 자동 할당받게 해주는 프로토콜이다. 과거에는 하드디스크 없이 부팅하는 PC가 전원을 켰을 때, MAC 주소로 서버에 IP를 요청해 운영체제를 로드하도록 도와줬다. 한마디로 "IP 주소는 없고 MAC 주소만 있으니, 네트워크에서 IP 좀 달라"고 요청하는 방식이다. 일반적으로 ROM이나 NIC에 들어 있는 부트 PROM이 부팅 시 네트워크 프로토콜(RARP나 BOOTP 등)을 통해 IP를 받은 뒤 운영체제나 프로그램을 서버에서 내려받는다. 디스크 없이도 ROM에 저장된 코드로 서버에 접속해 필요한 파일을 불러와 작동할 수 있다.
ARP(Address Resolution Protocol): ARP는 알려진 IP 주소를 통해 MAC 주소를 찾아주는 프로토콜이다. 예를 들면, PC가 네트워크 프린터에 문서를 보낼 때 프린터의 IP 주소는 알지만 MAC 주소는 모르는 경우, ARP로 MAC 주소를 알아낸 뒤 데이터를 전송할 수 있다. 실제 데이터 전송은 물리 계층에서 MAC 주소를 기반으로 이루어지므로, IP 주소만으로는 전송이 불가능해 ARP가 꼭 필요하다.
[문제44] 데이터베이스 설계에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 답을 쓰시오.
1.( ① ): 논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 액세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다.
2.( ② ): 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정으로, 개념 스키마 모델링과 트랜잭션 모델링을 수행하며, 요구 조건 명세를 E-R 다이어그램으로 작성한다.
3.( ③ ): 현실의 자료를 특정 DBMS가 지원하는 자료구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다.
[문제45] 웹 서비스(Web Service)와 관련된 다음 설명에 해당하는 용어를 쓰시오.
웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어로, XML로 작성되며 UDDI의 기초가 된다. SOAP, XML 스키마와 결합하여 인터넷에서 웹 서비스를 제공하기 위해 사용되며, 클라이언트는 이것을 통해 서버에서 어떠한 조작이 가능한지를 파악할 수 있다.
SOAP: 웹 서비스 호출에 사용되는 XML 기반 프로토콜이다. 복잡하고 무거운 구조로 구성되어 있어 오늘날에는 상대적으로 간단하고 가벼운 RESTful API를 사용한다.
UDDI: UDDI는 SOAP 기반으로 웹 서비스 정보를 등록·검색하는 디렉터리 역할을 하여, 필요한 서비스를 쉽게 찾고 호출하도록 돕는다.
각각의 특징들을 적절하게 비유하자면 아래와 같다.
SOAP: 다른 웹서비스 간 '소포'로 메시지 주고받는 안전 규약
UDDI: 웹서비스 도서관, 등록·검색 정보 찾아주는 안내소 역할
WSDL: 웹서비스 메뉴판, 어떤 기능과 재료가 있는지 안내해준다.
[문제46] 요구사항 확인에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오
( ① )요구사항은 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 사용자가 시스템을 통해 제공받기를 원하는 기능이나 시스템이 반드시 수행해야 하는 기능을 의미한다.
( ② )요구사항은 품질이나 제약사항과 관련된 요구사항으로, 시스템의 장비 구성, 성능, 인터페이스, 테스트, 보안 등의 요구사항을 말한다.
[문제47]
시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위를 가리키는 용어를 쓰시오.
정규화된 데이터 모델은 중복을 최소화하고 데이터 무결성을 높이는 장점이 있지만, 실무 환경에서는 조인이 많아져 시스템 성능이나 개발 편의성이 저하될 수 있다. 이 때 의도적으로 테이블을 통합하거나 중복을 허용하는 등 정규화 원칙을 일부 깨서 성능을 높이는 행위를 반정규화(Denormalization) 라고 한다.
[문제48] 애플리케이션 테스트에 대한 다음 설명에서 괄호(①, ②)에 공통으로 들어갈 알맞은 답을 쓰시오.
( ① )은 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용한 검사 기법이고, ( ② )는 입력 조건이 유효한 경우와 그렇지 않은 경우의 입력 자료의 개수를 균등하게 정하는 검사 기법이다.
예를 들어 0〈= X〈= 10과 같은 조건이 있을 때, ( ① )은 -1, 0, 10, 11을 입력값으로, ( ② )는 0이상 10이하의 수 n개와 0미만 10초과의 수 n개를 입력값으로 정한다.
[문제49] 애플리케이션 테스트에 대한 다음 설명에서 각 지문(①, ②)에 해당하는 용어를〈보기〉에서 찾아 기호(ㄱ〜ㅂ)로 쓰시오.
① 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 수행하는 테스트로, 모듈 테스트라고도 불린다. 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 인터페이스, 외부적 I/O, 자료구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사한다.
② 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트를 의미하며, 모듈 간 또는 컴포넌트 간의 인터페이스가 정상적으로 실행되는지 검사한다.
〈보기〉
ㄱ.시스템 테스트 ㄴ.인수 테스트 ㄷ.알파 테스트
ㄹ.단위 테스트 ㅁ.통합 테스트 ㅂ.회귀 테스트
[문제50] 인터넷에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.
1. IPv6는 ( ① ) 비트의 주소를 가지며, 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있고, 주소의 확장성, 융통성, 연동성이 뛰어나다.
2. IPv4는 32 비트의 주소를 가지며 ( ② ) 비트씩 4부분, 총 32비트로 구성되어 있다. :IPv4는 네트워크 부분의 길이에 따라 A 클래스에서 E 클래스까지 총 5단계로 구성되어 있다.
IPv6: IPv6 주소는 총 128비트로, 이를 16비트씩 8개 부분으로 나누어 표현한다. 각 부분은 16비트(4자리의 16진수)이며, :(콜론)으로 구분해 8개 구역을 나타낸다.
예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv4: IPv4 주소는 총 32비트로, 이를 8비트씩 4개 부분으로 나누어 표현한다. 각 부분은 8비트(0~255 범위의 십진수)이며, 보통 .(점)으로 구분해 4개 구역을 나타낸다.
예: 192.168.0.1
[문제51] 네트워크에 관련된 다음 설명에 해당하는 용어를 쓰시오.
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다. 대표적인 메소드에는 공유 메모리(Shared Memory), 소켓(Socket), 세마포어(Semaphores), 파이프와 네임드 파이프(Hpes&named Pipes), 메시지 큐잉(Message Queueing) 이 있다.
각 메소드들은 "운영체제 수준에서 동시성 제어가 필요할 때", "여러 프로세스 간 데이터 교환이나 작업 분담이 필요한 경우", "네트워크로 연결된 분산 환경에서 서버-클라이언트 애플리케이션을 구성할 때" 사용된다.
공유 메모리(Shared Memory): 특정 메모리 공간을 여러 프로세스가 함께 참조하도록 하여 데이터를 직접 읽고 쓸 수 있게 만든다.
세마포어(Semaphores): 공유 자원에 대한 동시 접근(경쟁 상태) 을 제어하기 위해 사용되는 동기화 기법이다.
파이프(Pipes) & 네임드 파이프(Named Pipes): 한 프로세스가 쓰면 다른 프로세스가 읽는 형태로, 간단한 일대일 통신에 적합하다. 네임드 파이프는 파일 시스템에 이름을 갖고 여러 프로세스가 접근할 수 있도록 확장한 형태이다.
메시지 큐(Message Queue): 운영체제가 관리하는 큐(FIFO 자료구조)에 메시지를 넣고 꺼내는 방식으로, 비동기적으로 통신할 수 있다.
소켓(Socket): 네트워크 기반 통신을 지원하며, 로컬 프로세스 간 통신뿐 아니라 원격 프로세스 간에도 이용 가능하다.
[문제52]
기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로, Point-to-Point, Hub&Spoke, Message Bus, Hybrid 등의 다양한 방식으로 구축이 가능한 모듈 연계 방법을 쓰시오.
[문제53] 다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.

카디널리티(Cardinality): 테이블(릴레이션)의 튜플(행) 수를 의미
디그리(Degree): 테이블(릴레이션)의 컬럼(속성, 열) 수를 의미하며, '차수(Degree)'라고도 한다.
[문제54] 데이터 모델의 구성 요소에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.
1. ( ① )은 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당한다.
2. ( ② )는 논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현한다.
3. 제약 조건은 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 의미한다.
즉, 데이터 모델은 설계 결과물에 해당하고, 데이터 모델링은 그 모델을 만들어가는 과정이라고 할 수 있다.
[문제55] 데이터베이스 보안에 관련된 다음 설명에 해당하는 용어를 쓰시오.
접근통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것이다. 이러한 접근통제에 관한 기술 중 ( )는 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하여 제어하는 방식으로, 데이터의 소유자가 접근통제 권한을 지정하고 제어한다. 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있다.
반면, '강제적 접근 통제(MAC)'는 시스템이 등급(기밀성 등)을 기준으로 접근을 통제하며, 사용자가 임의로 접근 권한을 부여할 수 없다.
[문제56] 데이터 모델의 구성 요소에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 답을〈보기〉에서 찾아 기호(ㄱ〜ㅂ)로 쓰시오.
1. ( ① )는 모듈 간의 인터페이스로 데이터, 지역 변수 등을 직접 참조하거나 수정할 때의 결합도다.
2. ( ② )는 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도다.
3. ( ③ )는 모듈 간의 인터페이스로 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도다.
〈보기〉
ㄱ.자료 결합도 ㄴ.스탬프 결합도 ㄷ.제어 결합도
ㄹ.공통 결합도 ㅁ.내용 결합도 ㅂ.외부 결합도
①을 '자료 결합도(Data Coupling)'라고 오해 할 수 있는데, 자료 결합도는 모듈 간에 매개변수를 통해 단순히 필요한 데이터만 주고받을 때를 말한다. 즉, 인터페이스로 필요한 값만 전달받아 쓰는 형태이다. 반면, 내용 결합도는 모듈이 다른 모듈의 지역 변수나 내부 로직을 직접 참조·수정하는 상황이다.
②를 '외부 결합도(External Coupling)'라고 오해 할 수 있는데, 외부 결합도는 주로 외부 시스템(파일, 디바이스, 통신 프로토콜 등)과 연결되어 모듈이 협력해야 할 때 생기는 결합이다. "외부"란 말 그대로 프로그램 외부 자원에 대한 의존 관계를 말한다. 반면, 공통 결합도는 여러 모듈이 하나의 전역 변수(공통 영역) 를 사용해 서로 값을 읽고 쓰는 형태이다. 즉, 한 프로그램 내부에서 공유되는 전역 데이터에 의존한다.
[문제57] 네트워크 및 인터넷 보안에 관련된 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
1. ( )은 ‘세션을 가로채다’라는 의미로, 정상적인 연결을 RST 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결하는 공격 기법이다.
2. TCP ( )은 공격자가 TCP 3-Way-Handshake 과정에 끼어듦으로써 서버와 상호 간의 동기화된 시퀀스 번호를 갖고 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있게 된다.
RST 패킷: TCP 통신에서 연결을 강제로 종료(Reset) 할 때 사용되는 패킷이다. 보통 정상적인 상황에서는 잘 사용되지 않고, 예를 들면, 공격자가 RST 패킷을 보내면 현재 진행 중이던 TCP 연결이 즉시 끊기게 되고, 재접속을 시도하는 틈을 타 공격자가 그 자리를 가로채는 등의 악용이 가능하다.
동기화된 시퀀스 번호: TCP에서 시퀀스 번호는 서버와 클라이언트가 주고받는 데이터의 순서를 추적하기 위해 사용된다. 즉, 최초 연결(3-Way-Handshake) 시 서로가 합의한 시퀀스 번호로부터 통신을 시작하여, 각 패킷 전송마다 시퀀스 번호가 늘어난다. 이를 통해 “지금 몇 번째 데이터까지 받았고, 이어서 어떤 데이터가 오는지”를 정확히 식별할 수 있다. 세션 하이재킹 공격은 이러한 특성을 이용하여 정상 클라이언트와 서버가 동기화 중인 시퀀스 번호를 공격자가 예측·탈취하고, 해당 번호로 위조 패킷을 전송함으로써 이미 맺어진 세션을 가로채는 기법이다.
[문제58] 네트워크 및 인터넷과 관련된 다음 설명에 해당하는 용어를 쓰시오.
1. 재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크이다.
2. 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다.
3. 멀티 홉 라우팅 기능을 지원한다.
※아래 내용은 필자의 주관적 견해입니다.
문제 해설을 정리하면서, 단순히 “애드 혹 네트워크”라는 용어와 문제 지문에서 나타난 상황(재난·군사 현장 등)이 실제로는 MANET에 더 가깝다는 점을 강조하고 싶습니다. 애드 혹(Ad-hoc) 네트워크 자체는 고정된 인프라 없이 임시로 구성되는 네트워크라는 폭넓은 개념을 가리키지만, 문제 지문이 예시로 든 “재난 및 군사 현장”, “모바일 호스트만으로 구성” 같은 구체적 특성은 'MANET(Mobile Ad-hoc Network)'에 해당하기 때문입니다.
개인적으로, 사람들이 “애드 혹 네트워크”라는 용어를 들었을 때, 굉장히 광범위한 상황을 상상할 수 있다는 점을 강조하고 싶습니다. 실제로 Mesh-Network처럼, 공유기나 Wi-Fi 증폭기 등 가정용 장치로도 임시 네트워크를 구성할 수 있는데, 이것도 애드 혹 네트워크의 하위 범주에 들어가기 때문이죠.
그렇다고 해서 애드 혹 네트워크가 틀렸다는 의미가 아니라, 더 포괄적인 상위 개념이라는 제 개인적 견해를 덧붙이고 싶습니다.
[문제59] 인터페이스에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① ) : 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험
• ( ② ) : 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어
UX(User Experience): 사용자가 시스템·서비스를 이용하면서 직접적으로 느끼는 감정적, 총체적인 경험을 의미한다. 접근성, 편의성, 디자인, 감성 등 전반적인 만족도가 포함된다.
UI(User Interface): 사용자가 시스템과 상호작용하는 매개체(장치·소프트웨어) 로, CLI(Command Line Interface), GUI(Graphical User Interface) 등이 대표적인 예시이다. 인터페이스를 통해 사용자와 시스템 간 정보 교환이 가능하고, 이를 기반으로 사용자의 경험(UX)이 결정된다.
[문제60]
데이터베이스의 상태 변화를 일으키는 트랙잭션(Transaction)의 특성 중 원자성(Atomicity)에 대해 간략히 서술하시오.
[문제61] 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
테이블을 만들 때는 이상(Anomaly)을 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다. 아래 그림은 부분 함수적 종속을 제거하여 제( )정규형을 만드는 과정이다.

〈Table R〉의 경우, C는 key에 해당하는 A와 B중 A에만 종속되는 부분 함수적 종속이다. 이 문제 해결을 위해〈Table R〉에서 C를 분리하여 〈Table R1〉과 〈Table R2〉로 만들면 제( )정규형에 해당하는 테이블이 완성된다.
[문제62] 보안 및 암호화와 관련된 다음 설명에 해당하는 용어를 쓰시오.
• 2001년 미국 표준 기술 연구소(NIST)에서 발표한 대칭키 암호화 알고리즘이다.
• DES의 한계를 느낀 NIST에서 공모한 후 발표하였다.
• 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류된다.
DES: IBM이 개발한 ‘Lucifer’라는 알고리즘을 기반으로 NBS(당시 미국 표준국)가 공모·선정하고 NSA가 일부 수정·검토를 거친 뒤, 1977년에 DES(Data Encryption Standard)라는 이름으로 미국 연방 정보처리 표준(FIPS)으로 제정된 것이다.
[문제63] 테스트에 대한 다음 설명에서 각 지문(①~③)에 해당하는 커버리지(Coverage)를〈보기〉에서 찾아 기호(ㄱ〜ㅂ)로 쓰시오.
① 최소 한번은 모든 문장이 수행되도록 구성하는 검증 기준
② 조건식이 참(Truee)/거짓(False)일 때 수행되도록 구성하는 검증 기준
③ ②번과 달리 조건식에 상관없이 개별 조건이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준
ㄱ.다중 조건 검증 기준 ㄴ.선택 검증 기준 ㄷ.조건 검증 기준
ㄹ.결정(분기) 검증기준 ㅁ.결정(분기)/조건 검증 기준 ㅂ.구문(문장) 검증 기준
결정(분기) 검증 기준: 분기문(조건식)의 결과가 참(True)인 경우와 거짓(False)인 경우가 각각 적어도 한 번씩 수행되도록 구성한다. 예를 들면, x > 0이 True일 때와 False일 때를 각각 테스트해야 한다.
조건 커버리지: 개별 조건식(논리식)의 각 항(서브조건)이 참·거짓을 모두 만족하도록 테스트하는 기준이다. 즉, 복합 조건이 있더라도 각 논리식 자체가 참과 거짓을 각각 한 번 이상 만족해야 한다. 예를 들면, 복합 조건 (a > 0) && (b < 5)의 각 부분이 True/False를 모두 경험해야 한다.
[문제64] 모듈에 대한 다음 설명에서 각 지문(①~③)에 해당하는 응집도(Cohesion)를〈보기〉에서 찾아 기호(ㄱ〜ㅅ)로 쓰시오.
① 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도
② 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
③ 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도
ㄱ.기능적 응집도 ㄴ.순차적 응집도 ㄷ.교환적 응집도 ㄹ.절차적 응집도
ㅁ.시간적 응집도 ㅂ.논리적 응집도 ㅅ.우연적 응집도
반면, '절차적 응집도(Procedural Cohesion)'는 내부 요소들이 기능적으로 직접 연관이 없어도, 특정 순서에 따라 차례대로 실행되어야 하는 경우를 의미한다.
'기능적 응집도(Functional Cohesion)'는 가장 높은 응집도이며, 모듈 전체가 하나의 명확한 기능을 수행하고, 내부 구성 요소들이 그 기능을 달성하기 위해 밀접하게 연결되어 있는 경우를 의미한다.
[문제65] 네트워크에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
• ( ② ) : 비 연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더 에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식
가상 회선 방식 (Virtual Circuit): 가상(virtual) 회선(circuit) 방식은 원래 전화망의 회선 교환 방식을 모태로 한다. 전화망에서는 통화를 시작하기 전에 수신자와 연결을 미리 설정해야만 목소리를 전달할 수 있었는데, 이 개념이 데이터 통신에 논리화(가상화) 되어 적용된 것이 바로 가상 회선 방식이다. 예를 들어, TCP 프로토콜의 3-Way Handshake 과정이 대표적인 사례로, 데이터를 전송하기 전에 먼저 논리적 연결을 확립해 전송 경로와 순서를 보장한다.
데이터그램 방식 (Datagram): 데이터그램(datagram) 방식은 전보(telegraph) 방식을 떠올리면 이해하기 쉽다. 전보는 메시지 하나하나가 독립적으로 전송되어, 매번 수신 목적지를 명시해야 하며, 메시지 간 순서나 연결은 보장되지 않는다. 전화와 달리 상대방이 바로 받지 못해도 메시지를 전송할 수 있고, 데이터가 나뉘어 전송되거나 순서가 섞여 도착해도 연결 설정을 거치지 않으므로 빠른 송신이 가능하다. 이러한 특징은 UDP 프로토콜에 반영되어 연결 과정 없이 데이터를 신속하게 전송하지만, 순서 보장 등은 제공하지 않는다.
[문제66] 디자인 패턴에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다. 그 중 ( ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로, Interpreter, Observer, Command 등이 그 예에 해당한다.
[문제67]
데이터베이스의 병행제어(Concurrency Control) 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 배타적으로 접근하여 작업을 수행하도록 하는 기법을 쓰시오.
로킹은 병행 제어(Concurrency Control)를 통해 직렬화(Serializability)를 보장하는 대표적인 기법 가운데 하나이다. 트랜잭션이 특정 데이터(레코드 등)에 접근해 연산 중일 때, 해당 작업이 완료될 때까지 다른 트랜잭션이 접근하지 못하도록 잠그어(배타적으로 접근) 동시에 발생할 수 있는 충돌을 예방하는 대표적인 병행 제어 기법이다.
병행제어(Concurrency Control): 여러 트랜잭션이 동시에 데이터에 접근할 때, 발생할 수 있는 충돌이나 무결성 문제를 막기 위해서 동작 순서를 조정하거나 잠금을 적용하여 정상적인 결과를 보장하는 기술이다.
직렬화(Serializability): 동시에 수행된 트랜잭션들의 최종 결과가 순차적(직렬)으로 실행했을 때와 동일하게 보장되는 성질이다. 즉, 병행 처리에도 결과의 일관성이 유지되도록 하는 기준이다.
[문제68] 럼바우(Rumbaugh) 데이터 모델링에 대한 다음 설명에서 각 지문(①〜③)에 해당하는 모델링을〈보기〉에서 찾아 기호(ㄱ〜ㅇ)로 쓰시오.
① 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링
*예: DFD(자료흐름도)
② 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
*예: STD(상태변화도), 사건추적도
③ 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링
*예: ERD(E-R다이어그램)
〈보기〉
ㄱ.Operation ㄴ.Sequence ㄷ.Information ㄹ.Transaction
ㅁ.Function ㅂ.I/O ㅅ.Dynamic ㅇ.Cause-Effect
Function(기능)모델: 여러 프로세스(기능)들의 자료 흐름과 처리 과정을 표현하는 모델
Dynamic(동적)모델: 객체가 시간에 따라 어떻게 상태가 변하고, 이벤트나 메시지를 통해 상호작용하며 동작 순서를 결정하는지를 표현
Information(정보)모델: 럼바우의 '객체 모델링 기법(OMT, Object Modeling Technique)'에서는 이를 '객체 모델(Object Model)'이라고 정의하는데, 무슨 의도로 Information 모델을 답안으로 했는지 의문이다. LLM에 의하면 "객체 모델 = 정보(데이터) 모델이라는 관점은,“객체가 실질적으로 시스템이 처리해야 할 정보 단위이며, 객체 간의 연결 관계가 곧 정보 구조를 나타낸다”는 이해에서 비롯된 것 같다." 라고 한다.
[문제69] 통합 테스트에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
통합 테스트는 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기 법으로, 하위 모듈에서 상위 모듈 방향으로 통합하는 상향식 통합 테스트와 상위 모듈에서 하위 모듈 방향으로 통합하는 하향식 통합 테스트가 있다. 상향식 통합 테스트는 미완성이거나 문제가 있는 상위 모듈을 대체할 수 있는 테스트 드라이버가, 하향식 통합 테스트는 미완성이거나 문제가 있는 하위 모듈을 대체할 수 있는 테스트 ( )이(가) 있어야 원활한 테스트가 가능하다.
상향식(Bottom-Up) 통합 테스트: 하위 모듈부터 통합해 올라가는 방법으로, 아직 구현되지 않았거나 문제가 있는 상위 모듈을 대신할 드라이버(Driver)가 필요하다.
하향식(Top-Down) 통합 테스트: 상위 모듈부터 통합해 내려가는 방법으로, 아직 구현되지 않았거나 문제가 있는 하위 모듈을 대신할 스텁(Stub)이 필요하다.
[문제70] 보안 위협에 관한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
( ) 스푸핑은 로컬 네트워크(LAN)에서 사용하는 ( ) 프로토콜의 취약점을 이용한 공격 기법으로, 자신의 물리적 주소(MAC)를 변조하여 다른 PC에게 도달해야 하는 데이터 패킷을 가로채거나 방해한다.
[문제71]
데이터를 제어하는 DCL의 하나인 GRANT의 기능에 대해 간략히 서술하시오.
[문제72] AAA 서버에 관한 다음 설명에서 각 번호(①~③)에 들어갈 알맞는 용어를〈보기〉에서 찾아 쓰시오.
AAA 서버는 사용자의 컴퓨터 자원 접근 처리와 서비스 제공에 있어서의 다음 3가지 기능을 제공하는 서버이다.
① 접근하는 사용자의 신원을 검증하는 기능
② 신원이 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능
③ 사용자가 어떤 종류의 서비스를 이용했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능
〈보기〉
• Application • Authentication • Avalanche • Authorization • Accounting • Ascii
Authentication(인증): 사용자의 신원을 검증하여 올바른 접근 가능 여부를 확인하는 과정
Authorization(권한 부여): 인증된 사용자에게 필요한 자원이나 서비스 접근 권한을 결정하는 절차
Accounting(과금/사용량 관리): 사용자의 서비스 이용 내역을 기록·추적하고 자원 사용량을 관리하는 기능
[문제73] 디자인 패턴에 관한 다음 설명에서 괄호에 들어갈 알맞은 답을〈보기〉에서 찾아 쓰시오.
( ) 패턴은 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 다른 이름으로 가상 생성자(Virtual Constructor) 패턴이라고도 불린다.
〈보기〉
• Singleton • Abstract Factory • Factory Method • Prototype
• Facade • Composite • Template Method • Builder
정답이 아닌 선지 중 Abstract Factory 패턴은 ‘서로 관련되거나 의존적인 객체 집합’을 생성하는 과정을 추상화하여 ‘군(family)’단위로 객체를 생산하는 데 초점을 맞추고 있다.
[문제74]
결합도(Coupling)의 종류 중 단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달되는 경우의 결합도를 영문으로 쓰시오.
[문제75] 애플리케이션 테스트에 관한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.
• ( ① )는 소프트웨어의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다.
• 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요하다.
• 데이터의 입 - 출력을 확인하기 위해 더미 모듈인 ( ② )를 생성한다.
예를 들어, A라는 제어 모듈과 A가 직접 호출하는 하위 모듈들을 함께 묶어 ‘클러스터 A’라 부르고, 이 집합을 통합·검증한 뒤 다른 클러스터들과 점차 합쳐가는 식으로 전체 시스템을 완성한다.
[문제76] 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
파일의 구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 크게 순차,( ),해싱으로 구분한다.( ) 파일 구조는〈값, 주소〉쌍으로 구성되는 데이터 구조를 활용하여 데이터에 접근하는 방식으로, 자기 디스크에서 주로 활용된다.
순차(Sequential) 파일: 레코드를 물리적 순서에 따라 저장·접근하며, 검색 시에도 순차 탐색만 수행해 구현은 단순하지만 속도는 상대적으로 느린 구조이다.
색인(Indexed) 파일: 별도의 (키,주소) 색인을 관리해 레코드를 빠르게 찾지만, 삽입·삭제 시 인덱스 갱신이 필요해 추가 관리 비용이 드는 구조이다.
해싱(Hashed) 파일: 해시 함수를 이용해 키를 곧바로 물리적 주소로 변환해 접근 속도가 빠르지만, 충돌 처리로 인해 구현이 복잡할 수 있는 구조이다.
[문제77] 다음 테스트 케이스를 참조하여 괄호에 들어갈 테스트 케이스의 구성 요소를〈보기〉에서 찾아 쓰시오.

① 테스트 조건: 테스트가 시작되기 전에 만족되어야 할 전제나 조건을 나타내므로 테스트 조건에 해당한다.
② 테스트 데이터: 실제로 입력되는 값(아이디, 비밀번호 등)이므로 테스트 데이터에 해당한다.
③ 예상 결과: 테스트 수행 후 기대되는 결과이므로 예상 결과에 해당한다. 정답이 아닌 선지 중 '성공/실패 기준'은 단순히 로그인 성공이나 실패와 같은 결과가 아닌 “미리 정해둔 비밀번호와 입력값이 일치하지 않는 경우, 로그인 실패 처리로 간주한다.”와 같이, 어떤 조건(비밀번호 불일치)에 해당하면 실패 처리가 된다는 분명한 기준을 미리 정의해 두는 것이다.
[문제78] UML(Unified Modeling 山nguage)에 관한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
( ) 다이어그램은 UML 다이어그램 중 객체(Object)들을 ( )로 추상화하여 표현하는 다이어그램으로 대표적인 구조적 다이어그램이다. ( )는 각각의 객체들이 갖는 속성과 메소드를 표현한 것으로 3개의 구획으로 나눠 이름, 속성, 메소드를 표기한다.
[문제79] 0SI 7 Layer 대한 다음 설명에서 각 번호(①~③)에 들어갈 알맞은 계층(Layer)을 쓰시오.
0SI 7 Layer는 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)이다.
① - 물리적으로 연결된 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 연결 설정, 데이터 전송, 오류 제어 등의 기능을 수행한다.
② - 개방 시스템들 간의 네트워크 연결을 관리하며, 경로 제어, 패킷 교환, 트래픽 제어 등의 기능을 수행한다.
③ - 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층으로, 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 등의 기능을 수행한다.
① 데이터링크 계층: 문제의 지문에서 말하는 “물리적으로 연결된 두 개의 인접한 개방 시스템들”이란, 우리가 흔히 접하는 공유기와 PC, 혹은 스위치와 PC, 라우터와 라우터처럼 직접 물리적인 연결(유선/무선)이 이루어진 장비들 간의 통신을 말한다.
② 네트워크 계층: 데이터 링크 계층이 "공유기 ↔ 내 PC"처럼 바로 옆 장비 간의 연결을 다룬다면, 네트워크 계층은 "내 PC ↔ 구글 서버"처럼 전 세계 어디에 있든 목적지까지 데이터가 어떻게 가는지를 결정해주는 계층이다.
③ 표현 계층: 표현 계층은 서로 다른 시스템이 서로 이해할 수 있는 방식으로 데이터를 변환해주는 계층이며, 예를 들어 인코딩 변환, 암호화/복호화, 압축/해제 등이 이 계층에서 이루어진다. 즉, 데이터를 ‘표현’하는 방식을 서로 맞춰주는 계층이다.
[문제80] 보안과 관련된 다음 설명에 해당하는 용어를 쓰시오.
1974년 IBM이 개발하고 1975년 NBS에 의해 미국의 국가 표준으로 발표된 암호화 알고리즘으로, 블록 크기는 64비트, 키 길이는 56비트이며, 16회의 라운드를 수행한다. 컴퓨터 기술이 발달함에 따라 해독이 쉬워지면서 미국의 국가 표준이 2001년 AES로 대체되었다.
[문제81] 테스트 기법 중 그래프를 활용하여 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법을〈보기〉에서 찾아 쓰시오.
〈보기〉
• Equivalence Partition • Boundary Value Analysis • Condition Test • Cause-Effect Graph
• Error Guess • Comparison Test • Base Path Test • Loop Test • Data Flow Test
[문제82]
Windows, MacOS 등에서 사용하는 인터페이스로, 사용자가 명령어를 직접 입력하지 않고 키보드와 마우스 등을 이용하여 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 사용자 인터페이스를 쓰시오.
[문제83] UML의 관계(Relationships)에 관한 다음 설명에서 각 번호(①, ②)에 들어갈 알맞는 용어를〈보기〉에서 찾아 쓰시오.
관계(Relationships)는 사물과 사물 사이의 연관성을 표현하는 것이다.
① - 하나의 사물이 다른 사물에 포함되어 있는 관계로, 전체와 부분으로 구분되어지며 서로 독립적이다.
② - 상위 모듈이 하위 모듈보다 더 일반적인 개념을 가지고 있으며, 하위 모듈이 상위 모듈보다 더 구체적인 개념을 가진다.
〈보기〉
• Association • Aggregation • Composition
• Generalization • Dependency • Realization
'Generalization(일반화) 관계'는 예를 들면,‘자동차’가 더 일반적인 개념이고, ‘트럭’은 ‘자동차’를 상속받아 구체화된 개념이다. 즉, 상위 개념(부모)인 ‘자동차’을 상속해 더 구체적인 하위 개념(자식)인 ‘트럭’이 만들어지는 관계를 의미한다.
[문제84] 다음 설명의 RAID에 해당하는 레벨(Level)을 답 란의 괄호 안에 숫자로 쓰시오.
여러 개의 하드디스크로 디스크 배열을 구성하고, 파일을 구성하는 데이터 블록들을 서로 다른 디스크들에 분산 저장할 경우 그 블록들을 여러 디스크에서 동시에 읽고 쓸 수 있으므로 디스크의 속도가 매우 향상되는데, 이 기술을 RAID 라고 한다. RAID 방식 중 패리티가 없는 스트리핑된 2개 이상의 디스크를 병렬로 연결하여 구성하는 이 방식은 디스크의 개수가 증가할수록 입·출력 속도 및 저장 용량이 배로 증가하지만, 하나의 디스크만 손상되어도 전체 데이터가 유실되는 문제가 발생한다.
'패리티'란 오류복구 정보를 의미하는데, RAID 0 방식은 패리티가 없어서 디스크 중 하나라도 손상되면 전체 데이터를 복구할 수 없는 단점이 있다.
※패리티를 사용하는 방식
RAID 5: 데이터를 여러 디스크에 스트라이핑하고, 단일 패리티를 분산 저장하여 한 디스크가 고장 나도 복구 가능하다.
RAID 6: RAID 5 방식에서 패리티 블록을 2개로 늘린 형태로, 동시에 2개 디스크가 고장 나도 복구 가능한 방식이다.
[문제85] 다음 데이터베이스에 대한 설명에 해당하는 DB 트랜잭션 연산을〈보기〉에서 찾아 쓰시오.
DBMS는 데이터베이스에 치명적인 손실이 발생했을 때 이를 복구하기 위해 사용되는 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 기록한 로그를 생성한다.
• ( ① ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작(start)과 완료(commit)에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산이다.
• ( ② ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 ‘start’는 있지만 완료를 나타내는 ‘commit’ 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경한다.
〈보기〉
• ROLLBACK •UNDO •LOG •COMMIT •REDO • RECOVERY •BACKUP •CHECK
REDO: 이미 커밋된 트랜잭션의 변경 사항을 다시 적용해 DB를 최신 상태로 복구하는 과정이다.
UNDO: 커밋되지 않은 트랜잭션의 변경 사항을 취소하여 작업 전 상태로 되돌리는 과정이다.
[문제86]
데이터의 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 이상(Anomaly)이라고 한다. 이상 중 삭제 이상(Deletion Anomaly)에 대해 간략히 서술하시오.
[문제87] 다음은 Python의 리스트 객체에 속한 메소드들에 대한 설명이다. 각 괄호(①〜③)에 해당하는 메소드의 이름을〈보기〉에서 찾아 쓰시오.
Python에서는 여러 요소들을 한 개의 이름으로 처리할 때 리스트(List)를 사용하며, 각 요소에는 정수, 실수, 문자열 등 다양한 자료형을 섞어 저장할 수 있다. 또한 리스트는 메소드를 활용하여 요소를 추가 및 삭제할 수 있을 뿐만 아니라 정렬하거나 다른 리스트와 병합하는 등의 다양한 작업을 손쉽게 수행할 수 있다.
• ( ① ) : 기존 리스트에 인수의 요소들을 추가하여 확장하는 메소드로, 여러 값을 한 번에 추가할 수 있다.
• ( ② ): 리스트에서 맨 마지막 또는 인수의 값에 해당하는 위치의 요소를 삭제한 후 반환한다.
• ( ③ ) : 리스트에 저장된 각 요소들의 순서를 역순으로 뒤집어 저장하는 메소드이다.
[문제88] 보안 프로토콜에 대한 다음 설명에 해당하는 용어를 영문 약어로 쓰시오.
무선랜 보안에 사용된 웹 방식을 보완한 데이터 보안 프로토콜로, 임시 키 무결성 프로토콜이라고도 한다. WEP의 취약성을 보완하기 위해 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷당 키 할당, 키값 재설정 등 키 관리 방식을 개선하였다.
※TMI
TKIP는 WPA(Wi-Fi Protected Access) 도입 초기 단계에 WEP를 대체하기 위해 쓰였지만, 이제는 보안 취약점으로 인해 사실상 사용되지 않는다. 현재는 주로 WPA2(AES 기반의 CCMP)나 WPA3 같은 더 안전한 방식이 표준으로 자리 잡았다.
[문제89] 소스 코드 품질 분석 도구에 대한 다음 설명에서 괄호(①, ②)에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
소스 코드 품질 분석 도구는 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구이다.
• ( ① ) 도구는 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구이다.
• ( ② ) 도구는 소스 코드를 직접 실행하여 프로그램의 동작이나 반응을 추적하고 보고하는 분석 도구로, 프로그램 모니터링 기능이나 스냅샷 생성 기능들을 포함하고 있다.
〈보기〉
• Static Analysis • Running Analysis • Test Execution • Performance
• Dynamic Analysis • Test Control • Test Harness • Test Monitoring
[문제90] 인터페이스 구현 검증 도구에 대한 다음 설명에 해당하는 용어를 영문으로 쓰시오.
Kent Beck과 Erich Gamma 등이 개발한 자바 프로그래밍 언어용 유닛 테스트 프레임워크로, xUnit 계열의 한 종류다. 같은 테스트 코드를 여러 번 작성하지 않게 도와주며, 테스트마다 예상 결과를 기억할 필요가 없는 자동화된 해법을 제공한다는 특징이 있다.
[문제91] 사용자 인터페이스(UI)에 대한 다음 설명에 해당하는 용어를 영문 약어로 쓰시오.
사용자의 자연스러운 움직임을 통해 시스템과 상호작용하는 사용자 인터페이스(UI)로, 키보드나 마우스와 같이 조작을 배워야 하는 인공 제어 장치를 사용하는 인터페이스와 구분하기 위해 ‘자연스러운’이라는 표현을 사용한다. 시리(Siri), 빅스비(Bixby) 등과 같은 음성 비서에게 사용하는 자연어 명령이나 휴대폰이나 태블릿에서의 터치 등이 여기에 해당한다.
[문제92] 다음 중 블랙 박스 테스트 기법에 해당하는 것을 모두 골라 기호(ㄱ~ㅈ)로 쓰시오.
ㄱ.Base Path Testing ㄴ.Condition Testing ㄷ.Boundary Value Analysis
ㄹ.Equivalence Partitioning ㅁ.Data Flow Testing ㅂ.Cause-Effect Graph
ㅅ.Branch Coverage Testing ㅇ.Statement Coverage Testing ㅈ.Boundary Division Analysis
정답이 아닌 선지 중 'Boundary Division Analysis'는 직역하면 '경계 영역 분석'에 해당하는데 '경계 영역 분석'에 해당하는데, 이 용어는 공식적으로 정립된 블랙박스 테스트 기법으로 분류되지 않는다.
[문제93] 정보 보호에 대한 다음 설명에 해당하는 용어를 영문 약어로 쓰시오.
정보 자산을 안전하게 보호하기 위한 보호 절차와 대책으로, 정보보호 관리 체계라고 한다. 조직에 맞는 정보보호 정책을 수립하고, 위험에 상시 대응하는 여러 보안 대책을 통합 관리한다. 공공 부문과 민간 기업 부문에서 이것을 평가하고 인증하는 사업을 한국인터넷진흥원(KISA)에서 운영중이다.
영어권에서 정보 보호 영역을 통칭하는 용어로‘Information Security’가 널리 쓰인다. “Information Protection”이라고도 표현할 수 있지만, 보안 분야 표준 용어·표준 문서 대부분이 ‘Security’라는 단어를 사용해 왔기 때문에 ‘Protect’ 대신 ‘Security’를 쓰는 관례가 굳어졌다. 또한 국제 표준(예: ISO/IEC)에서도 Information Security Management System이라는 이름을 사용하므로, 국내에서도 이에 맞춰 ISMS라고 표기한다.
[문제94] 키(Key)에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.
• 슈퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션을 구성하는 모든 튜플에대해( ① )을 만족한다.
• 후보키(Candidate Key)는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로,( ① )과 ( ② )을 만족하는 특징이 있다.
유일성: 키의 속성들이 모든 튜플을 고유하게 식별할 수 있음을 의미한다. 즉, 동일한 키 값이 테이블 내에서 중복되지 않아야 한다는 성질이다.
최소성: 유일성을 만족하는 키의 집합에서 어느 한 속성만 제거해도 더 이상 유일성을 보장할 수 없어야 한다. 즉, 불필요한 속성이 없어야 하는 성질이다.
[문제95] 보안 위협에 대한 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
목표 조직이 자주 방문하는 웹 사이트를 사전에 감염시켜 목표 조직의 일원이 웹 사이트에 방문했을 때 악성 코드에 감염되게 한다. 이후에는 감염된 PC를 기반으로 조직의 중요 시스템에 접근하거나 불능으로 만드는 등의 영향력을 행사하는 웹 기반 공격이다.
〈보기〉
• Pharming • Drive-by Download • Watering Hole • Business SCAM
• Phishing • Cyber Kill Chain • Ransomware • Sniffing
[문제96] 개발 단계에 따른 애플리케이션 테스트에 대한 다음 V-모델에서 괄호(①~④)에 들어갈 알맞은 테스트를 쓰시오.

① 단위 테스트: 구현 단계에서 작성된 개별 코드와 모듈은 단위(Unit) 테스트로 올바르게 동작하는지 가장 먼저 점검한다.
② 통합 테스트: 설계 단계에서 만들어진 모듈 간 설계는 통합(Integration) 테스트로 상호 작용과 인터페이스를 검증한다.
③ 시스템 테스트: 분석 단계에서 정의된 기능과 요건은 시스템(System) 테스트를 통해 전체 기능이 정상 동작하는지 확인한다.
④ 인수 테스트: 요구사항 단계에서 수립된 사용자 요구는 최종적으로 인수(Acceptance) 테스트로 검증되어 실제 요구와 일치하는지 확인한다.
[문제97] 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
• ( )은 관계 데이터의 연산을 표현하는 방법으로, 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 술어 해석(Predicate Calculus)에 기반을 두고 관계 데이터베이스를 위해 제안했다.
• 원하는 정보가 무엇이라는 것만 정의하는 비절 차적 특성을 지니며, 원하는 정보를 정의할 때 계산 수식을 사용한다.
• 튜플 해석식을 사용하는 튜플( )과 도메인해석식을 사용하는 도메인( )으로구분된다.
구체적으로는 튜플 해석식을 사용하는 ‘튜플 관계 해석(TRC)’과 도메인 해석식을 사용하는 ‘도메인 관계 해석(DRC)’으로 구분된다.
[문제98] 암호화 알고리즘에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• 암호화 알고리즘은 패스워드, 주민번호, 은행계좌와 같은 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미한다.
• 스위스의 라이(Lai)와 메시(Messey)는 1990년 PES를 발표하고, 이후 이를 개선한 IPES를 발표하였다. IPES는 128비트의 Key를 사용하여 64비트 블록을 암호화하는 알고리즘이며 현재는 ( ① )라고 불린다.
• ( ② )은 국가 안전 보장국(NSA)에서 개발한 암호화 알고리즘으로, 클리퍼 칩(Clipper Chip)이라는 IC 칩에 내장되어있다. 80비트의 Key를 사용하여 64비트 블록을 암호화하며, 주로 전화기와 같은 음성 통신 장비에 삽입되어 음성 데이터를 암호화한다.
클리퍼 칩: 미국 정부가 1990년대 음성 통신을 암호화하기 위해 개발한 칩이다. Skipjack 알고리즘과 정부가 해독 키를 보관하는 ‘키 에스크로(Key Escrow)’ 방식을 사용했다.IC칩: 집적회로(Integrated Circuit) 기반의 반도체 소자로, 트랜지스터나 저항 등을 단일 칩에 모아 CPU·메모리 등 다양한 전자 기능을 구현한다.
[문제99] 네트워크 보안에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 영문 약어로 쓰시오.
• ( )은 인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션이다.
• 암호화된 규격을 통해 인터넷망을 전용선의 사설망을 구축한 것처럼 이용하므로 비용 부담을 줄일 수 있다.
• ( )을 사용하면 두 장치 및 네트워크 사이에 암호화된 보안 터널이 생성되며, 터널에 사용되는 프로토콜에 따라 SSL ( )과 IPSec ( )으로 불린다.
※TMI
SSL VPN: HTTPS(443) 프로토콜을 활용해 웹 브라우저만 있으면 접속 가능하며, 방화벽 호환성이 좋아 원격근무 등에 널리 쓰인다.
IPSec VPN: 네트워크 계층에서 암호화 터널을 구성해 높은 보안을 제공한다. 양단 장비 간 설정이 필요하며 표준화가 잘 되어 있다.
[문제100] 객체지향에 대한 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
• 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 객체지향 설계 원칙 중의 하나이다.
• 예를 들어 프린터, 팩스, 복사 기능을 가진 복합기의 경우 3가지 기능을 모두 가진 범용 인터페이스보다는 프린터 인터페이스, 팩스 인터페이스, 복사 인터페이스로 분리함으로써 하나의 기능 변경으로 인해 다른 기능이 영향을 받지 않도록 해야 한다.
〈보기〉
•SRP •SOLID •OCP •LSP •ISP •DIP •OTP •PNP
SRP (Single Responsibility Principle): 단일 책임 원칙으로, 한 클래스는 한 기능만 담당해 변경 이유를 최소화한다.
DIP (Dependency Inversion Principle): 의존성 역전 원칙으로, 상위 코드(주요 기능)가 하위 구현 세부사항 대신, 추상 인터페이스에 의존하도록 설계해 결합도를 낮추고 코드 변경을 쉽게 만드는 원칙이다.
SOLID: 객체지향 5원칙(SRP, OCP, LSP, ISP, DIP)을 총칭한다.
OCP (Open-Closed Principle): 개방-폐쇄 원칙으로, 확장에는 열려 있고, 수정에는 닫혀 있어야 한다.
LSP (Liskov Substitution Principle): 리스코프 치환 원칙으로, 자식 클래스가 부모 클래스를 문제없이 대체 가능해야 한다.
ISP (Interface Segregation Principle): 인터페이스 분리 원칙으로, 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다.
OTP (One-Time Password): 한 번만 유효한 비밀번호를 생성하여 재사용을 막아 보안을 강화한다.
PNP (Plug and Play): 새 하드웨어를 자동 설정해 추가 설치 없이 바로 사용하게 하는 개념이다.
[문제101] 애플리케이션 테스트에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 테스트를 쓰시오.
인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법이다.
•( ① ): 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법으로, 실제 업무를 가지고 사용자가 직접 테스트한다.
• ( ② ) : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법으로, 테스트는 통제된 환경에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 기록한다.
① 베타 테스트: 선정된 실제 사용자가 실제 업무 시나리오로 소프트웨어를 사용해 보는 단계로, 보통 개발 현장을 벗어나 다수 사용자 환경에서 실시
② 알파 테스트: 개발사(또는 개발자) 내부 환경에서 한정된 사용자(또는 테스트 전담 팀)가 개발자와 함께 오류·문제점을 확인하며 진행하는 초기 시험 과정
[문제102] 다음 설명에 해당하는 테스트를〈보기〉에서 찾아 쓰시오.
• 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트이다.
• 이미 테스트된 프로그램의 테스팅을 반복하는 것이다.
• 수정한 모듈이나 컴포넌트가 다른 부분에 영향을 미치는지, 오류가 생기지 않았는지 테스트하여 새로운 오류가 발생하지 않음을 보증하기 위해 반복 테스트한다.
〈보기〉
• Integration • Regression • Big Bang • White Box • System • Black Box • Acceptance •Unit
[문제103] 경로 제어 프로토콜(Routing Protocol)에 대한 다음 설명에서 괄호(①~④)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
경로 제어 프로토콜은 크게 자율 시스템 내부의 라우팅에 사용되는 ( ① )와 자율 시스템 간의 라우팅에 사용되는( ② )로구분할수 있다.
( ① )는 소규모 동종 자율 시스템에서 효율적인 RIP와 대규모 자유 시스템에서 많이 사용되는 ( ③ )로 나누어진다. ( ③ )는 링크 상태(Link State)를 실시간으로 반영하여 최단 경로로 라우팅을 지원하는 특징이 있다.
( ④ )는 ( ② )의 단점을 보완하여 만들어진 라우팅 프로토콜로, 처음 연결될 때는 전체 라우팅 테이블을 교환하고, 이후에는 변화된 정보만을 교환한다.
〈보기〉
• BGP • AS •HOP • OSPF • NAT •ISP • EGP • IGP
그 중 'IGP(Interior Gateway Protocol)'는 내부 라우팅 용도로 쓰이며, 일반적인 라우터(가정용 공유기 포함)부터 기업·ISP 내부 라우터까지 다양하게 적용된다. 그리고 'EGP(Exterior Gateway Protocol)'는 서로 다른 자율 시스템(AS) 간의 라우팅을 위한 프로토콜로, 주로 ISP 간 트래픽을 연결하는 대규모 경계 라우터에서 사용된다.
[문제104] 다함수적 종속(Functional Dependency)에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를〈보기〉에서 찾아 기호(ㄱ~ㅇ)로 쓰시오. (단, 테이블〈R〉의 속성 ‘학생’과 ‘학과’의 밑줄은 키 (Key) 임을 의미한다.)

① Full: 성적은 기본키(학생, 학과) 전체에 대해 종속되므로 완전 함수 종속(Full Functional Dependency)
② Partial: 학년은 기본키(학생, 학과) 중 ‘학생’만으로도 식별 가능하므로 부분 함수 종속(Partial Functional Dependency)
③ Transitive: A→B이고 B→C이면 A→C가 되는 관계는 이행적 함수 종속(Transitive Functional Dependency)
참고로 테이블〈R〉에 이행적 함수 종속은 없습니다.
[문제105] 인터넷에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
인터넷이란 TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터통신망이다.
• ( ① ) : 월드 와이드 웹(WWW)에서 HTML 문서를 송수신 하기 위한 표준 프로토콜로, GET과 POST 메소드를 통해 메시지를 주고 받는다.
•( ② ): 다른 문서나 그림으로 이동할 수 있는 연결을 가지고 있는 텍스트를 의미한다.
• ( ③ ) : 인터넷의 표준 문서인 하이퍼텍스트 문서를 만들기 위해 사용하는 언어이다.
〈보기〉
• UDDI • XML • WSDL • Hypertext • DHTML • HTML • SOAP • HTTP
[문제106] 다음의 모듈 관계를 표현한 시스템 구조도를 참고하여 모듈 F의 팬인(Fan-ln)과 팬아웃(Fan-Out)을 구하시오.

[문제107] 관계대수에 대한 다음 설명에서 괄호(①〜⑤)에 들어갈 알맞은 용어를 쓰시오.
관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. 관계대수에 사용되는 연산은 다음과 같다.
• 합집합(UNION)은 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산으로, 사용하는 기호는 ( ① )이다.
• 차집합(DIFFERENCE)은 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산으로, 사용하는 기호는 ( ② )이다.
• 교차곱(CARTESIAN PRODUCT)은 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산으로, 사용하는 기호는( ③ )이다.
• 프로젝트(PROJECT)는 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( ④ )이다.
• 조인(JOIN)은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산으로, 사용하는기호는( ⑤ )이다.
※TMI
'⋈'기호는 보타이(bowtie, 나비넥타이) 라고 읽습니다.
[문제108] 디자인 패턴에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
• ( ① ) 패턴은 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴으로, 기능과 구현을 두 개의 별도 클래스로 구현한다는 특징이 있다.
• ( ② ) 패턴은 한 객체의 상태가 변화하면 객체에 상속된 다른 객체들에게 변화된 상태를 전달하는 패턴으로, 일대다의 의존성을 정의한다. 주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다.
〈보기〉
• Builder • Factory Method • Adapter • Bridge • Facade • Proxy • Observer • Mediator
① Bridge: TV와 리모컨을 예로 들 수 있다. TV(추상부)의 기능과 리모컨(구현부)의 조작을 분리해, 새로운 TV나 리모컨이 추가되어도 서로 영향을 최소화하며 확장할 수 있도록 구조를 나눈다.
② Observer:유튜브 채널(주체)과 구독자(관찰자)를 떠올리면 쉽다. 채널에서 변화가 생기면 구독자에게 자동으로 알림이 전달되어, 구독자가 변경 사항을 즉시 확인하고 대응할 수 있게 한다.
[문제109] 테스트 기법 중 다음과 같이 ‘평가 점수표’를 미리 정해 놓은 후 각 영역의 경계에 해당하는 입력값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을〈보기〉에서 찾아 쓰시오.

그러나, 여기서 사용된 입력값들이 각 구간의 경계점(-1, 0, 69, 70, 79, 80, 89, 90, 100, 101)에 집중되어 있다는 점이 핵심이다.
[문제110] 다음 설명에 해당하는 알맞은 용어를 쓰시오.
다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션으로, 방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 보안 이벤트를 통합하여 관리함으로써 비용 및 자원을 절약할 수 있는 특징이 있다. 또한 보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립할 수 있다.
"다양한 장비에서 발생하는 로그와 보안 이벤트를 통합해 관리"가 SIEM의 핵심이다.
SIEM을 직역하면 '보안 정보 및 이벤트 관리'이다.
[문제111] 다음 제시된 보기 중 형상 관리 도구에 해당하는 것을 3가지 고르시오.
•OLAP •CVS • Ant • Maven •Git • Jenkins • Spring •SVN
CVS: 오래된 중앙 집중형 버전 관리 도구로, 여러 사람이 동시에 코드를 수정하고 이력을 관리할 수 있다.
Git: 분산형 버전 관리 도구로, 각 개발자 PC에 전체 이력을 저장해 오프라인 작업과 병렬 협업이 쉽다.
SVN: CVS 후속으로 널리 쓰인 중앙 집중형 버전 관리 도구로, 폴더 단위 이력 추적이 용이하다.
나머지 도구들은 빌드 도구(Ant, Maven), CI/CD(Jenkins), 프레임워크(Spring), 데이터 분석(OLAP) 등에 해당한다.
[문제112] 보안 및 보안 위협에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
• ( ① )은 칩 설계회사인 ARM(Advanced RISC Machine)에서 개발한 기술로, 하나의 프로세서(Processor) 내에 일반 애플리케이션을 처리하는 일반 구역(Normal World)과 보안이 필요한 애플리케이션을 처리하는 보안 구역(Secure World)으로 분할하여 관리하는 하드웨어 기반의 보안 기술이다.
• ( ② )은 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것으로 URL 하이재킹(Hijacking)이라고도 한다. 유명 사이트들의 도메인을 입력할 때 발생할 수 있는 온갖 도메인 이름을 미리 선점해 놓고 이용자가 모르는 사이에 광고 사이 트로 이동하게 만든다.
〈보기〉
• Pharming • Tvishing • Trustzone •APT • Typosquatting • Hacktivism
• Watering Hole • Smurfing • Ransomware •CSRF
① Trustzone: 쉽게 예를 들면, "일반 구역과 보안 구역으로 분할하여 신뢰가 보장되는 영역을 보장하는구나! 그래서 'TrustZone'이라는 이름이 붙었구나!" 라고 이해하시면 될 것 같습니다.
② Typosquatting: ‘오타(typo)’와 ‘점유(squatting)’를 결합한 용어로, 사용자가 주소를 잘못 입력했을 때 원래 의도한 사이트 대신 공격자가 준비한 사이트로 접속하도록 유도한다는 점에서 이런 이름이 붙었다.
[문제113] 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
( )는 한 번의 로그인으로 개인이 가입한 모든 사이트를 이용할 수 있게 해주는 시스템을 말한다. 개인의 경우, 사이트에 접속하기 위하여 아이디와 패스워드는 물론 이름, 전화번호 등 개인정보를 각 사이트마다 일일이 기록해야 하던 것이 한 번의 작업으로 끝나므로 불편함이 해소되며, 기업에서는 회원에 대한 통합관리가 가능해 마케팅을 극대화시킬 수 있다는 장점이 있다.
[문제114] 스케줄링에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 쓰시오.
• ( ① )는 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다. 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이지만, 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태가 발생될 수 있다.
• ( ② )은 시분할 시스템을 위해 고안된 방식으로, 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당 받지만 각 프로세스는 시간 할당량 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치된다. 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없다.
• ( ③ )는 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법으로, 시분할 시스템에 유용하다. 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가한다.
[문제115] UML에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 쓰시오.
UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어로, 사물, ( ① ), 다이어그램으로 이루어져 있다.
• ( ① )는 사물과 사물 사이의 연관성을 표현하는 것으로, 연관, 집합, 포함, 일반화 등 다양한 형태의 ( ① )가존재한다.
• ( ② )는 UML에 표현되는 사물의 하나로, 객체가 갖는 속성과 동작을 표현한다. 일반적으로 직사각형으로 표현하며, 직사각형 안에 이름, 속성, 동작을 표기한다.
• ( ③ )는 ( ② )와 같은 UML에 표현되는 사물의 하나로, ( ② )나 컴포넌트의 동작을 모아놓은 것이며, 외부적으로 가시화되는 행동을 표현한다. 단독으로 사용되는 경우는 없으며, ( ③ ) 구현을 위한 ( ② )또는컴포넌트와 함께사용된다.
요약하자면 아래와 같습니다
관계(Relationship): 연관(Association)·집합(Aggregation)·포함(Composition)·일반화(Generalization) 등을 통틀어 나타냄
클래스(Class): 객체의 이름, 속성, 동작을 직사각형에 표현하는 사물
인터페이스(Interface): 클래스나 컴포넌트가 제공하는 동작(메서드) 집합으로, 외부에 가시적 행위를 정의하고 단독으로 쓰이지 않는 사물
[문제116] 다음 E-R 다이어그램을 참고하여 괄호(①~⑤)의 설명에 적합한 요소를 찾아 기호(ㄱ~ㅁ)로 쓰시오.

전형적으로는 '속성'을 원(or타원)으로 표현하지만 어째서인지 사각형으로 표현하는데 문제 복원 과정에서 발생한 오류인지, 다른 표기법을 사용한것인지 모르겠다.
[문제117]
클라이언트와 서버 간 자바스크립트 및 XML을 비동기 방식으로 처리하며, 전체 페이지를 새로 고치지 않고도 웹페이지 일부 영역만을 업데이트할 수 있도록 하는 기술을 의미하는 용어를 쓰시오.
AJAX는 웹페이지를 통째로 새로고침하지 않고, 필요한 부분만 서버와 비동기로 주고받아 업데이트하는 기술이다. 이로써 빠르고 부드러운 사용자 경험을 제공한다.
※TMI
XML은 구조가 복잡하고 파싱(분석·추출) 비용이 커 점차 사용이 줄었다. 대신 간결하고 빠른 JSON이 널리 쓰이는데, 구조가 단순해 읽고 쓰기가 편하기 때문이다.
[문제118] 데이터 교환 방식에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
• ( ① ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
• ( ② ): 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식
가상 회선 방식 (Virtual Circuit): 가상(virtual) 회선(circuit) 방식은 원래 전화망의 회선 교환 방식을 모태로 한다. 전화망에서는 통화를 시작하기 전에 수신자와 연결을 미리 설정해야만 목소리를 전달할 수 있었는데, 이 개념이 데이터 통신에 논리화(가상화) 되어 적용된 것이 바로 가상 회선 방식이다. 예를 들어, TCP 프로토콜의 3-Way Handshake 과정이 대표적인 사례로, 데이터를 전송하기 전에 먼저 논리적 연결을 확립해 전송 경로와 순서를 보장한다.
데이터그램 방식 (Datagram): 데이터그램(datagram) 방식은 전보(telegraph) 방식을 떠올리면 이해하기 쉽다. 전보는 메시지 하나하나가 독립적으로 전송되어, 매번 수신 목적지를 명시해야 하며, 메시지 간 순서나 연결은 보장되지 않는다. 전화와 달리 상대방이 바로 받지 못해도 메시지를 전송할 수 있고, 데이터가 나뉘어 전송되거나 순서가 섞여 도착해도 연결 설정을 거치지 않으므로 빠른 송신이 가능하다. 이러한 특징은 UDP 프로토콜에 반영되어 연결 과정 없이 데이터를 신속하게 전송하지만, 순서 보장 등은 제공하지 않는다.
[문제119] 다음 설명에 해당하는 알맞은 용어를 영문 3글자로 쓰시오.
• 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 이를 이용한 응용 프로그램이다.
• 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신할 수 있다.
• 키(key)를 통한 인증 방법을 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 한다.
• 기본적으로는 22번 포트를 사용한다.
※TMI
이와 유사한 역할을 하는 Telnet은 23번 포트를 통해 원격 접속을 지원하지만, 통신을 암호화하지 않아 보안에 취약하다. 따라서 현재는 SSH가 이를 대체하여 널리 사용된다.
[문제120] 멀웨어(Malware)에 대한 다음 설명에서 괄호(①〜③)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
• ( ① ) : 윈도우나 응용 프로그램의 취약점 또는 E-mail 등을 통해 전파되며, ( ③ )과(와) 같이 자기복제가 가능하며 네트워크를 통해 스스로 전파가 가능하다.
• ( ② ) : 정상적인 응용 프로그램에 포함되어 실행되는 악성코드로, 정상적인 응용 프로그램으로 위장하고 있다가 활성화되면 공격자는 이를 이용하여 사용자의 컴퓨터를 조종할 수 있게 된다.
• ( ③ ) : 정상 파일을 감염시키며, 자기복제가 가능하다. 파일을 통해 감염되며 네트워크를 통해 스스로 전파되지는 못한다.
〈보기〉
•웜 • 바이러스 • 트로이 목마
※부연설명
① 웜: 웜은 특정 파일에 붙지 않고 스스로 실행되며, 네트워크 취약점을 찾아 자동으로 복제·전파한다. 이 때문에 사용자의 조작 없이도 다른 컴퓨터로 확산될 수 있다.
③ 바이러스: 바이러스는 다른 실행 파일에 기생하고, 스스로 네트워크를 통한 전파 기능이 없어 사용자가 감염된 파일을 실행하거나 복사해야 확산된다.
[문제121] 다음 설명에 해당하는 알맞은 용어를 쓰시오.
IP(Intemet Protocol)의 주요 구성원 중 하나로, OSI 계층 모델의 네트워크 계층에 속한다. 네트워크 컴퓨터의 운영체제에서 오류 메시지를 수신하거나, 전송 경로를 변경하는 등 오류 처리를 위한 제어 메시지를 주로 취급한다. 관련된 도구로 traceroute, ping이 있으며, ping of death와 같은 네트워크 공격 기법에 활용되기도 한다.
※TMI
traceroute: 목적지 서버까지 거치는 경로와 지연 시간을 단계별로 확인하기 위해 ICMP 메시지를 활용하는 명령어로, 네트워크 장애 원인을 파악하거나 특정 구간에서의 지연 문제를 진단하는 데 실무에서 자주 활용된다.
ping: 서버나 호스트와의 연결 상태 및 응답 속도를 ICMP 에코 요청과 응답으로 간단히 점검하는 명령어로, 서비스 정상 동작 여부를 빠르게 확인하거나 게임 서버 지연을 측정하는 등 다양한 환경에서 사용된다.
[문제122] 다음 설명에서 괄호에 들어갈 알맞은 디자인 패턴을 아래에서 찾아 쓰시오.

( )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하는 패턴에 속하며, 대리자라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고, 외부에서는 객체의 세부적인 내용을 숨기는 역할을 한다.
※TMI
"대리자라는 이름으로도 불린다."만 제외한다면 Facade 패턴에 해당하기도 한다. Facade와 Proxy는 모두 ‘복잡한 시스템을 단순화하거나 내부 구조를 감추는’ 구조 패턴에 속하기 때문에, “복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하는 패턴”이라는 설명만으로는 Facade인지 Proxy인지 단정하기 어렵다.
Facade: 여러 복잡한 하위 시스템을 ‘단일 인터페이스’로 간단히 감싸서 제공한다는 점이 핵심
Proxy: 실제 객체 대신 ‘대리 객체(Proxy 객체)’가 요청을 받아 처리하거나 접근을 제어한다는 점이 핵심
[문제123] 릴레이션을 구성하는 용어들에 대한 다음 설명에서 괄호(①-③)에 들어갈 알맞은 답을〈보기〉에서 찾아 쓰시오.
• ( ① ) : 릴레이션을 구성하는 각각의 행을 의미하며, 파일 구조에서는 레코드에 해당함
• ( ② ) : 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 가진 것으로, 실제 값을 가진 튜플을 의미함
•( ③ ): 튜플의 개수를 의미함
〈보기〉
•도메인 •차수 •속성 •튜플 •디그리 • 카디널리티 • 릴레이션 스키마 • 릴레이션 인스턴스
[문제124] 스키마에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 답을〈보기〉에서 찾아 쓰시오.
• ( ① ) 스키마는 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스이다.
• ( ② ) 스키마는 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
• ( ③ ) 스키마는 시용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.
〈보기〉
•외부 •내부 •개념
개념 스키마: 데이터베이스 전체의 논리적 구조를 정의하며, 조직이 필요로 하는 모든 데이터를 종합적으로 나타낸다.
내부 스키마: 물리적으로 데이터가 어떻게 저장·배치되는지 정의하며, 레코드 형식과 저장 구조 등을 다룬다.
외부 스키마: 사용자나 응용 프로그램별로 필요한 데이터만 골라 볼 수 있도록, 맞춤형 논리 구조를 제공한다.
[문제125] 다음은 화이트박스 테스트의 프로그램 제어흐름이다. 다음의 순서도를 참고하여 분기 커버리지로 구성할 테스트 케이스를 작성하시오.

1→2→3→4→5→6→7
1→2→4→5→6→1
※두 경로 모두 작성해야 정답
문제의 순서도에서는 2번, 6번이 '분기(Branch)'이므로 YES와 NO를 최소 1회씩은 수행되도록 테스트 케이스를 작성한다.
[문제126] 화이트박스 테스트의 검증 기준에 대한 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
테스트 케이스를 소스 코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 설계한다.
〈보기〉
• 문장 커버리지 • 분기 커버리지 • 조건 커버리지 • 분기/조건 커버리지
예를 들면, if(age > 18 && hasTicket) 조건문이 있을 때, 조건 커버리지를 만족하려면 'age > 18 → True, hasTicket → False'인 조건과 'age > 18 → False, hasTicket → True'인 조건을 모두 검사해야한다.
문장 커버리지(Statement Coverage): 코드 안에 등장하는 모든 실행 문장을 최소 한 번씩 실행해 보는 테스트 기법이다. 예를 들어, if 블록 안에 있는 문장과 바깥 문장이 모두 실행되면 문장 커버리지를 달성한 것이다.
분기 커버리지(Branch Coverage): 조건문(if-else, switch 등)의 각 분기(참·거짓, 각 case 등)를 최소 한 번씩 실행하도록 테스트하는 기법이다. 예를 들면, if(age > 18 && hasTicket) 조건문이 있을 때, 조건문이 True일 때와 False일 때를 모두 검사해야한다. 즉, 예시 코드로 분기 커버리지를 만족하려면 'age > 18 → True, hasTicket → True'인 조건과 'age > 18 → True, hasTicket → False(또는 age > 18 → False, hasTicket → True)'인 조건을 모두 검사해야한다.
분기/조건 커버리지 (Branch/Condition Coverage): 분기 커버리지를 충족함과 동시에, 조건식 내부의 각 논리식(age > 18, hasTicket)이 True/False를 모두 한 번 이상 만족하도록 테스트하는 기법이다. 예를 들면, if(age > 18 && hasTicket) 조건문이 있을 때, 'age > 18 → True, hasTicket → True', 'age > 18 → False, hasTicket → False', 'age > 18 → True, hasTicket → False', 'age > 18 → False, hasTicket → True'를 모두 검사해야한다. 즉, 분기 커버리지와 조건 커버리지를 모두 만족 해야 한다는 것이다.
[문제127]
소프트웨어 데이터의 비정상적인 수정이 감지되면 소프트웨어를 오작동하게 만들어 악용을 방지하는 기술이다. 해시 함수, 핑거 프린트, 워터마킹 등의 보안 요소를 생성하여 소프트웨어에 삽입하고, 실행코드를 난독화하며, 실행 시 원본 비교 및 데이터 확인을 수행함으로써 소프트웨어를 보호하는 이 기술을 가리키는 용어를 쓰시오.
※TMI
해시 함수(Hash Function): 입력 데이터를 일정 길이의 해시 값으로 변환하는 수학적 알고리즘이다. 파일 변조 감지와 무결성 검증에 자주 활용된다.
핑거 프린트(Fingerprint): 특정 사용자나 구매 이력 등을 추적하기 위해 각 디지털 복제본마다 고유 식별 정보를 삽입하는 기법이다. 유출 사고 시, 어느 사용자가 배포했는지 판별할 수 있다.
워터마킹(Watermarking): 디지털 파일에 저작권이나 상표 등의 정보를 특정 방식으로 숨겨 넣는 기법이다. 위·변조 여부나 불법 복제를 판별하고, 정당한 소유 관계를 표시할 수 있다.
[문제128] 다음은 데이터베이스 구축까지의 과정을 나열한 것이다. 괄호(①~®)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.

[문제129] 디자인 패턴에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 패턴을〈보기〉에서 찾아 쓰시오.
• ( ① ) : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수 없는 패턴으로, 불필요한 메모리 낭비를 최소화 할 수 있음
• ( ② ): 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도로 구성함으로써, 클래스를 수정하지 않고도 새로운 연산의 추가가 가능함

① 싱글톤(Singleton): 하나의 객체만 생성해 모든 곳에서 공유하며 메모리 낭비를 최소화 한다.
② 방문자(Visitor): 클래스 구조(데이터)와 처리 로직(연산)을 분리하여, 클래스를 수정하지 않고도 새로운 연산을 쉽게 추가할 수 있다.
※TMI
②번 정답을 '브리지(Bridge)'패턴으로 오해할 수 있는데, 브리지 패턴은 추상화와 구현을 분리해 서로 독립적으로 확장할 수 있도록 하는 구조 패턴입니다. 반면, 방문자 패턴은 데이터 구조와 연산을 분리해 기존 클래스를 수정하지 않고도 새로운 연산을 쉽게 추가할 수 있게 해줍니다. 문제의 “클래스 수정 없이 연산 추가”라는 특징은 방문자 패턴에 해당합니다.
[문제130] 다음 설명에서 괄호(①~⑤)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
전송 오류의 발생에는 감쇠, 지연 왜곡, 잡음 등 다양한 원인이 있으며, 이러한 오류를 검출하고 수정하는 것으로 알려진 대표적인 방식。1( ① ) 코드 방식이다.
( ① ) = 방식은 하나의 데이터 단위에 ( ④ ) 비트를 추가하여 오류를 검출하여 교정이 가능한 코드로, 2bit의 오류를 검출할 수 있으며 lbit의 오류를 교정한다. 데이터 비트 외에 잉여 비트가 많이 필요하다는 단점이 있다.
( ① ) 코드 방식은 수신측에서 오류를 정정하는 ( ② )에 해당한다. ( ② )는 데이터 전송 과정에서 오류가 발생하면 송신측에 재전송을 요구하는 ( ③ )와는 달리 재전송 요구 없이 스스로 수정하기 때문에 연속적인 데이터 전송이 가능하다.
( ③ )는 ( ④ ) 검사, ( ⑤ ) 등을 통해 오류를 검출하고 ARQ(Automatic Repeat reQuest)로 오류를 제어한다.
( ④ ) 검사는 오류 검사를 위해 데이터 비트 외에 lbit의 체크 비트를 추가하는 것으로 lbit의 오류만 검출할 수 있다. 1의 개수에 따라 짝수 ( ④ )와 홀수 ( ④ )로 나뉜다.
( ⑤ )는 다항식 코드를 사용하여 오류를 검출하는 방식이다. 동기식 전송에서 주로 사용되며, HDLC 프레임의 FCS(프레임 검사 순서 필드)에 사용되는 방식이다. 집단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용한다.
〈보기〉
•NAK •CRC •FEC •BCD • Parity • Hamming •MD5 •BEC
① Hamming: 한 데이터 단위에 추가 비트를 두어 2비트 오류 검출, 1비트 오류 정정이 가능한 대표적인 에러 정정 코드
② FEC(Forward Error Correction): 송신 측에 재전송 요구 없이 수신 측에서 오류를 자체적으로 정정할 수 있어 연속 전송이 가능하다. 오류가 발생해도 역방향으로 데이터를 재요청(백워드)하지 않고, 수신 측이 미리 수신된 정보만으로 오류를 정정하며 계속 전송을 이어나가는 방식이기 때문에 Forward(앞으로 진행되는 전송) Error Correction(오류 정정)이라 부르는 것이다.
③ BEC(Backward Error Correction): 오류 검출 후 ARQ(Automatic Repeat reQuest) 방식으로 재전송을 요구해 오류를 정정하는 기법
④ Parity(패리티) 검사: 패리티 검사는 전송할 데이터에 ‘체크 비트’ 하나를 추가해, 모든 비트 중 1의 개수를 짝수(또는 홀수)로 맞추는 방법이다. 수신 측에서도 같은 규칙으로 1의 개수를 확인해 다르면 오류라고 판단한다.
⑤ CRC(Cyclic Redundancy Check): 다항식 코드를 이용해 오류를 검출하며, 전송 계층(HDLC 등)에서 주로 사용되는 검출률 높은 방식
[문제131] HDLC(High-level Data Link Control)에 대한 다음 설명에서 괄호(①~⑤)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.
HDLC는 비트(Bit) 위주의 프로토콜로, 각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트 열을 삽입하여 전송한다. 포인트 투 포인트(Point-to-Point) 및 멀티 포인트(Multi-Point), 루프(Loop) 등 다양한 데이터 링크 형태에 동일하게 적용이 가능하다는 특징이 있다.
HDLC의 프레임 구조는 헤더, 텍스트, 트레일러로 구분되며, 헤더는 다시 플래그, 주소부, 제어부로 구분할 수 있는데, 제어부에는 프레임의 종류를 식별하기 위해 사용한다. 제어부의 첫 번째, 두 번째 비트를 사용하여 ( ① ) 프레임, ( ② ) 프레임, ( ③ ) 프레임으로 구분한다.
( ① ) 프레임은 I 프레임으로 불리며, 제어부가 ‘0’으로 시작하는 프레임으로, 사용자 데이터를 전달하거나 피기백킹(Piggybacking) 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용된다.
( ② ) 프레임은 S 프레임으로 불리며, 제어부가 ‘10’으로 시작하는 프레임으로, 오류 제어와 흐름 제어를 위해 사용된다.
( ③ ) 프레임은 U 프레임으로 불리며, 제어부가 ‘11’로 시작하는 프레임으로, 링크의 동작 모드 설정과 관리를 한다.
( ③ ) 프레 임에서 설정할 수 있는 동작 모드에는 표준 응답 모드, ( ④ ), ( ⑤ )의 세 가지로 구분된다.
표준 응답 모드는 반이중 통신을 하는 포인트 투 포인트(Point-to-Point) 또는 멀티 포인트(Multi-Point) 불균형 링크 구성에 사용되며, 종국은 주국의 허가(Poll)가 있을 때에만 송신하는 특징이 있다.
( ④ )는 포인트 투 포인트(Point-to-Point) 균형 링크에서 사용되며, 혼합국끼리 허가 없이 언제나 전송할 수 있다.
( ⑤ )는 전이중 통신을 하는 포인트 투 포인트(Point-to-Point) 불균형 링크 구성에 사용되며, 종국은 주국의 허가(Poll) 없이도 송신이 가능하지만 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능하다.
〈보기〉
• 비동기 응답 모드 •주소부 •제어부 • ARQ •정보 • 비번호 •감독 •플래그 • 비동기 균형 모드
※부연설명
'비번호(Unnumberd) 프레임'은 전송 제어에 필요한 명령·응답을 수행해 전체 통신 절차를 제어합니다.
'비동기 균형 모드(Asynchronous Balanced Mode)'는 포인트 투 포인트 균형 링크에서 쓰이며, 송수신 양 단말이 동등한 지위에서 전이중 통신을 할 수 있습니다. 서로가 데이터 전송을 자유롭게 시작·응답합니다.
'비동기 응답 모드(Asynchronous Response Mode)'는 불균형 링크 환경에서 ‘주(主)’ 역할 장치가 “데이터 보낼 거 있어?”라며 미리 물어보는 폴(Poll) 절차 없이도, ‘종(從)’ 장치가 스스로 데이터를 전송할 수 있는 방식입니다. 이렇게 ‘주’의 승인을 기다리지 않으므로 전송이 훨씬 유연해집니다.
즉, 비동기 균형 모드(ABM)는 양 노드가 동등한 지위에서 전이중 통신을 수행할 수 있는 반면, 비동기 응답 모드(ARM)는 ‘주(主)’와 ‘종(從)’이 구분된 링크에서 종 장치가 폴(Poll) 없이도 전송 가능하되, 링크 설정과 오류 복구는 주 장치가 담당하는 방식이다.
[문제132] 다음〈보기〉에 나열된 암호화 알고리즘을 대칭키 암호화 알고리즘과 비대칭키 암호화 알고리즘으로 구분하시오.
〈보기〉
•RSA •DES •ARIA •ECC •SEED •AES
• ① 대칭키 암호화 알고리즘:
• ② 비대칭키 암호화 알고리즘:
DES: 56비트 키로 동작하는 초기 대칭키 블록 암호입니다. 현재는 안전성 문제로 3DES나 AES가 주로 사용된다.
ARIA: 국정원·ETRI가 개발한 대칭키 블록 암호로, 128·192·256비트 키를 지원하며 빠른 속도와 높은 안전성을 제공한다.
SEED: KISA가 개발한 한국형 블록 암호이다. 128비트 키를 사용하며, 전자정부 등 국내 분야 표준으로 폭넓게 쓰인다.
AES: NIST가 표준화한 대칭키 블록 암호로, 128·192·256비트 키를 지원하고 전 세계적으로 가장 널리 사용된다.
RSA: 소인수분해의 어려움에 기반한 비대칭키 암호이다. 전자서명·키 분배 등에 자주 활용되며, 키 길이에 따라 보안 수준이 달라진다.
ECC: 타원곡선 이산 로그 문제를 이용한 비대칭키 암호이다. RSA 대비 짧은 키로 동등한 보안을 제공해 모바일 환경 등에서 선호된다.
[문제133] 암호화 알고리즘에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
( )는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 알고리즘으로, 복호화가 거의 불가능한 일방향 함수이다. 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용되며, 종류에는 SHA 시리즈, MD5, N-NASH, SNEFRU 등이 있다.
[문제134] 다음〈처리조건〉에 부합하는〈SQL문〉이 완성되도록 괄호에 적합한 옵션을 쓰시오.
〈처리조건〉
•〈학생〉뷰를 제거한다.
•〈학생〉뷰를 참조하는 모든 데이터도 연쇄적으로 제거한다.
〈SQL문〉
DROP VIEW 학생( );
CASCADE: 테이블·뷰·제약조건 등을 DROP할 때, 이를 참조하는 종속 객체나 데이터까지 연쇄적으로 함께 삭제하는 옵션
※TMI
RESTRICT: 테이블·뷰·제약조건 등을 DROP할 때, 종속 객체가 존재하면 에러가 발생해 삭제를 막는 옵션이다. 즉, 다른 객체가 참조 중이면 먼저 참조 관계를 해제해야 DROP이 가능하다.
[문제135] 애플리케이션 테스트에 관한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
하향식 통합 테스트는 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법이다. 깊이 우선 통합법이나 넓이 우선 통합법을 사용하며, 주요 제어 모듈의 종속 모듈들을 ( ① )으로 대체한다는 특징이 있다.
상향식 통합 테스트는 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다. 하위 모듈들을 클러스터(Cluster)로 결합하며, 상위 모듈에서 데이터의 입·출력을 확인하기 위해 더미 모듈인 ( ② )를 작성한다는특징이 있다.
[문제136] 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
• 인터넷 애플리케이션에서 사용자 인증에 사용되는 표준 인증 방법으로, 공개 API(OpenAPI)로 구현되었다.
• 인터넷 사용자가 웹사이트나 애플리케이션에 비밀번호를 제공하지 않고 자신에게 접근 권한을 부여하여 사용할 수 있다.
• 2010년 ETF에서 1.0이 공식 표준안으로 발표되었다.
〈보기〉
• OpenID • IDEA • OAuth • SSPI • SASL • PEAP • OIDC • JAAS
[문제137] 리눅스 또는 유닉스에서 'a.txt' 파일에 대해 다음〈처리 조건〉과 같이 권한을 부여하고자 한다.〈처리조건〉을 준수하여 식을 완성하시오.
〈처리조건〉
• 사용자에게 읽기, 쓰기, 실행 권한을 부여한다.
• 그룹에게 읽기, 실행 권한을 부여한다.
• 기타 사용자에게 실행 권한을 부여한다.
• 한 줄로 작성하고, 8진법 숫자를 이용한 명령문을 이용한다.
식: ( ) ( ) a.txt
[문제138] UML 다이어그램에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.

( )은(는) UML 정적 모델링의 하나로, 관련있는 객체들을 하나로 묶어 상위 개념으로 추상화한 것이다. 위의 그림과 같이 유스케이스나 클래스 등의 요소들을 그룹화하여 의존 관계를 표현하며, 대규모 시스템에서 주요 요소 간의 종속성을 파악하는 데 사용한다. 시스템의 구조를 간략하게 표현할 수 있고 의존 관계를 명확하게 파악할 수 있어, 불필요한 의존 관계를 제거하거나 간략화함으로써 시스템의 복잡도를 낮추는 곳에도 사용할 수 있다.
패키지(예: Order, Security): 클래스, 인터페이스, 유스케이스 등 다양한 UML 요소를 하나로 묶는 논리적 컨테이너이다. 이름을 통해 기능 영역별로 모듈화하거나, 계층 구조를 만들어 조직적으로 모델링할 수 있다.
의존 관계(Dependency): 어떤 패키지가 다른 패키지의 요소(클래스, 인터페이스 등)에 의존하는 경우를 나타낸다. 예시 그림에서는 Order 패키지가 Security 패키지를 참조해야 하므로, 점선 화살표로 이어져 있다.
«import» 관계: UML에서 import 관계는 다른 패키지의 공개된(public) 요소를 가져와 사용할 수 있음을 의미한다. 즉, Order 패키지 안의 요소들이 Security 패키지에 있는 Credentials, MD5Crypt 등의 공개 멤버를 참조할 수 있게 된다.
패키지 다이어그램은 시스템을 여러 논리적 패키지(모듈)로 나누어 '큰 그림'을 단순화하는 데 사용된다. 이를 통해 세부적인 클래스나 인터페이스 등의 관계를 일일이 표현하기보다는, 각 패키지의 역할과 패키지 간의 의존성을 한눈에 파악할 수 있게 해준다.
[문제139] 테스트 기법 중 다음과 같이 ‘평가 점수표’를 미리 정해 놓은 후 각 영역에 해당하는 입력값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을〈보기〉에서 찾아 쓰시오.

〈보기〉
• Equivalence Partition • Boundary Value Analysis • Equivalence Value • Cause-Effect Graph
• Error Guess • Comparison Test • Base Path Test • Loop Test • Data Flow Test
[문제140] 네트워크에 대한 다음 설명에 해당하는 용어를 쓰시오.
1. 우리말로 번역하면 '네트워크 주소 변환' 이라는 의미의 영문 3글자 약자이다.
2. 1개의 정식 IP 주소에 다량의 가상 사설 IP 주소를 할당 및 연결하는 방식이다.
3. 1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개만으로 제한되는 문제가 있으나, 이 때에는 IP 마스커레이드(Masquerade를 이용하면 된다.
[문제141] 다음 설명에 해당하는 프로토콜을 쓰시오.
자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송방식으로, 셀이라 부르는 53Byte의 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하다. 또한 연속적으로 셀을 보낼 때 다중화를 하지 않고 셀 단위로 동기가 이루어지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다. CBR, VBR의 처리가 가능하며, B-ISDN과 결합하여 서비스를 제공하기도 한다.
예를 들면, 한 대의 컴퓨터가 동시에 화상 통화, 스트리밍 영상 시청, 대용량 파일 다운로드를 하고 있다고 가정했을 때, 만약 전송 방식이 ‘동기적’이라면, 모든 서비스가 정해진 시간표나 규칙에 맞춰야 해서, 실제로 데이터를 보내고 싶어도 다음 전송 순서가 오기 전에는 대기해야 한다. 하지만 ATM은 필요한 순간에 바로 데이터를 53바이트씩 잘라 보낼 수 있어, 미리 정해진 간격에 얽매이지 않는다. 이처럼 각 서비스가 원하는 시점에 자유롭게 전송할 수 있으므로 ‘비동기 전송 모드’라고 부르는 것이고, 덕분에 다양한 종류의 데이터를 동시에 빠르고 안정적으로 처리할 수 있다.
[문제142] 접근 통제(Access Control)에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를〈보기〉에서 찾아 쓰시오.

① MAC: 주체(사용자)와 객체(자원)의 등급을 비교해 접근 권한을 부여
② RBAC: 사용자나 그룹에 ‘역할’을 지정해 그 역할에 따라 권한을 부여
③ DAC: 데이터 소유자가 직접 권한을 지정·제어
[문제143] 다음 설명에 해당하는 프로토콜을 쓰시오.

IaaS(Infrastructure as a Service): 서버, 스토리지, 네트워크 등 가장 기초가 되는 ‘인프라’ 계층만을 제공하기 때문에 ‘Infrastructure’라는 이름이 붙었다. 사용자는 이 인프라 위에서 운영체제부터 필요한 소프트웨어까지 직접 구성하고 관리한다.
PaaS(Platform as a Service): 애플리케이션을 구동하기 위한 운영체제, 미들웨어, 런타임 등의 ‘플랫폼’ 환경을 미리 갖추어 제공하므로 ‘Platform’이라는 이름이 붙었다. 사용자는 애플리케이션(코드)와 데이터만 신경 쓰면 된다.
SaaS(Software as a Service): 소프트웨어(애플리케이션) 전체를 ‘서비스’ 형태로 제공하여 사용자가 설치나 유지보수 걱정 없이 곧바로 활용할 수 있도록 하므로 ‘Software’라는 이름이 붙었다.
※실제 서비스 예시 사례
IaaS: AWS EC2(Amazon Web Services), Microsoft Azure의 Virtual Machines, Google Compute Engine 등이 대표적이며, 서버 인프라, 저장소, 네트워크 자원을 가상화하여 제공하는 서비스
PaaS: Google App Engine, AWS Elastic Beanstalk, Heroku 등이 대표적이며, 개발자가 코드를 배포하면 필요한 인프라와 런타임 환경을 자동으로 설정
SaaS: Google Workspace(Gmail, Docs 등), Microsoft 365(Office 365), Salesforce, Slack 등이 대표적이며, 웹이나 클라우드 기반으로 완성된 소프트웨어를 제공해 사용자는 로그인만 하면 필요한 업무를 바로 수행 가능
[문제144] 다음 설명에 해당하는 프로토콜을 쓰시오.
• 거리 벡터 라우팅 프로토콜이라고도 불리며, 최단 경로 탐색에 Bellman-Ford 알고리즘이 사용된다.
• 소규모 동종의 네트워크 내에서는 효율적이나, 최대 흡(Hop) 수가 제한되므로 대규모 네트워크에서는 사용할 수 없다.
• 일정 시간 동안 라우팅 정보가 갱신되지 않으면 해당 경로를 이상 상태로 간주한다.
※TMI
반면, OSPF(Open Shortest Path First)는 네트워크가 어떻게 연결되어 있는지 전체 지도를 머릿속에 그린 뒤, 그중 가장 짧고 빠른 길을 찾아 데이터를 전달한다. 예를 들어, 각 라우터는 ‘링크 상태 광고(LSA)’라는 정보를 교환하며, 누구와 연결되어 있고 트래픽 상태가 어떠한지를 주고받아 네트워크 전체 구조를 완성한다. 이 과정에서 사용되는 Dijkstra 알고리즘은 출발점에서 다른 모든 지점까지의 최단 경로를 찾아주는 ‘길찾기’ 기법으로, 라우터가 많아도 빠르고 정확한 경로 계산을 가능하게 해준다. 이러한 방식 덕분에 대규모 네트워크에 적합하지만 설정과 관리가 비교적 복잡하다.
[문제145] 관계 연산자에 대한 다음 설명에서 각 번호(①〜④)의 연산자를 의미하는 기호를〈보기〉에서 찾아 쓰시오.

• ① Join :
• ② Project:
• ③ Select:
• ④ Division :
※TMI
'⋈'기호는 보타이(bowtie, 나비넥타이) 라고 읽습니다.
'σ'기호는 시그마(sigma) 라고 읽습니다.
[문제146] 무결성에 대한 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.
무결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다. 무결성 제약 조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 말한다.

위의 두 테이블에서는〈결제〉테이블의 ‘회원’ 속성이〈회원〉테이블의 ‘이름’ 속성을 참고하는 외래키이므로( ) 무결성 제약 조건이 준수되어야 한다.
[문제147] 다음 설명에 해당하는 라우팅 프로토콜을 쓰시오.
• RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜이다.
• 최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.
• 대규모 네트워크에서 많이 사용된다.
• 링크 상태를 실시간으로 반영하여 최단 경로로 라우팅을 지원한다.
[문제148] 다음의 정규화(Normalization) 과정은 어떤 단계의 정규화 과정인지〈보기〉에서 찾아 쓰시오.

[문제149] 다음에 제시된 응집도(Cohesion)를 높은 순에서 낮은 순으로 나열하시오.
ㄱ.기능적 응집도 (Functional Cohesion)
ㄴ.교환적 응집도 (Communication Cohesion)
ㄷ.우연적 응집도(Coincidental Cohesion)
ㄹ.시간적 응집도(Temporal Cohesion)
기능적 응집도 (Functional Cohesion): 하나의 명확한 기능을 수행 (가장 이상적인 구조)
교환적 응집도 (Communication Cohesion): 동일한 데이터나 자료를 사용시간적 응집도 (Temporal Cohesion): 비슷한 시점에 실행되는 기능 묶음 (초기화, 종료 등)
우연적 응집도 (Coincidental Cohesion): 관련 없는 작업들이 우연히 묶임 (가장 낮은 응집도)
[문제150] 다음 설명에 해당하는 디자인 패턴을〈보기〉에서 찾아 쓰시오.
• 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현한다.
• 키트(Kit) 패턴이라고도 불린다.
• 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능하다.
예를 들어, 어떤 웹 애플리케이션이 아이폰에선 iOS 스타일 버튼과 입력창을, 갤럭시에선 안드로이드 스타일을 보여줘야 한다고 가정했을 때, 버튼, 입력창 등을 따로따로 만들고 바꾸는 대신, 기기 종류에 따라 한 세트로 묶어 한 번에 불러올 수 있다면 훨씬 관리가 쉬워진다.
Abstract Factory는 이렇게 '관련된 부품 묶음'을 기기나 상황에 따라 자동으로 바꿔주는 역할을 한다. 바로 이러한 점 때문에 키트(Kit) 패턴이라고도 불린다. 덕분에 코드 수정 없이도 새로운 기기용 화면 구성을 쉽게 추가하거나 바꿀 수 있어 유지보수와 확장에 매우 유리하다.
[문제151] 다음은 조인(Join)에 대한 설명이다. 괄호(①~③)에 들어갈 알맞은 조인의 종류를〈보기〉에서 찾아 쓰시오.
• ( ① )은 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환하는 조인이다.
•( ② )은 ( ① )에서 = 연산자를 사용한 조인으로, 일반적으로 조인이라고 하면 ( ② )을 의미한다.
• ( ② )의 결과 릴레이션의 차수는 첫 번째 릴레이션과 두 번째 릴레이션의 차수를 합한 것이다.
• ( ③ )은 ( ② )의 결과 릴레이션에서 중복된 속성을 제거하여 수행하는 연산, 즉 ( ② )에서 중복 속성 중 하나가 제거된 것이다.
• ( ③ )의 핵심은 두 릴레이션의 공통된 속성을 매개체로 하여 두 릴레이션의 정보를 ‘관계’로 묶어 내는 것 이다.
① 세타 조인: 각종 비교 연산자를 이용해서 조인 조건을 줄 수 있는 포괄적인 의미를 갖으면서 가장 일반적인 형태의 조인이다. '동등 조인, 자연 조인' 등이 세타조인의 종류이다.
② 동등 조인: 세타 조인에서 '=(동등)'연산자를 사용한 조인이다. 두 테이블(릴레이션)에서 공통되는 속성들이 중복된 상태로 그대로 남아 있기 때문에, 결과의 전체 ‘속성 수(차수)’가 “첫 릴레이션의 속성 수 + 두 번째 릴레이션의 속성 수”가 된다.
③ 자연(Natural) 조인 동등조인 결과에서 중복으로 나타나는 속성을 하나로 합쳐 주는 조인이다. 두 릴레이션의 공통 속성을 기준(매개체)으로 삼아 중복 열을 제거하고, 그 공통 속성을 한 번만 두어 결과를 생성한다.
[문제152] 다음 설명에 해당하는 커버리지(Coverage)를〈보기〉에서 찾아 쓰시오.
• 개별 조건식이 다른 개별 조건식의 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주는 구조적 테스트 케이스이다.
• 해당 개별 조건식이 전체 조건식의 결과에 영향을 주는 조건 조합을 찾아 커버리지를 테스트하는 방법이다.
• 프로그램에 있는 모든 결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓을 만족해야 한다.
• 프로그램에 있는 결정 포인트 내의 모든 개별 조건식이 적어도 한 번은 참과 거짓을 만족해야 한다.
〈보기〉
• All Path • Multiple Condition • MC/DC • Condition/Decision
• Condition • Decision • Statement
예를 들면, if (A && B)라는 조건문이 있을 때, A의 결과와 상관없이 B의 결과만으로도(독립적으로) 조건문의 참·거짓을 바꿀 수 있는지 확인하기 위해 각 조건의 참·거짓 조합을 테스트함으로써, 모든 개별 조건식이 다른 조건식에 영향을 받지 않고 전체 결정에 독립적으로 영향을 미치는지를 검증하는 기법이 MC/DC다.
[문제153] 보안 위협에 대한 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
• 시스템에 침입한 후 침입 사실을 숨긴 채 백도어, 트로이목마를 설치하고, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능들을 제공하는 프로그램들의 모음이다.
• 자신 또는 다른 소프트웨어의 존재를 감춰줌과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계되었다.
• 이 프로그램이 설치되면 자신이 뚫고 들어온 모든 경로를 바꾸어 놓고, 명령어들을 은폐해 놓기 때문에 해커가 시스템을 원격에서 해킹하고 있어도 이 프로그램이 설치되어 있는 사실 조차 감지하기 어렵다.
• 공격자가 보안 관리자나 보안 시스템의 탐지를 피하면서 시스템을 제어하기 위해 설치하는 악성 프로그램으로, 운영체제의 합법적인 명령어를 해킹하여 모아놓았다.
• 운영체제에서 실행 파일과 실행 중인 프로세스를 숨김으로써 운영체제 검사 및 백신 프로그램의 탐지를 피할 수 있다.
〈보기〉
• Worm • Logic Bomb • Spyware • Honeypot • Bug Bounty • Rootkit • Bootkit • Ransomware
“Rootkit”이라는 명칭은 유닉스(Unix) 계열 운영체제에서 최고 권한을 뜻하는 “root”와 여러 기능을 제공하는 툴 모음을 의미하는 “kit”이 합쳐져 생긴 것으로, 즉 “루트 권한을 획득하고 이를 이용해 시스템 내부를 조작·은닉하기 위한 도구 세트”라는 의미에서 붙여진 이름이다.
[문제154] 다음 설명에 해당하는 용어를〈보기〉에서 찾아 쓰시오.
다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격으로, 일반적으로 공격은 침투, 검색, 수집, 유출의 4단계로 실행된다.
• 침투(Infiltration) : 목표로 하는 시스템을 악성코드로 감염시켜 네트워크에 침투한다.
• 검색(Exploration) : 시스템에 대한 정보를 수집하고 기밀 데이터를 검색한다.
• 수집(Collection) : 보호되지 않은 시스템의 데이터를 수집하고, 시스템 운영을 방해하는 악성코드를 설치한다.
• 유출(Exfiltration) : 수집한 데이터를 외부로 유출한다.
〈보기〉
•MITM •ATM •XDR •APT • Key Logger Attack •사회공학기법 • TearDrop • SMURFING
[문제155] 다음 설명에 해당하는 용어를 쓰시오.
• 시스템의 성능을 향상하고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위이다.
• 이를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다.
• 과도한 수행은 오히려 성능을 저하시킬 수 있다.
[문제156] 다음〈회원〉테이블에서 카더널리티(Cardinality)와 디그리(Degree)를 구하시오.

카디널리티(Cardinality): 테이블(릴레이션)의 튜플(행) 수를 의미
디그리(Degree): 테이블(릴레이션)의 컬럼(속성, 열) 수를 의미하며, '차수(Degree)'라고도 한다.
[문제157] 다음 설명에 해당하는 프로토콜을 쓰시오.
• 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜이다.
• 주요 구성 요소에는 AH(Autherrtication Header), ESP(Encapsulatmg Security Pay load), SA(Security Association), IKE (Internet Key Exchange) 가 있다.
• 주요 기능에는 암호화, 무결성, 인증, 재전송 방지가 있다.
AH (Authentication Header): IP 헤더와 데이터가 변조되지 않았는지 확인하고 무결성을 보장하기 위해 인증 정보를 추가하는 헤더이다.
ESP (Encapsulating Security Payload): 전송되는 데이터 자체를 암호화하고 무결성·인증 기능도 제공해 패킷 내용을 안전하게 보호하는 헤더이다.
SA (Security Association): 통신 양단이 어떤 암호화·인증 방식을 사용할지 합의해 보안 연결에 필요한 설정 정보를 담는 개념이다.
IKE (Internet Key Exchange): 서로 안전하게 키를 교환하고 SA를 자동으로 생성·관리해 보안 연결을 수립하는 프로토콜이다.
[문제158] 다음 설명에 해당하는 보안 알고리즘을 쓰시오.
• 2001년 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘이다.
• DES의 한계를 느낀 NIST에서 공모한 후 발표하였다.
• 블록 크기는 128비트이며, 키 길이에 따라 명칭 뒤에 128, 192, 256을 붙여 구분한다.
'NIST', "DES의 한계" 라고 하면 AES입니다.
[문제159] 네트워크에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
• ( ② ) : 비 연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더 에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식
가상 회선 방식 (Virtual Circuit): 가상(virtual) 회선(circuit) 방식은 원래 전화망의 회선 교환 방식을 모태로 한다. 전화망에서는 통화를 시작하기 전에 수신자와 연결을 미리 설정해야만 목소리를 전달할 수 있었는데, 이 개념이 데이터 통신에 논리화(가상화) 되어 적용된 것이 바로 가상 회선 방식이다. 예를 들어, TCP 프로토콜의 3-Way Handshake 과정이 대표적인 사례로, 데이터를 전송하기 전에 먼저 논리적 연결을 확립해 전송 경로와 순서를 보장한다.
데이터그램 방식 (Datagram): 데이터그램(datagram) 방식은 전보(telegraph) 방식을 떠올리면 이해하기 쉽다. 전보는 메시지 하나하나가 독립적으로 전송되어, 매번 수신 목적지를 명시해야 하며, 메시지 간 순서나 연결은 보장되지 않는다. 전화와 달리 상대방이 바로 받지 못해도 메시지를 전송할 수 있고, 데이터가 나뉘어 전송되거나 순서가 섞여 도착해도 연결 설정을 거치지 않으므로 빠른 송신이 가능하다. 이러한 특징은 UDP 프로토콜에 반영되어 연결 과정 없이 데이터를 신속하게 전송하지만, 순서 보장 등은 제공하지 않는다.
[문제160] 모듈에 대한 다음 설명에 해당하는 응집도(Cohesion)를〈보기〉에서 찾아 기호(ㄱ~ㅅ)로 쓰시오.
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
〈보기〉
ㄱ.기능적응집도 ㄴ.순차적응집도 ㄷ.교환적응집도 ㄹ.절차적응집도
ㅁ.시간적 응집도 ㅂ.논리적 응집도 ㅅ.우연적 응집도
[문제161] 다음 설명에 해당하는 디자인 패턴을〈보기〉에서 찾아 쓰시오.
• 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴이다.
• 내부 표현 방법의 노출 없이 순차적 인 접근이 가능하다.

[문제162] 모듈에 대한 다음 설명에 해당하는 결합도(Coupling)를〈보기〉에서 찾아 기호(ㄱ~ㅂ)로 쓰시오.
• 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도이다.
• 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도 현상이 발생하게 된다.
〈보기〉
ㄱ.자료 결합도 ㄴ.스탬프 결합도 ㄷ.제어 결합도 ㄹ.공통 결합도
ㅁ.내용 결합도 ㅂ.외부 결합도
[문제163] 다음 그림에서 A~F는 라우터이고, 각 링크 상의 숫자는 가중치 값을 나타낼 때 RIP(Routing Information Protocol}을 이용한 A에서 F까지의 최적 경로를 쓰시오.

※TMI
만약 OSPF을 이용한 최적 경로를 묻는 문제였다면, 총 비용이 6인 A→D→C→E→F가 최적 경로가 된다.
[문제164] 다음 설명에 해당하는 알맞은 용어를 쓰시오.
• IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법 이다.
• 공격자는 송신 주소를 공격 대상지의 IP 주소로 위장하고 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 하여 패킷을 전송하면, 라우터의 브로드캐스트 주소로 수신된 패킷은 해당 네트워크 내의 모든 컴퓨터로 전송된다.
• 해당 네트워크 내의 모든 컴퓨터는 수신된 패킷에 대한 응답 메시지를 송신 주소인 공격 대상지로 집중적으로 전송하게 되는데, 이로 인해 공격 대상지는 네트워크 과부하로 인해 정상적인 서비스를 수행할 수 없게 된다.
지문에서 언급된 “공격자가 IP/ICMP 특성을 악용하여 브로드캐스트 주소로 패킷을 전송하고, 그 응답이 모두 공격 대상에 집중되어 네트워크를 마비시키는 기법”은 바로 스머프(Smurf) 공격을 특정한다.
※TMI
과거에, Smurf 공격 기법의 고유한 핵심이 되는 "공격자가 출발지 IP(피해자 IP) 위조", "피해자 네트워크의 브로드캐스트 주소로 ICMP 에코 요청(Echo Request) 전송"이라는 특징이 제시되지 않고 단순히 "IP나 ICMP의 특성을 악용하여", "여러 호스트가 특정 대상에게 다량의 ICMP Echo Reply를 보내게 하여 서비스거부(DoS)를 유발"이라는 특징만 제시하여 이것을 Smurf 공격 기법이라고 문제가 출제된 적이 있습니다. 다소 지엽적이기도 하고, 'ICMP Flood'로도 설명할 수 있는 여지가 충분히 있는 지문이라고 생각합니다. 하지만 정답은 Smurf였다는 점 참고하면 좋을 것 같습니다.
[문제165] 다음 설명에 해당하는 알맞은 용어를 영문 약어 3글자로 쓰시오.
• 인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션이다.
• 암호화된 규격을 통해 인터넷망을 전용선의 사설망을 구축한 것처럼 이용하므로 비용 부담을 줄일 뿐만 아니라 원격지의 지사, 영업소, 이동 근무자가 지역적인 제한 없이 업무를 수행할 수 있다.
• 종류에는 IPSec, SSL 등이 있다.
※TMI
SSL VPN: HTTPS(443) 프로토콜을 활용해 웹 브라우저만 있으면 접속 가능하며, 방화벽 호환성이 좋아 원격근무 등에 널리 쓰인다.
IPSec VPN: 네트워크 계층에서 암호화 터널을 구성해 높은 보안을 제공한다. 양단 장비 간 설정이 필요하며 표준화가 잘 되어 있다.
[문제166] 소프트웨어 공학의 디자인 패턴(Design Pattern)에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
• ( ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴이다.
• ( ) 패턴은 하나의 객체로 수행할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화 할 수 있도록 도와준다.
• ( ) 패턴에는 책임 연쇄(Chain of Responsibility), 반복자(Iterator), 옵서버(Observer) 패턴 등이 있다.
※TMI
문제 지문 중 "하나의 객체로 수행할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화 할 수 있도록 도와준다."에 대해서 이해를 돕자면, 아래와 같이 설명할 수 있습니다.
“하나의 객체로 수행할 수 없는 작업”:어떤 기능(작업)이 너무 커서 하나의 객체가 전부 처리하기 어렵거나, 객체가 원래 맡아야 할 책임을 초과하여(단일 책임 원칙 위배) 복잡해지는 상황을 말합니다.
“여러 객체로 분배”: 큰 일을 여러 부분으로 쪼개어, 각각을 적절한 객체들이 나누어 담당하게 합니다. 이를 통해 한 객체가 너무 많은 책임을 갖지 않도록 설계합니다.
“결합도를 최소화”: 여러 객체가 협업하되, ‘서로 직접적으로 알아야 할 정보’를 최소화 하도록(느슨한 결합) 구조를 짭니다. 예를 들어, 요청을 받은 객체가 직접 처리할 수 없을 때 다른 객체에 넘기되, 의존 관계가 복잡해지지 않도록 주의합니다.
즉, 큰 작업을 담당 객체 여러 개로 분산시키면서도, 객체들이 서로 깊이 얽혀서(결합도가 높아서) 수정하기 어려워지지 않도록 설계하는 것이 이 문장이 의미하는 바입니다.
[문제167] 다음 화이트박스 테스트의 검증 기준에 대한 각 번호에 해당하는 용어를〈보기〉에서 찾아 기호(ㄱ~ㅅ) 로 쓰시오.
① 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계한다.
② 소스 코드의 모든 조건문에 대해 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
③ 소스 코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
〈보기〉
ㄱ.선택 ㄴ.경로 ㄷ.조건 ㄹ.분기 ㅁ.함수 ㅂ.문장 ㅅ.루프
문장(Statement) 커버리지: 소스 코드의 모든 구문(statement)이 한 번 이상 수행
분기(Branch) 커버리지: if, switch 등 조건 분기가 존재하는 모든 경로(참/거짓)를 최소 한 번 이상 실행하도록 테스트 케이스를 설계해, 각 분기마다 코드가 적어도 한 번씩 수행되는지를 검증하는 화이트박스 테스트 기법이다.
조건(Condition) 커버리지: 분기문에 포함된 각 조건식이 True와 False 모두 평가되도록 테스트 케이스를 구성해, 로직 내 세부 논리식까지 고르게 검증하는 방식이다. 예를 들면, if(a && b)라면 a, b 각각이 True/False를 모두 거치게끔 검증한다.
[문제168] 다음에 제시된 URL 구조에서〈보기〉의 순서대로 URL에 해당하는 번호(1~5)를 쓰시오.
① query : 서버에 전달할 추가 데이터
② path : 서버 내의 특정 자원을 가리키는 경로
③ scheme : 리소스에 접근하는 방법이나 프로토콜
④ authority : 사용자 정보, 호스트명, 포트 번호
⑤ fragment : 특정 문서 내의 위치

① query: URL 구조상, ‘?’ 이후로 오는 문자열은 서버에 전달할 '쿼리 문자열(query string)'로 해석된다. 즉, “name=ferret”는 “name”이라는 파라미터(매개변수)에 “ferret”라는 값을 할당해 전송하려는 정보이므로, URL에서 query 부분에 해당한다.
② path: URL에서 "over/there" 부분은 도메인(example.com:8042) 뒤에 오는 경로(Path) 영역으로, 서버의 특정 폴더나 리소스를 가리키는 정보다. 예를 들어 ‘over’라는 디렉터리 안에 ‘there’라는 파일(또는 자원)이 있다고 볼 수 있으며, 이를 통해 서버가 어떤 위치를 참조해야 하는지 구체적으로 지정한다.
③ scheme: URL이 시작되는 부분의 "foo:"는 프로토콜(또는 통신 규약)을 지정하는 영역으로, Scheme에 해당한다. 예를 들어 http:, https:, ftp: 등이 위치하는 자리이며, 여기서는 가상의 예시로 “foo”라는 스킴을 사용하고 있다.
④ authority: URL에서 "example.com:8042"는 서버 주소(도메인 이름)와 포트 번호로 구성되며, 이를 통틀어 authority라 부른다. 즉, 클라이언트가 어느 서버(example.com)와 어떤 포트(8042)를 통해 통신해야 하는지를 결정해주는 정보이므로, authority 영역에 속한다.
⑤ fragment: URL에서 # 뒤로 오는 단어(여기서는 nose)는 fragment(조각)라고 부르며, 보통 웹페이지 내 특정 위치나 섹션을 가리키기 위한 정보다. 즉, 사이트에서 ‘nose’ 부분으로 바로 이동하라는 뜻으로 해석되므로, 이 부분을 fragment 영역이라고 한다.
결과적으로 문제의 URL을 해석하면, foo라는 방식(스킴)을 통해 example.com 서버의 8042번 포트에 연결하고, 서버 내 /over/there 경로(폴더/파일)를 찾은 뒤 name=ferret라는 추가 정보를 함께 보내며 해당 자원(웹 문서) 안에서도 nose라는 특정 위치(#nose)로 이동하거나 그 위치를 지칭하게 만드는 구조이다.
[문제169] 다음 UML 모델에서 각 번호(①~③)에 해당하는 관계를〈보기〉에서 찾아 기호(ㄱ~ㅂ)로 쓰시오.

①: '차'는 '타이어, 바퀴 엔진'을 포함한다. 라고 생각하여 '포함'관계 라고 생각할 수 있습니다. 하지만 각 개체는 '단순 실선'으로 연결되어 있습니다. 이것은 '연관(Association)'관계를 의미합니다. 포함 관계는 실선과 채워진 마름모로 표현합니다.
②: '차'라는 상위 클래스에서 상속받은 하위 클래스 '버스, 택시, 승용차'를 나타냅니다. 실선과 속이 빈 삼각형 화살표로 표현되어있으며, '일반화(Generalization)'관계를 의미합니다.
③: '텔레비전'과 '리모콘' 사이에 점선 화살표가 연결되어 있는데, UML 표준에서 점선 화살표는 객체가 다른 객체를 잠시 사용(참조)하는 의존 관계를 나타냅니다. 즉, '텔레비전'은 '리모콘'에 의존하여 동작하지만, 두 객체가 필수적으로 생명주기를 함께하지는 않는다는 의미입니다.
[문제170] 키(Key)에 대한 다음 설명에서 각 번호(①~④)에 해당하는 키를〈보기〉에서 찾아 기호(ㄱ~ㅂ)로 쓰시오.
① 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.
② 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, 유일성과 최소성을 모두 만족시켜야 한다.
③ 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다.
④ 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 유일성은 만족하지만, 최소성은 만족하지 못한다.
〈보기〉
ㄱ.슈퍼키 ㄴ.외래키 ㄷ.대체키 ㄹ.후보키 ㅁ.기본키 ㅂ.필드키
① 외래키: 다른 릴레이션의 기본키를 참조하는 속성(또는 속성들의 집합)
② 후보키: 유일성과 최소성을 모두 만족하는 속성들의 부분집합이다. 후보키 중 하나를 골라 대표 식별자로 지정한 것이 기본키(PK)이다.
③ 대체키: 후보키가 둘 이상일 때, ‘기본키’를 제외한 나머지 후보키
④ 슈퍼키: 유일성은 만족하지만 최소성은 만족하지 못한다.
[문제171] 다음 무결성 제약 조건에 대한 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
( ) 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정이다.
[문제172] 네트워크 및 인터넷과 관련된 다음 설명에 해당하는 용어를〈보기〉에서 찾아 기호(ㄱ~ㅂ)로 쓰시오.
• 재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크이다.
• 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다.
• 멀티 홉 라우팅 기능을 지원한다.
〈보기〉
ㄱ.Mesh Network ㄴ.Peer-to-Peer Network ㄷ.Virtual Private Network
ㄹ.Ad—hoc Network ㅁ.Sensor Network ㅂ.Infrastructure Network
'정보처리기사 > 실기(이론)' 카테고리의 다른 글
| 정보처리기사 '기타 해킹 기법' 51가지 문제 생성기 (0) | 2025.04.02 |
|---|---|
| DoS 공격 유형 (0) | 2025.04.02 |
| 방화벽 시스템 구축 유형 (0) | 2025.04.01 |
| 가상회선방식, 다이어그램방식 쉽게 용어 이해하기 (0) | 2025.02.19 |
| 쉽게 이해하는 결합도/응집도 종류와 크기 (0) | 2025.02.05 |
comments