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

[2023년도 1회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

by YUNI Heo 2024. 1. 7.
반응형

 

⭕ [2023년도 1회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

➡️ 1. [JAVA 코드] 알맞은 출력 값을 작성하시오.

class Static {
    public int instanceVariable = 20;
    static int staticVariable = 0;
}

public class Main {
    public static void main(String[] args) {
        int localVariable;
        localVariable = 10;
        Static.staticVariable = localVariable;

        Static st = new Static();

        System.out.println(Static.staticVariable++);
        System.out.println(st.staticVariable);
        System.out.println(localVariable);
        System.out.print(st.instanceVariable);
    }
}

정답

10
11
10
20

해설

 


➡️ 2. [C 언어 코드] 알맞은 출력 값을 작성하시오.

#include <stdio.h>

int main() {
    char word[] = "Art";
    char* pointer = NULL;
    pointer = word;

    printf("%s\n", word);
    printf("%c\n", *pointer);
    printf("%c\n", *word);
    printf("%s\n", pointer);

    for (int i = 0; word[i] != '\0'; i++)
        printf("%c", word[i]);

    return 0;
}

정답

Art
A
A
Art
Art

해설

 


➡️ 3. [C 언어 코드] 알맞은 출력 값을 작성하시오.

#include <stdio.h>

int main() {
    char* str1 = "qwer";
    char* str2 = "qwtety";

    for (int i = 0; str1[i] != '\0'; i++) {
        for (int j = 0; str2[j] != '\0'; j++) {
            if (str1[i] == str2[j]) {
                printf("%c", str1[i]);
            }
        }
    }

    return 0;
}

정답

qwe

해설

 


➡️ 4. [용어] 다음 설명에 대한 용어를 작성하시오.

- JavaScript와 XML을 이용한 비동기적 정보 교환 기법으로, 비동기적인 웹 애플리케이션을 제작하는 데 사용된다.
- 필요한 데이터만을 웹 서버에 요청하여 받은 후, 클라이언트에서 데이터에 대한 처리를 할 수 있다.
- 주로 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 클라이언트 쪽에서는 자바스크립트를 활용하여 웹 서버의 응답을 처리한다.
- Google Map과 Google Pages에서 사용된 기술에 기반하여 제작되었다.

정답

AJAX 
Asynchronous JavaScript and XML

해설

 


➡️ 5. [용어] 다음 설명에 대한 통신 기술을 작성하시오.

a)
- 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다.
- 처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.
- 통신 기술에는 ATM이 있으며, 정해진 시간 안이나 다량의 데이터를 연속으로 보낼 때 적합하다.

b)
- 패킷 교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.
- 각 전송 패킷을 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식이다.
- 특정 교환기의 고장 시 모든 패킷을 잃어버리는 가상 회선과 달리, 경로를 피해서 전송할 수 있으므로 더욱 신뢰가 가능하다.
- 짧은 메시지의 패킷을 전송할 때 효과적이며, 재정렬 기능이 필요하다.

정답

a) 가상회선
b) 데이터그램

해설

 


➡️ 6. [용어] 다음 설명에 대한 기술 용어를 작성하시오.

- 2 계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나이다.
- L2F와 PPTP가 결합된 프로토콜로, VPN과 인터넷 서비스 제공자(ISP)가 이용한다.
- IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만, 보안보다는 익명화에 더 적합하다.

정답

L2TP

해설

 


➡️ 7. [용어] 다음 설명에 대한 프로토콜을 작성하시오.

- 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 파일을 복사할 수 있도록 하는 응용 프로그램 또는 프로토콜이다.
- rsh, rcp, rlogin, rexec, telnet, ftp 등의 보안 접속을 제공하며, IP spoofing을 방지하기 위한 기능을 갖추고 있다.
- 기본적으로 포트는 22번이 할당되어 있다.

정답

SSH
Secure SHell

해설

 


➡️ 8. [용어] 다음 설명에 대한 용어를 작성하시오.

