* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.
* 답안을 바탕으로 변형된 문제도 수록되어 있습니다.
* 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 점선 화살표
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회차 기출
답안
- 가용성은 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성이다.
- 가용성은 인가받은 사용자는 언제라도 사용 가능한 것을 의미한다.
'정보처리기사 > 정보처리기사 실기 문제 복원' 카테고리의 다른 글
정보처리기사 실기) 2021년 2회 정보처리기사 실기 문제 복원 (10) | 2021.07.27 |
---|---|
정보처리기사 실기) 2021년 1회 정보처리기사 실기 문제 복원 (5) | 2021.07.27 |
정보처리기사 실기) 2020년 3회 정보처리기사 실기 문제 복원 (10) | 2021.07.27 |
정보처리기사 실기) 2020년 2회 정보처리기사 실기 문제 복원 (0) | 2021.07.27 |
정보처리기사 실기) 2020년 1회 정보처리기사 실기 문제 복원 (8) | 2021.07.27 |
댓글