본문 바로가기

정보처리기사/실기기출

[정처기실기] 2022년 1회

 

https://chobopark.tistory.com/271

 

[2022년 1회] 정보처리기사 실기 복원 문제

안녕하세요. 2022년 1회 정보처리기사 실기 기출문제를 정리해보았습니다. 기출문제이면서 보완설명을 덧붙여 정리하였으니 도움이 되었으면 좋겠습니다. 정보처리기사 개편안인 2020년 시험부

chobopark.tistory.com

 


 

1. 아래 설명에 맞는 RAID 단계를 숫자로 작성하시오.


- Striping(스트라이핑) 구현 방식
- I/O 로드의 분산으로 매우 빠른 속도
- 데이터를 블럭으로 분할 저장하며, 각 블럭은 다른 디스크로 나뉘어 저장

+ 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 하드디스크처럼 이용하는 기술.

+ 데이터가 분산되어 저장되기 때문에 하나의 하드디스크에 문제가 생기면 다른 디스크까지 사용이 불가능해진다.

 

더보기

 

RAID 0 


* RAID ( Redundant Array of Inexpensive Disk )

여러 개의 하드디스크로 디스크 배열을 구성하고, 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장하여, 그 블록들을 여러 디스크에서 동시에 읽거나 쓸 수 있도록 하는 기술. 디스크의 속도 향상.


* RAID 형태

 - RAID 1 : 두 개 이상의 디스크를 미러링을 통해 하나의 디스크처럼 사용.

 - RAID 2 : 오류 정정을 위한 해밍코드를 사용하는 방식.

 - RAID 3 : 하나의 디스크를 패리티(Parity) 정보*를 위해 사용하고 나머지 디스크에 데이터를 균등하게 분산 저장.

 - RAID 4 : RAID 3 과 같은 방식이나, 블록 단위로 분산 저장한다.

 - RAID 5 : 3개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하고, 각각의 디스크가 패리티 정보를 가지는 방식.

 - RAID 6 : 하나의 패리티를 두개의 디스크에 분산 저장하는 방식.


* 페리티(Parity) 정보 : 오류 검출 및 수정에 사용되는 데이터, 디스크 오류 시 데이터 보호/복구를 위해 사용.

 

 

 

 

(2020_4회)

2. 다음 설명을 확인하여 해당하는 항목을 보기에서 찾아 적으시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, rollback 등..))


1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후, 실패가 발생하기 전까지의 과정을 그대로 따라가는 현상

( 트랜잭션 로그를 이용하여 오류가 발생한 트랜잭션은 재실행하여 복구를 수행. )



2. 작업을 취소하여 트랜잭션을 이전 상태로 되돌리는 것

( 트랜잭션 로그를 이용하여 오류와 관련된 내용을 취소하여 복구를 수행. )

 

더보기

 

1. REDO

2. UNDO


* 회복 (Recovery)

 - 지연/연기 갱신 기법 ( Deferred Update )

   > 트랜잭션이 수행되어 부분완료 될때까지 데이터베이스에 적용하지 않고 지연시킨 후,

   부분완료가 되면 로그(Log)의 내용을 토대로 데이터베이스에 적용하는 기법.

   > Undo 없이 Redo만 수행.

 

 - 즉시 갱신 기법 ( Immediate Update )

   > 트랜잭션이 실행(활동)상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법.

   > 변경되는 모든 내용은 로그(Log)에 기록하여 장애 발생 시 로그(Log)의 내용을 토대로 회복.

   > Redo, Undo 모두 수행.

 

 ===================아래 두개는 로그 없이================

 

 - 그림자 페이지 대체 기법 ( Shadow Paging )

   >  데이터베이스를 동일한 크기의 단위인 페이지로 나누어 각 페이지마다 복사하여 그림자 페이지를 보관.

   > 데이터베이스의 변경되는 내용은 원본 페이지에만 적용하고, 장애가 발생되는 경우 그림자 페이지 대체로 회복. 

 

 - 검사적 기법 ( Check Point )

   > 트랜잭션이 실행되는 중간에 검사 시점(Check Point)를 지정하여, 검사 시점까지 수행 후 완료된 내용을 데이터베이스에 적용하는 기법. 

 


************* 트랜잭션의 특성 *************

 - 원자성 (Atomicity) _Commit, Rollback

 - 일관성 (Consistency)

 - 독립성, 격리성 (Isolation)

 - 영속성 (Durability)

 

 

 

 

3. 다음 자바 문법에 알맞는 출력 결과를 작성하시오.

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

 

더보기

 

2000


* 접근제어자 (access modifier)

 - private

 - protected

 - public

 - default  _위 문제의 class A 

 

 

* 접근제어자 정리 참고 *

 

 

 


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


SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )

 

더보기

 

(1) ORDER

(2) score 

(3) DESC

 

 

 

 

5. 데이터베이스의 이상현상 중, 삭제 이상에 대해 서술하시오.

 

더보기

 

한 튜플을 삭제할 때 연쇄 삭제 현상으로 인한 정보 손실. 


