정보처리기사 실기) 2020년 4, 5회 정보처리기사 실기 문제 복원
본문 바로가기
정보처리기사/정보처리기사 실기 문제 복원

정보처리기사 실기) 2020년 4, 5회 정보처리기사 실기 문제 복원

by 코딩하는 핑가 2021. 7. 27.
반응형

* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.

* 답안을 바탕으로 변형된 문제도 수록되어 있습니다.

https://cafe.naver.com/soojebi와, http://www.gisafirst.com/을 참고로 작성되었습니다.

 

1. IPv4의 확장형, 대안으로 나온 것으로 128비트 16비트씩 :으로 구분

더보기

문제 유형 : 단답형

답안 : IPv6

참고

- IPv4의 주소 체계 : Unicast, Multicast, Broadcast- IPv6의 주소 체계 : Unicast, Anycast, Multicast

 

2. 디자인 패턴에는 생성, 구조, 이것이 있다.

더보기

문제 유형 : 단답형

답안 : 행위 또는 Behavioral

해설 

* MVC 패턴 : Model, View, Controller로 이루어진 패턴

생성 패턴
(Creational Pattern)
구조 패턴
(Structural Pattern)
행위 패턴
(Behavioral Pattern)
객체의 생성과 관련된 패턴 클래스나 객체들을 조합하여
더 큰 구조로 만들 수 있게 해주는 패턴
클래스나 객체들이 서로 상호작용하는
방법이나 책임 분배 방법을 정의하는 패턴
- 추상 팩토리(Abstract Factory)
- 빌더(Builder)
- 팩토리 메소드(Factory Method)
- 프로토타입(Prototype)
- 싱글톤(Singleton)
- 어댑터(Adapter)
- 브리지(Bridege)
- 컴포지트(Composite)
- 데코레이터(Decorator)
- 퍼싸드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리터(Interpreter)
- 반복자(Iterator)
- 중재자(Mediator)
- 메멘토(Memento)
- 옵서버(Observer)
- 상태(State)
- 전략(Strategy)
- 템플릿 메소드(Template Method)
- 방문자(Visitor)
* 디자인 패턴 종류 설명

< 생성 패턴 >

* 추상 팩토리

동일한 주제의 다른 팩토리를 묶어줌

- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

 

* 빌더

- 생성과 표기를 분리해 복잡한 객체를 생성

 

* 팩토리 메소드

- 생성할 객체의 클래스를 국한하지 않고 객체를 생성

- 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

 

* 프로토타입

- 기존 객체를 복제함으로써 객체를 생성

 

* 싱글톤

- 한 클래스에 한 객체만 존재하도록 제한

- 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

 

< 구조 패턴 >

* 어댑터

- 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움

 

* 브리지

- 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음

 

* 컴포지트

- 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음

- 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴

 

* 데코레이터

- 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음

 

* 퍼싸드

- 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공

 

* 플라이웨이트

- 다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음

 

* 프록시

- 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함

 

< 행위 패턴 >

* 커맨드

- 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것

- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

 

* Observer 패턴(2020 실기 1회 기출문제)

- 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것

- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴

 

* 템플릿 메소드

- 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴

- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

* 디자인 패턴 종류 설명

< 생성 패턴 >

* 추상 팩토리

동일한 주제의 다른 팩토리를 묶어줌

- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

 

* 빌더

- 생성과 표기를 분리해 복잡한 객체를 생성

 

* 팩토리 메소드

- 생성할 객체의 클래스를 국한하지 않고 객체를 생성

- 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

 

* 프로토타입

- 기존 객체를 복제함으로써 객체를 생성

 

* 싱글톤

- 한 클래스에 한 객체만 존재하도록 제한

- 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

 

< 구조 패턴 >

* 어댑터

- 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움

 

* 브리지

- 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음

 

* 컴포지트

- 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음

- 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴

 

* 데코레이터

- 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음

 

* 퍼싸드

- 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공

 

* 플라이웨이트

- 다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음

 

* 프록시

- 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함

 

< 행위 패턴 >

* 커맨드

- 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것

- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

 

* Observer 패턴(2020 실기 1회 기출문제)

- 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것

- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴

 

* 템플릿 메소드

- 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴

- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

 

3. 패키지 내부의 사각형이 다른 패키지 내부의 사각형을 import하는 구조(그림) / UML 다이어그램에서 <<import>> order 점선 화살표

더보기

문제 유형 : 단답형

답안 : 패키지 다이어그램 or Package diagram

참고 : myeonguni.tistory.com/752

 

4. 데이터베이스 회복(Recovery) 기법 중 rollback 시 redo, undo가 모두 실행되는 트랜잭션 처리법으로 트랜잭션 수행 중에 갱신 결과를DB에 즉시 반영한다. 데이터를 변경하면 로그 파일로 저장되며 모든 내용 수정 시 즉시 데이터베이스에 반영된다.

더보기

문제 유형 : 단답형

답안 : 즉시 갱신 기법

 

5. 다음 빈 칸에 알맞은 답을 쓰시오. ( 10을 2진수로 변환 )

public class Test { 
   public static void main(String[] args) {   
      int a[] = new int[8];
      int i = 0, n = 10;
      while ( ① ) {  
         a[i++] = ②; 
         n /= 2; 
      } 
      for (i=7; i>=0; i--)
         System.out.printf("%d", a[i]);
      }
}
더보기

문제 유형 : 프로그래밍 ( JAVA )

답안 : ① n > 0 ② n % 2

