관리 메뉴

+ Repository +

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

자격증/정보처리기사

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

jaeti 2022. 7. 17. 21:12

1. 네트워크 장치를 필요로하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크는? (*센서망, 재난망 등)

→ 애드혹 네트워크

 

무선 네트워크 구성방식

  1. 애드혹 네트워크 (센서망, 재난망)
  2. InfraStructure (이동통신망)
  3. 메쉬 네트워크 (무선 백본망)

 

 

2. 다음에서 설명하는 개념을 쓰시오.

(1) 사람의 감정이나 경험을 나타내는 개념.

(2) 사용자 인터페이스. 예로는 CLI가 있다.

→ UX

→ UI

 

 

 

3. 트랜잭션의 특징 중, 원자성(Atomicity)에 대해 약술하시오.

→ 모두 반영되거나, 아니면 전혀 반영되지 않아야 한다.

 

트랜잭션의 특징

  1. 원자성 : 모두 반영되거나, 아니면 전혀 반영되지 않아야 한다.
  2. 일관성 : 트랜잭션의 작업처리 결과가 항상 일관성이 있어야 한다.
  3. 독립성 : 둘 이상의 트랜잭션이 동시에 실행되고 있을 때, 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어들 수 없다.
  4. 지속성 : 트랜잭션이 성공적으로 완료되었을 경우에 결과는 영구적으로 반영되어야 한다.

 

4. 다음은 제 ( ) 정규형으로 부분 함수적 종속성 제거하여 완전 함수적 종속을 만족하는 정규형이다. 괄호안에 들어갈 답안을 쓰시오.

→ 2

 

0 → 1 → 2 → 3 → BCNF → 4 → 5

도 부 이 결 다 조

 

정규형

-제 1정규형 : 도메인이 원자값

-제 2정규형 : 부분 함수적 종속 제거

-제 3정규형 : 이행적 함수 종속 제거

-BCNF : 결정자이면서 후보키가 아닌 것 제거

-제 4정규형 : 다치 종속 제거

-제 5정규형 : 조인 종속 제거

 

 

 

5. 테이블의 튜플을 수정하고자 한다. 올바른 SQL을 작성하기 위해 빈칸을 채우시오.

(   ) 테이블명 (    ) 컬럼 = 값 WHRE 점수 >= 90;

→ UPDATE, SET

* 수정은 update, set 이다.

 

 

 

6. 다음은 Inner Join을 하기 위한 SQL이다. 빈칸에 들어갈 문구를 적으시오.

SELECT .... FROM 학생정보 a JOIN 학과정보 b (   A   ) a.학과 = b.(   B   )

→ ON

→ 학과

*ON으로 조건 달아준다.

 

 

 

7. 다음 파이썬 코드의 결과를 적으시오.

a = 100
result = 0
for i in range(1,3);
   result = a >> i
   result = result + 1
print(result)

→ 26

 

*shift연산 오른쪽으로 >> ⇒ /2

왼쪽으로 << ⇒ *2

i가 뭔지는 나누고 곱하는 값과는 상관이 없다. 몇번 하느냐와만 관련~

 

 

 

8. 미국 국립 표준 기술연구소 (NIST), DES를 대체하며, 128 비트 블록 크기와 128,192,256비트 키 크기의 대칭 키 암호화 방식은?

→ AES

 

 

9. 다음은 화이트 박스 테스트 검증 기준에 대한 설명이다. 다음에서 설명하는 알맞은 용어를 보기에서 찾아 쓰시오.

(1) 최소 한 번은 모든 문장을 수행한다.
(2) 결정(Decision) 검증 기준이라고도 하며 조건 별로 True/False일 때 수행한다.
(3) (2)와 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행한다.

[ 보기 ]

다중 조건 커버리지, 변형 조건 / 결정 커버리지, 조건 커버리지, 결정 커버리지, 구조 커버리지, 구문 커버리지

→ 구문 커버리지

→ 결정 커버리지

→ 조건 커버리지

 

 

 

10. 다음은 '이'씨 성을 가진 사람의 이름을 내림차순으로 출력하기 위한 SQL문이다. 괄호안에 들어갈 알맞은 답안을 작성하시오.

SELECT ... FROM ... WHERE 이름 LIKE (    A    ) ORDER  BY (    B     )

→ ‘이%’

→ 이름 DESC

 

오름차순 ASC

내림차순 DESC

정렬 앞에 뭘 정렬할지 써줘야 한다.

여러개여도 각자 이름 DESC, 학번 DESC 와 같이 따로 써줘야함!

 

 

 

 

11. 다음 각 번호에 해당하는 응집도를 보기에서 찾아 쓰시오.

(1) 입출력 간 연관성은 없으나, 순서에 따라 수행할 필요가 있다.
(2) 동일한 입출력을 사용한다.
(3) 하나의 기능에 모두 기여하고 밀접하게 관련되어 있다.

[ 보기 ]

기능적(functional), 시간적(temporal), 교환적(communication),

절차적(procedural), 순차적(sequential), 우연적(coincidental), 논리적(logical)

→ 절차적 응집도

→ 교환적 응집도

→ 기능적 응집도

 

 

응집도와 결합도

모듈간에 상호의존, 두 모듈간의 연관관계 : 결합도

