IT자격증

2023-1 정처기 실기 newbt 기출문제

JDonly 2024. 10. 17. 23:51

 

https://newbt.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2023%EB%85%84%201%ED%9A%8C/%EC%98%A4%EC%86%8C%ED%94%84%ED%8A%B80506

 

뉴비티 기출문제 문제은행 - 완전 새로운 CBT, iBT 문제풀이 시스템

기사, 공무원, 공인중개사 등 로그인 필요 없는 수백가지 시험 기출문제 문제은행 시험 자격증 족보 2024년 최신

newbt.kr

 

* 개념 참고

 2024.10.12 - [IT자격증] - 2024 정보처리기사 실기 요약

 

 

[ 정보처리기사 실기 2023년 1회 ]

* Q.1 ) JAVA 문제

class Static{
    public int a = 20;
    static int b = 0;   
}
 
public class Test{
    public static void main(String[] args) {
        int  a = 10;
        Static.b = a;
        Static st = new Static();

        System.out.println(Static.b++);
        System.out.println(st.b);
        System.out.println(a);
        System.out.print(st.a);
    }
}

* Answer :

 

10
11
10
20

 

 

* Q2. C언어 문제

#include 
 
int main(){

    char a[] = "Art";
    char* p = NULL;
    p = a;
 
    printf("%s\n", a);
    printf("%c\n", *p);
    printf("%c\n", *a);
    printf("%s\n", p);
 
    for(int i = 0; a[i] != '\0'; i++)
    printf("%c", a[i]);
 
}

* Answer :

Art
A
A
Art
Art

 

char a[] = “Art”;   ← a[] : {‘A’, ‘r’, ‘t’, ‘\0’}

%s : 해당 포인터부터 문자열 출력. char * 형

%c : 해당 포인터의 문자 하나 출력. char 형

 

 

* Q4. AJAX

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

(   )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 
보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.

(   )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.

- XML과 JAVA 는 AJAX

- XML과 언어는 WSDL

- XML과 프로토콜은 SOAP

 

 

* Q5. 가상회선, 데이터그램

 

* TCP/IP : 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜 

- TCP : OSI 7계층의 전송 계층에 해당 / 가상 회선 방식을 기반으로 하는 연결형 서비스를 제공

- IP : OSI 7계층의 네트워크 계층에 해당 / 데이터그램 방식을 기반으로 하는 비연결형 서비스를 제공

 

* 데이터 교환 방식

  • 회선 교환(Circuit Switching) (ex. 전화)
  • 패킷 교환(Packet Switching)
    • 가상회선 패킷 교환 : 연결 지향형 (ex. TCP) / 다량 데이터
    • 데이터그램 패킷 교환 : 비연결 지향형 (ex. UDP) / 짧은 패킷

 

* Q.7) SSH 

○ 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 이를 이용한 응용 프로그램이다.

○ 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신할 수 있다.

○ 키(Key)를 통한 인증 방법으로 사용하려면 사전에  클라이언트의 공개키를 서버에 등록해야 한다.

○기본적으로는 22번 포트를 사용한다.

* SSH : 22, 암호화하여
* telnet : 23, 평문으로

 

 

* Q.8) 웜, 트로이목마, 바이러스

- 스스로 복제, 독자적으로 실행 : 웜

- 정상적인 프로그램으로 위장 : 트로이 목마

- 대상(정상파일)을 감염 : 바이러스

 

 

* Q.9) 이진수를 십진수로 변환하는 코드 작성 

#include 
 
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
또는
(a) & , (b) 1

 

 

* Q.10) ICMP (Internet Control Message Protocol) : 인터넷 제어 메시지 프로토콜

(    )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.

(    ) 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.

(    ) 을/를 이용한 공격에는 (    ) Flooding가 있는데 ping 명령어를 통한 (     ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.

+ 오류 메시지를 전송함.

 

 

* Q. 11 ) 디자인패턴 - PROXY (대리자)

(   )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체을 조합하는 패턴에 속하며,
대리라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고,
외부에서는 객체의 세부인 내용을 숨기는 역할을 한다.

 

