정보처리기사 실기 2024년-2회
«««< HEAD
d774d5f8593534b632197ca50bb20f9b05b8f363
2024-2회
5. 프로토콜
«««< HEAD 다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞는 답을 작성하시오. ======= 다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞는 답을 작성하시오.
d774d5f8593534b632197ca50bb20f9b05b8f363
- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.
- 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다. - AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.
«««< HEAD 정답 : IPSec ======= IPSec
d774d5f8593534b632197ca50bb20f9b05b8f363
8. 패킷 교환 방식
«««< HEAD 패킷 교환 방식 중에 연결형과 비연결형에 해당하는 방식을 작성하시오.
① 연결형 교환 방식
정답 : 가상회선
② 비연결형 교환 방식
정답 : 데이터그램
-
연결형 교환방식
가상회선
-
비연결형 교환방식
데이터그램
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) 라우팅 최단경로
A => D => C => F
해설 : C => E => F로 가지 않는 이유는 홉(노드) 수에 기반하여 최단 경로를 선택한다.
정답 : Abstract Factory
11. RIP(Routing Information Protocol)
아래 그림을 바탕으로 RIP을 구성하여 최단 경로 비용을 계산하여 흐름에 맞게 작성하시오.
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
- 25, 20 o
- 10 o
- control o
- 2
- 20 o
-
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
댓글남기기