( a )
- 자체 복제가 가능한 악성 프로그램으로, 파일 전송 기능을 이용하여 전파될 수 있다.
- 다른 실행 프로그램을 필요로하지 않고, 감염된 컴퓨터 시스템에서 스스로를 복제하여 확산한다.
- 네트워크를 통한 전파와 자가 복제 기능을 가지고 있다.

( b )
- 정상적인 프로그램으로 위장하여 사용자가 설치하도록 유도하며, 백도어를 만들어 공격자가 침입하거나 시스템을 파괴하는 악성 프로그램이다.
- 램에 상주하여 계속 실행되며, 시스템 내부 정보를 빼돌려 공격자에게 전송한다.
- 내부 정보 유출 및 시스템 컨트롤이 가능한 종류가 있으며, 감염 후 스스로를 복제하지는 않는다.

( c )
- 대상 파일을 감염시키는 악성코드로, 실행될 때 감염 대상이 존재하면 동작한다.
- 컴퓨터 시스템에 침입하여 프로그램에 기생하며, 시스템을 변경하거나 사용 불가능하게 만든다.
- 네트워크를 통한 전파는 없으며, 다양한 형태로 나뉘어지며 실행 위치에 따라 다르게 작동한다.

정답

a) 웜
b) 트로이 목마
c) 바이러스

해설

 


➡️ 9. [C 언어 코드] 괄호 안에 알맞은 코드를 작성하시오.

[조건]

이진수를 십진수로 변환하는 코드
#include <stdio.h>

int main() {

    int input = 101110;
    int di = 1;
    int sum = 0;

    while (1) {

        if (input == 0) break;
        else {

            sum = sum + (input ( a ) ( b )) * di;
            di = di * 2;
            input = input / 10;

        }
    }

    printf("%d", sum);

    return 0;
}

정답

a) %
b) 10 or 5 or 2

해설

 


➡️ 10. [용어] 다음 설명에 대한 보안 용어를 작성하시오.

- ( a ) ICMP은 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
- ( a ) 프로토콜은 주로 다른 호스트나 게이트웨이와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 사용된다.
- ( a )을 이용한 공격에는 ( a ) Flooding이 있는데 ping 명령어를 통한 ( a ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른 작업을 하지 못하도록 하는 공격이다.

정답

a) ICMP

해설

 


➡️ 11. [용어] 다음 설명에 대한 디자인 패턴을 작성하시오.

- 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다.
- 실제 객체를 호출하면 행위를 중간에 가로채서 다른 동작을 수행하는 객체로 변경한다.
- 객체를 정교하게 제어해야 하거나 객체 참조가 필요한 경우 사용한다.
- 분리된 객체를 위임함으로써 대리 작업을 중간 단계에 삽입할 수도 있으며 분리된 객체를 동적으로 연결함으로써 객체의 실행 시점을 관리할 수도 있다.

정답

proxy

해설

 


➡️ 12. [용어] 다음 설명에 대한 데이터베이스 용어를 작성하시오.

( a )
- 셀 수 있는 수량의 순서 있는 열거이다.
- 중복이 허용될 수 있는 특징이 있다.
- 여러 객체를 모아서 담으며, 숫자, 문자, 객체, 배열, 튜플 안의 튜플이 가능하다.

( b )
- 릴레이션의 내용 또는 저장된 데이터 전체를 의미한다.
- 릴레이션 외연(Relation Extension)이라고도 한다.

( c )
- 특정 데이터 집합의 유니크한 값의 개수이다.
- 특정 컬럼의 중복 수치를 나타내는 지표이다.

정답

a) 튜플
b) 릴레이션 인스턴스
c) 카디널리티

해설

 


➡️ 13. [SQL] 알맞은 SQL문을 작성하시오.

[조건]

-[학생 테이블]에서 학생 이름이 '민수'인 튜플을 삭제하는 쿼리

- 컬럼의 값이 문자열일 경우 작은 따움표를 표시한다.
- SQL 마지막에 세미콜론(;)은 표기하지 않아도 관계 없다.

[학생 테이블]

순번 학년 이름
1 1 종현
2 2 민수
3 3 수연
4 4 수지

 

정답

DELETE FROM 학생
WHERE 이름 = '민수';

해설

 


➡️ 14. [JAVA 코드] 괄호 안에 알맞은 코드를 작성하시오.

