IT자격증

2022-1 정처기 실기 newbt 기출문제

JDonly 2024. 10. 17. 21:51

https://newbt.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2022%EB%85%84%201%ED%9A%8C

 

뉴비티 기출문제 문제은행 - 완전 새로운 CBT, iBT 문제풀이 시스템

기사, 공무원, 공인중개사 등 로그인 필요 없는 수백가지 시험 기출문제 문제은행 시험 자격증 족보 2024년 최신

newbt.kr

 

* 개념참고

2024.10.12 - [IT자격증] - 2024 정보처리기사 실기 요약

 

 

[ 정보처리기사 실기 2022년 1회 ]

* Q.1 ) RAID

리눅스에서의 레이드(RAID)는 여러 개의 하드 드라이브를 묶어서 하나의 논리적인 드라이브로 인식하게 하는 기술로, 데이터의 안정성과 성능을 향상시키는 목적으로 사용됩니다. RAID는 여러 레벨로 구성되며, 각 레벨은 다양한 데이터 보호 및 성능 기능을 제공합니다. 주요 RAID 레벨은 다음과 같습니다:

  RAID 0:  RAID 0은 스트라이핑(Striping) 기술을 사용하여 데이터를 여러 드라이브에 분산시킵니다. 이로 인해 입출력 성능이 향상되지만, 하나의 드라이브가 손상되면 전체 데이터가 손실될 수 있으므로 데이터 복구 및 안정성이 없습니다.

  RAID 1:  RAID 1은 미러링(Mirroring) 기술을 사용하여 데이터를 여러 드라이브에 중복 저장합니다. 한 드라이브가 손상되어도 나머지 드라이브에 데이터가 유지되므로 높은 안정성을 제공합니다. 하지만 저장 공간의 절반이 중복되므로 저장 용량은 실제 드라이브의 절반이 됩니다.

  RAID 5: RAID 5는 데이터와 패리티 정보를 여러 드라이브에 분산 저장하여 안정성을 제공하는 레벨입니다. 패리티는 손상된 드라이브에서 데이터를 복구하는 데 사용됩니다. 최소 3개의 드라이브가 필요하며, 하나의 드라이브가 손상되어도 데이터를 복구할 수 있습니다.

  RAID 6: RAID 6은 RAID 5와 유사하지만 패리티 정보를 두 개의 드라이브에 저장하여 두 개의 드라이브가 동시에 손상되어도 데이터를 복구할 수 있습니다. 최소 4개의 드라이브가 필요합니다.

  RAID 10 (RAID 1+0): RAID 10은 RAID 1과 RAID 0을 결합한 방식으로, 미러링과 스트라이핑을 모두 사용하여 안정성과 성능을 모두 제공합니다. 최소 4개의 드라이브가 필요하며, 드라이브의 절반이 데이터 저장용이고 나머지 절반은 미러링에 사용됩니다.

 

 

* Q.2 ) 로그기반 회복기법 명령어 - "redo", "undo"

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

 

 

* Q.3 ) 데이터베이스 이상현상 - "삭제현상" 서술 

1. 삽입 이상(Insertion Anomaly) : 데이터 삽입 시 원하지 않는 다른 데이터도 삽입됨

2. 삭제 이상(Delete Anomaly) : 데이터 삭제 시 원하지 않는 다른 데이터도 연쇄 삭제됨

3. 갱신 이상(Update Anomaly) : 속성값 갱신 시 일부만 갱신되어 모순 발생

 

 

* Q.4 ) 임시 키 무결성 프로토콜의 영문 약어 - TKIP (Temporal Key Integrity Protocol)

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

 

 

* Q.5 ) UI 유형 - NUI(Natural User Interface)

- CLI : 명령과 출력이 텍스트 형태로 이루어지는 인터페이스

- GUI : 아이콘이나 메뉴를 마우스로 선탁해여 작업 수행

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

 

 

* Q.6 ) 소스코드 분석도구의 분석기법 - "정적 분석 기법", "동적 분석 기법"

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

 

 

* Q.7 ) xUnit의 테스트기법 - JUnit

JUnit( xUnit + JAVA) / Cppunit ( xUnit + C++) / NUnit ( xUnit + .net) / JMockit ( xUnit + mock ) / PHPUnit ( xUnit + PHP)

 

 

* Q.8 ) 보기 중에서 블랙박스 테스트 기법을 3가지 고르기  (*블랙박스 테스트 : 각 기능이 완전히 작동되는 것을 입증)

a. Equivalence Partitioning (동등 분할): 입력 데이터를 동등한 부분으로 나누어, 각 부분의 대표값으로 테스트를 수행한다. 이 기법은 모든 가능한 입력 값들을 효율적으로 테스트하고자 할 때 사용된다.

