정보처리기사 실기) 2021년 3회 정보처리기사 실기 문제 복원
본문 바로가기
정보처리기사/정보처리기사 실기 문제 복원

정보처리기사 실기) 2021년 3회 정보처리기사 실기 문제 복원

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

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

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

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

* 본 포스팅을 무단 복제하거나 배포하지 마시기 바랍니다. ( 게시글 최상단에 본 블로그 출처 밝히시면 포스팅 가능합니다. )

 

-- 해설은 추후 작성하도록 하겠습니다.

 

1. JAVA 싱글톤 문제 ( 부분점수 없음 )

class Singleton {

	private static Singleton instance = null;

	private int count = 0;


	static public Singleton getInstance() {

		if(instance == null) {

			instance = new Singleton();

			return instance;

		}

		return instance;

	}

 

	public void count() {

		count++;

	}

 

	public int getCount() {

		return count;

	}

}

 
public class SSO {

    public static void main(String[] args) {

    	Singleton sg1 = Singleton.getInstance();

    	sg1.count();

    	

    	Singleton sg2 = Singleton.getInstance();

    	sg2.count();

    	

    	Singleton sg3 = Singleton.getInstance();

    	sg3.count();

    	

    	System.out.print(sg1.getCount());

    }

}
더보기

문제 유형 : 프로그래밍

답안 : 3

 

2. MAC 주소를 가로채는 공격 (    ) Spoofing

더보기

문제 유형 : 단답형 ( 2021년 1회 RARP 출제됨 )

답안 : ARP

해설

- 추후 작성

 

3. 데이터 제어어(DCL) 중 GRANT 에 대하여 설명하시오.

 

더보기

문제 유형 : 약술형 ( 2018년 2회, 2019년 1회 괄호 채우기 문제 )

답안 : 데이터베이스 사용자에게 사용 권한을 부여하는데 사용하는 명령어이다.

 

해설

* DCL(Data Control Language)

- 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어

- 데이터베이스관리자(DBA)가 데이터 관리를 목적으로 사용

 

* DCL의 유형

1. commit : 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어

- 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency) 상태를 가지기 위해 수행된 모든 변경을 데이터베이스에 반영하여 commit 하여야 함

 

2. rollback : 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어

- 트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에(즉 트랜잭션이 수행한 일부 변경이 데이터베이스에 반영될 가능성이 있기 때문에) 일부분만 commit된 트랜잭션은 rollback 되어야 한다.

 

3. grant : 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하는 명령어

- 부여할 수 있는 권한의 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 

- WITH GRANT OPTION  : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여

 

예) GILDONG에게 STUDENT 테이블에 대한 모든 권한과 다른 사람에게도 권한을 부여할 수 있는 권한까지 부여

GRANT ALL ON STUDENT TO GILDONG WITH GRANT OPTION;

4. revoke : 권한을 취소하기 위한 명령어

예) GILDONG에게 부여된 STUDENT 테이블에 대한 권한은 유지하고, 다른 사용자에게 권한을 부여할 수 있는 권한만 취소

( ② ) GRANT OPTION FOR ALL ON STUDENT FROM GILDONG;
5. cascade : grant와 revoke의 추가적인 옵션 중 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소하는 옵션

 

4. AAA 서버의 각 A에 해당 되는 개념을 풀어써주고 맞는 용어를 매핑 시키는 문제 ( 보기가 제공됨 )

1. 신분을 확인하는 인증, 접근 시도하는 가입자 또는 단말 식별

2. 접근·허가를 결정하는 인가, 가입자나 단말에 권한 부여

3. 리소스 사용 정보를 수집·관리하는 계정, 사용시간, 정보, 위치 등 정보 수집

더보기

문제 유형 : 단답형

답안 : 

1. Authentication

2. Authorization

3. Accounting

 

5. 이것은 디자인 패턴 종류 중 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당하는 패턴이다. [보기]에서 알맞은 답안을 찾아 쓰시오. 

[보기]

ㄱ. Factory Method | ㄴ. Observer | ㄷ. Template Method

ㄹ. Abstract Factory | ㅁ. Command | ㅂ. Facade
더보기

문제 유형 : 단답형 ( 디자인 패턴 문제 다수 출제됨 )

답안 : ㄱ. Factory Method 

 

해설

* 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회 기출문제)

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

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

 

* 템플릿 메소드

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

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

 

6. 이것은 결합도(coupling) 종류 중 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우이다. 영문으로 답안을 작성하시오.

더보기

문제 유형 : 단답형 ( 결합도 문제 다수 출제됨 )

답안 : control

 

해설

- 결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승

[ 결합도가 약한 순서 -> 강한 순서 ]

data – stamp – control – external – common - content

자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용

- data : 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식

- stamp : 두 모듈이 동일한 자료 구조를 조회하는 경우

- control : 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어

- external : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때

- common : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때

- content : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때

( 다른 모듈에서 사용하는 경우 )

 

