문자 하나에 필요한 비트 수가 가장 많은 것은 유니코드(Unicode)이다.
유니코드는 전 세계 문자를 하나의 체계로 담기 위해 기본적으로 16비트 이상(인코딩 방식에 따라 최대 32비트)을 사용한다.
- ASCII: 7비트(패리티 포함 8비트)로 영문·숫자·제어 문자를 표현한다.
- BCD: 6비트(존 2비트 + 숫자 4비트)로 표현한다.
- EBCDIC: 8비트(존 4비트 + 숫자 4비트)로 표현한다.
- 성능 개선 전에 프로그램 P의 특정 부분 A의 실행에 30초가 소요되었고, A를 포함한 전체 프로그램 P의 실행에 50초가 소요되었다.
- 시스템의 성능을 개선하여 A의 실행 속도를 2배 향상시켰다.
- A의 실행 속도 향상 외에 성능 개선으로 인한 조건 변화는 없다.
성능 개선 후 프로그램 P의 실행 시간은 35초이다.
개선 대상인 A만 속도가 2배가 되므로 A의 시간만 절반으로 줄고, A 이외 부분(50초 − 30초 = 20초)은 그대로 남는다(암달의 법칙).
- 25초는 전체 50초를 통째로 2배 빠르게 한 값으로, 개선되지 않는 20초를 무시한 오답이다.
- 30초·40초는 A의 개선분 15초를 바르게 반영하지 않은 값이다.
옳지 않은 등식은 X·(X+Y) = X·X+Y이다.
흡수 법칙에 따라 이다. 반면 우변 이므로 X=0, Y=1이면 좌변 0, 우변 1로 서로 다르다.
- X+(Y·Z) = (X+Y)·(X+Z): OR에 대한 분배 법칙으로 성립한다.
- (X+Y)+Z = X+(Y+Z): 결합 법칙으로 성립한다.
- (X+Y)′ = X′·Y′: 드모르간 법칙으로 성립한다.
IP를 전송 계층 프로토콜이라 한 설명이 옳지 않다. IP는 네트워크(인터넷) 계층 프로토콜이다.
전송 계층 프로토콜은 TCP·UDP이며, IP는 그 아래에서 주소 지정과 라우팅을 담당한다.
- 비연결형: IP는 연결 설정 없이 데이터그램을 독립적으로 전달한다.
- 주소 길이: IPv4 주소는 32비트이다(IPv6는 128비트).
- 최선형(best-effort) 전달: 도달·순서를 보장하지 않으며, 신뢰성은 상위의 TCP가 맡는다.
- 캐시기억장치는 4-way 집합 연관 사상(set-associative mapping) 방식을 사용한다.
- 캐시기억장치는 크기가 8KB이고 전체 라인 수가 256개이다.
- 주기억장치 주소는 길이가 32비트이고, 캐시기억장치 접근(access)과 관련하여 아래의 세 필드로 구분된다.
| 태그(tag) | 세트(set) | 오프셋(offset) |
| 태그 | 세트 | 오프셋 | |
|---|---|---|---|
| ① | 20 | 6 | 6 |
| ② | 20 | 7 | 5 |
| ③ | 21 | 5 | 6 |
| ④ | 21 | 6 | 5 |
주소 필드는 태그 21비트, 세트 6비트, 오프셋 5비트이다.
라인 크기 = 8KB ÷ 256 = 32바이트이므로 오프셋은 5비트, 세트 수 = 256 ÷ 4 = 64개이므로 세트 필드는 6비트이다.
이 남으므로 태그는 21비트이다(4-way이므로 라인 수를 4로 나눠 세트 수를 구한다).
- 태그 20·세트 6·오프셋 6은 라인 크기를 64바이트로 잘못 계산한 조합이다.
- 태그 20·세트 7·오프셋 5는 세트 수를 128개로 보아 2-way처럼 계산한 조합이다.
- 태그 21·세트 5·오프셋 6은 세트와 오프셋 비트 수를 모두 잘못 배분한 조합이다.
옳지 않은 것은 최저 음수를 로 본 설명이다. n비트 2의 보수의 최저 음수는 이다.
2의 보수의 표현 범위는 ~ 이다. 은 1의 보수·부호-크기 방식의 최저 음수이다.
- 0의 표현: 2의 보수는 0이 하나뿐이다(1의 보수는 +0, −0 두 가지).
- A의 2의 보수가 라는 설명은 정의 그대로 옳다.
- 1의 보수에 1을 더해 2의 보수를 구하는 설명도 옳다.
45.1875를 2진수로 바꾸면 101101.0011이다.
정수부: 45 = 32 + 8 + 4 + 1 이므로 101101이다.
소수부: 0.1875 × 2 = 0.375 → 0
0.375 × 2 = 0.75 → 0
0.75 × 2 = 1.5 → 1
0.5 × 2 = 1.0 → 1
따라서 0.0011이다.
- 101100.0011, 101100.0101: 정수부가 44로 틀리다.
- 101101.0101: 소수부가 0.3125로 틀리다.
- 페이지 교체가 필요한 시점에서 최근 가장 오랫동안 사용되지 않은 페이지를 제거하여 교체한다.
설명에 해당하는 것은 LRU(Least Recently Used) 교체 알고리즘이다.
LRU는 과거 참조 시점을 기준으로 가장 오래전에 사용된 페이지를 교체 대상으로 고른다.
- 최적 교체는 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 방식으로, 미래 참조를 알아야 하므로 구현이 불가능하다.
- FIFO 교체는 사용 여부와 무관하게 가장 먼저 적재된 페이지를 교체한다.
- LFU 교체는 참조 횟수가 가장 적은 페이지를 교체한다.
옳지 않은 것은 RFID 수동형 태그가 내장 배터리로 신호를 낸다는 설명이다.
수동형 태그는 배터리가 없고, 리더기가 보내는 전파에서 에너지를 얻어 응답한다. 내장 배터리로 스스로 신호를 내는 것은 능동형 태그이다.
- 기계학습의 학습 방법으로 지도·비지도·강화학습이 있다는 설명은 옳다.
- 가상현실이 가상 공간에서 실제 같은 체험을 제공한다는 설명은 옳다.
- 지그비가 저비용·저전력 무선 기술로 센서 네트워크에 쓰인다는 설명은 옳다.
- 페이징 기법을 사용하며, 페이지 크기는 2,048바이트이다.
- 가상 주소는 길이가 32비트이고, 가상 페이지 번호와 페이지 오프셋으로 구분된다.
| 가상 페이지 번호 | 페이지 오프셋 | |
|---|---|---|
| ① | 11 | 21 |
| ② | 13 | 19 |
| ③ | 19 | 13 |
| ④ | 21 | 11 |
가상 페이지 번호는 21비트, 페이지 오프셋은 11비트이다.
페이지 크기가 바이트이므로 페이지 내 위치를 나타내는 오프셋은 11비트가 필요하다.
나머지 비트가 가상 페이지 번호가 된다.
- 가상 페이지 번호 11·오프셋 21은 두 필드를 뒤바꾼 조합이다.
- 13·19와 19·13 조합은 페이지 크기를 각각 2의 19제곱, 2의 13제곱 바이트로 본 것이어서 2,048바이트와 맞지 않는다.

