etc

정보처리기사 실기 기출문제 복원 & 자세한 풀이 (2022년 1회)

15호의 개발자 2022. 7. 18. 21:05
반응형

 

정보처리기사 실기 2022년 1회 (5월 7일) 기출문제 복원입니다.

 

정답자세한 풀이도 함께 달아놓았으니 정보처리기사 실기 대비에 참고하시길 바랍니다.

 

문제별 하단의 '더보기'를 누르면 정답과 풀이를 확인할 수 있습니다.

 

 

※ 본 포스팅을 퍼가실 경우 댓글과 출처를 꼭 남겨주세요

 

 

 

 

 


 

 

 

 

 

1. 다음에 해당하는 RAID level은 몇인지 숫자로 작성하시오.

 

- 데이터를 중복해서 기록하지 않는 RAID로, 스트라이핑(Striping) 방식이라고도 한다.

- 빠른 데이터 입출력을 위해 사용한다.

- 미러링(Mirroring)과 패리티(Parity)를 포함하지 않는다.

 

더보기

[정답] 0

 

[해설]

RAID(레이드, Redundant Array of Inexpensive/Independent Disk, 복수 배열 저가/독립 디스크)

 저장장치를 여러 개를 묶어서 고용량/고성능인 저장장치 한 개와 같은 효과를 얻기 위해 개발된 기법이다.

 

 

* (용어 해설)

스트라이핑: 데이터를 여러 개의 디스크에 분산하여 저장하는 것

패리티: 데이터 장애 발생시 다른 디스크에 별도로 저장된 패리티 정보를 통해 복구할 수 있는 것

 

 

RAID는 동작 방식에 따라 level 0~6으로 분류된다.

 

RAID 0

- Striping, 스트라이프

- 여러 개의 멤버 하드디스크를 병렬로 배치하여 하나의 큰 디스크처럼 사용

 

RAID 1

- Mirroring, 미러

- 각 멤버 디스크에 같은 데이터를 중복 기록

 

RAID 2, 3, 4

- Fault Tolerance using Dedicated Parity Bit

- 오류정정부호(ECC) 기록 전용 하드디스크를 이용해서 안정성 확보

 

RAID 5

- Fault Tolerance using Distributed Parity Bit

- 패리티를 각 멤버 디스크에 돌아가면서 순환적으로 저장

 

 

 

 

 

 

2. 다음은 DB 회복 기법에 대한 설명이다. 알맞은 것을 [보기]에서 찾아서 작성하시오.

 

(1) 트랜잭션 로그(log)를 이용하여 오류가 발생한 트랜잭션을 재실행하여 장애가 발생하기 전의 DB로 복구

(2) 트랜잭션 로그(log)를 이용하여 오류와 관련된 변경 연산을 취소하여 이전 상태로 복구

 

[보기]

ㄱ. Commit    ㄴ. Active    ㄷ. Patially Committed
ㄹ. Rollback    ㅁ. Abort    ㅂ. Committed
ㅅ. Failted      ㅇ. Redo      ㅈ. Undo

 

더보기

[정답] (1) Redo, (2) Undo

 

[해설]

회복(Recovery)

- 트랜잭션들을 수행하는 도중에 장애가 발생하여 데이터베이스(DB)가 손상됐을 때, 손상되기 이전의 정상 상태로 복구하는 작업

 

* DB 회복 기법의 종류

1. 연기 갱신 기법 (Deferred Update)

- 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법

- 트랜잭션이 수행되는 동안 갱신된 내용은 일단 로그(log)에 보관

- 트랜잭션의 부분 완료 시점에 로그(log)에 보관한 갱신 내용을 실제 데이터베이스에 기록

- Redo만 가능

 

2. 즉각 갱신 기법 (Immediate Update)

- 트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법

- 장애가 발생하여 회복 작업하는 경우에 대비하여 갱신된 내용들은 로그(log)에 보관