7. C언어 구조체 문제

#include

struct src {

    char name[12];
    int os, db, hab, hhab;

};

 

int main()

{

    struct src st[3] = {{"가", 95, 88}, {"나", 84, 91}, {"다", 86, 75}};
    struct src* p;

    p = &st[0];

    (p+1)->hab = (p+1)->os + (p+2)->db;

    (p+1)->hhab = (p+1)->hab + p->os + p->db;

	
    printf("%d", (p+1)->hab + (p+1)->hhab);

}
더보기

문제 유형 : 프로그래밍 (C언어) ( 2021년 1회 유사 문제 출제됨 )

답안 : 501

 

8. 다음 괄호에 알맞은 말을 작성하시오.

(1) 최하위 모듈에서 위로 시작한다는 ( ) 테스트

(2) 하위 모듈들을 포괄하는 ( )이 있어야 한다.

더보기

문제 유형 : 단답형

답안

(1) 상향식 통합

(2) 드라이버 또는 테스트 드라이버

 

해설

* 통합 테스트

- 시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠

- 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트

-- 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움

-- 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요

-- 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요

-- 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용

 

* 테스트 드라이버

- 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈

 

9. 파이썬 연산자 문제

x, y = 100, 200

print(x==y)
더보기

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

답안 : False

 

10. SQL 문제

- Cross Join

[A]

NAME
SMITH
ALLEN
SCOTT

[B]

RULE
S%
%T%

SELECT COUNT(*) CNT

FROM A CROSS JOIN B

WHERE A.NAME LIKE B.RULE;

더보기

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

답안 : 4

 

11. 이것은 데이터 접근 방식 중 하나로 <값, 주소>자료구조, 파일 구조에는 순차, (    ), 해싱이 있다. 괄호에 들어갈 알맞은 말을 작성하시오.

더보기

문제 유형 : 단답형 

답안 : 인덱스

 

* 해설

- 인덱스 : 검색 연산의 최적화를 위해 키값과 포인터의 쌍으로 구성되는 데이터 구조

- 적용기준 : 분포도가 10~15%이내

- 특징

분포도가 좋은 칼럼은 단독으로 생성

자주 조합되어 사용되는 칼럼은 결합 인덱스로 생성

지나치게 많은 인덱스는 오버헤드 발생 가능

 

12. 테스트 케이스 관련 표를 보여주고 컬럼 제목란에 해당 되는 내용 매핑하기

-- 작성중

더보기

문제 유형 : 단답형 

답안 : 테스트 조건, 테스트 데이터, 예상 결과

 

13. 다음 괄호에 알맞은 말을 작성하시오.

- ( ) 다이어그램은 UML 다이어그램 종류 중 하나로 속성, 메소드를 포함한다.

더보기

문제 유형 : 단답형 

답안 : 클래스

 

14. OSI 7 Layer 중 3개 계층 설명 후 해당하는 계층

(1) 물리적으로 연결된 두 개의 노드 사이의 데이터 전송, 오류 제어

(2) 경로 제어, 패킷 전달

(3) 압축

더보기

문제 유형 : 단답형 

답안

(1) 데이터링크

(2) 네트워크

(3) 표현

 

15. IBM, 암호화 기법, 블록 64비트, 키 56비트, 16라운드

더보기

문제 유형 : 단답형 

답안 : DES

 

16. C언어 이중 포인터 문제

#include

int main()

{

    int *array[3];
    int a = 12, b = 24, c = 36;
    array[0] = &a;
    array[1] = &b;
    array[2] = &c;

    printf("%d", *array[1] + **array + 1);

}
더보기

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

답안 : 37

 

17. 자바 연산자, 우선순위문제

public class SSO{

    public static void main(String[] args) {

     int w = 3, x = 4, y = 3, z = 5;
    

     if((w == 2 | w == y) & !(y > z) & (1 == x ^ y != z)) {

     w = x + y;
     

     if(7 == x ^ y != w) {

     System.out.println(w);

     } else {

     System.out.println(x);

     }

     } else {

     w = y + z;

   

     if(7 == y ^ z != w) {

     System.out.println(w);

     } else {

     System.out.println(z);

     }

     }

    }

}
더보기

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

답안 : 7

 

18. 이것은 입력 자료 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 테스트 케이스를 선정해서 테스트하는 기법이다. 알맞은 말을 작성하시오.

더보기

문제 유형 : 단답형 

답안 : Cause Effect Graph

 

19. 이것은 사용자가 키보드, 마우스 등을 이용하는 것으로 이것의 종류로는 인터페이스, 사용자 인터페이스로 윈도우, 맥킨토시 등이 있다. 이것에 알맞은 말을 작성하시오.

더보기

문제 유형 : 단답형 

답안 : GUI

 

20. 관계 - 집합, 상속(일반화)

(1) 추상화

(2) 개념화

더보기

문제 유형 : 단답형 

답안

(1) Aggregation

(2) Generalization

 

반응형

댓글