본문 바로가기
정보처리기사/실기

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

by 더 이프 2023. 7. 12.
728x90

목차

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

    가독성을 위해서 정답은 청록색으로 표기하겠습니다.

    ■ 문제 1

    다음 C언어로 구현된 프로그램을 분석하여 배열 mines의 각 같에 들어갈 값을 쓰시오.

    #include <stdio.h>
    
    int calculate(int w, int h, int j, int i) {
        if (i >= 0 && i < h && j >= 0 && j < w) return 1;
        return 0;
    }
    
    void main() {
        int field[4][4] = {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}};
        int mines[4][4] = {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}; 
    
        int w = 4, h = 4;
        for(int y=0; y<h; y++) {
            for(int x=0; x<w; x++) {  
                if(field[y][x] == 0) continue;
    
                for(int i=y-1; i<=y+1; i++) {
                    for(int j=x-1; j<=x+1; j++) {
                        if(calculate(w,h,j,i) == 1) {
                            mines[i][j] += 1;
                        }
                    }
                }
            }
        }
    
        for(int y=0; y<h; y++){
            for(int x=0; x<w; x++)
                printf("%d ", mines[y][x]);
            printf("\n");
        }
    }
    더보기

    1 1 3 2
    3 4 5 3
    3 5 6 4
    3 5 5 3

     

    ■ 문제 2

    관계대수에 대한 다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 쓰시오.

    관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. 관계대수에 사용되는 연산은 다음과 같다,
    합집합(UNION)은 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산으로, 사용하는 기호는 ( 1 )이다.
    차집합(DIFFERENCE)은 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산으로, 사용하는 기호는 ( 2 )이다.
    교차곱(CARTESIAN PRODUCT)은 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산으로, 사용하는 기호는 ( 3 )이다.
    프로젝트(PROJECT)는 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( 4 )이다.
    조인(JOIN)은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 리레이션을 만드는 연산으로, 사용하는 기호는 ( 5 )이다.

    더보기

    1. U
    2. - 
    3. X
    4. 𝛑
    5. 

     

    ■ 문제 3

    디자인 패턴에 대한 다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 보기에서 찾아 쓰시오.

    보기
    Builder
    Factory Method
    Adapter
    Bridge
    Facade
    Proxy
    Observer
    Mediator

    ( 1 ) 패턴은 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴으로, 기능과 구현을 두 개의 별도 클래스로 구현한다는 특징이 있다.
    ( 2 ) 패턴은 학 객체의 상태가 변화하면 객체에 상속된 다른 객체들에게 변화된 상태를 전달하는 패턴으로, 일대다의 의존성을 정의한다. 주로 분산된 시스템 간에 이벤트를 생성,발행하고, 이를 수신해야 할 때 이용한다.

    더보기

    1. Bridge
    2. Observer

     

    ■ 문제 4

    다음 자바로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

    public class Test {
        public static void main(String[] args) {
            int []result = new int[5];
            int []arr = {77,32,10,99,50};
    
            for(int i = 0; i < 5; i++) {
                result[i] = 1;
                for(int j = 0; j < 5; j++) {
                    if(arr[i] < arr[j]) result[i]++;
                }
            }
    
            for(int k = 0; k < 5; k++) {
                System.out.print(result[k]);
            }
        }
    }
    더보기
    24513

     

    ■ 문제 5

    192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 서브넷으로 나누었을 때, 두 번째 네트워크의 브로드캐스트 IP주소를 10진수 방식으로 쓰시오.

    더보기

    192.168.1.127

     

    ■ 문제 6

    테스트 기법 중 다음과 같이 평가 점수표를 미리 정해 놓은 후 각 영역의 경계에 해당하는 입력값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을 보기에서 찾아 쓰시오. 

    보기
    Equivalence Partition
    Boundary Value Analysis
    Condition Test
    Cause-Effect Graph
    Error Guess
    Comparison Test
    Base Path Test
    Loop Test
    Data Flow Test
    평가 점수표
    평가점수 성적등급
    90 ~ 100 A
    80 ~ 89 B
    70 ~ 79 C
    0 ~ 69 D
    케이스
    테스트 케이스 1 2 3 4 5 6 7 8 9 10
    입력값 -1 0 69 70 79 80 89 90 100 101
    예상 결과값 오류 D D C C B B A A 오류
    실제 결과값 오류 D D C C B B A A 오류
    더보기

    Boundary Value Analysis

     

    ■ 문제 7

    다음과 같이 테이블을 정의하고 튜플을 삽입하였을 때 각 번호의 SQL문을 실행한 결과를 쓰시오.

    CREATE TABLE 부서 {
    	부서코드 INT PRIMARY KEY,
        부서명 VARCHAR(20)
    };
    
    CREATE TABLE 직원 {
    	직원코드 INT PRIMARY KEY,
        부서코드 INT,
        직원명 VARCHAR(20),
        FOREIGN KEY(부서코드) REFERENCES 부서(부서코드)
        ON DELETE CASCADE
    };
    
    INSERT INTO 부서 VALUES(10, '영업부');
    INSERT INTO 부서 VALUES(20, '기획부');
    INSERT INTO 부서 VALUES(30, '개발부');
    
    INSERT INTO 직원 VALUES(1001, 10, '이진수');
    INSERT INTO 직원 VALUES(1002, 10, '곽연경');
    INSERT INTO 직원 VALUES(1003, 20, '김선길');
    INSERT INTO 직원 VALUES(1004, 20, '최민수');
    INSERT INTO 직원 VALUES(1005, 20, '이용갑');
    INSERT INTO 직원 VALUES(1006, 30, '박종일');
    INSERT INTO 직원 VALUES(1007, 30, '박미경');

    1. SELECT DISTINCT COUNT(부서코드) FROM 직원 WHERE 부서코드 = 20;
    2. DELETE FROM 부서 WHERE 부서코드 = 20;
        SELECT DISTINCT COUNT(부서코드) FROM 직원;

    더보기

    1. 3
    2. 4

     

    ■ 문제 8

    다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 쓰시오.
    ( 1 )은/는 컴퓨터 보안에 있어서, 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 보안 절차를 깨트리기 위한 비기술적 시스템 침입 수단을 의미한다.
    ( 2 )은/는 특정 목적을 가지고 데이터를 수집하였으나, 이후 활용되지 않고 저장만 되어 있는 대량의 데이터를 의미한다. 미래에 사용될 가능성을 고려하여 저장 공간에서 삭제되지 않고 보관되어 있으나, 이는 저장 공간의 낭비뿐만 아니라 보안 위험을 초래할 수도 있다.

    더보기

    1. 사회 공학(Social Engineering)
    2. 다크 데이터(Dark Data)

     

    ■ 문제 9

    다음 파이썬으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

    TestList = [1,2,3,4,5]
    TestList = list(map(lambda num : num + 100, TestList)))
     
    print(TestList)
    더보기

    [101,102,103,104,105]

     

    ■ 문제 10

    다음 설명에 해당하는 알맞은 용어를 쓰시오.
    다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션으로, 방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 보안 이벤트를 통합하여 관리함으로써 비용 및 자원을 절약할 수 있는 특징이 있다. 또한 보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립할 수 있다.

    더보기

    SIEM(Security Information & Event Management)

     

    ■ 문제 11

    다음 제시된 보기 중 형상 관리 도구에 해당하는 것을 3가지 고르시오.

    보기
    OLAP
    CVS
    Ant
    Maven
    Git
    Jenkins
    Spring
    SVN
    더보기

    CVS

    Git

    SVN

     

    ■ 문제 12

    STUDENT 테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명 있다고 할 때, 다음 SQL문의 실행 결과로 표시되는 튜플의 수를 쓰시오.(단, DEPT 필드는 학과를 의미한다.)
    1. SELECT DEPT FROM STUDENT;
    2. SELECT DISTINCT DEPT FROM STUDENT;
    3. SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '전산과';

    더보기

    1. 200
    2. 3
    3. 1

     

    ■ 문제 13

    다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

    #include <stdio.h>
    
    void main(){
        int s = 0;
        int el = 0;
    
        for(int i = 6; i <= 30; i++){
            for(int j = 1; j <= i / 2; j++){
                if(i % j == 0){
                    s = s + j;
                }
            }
            if(s == i){
                el++;
            }
        }
        
        printf("%d", el);
    }

     

    ■ 문제 14

    보안 및 보안 위협에 대한 다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 보기에서 찾아 쓰시오.

    보기
    Pharming
    Tvishing
    Trustzone
    APT
    Typosquatting
    Hacktivism
    Watering Hole
    Smurfing
    Ransomware
    CSRF

    ( 1 )은/는 칩 설계회사인 ARM(Advanced RISC Machine)에서 개발한 기술로, 하나의 프로세서 내에 일반 애플리케이션을 처리하는 일반 구역과 보안이 필요한 애플리케이션을 처리하는 보안 구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술이다.
    ( 2 )은/는 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것으로 URL 하이재킹이라고도 한다. 유명 사이트들의 도메인을 입력할 때 발생할 수 있는 온갖 도메인 이름을 미리 선점해 놓고 이용자가 모르는 사이에 광고 사이트로 이동하게 만든다.

    더보기

    1. Trustzone
    2. Typosquatting

     

    ■ 문제 15

    다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 쓰시오.
    (   )은/는 한 번의 로그인으로 개인이 가입한 모든 사이트를 이용할 수 있게 해주는 시스템을 말한다. 개인의 경우, 사이트에 접속하기 위하여 아이디와 패스워드는 물론 이름, 전화번호 등 개인정보를 각 사이트마다 일일이 기록해야 하던 것이 한번의 작업으로 끝나므로 불편함이 해소되며, 기업에서는 회원에 대한 통합관리가 가능해 마케팅을 극대화시킬 수 있다는 장점이 있다.

    더보기

    SSO(Single Sign On)

     

    ■ 문제 16

    스케줄링에 대한 다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 쓰시오.
    ( 1 )은/는 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다. 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이지만, 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태가 발생될 수 있다.
    ( 2 )은/는 시분할 시스템을 위해 고안된 방식으로, 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 시간 할당량 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치된다. 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청된 작업을 신속히 처리할 수 없다.
    ( 3 )은/는 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 시간을 요구하는 프로세스에게 CPU를 할당하는 기법으로, 시분할 시스템에 유용하다. 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가한다.

    더보기

    1. SJF(Shortest Job First)
    2. RR(Round Robin)
    3. SRT(Shortest Remaining Time)

     

    ■ 문제 17

    UML에 대한 다음 설명에서 괄호 (   ) 안에 들어갈 알맞은 용어를 쓰시오.
    UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 스스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체 지향 모델링 언어로, 사물, ( 1 ), 다이어그램으로 이루어져 있다.
    ( 1 )은/는 사물과 사물 사이의 연관성을 표현하는 것으로, 연관, 집합, 포함, 일반화 등 다양한 형태의 ( 1 )가 존재한다.
    ( 2 )은/는 UML에 표현되는 사물의 하나로, 객체가 갖는 속성과 동작을 표현한다. 일반적으로 직사각형으로 표현하며, 직사각형 안에 이름, 속성, 동작을 표기한다.
    ( 3 )은/는 ( 2 )와 UML에 표현되는 사물의 하나로, ( 2 )나 컴포넌트의 동작을 모아놓은 것이며, 외부적으로 가시화되는 행동을 표현한다. 단독으로 사용되는 경우는 없으며, ( 3 ) 구현을 위한  ( 2 ) 또는 컴포넌트와 함께 사용된다.

    더보기

    1. 관계
    2. 클래스
    3. 인터페이스

     

    ■ 문제 18

    다음 E - R 다이어그램을 참고하여 괄호 (   ) 안의 설명에 적합한 요소를 찾아 기호로 쓰시오.

    ( 1 ) : 관계 집합을 의미한다.
    ( 2 ) : 관계 집합과 속성을 연결한다.
    ( 3 ) : 개체 집합을 의미하며, 키로 사용되는 항목에는 밑줄을 표시한다.
    ( 4 ) : 관계 집합의 속성을 의미한다.
    ( 5 ) : 개체 집합과 관계 집합을 연결한다.

    더보기

    1. ㄴ
    2. ㄷ
    3. ㄱ
    4. ㄹ
    5. ㅁ

     

    ■ 문제 19

    다음 자바로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

    public class Main {
        static int[] MakeArray(){
            int[] tempArr = new int[4];
            for(int i=0; i < tempArr.length; i++){
                tempArr[i] = i;
            }
            return tempArr;
        }
        
        public static void main(String[] args){
            int[] intArr;
            intArr = MakeArray();
            for(int i=0; i < intArr.length; i++){
                System.out.print(intArr[i]);
            }
        }
    }
    더보기

    0123

     

    ■ 문제 20

    다음 자바로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

    public class Exam {
        public static void main(String[] args){
            int a = 0;
            for(int i = 1; i < 999; i++) {
                if(i % 3 == 0 && i % 2 != 0) {
                    a = i;
                }
            }
            System.out.println(a);
        }
    }