4 분 소요

«««< HEAD

d774d5f8593534b632197ca50bb20f9b05b8f363

2024-2회

5. 프로토콜

«««< HEAD 다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞는 답을 작성하시오. ======= 다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞는 답을 작성하시오.

d774d5f8593534b632197ca50bb20f9b05b8f363

- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.

- 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다. - AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.

«««< HEAD 정답 : IPSec ======= IPSec

d774d5f8593534b632197ca50bb20f9b05b8f363

8. 패킷 교환 방식

«««< HEAD 패킷 교환 방식 중에 연결형과 비연결형에 해당하는 방식을 작성하시오.

① 연결형 교환 방식

정답 : 가상회선

② 비연결형 교환 방식

정답 : 데이터그램

  1. 연결형 교환방식

    가상회선

  2. 비연결형 교환방식

    데이터그램

    d774d5f8593534b632197ca50bb20f9b05b8f363

9. 모듈

실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성한다. 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로서 제공되는 형태이다.

보기

ㄱ. 기능적(functional) ㄴ. 우연적(Coincidental) ㄷ. 통신적(Communication) ㄹ. 절차적(Procedural) ㅁ. 시간적(Temporal) ㅂ. 순차적(sequential) ㅅ. 논리적(Logical)

«««< HEAD 정답 : ㅂ(순차적) ======= 정답 : ㅂ. 순차적

d774d5f8593534b632197ca50bb20f9b05b8f363

10. 디자인패턴

«««< HEAD 10. 아래는 디자인 패턴에 관한 설명이다. 아래 설명을 읽고 보기에서 알맞는 용어를 작성하시오.

- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다. - 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다 - 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않도록 한다. ======= 아래는 디자인 패턴에 관한 설명이다. 아래 설명을 읽고 보기에서 알맞는 용어를 작성하시오.

- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
- 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다
- 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않도록 한다.

d774d5f8593534b632197ca50bb20f9b05b8f363

보기

생성패턴 구조패턴 행위패턴
Singleton Adapter Iterator
Factory Method Bridge Visitor
Abstract Factory Composite Observer

«««< HEAD 정답 : Abstract Factory

11. RIP(Routing Information Protocol) 라우팅 최단경로

image-20241018120652092

A => D => C => F

해설 : C => E => F로 가지 않는 이유는 홉(노드) 수에 기반하여 최단 경로를 선택한다.

정답 : Abstract Factory

11. RIP(Routing Information Protocol)

아래 그림을 바탕으로 RIP을 구성하여 최단 경로 비용을 계산하여 흐름에 맞게 작성하시오.

image-20241018210242677

A=>D=>C=>F (홉수(노드수) 기반으로 계산하므로 C=>E=>F보다 C=>F)

RIP : 라우터 수를 최소화 하는 방법

RIP 방법 보완 => OSPF

d774d5f8593534b632197ca50bb20f9b05b8f363

12. SRT 스케줄링 평균 대기시간

아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.

| 프로세스 | 도착 시간 | 서비스 시간 | | ——– | ——— | ———– | «««< HEAD | A | 0 | 8 | | B | 1 | 4 | | C | 2 | 9 | | D | 3 | 5 | ======= | P1 | 0 | 8 | | P2 | 1 | 4 | | P3 | 2 | 9 | | P4 | 3 | 5 |

SRT 알고리즘 : SJF 선점형 방식, 최단 남은 시간 계산

프로세스 실행 : 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9

대기시간

P1 : 10 - 1 = 9 P3 : 17 - 2 = 15

P2 : 1 - 1 = 0 P4 : 5 - 3 = 2

(9 + 15 + 0 + 2) / 5 = 6.5초

d774d5f8593534b632197ca50bb20f9b05b8f363

13. C

«««< HEAD

d774d5f8593534b632197ca50bb20f9b05b8f363 ```c #include

int main() { int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int* parr[2] = {arr[1], arr[2]}; printf(“%d”, parr[1][1] + *(parr[1]+2) + **parr);

return 0; } ```

«««< HEAD 해설 :

parr[2] = {{4, 5, 6}, {7, 8, 9}}

parr로 계산해야 되는데 자꾸 arr로 생각해서 실수

parr = {{4, 5, 6}, {7, 8, 9}}

d774d5f8593534b632197ca50bb20f9b05b8f363

parr[1][1] = 8

*(parr[1] + 2) = 9

**parr = 4

«««< HEAD 정답 : 21

  1. 25, 20 o
  2. 10 o
  3. control o
  4. 2
  5. 20 o
  6. E

    8 + 9 + 4 = 21

16. 소프트웨어 설계

- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다. - 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.

(Control) Coupling

17. Java

class Main {
    public static String calculFn(String str, int index, boolean[] seen) {
        if(index < 0) return "";
        char c = str.charAt(index);
        String result = calculFn(str, index-1, seen);
        if(!seen[c]) {
            seen[c] = true;
            return c + result;
        }
        return result;
    }
    public static void main(String[] args) {
        String str = "abacabcd";
        boolean[] seen = new boolean[256];
        System.out.print(calculFn(str, str.length()-1, seen));
    }
 
}
calculFn 호출 c result seen[c] !seen[c] 반환값
f(str, 7, seen[]) str[7]=d d seen[‘d’]=false=>true true dcba
f(str, 6, seen[]) c cba seen[‘c’]=true false cba
f(str, 5, seen[]) b cba seen[‘b’]=true false cba
f(str, 4, seen[]) a cba seen[‘a’]=true false cba
f(str, 3, seen[]) c ba seen[‘c’]=false=>true true cba
f(str, 2, seen[]) a ba seen[‘a’]=true false ba
f(str, 1, seen[]) b a seen[‘b’]=false=>true true ba
f(str, 0, seen[]) a ”” seen[‘a’]=false=>true true a
f(str, -1, seen[]) ””        

정답 : dcba

18. C

#include <stdio.h>
 
void swap(int a, int b) {
    int t = a;
    a = b;
    b = t;
}
 
int main() {
    
    int a = 11;
    int b = 19;
    swap(a, b);
    
    switch(a) {
        case 1:
            b += 1;
        case 11:
            b += 2;
        default:
            b += 3;
        break;
    }
    
    printf("%d", a-b);
}

swap 함수에서 포인터를 사용하지 않았으므로 함수가 실행돼도 매개변수는 서로 바뀌지 않는다. 처음에 주어진 그대로 a=11, b=19이며 a는 11이므로 case 11부터 실행된다.

b = 19 + 2 + 3 = 24

a - b = 11 - 24 = -13

20. Java

class Main {
    public static void main(String[] args) {
        String str = "ITISTESTSTRING";
        String[] result = str.split("T"); // ["I","IS","ES","S","RING"]
        System.out.print(result[3]);
    }
}

d774d5f8593534b632197ca50bb20f9b05b8f363

댓글남기기