- Redo, Undo 모두 사용 가능

 

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

- 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성

- 각 페이지마다 복사본인 그림자 페이지를 별도 보관

- 장애가 발생하여 트랜잭션 작업을 Rollback 시킬 때는 생긴 이후의 실제 페이지 부분을 그림자 페이지로 대체하여 회복

 

4. 검사점 기법 (Check Point)

- 트랜잭션 실행 중 특정 단계에서 재실행할 수 있도록 갱신 내용 등에 관한 정보와 검사점을 로그(log)에 보관

- 장애가 발생하면 트랜잭션 전체를 철회하지 않고, 검사점부터 회복 작업을 수행

 

 

* (용어 해설)

- Redo(재시도): 덤프와 로그를 이용하여 가장 최신 정상 상태인 데이터베이스로 회복시킨 후 트랜잭션을 재실행 한다.

- Undo(취소): 로그(log)에 보관한 정보를 이용해 가장 최근에 변경된 내용부터 거슬러 올라가면서 트랜잭션 작업을 취소하여 원래의 데이터베이스로 복구

- Dump(덤프): 주기적으로 데이터베이스 전체를 복사해두는 것

- log(로그): 갱신되기 전후의 내용을 기록하는 별도 파일

 

 

 

 

 

 

3. 다음은 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

 

[해설]

main 메소드부터 실행

m.a = 100

func1(m) 실행: m.a = m.a * 10 = 100 * 10 = 1000

m.b = m.a = 1000

func2(m) 실행: m.a = m.a + m.b = 1000 + 1000 = 2000

System.out.printf 실행: 2000

 

 

 

 

 

 

4. 다음 SQL문의 빈 칸에 들어갈 알맞은 답을 작성하시오.

 

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

 

<성적>

id name score
1 홍길동 95
2 이성계 80
3 박경리 75

 

더보기

[정답] (1) ORDER, (2) score, (3) DESC

 

[해설]

<성적> 테이블이 점수(score)가 높은 순으로 정렬(내림차순)되어 있으므로

ORDER BY score DESC

 

 

 

 

 

 

5. 이상 현상 중 삭제 이상에 대해 설명하시오.

 

더보기

[정답] 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상

 

[해설]

* 이상(Anomaly)

- 이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터 중복(Redundancy)이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상

 

* 이상의 종류

1. 삽입 이상 (Insertion Anomaly)

- 테이블에 데이터를 삽입할 때 의도와는 상관없는 값들로 인해 삽입할 수 없는 현상

2. 삭제 이상 (Deletion Anomaly)

- 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제(연쇄 삭제)되는 현상

3. 갱신 이상 (Update Anomaly)

- 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

 

 

 

 

 

 

6. 다음은 Python으로 작성된 코드이다. 출력 결과를 작성하시오.

def func(a, b=2):
        print('a=', a, 'b=', b) 
func(20)

 

더보기

[정답] a=20 b=2

 

[해설]

파이썬의 print문은 콤마(,)로 입력받은 객체를 띄어쓰기(' ')로 구분하여 출력되는 것이 default 이다.

하지만 정보처리기사 실기 시험에서 이번 문제의 경우 띄어쓰기는 채점과 무관하다.

 

 

 

 

 

 

7. 다음은 Python에서 리스트와 관련된 함수이다. 아래 설명에 대한 답을 [보기]에서 찾아서 작성하시오.

 

(1) 원래의 리스트에 지정한 리스트를 추가하여 확장한다.

(2) 마지막 요소 또는 지정한 요소를 삭제한 후 삭제한 값을 반환한다.

(3) 리스트를 역순으로 뒤집는다.

 

[보기]

ㄱ. pop   ㄴ. append   ㄷ. reverse   ㄹ. insert
ㅁ. sort    ㅂ. index    ㅅ. extend

 

더보기

[정답] (1) ㅅ. extend, (2) ㄱ. pop, (3) ㄷ. reverse

 