옳지 않은 것은 트리의 차수가 4라는 설명이다.
트리의 차수는 노드 차수 중 최댓값인데, 자식이 가장 많은 B노드의 자식이 D·E·F 3개이므로 트리의 차수는 3이다.
- A노드는 자식이 B·C 2개이므로 차수가 2이다.
- D노드와 F노드는 부모가 B로 같으므로 형제 노드이다.
- G노드의 부모는 C노드이다.
- 객체들이 어떻게 상호 동작하는지를 메시지 순서에 초점을 맞춰 나타낸 것으로, 어떠한 작업이 객체 간에 발생하는지를 시간 순서에 따라 보여준다.
설명에 해당하는 것은 순차(sequence) 다이어그램이다.
순차 다이어그램은 객체 간 상호작용을 메시지의 시간 순서에 따라 표현하는 동적(행위) 다이어그램이다.
- 클래스 다이어그램은 클래스의 속성·연산과 클래스 간 관계를 나타내는 정적 구조 다이어그램이다.
- 배치 다이어그램은 소프트웨어가 실행되는 하드웨어 노드와 그 배치를 나타낸다.
- 컴포넌트 다이어그램은 시스템을 구성하는 컴포넌트와 그 의존 관계를 나타낸다.
#include <stdio.h>
int main() {
char i;
union {
int int_arr[2];
char char_arr[8];
} endian;
for (i = 0; i < 8; i++)
endian.char_arr[i] = i + 16;
printf("%x", endian.int_arr[1]);
return 0;
}
출력 결과는 17161514이다.
공용체이므로 int_arr[1]은 char_arr[4]~char_arr[7]과 같은 메모리를 공유하며, 이 4바이트에는 i + 16 값인 20, 21, 22, 23, 즉 16진수 14, 15, 16, 17이 낮은 주소부터 저장된다.
리틀 엔디안은 낮은 주소의 바이트를 하위 바이트로 해석하므로 정수값은 0x17161514이고, %x로 17161514가 출력된다.
- 10111213과 13121110은 char_arr[0]~char_arr[3], 즉 int_arr[0] 영역 값을 본 것이다.
- 14151617은 같은 바이트를 빅 엔디안 방식으로 해석한 결과이다.
10110101을 2비트 산술 우측 시프트하면 11101101이다.
산술 우측 시프트는 부호 비트(최상위 1)를 복사해 왼쪽을 채운다.
1회: 10110101 → 11011010
2회: 11011010 → 11101101
값으로 확인하면 10110101 = −75이고, 2비트 시프트는 4로 나눈 내림이므로 −19 = 11101101 이다.
- 00101101: 왼쪽을 0으로 채운 논리 시프트 결과이다.
- 11010100: 왼쪽으로 2비트 시프트한 결과이다.
- 11010111: 하위 6비트가 원래 상위 6비트(101101)와 달라 시프트 결과가 아니다.
public class Result {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++)
if (i % 2 != 0 && i % 5 != 0)
sum += i;
System.out.println(sum);
}
}출력 결과는 20이다.
조건은 i가 홀수이면서 5의 배수가 아닐 때만 더하는 것이므로, 1~10 중 1, 3, 7, 9가 해당한다.
sum = 1 + 3 + 7 + 9 = 20
- 15는 조건을 만족하는 1, 3, 7, 9의 합과 다르므로 오답이다.
- 25는 1~10의 홀수 합(1+3+5+7+9)으로, 5의 배수 제외 조건을 빠뜨린 값이다.
- 55는 조건 없이 1~10을 모두 더한 값이다.
나머지와 다른 계층의 프로토콜은 ICMP이며, 인터넷(네트워크) 계층에 속한다.
ICMP는 IP와 함께 동작하며 오류 보고·진단(예: ping)을 담당한다.
- HTTP: 웹 문서 전송용 응용 계층 프로토콜이다.
- SMTP: 전자우편 전송용 응용 계층 프로토콜이다.
- DNS: 도메인 이름을 IP 주소로 변환하는 응용 계층 프로토콜이다.
옳지 않은 것은 검색·삽입·삭제·수정 요구를 데이터 제어어의 역할로 본 설명이다. 이는 데이터 조작어(DML)의 역할이다.
데이터 제어어(DCL)는 권한 부여·회수, 무결성, 회복, 병행 제어 등 데이터 관리를 위한 언어이다.
- 데이터 제어어가 보안·무결성·회복을 지원한다는 설명은 옳다.
- 절차적 DML이 원하는 데이터와 접근 방법을 함께 명시한다는 설명은 옳다.
- 데이터 정의어가 스키마의 생성·변경·삭제에 쓰인다는 설명은 옳다.
- ㄱ. 네트워크 계층에서 사용되는 프로토콜이다.
- ㄴ. 흐름 제어와 혼잡 제어를 수행한다.
- ㄷ. 연결지향형 프로토콜이다.
- ㄹ. IP 주소를 이용하여 데이터그램을 목적지 호스트까지 전송하는 역할을 한다.
TCP에 대한 옳은 설명은 흐름 제어·혼잡 제어 수행과 연결지향형이라는 두 가지이다.
TCP는 전송 계층 프로토콜로, 3-way 핸드셰이크로 연결을 설정하고 슬라이딩 윈도우로 흐름 제어, 혼잡 윈도우로 혼잡 제어를 수행한다.
- 네트워크 계층에서 사용된다는 설명은 틀렸다. TCP는 전송 계층 프로토콜이다.
- IP 주소로 데이터그램을 목적지 호스트까지 전달하는 것은 네트워크 계층의 IP가 하는 역할이다.
| 프로세스 | 도착 시간 | 실행 시간 |
|---|---|---|
| P₁ | 0 | 30 |
| P₂ | 5 | 10 |
| P₃ | 10 | 15 |
| P₄ | 15 | 10 |
대기 시간 총합은 50이다.
SRT는 새 프로세스가 도착할 때마다 남은 실행 시간이 가장 짧은 프로세스를 실행한다.
0~5: 실행(남은 25) → 5에 도착, 선점
5~15: 실행 완료(10에 도착한 는 15로 잔여 5보다 김)
15~25: → 25~40: → 40~65:
대기 시간 = 종료 시간 − 도착 시간 − 실행 시간
= 65 − 0 − 30 = 35, = 0, = 40 − 10 − 15 = 15, = 25 − 15 − 10 = 0
총합 = 35 + 0 + 15 + 0 = 50
- 40·45·55는 선점 시점이나 각 프로세스의 종료 시각을 잘못 계산했을 때 나오는 값이다.
높이가 가장 높은 삽입 순서는 1, 2, 3, 4, 5이다.
정렬된 순서로 넣으면 모든 노드가 오른쪽 자식으로만 이어져 한 줄(편향 트리)이 되므로 5개 레벨이 된다.
- 1, 4, 2, 5, 3: 1 → 4 → 2 → 3 경로가 가장 길어 4개 레벨이다.
- 3, 1, 4, 2, 5: 루트 3 아래 좌우가 고르게 퍼져 3개 레벨이다.
- 5, 3, 4, 1, 2: 5 → 3 → 1 → 2 경로가 가장 길어 4개 레벨이다.