b. Boundary Value Analysis (경계값 분석): 입력 데이터의 경계값 주변에 오류가 발생할 확률이 높다는 가정 하에, 경계값과 그 바로 옆의 값을 테스트하는 기법이다. 

e. Cause-effect Graph (원인-결과 그래프): 입력과 그에 따른 출력 결과의 관계를 그래프 형태로 표현하여 테스트 케이스를 도출하는 방법이다. 복잡한 비즈니스 로직을 가진 시스템의 테스트에 유용하다.

c (Base Path Test), 
d (Loop Test), 
f (Decision Coverage), 
g (Statement Coverage)

+ 비교검사 : 여러 버전의 프로그램에 동일한 테스트 자료 제공하여 동일한 결과가 출력되는지 테스트 (블랙박스 테스트)

* [ 화이트박스 테스트 : 원시코드의 논리적인 모든 경로를 테스트 ]
- 기초경로검사 (Base Path Test) : 논리적 복잡성 측정 / 대표적 화이트박스 검사
- 제어구조검사 : 조건검사(모듈 내 논리적 조건) / 루프검사(반복 구조에 초점) / 데이터 흐름검사(변수정의와 변수 사용위치에 초점)

 

 

* Q.9 ) ISMS

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

 

 

* Q.10 ) 슈퍼키 : 유일성 // 후보키 : 유일성 + 최소성 

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

 

* 후보키 : 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 / 유일성, 최소성

* 기본키 : 후보키 중 특별히 선정된 주 키 / 중복불가 / 유일성 / Null불가

* 대체키 : 후보키가 둘 이상일 때, 기본키를 제외한 나머지 후보키 / 보조키

* 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키 / 유일성O, 최소성X

* 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

 

* Q.11 ) 워터링 홀(Watering Hole)

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

 

- 워터링홀 : 자주 방문하는 웹사이트를 사전에 감염시켜, 목표 조직의 일원이 사이트 방문시 악성코드에 감염시키도록 함

- 웜 : 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임. 결국 시스템 다운.

- 키로거공격 : 키보드 움직임을 탐지해 중요 정보를 빼감.

- 랜섬웨어 : 사용자의 컴퓨터에 잠입해 내부 문서나 파일등을 암호화함

- 백도어 : 개발자의 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀통로

- 트로이목마 : 정상 프로그램으로 위장하여 숨어있다가, 해당 프로그램이 동작할 떄 활성화되어 부작용 발생시킴

 

 

* Q.12 ) V다이어그램 - 테스트 : 단통시인 

단위 테스트 (Unit Test) • 인터페이스 테스트
• 자료구조 테스트
• 수행경로 테스트
통합 테스트 (Integration Test) • 하향식 통합
• 상향식 통합
• 백본 통합
시스템 테스트 (System Test) • 보안 테스트
• 민감도 테스트
• 성능 테스트
인수 테스트 (Acceptance Test) • 알파 테스트 : 통제된 환경에서 선별된 사용자들(사내 직원 등)이 개발자와 함께 수행하는 테스트
• 베타 테스트 : 실제와 동일한 환경에서 사외의 사용자들이 테스트하게 하고 피드백을 받는 방법

 

 

* Q.14 ) Python 함수 : extend, pop, reverse

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

li.append([4,5,6]) 하면 li = [1, 2, 3, [4, 5, 6]]

li.extend([4,5,6])하면 li = [1, 2, 3, 4, 5, 6]

 

 

* Q.15 ) Python 문제

 

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

A) a= 20 b= 2 // 파이썬에서 ','는 띄어쓰기 해야한다.

 

 

* Q.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();
  }
}

 

Thread 클래스를 구현하는 두가지 방법

  1. Thread 클래스를 상속받고, run() 을 오버라이딩
  2. Runnable 인터페이스를 implement 하고, run()을 오버라이딩

위 문제에서는 (2)번 방법을 선택함. 

Car 클래스를 쓰레드로 실행하기 위해서 Runnable을 구현했다는건 당연함.

쓰레드로 실행하려면, 쓰레드 객체를 생성할 때 생성자의 파라미터로 전달해야됨.

즉, t1 = new Thread(new Car())

t1.start() 하면 해당 객체의 run()이 실행 됨. 근데, 아까 오버라이딩 했으니 Car의 run()이 실행됨.

 

 

* Q.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;
}

1. >     2. %      3. /

첫 반복문 
result = 0 * 10
result = 0 + 4
number = 123

두번째 반복문
result = 4 * 10
result = 40 + 3
number = 12

세번째 반복문
result = 43 * 10
result = 430 + 2
number = 1

네번째 반복문
result = 432 * 10
result = 4320 + 1
number = 0