본문 바로가기
자격증/정보처리기사

준비정보처리기사 실기 2022년 1회 실기 정답및 개념정리

by 말린밴댕이_공부 2022. 11. 10.
반응형

1. 다음 설명에 맞는 RAID 단계를 쓰시오

ㅇ 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 디스크처럼 이용하는 기술이다.
ㅇ 스트라이프(Stripe) 방식으로 구현하여 I/O 속도가 빠르다.
ㅇ 데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다.

2. 다음은 로그 기반 회복기법에서 사용되는 명령어이다. 각 지문에 해당하는 명령을 적으시오.

1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후 실패가 발생하기 전까지의 과정을 재실행한다.
2. 로그를 이용하여 오류와 관련된 내용을 취소하여 복구한다.

3. 데이터베이스의 이상현상 중, 삭제 이상에 대해 간략히 설명하시오.

4. 아래에서 설명하는 임시 키 무결성 프로토콜의 영문 약어를 쓰시오.

ㅇ IEEE 802.11 무선 네트워킹 표준에 사용되는 보안 프로토콜
ㅇ IEEE 802.11i의 작업 그룹과 WiFi 얼라이언스에서 WEP를 하드웨어 교체 없이 대체하기 위해 고안

5. 아래에서 설명하는 내용을 영문 약자로 쓰시오.

키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경

6. 다음은 소스코드 분석도구에 대한 설명이다. 각 지문이 설명하는 분석 기법의 명칭을 쓰시오.

1. 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법
2. 소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 기법

7. 아래에서 설명하는 테스트 도구를 쓰시오.

자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 프레임워크이다

8. 다음 보기 중에서 블랙박스 테스트 기법을 3가지 골라 작성하시오.

a. Equivalence Partitioning
b. Boundary Value Analysis
c. Base Path Test
d. Loop Test
e. Cause-effect Graph
f. Decision Coverage
g. Statement Coverage

9. 다음 설명에 대한 답을 영어 약자로 작성하시오.

정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해 수립·관리·운영하는 정보보호 관리체계가 인증 기준에 적합한지를 심사하여 인증을 부여하는 제도

10. 다음은 데이터베이스 키에 대한 설명이다. 빈 칸에 들어갈 내용을 내용을 쓰시오.

1. 슈퍼키는 ( A )의 속성을 갖는다.
2. 후보기는 ( A )와(과) ( B )의 속성을 갖는다.

11. 다음에서 설명하는 공격 기법을 쓰시오.

이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 방식이다.

12. 다음은 V&V 모델을 형상화한 V다이어그램이다. 빈칸에 들어갈 말을 쓰시오.

 

13. 다음 SQL 결과에 알맞는 쿼리을 작성하시오.

[성적 테이블]
번호  이름   점수
1    홍길동  95
2    임꺽정  90
3    유관순  80
4    이성계  60

SELECT 번호, 이름, 점수 FROM 성적 ( 1 ) BY ( 2 ) ( 3 )

14. 다음에서 설명하는 파이썬 함수를 작성하시오.

1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
3. 리스트 내부의 요소의 순서는 뒤집는 역할

15. 다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.

def exam(num1, num2=2):
  print('a=', num1, 'b=', num2)
exam(20)

16. 다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.

class Car implements Runnable{
  int a;

  public void run(){
     system.out.println("Hello")
  }
}

public class Main{
  public static void main(String[] args){
    Thread t1 = new Thread(new ___());
    t1.start();
  }
}

17. 다음 Java 코드의 출력 결과를 작성하시오.

class A {
  int a;
  int b;
}

public class Main {

  static void func1(A m) {
    m.a *= 10;
  }

  static void func2(A m) {
    m.a += m.b;
  }

  public static void main(String args[]){

  A m = new A();

  m.a = 100;
  func1(m);
  m.b = m.a;
  func2(m);

  System.out.printf("%d", m.a);
  }
}

18. 다음 소스코드에서 입력값이 5가 들어왔을때 출력되는 값을 작성하시오.

#include <stdio.h>
int func(int a) {
  if (a <= 1) return 1;
  return a * func(a - 1);
}

int main() {
  int a;
  scanf("%d", &a);
  printf("%d", func(a));
}

19. 다음 C언어 프로그램의 괄호 안에 들어갈 알맞은 연산자를 작성하시오.

#include <stdio.h>
int main() {
  int number = 1234;
  int div = 10;
  int result = 0;

  while (number ( 1 ) 0) {
    result = result * div;
    result = result + number ( 2 ) div;
    number = number ( 3 ) div;
  }

  printf("%d", result);
  return 0;
}

[result]

4321

 

20. 다음 C언어 프로그램의 결과를 쓰시오.

#include <stdio.h>
int isPrime(int number) {
  int i;
  for (i=2; i<number; i++) {
    if (number % i == 0) return 0;
  }
  return 1;
}