[해설]

 

* 파이썬의 리스트 관련 주요 메소드

형식 내용
extend(리스트) 리스트의 끝에 새로운 '리스트'를 추가하여 확장
[1, 2].extend([3, 4]) -> [1, 2, 3, 4]
pop(위치) 리스트의 '위치'에 있는 값을 출력하고 해당 요소를 삭제
[1, 2, 3].pop(1) -> 2 출력 -> [1, 3]
reverse() 리스트의 순서를 역순으로 뒤집음
[1, 2, 3].reverse() -> [3, 2, 1]
sort() 리스트를 정렬 (default: 오름차순)
[2, 1, 3].sort() -> [1, 2, 3]
[2, 1, 3].sort(reverse = True) -> [3, 2, 1]
index(값) 리스트에서 '값'이 저장된 위치를 반환
['a', 'b', 'c'].index('b') -> 1

 

 

 

 

 

 

8. 아래 단어의 영어 약자는 무엇인가?

 

임시 키 무결성 프로토콜

 

더보기

[정답] TKIP

 

[해설]

* TKIP (Temporal Key Integrity Protocol, 임시 키 무결성 프로토콜)

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

- 무선랜 보안 프로토콜인 유선급 브라이버시(WEP)의 취약성을 보완하기 위해 고안된 프로토콜

 

 

 

 

 

 

9. 아래 설명에 해당하는 단어의 영어 약자는 무엇인가?

 

UI 기술 중 신체를 활용한 기술

 

더보기

[정답] NUI

 

[해설]

* CLI (Command LineInterface)

- 명령줄 인터페이스

- ex. 도스, 명령 프롬프트, bash 등 유닉스 셸 환경

 

* GUI (Graphic User Interface)

- 그래픽을 이용해 사용하는 사용자 인터페이스

- ex. 마우스 커서를 이용해 클릭하여 사용

 

* NUI (Natural User Interface)

- 사람의 자연스러운 신체 움직임으로 사용하는 사용자 인터페이스

 

 * VUI (Voice User Interface)

- 사람의 음성을 기반으로 기기 조작하여 사용하는 인터페이스

 

* OUI (Organic User Interface)

- 모든 자연 상태가 입력과 출력이 동시에 이루어지는 인터페이스

- ex. IoT (사물인터넷)

 

 

 

 

 

 

10. 아래는 테스트 분석 도구에 대한 설명이다. [보기]에서 해당하는 답을 찾아 작성하시오.

 

(1) 프로그램을 실행하지 않고서 프로그램 코드를 분석한다

(2) 프로그램의 실행을 모니터링하며 프로그램 프로그램 동작이나 반응을 추적하고 보고하는 도구로써, 프로그램이 실행되는 동안 이벤트 상태를 파악하기 위해 특정한 변수나 조건의 스냅샷을 생성 및 활용한다.

 

[보기]

ㄱ. Static Anaylsis    ㄴ. Correlation Analysis    ㄷ. React Analysis
ㄹ. Regression Analysis    ㅁ. Dynamic Analysis    ㅂ. Discriminant Analysis

 

더보기

[정답] (1) ㄱ. Static Analysis, (2) ㅁ. Dynamic Analysis

 

[해설]

* 정적 분석 도구 (Static Anaylsis Tools)

- 프로그램을 실행하지 않고 분석하는 도구

- 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함 등을 발견하기 위해 사용

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

 

* 동적 분석 도구 (Dynamic Analysis Tools)

- 대상 시스템의 시뮬레이션을 통해 오류를 검출하는 도구

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

- 종류: Avalanche, Valgrind

 

 

 

 

 

11. 다음은 Java로 작성된 코드이다. 괄호에 들어갈 답은 무엇인가?

 

class Car implements Runnable{
        int a;
        public void run(){
                System.out.println("메시지"); 
        }
}

public class Main{

