본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

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

by 케리's 2023. 4. 5.

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

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

RAID-0


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

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

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

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

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

RAID 6 : 하나의 패리티르 ㄹ두개의 디스크에 분하는 방식

 

 

 

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

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

1. REDO

2. UNDO


회복 기법 (영속성 주요기법) 

트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적 상태로 복구시키는 작업

 

(1) 종류 - 회로체크

기법 설명
로그 기반 회복 기법 지연 갱신 회복 기법 - 트랜잭션이 완료되기 전까지 데이터 베이스에 기록하지 않는 방법
(Deferred Update) : UNDO가 필요없다, REDO는 필요하다 

즉각 갱신 회복 기법 - 트랜잭션 수행중 갱신 결과를 바로 DB에 반영
(Immediate Update) : REDO, UNDO가 필요하다
체크 포인트 회복 기법
(Checkpoint Recovery)
장애 발생시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전 상태로 복원 시키는 회복기법
그림자 페이징 회복 기법 데이터베이스 트랜잭션 수행시 복제본을 생성하여 데이터베이스 장애시 이를 이용해 복구하는 기법

 

트랜잭션특성 - ACID

특성 설명 주요기법
원자성
(Atomicity)
분해가 불가능한 작업의 최소단위
연산 전체가 성공 또는 실패
하나라도 실패할 경우 전체가 취소되어야 함
Commit / Rollback
회복성보장
일관성
(Consistency)
트랜잭션이 실행 성공후 항상 일관된 데이터베이스 상태 보존 무결성 제약조건
동시성 제어
병행제
격리성
(Isolation)
트랜잭션 실행중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가 Read Uncommited
Read Commited
Repeatable Read
Serializable Read
영속성
(Durability)
성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장 회복기법

 

 

 

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

더보기

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


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

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

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


개념, 논리, 물리

절차 설명 산출물
개념적
데이터모델
• 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조 도출
 산출물 : 개체-관계 (E-R) 다이어그램
 
논리적
데이터모델
 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현
 '관계 데이터 모델', '계층 데이터 모델', '네트워크데이터모델', '객체 지향 데이터모델', '객체-관계 데이터 모델' 등
 스키마설계, 트랜잭션 인터페이스설계
 정규화수행
 스키마 평가 및 정제
학생(학번, 교수번호(FK), 이름, 주소)
교수(교수번호, 이름, 전공과목)
물리적 데이터모델   논리 데이터 모델을 특정 DBMS 특성 및 성능 고려하여 물리적인 스키마를 만듬
•  데이터베이스 저장구조로 변환
•  테이블, 인덱스, 뷰, 파티션 등 객체 생성
•  응답시간 저장공간의 효율화 트랜잭션 처리를 고려하여 설계
•  반정규화 수행
•  접근경로, 저장레코드양식, 레코드 집중 분석 설계
DDL을 이용해 데이터 모델 정의

 

 

 

 

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

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

TKIP (Temporal Key Integrity Protocol)

 

 

 

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

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

NUI


UI 설계원칙

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

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

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

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

 

 

 

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

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

1. 정적 분석 기법
2. 동적 분석 기법


프로그램 실행여부 - 정적, 동적 테스트

테스트 기법 - 화이트박스, 블랙박스 테스트

테스트에 대한 시각 - 검증 테스트, 확인 테스트

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

테스트 기반 - 명세, 구조, 경험기반 테스트 

 

테스트 오라클 - 참, 샘플링, 휴리스틱, 일관성 검사 오라클 

 

 

 

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

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

JUnit

 

 

 

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
더보기

a, b, e


  • 블랙박스테스트 (명세 기반 검사) - 동결 결상 유분 폐원비

사용자의 요구사항 명세를 보면서 수행하는 테스트

