본문 바로가기
Study 비전공

[비전공자] 정보처리기사 실기 기출 풀이 4 (2023년 1회차)

by anthia 2025. 4. 15.
반응형

 

 

2022 너무 어렵다..

2023 맛보기 고

 

 


 

2023년 1회 차 기출

 

 

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

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);
    }
}
더보기

틀림)
10

11

10

20

풀이)
후치 연산자 잊지말자.
Static.b++은 b를 print 하고 그 후에 b에 ++

 

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

#include 
 
int main(){

    char a[] = "Art";
    char* p = NULL;
    p = a;
 
    printf("%sn", a);
    printf("%cn", *p);
    printf("%cn", *a);
    printf("%sn", p);
 
    for(int i = 0; a[i] != ''; i++)
    printf("%c", a[i]);
 
}
더보기
틀림)
Art
A
A
Art
Art

풀이)
%s str 출력
%c char 출력

%sn, a = str, a[] = Art
%cn, *p = char, p[0] = char a[0] = A
%cn, *a = char, a[0] = A
%sn, p = str, a[] = Art
%c, a[i] = char, i가 null 일 때까지 출력 = Art

 

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

#include 
 
int main(){
 
    char* a = "qwer";
    char* b = "qwetety";
 
    for(int i = 0; a[i] != '' ; i++){
        for(int j = 0; b[j] != ''; j++){
            if(a[i] == b[j]) printf("%c", a[i]);
        }
    }
 
}
더보기
맞음) qwe
풀이) a[i]와 b[j] 의 값이 같은 값(char)만 출력

 

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

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

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

(   )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.
더보기
틀림) AJAX
풀이)
XML 과 JAVA는 AJAX
XML 과 언어는 WSDL
XML과 프로토콜은 SOAP

 

5. 아래 내용을 확인하여 괄호 안에 용어를 표 안에 알맞은 값을 고르시오.

구분 내용
(        1       ) - 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다.

- 처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.

- 통신기술에는 ATM이 있으며, 정해진 시간 안이나 다량의데이터를 연속으로 보낼 때 적합하다.
(        2       ) - 패킷교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.

- 각 전송패킷을 미리 정해진 경로없이 독립적으로 처리하여 교환하는 방식이다.

- 특정 교환기의 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식이다.

- 짧은 메시지의 패킷들을 전송할 때 효과적이고 재정렬 기능이 필요하다.

(원래는 보기가 있는 문제)

더보기

틀림) (1) 가상회선 (2) 데이터 그램
풀이)
가상 회선: 다량 데이터

데이터그램: 짧은 패킷

 

6. 아래 내용을 확인하여 알맞는 답을 작성하시오.

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

틀림) L2TP

풀이) L2(F) + (PP) TP

 

7. 다음 설명에 해당하는 알맞은 용어를 영문 3글자로 쓰시오.

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

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

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

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

맞음) SSH

풀이)
22번 포트 SS로 암기

 

8. 내용을 참고하여 아래 설명에 대한 (1) ~ (3)의 알맞은 답을 작성하시오.

구분 내용
(        1       ) - 감염된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사본을 확산시킬 수 있는 악성 프로그램이다.

- 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않으며, 파일 전송 기능을 착취하도록 설계된다.

- 자가 복제 및 네트워크를 통한 전파도 가능하다.
(        2       ) - 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 위장하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다.

- 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다.

- 좀비 PC처럼 내부정보 유출뿐만 아니라 컨트롤까지 가능한 종류가 있고, 단순히 내부 데이터만 유출할 수 있는 타입의 트로이 목마가 있다.

- 감염된 후에 스스로를 복제하는 능력은 없다.
(        3       ) - 대상(정상파일)을 감염시키는 형태로 실행되며, 감염시킬 대상이 존재하지 않을 때에는 실행되지 않으며 다른 정상파일로의 자기 복제 기능이 있다.

- 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드이다.

- 네트워크를 통해 전파되지 않으며 방식 및 위치에 따라 여러 형태로 나뉜다.

- 트로이 목마

- 웜

- 바이러스

더보기

맞음) (1) 웜 (2) 트로이 목마 (3) 바이러스
풀이)
스스로 복제, 독자적 실행 : 웜
대상(정상파일) 감염 : 바이러스

 

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

#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

 

풀이)
sum = sum + (input % 10) * di // 가장 오른쪽 자릿수를 십진수로 변환하여 누적

input = input/10; // 다음 자릿수로 이동

 

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

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

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

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

틀림) ICMP

풀이) Internet Control Message Protocol 인터넷 제어 메시지 프로토콜

 

 

 

 

 

 

 

 

 

 

 

11. 다음은 디자인 패턴에 관한 설명이다. 설명에 내용에 알맞은 답을 고르시오.

생성 패턴 구조 패턴 행위 패턴
Abstract Factory
Builder
Factory Method
Prototype
Singleton

Adapter
Bridge
Composite
Decorator
Facade
Proxy
Chain of Resposibility
Command
Interpreter
Iterator
Mediator
Memento
Obsever
Strategy
Template Method
(   )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체을 조합하는 패턴에 속하며, 대리라는 이름으로도 불린다. 
내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고, 외부에서는 객체의 세부인 내용을 숨기는 역할을 한다.
더보기

틀림) Proxy
풀이)