        public static void main(String args[]){
                Thread t1 = new Thread(new ( ? )());
                t1.start();
        }

}

 

더보기

[정답] Car

 

[해설]

Java에서 new는 객체 생성 예약어이다. 클래스를 이용해 객체를 생성해야 하므로 new 다음에 Car() 클래스를 선언하며 Car 객체를 생성한다.

 

 

 

 

 

 

12. 다음은 무엇에 대한 설명인가?

 

Erich Gamma와 Kent Beck이 만든 오픈 소스 테스트 프레임워크로, Java 단위 테스트 도구이다. XUnit이라는 이름의 유닛 테스트 프레임워크 계열의 하나이다.

 

더보기

[정답] JUnit

 

[해설]

* JUnit(제이유닛)

- 자바 프로그래밍 언어용 유닛 테스트 프레임워크

- 개발자: 켄트 백, 에릭 감마 등

 

 

 

 

 

 

13. 다음 [보기]에서 블랙박스 테스트에 해당하는 것은 무엇인가?

 

[보기]

ㄱ. Cause-Decision Graph    ㄴ. Statement Coverage
ㄷ. Boundary Value Analysis    ㄹ. Equivalence Partitioning
ㅁ. Decision Coverage      ㅂ. Cause-Effect Graphing Testing
ㅅ. Base Path Coverage    ㅇ. Boundary Division Analysis
ㅈ. Base Path Testing

 

더보기

[정답] ㄷ. Boundary Value Analysis, ㄹ. Equivalence Partitioning, ㅂ. Cause-Effect Graphing Testing

 

[해설]

* 블랙박스 테스트 (Black Box Test)

- 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트

- 기능 테스트라고도 한다.

- 사용자의 요구사항 명세를 보면서 테스트한다.

 

* 블랙박스 테스트 종류

1. 동치 분할 검사 (Equivalence Partitioning Testing, 동치 클래스 분해, 동등 분할 기법)

- 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법

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

- 입력 조건의 중간값보다 경곗값에서 오류가 발생될 확률이 높다는 점을 이용하여, 입력 조건의 경곗값을 테스트 케이스로 선정하여 검사하는 기법

3. 원인-효과 그래프 검사 (Cause-Effect Graphing Testing)

- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음, 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법

4. 오류 예측 검사 (Error Guessing)

- 과거의 경험이나 확인자의 감각으로 테스트하는 기법

5. 비교 검사 (Comparison Testing)

- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

 

 

 

 

 

 

14. 다음은 C언어로 작성된 코드이다. 입력값으로 5를 받은 경우, 출력 결과를 작성하시오.

 

#include 

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

 

[해설]

scanf로 5를 입력받았으므로 a = 5

func(a) -> func(5) -> 5*func(4) -> 5*4*func(3) -> 5*4*3*func(2) -> 5*4*3*2*func(1) -> 5*4*3*2*1 = 120

 

 

 

 

 

 

15. 다음은 C언어로 작성된 코드이다. 괄호에 들어갈 알맞은 답은 무엇인가?

 

#include 

int main() {

        int number = 1234;
        int divider = 10;
        int result = 0;
        
        while (number ( 1 ) 0) {
                result = result * divider;
                result = result + number ( 2 ) divider;
                number = number ( 3 ) divider;
        }

        printf("%d", result);

}

 

더보기

[정답] (1) > (또는 !=), (2) %, (3) /

 

[해설]

정수를 역순으로 출력하는 코드이다.

 

 

 

 

 

 

16. 아래 설명에 해당하는 영어 약자는 무엇인가?

 

정보 보호 관리 체계란, 정보 통신 서비스 제공자가 정보 통신망의 안정성 및 신뢰성을 확보하여 정보 자산의 기밀성, 무결성, 가용성을 실현하기 위한 관리적, 기술적 수단과 절차 및 과정을 체계적으로 관리 및 운영하는 것이다.

 

더보기

[정답] ISMS

 

[해설]

