다음 네트워크 보안과 관련된 문제이다. 괄호 안에 알맞은 용어를 작성하시오.
( )는 다른 사용자의 세션 정보를 몰래 탈취하여 시스템에 접근하는 공격 방식이다.
총 20문제 · 2025-1
다음 네트워크 보안과 관련된 문제이다. 괄호 안에 알맞은 용어를 작성하시오.
( )는 다른 사용자의 세션 정보를 몰래 탈취하여 시스템에 접근하는 공격 방식이다.
다음은 제약조건과 관련된 문제이다. 괄호 안에 알맞은 용어를 [보기]에서 골라 작성하시오.
[보기] 도메인 무결성, 개체 무결성, 참조 무결성
아래 괄호 안의 용어를 영문 약어로 작성하시오.
다음은 악성코드 관련된 문제이다. 설명에 해당하는 것을 [보기]에서 골라 작성하시오.
사용자가 원하지 않는 소프트웨어를 구매하도록 유도하기 위해 사회공학 기법을 활용하여 충격, 불안, 위협 등의 감정을 자극하는 악성코드 유형이다. 주로 가짜 바이러스 경고나 시스템 오류 메시지를 통해 사용자를 속여 금전적 이득이나 특정 행동을 유도한다. '겁을 주다'라는 영어 단어에서 유래되었다.
ㄱ. 스케어웨어 ㄴ. 스팸웨어 ㄷ. 애드웨어 ㄹ. 안티 스파이웨어 ㅁ. 유즈웨어 ㅂ. 그룹웨어
다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
public class Main {
public static void main(String[] args) {
int a = 5, b = 0;
try {
System.out.print(a / b); // ①
} catch (ArithmeticException e) { // ③
System.out.print("출력1"); // ④
} catch (NumberFormatException e) {
System.out.print("출력3");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.print("출력2");
} finally {
System.out.print("출력5"); // ⑤
}
}
}
다음 내용은 ARP/RARP에 대한 설명이다. 각 설명에 해당하는 것을 작성하시오.
( ① )은 네트워크상에서 IP 주소를 MAC 주소로 변환하는 프로토콜이고, ( ② )은 MAC 주소를 IP 주소로 변환하는 프로토콜이다.
| 프로토콜 | 설명 |
|---|---|
| ARP | IP 주소를 MAC 주소로 변환하는 프로토콜이다. |
| RARP | MAC 주소를 IP 주소로 변환하는 프로토콜이다. |
다음은 SQL 문제이다. 아래 두 테이블을 참고하여 [보기]의 쿼리 실행 결과를 작성하시오.
[emp 테이블]
| ID | name |
|---|---|
| 1001 | 김철수 |
| 1002 | 강감찬 |
| 1008 | 이순신 |
[sal 테이블]
| ID | incentives |
|---|---|
| 1002 | 300 |
| 1004 | 300 |
| 1008 | 1000 |
| 1009 | 500 |
[보기]
SELECT name, incentives FROM emp, sal WHERE emp.id=sal.id AND incentives>=500
다음은 데이터베이스와 관련된 설명이다. 알맞은 용어를 [보기]에서 골라 괄호를 작성하시오.
[보기] ㄱ. domain ㄴ. primary ㄷ. degree ㄹ. candidate ㅁ. cardinality ㅂ. attribute
IP 주소가 192.168.35.10, 서브넷마스크가 255.255.252.0인 PC에서 브로드캐스트로 다른 IP로 정보를 전달한다 할 때 수신할 수 있는 알맞은 IP를 [보기]에서 모두 골라 작성하시오.
[보기] ㄱ. 192.168.34.1 ㄴ. 192.168.32.19 ㄷ. 192.168.35.20 ㄹ. 192.168.33.138
다음은 C언어에 대한 문제입니다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
#include <stdio.h>
char Data[5] = {'B', 'A', 'D', 'E'};
char c;
int main() {
int i, temp, temp2;
c = 'C';
printf("%d\n", Data[3] - Data[1]);
for(i = 0; i < 5; ++i) {
if(Data[i] > c) {
break;
}
}
temp = Data[i];
Data[i] = c;
i++;
for(; i < 5; ++i) {
temp2 = Data[i];
Data[i] = temp;
temp = temp2;
}
for(i = 0; i < 5; i++) {
printf("%c", Data[i]);
}
}
다음은 C언어에 대한 문제입니다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
#include <stdio.h>
#include <stdlib.h>
void set(int** arr, int* data, int rows, int cols) {
for (int i = 0; i < rows * cols; ++i) {
arr[((i + 1) / rows) % rows][(i + 1) % cols] = data[i];
}
}
int main() {
int rows = 3, cols = 3, sum = 0;
int data[] = {5, 2, 7, 4, 1, 8, 3, 6, 9};
int** arr;
arr = (int**) malloc(sizeof(int*) * rows);
for (int i = 0; i < rows; i++) {
arr[i] = (int*) malloc(sizeof(int) * cols);
}
set(arr, data, rows, cols);
for (int i = 0; i < rows * cols; i++) {
sum += arr[i / rows][i % cols] * (i % 2 == 0 ? 1 : -1);
}
printf("%d", sum);
}
다음은 결합도와 관련된 내용입니다. [보기]에서 알맞은 답을 골라 작성하시오.
[보기] ㄱ. 자료 결합도 ㄴ. 스탬프 결합도 ㄷ. 제어 결합도 ㄹ. 공통 결합도 ㅁ. 내용 결합도 ㅂ. 외부 결합도
다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
public class Main {
public static void main(String[] args) {
new Child();
System.out.println(Parent.total);
}
}
class Parent {
static int total = 0;
int v = 1;
public Parent() {
total += (++v);
show();
}
public void show() {
total += total;
}
}
class Child extends Parent {
int v = 10;
public Child() {
v += 2;
total += v++;
show();
}
@Override
public void show() {
total += total * 2;
}
}
다음은 디자인 패턴에 대한 설명이다. 알맞은 답을 보기에서 골라 작성하시오.
[보기]
문장(Statement) 커버리지 테스트를 수행하려고 한다. 코드 아래의 제어 흐름도 빈칸에 연결되도록 작성하고, 문장 커버리지 순서대로 작성하시오.
int func(int arr[], int len, int init) {
int i = 0;
while (i < len && arr[i] < init) {
if (arr[i] < 0) {
arr[i] = -arr[i];
}
i++;
}
return i;
}
[제어 흐름도] 1: int i=0 2: while (i < len && arr[i] < init) 3: if (arr[i] < 0) 4: arr[i] = -arr[i] 5: i++ 6: return i
다음 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
public class Main {
public static void main(String[] args) {
int[] data = {3, 5, 8, 12, 17};
System.out.println(fun(data, 0, data.length - 1));
}
static int fun(int[] a, int st, int end) {
if (st >= end) return 0;
int mid = (st + end) / 2;
return a[mid] + Math.max(fun(a, st, mid), fun(a, mid + 1, end));
}
}
다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
class Node:
def __init__(self, value):
self.value = value
self.children = []
def tree(li):
nodes = [Node(i) for i in li]
for i in range(1, len(li)):
nodes[(i - 1) // 2].children.append(nodes[i])
return nodes[0]
def calc(node, level=0):
if node is None:
return 0
return node.value if level % 2 == 1 else 0 + sum([calc(n, level + 1) for n in node.children])
li = [3, 5, 8, 12, 15, 18, 21]
root = tree(li)
print(calc(root))
다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
#include <stdio.h>
#include <stdlib.h>
typedef struct Data {
int value;
struct Data *next;
} Data;
Data* insert(Data* head, int value) {
Data* new_node = (Data*)malloc(sizeof(Data));
new_node->value = value;
new_node->next = head;
return new_node;
}
Data* reconnect(Data* head, int value) {
Data *prev = NULL, *curr = head;
while (curr != NULL && curr->value != value) {
prev = curr;
curr = curr->next;
}
if (curr == NULL || prev == NULL) return head;
prev->next = curr->next;
curr->next = head;
head = curr;
return head;
}
int main() {
Data *head = NULL, *curr;
for (int i = 1; i <= 5; i++)
head = insert(head, i);
head = reconnect(head, 3);
for (curr = head; curr != NULL; curr = curr->next)
printf("%d", curr->value);
return 0;
}
다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
#include <stdio.h>
typedef struct {
char* name;
int score[3];
} Student;
int dec(int enc) {
return enc & 0xA5;
}
int sum(Student* p) {
return dec(p->score[0]) + dec(p->score[1]) + dec(p->score[2]);
}
int main() {
Student s[2] = {
{"Kim", {0xA0, 0xA5, 0xDB}},
{"Lee", {0xA0, 0xED, 0x81}}
};
Student* p = s;
int result = 0;
for (int i = 0; i < 2; i++) {
result += sum(&s[i]);
}
printf("%d", result);
return 0;
}
다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.
public class Main {
public static void main(String[] args) {
System.out.println(calc("5"));
}
static int calc(int value) {
if (value <= 1) return value;
return calc(value - 1) + calc(value - 2);
}
static int calc(String str) {
int value = Integer.valueOf(str);
if (value <= 1) return value;
return calc(value - 1) + calc(value - 3);
}
}