관리 메뉴

피터의 개발이야기

[정처기 실기] 정보처리기사 실기 - 2022년 1회 기출문제 본문

개발이야기/정보처리기사

[정처기 실기] 정보처리기사 실기 - 2022년 1회 기출문제

기록하는 백앤드개발자 2024. 3. 25. 23:10
반응형

ㅁ 들어가며

ㅇ 기출문제를 풀어보고 공부한 내용을 노트형태로 정리하였다.

ㅇ 홍달샘- 정보처리기사 실기 2022년 1회 - 기출해설특강

    ㄴ 문제 번호 클릭 -> 동영상 설명 이동

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

ㅇ 시나공 2024년도 정보처리기사 필기 핵심요약을 참조.

 

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

두 개 이상의 하드디스크를 병렬로 연결해, 하나의 하드디스크처럼 이용하는 기술이다.
스트라이프(Stripe) 방식으로 구현한다.
데이터가 분산되어 저장되기 때문에 하나의 하드디스크에 문제가 생기면 다른 디스크까지 사용이 불가능해진다.

 

 

※ RAID 형태

ㅇ RAID 0

  - 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 하드디스크처럼 이용하는 기술
ㅇ RAID 1
  - 두 개 이상의 디스크를 미러링을 통해 하나의 디스크 처럼 사용
ㅇ RAID 2
  - 오류 정정을 위한 해밍코드를 사용하는 방식
ㅇ RAID 3
  - 하나의 디스크를 패리티(Parity) 정보를 위해 사용하고 나머지 디스크에 데이터를 균등하게 분산 저장

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

 RAID 5
  - 3개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하고 각각의 디스크에 패리티 정보를 가지고 있는 방식
 RAID 6
  - 하나의 패리티를 두 개의 디스크에 분산 저장하는 방식

 

2. 다음은 로그 기반 회복 기법에서 사용되는 명령어이다. 해당하는 항목을 보기에서 찾아 적으시오.

1. 트랜잭션 로그를 이용하여 오류가 발생한 트랜잭션을 재실행하여 복구를 수행한다.
2. 트랜잭션 로그를 이용하여 오류와 관련된 내용을 취소하여 복구를 수행한다.
더보기

1: REDO 2: UNDO

 

# 핵심 352) 회복(Recovery)

# 설명

ㅇ 지연갱신기법 (Deferred Update)

  ㄴ REDO만 필요, 취소할 필요가 없음

ㅇ 즉각갱신기법(Immediate Update) 

  ㄴ REDO UNDO 필요. 

 

# 핵심 189) 트랜잭션의 특성

# 트랜잭션의 특성
- 원자성 (Atomicity): 트랜잭션은 데이터베이스에 모두 반영되도록 Commit되든지 아니면 전혀 반영되지 않도록 복구(Rollback)해야함.

- 일관성 (Consistency): 트랜잭션 성공 시 데이터는 보존되어야함.
- 독립성, 격리성 (solation): 다른 트랜잭션에 영향을 주어서는 안됨.
- 영속성 (Duralblility): 시스템이 고장 나더라도 영구적으로 반영.

 

 

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

더보기

릴레이션에서 한 튜블을 삭제할 때에 의도하지 않은 다른 값들도 함께 삭제되는 현상

 

 

# 핵심 181) 이상(Anomaly)의 개념 및 종류

ㅇ 삽입 이상 (Insertion Anomaly)

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

ㅇ 삭제 이상 (Deletion Anomaly)

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

ㅇ 갱신 이상 (Update Anomaly)

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

 

# 핵심 182) 정규화 과정

1NF: 도메인 원자값

2NF: 부분적 함수 종속 => 학생 성적에서 과목코드와 과목명이 함께 있을 때 과목 테이블 분리

3NF: 이행적 함수 종속 => 

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

 

# 핵심 163) 데이터베이스 설계 순서

ㅇ 요구 조건 분석

  ㄴ 요구사항 정의서 작성

ㅇ 개념적 설계

  ㄴ 개념 스키마, 트랜잭션 모델링, ER 모델

ㅇ 논리적 설계

  ㄴ 정규화 수행

ㅇ 물리적 설계

  ㄴ 성능에 맞추어 물리적 구조의 데이터로 변환

ㅇ 구현

 

 

4. 아래 임시 키 무결성 프로토콜의 영문 약어를 쓰시오.

임시 키 무결성 프로토콜은 IEEE 802.11의 무선 네트워킹 표준으로 사용되는 보안 프로토콜이다.
임시 키 무결성 프로토콜은 IEEE 802.111의 작업 그룹과 와이파이 얼라이언스에서 WEP를 하드웨어의 교체 없이 대체하기 위해 고안되었다.
더보기

TKIP(Temporal Key Integrity Protocol)

 

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

특별한 하드웨어 없이 인간의 자연스러운 움직임을 인식하여 정보를 제공한다.
더보기

 NUI

 

 