int main(void) {
  int number = 13195, max_div=0, i;
  for (i=2; i<number; i++)
  if (isPrime(i) == 1 && number % i == 0) max_div = i;
  printf("%d", max_div);
  return 0;
}

 

 

정답 및 해설

1. RAID-0

2. redo / undo

3. 데이터를 삭제할 경우 원하지 않는 다른 데이터도 삭제되어버리는 이상

4. TKIP(Temporal key Intergrity protocol)

5. NUI

6. 정적 분석 기법, 동적 분석 기법

7. Junit

8. a, b, e

9. ISMS (Information Security Management System)

10. 유일성, 최소성

11. 워터링 홀(Watering Hole)

12. a.단위 테스트 b. 통합테스트 c. 시스템 테스트 d. 인수테스트

13. ORDER , 점수 , DESC

14. extend, pop, reverse

15. a = 20 , b= 2

16. Car

17. 2000

18. 120

19. >, %, /

20. 29

RAID

하드디스크 여러 개를 활용하여 속도 향상이나 안전성 향상을 높이는 기술

0~6까지 있음 → https://itwiki.kr/w/RAID

RAID-0

  • 속도 향상만을 추구하는 스트라이핑 모델
  • 디스크 n개에서 n배의 속도를 가진다.

RAID-1

  • 안정성만을 추구하는 미러링 모델
  • 읽기 속도는 n배 향상되지만, 쓰기 부하는 n배로 늘어난다.

RAID-2

  • RAID 0과 같이 스트라이핑으로 구현하고, 오류 정정을 위한 Hamming code를 사용
  • 최근 디스크드라이브는 자체적으로 오류정정 기능이 있으므로, 거의 사용되지 않음

데이터이스 이상현상

삽입할때 잘못 삽입됨, 갱신할때 잘못 갱신됨 등의 일반적인 내용이다. 아래 정규화과정에서 예시 참고

  • 삽입 이상(Insertion Anomaly)
    • 데이터 삽입 시 의도와 다른 값들도 삽입됨
  • 삭제 이상(Delete Anomaly)
    • 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제됨
  • 갱신 이상(Update Anomaly)
    • 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생

→ 해결 : 데이터베이스 정규화를 통해서 해결한다

Temporal Key Integrity Protocol

Wi-Fi Alliance가 802.11i 제정 전에 2002년12월경 미리 도입 확산시킨 암호화 방식

Natural User Interface

NUI는 사용자가 최대한 자연스럽게 사용할 수 있는 사용자 인터페이스를 의미한다.

APT

Advanced Persistent Threat특정 목표대상에 대해 취약점을 파악하고 지속적으로 다양한 방법을 이용하여 공격하는 방법

  • 국내에선 APT 공격이라고 부르는데 마지막의 T가 Threat(위협)이므로 '공격'이라는 말을 덧붙이면 어색해진다. 붙이지 않는 것이 맞다.
  • 일률적인 공격법이 아니라 대상과 상황에 따라 적절한 공격을 시도하므로 탐지 및 차단이 어렵다.
  • 공격 기술이 아닌 공격 절차이기에 단편적인 기술로 대응할 수 없다.

관련 항목

파이썬  리스트 함수

선언

리스트의 표현 방법은 [] - (대괄호, 꺾쇠괄호를 사용) 

append() 함수 

파이썬에서 append() 함수는 맨 마지막에 값을 붙인다라는 개념

append 함수의 사용은  리스트명. append(값)으로 사용

reverse() 함수 

reverse뜻이 뒤집다 라는 뜻 그대로 리스트를 뒤집을 수 있는 함수

 reverse 함수의 사용은 리스트명. reverse()처럼 사용

 insert() 함수 

insert() 함수를 이용하면 리스트의 원하는 자리에 값을 넣어줄 수 있다.

insert() 함수의 사용은 리스트명. insert(자리, 값)처럼 사용

delete 함수 

리스트를 사용하다가 값을 삭제할 때 쓰는 함수

리스트를 삭제할 때는 del 리스트명[리스트 방]으로 사용

remove() 함수 

앞에서 나온 delete 함수는 리스트의 방 주소로 값을 삭제했다면, remove() 함수는 리스트 안에 들어있는 값들 중 하나를 선택하여 삭제할 수 있는 함수

remove() 함수 사용은, 리스트명. remove(값)으로 사용

pop() 함수 

자료구조의 pop의 개념을 생각하면 된다.

pop은 맨 마지막에 위치한 값을 빼내어 삭제하는 것을 의미합니다.

extend() 함수 

extend 뜻 그대로 리스트를 확장한다는 개념

extend() 함수의 사용은 리스트명 1.extend(리스트명 2)으로 사용된다.

반응형

댓글