* ISMS (Information Security Management System)

- 정보 통신 서비스 제공자가 정보 통신망의 안정성 및 신뢰성을 확보하여 정보 자산의 기밀성, 무결성, 가용성을 실현하기 위한 관리적, 기술적 수단과 절차 및 과정을 체계적으로 관리 및 운영하는 것이다.

 

 

 

 

 

 

17. 아래 괄호에 들어갈 알맞은 답을 [보기]에서 찾아 작성하시오.

 

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

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

 

[보기]

ㄱ. 가용성    ㄴ. 무결성    ㄷ. 유한성    ㄹ. 최소성
ㅁ. 독립성    ㅂ. 희소성    ㅅ. 원자성    ㅇ. 유일성

 

더보기

[정답] (1) ㅇ. 유일성, (2) ㄹ. 최소성

 

[해설]

* 키(Key)

- 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성

 

* 키(Key)의 종류

1. 후보키 (Candidate Key)

- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

- 기본키로 사용할 수 있는 속성

- 유일성과 최소성을 모두 만족해야함

2. 기본키 (Primary Key)

- 후보키 중에서 특별히 선정된 주 키(main key)

- 중복된 값을 가질 수 없음

- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

- NULL 값을 가질 수 없음

3. 대체키 (Alternate Key, 보조키)

- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키

4. 슈퍼키 (Super Key)

- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

- 유일성은 만족하지만, 최소성은 만족하지 못함

5. 외래키 (Foreign Key)

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

- 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없음

 

 

 

 

 

 

18. 아래 설명에 해당하는 알맞은 답을 [보기]에서 찾아 작성하시오.

 

이는 공격 대상은 피해 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 감염시켜 잠복하며, 피해 대상이 접속할 때까지 기다린 후 접속 시 피해 대상의 컴퓨터에 악성 프로그램을 추가로 설치하는 방법이다..

 

[보기]

ㄱ. Pharming    ㄴ. Spear Phising    ㄷ. Watering Hole
ㄹ. DNS Spoofing    ㅁ. Nimda    ㅂ. Zero Day Attack
ㅅ. Worm Virus    ㅇ. Trap Door    ㅈ. Cyber Kill Chain
ㅊ. Ransomware

 

더보기

[정답] ㄷ. Watering Hole

 

[해설]

* Watering Hole Attack (워터링 홀 공격)

- 공격 대상이 자주 방문하는 웹사이트를 악성코드로 감염시킨 해커는, 공격 대상이 해당 사이트에 들어올 때까지 잠복하면서 대기하다가, 공격 대상이 접속하는 순간 공격하는 방법이다.

 

 

 

 

 

 

19. 다음은 C언어로 작성된 코드이다. 출력 결과는 무엇인가?

 

#include 

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

 

[해설]

* if (isPrime(i) == 1 && number % i == 0) max_div = i; 의미

isPrime(i) == 1 → i는 소수인가? 

number % i == 0 i는 number의 약수인가?

max_div = i if문의 조건을 모두 만족하는 수 중 가장 큰 수

 

∴ 소수이면서 동시에 13195의 약수인 수 중에서 가장 큰 수는? 29

(∵ 13195 = 5*7*13*29)

 

 

 

 

 

 

20. 다음은 소프트웨어 생명 주기의 V-모델이다. 빈 칸에 들어갈 답을 [보기]에서 찾아 작성하시오.

 

 

[보기]

ㄱ. 단위 테스트      ㄴ. 통합 테스트
ㄷ. 시스템 테스트    ㄹ. 인수 테스트

 

더보기

[정답] (1) 단위 테스트, (2) 통합 테스트, (3) 시스템 테스트, (4) 인수 테스트

 

[해설]

소프트웨어 생명 주기의 V-모델

 

* 테스트 레벨

- 소프트웨어의 개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트로 분류된다.

 

* V-모델

- 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것 

 

 

 

 

 

반응형