관리 메뉴

+ Repository +

[정처기 실기] 기출문제 풀이 2022 - 2회차 본문

자격증/정보처리기사

[정처기 실기] 기출문제 풀이 2022 - 2회차

jaeti 2022. 10. 12. 06:37

1. 다음은 관계 데이터 모델에 대한 설명이다. 

( ) 은/는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다.
수학의 Predicate Calculus에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고
특별히 관계 데이터베이스를 위해 제안하여 탄생하였다.

( ) 은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며,
튜플( ) 와/과 도메인( ) 이/가 있다.

→ 관계해석

 

 

2. 다음은 대칭키 알고리즘에 관한 설명이다.

1) Xuejia Lai와 James Messey가 만든 알고리즘으로 PES 에서 IPES 로 변경되었다가,
1991년에 제작된 블록 암호 알고리즘으로 현재 국제 데이터 암호화 알고리즘으로 사용되고 있다.
64bit의 블록을 128bit의 키를 이용해 8개의 라운드로 구성하고 있다.

→ IDEA


2) 미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다.
전화기와 같은 음성을 암호화하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.

→ 스킵잭 (SKIPJACK)

 

 

3. H회사의 전체 제품 단가보다 큰 제품 출력을 하고자 한다.

 

[제품 테이블]

제조사 제품명 단가
A 과자 1,000
B 초콜릿 6,000
H 사탕 2,000
C 아이스크림 5,000
H 사탕 3,000

SELECT 제조사, 제품명, 단가 FROM 제품

WHERE 단가 > (  ) (SELECT 단가 FROM 제품 WHERE 제조사 = 'H') ;

 

[정답]

ALL

 

* 다중 행 연산자 → ____(조건) 과 같이, 괄호치고 조건오는 애들!

 ∙ IN(값1,값2) : 값1과 값2 중 하나 선택. 괄호안에 조건 x

 ∙ ANY(값1,값2) : 값1과 2중 더 큰 조건 만족하면 된다. (둘중 하나만!) =SOME()과 같다.

 ∙ ALL(값1,값2) : 괄호안의 두 조건이 모두 만족할때 (만약 변수<ALL(30,40)이라면, 30보다도 작고 40보다도 작아야하므로

                            겹쳐지는 부분인 30보다도 작은것이 답이 될 것이다)

 ∙ EXIST(조건) : 조건이 하나라도 존재하면 성립

괄호안에는 꼭 값이 오는건 아니다. 문제마다 다를 수 있으니 연산자 보고 이해

 

 

4. 다음 SQL 결과에 알맞는 답을 작성하시오.

 

[table]

index col1 col2
1 2 null
2 3 6
3 4 5
4 6 3
5 null 3
SELECT COUNT (COL2) FROM TABLE
WHERE COL1 IN (2,3) OR COL2 IN (3,5);

→ 4

 

* col1 이 2일 때 col2 는 null 값이므로 고려하지 않아야 한다.

따라서 5 아니고 4가 된다. (주의)

 

 

 

5. 다음은 네트워크에 관한 내용이다.

( ) 은/는 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해
데이터를 안전하게 익명으로 전송하는데 사용한디. 또한 사용자 IP주소를 마스킹하고 데이터를 암호화하여
수신 권한이 없는 사람이 읽을 수 없도록 한다.

→ VPN

 

 

 

6. 다음은 SOLID 원칙에 관한 내용이다. 

( ) 은/는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.
( ) 은/는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.
예를 들어 하나의 복합기에 프린터와 복사기, 팩스 메서드가 있는데 이 세가지 메서드는 같은 파일에 존재하므로 프린터 로직만 바뀌어도
복사기와 팩스도 재컴파일을 해야한다.

그러므로 ( ) 을/를 적용하여 로직이 바뀌어도 다른 메서드는 영향을 받지 않도록 해야한다.

→ ISP (interface segregation principle)

 

 

 

7. 다음 자바 코드에 알맞는 출력값을 작성하시오.

출처 수제비 카페

-8

 

 

8. 다음 소스코드의 출력값을 작성하시오.