모듈의 내부 요소들, 모듈이 독립적인 기능으로 정의되어있는 정도 : 응집도

결합도가 낮을수록, 응집도가 높을수록 품질이 좋다.

 

[ 결합도 ]

내공외제스자

 

[ 응집도 ]

우논시절통순기

 

 

 

12. 다음에서 설명하는 패킷 교환 방식을 작성하시오.

(1) 목적지 호스트와 미리 연결한 후, 통신하는 연결형 교환 방식
(2) 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식

→ 가상 회선 방식

→ 데이터그램 방식

 

[풀이]

1) 패킷교환방식

- 데이터그램

- 가상회선

2) 서킷교환방식

 

 

13. 다음 괄호 안에 들어갈 디자인 패턴의 명을 적으시오.

디자인 패턴 중 ( ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로 클래스나 객체들이 상호작용하는 방법이다. 알고리즘 등과 관련된 패턴으로 그 예는 Interpreter, Observer, Command 가 있다.

→ 행위 패턴

 

 

 

14. 병행제어기법 중, 접근한 데이터에 대한 연산을 모두 마칠 때까지 상호 배제하는 기법을 무엇이라 하는지 작성하시오.

→ 로킹

 

*병행제어기법 종류

  1. 로킹 : 접근한 데이터에 대한 연산을 모두 마칠 때까지 상호 배제하는 기법.
  2. 타임스탬프 순서 (Time stamp ordering) : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(time stamp)를 부여하여 부여된 시간에 따라 작업을 수행하는 기법.
  3. 최적 병행 수행 : 병행수행하고자 하는 대부분의 트랜잭션이 읽기 전용 트랜잭션일 경우, 트랜잭션 간의 충동률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법.
  4. 다중 버전 기법 : 타임 스탬프의 개념을 이용한 기법으로 타임 스탬프는 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만 다중 버전 기법은 갱신될 때마다의 버전을 부여하여 관리하는 기법.

 

 

15. 럼바우 데이터 모델링에 관한 설명으로써, 각 번호에서 설명하는 모델링 기법을 보기에서 찾아서 작성하시오.

(1) 입력값이 출력값일 때 - 예) 자료 흐름도(DFD)
(2) 시간에 따라 변하는 것 - 예) 상태 변화도(DFD)
(3) 구조 - 예) ER다이어그램(ERD)

[ 보기 ]

Operation, Sequence, Information, Transaction, Function, I/O, Dynamic, Architecture, Cause-Effect, Constraint, Rebuilding, Duration

 

→ Function Modeling (=기능적 모델링)

→ Dynamic Modeling (=동적 모델링)

→ Information Modeling (=객체 모델링 == Object Modeling)

 

 

  • 럼바우 —> 객동기 (*분류하는거 어렵닷)

 

 

16. 다음은 C언어에 관한 소스코드이다. 실행 결과값을 작성하시오.

int mp(int base, int exp);
int main(){
   int res;
   res = mp(2,10);
   printf("%d",res);
   return 0;
}

int mp(int base, int exp) {
   int res = 1;
   for(int i=0; i < exp; i++){
      res = res * base;
   }
   
   return res;
}

→ 1024

 

 

 

17. 이것은 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드이다. 다음의 출력 결과를 보고 괄호안에 알맞은 답안을 작성하시오.

public class Test {
   public static void main(String[] args){
      system.out.print(Test.check(1));
   }
   
   (  괄호  )  String check (int num) {
      return (num >= 0) ? "positive" : "negative";
   }
}

[ 출력결과 ]
Positive

→ static

*객체를 생성하는 과정 [ test = new test() ] 없이 바로 system.out.print~ 등으로 Test 객체 사용했으므로, check 메소드는 static이어야 한다.

 

 

 

18. 다음 C언어 코드의 실행 결과를 적으시오.

int main() {
	int ary[3];
	int s = 0;
	*(ary + 0) = 1;
	ary[1] = *(ary + 0) + 2;
	ary[2] = *ary + 3;
	for(int i = 0; i < 3; i++) {
		s = s + ary[i];
	}
	printf("%d", s);
}

→ 8

 

 

 

19. 다음 JAVA 코드의 실행 결과를 적으시오.

public class over {
	public static void main(String[] args){
    	ovr a1 = new ovr1();
        ovr a2 = new ovr2();
        System.out.println(a1.sun(3,2) + a2.sun(3,2));
    }
    
    int sun(int x, int y){
    	return x + y;
    }
}

class ovr2 extends ovr1 {
	int sun(int x, int y){
    	return x - y + super.sun(x,y);
    }
}

→ 11

5+6

 

 

 

20. 다음 괄호 안에 알맞은 답안을 작성하시오.

테스트 하네스의 도구 구성 요소 중, 상향식 테스트시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시, 하위 모듈 역할을 대신하는 테스트 ( ) 이 있다.

→ 스텁 (Stub)

  • 테스트 하네스 : 시스템 및 시스템 컴포넌트 시험하는 환경의 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터. 시험 드라이버라고도 하며, 일반적으로 단위 시험이나 모듈 시험에 사용하기 위해 코드 개발자가 만든다.
  • 테스트 하네스 도구 구성 요소 : 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스, 테스트 스크립트, 목 오브젝트

* 상향 드라이버 하향 스텁

Comments