* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.
* 답안을 바탕으로 변형된 문제도 수록되어 있습니다.
* 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; |
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
'정보처리기사 > 정보처리기사 실기 문제 복원' 카테고리의 다른 글
정보처리기사 실기) 2022년 1회 정보처리기사 실기 문제 복원 (8) | 2022.06.10 |
---|---|
정보처리기사 실기) 2021년 2회 정보처리기사 실기 문제 복원 (10) | 2021.07.27 |
정보처리기사 실기) 2021년 1회 정보처리기사 실기 문제 복원 (5) | 2021.07.27 |
정보처리기사 실기) 2020년 4, 5회 정보처리기사 실기 문제 복원 (4) | 2021.07.27 |
정보처리기사 실기) 2020년 3회 정보처리기사 실기 문제 복원 (10) | 2021.07.27 |
댓글