Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

AngzavA

[정보처리기사 실기] 기출정리 2021년 2회 본문

정보처리기사

[정보처리기사 실기] 기출정리 2021년 2회

이앙지 2023. 7. 17. 11:55

1. AD-hoc Network(애드혹)

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

 

토폴리지 = 형태 > 선형, 망형, 링형 ,, 등

 

 

2. UX, UI

(1) 사람의 감정이나 경험을 나타내는 개념
(2) 사용자 인터페이스. 예로는 CLI이 있다.

 

 

3. 26

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

>>는 파이썬에서 비트 오른쪽 시프트 연산자입니다. 이 연산자는 정수의 이진 표현을 오른쪽으로 지정된 비트 수만큼 이동시킵니다. 각 비트는 오른쪽으로 이동하며, 이동된 비트는 최하위 비트(가장 오른쪽 비트)에서 삭제되고, 왼쪽에는 0이 추가됩니다.

 

x >> n와 같이 작성하면, x의 비트 표현을 n만큼 오른쪽으로 이동시킵니다. 결과적으로 x를 2의 n승으로 나눈 값과 동일한 결과를 얻을 수 있습니다.

여기에 예시를 들어 설명하겠습니다. 이진수에서 오른쪽으로 1비트 시프트하는 것은 2로 나누는 것과 같습니다. 예를 들어, 10진수 12는 이진수로 1100입니다. 이진수 1100을 오른쪽으로 1비트 시프트하면 0110이 됩니다. 이 값은 10진수로 6과 동일합니다.

또 다른 예시로, 10진수 8은 이진수로 1000입니다. 이진수 1000을 오른쪽으로 2비트 시프트하면 0010이 됩니다. 이 값은 10진수로 2와 동일합니다.

따라서, a >> i와 같이 사용되는 경우, 변수 a의 이진 표현을 i 비트만큼 오른쪽으로 이동시키는 것이며, 결과적으로 a를 2의 i승으로 나눈 값을 얻을 수 있습니다.

이것이 >> 연산자의 기본적인 설명입니다.

 

  2^6 2^5 2^4 2^3 2^2 2^1 2^0
  10진수 64 32 16 8 4 2 1
초기상태 100 1 1 0 0 1 0 0
i=1일 때                
>>1 50 0 1 1 0 0 1 0
+1 51 0 1 1 0 0 1 1
result 51              
i=2일 때                
>>2 25 0 0 1 1 0 0 1
+1 26 0 0 1 1 0 1 0
result 26              
최종 결과 result=26              

 

 

4. 행위

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

 

5. 원자성

 

6. 2정규

부분 함수적 종속성 제거하여 완전 함수적 종속을 만족하는 정규형

 

7. AES

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

 

DES - 64bit블록, 56bit 암호화키 사용/  Feistel암호 방식 사용

SEED - 순수 국내기술로 개발  128bit 및 256bit 대칭 키 블록

ARIA -  국내/ AES 알고리즘과 똑같이 128/192/256 bit 암호화키 지원

IDEA - 스위스에서 만들어진 블록 암호 / Feistel방식과 SPN 방식 중간형태

SKIPJACK- 미국 / 64bit 입출력 80bit 키 32 라운드/ 전화기와 같은 음성 암호화하는데 사용

 

 

8. 8

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);
}

//정수 3개 짜리 ary 배열 선언
//정수 변수 s 초기화
//ary 배열 첫 번째 포인터 값 할당
//ary 배열 두 번째 값 할당 -> ary 배열 첫 번째 포인터 값+2=3 이므로 ary[1]=3
//ary 배열 세 번째 값 할당 -> ary 배열 첫 번째 포인터 값+3=4 이므로 ary[2]=4
//for문 i=0~2 1씩 증가(0,1,2)
//i=0일 때 s=0+1
//i=1일 때 s=1+3
//i=2일 때 s=4+4 이므로
=> 정답은 8

 

*(arr+0)  === arr[0] = *arr

 

 

9. 11

public class ovr1 {
	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);
    }
}

 

 

10. "이%", DESC

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

 

11. 로킹

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

 

 

12. 절차적, 교환적, 기능적

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

[보기] 기능적(functional), 시간적(temporal), 교환적(communication), 절차적(procedural), 순차적(sequential), 우연적(coincidental), 논리적(logical)

 

 

13. UPDATE ~ SET

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

 

 

14. 가상 회선 방식 / 데이터그램 방식

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

가상회선: 연결형 교환 방식

데이터 그램: 비연결형 교환 방식

 

 

15. ON 학과

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

 

 

16. 스텁

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

상향식 = 테스트 드라이버

 

 

17. static

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 변수 및 메소드 특징 

  • 인스턴스(객체를 생성하지 않고도 사용할 수 있다. 
  • 클래스가 메모리에 로드될때, 스태틱 메모리 영역에 생성된다.
  • static 메소드 안에서는 static 멤버들만 사용할 수 있고, 인스턴스 멤버는 사용할 수 없다. 

test 객체를 생성하는 과정 없이, 즉 test test_inst = new test() 없이 곧바로 system.out.print(test.check(1))으로 test 메소드를 호출했으므로 check 메소드는 static이어야 합니다. 

 

 

18. 구문 커버리지 / 결정 커버리지 / 조건 커버리

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

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

 

구문 커버리지(Statement Coverage)
  • 테스트 스위트에 의해 실행된 구문이 몇 퍼센트인지 측정하는 것
  • 다른 커버리지에 비해 가장 약함
결정 커버리지(Decision Coverage)
  • Branch Coverage라고도 부름
  • 결정 포인트 내의 전체 조건식이 최소한 참 한번, 거짓 한번을 갖는지 측정하는 것
  • 개별 조건식의 개수와 상관없이 테스트 케이스의 최소 개수는 2 개
  • 조건, 조건/결정 커버리지에 비해 약함
조건 커버리지(Condition Coverage)
  • 전체 조건식의 결과와 관계없이 각 개별 조건식이 참 한번, 거짓 한번을 모두 갖도록 조합하는 것
  • 결정 커버리지 보다 강력한 형태의 커버리지
조건/결정 커버리지(Condition/Decision Coverage)
  • 전체 조건식의 결과가 참 한번, 거짓 한번을 갖도록 각 개별 조건식을 조합하는데
    • 이때 각 개별 조건식도 참 한번, 거짓 한번을 모두 갖도록 개별 조건식을 조합
  • 결정 커버리지와 조건 커버리지를 포함하는 커버리지
변경 조건/결정 커버리지(Modify Condition/Decision Coverage)
  • 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 독립적으로 영향을 주도록 함
  • 결정 커버리지, 조건/결정 커버리지 보다 강력
다중 조건 커버리지(Multiple Condition Coverage)
  • 결정 포인트 내에 있는 모든 개별 조건식의 모든 가능한 논리적 조합고려
  • 가장 강력한, 논리적 수준의 100% 커버리지를 보장

 

 

19. 기능 / 동적 / 객체

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

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

객체 모델링(Object, Information)

  • 객체 다이어그램(E-R 다이어그램) 으로 표시
  • 가장 중요하며 선행되어야 할 모델링 

동적 모델링(Dynamic)

  • 상태 다이어그램(상태도)를 이용해 시간의 흐름에 따른 객체들 간
    제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는
    모델링 

기능 모델링(Functional)

  • 자료 흐름도(DFD)를 이용해 다수의 프로세스들 간의 자료 흐름을 
    중심으로 처리
  • 어떤 데이터를 입력해 어떤 결과를 구할것인가 표현 

 

20. 1024

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;
}

2^10