# 핵심 031) 사용자 인터페이스의 구분

CLI: Command

GUI: Graphical

NUI: Natural

VUI: Voice

OUI: Organic

 

# 핵심 032) 사용자 인터페이스의 기본 원칙

직관성: 쉽게 이해하고 사용

유효성: 사용자 목적을 달성

학습성: 쉽게 배우고

유연성: 요구사항을 최대한 수용

 

 

6. 다음 소스코드 분석 도구에 대한 설명에 맞는 명칭을 작성하시오.

1. 소스코드의 실행 없이, 코드의 의미를 분석하여 결함을 찾아내는 코드 분석 기법
2. 소스코드를 실행하여 프로그램의 동작이나 결과를 확인하고, 메모리 누수, 스레드 결함등을 분석하는 기법

 1. 정적 분석 도구 2. 동적 분석 도구

 

 

# 핵심 153) 소스코드품질분석도구

ㅇ 정적분석도구
- 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구이다.

- 종류: pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura

ㅇ 동적분석도구
- 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 도구이다.

-  종류 : Avalanche, Valgrind

 

# 애플리케이션 테스트 유형 분류
ㅇ 프로그램 실행 여부
  - 정적 테스트
  - 동적 테스트
ㅇ 테스트 기법
  - 화이트박스 테스트
  - 블랙박스 테스트
ㅇ 테스트에 대한 시각
  - 검증 테스트
  - 확인 테스트

ㅇ 테스트 목적
  - 회복 테스트
  - 안전 테스트
  - 강도 테스트
  - 성능 테스트 
  - 구조 테스트 
  - 회귀 테스트
  - 병행 테스트

ㅇ 테스트 기반
  - 명세 기반 테스트
  - 구조 기반 테스트
  - 경험 기반 테스트: QA가 수행

 

 

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

ㅇ 자바 프로그래밍 언어용 유닛 테스트 프레임워크
ㅇ 테스트 결과는 Test클래스로 개발자에게 테스트 방법 및 클래스의 History를 공유 가능
ㅇ 어노테이션으로 간결하게 지원
더보기

JUnit

 

 

8. 다음 보기 중에서 블랙박스 테스트 기법을 3가지 고르시오.

1) Equivalence Partitioning 2) Boundary Value Analysis
3) Base Path Test 4) Loop Test
5) Decision Coverage 6) Cause-effect Graph
더보기

1,2,6

 

 

# 핵심 131) 블랙바스 테스트의 종류

동치분할, 경계값 분석, 원인효과 그래프, 오류, 비교

 

 

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

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

ISMS

 

 

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

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

A: 유일성 B: 최소성

 

 

# 핵심 173) 키(Key)

ㅇ 후보키(Candidate Key) : 튜플을 유일 하게 식별, 기본키로 사용할 수 있는 후보들.

ㅇ 기본키(Primary Key) : 후보키 중 메인키. 유일성. 최소성

ㅇ 대체키(Alternate Key) : 후보키 중 기본키를 제외한 나머지. 보조키

ㅇ 슈퍼키(Super Key) :   주민번호 + 이름 + 지역을 합쳐서 유일성 확보하지만 최소성은 필요치 않다.

 

 

 

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

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

Watering Hole

 

# 핵심 370) 정보보안 침해 공격 관련 용어

ㅇ 웜 (Worm): 네트워크를 토앻 연속적으로 공격. 분산 서비스 거부 공격

ㅇ 제로데이공격 (Zero Day Attack): 당장 보안취약점을 대비해야하는 보안 공격 

ㅇ 키로거 공격 (Key Logger Attack): 키보드를 통해 정보해킹

ㅇ 랜섬웨어 (Ransomware): 내부문서 암호화 후 해독비용 요구

ㅇ 백도어 (Back Door, TrapDoor): 개발의 편의성을 위해 시스템 보안을 뚫어놓은 구멍.

 

 

12. 다음 V모델에서의 테스트 단계에 대한 설명으로 괄호 안에 들어갈 내용을 쓰시오.

더보기

1. 단위 테스트

2. 통합 테스트

3. 시스템 테스트

4. 인수 테스트

 

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

NAME SCORE
LEE 95
KIM 90
SONG 60
SELECT NAME, SCORE FROM 성적 ( a ) BY ( b ) ( c )
더보기

a. ORDER b. SCORE c. DESC

 

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

1. 요소를 확장해주는 역할을 하며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수, 해당 함수를 호출하면 리스트에서 해당 값을 삭제하면서 리턴시켜준다.
3. 리스트 내부의 요소의 순서를 뒤집어주는 역할을 한다.
더보기

1. extend

2. pop

3. reverse 

 

 

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

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

a=20, b=2

 

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);
  }
}
더보기

2000

 

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

결과: 4321

더보기

1. >

2. %

3. /

 

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

 

# 5 7 11 13 29

최대 소수값을 찾는 알고리즘 문제이다.

반응형
Comments