답안 외의 실행 결과가 동일하면 대부분 정답으로 인정

 

6. 3행 5열 배열 출력 시 배열 크기 지정하는 문제 (int [][])

public class Test { 
   public static void main(String[] args) {   

     int[][] array = new int[①][②];

    int n = 1;

    for(int i = 0; i < 3; i++) {

      for(int j = 0; j < 5; j++) {

        array[i][j] = j*3 + (i+1);

        System.out.print(array[i][j] + "");

      }

      System.out.println();

    }

  }

}
더보기

문제유형 : 프로그래밍(JAVA) / 2018년 2회차 기출

답안 : ① 3 ② 5

 

7. 스니핑에 대해서 약술하시오.

더보기

문제 유형 : 약술형 / 2018년 1회차 기출

답안

- 스니핑은 공격대상에게 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법이다.

- 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당한다.

 

8. 컴퓨터 네트워킹에서 쓰이는 용어로, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술로 네트워크 주소 변환이라고 한다.

더보기

문제 유형 : 단답형

답안 : NAT

 

9. 다음의 출력 결과를 쓰시오.

lol = [[1,2,3], [4,5], [6,7,8,9]]

print(lol[0])

print(lol[2][1])

for sub in lol;

for item in sub;

print(item, end="")

print()
더보기

문제 유형 : 프로그래밍 ( 파이썬 )

답안

[1,2,3]

7

1 2 3

4 5

6 7 8 9

 

10. 온라인 금융 거래 정보를 블록으로 연결하여 피투피(P2P) 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자(피어, peer)들의 개인 디지털 장비에 분산 저장시켜 공동으로 관리하는 방식은 무엇인가?

더보기

문제 유형 : 단답형 / 2017년 3회차 기출

답안 : 블록체인

 

11. 분산 환경에서 빅 데이터를 저장하고, 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크로, 더그 커팅과 마이크 캐퍼렐라가 개발했으며 구글 맵 리듀스를 대체한다.

더보기

문제 유형 : 단답형 / 2016년 3회차 기출

답안 : 하둡

 

12. 데이터베이스 이상 현상 종류 3가지를 쓰시오.

더보기

문제 유형 : 단답형

답안 : 삽입(이상), 갱신(이상), 삭제(이상)

 

13. 프로세스 상태를 쓰시오. ( 프로세스 상태 전이도 )

생성 - ( ① ) --------- Dispatch ----------> ( ② ) --- 종료
                  <--------- Timeout ---------
            ↑                                                    │
        wake up                                           I/O
          └──────( ③ ) ──────┘

더보기

문제 유형 : 단답형

답안 : ①준비, ②실행, ③대기

 

14. 특정 몇 몇 입력 값들에 대해서만 원하는 결과를 제공해주는 오라클로 전 범위 테스트가 불가한 경우 사용한다. 경계값, 구반 별 예상 값 결과 작성 때 사용한다.

더보기

문제 유형 : 단답형

답안 : 샘플링 오라클

 

15. ~60 구간, 60~70 구간, 70~80 구간, 80~90 구간, 90~100 구간 표에서 각 구간마다 하나씩 테이스 데이터가 주어짐 (테스트 데이터: 55점 65점 78점 85점 95점...)

더보기

문제 유형 : 단답형

답안 :  동치 분할 테스트 ( 동등 분할 테스트 )

 

16. SQL: where 쓰지말 것, group by 쓸 것, 집계함수 사용할 것, AS(alias)사용할 것, 세미콜론(;) 생략 가능, 인용 필요시 ' 사용

- 결과 테이블:
학과 학과별튜플수
전기      1
컴퓨터   2
전자     2

더보기

문제 유형 : 프로그래밍 ( SQL )

답안

SELECT 학과, COUNT(학과) AS '학과별튜플수' FROM 학생 GROUP BY 학과

또는

- SELECT 학과, COUNT(*) AS '학과별튜플수' FROM 학생 GROUP BY 학과;

 

17. 1960년대 말에 미국 AT&T 벨(Bell) 연구소에서 개발한 운영체제로 거의 C언어로 구현한다. 구조적 파일 시스템, 시스템의 파일이 하나의 트리 구조를 가짐

더보기

문제 유형 : 단답형

답안 : 유닉스

 

18. 실행결과를 쓰시오.

char *p = ""KOREA"";
printf(""%s\n"", p);
printf(""%s\n"", p+3);
printf(""%c\n"", *p);
printf(""%c\n"", *(p+3));
printf(""%c\n"", *p+2);"
더보기

문제 유형 : 프로그래밍 ( C언어 )

KOREA

EA

K

E

M

 

19. 실행 결과를 쓰시오.

class Parent{
 int compute(int num) {
  if( num <= 1) return num;
  return compute(num-1) + compute(num-2);
 }
}

class Child extends Parent {
 int compute(int num) {
  if( num <= 1) return num;
  return compute(num-1) + compute(num-3);
 }
}

Class Test{
 public static void main (String[] args){
  Parent obj = new Child();
  System.out.print(obj.compute(4));
 }
}"
더보기

문제 유형 : 프로그래밍 언어 ( JAVA )

답안 : 1

 

20. 보안 요소 중 가용성에 대해서 약술하시오.

더보기

문제 유형 : 약술형 / 2017년 2회차 기출

답안

- 가용성은 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성이다.

- 가용성은 인가받은 사용자는 언제라도 사용 가능한 것을 의미한다.

 

반응형

댓글