20231

20문제 · 2023-1

  1. #1·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    아래 Java 코드에서 출력되는 값을 작성하시오.

    class Static {
        public int a = 20;
        static int b = 0;
    }
    
    public class Main {
        public static void main(String[] args) {
            int a = 10; // 1
            Static.b = a; // 2
            Static st = new Static(); // 3
            System.out.println(Static.b++); // 4
            System.out.println(st.b); // 5
            System.out.println(a); // 6
            System.out.println(st.a); // 7
        }
    }
    
  2. #2·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 언어의 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char a[] = "Art"; // 1
        char *p = NULL; // 2
        p = a;
        printf("%s\n", a); // 3
        printf("%s\n", p); // 4
        printf("%s\n", a + 1); // 5
        printf("%s\n", p + 1); // 6
        printf("%c\n", a[1]); // 7
    }
    
  3. #3·코드 추적·난이도 어려움·쪼잔함 3 (욕 나옴)프로그래밍C언어

    다음 C 언어의 출력값을 작성하시오.

    #include <stdio.h>
    
    int main() {
        char *a = "qwer"; // 1
        char *b = "qwtety"; // 2
        for(int i = 0; a[i] != '\0'; i++) { // 3
            for(int j = 0; b[j] != '\0'; j++) { // 4
                if(a[i] == b[j]) printf("%c", a[i]); // 5
            }
        }
    }
    
  4. #4·빈칸 채우기·난이도 보통·쪼잔함 1 (그럭저럭)네트워크프로그래밍

    다음 괄호 안에 들어가는 용어의 Full Name 또는 약자를 작성하시오.

    ( )는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.

  5. #5·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크

    괄호 안에 들어갈 적절한 네트워크 용어를 [보기]에서 고르시오.

    ① ( ) :

    • 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다.
    • 처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.
    • 통신기술에는 ATM이 있으며, 정해진 시간 안이나 다량의 데이터를 연속으로 보낼 때 적합하다. ② ( ) :
    • 패킷교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.
    • 각 전송패킷을 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식이다.
    • 특정 교환기의 고장 시 모든 패킷을 잃어버리는 가상회선과 달리, 그 경로를 피해서 전송할 수 있으므로 더욱 신뢰가 가능하다.
    • 짧은 메시지의 패킷ㅅ들을 전송할 때 효과적이고 재정렬 기능이 필요하다.

    [보기] 데이터그램, 패킷, 프레임, 가상회선, 메시지, Sliding Window, ICMP

  6. #6·단답형·난이도 어려움·쪼잔함 3 (욕 나옴)네트워크보안

    아래 내용에 해당하는 프로토콜은 무엇인지 작성하시오.

    • 2계층(데이터링크 계층)에서 구현되는 VPN 터널링 프로토콜이다.
    • L2TP와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용한다.
    • IPsec과 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 암호화에 더 적합하다.
  7. #7·빈칸 채우기·난이도 쉬움·쪼잔함 1 (그럭저럭)보안

    괄호 안에 알맞은 용어를 작성하시오.

    ( ㉠ ) 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.

    • 보완 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공하며, IP spoofing(IP 스푸핑, 아이피 변조 기법 중 하나)을 방지하기 위한 기능을 제공한다.
    • ( ㉠ )는 기본적으로 22번 포트를 사용한다.
  8. #8··난이도 보통·쪼잔함 4 (화병)보안

    아래 설명에 알맞은 답을 작성하시오.

    ① 감염된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사로 실행되며 다른 실행 프로그램이 필요하지 않으며, 파일 전송 기능을 착취하도록 설계된다. ② 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 유도하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다. ③ 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다.

    • 감염된 후에 스스로 복제하는 능력은 없다.
  9. #9·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍C언어

    아래 코드에서 이진수를 십진수로 변환하는 코드에 대해 괄호 (a), (b)에 적합한 답을 작성하시오.

    #include <stdio.h>
    
    int main() {
        int input = 101110; // ①
        int sum = 0;        // ②
        int di = 1;         // ③
    
        while (1) {
            if (input == 0) break; // ④
            else {
                sum = sum + (input % 10) * di; // ⑤
                di = di * 2;                   // ⑥
                input = input / 10;            // ⑦
            }
        }
        printf("%d", sum); // ⑧
        return 0;
    }
    
  10. #10·빈칸 채우기·난이도 보통·쪼잔함 2 (짜증)네트워크보안

    다음은 보안 관련 설명으로, 괄호 안에 알맞은 용어를 작성하시오.

    • ( ㉠ )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜이다.
    • ( ㉡ ) 프로토콜은 ping을 사용하여 메시지, 오류 등을 담아 보내고 실패할 경우 이에 대한 정보를 가지고 송신단으로 돌아오는 방식이다.
    • ( ㉢ )을/를 이용한 공격에는 ( ㉣ ) Flooding이 있는데 ping 명령어를 통한 ( ㉣ ) 패킷을 연속적으로 계속 보내어 서버의 응답으로 인한 다른 작업을 하지 못하도록 하는 공격이다.
  11. #11·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)소프트웨어공학디자인패턴

    다음은 디자인 패턴에 관한 설명이다. 설명에 알맞은 답은 무엇인가?

    • 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다.
    • 객체의 대리자를 이용하여 원래 객체의 작업을 대신 처리하는 디자인 패턴을 의미한다.
  12. #12·빈칸 채우기·난이도 보통·쪼잔함 4 (화병)데이터베이스

    다음은 데이터베이스에 관련된 내용이다. 각 괄호 안에 알맞은 답을 작성하시오.

    ① ( ) : 셀 수 있는 튜플의 수이다. ② ( ) : 어떤 시점에 릴레이션의 내용(상태), 즉 저장된 데이터 전체를 의미한다. ③ ( ) : 단순히 릴레이션 또는 릴레이션 외연(Relation Extension)이라고도 한다. ④ ( ) : 특정 데이터 집합의 유니크(Unique)한 값의 개수이다.

  13. #13·단답형·난이도 쉬움·쪼잔함 1 (그럭저럭)데이터베이스SQL

    [학생] 테이블에서 학생 이름이 '동이'인 튜플을 삭제하는 쿼리를 작성하시오.

  14. #14·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 코드에서 괄호 안에 알맞은 변수명으로 작성하시오.

    public class Sort {
        public static void swap(int[] arr, int idx1, int idx2) {
            int temp = arr[idx1];
            arr[idx1] = arr[idx2];
            arr[idx2] = temp;
        }
    
        public static void Usort(int[] array, int length) {
            for (int i = 0; i < length; i++) {
                for (int j = 0; j < length - 1 - i; j++) {
                    if (array[j] > array[j + 1]) {
                        swap(array, j, j + 1);
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            int[] item = {5, 3, 8, 1, 2, 7};
            int nx = 6;
            Usort(item, nx);
            for (int data : item) {
                System.out.print(data + " ");
            }
        }
    }
    
  15. #15·코드 추적·난이도 보통·쪼잔함 2 (짜증)프로그래밍Python

    다음 파이썬 코드의 알맞은 출력값을 작성하시오.

    a = {'일본', '중국', '한국'}
    a.add('베트남')
    a.add('중국')
    a.remove('일본')
    a.update({'홍콩', '한국', '태국'})
    print(a)
    
  16. #16·단답형·난이도 어려움·쪼잔함 1 (그럭저럭)데이터베이스SQL

    과목 평균이 90점 이상인 과목의 최소점수와 최대점수를 결과와 같이 나타내는 SQL문을 작성하시오.

    학번과목점수
    1데이터베이스89
    2데이터베이스92
    3네트워크88
    4프로그래밍91
    5네트워크89
    6프로그래밍85

    결과:

    과목최소점수최대점수
    데이터베이스8992
  17. #17·코드 추적·난이도 어려움·쪼잔함 2 (짜증)프로그래밍Java

    다음 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;
        }
    
        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());
        }
    }
    
  18. #18·빈칸 채우기·난이도 보통·쪼잔함 3 (욕 나옴)데이터베이스

    다음은 스키마와 관련된 내용이다. 각 괄호 안에 알맞은 답을 작성하시오.

    (1) ( ㉠ ) 스키마

    • 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다.
    • 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브 스키마라고도 한다.
    • 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있다.
    • 하나의 외부 스키마를 여러 개의 응용 프로그램 혹은 사용자가 공유할 수 있다.

    (2) ( ㉡ ) 스키마

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

    (3) ( ㉢ ) 스키마

    • 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한 것이다.
    • 실제 데이터베이스에 저장될 레코드의 물리적인 순서, 인덱스 유무 등을 나타낸다.
    • 시스템 프로그래머나 시스템 설계자가 관리한다.
  19. #19·단답형·난이도 어려움·쪼잔함 2 (짜증)소프트웨어공학테스트

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

  20. #20·코드 추적·난이도 ·쪼잔함 2 (짜증)프로그래밍Java

    다음 자바 코드에 대한 출력 값을 작성하시오.

    class Parent {
        int x = 100;
        Parent() {
            this(500);
        }
        Parent(int x) {
            this.x = x;
        }
        int getX() {
            return x;
        }
    }
    
    class Child extends Parent {
        int x = 400;
        Child() {
            this(5000);
        }
        Child(int x) {
            this.x = x;
        }
    }
    
    public class Main {
        public static void main(String[] args) {
            Child obj = new Child();
            System.out.println(obj.getX());
        }
    }