프록시 패턴: 직접 참조하지 않고 중간에 '대리인'을 거친다.

 

객체를 생성 >> 생성 패턴

객체와 클래스를 조합 >> 구조 패턴

객체와 클래스의 상호작용 >> 행위 패턴

 

12. 릴레이션의 구성하는 용어들에 대한 다음 설명에서 괄호(① ~ ③)에 들어갈 알맞은 답을 에서 찾아 쓰시오.

(   ①   ) : 릴레이션을 구성하는 각각의 행을 의미하며, 파일구조는 레코드에 해당함.
(   ②   ) : 데이터 개체를 구성하고 있는 속성들의 데이터 타입이 정의되어 구체적인 값을 가진 것으로,
            실제 값을 가진 튜플을 의미함.
(   ③   ) : 튜플의 개수를 의미함.
- 도메인  - 차수  - 속성  - 튜플
- 디그리  - 카디널리티  - 릴레이션 스키마  - 릴레이션 인스턴스
더보기

틀림) (1) 튜플 (2) 릴레이션 인스턴스 (3) 카디널리티
풀이)
열 = 세로 = 차수 = 속성 = 애트리뷰트
행 = 가로 = 기수 = 튜플 = 카디널리티

열차속애(서) 튜카(축하)기대행


릴레이션 스키마(컬럼)
릴레이션 인스턴스(내용)

 

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

 

[학생]

순번 학년 이름
1 1 종현
2 2 민수
3 2 수연
4 3 수지
조건
- 컬럼의 값이 문자열일 경우 작은 따옴표 ('  ')를 표시하시오.
- SQL 마지막에 세미콜론(;)은 표기하지 않아도 관계 없습니다.
더보기

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

풀이) DELETE는 전체 행을 삭제, 속성명 사용하지 않음.

 

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

 

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

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

 

더보기

틀림) {'한국', '중국', '베트남', '홍콩', '태국'}
풀이) 파이썬 출력 기호 잊지 말자.. 중괄호, '' 생략하면 오답.

 

 

16. 다음 성적 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수'를 검색하고자 한다. [조건]을 참고하여 적합한 SQL문을 작성하시오.

 

[성적테이블]

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

 

결과

과목이름 최소점수 최대점수
데이터베이스 89 92
[조건] 
- WHERE사용하지 말아야 한다.
- SELECT절에 별칭을 사용하여 작성해야 한다.
- SQL 구문 마지막에 세미콜론(;)은 생락 가능하다.
- 반드시 GROUP BY와 HAVING 을 사용해야 한다.
- 집계 함수를 사용해야 한다.
더보기

틀림)

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대 점수 FROM 성적

GROUP BY 과목이름 HAVING AVG(점수) >=90;

 

풀이)
as 사용해서 별칭 사용. 출력 결과에 별칭으로 출력

group by, having으로 출력 조건 추가. 과목별 평균 점수 90점 이상

 

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
풀이)
obj.getName(); >> 자식클래스에는 변수 타입이 지정되어 있는 것 밖에 없음.

따라서, 부모 클래스의 getName()을 호출.

 

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

구분 내용
(        1       ) 스키마 - 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다.

- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브 스키마라고도 한다.

- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있다.

- 하나의 외부 스키마를 여러 개의 응용 프로그램 혹은 사용자가 공유할 수 있다.
(        2       ) 스키마 - 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로하는데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.

- 개체 간의 관계(Relationship)와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명제를 정의한다.

- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것이다.

- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
(        3       ) 스키마 - 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한 것이다.

- 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의한다.

- 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서, 인덱스 유/무 등을 나타낸다.

- 시스템 프로그래머나 시스템 설계자가 관리한다.
더보기

틀림) (1) 외부 (2) 개념 (3) 내부

풀이)

1) 외부 스키마

사용자, 응용프로그램 관점/ 각 개인의 입장에서 필요로 하는, DB의 일부분의 논리적인 구조를 정의/ 서브스키마 또는 사용자 뷰라고도 불림/ 여러 개가 존재할 수 있음

2) 개념 스키마

기관, 조직체 관점/ 모든 응용시스템과 사용자들이 필요로 하는 DB의 구조를 정의/ 사람이 이해하는 논리 구조/ 단 하나만 존재

3) 내부 스키마

컴퓨터(DB), 물리적 저장장치 관점/ 실제 DB에 저장될 레코드의 물리적인 구조를 정의/ 컴퓨터가 이해하는 물리구조

 

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

더보기

틀림) 1234561, 124567 or 1234567, 124561
풀이)
분기 커버리지:  조건문(if, switch 등)의 각 분기가 실행되었는지를 확인하는 테스트 커버리지

>> 모든 분기점을 최소 한 번씩은 실행하는 테스팅 알고리즘 서술.

조건 커버리지: if의 조건식 안의 각각의 조건이 true/false가 되었는지 측정

 

1234561 T T

124567 F F

---

1234567 T F

124561 F T

 

 

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

풀이) 
Parent(){

this(500);

}

>> Parent x = 500

Child(){

this(5000);

}

>> Child x = 5000;

 

getX() Method는 Parent에만 존재, return x = 500(Parent x)

 

 


 

결과

 

맞음: 3

틀림: 17

 

이번 시험은

포기하는 게 맞는 거 아닐까.

반응형