https://chobopark.tistory.com/192
1. 다음 설명에 해당하는 용어를 쓰시오.
- IPv4의 주소 고갈 문제를 해결하기 위하여 기존의 IPv4주소 체계를 (64비트=>)128비트 크기로 확장한
차세대 인터넷 프로토콜 주소.
- 헤더의 내용을 확인하는 데 소요되는 오버헤드를 최소화하도록 설계 _ 라우팅 간소화
- 16비트씩 8부분, 128비트로 구성되며, 콜론(;)으로 구분한다.
- 주소 분류로, 유니캐스트, 멀티캐스트, 애니캐스트를 사용한다. + 브로드캐스트
일대일통신 일대다통신 인접통신 무작위(방송)통신
IPv6
IPv4 => 유니캐스트, 멀티캐스트, 브로드캐스트
IPv6 => 유니캐스트, 멀티캐스트, 애니캐스트
* IPv4 / IPv6 전환 기술
- 듀얼 스택 (Dual Stack) : IPv4 / IPv6 동시에 지원, IPv4 / IPv6 패킷을 주고받을 수 있음.
- 터널링 (Tunneling) : 두 IPv6 네트워크 간에 터널을 이용하는 기술.
IPv4 / IPv6 호스트와 라우터에서 IPv6 패킷을 IPv4 패킷에 캡슐화하여 전송.
- 주소 변환 (Address Translation) : IPv4 와 IPv6 간에 주소를 변환하여 두 버전을 연동.
2. 다음은 디자인 패턴에 대한 설명이다. 빈 칸 안에 들어갈 가장 적합한 용어를 쓰시오.
- 디자인 패턴은 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들에 대해 재사용할 수 있도록 만들어놓은
패턴들의 모음이다. (소스코드들의 모임)
- 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(Jhon Vissides)에
의해 개발 영역에서 디자인 패턴을 구체화 하고 체계화 시켰다.
- goF의 디자인 패턴은 생성, 구조, ( ) 의 3가지로 분류한다.
Gang of Four
행위
유형에 따라 생성, 구조, 행위 패턴으로 구성.
[ 생성패턴 (Creational Pattern) ]
- 추상 팩토리 (Abstract Factory)
- 빌더 (Builder) _ 작게 분리된 인스턴스를 조합하여 객체 생성
- 팩토리 메소드 (Factory Method) _ 가상 생성자 (Virtual Constructor)패턴 _ 상위는 인터페이스/하위는 객체 생성
- 프로토타입 (Prototype) _ 원본 객체를 복제하여 객체 생성
- 싱글톤 (Singleton) _ 클래스 내 인스턴스가 하나뿐임을 보장, 여러 프로세스가 동시에 참조X
[ 구조패턴 (Structural Pattern) ]
- 어댑터 (Adapter) _ 인터페이스 호환 지원
- 브리지 (Bridge) _ 구현부에서 추상층 분리, 기능/구현을 별도 클래스로 구현
- 컴포지트 (Composite) _객체들을 트리구조로 구성, 복합객체 안에 복합객체가 포함되는 구조 구현.
- 데코레이터 (Decorator) _객체간의 결합으로 기능확장.
- 퍼싸드 (Facade) _ 서브 클래스들 사이 통합 인터페이스 구성 (Wrapper 객체 필요)
- 플라이웨이트 (Flyweight) _인스턴스를 매번 생성하지 않고 공유
- 프록시 (Proxy) _ 객체 간 인터페이스 역할 수행.
[ 행위패턴 (Behavioral Pattern) ]
- 책임 연쇄 (Chain of Responsibility) _ 요청을 처리할 수 있는 객체들이 고리로 연결, 해결될때까지 책임이 넘어감
- 커맨드 (Command) _ 요청을 객체 형태로 캡슐
- 인터프리터 (Interpreter) _ 언어에 문법 표현을 정의
- 반복자 (Iterator) _ 접근이 잦은 객체(자료구조)에 대해 동일한 인터페이스 사용
- 중재자 (Mediator) _ 수많은 객체들 간 상호작용(interface)을 캡슐화하여 객체로 정의
- 메멘토 (Memento) _ 특정 시점에서의 객체 내부 상태를 객체화, 되돌리기 ctrl + z
- 옵서버 (Observer) _ 객체상태 변화 => 상속된 다른객체가 전달받음 (분산시스템_이벤트)
- 상태 (State) _ 객체의 상태에 따라 동일한 동작을 다르게 처리
- 전략 (Strategy) _ 알고리즘들을 캡슐화
- 템플릿 메소드 (Template Method) _ 상위에서 골격정의, 하위에서 세부처리 구체화
- 방문자 (Visitor) _ 처리 기능을 분리하여 별도의 클래스로 구성
3. 다음은 판매와 관련된 다이어그램이다. 해당 다이어그램의 명칭을 쓰시오.
패키지 다이어그램
* 다이어그램 : 사물과 관계를 도형으로 표현한 것.
[ 구조적(Structural) 다이어그램 ]
- 클래스 다이어그램 (Class Diagram) _ 클래스 사이 관계
- 객체 다이어그램 (Object Diagram) _ 럼바우
- 컴포넌트 다이어그램 (Component Diagram)
- 배치 다이어그램 (Deployment Diagram)
- 복합체 구조 다이어그램 (Composite Structure Diagram)
- 패키지 다이어그램 (Package Diagram) _ 그룹
[ 행위(Behavioral) 다이어그램 ]
- *유스케이스 다이어그램 (Use Case Diagram) _ 사용자(Actor)와 사용사례(Use Case)
- 순차 다이어그램 (Sequence Diagram) _ 콜라보레이션 다이어그램
- 커뮤니케이션 다이어그램 (Communication Diagram)
- 상태 다이어그램 (State Diagram) _ 럼바우, 객체 생명주기
- 활동 다이어그램 (Activity Diagram) _ 업무처리과정, 연산수행과정
- 상호작용 개요 다이어그램 (Interaction Overview Diagram)
- 타이밍 다이어그램 (Timing Diagram)
4. 데이터베이스의 회복(Recovery) 기법에 관련된 설명에서 괄호에 들어갈 가장 알맞은 용어를 쓰시오.
다양한 데이터 회복 기법 중 ( ) 회복 기법은 로그를 이용한 회복 기법으로 데이터베이스에 대한 갱신 로그를 저장함으로서 회복에 대비한다.
( ) 회복 기법은 트랜잭션이 실행 상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법이다.
( ) 회복 기법은 장애가 발생하면 로그 파일에 기록된 내용을 참조하여, 장애 발생 시점에 따라 Redo나 Undo를 실행하여 데이터베이스를 복구한다.
즉시 갱신
[ 회복 기법 ]
* 즉시 갱신 기법
- 트랜잭션이 실행(활동) 상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법.
- 변경되는 모든 내용은 로그(Log)에 기록하여 장애 발생 시 로그(Log)의 내용을 토대로 회복.
- Redo, Undo 모두 수행.
재실행 취소
* 지연 갱신 기법
- 트랜잭션이 수행되어 부분완료 될 때까지 데이터베이스에 적용하지 않고 지연시킨 후
부분완료가 되면 로그(Log)의 내용을 토대로 데이터베이스에 적용하는 기법.
- Undo 없이 Redo만 수행.
// 로그이용
// 로그없이
* 검사점 회복 기법 (Checkpoint Recovery)
- 트랜잭션이 실행되는 중간에 검사 시점(Check Point)을 지정하여 검사 시점까지 수행 후
완료된 내용을 데이터베이스에 적용하는 기법.
* 그림자 페이징(Shadow Paging) 기법
- 로그(Log)를 사용하지 않고, 데이터베이스를 동일한 크기의 단위인 페이지로 나누어
각 페이지마다 복사하여 그림자 페이지를 보관.
- 데이터베이스의 변경되는 내용은 원본 페이지에만 적용하고, 장애가 발생되는 경우 그림자 페이지를 이용해 회복.
5. 다음은 n이 10일 때, 10을 2진수로 변환하는 자바 소스 코드이다. 1,2에 알맞는 값을 적으시오.
[출력결과] : 00001010
class good {
public static void main (String[] args) {
int[]a = new int[8];
int i=0; int n=10;
while ( 1. ) {
a[i++] = ( 2. );
n /= 2;
}
for(i=7; i>=0; i--){
System.out.print(a[i]);
}
}
}
1. i < a.length (i < 8) / n > 0
2. n%2
6. 다음은 자바 소스 코드이다. 출력 결과를 보고 , 1,2에 알맞는 값을 적으시오.
[출력 결과]
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
public class good {
public static void main(String[] args) {
int[][]a = new int[(1.)][(2.)];
for(int i = 0; i <3; i++){
for(int j=0; j < 5; j++){
a[i][j] = j*3+(i+1);
System.out.print(a[i][j]+"");
}
System.out.println();
}
}
}
1. 3
2. 5
이중 포문 => 행 / 열
7. 스니핑(Sniffing)에 대하여 서술하시오.
네트워크상에 통과되는 패킷들의 내용을 엿보는 행위.
* 서비스 공격 유형의 종류
- DDoS (Distributed Denial of Service, 분산 서비스 거부) _ Dos는 내가 공격, DDoS는 쫄병시켜서 공격
- 피싱 (Phishing) _ 이메일, 메시지, 웹사이트로 속여 정보 수집.
- 파밍 (Pharming) _ DNS를 조작하여 악성사이트로 유도(리디렉션)
- 스니핑 (Sniffing)
- 스미싱 (Smishing) _ 문자메시지(SNS)로 속여 정보 수집.
- 큐싱 (Qshing) _ 가짜 웹사이트로 유도하여 개인정보 수집.
- 랜섬웨어 (Ransomware) _ 사용자 컴퓨터에 잠입해 내부문서/파일을 암호화
- 키 로거 (Key Logger) _ 키보드 움직임을 탐지
- SQL 삽입 (SQL Injection)
- XSS (Cross Site Scripting) _ 악의적인 스크립트를 웹페이지에 삽입
8. 다음 설명하는 용어를 쓰시오.
- 우리나라 말로 번역하면 '네트워크 주소 변환' 이라는 의미.
- 내부에서 사용하는 사설 IP 주소와 외부로 보여지는 공인 IP 주고 간의 IP Address 변환 방식을 말한다.
- 한정된 공인 IP를 여러 개의 내부 사설 IP로 변환하기 위해 사용하는 기술.
( IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술 )
NAT (Network Address Translation)
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
* 파이썬에서 print는 엔터 포함.
* end = '' " : 엔터생략하고 띄어쓰기
10. 다음 설명에 해당하는 용어를 쓰시오.
- 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하여, 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술.
(분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술로 P2P방식을 기반으로 하여 소규모 데이터들이 연결되어 형성된 '블록'이라는 분산 데이터 저장 환경에 관리 대상 데이터를 저장함으로써 누구도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있게끔 만드는 기술)
블록체인
* P2P (Peer-to-Peer)
컴퓨터 네트워크에서 중앙 서버 없이 직접적으로 통신하는 방식.
파일 공유, 음악 스트리밍, 동영상 공유 등..
( * 빅데이터, 하둡, 스쿱 * )
11. 다음 설명에 해당하는 용어를 쓰시오.
- 정형 데이터 및 사진 영상 등의 비정형 데이터를 효과적으로 처리하는 오픈소스 빅데이터 솔루션이다.
- 많은 양의 데이터를 여러 대의 범용 컴퓨터에 나눠서 저장해주고 처리한다.
- 더그 커팅과 마이크 캐퍼랠라가 개발했으며 구글의 맵리듀스(MapReduce) 엔진을 사용한다.
( 오픈 소스 기반으로 한 분산 컴퓨팅 플랫폼으로, 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크로 구글, 야후 등에 적용한 기술)
하둡 (Haddop)
- 오픈 소스 기반 분산 컴퓨팅 기술.
- 현재 정형/비정형 빅 데이터 분석에 가장 선호되는 솔루션.
* 빅데이터 관련 용어
- Big Data : 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술
- NoSQL : 전통적인 관계형 데이터 베이스 RDBMS와 다르게 설계된 비관계형 데이터 베이스.
대규모의 유연한 데이터 처리를 위해서 적합.
=> SQL은 정형 데이터 / NoSQL(NotOnlySQL)은 영상, 음악같은 비정형데이터를 위한 것.
- Data Mining (데이터 마이닝) : 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을
찾아내는 것.
- 데이터웨어 하우스 : 기간 시스템의 데이터베이스에 축척된 데이터를 공통의 형식으로 변환하여 관리하는
데이터베이스.
- 데이터 마트 : 데이터의 한 부분으로서 특정 사용자가 관심을 갖는 데이터들을 담은
비교적 작은 규모의 데이터웨어 하우스.
- OLAP : 이용자가 직접 데이터베이스를 검색, 분석해서 문제점이나 해결책을 찾는 분석형 애플리케이션 개념.
- Mashup : 웹에서 제공하는 정보 및 서비스를 이용하는 새로운 소프트웨어나 서비스, 데이터베이스 등을
만드는 기술.
(하둡관련)
* HDFS (Hadoop Distributed File System) : 대용량 데이터를 여러 노드에 분산하여 저장하는 파일 시스템.
* MapReduce : 데이터 처리를 위한 분산 프로그래밍 모델로, 대규모 데이터를 분할하고 병렬로 처리.
* 스쿱 (Sqoop) _ 하둡 + SQL
관계형 데이터베이스와 하둡 간에 데이터를 전송하고 통합하기 위한 도구.
하둡(HDFS) == 데이터 ==> 데이터베이스
데이터베이스 == 데이터 ==> 하둡 (HDFS)
12. 데이터베이스의 이상(Anomaly) 현상의 종류 3가지를 쓰시오.
삽입이상
삭제이상
갱신이상
정규화가 되지 않으면 이상 현상이발생할 수 있음.
비정규 릴레이션
> 제 1정규형 : 도메인이 원자값
> 제 2정규형 : 부분적 함수 종속 제거
> 제 3정규형 : 이행적 함수 종속 제거
> BCNF : 결정자이면서 후보키가 아닌 것 제거
> 제 4정규형 : 다치 종속 제거
> 제 5정규형 : 조인 종속성 이용
13. 다음은 프로세스 상태 전이도이다. 1, 2, 3에 알맞은 상태를 쓰시오.
1. 준비
2. 실행
3. 대기
14. 일반, 업무용, 게임, 오락 등의 일반적인 업무에 사용하는 테스트 오라클로
특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클*은 무엇인가?
샘플링 오라클
* 테스트 오라클 : 테스트의 결과가 참/거짓 인지 판단하기 위해 사전에 정의된 참값을 입력하여 비교하는 기법.
- 참(True)오라클
모든 입력값에 적합한 결과를 생성하여, 발생한 오류를 모두 검출
- 샘플링(Sampling)오라클
임의로 선정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
- 휴리스틱(Heuristic)오라클
임의의 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리
- 일관성 검사(Consistent) 오라클
애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 같은지 확인.
15. 점수에 따른 성적 부여가 잘 되었는지 테스트하고자 한다. 아래에 알맞는 * 테스트 기법은 무엇인가?
점수 | 성적 |
0 ~ 59 | 가 |
60 ~ 69 | 양 |
70 ~ 79 | 미 |
80 ~ 89 | 우 |
90 ~ 100 | 수 |
[테스트 값] : -10점 / 30점 / 65점 / 75점 / 85점 / 95점 / 110점
동등 분할 테스트
* 블랙박스 테스트 (Black Box Test) _ 입출력값
- 동등 분할 기법
- 경계값 분석
- 원인-효과 그래프 검사
- 오류 예측 검사
- 비교 검사
16. 다음 조건을 만족하면서 학과별로 튜플 수가 얼마인지 구하는 SQL문을 작성하시오.
- 대소문자를 구분하지 않는다.
- WHERE 구문을 사용하지 않는다.
- GROUP BY 를 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다. (별칭 사용 시 별칭은 작은 따옴표를 써야 함)
- 집계 함수를 사용해야 한다.
AVG, SUM, MIN, MAX, COUNT
[학생]
학과 | 학생 |
전기 | 이순신 |
컴퓨터 | 안중근 |
컴퓨터 | 윤봉길 |
전자 | 이봉창 |
전자 | 강우규 |
[결과]
학과 | 학과별튜플수 |
전기 | 1 |
컴퓨터 | 2 |
전자 | 2 |
SELECT 학과, COUNT(*) AS '학과별 튜플수'
FROM 학생
GROUP BY 학과
* 학과별 튜플 수가 1개 이상인 학과
SELECT 학과, COUNT(*) AS '학과별 튜플수'
FROM 학생
GROUP BY 학과
HAVING COUNT(*) >= 1
17. 다음 설명에 해당하는 운영체제를 적으시오.
- 1960년대 말 벨 연구소(Bell Labs)에서 개발된 운영체제로 다중 사용자, 멀티태스킹 운영체제이다.
- 대부분 C언어로 작성되어 있어 이식성이 높다. 대부분의 운영체제 특징
- 트리구조의 파일 시스템을 갖는다.
(시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능하며 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이)
유닉스 (UNIX)
18. 다음은 C언어 소스 코드이다. 출력값을 쓰시오.
#include <stdio.h>
void main(){
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);
P | K O R E A
10 10 11 12 13 14
printf("%s\n" , p); --> KOREA
printf("%s\n" , p+3); --> EA
printf("%c\n" , *p); --> K
printf("%c\n" , *(p+3)); --> E
printf("%c\n" , *p+2)); --> M (ASCII코드_ K > L > M > N.....)
%s => 주소값의 문자열(끝까지) 출력.
%c => 주소값의 문자(Char) 출력.
19. 다음은 자바 소스 코드이다. 출력 결과를 쓰시오.
class parent{
public int compute(int num){
if(num <=1) return num;
return compute(num-1) + compute(num-2);
}
}
class Child extends parent {
public int compute(int num){
if(num<=1) return num;
return compute(num-1) + compute(num-3);
}
}
class good{
public static void main (String[] args){
parent obj = new Child();
System.out.print(obj.compute(4));
}
}
1
compute(4)
compute(3) + compute(1)
compute(2) + compute(0) + 1
compute(1) + compute(-1) + 0 + 1
1 + (-1) + 0 + 1 = 1
메서드 compute (int num) 이 부모/자식 클래스에 존재 (메서드 오버라이딩)
자식 클래스에서 compute 메서드를 재정의 했기 때문에 자식메서드 사용.
* 재귀함수 문제 => 박스 / 피라미드 형태
20. 정보보안에서 가용성(Availablility) 에 대하여 서술하시오.
인가된 사용자가 정보를 요구할 때 적시에 제공되어야 하는 원칙
* 정보보안의 3요소
- 기밀성 : 인가된 사용자만 정보 자산에 접근할 수 있다. 방화벽, 암호
- 무결성 : 시스템 내의 정보는 오직 인가된 사용자가 인가된 방법으로만 수정할 수 있다.
- 가용성 : 사용자가 필요할 때 데이터에 접근할 수 있는 능력. _ Dos, DDos
https://www.youtube.com/watch?v=Kc1xRWy3-rs&t=1s
'자격증 > 정보처리기사' 카테고리의 다른 글
[정처기실기] 2020년 2회 (0) | 2024.02.08 |
---|---|
[C언어(강의)] 1~8강 (변수, 데이터 타입, 연산자) (0) | 2024.02.04 |
[정처기실기] 2020년 3회 (0) | 2024.01.29 |
[정처기필기] 5과목_정보시스템 구축 (0) | 2023.07.16 |
[정처기필기] 1과목_소프트웨어 설계 (0) | 2023.07.16 |