[정보처리기사] 2022년 2회 정보처리기사 실기 요약
3단원 Chapter 1) 논리 데이터 저장소 확인
1.
관계해석
: 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용
- 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고 특별히 관계 데이터베이스를 위해 제안하여 탄생
- 프레디킷 해석에 기반한 언어이며, 비절차적 언어
- 튜플 관계해석과 도메인 관계해석이 있다.
대칭키 알고리즘
2.
IDEA
: Xuejia Lai와 James Messey 가 만든 알고리즘으로 PES(Proposed Encryption Standard)에서 IPES(Improved PES)로 변경되었다가, 1991년에 제작된 블록 암호 알고리즘으로 현재 국제 데이터 암호화 알고리즘으로 사용되고 있다. 64비트 블록을 128비트의 key를 이용하여 8개의 라운드로 구성
SKIPJACK
: 미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.
7딘원 Chapter 2) 응용 SQL 작성하기
3. H회사의 전체 제품 단가 보다 큰 제품 출력을 하고자 한다. 괄호안에 들어갈 알맞는 용어를 작성하시오.
SELECT 제조사, 제품명, 단가
FROM 제품
WHERE 단가 >
ALL (SELECT 단가
FROM 제품
WHERE 제조사='H')
ALL 연산자 : 모든 조건을 만족하는 결과 리턴
11단원 2) 네트워크 기초 활용하기
4. VPN
- 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해 데이터를 안전하게 익명으로 전송하는 데 사용
- 또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 한다.
SOLID 원칙
5. ISP
- ISP는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙
- ISP는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다. 예를 들어 하나의 복합기에 프린터와 복사기, 팩스 메서드가 있는데 이 세가지 메서드는 같은 파일에 존재하므로 프린터 로직만 바뀌어도 복사기와 팩스도 재컴파일을 해야한다.
- 그러므로 ISP를 적용하여 로직이 바뀌어도 다른 메서드는 영향을 받지 않도록 해야한다.
객체지향 개발 5대 원리 : SOLID 원칙
- SRP (단일 책임의 원칙 : Single Responsibility Principle)
- OCP (개방폐쇄의 원칙 : Open Close Principle)
- LSP (리스코브 치환의 원칙 : The Liskov Substitution Principle)
- ISP (인터페이스 분리의 원칙 : Interface Segregation Principle)
- DIP (의존성역전의 원칙 : Dependency Inversion Principle)
1. 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다.
2. 기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다.
3. 자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.
5. 의존 관계를 맺을 때, 변화하기 쉬운것 보단 변화하기 어려운 것에 의존해야 한다는 원칙
JAVA
6. 다음 소스코드에 대한 출력값을 작성하시오.
public static void main(String args[]){
int i = 3; int k = 1;
switch(i) {
case 1: k += 1;
case 2: k++;
case 3: k = 0;
case 4: k += 3;
case 5: k -= 10;
default: k--;
}
System.out.print(k);
}
정답) - 8
C언어
7. 다음 소스코드에 대한 출력값을 작성하시오.
struct A{
int n,
int g
}
int main(){
A a = new A[2]
for(i=0; i <2; i++) {
a[i].n = i,
a[i].g=i+1
}
System.out.printf(a[0].n + a[1].g);
}
정답 ) 2
IP주소
8. IP 주소가 139.127.19.132이고 서브넷마스크 255.255.255.192일 때 아래의 답을 작성
10진수로 표기 -> 139.127.19.128
해당 네트워크 주소와 브로드캐스트 주소를 제외한 호스트 개수 -> 62개
8.
베타테스트는 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업. 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업
알파테스트는 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트. 즉, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함
9.
Regression
- 오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험
- 반복적인 시험이 필요한 이유는 오류가 제거·수정되는 상당수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다.
- 결국, 수정·변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태
10. 다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.
정답 )
1. TTL
2. 부장
3. 대리
4. 과장
5. 차장
파이썬
11.
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16];
c = "R AND %s" % "STR";
print(b+c);
정답 ) REMEMBER AND STR
12.
IGP
라우터로 상호 접속이 되어있는 여러 개의 네트워크 집합으로 도메인 혹은 자율시스템(Autonomous System, AS)
같은 도메인 내에 존재하는 라우터는 도메인 내부 라우터가 되고 도메인 외부에 존재하는 라우터는 도메인 외부 라우터가 되는데, 여기서 도메인 내부 경로 설정을 가르킨다.
EGP
시스템 사이에 경로 설정 정보 등을 교환하기 위해 사용하는 프로토콜로써,
다른 도메인 사이에 라우팅 시 정리된 관리가 거의 없고 많은 경우에 신용도가 매우 낮아 빠른 수행보다는 보안과 제어가 본래의 목적이다.
OSPF
IP 라우팅 프로토콜의 한 종류로써 RIP(routing information protocol)보다 규모가 큰 네트워크에서도 사용할 수 있다.
규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선한 라우팅 프로토콜로써 RIP에 비해 자세한 제어가 가능하고, 관리 정보의 트래픽도 줄일 수 있다.
BGP
서로 다른 자율 시스템(AS)의 라우터 간에 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜(EGP)이다.
각 목적지에 대한 전체 경로가 포함되며, 다른 시스템과 교환하는 네트워크 도달 가능성 정보의 데이터베이스를 유지한다.
네트워크 도달 가능성 정보를 사용하여 AS 연결 그래프를 구성하며, 이를 통해 라우팅 루프를 제거하고 AS 수준에서 정책 결정을 실행할 수 있다.
13. C언어
#include <stdio.h>
int len(char*p);
int main(){
char*p1 = "2022";
char*p2 = "202207";
int a = p1;
int b = p2;
printf("%d", len(a) + len(b));
}
int len(char*p){
int r = 0;
while(*p != \0'){
p++;
r++;
}
}
정답 ) 10
14. C언어
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[4] = {0, 2, 4, 8};
int b[3] = {};
int i = 1;
int sum = 0;
int *p1;
for (i; i < 4; i++) {
p1 = a + i;
b[i-1] = p1 - a[i-1];
sum = sum + b[i-1] + a[i];
}
printf("%d", sum);
return 0;
}
정답 ) 22
15. JAVA
public class Conv{
public Conv(int a) {
this.a = a;
}
int func() {
int b =1;
for (int i=1; i<a; i++){
b = a * i + b
}
return a +b;
}
int a;
}
public static void main(String[] args){
Conv obj = new Conv(3);
obj.a=5;
int b = obj.func();
system.out.print(obj.a + b);
i
}
정답 ) 61
16.
HTTP
인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다.
인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다.
이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.
Hypertext
문자, 그래픽, 음성 및 영상을 하나의 연상 거미집(Web of Association)과 같이 서로 연결시켜, 제시된 순서에 관계없이 이용자가 관련된 정보를 검색할 수 있도록 하는 정보 제공 방법이다.
즉, 한 페이지에서 링크된 순서에 상관없이 사용자들이 원하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근하는 방식을 말한다.
HTML
웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다.
또한, HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다.