* 이상현상

 - 삽입 이상

 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상.

 - 삭제 이상

 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 현상

 - 갱신 이상

 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상. 

 


이상현상을 방지하기 위해 필요한건 정규화!!

* 정규화(Normalization) 과정 (논리적 설계 과정)

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

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

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

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

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

 - 제 5정규형 : 조인 종속 이용 


* 데이터베이스 설계 순서

1. 요구 조건 분석 : 요구 조건 명세서 작성

2. 개념적 설계 : ERD     => 이상현상 발생

3. 논리적 설계 : 정규화, 트랜잭션 인터페이스 설

4. 물리적 설계 : 저장장치 구조에 맞게 저장, 성능 고려 (파티션, 클러스터링, 인덱스, 뷰... / 반정규화)  

5. 구현 : DDL사용 

 

 

 

* 정규화 정리 참고 *

 

 

 

 

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

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

 

더보기

 

a=20 b=2


exam(num1, num2=2) 

=> 기본값을 2로 지정. num2가 없다면 기본값이 사용된다. (첫번째 인자에는 기본값 설정 불가)

 

 

 

 

7. 다음 설명과 관련된 답을 보기에서 골라 작성하시오. _ 파이썬 함수
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, remove, sort 등..))


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

 

더보기

 

1. extend

2. pop

3. reverse

 

 

 

 

8. 다음 아래 단어를 영어 약자로 작성하시오.


임시 키 무결성 프로토콜

 > IEEE 802.11의 무선 네트워킹 표준으로 사용되는 보안 프로토콜.

   IEEE 802.11i의 작업그룹과 와이파이 얼라이언스에서 WEP을 하드웨어의 교체 없이 대체하기 위해 고안되었다. 

 

더보기

 

TKIP (Temporal Key Integrity Protocol)

 

 

 

 

(2021_3회)

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

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

 

더보기

 

NUI (Natural User Interface)


* 사용자 인터페이스 (User Interface) 

CUI (Command Line Interface) / CLI (Character User Interface)

GUI (Graphical User Interface)

VUI (Voice User Interface)

OUI (Organic User Interface)


* UI 설계 원칙 (4가지)

 - 직관성 : 화면의 버튼, 항목, 입력란 등 누구나 쉽게 이해하고 사용할 수 있도록 한다.

 - 유효성 : 사용자의 목적을 정확히 달성할 수 있도록 유용하고 효과적이어야 한다.

 - 유연성 : 사용자의 요구를 최대한 수용하면서 오류를 최소화해야 한다.

 - 학습성 : 사용자가 쉽게 배우고 익힐 수 있어야 한다. 


* 객체지향 설계 원칙 (5가지_SOLID)

 - SRP (Single Responsibility Principle, 단일 책임 원칙)

 - OCP (Open-Closed Principle, 개방-폐쇄 원칙)

 - LSP (Liskov Subsitution Principle, 리스코프 치환 원칙)

 - ISP (Interface Segregation Principle, 인터페이스 분리 원칙)

 - DIP (Dependency Inversion Principle, 의존 역전 원칙) 

 

 

* 객체지향 설계원칙(SOLID) 정리 참고 *

 

 

 

 

10. 다음은 분석도구에 대한 설명으로 보기에 알맞는 답을 작성하시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, running analysis 등..))


1. 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법 

=> 정적


2. 소스 코드를 실행하여, 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석

=> 동적

 

더보기

 

1. static

2. dynamic


[ 애플리케이션 테스트 유형 분류 ]

 * 프로그램 실행 여부

 - 정적 테스트

 - 동적 테스트

 

 * 테스트 기법

 - 화이트박스 테스트

 - 블랙박스 테스트

 

 * 테스트에 대한 시각

 - 검증 테스트 _ 개발자

 - 확인 테스트 _ 사용자


* 테스트 목적

 - 회복 테스트

 - 안전 테스트

 - 강도 테스트

 - 성능 테스트

 - 구조 테스트

 - 회귀 테스트

 - 병행 테스트


* 테스트 기반

 - 명세 기반 테스트

 - 구조 기반 테스트

 - 경험 기반 테스트 


* 테스트 오라클 

테스트의 결과가 참/거짓인지 판단하기 위해 사전에 정의된 참값을 입력하여 비교하는 기법. 

 - 참 오라클 : 모든 입력값에 적합한 결과를 생성하여 발생한 오류를 모두 검출.

 - 샘플링 오라클 : 임의로 선정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공.

 - 휴리스틱 오라클 : 임의의 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 추정으로 처리.

 - 일관성 검사 오라클 : 애플리케이션 변경이 있을 떄, 수행 전과 후의 결과값이 같은지 확인. 


* 코드 커버리지  (화이트박스 테스트 검증 기준)

 - 문장(구문) 커버리지 (Statement Coverage) 

   소스 코드의 모든 구문이 한 번 이상 수행되었는지 측정.

 - 분기(결정) 커버리지 (Branch(Decision) Coverage) 

   소스 코드의 모든 조건문(결정포인트)에 대해 참/거짓인 경우가 수행되었는지 측정. 

 - 조건 커버리지 (Condition Coverage)

   소스 코드의 조건문에 포함된 개별 조건식에 대해 참/거짓인 경우가 수행되었는지 측정. (복합조건문인 경우)

 

 

 

 

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