struct A{ 
  int n, 
  int g
 
int main(){
  A a = new A[2
  for(i=0; i <2; i++) {
    a[i].n = i, 
    a[i].g=i+1  
  }
  System.out.printf(a[0].n + a[1].g);  
}

→ 2 (0+2)

 

 

9. IP 주소가 139.127.19.132이고 서브넷마스크 255.255.255.192일 때 아래의 답을 작성하시오.
(10진수로 표기)

(1) 괄호안에 들어갈 네트워크 주소 : 139.127.19.( )
(2) 해당 네트워크 주소와 브로드캐스트 주소를 제외한 호스트 개수

128, 62

 

[풀이]

서브넷마스크 마지막 자리 192를 이진수 변환하면  11000000 이므로, 0/26 임을 알 수 있다.

(=26번째 자리까지 네트워크주소로 쓰겠다. 8*3 으로 앞 3자리는 다 채워지고, 마지막 8비트 중 2개 사용)

 

IP주소 마지막 132는

00 000000 ~ 111111 (0~63)

01 000000 ~ 111111 (64~127)

10 000000 ~ 111111 (128~191) ✔️

11 000000 ~ 111111 (192~255)

 

체크 친 구간에 존재하고, 네트워크 주소는 가장 첫번쨰 주소이므로, 10000000 인 128이 된다.

 

다음으로, 사용가능한 주소의 갯수는 10000000~10111111 인데, 2^6개의 조합이 가능하므로 (0,1로) 64가 된다.

여기서 네트워크주소, 브로드캐스트 주소 (맨앞, 맨뒤)는 사용 불가능하므로 2를 빼주면 64-2=62개가 된다.

 

[참고한 영상]

https://youtu.be/obYRnoYAouk

 

 

10. 괄호안에 알맞은 단어를 쓰시오.

1. ( ) 테스트는 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업. 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업이다.

2. ( ) 테스트는 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트. 즉, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.

→ 베타

→ 알파

 

 

11. 다음 설명에 알맞는 테스트 용어를 보기에서 골라 작성하시오

오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험.

→ Regression test : 수정한 상태에서 또 새롭게 유입된 오류 없는지 확인

 

테스트 목적에 따른 분류

회복테스트(Recovery) = 일부러 실패유도해서 정상복귀여부 / 안전테스트(Security) / 성능테스트(Performance) = 응답시간, 처리량, 반응속도 등 / 구조테스트(Structure) = 복잡도 평가 / 회귀테스트(Regression) / 병행테스트(Parallel) = 구+신버전 동일데이터 입력해

 

∙ 회귀테스트 : 새로이 유입된 오류

∙ 병행테스트 : 여러버전 동시에 ...

 

 

12. 다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.

출처&nbsp;https://chobopark.tistory.com/291

프로젝트 연산은 조건 만족하는 컬럼에 속하는거 걍 다 가져오면 됨.

TTL,부장, 대리, 과장, 차장

 

 

13. 다음은 파이썬 코드이다. 알맞는 출력값을 작성하시오.

= "REMEMBER NOVEMBER"
= a[:3+ a[12:16];
= "R AND %s" % "STR";
print(b+c);

파이썬 슬라이싱에서 [st:end+1] 이라는 점 잘 기억하기!

→ REMEMBER AND STR

 

 

14. 다음 설명에 대해 보기에 주어진 답을 골라 작성하시오.

1. 라우터로 상호 접속이 되어있는 여러 개의 네트워크 집합으로 도메인 혹은 자율시스템(Autonomous System, AS)이라고 한다.
같은 도메인 내에 존재하는 라우터는 도메인 내부 라우터가 되고 도메인 외부에 존재하는 라우터는 도메인 외부 라우터가 되는데, 여기서 도메인 내부 경로 설정을 가르킨다.


2. 시스템 사이에 경로 설정 정보 등을 교환하기 위해 사용하는 프로토콜로써,
다른 도메인 사이에 라우팅 시 정리된 관리가 거의 없고 많은 경우에 신용도가 매우 낮아 빠른 수행보다는 보안과 제어가 본래의 목적이다.


3. IP 라우팅 프로토콜의 한 종류로써 RIP(routing information protocol)보다 규모가 큰 네트워크에서도 사용할 수 있다.
규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선한 라우팅 프로토콜로써 RIP에 비해 자세한 제어가 가능하고, 관리 정보의 트래픽도 줄일 수 있다.


4. 서로 다른 자율 시스템(AS)의 라우터 간에 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜이다.
각 목적지에 대한 전체 경로가 포함되며, 다른 시스템과 교환하는 네트워크 도달 가능성 정보의 데이터베이스를 유지한다.
네트워크 도달 가능성 정보를 사용하여 AS 연결 그래프를 구성하며, 이를 통해 라우팅 루프를 제거하고 AS 수준에서 정책 결정을 실행할 수 있다.

IGP (Interior gateway protocol)

BGP (Border gateway protocol)

OSPF (Open Shortest Path First) *RIP 단점보완

EGP (Exterior gateway protocol)

 

 

15. 다음 C언어에서 출력에 대한 알맞은 답을 작성하시오.

#include <stdio.h>
 
int len(char*p);
 
int main(){
 
  char*p1 = "2022";
  char*p2 = "202207";  
  
  int a = p1;
  int b = p2;
  
  printf("%d", len(a) + len(b));
 
}
 
int len(char*p){
  int r = 0;
  while(*!= \0'){
    p++;
    r++;
  }
}

10

 

변수 != '\0' 은 변수 != NULL 과 같다.

문자열 마지막엔 무조건 NULL값이 들어가므로 문자열 끝까지 반복한다.

(변수가 NULL이 아닌동안 반복) 즉, 입력한 문자열 길이 반환해주는 것과 같다.

 

** 문제 코드 잘 읽고 함수 뭐에 대입하는지 등 잘 알기

 

 

16.다음 C언어 코드에서 알맞는 출력값을 작성하시오.

#include <stdio.h>
 
int main(int argc, char *argv[]) {
int a[4= {0248};
int b[3= {};
int i = 1;
int sum = 0;
int *p1;
 
for (i; i < 4; i++) {
p1 = a + i;
b[i-1= p1 - a[i-1];
sum = sum + b[i-1+ a[i];
}
 
printf("%d", sum);
 
return 0;
}

→ 22

p1이 포인터라는 것 잘 이해하면 된다.

i = 1~3 총 3번 루프 도는데,

i=1 i=2 i=3
p1 = a + 1 (=2)
b[0] = 2 - a[0] (=2)
sum += b[0] + a[1] (=2+2=4)
p1 = a + 2 (=4)
b[1] = 4-a[1] (=2)
sum = 4 + 2 + a[2] (=10)
p1 = a + 3 (=8)
b[2] = 8 - a[2] (=4)
sum = 10 + 4 + a[3] (=22)

따라서 최종 sum 값은 22가 됨을 알 수 있다.

 

 

 

17. 다음 자바코드에서 알맞는 출력값을 작성하시오.

public class Conv{ 
public Conv(int a) {
this.a = a;
int func() {
int b =1
for (int i=1; i<a; i++){ 
= a * i + b 
}
return a +b;
}
int a;
}
 
public static void main(String[] args){
Conv obj = new Conv(3);
obj.a=5
int b = obj.func();
system.out.print(obj.a + b);
i
}

→ 61

 

* java에서 객체 생성할 때 new 클래스이름 (3); 등 괄호에 넣는 값은 변수가 아니다! (파이썬 등이었으면 맞다 생각했을 것)

따라서 무시하고 밑에 obj.a = 5; 로 선언한 뒤 int b = obj.func(); 이므로 

b 값은 Conv(5) 값을 계산하면 된다. (1~4까지 루프 돌리고 a+b 하면 값 5 + 51 = 56)

출력함수 내부의 obj.a (=5) + 56 = 61 이 된다.

 

 

 

18. 다음은 함수 종속성에 대한 설명이다. 해당 문제에 대한 알맞는 답을 보기에서 골라 작성하시오.

 

1 → 완전 함수적 종속 (Full Functional Dependency)

2 → 부분 함수적 종속 (Partial Functional Dependency)

 

 

 

[풀이]

1번은 질문하는 열이 다른 열 2개에 대해 둘 다 알아야 구분이 되었었으므로, 완전 함수적 종속이었다.

2번은 질물하는 열이 다른 열 하나만 알아도 식별이 가능했으므로 (중복되는 값 등 x) 부분함수적 종속이었다.

 

종속의 종류

- 완전 함수적 종속 (Full)

- 부분 함수적 종속 (Partial)

- 이행 함수적 종속 (Transitive)

- 다치종속 (=다중종속) (Multi)

- 조인종속

 

정규형 도부이결다조

1 (도메인이 원자값) - 2 (부분함수적 종속제거) - 3 (이행함수적 종속제거) - BCNF (결정자가 후보키가 아닌 함수종속 제거) - 4NF (다치조인 제거) - 5NF (조인종속 제거)

 

 

19. 다음 설명에 대한 알맞는 답을 보기에서 고르시오.

1. 인터넷에서 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다.
인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다.

2. 문자, 그래픽, 음성 및 영상을 하나의 연상 거미집(Web of Association)과 같이 서로 연결시켜, 제시된 순서에 관계없이 이용자가 관련된 정보를 검색할 수 있도록 하는 정보 제공 방법이다.
즉, 한 페이지에서 링크된 순서에 상관없이 사용자들이 원하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근하는 방식을 말한다.

3. 웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다.
또한, 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다.

→ HTTP

→ Hyper Text

→ HTML (hypertext markup language)

 

 

20. 모듈 F에 대한 팬인, 팬아웃

3,2

 

[풀이]

팬 인은 해당 모듈에 들어가는 화살표 갯수

팬 아웃은 해당 모듈에서 나가는 화살표 갯수 구하기

 

Comments