[정보처리기사 실기] 2020 4,5회

bonnie·2021년 9월 24일
0
post-thumbnail

📌 3회차 시험 등록했으니 다시 시작하는 마음으로 집중!!!!
출처 : https://ss-o.tistory.com/125

1. IPv6

IPv4의 확장형, 대안으로 나온 것으로 128비트 16비트씩 :(콜론)으로 구분하는 것

2. 디자인 패턴의 구분

생성, 구조, 행위

3. 패키지 다이어그램

다이어그램의 요소를 조직화하여 패키지 형태로 나타냄
(Package 안에 여러 Class가 존재하는 그림)
참고 : https://sung0woo.tistory.com/433
https://m.blog.naver.com/icbanq/221781238065

4. 즉시 갱신 기법 - 데이터베이스 회복

<데이터베이스 회복 기법>

  • 즉시 갱신 기법 - 로그 기반 회복 기법
    • Rollback시 REDO, UNDO가 모두 실행 되는 트랜잭션 처리법.
    • 트랜 잭션 수행 중에 갱신 결과를 DB에 즉시 반영해아함.
    • 데이터를 변경하면 로그파일로 저장되며 수정시 즉시 DB에 반영됨.
  • 지연 갱신 기법 - 로그 기반 회복 기법
    • 트랜잭션이 부분 완료 상태에 이르기 까지 발생한 모든 변경 내용을 로그파일에만 저장함.
    • DB에는 커밋이 발생하기 전까지 저장을 지연시키는 기법.
    • 회복 과정에서 UNDO가 필요하지 않고 이를 통해 트랜잭션의 원자성을 보장할 수 있음.
  • 체크포인트 회복 기법 - 검사점 회복 기법
    • 시스템 장애시 REDO, UNDO를 해야할 트랜잭션을 결정하기 위해서 로그 전체를 확인 해야하는데, 이 경우 시간 소요가 크고 REDO 할 필요가 없는 트랜잭션을 다시 REDO해야하는 문제가 발생함. 이를 해결하는 기법.
    • UNDO를 수행하여 회복하는 것을 후진 회복, REDO를 수행해 회복하는 것을 전진 회복.
  • 그림자 페이징 기법
    • 로그를 사용하지 않고, 트랜잭션을 실행하는 동안 현재 페이지 테이블과 그림자 페이지 테이블 2개를 관리하는 기법.
    • 데이터 변경시 현재 페이지 테입름나 변경, 회복시 현재 페이지 테이블을 그림자 테이블로 대체함.
    • UNDO연산이 간단하고, REDO 연산이 필요 없기 때문에 신속한 회복이 가능.
  • 미디어 회복 기법
    • 비휘발성 저장 장치가 손상될 경우 사용되는 회복 기법.
    • 주기적으로 데이터를 덤프하여 장애 시, 최근 덤프를 DB에 적재함.
    • 덤프를 다른 저장소에 옮길 때 대용량 데이터 전송이 필요하고 이 때, 트랜잭션 처리를 중단해야하기 때문에 CPU 낭비가 되어 비용이 많이 소요됨.

<REDO와 UNDO>

  • REDO : 트랜잭션 로그를 이용해 오류가 발생한 트랜잭션을 재실행하여 복구를 수행 - 영속성 보장
  • UNDO : 트랜잭션 로그를 이용하여 오류와 관련된 모든 변경을 취소하여 복구 수행 - 원자성 보장

5. Java

// 10을 2진수로 변환하는 문제
public class Test{
  public static void main(String[] args){
    int a[] = new int[8];
    int i = 0, n = 10;
    while(){
      a[i++] =;
      n /= 2;
    }
    for(i=7; i>=0; i--){
    	System.out.printf("%d", a[i]);
    }
    
  }  
}

① : n > 0
② : n % 2

6. Java

// 배열 크기 정하기
public class Test{
  public static void main(String[] args){
    int[][] array = new int[][];
    int n = 1;
    for(int i=0; i<3; i++){
      for(int j=0; j<5; j++){
        array[i][j] = j*3 + (i+1);
        System.out.print(array[i][j] + "");
      }
      System.out.println();
    }
  }
}

① : 3
② : 5

7. 스니핑

  • 공격대상에게 직접 공격하지 않고 데이텀나 몰래 들여다보는 수동적 공격 기법.
  • 네트워크 중간에서 남의 패킷 정보를 도청하는 해킹 유형.