class Car implements Runnable{		// 인터페이스
  int a;
  
  public void run(){
     system.out.println("message")
  }
}
  
public class Main{
  public static void main(String args[]){
    Thread t1 = new Thread(new ___());
    t1.start();
  }
}

 

더보기

 

Car


 

new + 객체(class명)

 

 

 

 

12. 다음 설명에 대한 알맞는 단어를 작성하시오.


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

+ 테스트 결과는 Test클래스로 개발자에게 테스트 방법 및 클래스의 History를 공유 가능.

+ 어노테이션으로 간결하게 지원. ( @Test )

 

더보기

 

JUnit

 

 

 

 

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

 

더보기

 

ㄷ. Boundary Value Analysis (경계값 분석)

ㄹ. Equivalence Partitioning (동등분할기법)

ㅂ. Cause - Effect Graph  (원인-효과 그래프)


* 블랙박스 테스트 

 - Equivalence Partitioning (동등분할기법)

 - Boundary Value Analysis (경계값 분석)

 - Cause - Effect Graph  (원인-효과 그래프)

 - Error - Guessing (오류 예측 검사)

 - Comparison Testing (비교 검사)

 

* 화이트박스 테스트

 - Base Path Testing (기초 경로 검사)

 - Control Structure Testing (제어 구조 검사)

   > Condition Testing (조건 검사)

   > Loop Testing (루프 검사)

   > Data Flow Testing (데이터 흐름 검사)

 

 

 

 

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

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

 

더보기

 

5 * 4 * 3 * 2 * 1 = 120

 

 

 

 

15. 다음 중, 괄호 ( ) 안에 들어갈 연산자를 써서 정수를 역순으로 출력하는 알맞는 답을 작성하시오. (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.  /

 

 

 


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


정보보호 관리체계

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

 

더보기

 

ISMS (Information Security Management System)

 

 

 

 

17. 다음 설명 중, 괄호 ( ) 안에 들어가는 알맞는 답을 보기에서 선택하여 작성하시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, 참조성, 무결성 등..))


1. 슈퍼키는 ( 1 ) 의 속성을 갖는다.


2. 후보키는 ( 1 ) 와/과 ( 2 ) 의 속성을 갖는다.

 

더보기

 

(1) 유일성

(2) 최소성


슈퍼키 (Super Key)  _ 만들 수 있는 모든 조합 (유일성)

후보키 (Candidate Key) _ 유일성 + 최소성

기본키 (Primary Key) _ 후보키 중 가장 적합한 키

대체키 (Alternate Key) _ 후보키 중 기본키를 제외한 나머지 

 

 

 

 

18. 다음 설명과 관련된 답을 보기에 찾아서 작서하시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, Pharming, Ransomware등..))


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

( APT 공격에서 주로 쓰이는 공격이며, 타겟이 자주 들어가는 홈페이지를 파악했다가, 그 홈페이지의 취약점을 통해 악성코드를 심어 사용자가 모르게 해당 악성코드를 다운로드 받게 하고, 다운로드 된 악성코드를 통해 공격을 하는 방식.)

 

더보기

 

watering hole

 


* CSRF (Cross - Site Request Forgery, 사이트 간 요청 위조)

 사용자가 자신의 의지와는 무관하게 공격자가 조작한 요청을 웹 애플리케이션에 전송.

 즉, 사용자가 로그인한 상태에서 공격자가 준비한 악의적인 웹 페이지나 이메일 링크 등을 통해 사용자의 브라우저를 이용하여, 사용자 몰래 웹 애플리케이션에 위조된 요청을 보내는 공격 방식.

 

 

 

 

19. 다음 소스코드가 실행할 때의 출력값을 작성하시오.

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

 

더보기

 

29


가장 큰 소수값을 구하는 문제**

 

 

 

 

20. 다음은 V모델에서의 테스트 단계에 대한 설명으로 괄호안에 들어갈 답을 작성하시오.

 

더보기

 

(1) 단위 테스트 _ 정적/동적 테스트

(2) 통합 테스트 _ 상향식(드라이버)/하향식(스텁)/빅뱅/백본 테스트

(3) 시스템 테스트 _ 기능/비기능 테스트 

(4) 인수 테스트 _ 알파(개발자)/베타(사용자) 테스트 

 

 


 

https://www.youtube.com/watch?v=WAvkCIawpTM&list=PLniy99c_7ZfpDRzBXv1ryJbW-KnHGp1Az&index=7

 

'정보처리기사 > 실기기출' 카테고리의 다른 글

[정처기실기] 2022년 3회  (0) 2024.04.01
[정처기실기] 2022년 2회 *  (0) 2024.03.24
[정처기실기] 2021년 3회  (0) 2024.03.11
[정처기실기] 2021년 2회  (0) 2024.02.22
[정처기실기] 2021년 1회  (0) 2024.02.09