* 생성패턴

- 추상팩토리 : 구체적인 클래스에 의존하지 않음.

- 빌더 : 작게 분리된 인스턴스를 건축하듯이 조합

- 팩토리 메소드 : 객체생성을 서브클래스에서 처리하도록 분리하여 캡슐화. 상위클래스에서 인터페이스만 정의하고 실제 생성은 서브클래스가 담당

- 프로토타입 : 원본객체를 복제하는 방법으로 객체를 생성

- 싱글톤 : 하나의 객체를 생성하면 생성객체를 어디서든 참조할 수 있지만, 동시 참조 불가. 클래스내에서 인스턴스가 하나

 

* 구조패턴 : 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴

- 어댑터 : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴

- 브리지 : 구현부에서 추상층을 분리. 기능과 구현을 두개의 별도 클래스로 구현

- 프록시 : = 대리자 / 내부에서는 객체 간 복잡한 관계를 단순하게 정리하고, 외부에서는 객체의 세부적 내용을 숨김

 

* 행위패턴 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임분배방법을 정의하는 패턴

- 커맨드 : 요청을 캡슐화하여 필요정보를 저장하거나 로그 남김. 명령어들을 추상클래스와 구체클래스로 분리하여 단순화

- 중재자 : 수많은 객체들 간 복잡한 상호작용을 캡슐화하여 객체로 정의

- 옵저버 : 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달 / 일대다 의존성 정의 / 분산된 시스템 간 이벤트 생성 발행하고 이를 수신할 때 이용

- 상태 : 객체의 상태에 따라 동일 동작을 다르게 처리해야 할 때

- 전략 : 동일 계열 알고리즘들을 개별적으로 캡슐화하여 상호교환할 수 있게 정의

- 템플릿 메소드 : 상위클래스에서 골격 정의, 하위클래스에서 세부처리 구체화

- 방문자 : 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴 / 분리된 처리 기능은 각 클래스를 방문하여 수행

 

 

* Q.12 ) 릴레이션 용어

 

- 1: 튜플

- 2: 릴레이션 인스턴스

- 3: 카디널리티

  • 릴레이션 : 테이블, 컬렉션(NoSQL)
  • 튜플 : 레코드, 행 (개수 : Cardinality; 기수)
  • 속성 : 필드, 열 (개수 : Degree; 차수)  /   db구성하는 가장 작은 논리적 단위 
  • 도메인 : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

 

* Q.14 ) 

#include 
void swap(int *a, int idx1, int idx2) {
 int t= a[idx1];
 a[idx1] = a[idx2];
 a[(    ①    )] = t;
}

void  Usort(int *a, int len) {
  for(int i = 0; i < len - 1; i++) 
     for(int j = 0; j < len - 1 - i; j++)
        if(a[j] > a[j+1])
            swap(a,j,j+1);
}

void main(){
 int a[] = {85, 75, 50, 100, 95};
 int nx = 5;
 Usort(a, (    ②    ));
}

(1) idx2
(2) nx

 

 

Q.15 ) Python 문제

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

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

 

 

Q.16 ) SQL

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

 

 

Q.17 ) JAVA 문제

abstact 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());
    }
}

Vehicle name: Spark

 

 

Q.18) 스키마 - 외부/개념/내부 스키마

- 여러 개의 외부 스키마 => 외부 스키마

- 하나만 존재 => 내부 스키마

- 물리적인 저장장치 => 내부 스키마

 

 

* Q.19 ) 분기 커버리지 테스팅 순서

1234561, 124567
또는
1234567, 124561

 

분기 커버리지 : 결정(decision) 커버리지라고도 불림. 분기점(branch, 두개로 나뉘는 부분, 마름모) 위주로 테스트

분기 커버리지를 만족하기 위한 테스팅이므로, 모든 분기점을 최소 한번씩은 실행하는 테스팅 알고리즘을 서술한다.

 

 

* Q.20) 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 = 4000;
    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());
    }
}

500