8.NAT

컴퓨터 네트워킹에서 쓰이는 용어로, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술로 네트워크 주소 변환이라고 함

9. Python

a = [[1,2,3], [4,5], [6,7,8,9]]
print(a[0])
print(a[2][1])

for sub in a:
  for item in sub:
    print(item, end="")
  print()

[1,2,3]
7
1 2 3
4 5
6 7 8 9

10. 블록체인

온라인 금융 거래 정보를 블록으로 연결하여 P2P 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자(peer)들의 개인 디지털 장비에 분산 저장시켜 공동으로 관리하는 방식

11. 하둡

분산 환경에서 빅 데이터를 저장하고 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크로, 더그 커팅과 마이크 캐퍼펠라가 개발했으며 구글 맵 리듀스를 대체함

12. 데이터베이스 이상 현상의 종류

삽입 이상, 갱신 이상, 삭제 이상

13. 프로세스 상태 전이도

프로레스 상태 전이도

이미지 출처 : https://itwiki.kr/w/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%83%81%ED%83%9C#/media/%ED%8C%8C%EC%9D%BC:%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%83%81%ED%83%9C%EC%A0%84%EC%9D%B4%EB%8F%84.png

14. 샘플링 오라클

특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공해주는 오라클로, 전 범위 테스트가 불가한 경우 사용함. 경계값, 구간별 예상 값 결과 작성 시 사용함

15. 동치 분할 테스트(동등 분할 테스트)

  • 블랙박스 테스트의 한 종류로, 입력 자료에 초점을 맞춰 테스트케이스를 만들고 검사하는 방법.
  • 입력 조건에 타당한 입력 자료와 그렇지 않은 자료의 개수를 균등하게 분할해 테스트케이스를 정함
  • 각 영역에 해당하는 입력 값을 넣고 예상되는 출력 값이 나오는지 실제 값과 비교하는 기법
평가 점수테스트 데이터
90 ~ 10095
80 ~ 9085
70 ~ 8078
60 ~ 7065
~ 6055

16. group by, 집계함수, as를 포함한 SQL 작성

[결과]

학과학과별튜플수
전기1
컴퓨터2
전자2

SELECT 학과, COUNT(학과) AS '학과별튜플수' FROM 학생 GROUP BY 학과;

17. 유닉스(Unix)

1960년대 말 미국 AT&T 벨(Bell) 연구소에서 개발한 운영체제로 거의 C언어로 구현. 구조적 파일 시스템, 시스템의 파일이 하나의 트리구조를 가짐.

18. C언어 포인터

char *p = "KOREA";
printf("%s\n" , p);
printf("%s\n" , p+3);
printf("%c\n" , *p);
printf("%c\n" , *(p+3));
printf("%c\n" , *p+2);

KOREA
EA
K (*p는 곧 p[0])
E
M (*p = K 이고 포인터 값이 +2이므로 K, N, M
참고 : C언어 포인터 이해하기

19. Java(상속, 재귀)

class Parent{
  int compute(int num){
    if(num <= 1) return num;
    return compute(num - 1) + compute(num - 2);
  }
}

class Child extends Parent{
  int compute(int num){
    if(num <= 1) return num;
    return compute(num - 1) + compute(num - 3);
  }
}

class Test{
  public static void main(String[] args){
    Parent obj = new Child();
    System.out.print(obj.compute(4));
  }
}

자료형은 상위 클래스인 Parent, 객체 생성은 하위 클래스인 Child -> 오버라이딩

  • 오버라이딩 : 상위 클래스의 메소드를 하위 클래스가 재정의하는 것
    오버라이딩 메소드는 상위클래스의 메소드 보다 우선순위가 높기 때문에 하위 클래스의 메소드를 우선 실행함.
    obj.compute(4) => Child의 int compute(int num) 메소드를 실행함.
    num = 4, compute(3) + compute(1) = return 1
    compute(3) => compute(2) + compute(0) = return 0
    compute(2) => compute(1) = return 1 + compute(-1) return -1
    ∴ 1 + -1 + 0 + 1 = 1
    답 : 1

20. 보안요소의 가용성

  • 인가 받은 사용자는 언제라도 사용이 가능한 것을 의미함
  • 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성
profile
괴발🐱개발🐶

0개의 댓글