동등 분할 테스트
(Equivalence Partitioning)
입력 데이터 영역의 유사한 도메인별로 유효값/무효값을 그룹핑하여 대표값 테스트를 케이스를 도출하여 테스트 하는 기법
경곗값 분석 테스트
(Boundary Value Analysis)
최소값 바로 위, 최대 치 바로 아래 등 입력값의 극한 한계를 테스트하는 기법
결정 테이블 테스트
(Decision Table)
요구사항의 논리와 발생 조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트
상태 전이 테스트
(State Transition)
이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트
유스케이스 테스트
(Use Case)
프로세스 흐름을 기반으로 테스트케이스를 명세화하여 수행하는 테스트
분류 트리 테스트
(Classification Tree)
SW의 일부 또는 전체를 트리구조로 분석 및 표현하여 테스트케이스 설계해 테스트
페어와이즈 테스트
(Pairwise)
테스트 데이터 값들간에 최소한 한번씩 조합하는 방식
원인-결과 그래프 테스트
(Cause-Effect Graphing)
그래프를 활용해 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석
비교테스트
(Comparision)
여러 프로그램에 같은 입력값을 넣어 비교해 테스트

 

 

 

 

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

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

ISMS


ISMS는 정보보호관리체계 (Information Security Management System)의 약자입니다1. 이는 정보보호관리에 대한 표준적 모델 및 기준을 제시하여 기관 및 기업의 정보보호 관리체계 수립 및 운영을 촉진하고 기업의 정보보호를 위한 일련의 활동 등이 객관적인 인증심사 기준에 적합한 지를 인증기관이 인증하는 제도입니다1.

ISMS 인증은 정보보호 관리체계를 구축하고 운영하는데 있어서 국제적으로 인정받는 인증제도로, 정보보호 관리체계의 구축과 운영을 위한 일련의 조치와 활동이 인증기준에 적합함을 증명하는 제도입니다2.

 

 

 

 

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

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

1. 유일성
2. 최소성


(1) Key

키 (Key)
  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때
  • 기준이 되는 속성을 말한다.
  • 키의 종류
    • 후보키(Candidate Key) : 기본키가 될 수 있는 것
    • 기본키(Primary Key)
    • 대체키(Alternate Key) : 기본키 외 나머지 후보키
    • 슈퍼키(Super Key) : 유일성은 만족, 최소성은 만족 못함
    • 외래키(Foregin Key)
후보키
(Candidate Key)
  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분 집합.
  • 기본키로 사용할 수 있는 속성들로, 하나일 수도 있고, 여러 개 일 수도 있다.
  • 후보키는 유일성(Unique)과 최소성(Minimality)을 모두 만족시켜야 한다.
  • 유일성
    • 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
  • 최소성
    • 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야함
기본키
(Primary Key)
  • 기본키는 후보키 중에서 특별히 선정된 주키(Main Key)로 중복된 값을 가질 수 없다.
  • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
  • 기본키는 후보키의 성질을 갖는다. 즉, 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키
  • 기본키는 NULL 값을 가질 수 없다. 즉 튜플에서 기본키로 설정된 속성에는 NULL 값이 있어서는 안됨
대체키(Alternate Key)
  • 대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다. 보조키라고도 한다.
슈퍼키
(Super Key)
  • 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
    슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못한다.
외래키
(Foreign Key)
  • 외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다.
  • 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간의 참조 관계를 표현하는데 중요한 도구
  • 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 함
  • 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.

 

 

 

 

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

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

워터링 홀(Watering Hole)

 

 

 

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

더보기

a. 단위 테스트

b.통합 테스트

c. 시스템 테스트

d.인수 테스트


단위 - 정적, 동적

통합 - 상향식, 하향식, 빅뱅, 샌드위치

시스템 - 기능, 비기능

인수 - 알파, 베타테스

 

 

 

 

 

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

 

[성적 테이블]

 

번호 성적 점수
1 홍길동 95
2 임꺽정 90
3 유관순 80
4 이성계 60
SELECT 번호, 이름, 점수 FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
더보기

ORDER, 점수, 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; 
}

 

 

https://q.fran.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

댓글