public class BubbleSort {

    public static void swap(int[] arr, int idx1, int idx2) {
        int temp = arr[idx1];
        arr[idx1] = arr[idx2];
        arr[( a )] = temp;
    }

    public static void bubbleSort(int[] array, int length) {
        for (int i = 0; i < length; i++) {
            for (int j = 0; j < length - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                    swap(array, j, j + 1);
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] numbers = new int[] {5, 3, 8, 1, 2, 7};
        int arrayLength = 6;
        bubbleSort(numbers, ( b ));

        for (int data : numbers) {
            System.out.print(data + " ");
        }
    }

}

[출력 결과]

1 2 3 5 7 8

정답

a) idx2
b) arrayLength

해설

 


➡️ 15. [Python 코드] 알맞은 출력 값을 작성하시오.

countries = {'한국', '중국', '일본'}
countries.add('베트남')
countries.add('중국')
countries.remove('일본')
countries.update({'홍콩', '한국', '태국'})
print(countries)

정답

{'한국', '태국', '베트남', '중국', '홍콩'}

해설

 


➡️ 16. [SQL] 알맞은 SQL문을 작성하시오.

[조건]

- WHERE 절 사용 금지
- SELECT 절에 별칭 사용
- SQL 구문 마지막에 세미콜론 생략 가능
- GROUP BY와 HAVING 반드시 사용
- 집계 함수를 사용

[성적 테이블]

순번 과목이름 점수
1 데이터베이스 89
2 데이터베이스 92
3 네트워크 88
4 소프트웨어 91
5 네트워크 89
6 소프트웨어 85

[결과]

과목이름 최소점수 최대점수
데이터베이스 89 92

정답

SELECT
  과목이름,
  MIN(점수) AS 최소점수,
  MAX(점수) AS 최대점수
FROM 
  성적
GROUP BY 
  과목이름
HAVING
  AVG(점수) >= 90;

해설

 


➡️ 17. [JAVA 코드] 알맞은 출력 값을 작성하시오.

abstract class Vehicle {
    String name;

    abstract public String getName(String val);

    public String getName() {
        return "Vehicle name: " + name;
    }
}

class Car extends Vehicle {
    public Car(String val) {
        name = super.name = val;
    }

    @Override
    public String getName(String val) {
        return "Car name:" + val;
    }

    public String getName(byte val[]) {
        return "Car name:" + val;
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle obj = new Car("Spark");
        System.out.println(obj.getName());
    }
}

정답

Vehicle name: Spark

해설

 


➡️ 18. [용어] 다음 설명에 대한 스키마를 작성하시오.

( a ) 스키마
- 사용자나 응용 프로그래머는 데이터베이스의 논리적 구조를 정의한다.
- 서브 스키마로 개별 데이터베이스 시스템의 논리적 부분을 나타낸다.
- 여러 외부 스키마가 하나의 데이터베이스 시스템에 존재할 수 있으며, 하나의 외부 스키마를 여러 응용 프로그램이 공유할 수 있다.

( b ) 스키마
- 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개체 간의 관계와 제약 조건을 정의하고 데이터베이스의 접근 권한, 보안, 무결성 규칙에 관한 명세를 제공한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 정의하며, 기관이나 조직체의 관점에서 데이터베이스를 정의한다.

( c ) 스키마
- 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한다.
- 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서, 인덱스 여부 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 관리한다.

정답

a) 외부
b) 개념
c) 내부

해설

 


➡️ 19. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.

정답

1234561, 124567
1234567, 124561

해설

 


➡️ 20. [JAVA 코드] 알맞은 출력 값을 작성하시오.

class Parent {
    int parentX = 100;

    Parent() {
        this(500);
    }

    Parent(int x) {
        this.parentX = x;
    }

    int getParentX() {
        return parentX;
    }
}

class Child extends Parent {
    int childX = 4000;

    Child() {
        this(5000);
    }

    Child(int x) {
        this.childX = x;
    }
}

public class Main {
    public static void main(String[] args) {
        Child obj = new Child();
        System.out.println(obj.getParentX());
    }
}

정답

500

해설

 

반응형