본문 바로가기
Study 비전공

[비전공자] 정보처리기사 실기 기출 풀이 1 (2022년 1회차)

by anthia 2025. 4. 8.
반응형

 

오늘부터는 기출을 풀고 오답노트를 작성한다.

 

지난번 게시물 이후로 공부를 안함.ㅋ

 

핑계 아닌 핑계를 대자면

sqld 시험 결과가 나왔는데

2문제 차이로 떨어짐..

의욕이 다 죽었다는 말입니다.

(또 떨어진거거든..

이번에 쿼리 쉬웠는데..)

 

주말 잘 놀고

다시 소생시키고자

돌아왔습니다.

 

 

 

 

 

 

 


2022년 1회차 기출

 

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

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

 - 스트라이프(Stripe) 방식으로 구현하여 I/O 속도가 빠르다.

 - 데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다.

더보기

틀림) RAID-0

풀이) 

 

데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다.

>> RAID 0은 패리티나 미러링이 없어서 디스크 하나라도 고장 나면 모든 데이터 손실.

RAID 0 스트라이핑 방식 / 중복저장 X, 에러검출 X
RAID 1 미러링 방식 / 중복저장 O, 높은 신뢰도
RAID 2 스트라이핑 방식 / 해밍코드 활용 에러 검출
RAID 3 스트라이핑 방식 / 패리티를 에러 검증(= 패리티 값과 남은 데이터들을 XOR 연산해 비교),
바이트 단위로 데이터 저장
RAID 4 RAID 3과 동일하나, 데이터를 블록 단위로 저장
RAID 5 스트라이핑 방식 / 패리티 블록을 각 디스크마다 분산 저장
RAID 6 스트라이핑 방식 / 패리티 블록을 이중 구조로 구축

 ** 패리티: 오류 검출을 위해 추가하는 정보(비트 수준)

 ** 패리티 블록: 여러 데이터 블록에서 오류 복구를 위해 만든 전체 블록

 

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

a) 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고,

    이전 상태로 되돌아간 후 실패가 발생하기 전까지의 과정을 재실행한다.

b) 로그를 이용하여 오류와 고나련된 내용을 취소하여 복구한다.

더보기

맞음) a) REDO b) UNDO

 

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

더보기

알고는 있음) 내가 삭제하려고 한 데이터 이외의 데이터도 삭제 되는 것.

 

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

 - IEEE 802.11무선 네트워킹 표준에 사용되는 보안 프로토콜

 - IEEE 802.11i의 작업 그룹과 WiFi 얼라이언스에서 WEP를 하드웨어 교체없이

   대체하기 위해 고안

더보기

틀림) TKIP

풀이)

임시 키 무결성 프로토콜 : Temporal Key Integrity Protocol

TKIP 기반으로 표준으로 잡힌게 WEP

 

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

 * 키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인가의 자연스러운 표현으로

컴퓨터나 장치를 제어할 수 있는 환경

더보기

틀림) NUI

풀이) 

 CLI는 명령어를 통한 상호작용이므로 매우 강력하지만 사용법을 익히는 데 시간이 걸림.

 GUI는 시각적이고 직관적인 인터페이스로 일반 사용자에게 적합.

 NUI는 자연스러운 언어나 행동으로 상호작용하며 학습이 필요 없을 정도로 직관적.

 OUI는 유기적이며, 디바이스 자체가 상호작용의 일부가 되는 미래지향적인 기술.

 

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(경계값 분석), Cause-effect Graph(원인-결과 그래프)

c, d, f, g는 화이트박스 테스트 기법에 속함.

 

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

 * 정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해

수립,관리,운영하는 정보보호 관리체계가 인증 기준에 적합한지를 심사하여 인증을 부여하는 제도.

더보기

틀림) ISMS

풀이)

Information Security Management System

정부기관에서는 System이라는 단어를 주로 '체계' 라고 부름

암기: 정부는 마이크로소프트이다(IS MS)

 

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

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

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

더보기

맞음) A: 유일성, B: 최소성

 

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 )

더보기

맞음) 1. ORDER, 2. 점수, 3.DESC

풀이)

성적 테이블에서 번호 이름 점수 추출 점수를 기준으로 내림차순으로 정렬

 

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

1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가

2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환

3. 리스트 내부 요소의 순서를 뒤집는 역할

더보기

틀림) 1. extend, 2.pop, 3. reverse

풀이)

암기를 해야한다.

append 가 아닌 이유: 확장에 focus / '모든 항목을 (각각) 하나의 요소로 추가' 라는 의미로 사용된 듯

extend → ex

pop p

reverse rev

 

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

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

맞음) a=20 b=2

풀이)

임의로 , 쓰지 않도록 조심 띄어쓰기 조심

문제에서 a, b 값을 작성하라고 해서 20, 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();
  }
}
더보기

틀림) Car

풀이)

Thread 클래스를 구현하는 방법

1. Thread 클래스를 상속 받고, run()을 오버라이딩

2. Runnable 인터페이스를 implement 하고 run()을 오버라이딩

문제에선 2번 방법으로 구현함.

 

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

풀이)

m.a =100 >> func(1) 돌리면 m.a=1000

m.b=m.a; 둘 다 1000 값을 가짐

func(2) 돌리면 m.a에 m.b 더함 >> 1000+1000 = 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));
}
더보기

맞음) 120

풀이)

재귀 함수 a 값이 <=1 이 될 때까지 func 함수 호출5 * 4 * 3 * 2 * 1 = 120



 

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. /

풀이)

int div 에 10을 준걸로 봐선 1234를 10으로 나눠서 나머지를 사용해서 자리를 바꾸라는 걸 추론

 

첫 반복문

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

 

 

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

틀림) 29

풀이)

홀수이면서 13195를 나눴을 때 소수점이 0인 소인수 분해 최대값. 5 7 13 29

isPrime() 함수는 소수인지 판별을 위한 함수.

 

소수 문제는 대상 수의 제곱근을 구해서 계산하면 빠름

ex) 400의 소인수는 20 아래의 소수만 구해보면 됨.


 

결과

맞음: 9

틀림: 11

 

힝힝 너무 어려워

 

반응형