Tech Trail

[정보처리기사 실기] 2022년 2회 기출 단답 정리 본문

Learning/정보처리기사

[정보처리기사 실기] 2022년 2회 기출 단답 정리

_밍지_ 2023. 11. 7. 12:03
728x90
반응형
SMALL

2022년 2회

 

 

1. 다음은 관계 데이터 모델과 관련된 설명이다. ( ) 안에 공통적으로 들어갈 용어를 쓰시오.

- (관계 해석)은/는 관계 데이터베이스에 대한 비절차적 언어이며, 수학의 Predicate Calculus에 기반을 두고 있다.

- Codd 박사에 의하여 제시되었으며, 튜플 (관계 해석), 도메인 (관계 해석)이/가 있다.

 

📚 관계 대수와 관계 해석: 대절해비

관계 수는 차적 언어, 관계 석은 절차적 언어

 

📚 관계 대수

SELECT
σ (시그마)
PROJECT
π (파이)
JOIN
▷◁ (보타이)
DIVISION
÷(나누기)

 

📚 관계 대수 예제

<R>

A
B
a1
b1
a1
b2
a1
b3
a2
b1
a2
b3

<S1>

B
b1

<S2>

B
b1
b2

 

예시1: (R)÷(S1)

A
a1
a2

예시2: (R)÷(S2)

A
a1

 

 

2. 다음은 블록 암호화 알고리즘에 대한 설명이다. ( ) 안에 들어갈 암호화 알고리즘을 쓰시오.

- Xuejia Lai와 James Messey가 초기에 제시한 블록 암호화 알고리즘으로 PES, IPED를 거쳐 (IDEA)로 명명되었다. (IDEA)는 128bit의 키를 사용하여 64bit의 암호문을 만든다.
- (Skipjack)은 미 국가안보국(NSA, National Security Agency)에서 개발한 Clipper 칩에 내장된 블록 알고리즘으로, 소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현되었으며 전화기와 같이 음성을 암호화하는 데 주로 사용된다. 64비트의 입출력, 80비트의 키, 총 32라운드를 가진다.

 

📚 암호 방식에 따른 분류

  • 단방향 알고리즘 (One-Way Algorithm):

해시 알고리즘은 주어진 입력 데이터를 해시 함수를 통해 고정된 길이의 해시 코드로 변환하는 알고리즘입니다.

이 알고리즘은 입력 데이터에서 해시 코드로의 변환은 가능하지만, 해시 코드에서 원래 데이터로의 역변환이 불가능합니다.

  • 양방향 알고리즘 (Two-Way Algorithm):

양방향 암호화 알고리즘은 데이터를 암호화하는 데 사용되는 키와 데이터를 복호화하는 데 사용되는 키가 존재합니다.

(1) 대칭키 알고리즘(2) 비대칭키 알고리즘 두 가지 주요 유형이 있습니다.

 

(1) 대칭키 알고리즘 (Symmetric Key Algorithm):

대칭키 알고리즘은 데이터를 암호화하고 복호화하는 데 동일한 키를 사용합니다.

데이터 양이 많을 때도 빠른 속도를 제공하며, 주로 대용량 데이터 전송에 사용됩니다.

Stream방식Block방식이 있습니다.

 

스트림 암호화 (Stream Cipher):

데이터를 한 비트 또는 한 바이트씩 암호화하는 방식.

데이터를 연속적인 비트 스트림으로 처리하며, 실시간 암호화와 복호화가 가능.

예: RC4 알고리즘.

 

블록 암호화 (Block Cipher):

고정된 크기의 블록 단위로 데이터를 처리하는 방식.

데이터를 블록 단위로 나눈 후 각 블록을 암호화하고 복호화.

대표적인 알고리즘으로 DES, 3DES, AES(Advanced Encryption Standard), IDEA 등이 있으며, AES가 가장 많이 사용됨.

 

(2) 비대칭키 알고리즘 (Asymmetric Key Algorithm):

비대칭키 알고리즘은 두 개의 키를 사용하는 알고리즘입니다.

공개키(public key)와 개인키(private key).

공개키는 누구나 알 수 있고, 누구나 사용할 수 있는 키입니다.

개인키는 오직 데이터 소유자만 가지고 있어야 하는 비밀한 키입니다.

사용 예시:

암호화: 누군가가 나에게 선물을 전송하려면, 나는 공개키를 공유합니다. 그런 다음 누군가가 데이터(선물)를 보낼 때, 그 데이터를 공개키로 암호화하여 전송합니다.

복호화: 나는 받은 데이터를 개인키를 사용하여 복호화합니다. 이를 통해 나만이 데이터를 해독할 수 있습니다.

 

특징:

비대칭키 알고리즘은 데이터의 기밀성과 인증을 제공합니다.

데이터 양이 적은 경우에 주로 사용됩니다.

속도가 느릴 수 있으며, 대표적인 비대칭키 알고리즘으로는 RSA가 있습니다.

RSA 알고리즘은 인수분해를 기반으로 하며, 안전한 통신과 데이터 보호에 널리 사용됩니다.

 

📚 블록암호 알고리즘 (특징 기억하기)

AES (Advanced Encryption Standard):

- 평문을 128/192/256비트로 암호화.

- 키 크기에 따라 10/12/14회 라운드를 수행.

- 1997년 NIST에 의해 제정됨.

- 레인달(Rijndael) 기반의 암호화 방식을 사용.

- SPN(Simplified Permutation Network) 암호 방식을 채택.

 

SEED:

- 국내기술로 개발된 128비트 및 256비트 대칭키 블록 암호 알고리즘.

- SPN 암호 방식을 사용.

 

ARIA:

- 국가 보안 기술 연구소(NSRI)와 암호 기술 전문가들이 개발한 국가 암호화 알고리즘.

- AES와 유사하게 128/192/256비트 암호화 키를 지원.

- SPN 암호 방식을 사용.

 

IDEA (International Data Encryption Algorithm):

- 스위스에서 개발된 블록 암호 알고리즘.

- 128비트 키와 64비트 블록 길이를 가짐.

- Feistel 방식과 SPN의 중간 형태 구조를 사용.

 

 

3. 다음 복수의 행을 출력하는 SQL문을 사용하여 제품 테이블에서 H라는 제조사의 모든 제품의 단가보다 비싼 단가의 상품명, 단가, 제조사를 출력하는 SQL구문이다. ( ) 안에 들어갈 내용은?

SELECT 상품명, 단가, 제조사
FROM 제품
WHERE 단가 > (ALL) (SELECT 단가 FROM 제품 WHERE 제조사=’H’);

📚 참고

연산자
설명
IN
리턴되는 값 중에서 조건에 해당하는 값이 있으면 참
ANY
서브쿼리에 의해 리턴되는 각각의 값과 조건을 비교하여 하나 이상을 만족하면 참
ALL
값을 서브쿼리에 의해 리턴되는 모든 값과 조건값을 비교하여 모든 값을 만족해야만 참
EXISTS
메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참

 

 

 

 

4. 📚 SQL 문제 참고

COUNT(칼럼명): NULL값은 제외하고 COUNT

COUNT(*): NULL도 포함하여 전부 COUNT

 

 

5. ( ) 안에 공통으로 들어갈 용어를 쓰시오.

- 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 기술로 공중망과 사설망의 중간단계이고 방식으로는 SSL 방식과 IPSec 방식이 있다.
- SSL (VPN)은/는 4계층에서 소프트웨어적으로 동작하므로 별도의 장치가 필요 없으며 가격이 저렴하다.
- IPSec (VPN)은/는 3계층에서 동작하므로 IP헤더를 조작해야 하므로 별도의 하드웨어 장치가 필요하나 보안성이 뛰어나다.

📚 VPN(Virtual Private Network)은 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션이다.

VPN은 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 기술로 공중망과 사설망의 중간단계이고 방식으로는 SSL 방식과 IPSec 방식이 있다.

 

📚 보안 솔루션

방화벽
(Firewall)
네트워크 간에 전송되는 정보를 선별하여 침입을 차단하는 시스템
웹방화벽
(WAF; Web Application Firewall)
웹 기반 공격을 방어하는 웹 서버 전용 방화벽
침입탐지 시스템
(IDS; Intrusion Detection System)
비정상적인 사용 또는 오용을 탐지하는 시스템. 침입을 탐지만 수행
- 이상탐지: 정상적인 패턴과 다른 비정상적인 활동을 탐지 (구현이 어려움)
- 오용탐지: 미리 정의된 공격 패턴을 감지하여 경보를 발생
침입방지 시스템
(IPS; Intrusion Prevention System)
방화벽과 침입탐지 시스템을 결합한 시스템. 탐지한 침입을 차단
데이터 유출 방지
(DLP; Data Leakage/Loss Prevention)
내부 정보의 유출을 방지하기 위한 보안 솔루션
NAC
(Network Access Control)
내부 PC의 고유 MAC 주소를 등록하고 네트워크 접근을 일관되게 관리하는 보안 솔루션
ESM
(Enterprise Security Management)
다양한 장비에서 발생하는 로그와 보안 이벤트를 통합 관리하는 보안 솔루션

 

 

6. 다음은 객체지향 설계 원칙 중 다음에서 설명하는 원칙을 보기에서 찾아서 쓰시오.

- 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다는 원칙이다.
- 예를 들어, 복합기에 대한 객체가 있고 프린터, 복사기, 스캐닝 기능을 사용하는 사용자가 각각 있다고 하면 프린터 기능 인터페이스는 복사기나 스캐닝 기능이 변하여도 프린터 기능을 사용하는 데에는 문제가 없어야 한다.

: ISP

 

📚 객체지향 설계원칙(SOLID)

단일 책임의 원칙
(SRP; Single responsibility principle)
한 클래스는 하나의 책임만을 가져야한다.
개방 폐쇄 원칙
(OCP, Open-closed principle)
확장에는 열려 있고, 수정에는 닫혀 있어야 한다.
리스코프 치환 원칙
(LSP, Liskov substitution principle)
자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.
인터페이스 분리 원칙
(ISP, Interface Segregation Principle)
자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
의존성 역전 원칙
(DIP, Dependency Inversion Principle)
의존 관계를 맺을 때 자주 변화하는 것보다, 변화가 거의 없는 것

 

 

 

10. 다음은 테스팅에 대한 설명이다. ( ) 안에 들어갈 올바른 답을 한 단어로 쓰시오.

- (베타) 테스트는 사용자의 환경에서 개발자 없이 수행하는 테스트 방법으로, 사용자가 오류정보를 수집하여 개발자에게 보내면 개발자가 취합하여 오류를 수정하는 방식이다.

- (알파) 테스트는 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 방법으로 사용자가 프로그램을 수행하는 것을 개발자가 모니터링하여 오류를 수정한다.

 

 

11. 다음은 테스팅에 대한 설명이다. 맞는 답을 보기에서 골라서 쓰시오.

- (Regression) 테스트는 소프트웨어의 변경 사항이 발생하면 수행하는 테스트로, 주로 유지보수 단계에서 수행한다.

- 소프트웨어 수정 시 다른 오류가 흘러들어오므로 이를 확인하기 위하여 소프트웨어에 변경사항이 발생할 때마다 (Regression) 테스트를 반복적으로 수행한다.

 

📚 애플리케이션 테스트 유형 분류

  • 프로그램 실행 여부 (정적/동적):

- 정적 테스트: 소스 코드 내부를 검사하는 테스트로, 주로 개발자가 수행.

- 동적 테스트: 프로그램을 실행한 상태에서 테스트를 수행하는 것으로, 개발자와 사용자 모두 가능. 단위 테스트부터 가능.

  • 테스트 기법 (화이트박스/블랙박스):

- 화이트박스 테스트: 내부 소스 코드를 검사하는 테스트로, 주로 개발자 관점에서 수행.

커버리지 개념이 중요! 커버리지 (Coverage)는 내가 얼만큼 테스트를 수행했는지 측정하는 지표.

- 블랙박스 테스트: 동작 상태만 검사하는 테스트로, 다양한 종류가 있음. 종류 꼭 외우기!

  • 테스트에 대한 시각 (검증/확인):

- 검증 테스트:주로 개발자가 수행하며, 명세와 일치하는지 확인하는 테스트.

- 확인 테스트:사용자가 수행하며, 기대한 동작을 실제로 확인하는 테스트.

  • 테스트 목적:

- 회복 테스트: 고의적으로 고장을 유발하여 시스템이 복구하는 데 얼마나 효과적인지 검사.

- 안전 테스트: 시스템의 안전성을 평가하고 비정상적인 상황에 대비.

- 강도 테스트 (스트레스 테스트): 서버에 부하를 가하여 시스템의 성능과 안정성을 테스트.

- 성능 테스트: 시스템의 성능과 응답 시간을 측정하고 최적화 검사.

- 구조 테스트: 소프트웨어의 구조와 코드를 검사하여 결함을 찾고 수정.

- 회귀 테스트: 소프트웨어 변경 후 이전 기능이 여전히 올바르게 작동하는지 검증.

- 병행 테스트: 여러 기능이 동시에 수행될 때 상호 작용을 검사.

  • 테스트 기반:

- 명세 기반 테스트: 문서 기반으로 테스트 케이스를 작성하며, 시간이 오래 걸릴 수 있음.

- 구조 기반 테스트: 소스 코드를 기반으로 테스트 케이스를 작성하며, 시간이 오래 걸릴 수 있음.

- 경험 기반 테스트: 과거 경험을 토대로 테스트 케이스를 작성하며, 빠른 테스트 가능.

  • 테스트 오라클: 결과를 판단하기 위해 미리 정의한 참값과 비교하는 도구.

 

 

12. 다음은 라우팅 프로토콜에 대한 설명이다. ( ) 안에 들어갈 말을 보기에서 골라 쓰시오.

- 라우팅 프로토콜은 범위에 따라 (IGP), (EGP)가 있다.

- 라우팅 프로토콜의 범위는 AS에 따라 나뉘는데 AS(Autonomous System; 자치 시스템)는 하나의 도메인에 속하는 라우터들의 집합을 말한다.

- 하나의 자치 시스템에 속한다는 것은 하나의 도메인에 속한다는 것과 같은 의미이다.

- (IGP)는 동일한 AS내의 라우팅 프로토콜이며, 대표적으로는 RIP와 (OSPF)가 있다. 📚 "AS내" 내부!

- (OSPF)는 항상 상태를 주고받는 RIP와 다르게 변화가 있을 때만 상태를 주고받는 Linked State의 프로토콜이며 자치 시스템을 지역(Area)으로 나누어 라우팅을 효과적으로 관리할 수 있다.

📚"서로 다른 AS " 외부!

- (EGP)는 서로 다른 AS 간 라우팅 프로토콜이며, 대표적으로 (BGP)가 있으며 초기에 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고, 그 이후에는 변화된 정보만을 교환하는 방식이다.

📚"EGP의 대표적인 거, BGP뿐임"

📚 동적 라우팅 프로토콜은 내부 라우팅 프로토콜(IGP)과 외부 라이팅 프로토콜(EGP)로 나뉩니다.

내부 라우팅 프로토콜(IGP):

- 거리 벡터 알고리즘 (Distance Vector): RIP

최대 15홉까지만 이동 가능

- 링크 상태 알고리즘 (Link-State Vector): OSPF

홉 제한 없음

외부 라우팅 프로토콜 (EGP):

- 외부 라우팅 프로토콜로는 BGP (Border Gateway Protocol) 등이 사용됨

 

 

 

13. 다음 [EMPLOYEE] 테이블에 대하여 π TTL(EMPLOYEE)연산을 수행하면 나타는 결과를 채워 넣으시오.

[EMPLOYEE]

EMPNO
NAME
DEPT
TTL
JOIN_DATE
1001
홍길동
총무
부장
2001.03.01
1002
강감찬
총무
대리
2017.09.01
1003
을지문덕
회계
과장
2012.03.01
1004
이순신
기획
차장
2004.03.09

[결과]

TTL
부장
대리
과장
차장

📚 로젝트(π) 연산자는 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플을 반환할 때 사용한다.

π 속성리스트(R) 이므로, EMPLOYEE 테이블에서 TTL 속성값으로만 구성된 튜플을 반환한다.

 

 

 

18. 다음 설명 중 ( ) 안에 들어갈 단어를 보기에서 찾아 쓰시오.

- 관계 데이터베이스에서 X 속성에 의해 Y속성이 유일하게 결정되면 Functional Dependency가 성립한다고 하며 X->Y라고 표현한다.

{학번, 과목번호} -> 성적
학번 -> 학년

- 학년은 학번에 의해 결정되므로 (Full) Functional Dependency가 성립하는 반면, 성적은 {학번, 과목번호}에 의해 (Full) Functional Dependency가 성립하지만 학년은 (Partial) Functional Dependency가 성립한다.

- 속성 X, Y, Z에 대하여 X->Y이고 Y->Z이면, X와 Z는 (Transitive) Functional Dependency가 성립한다.

 

📚 Full: 완전 함수 종속, Transitive: 이행적 함수 종속

 

19. 다음 설명에 해당하는 것을 보기에서 골라서 쓰시오.

- (HTTP)는 인터넷에서 요청과 응답에 의해 처리하는 프로토콜로 GET, POST, PUT 등의 방식을 사용한다.

- (Hypertext)는 문장이나 단어 등이 링크를 통해 서로 연결된 네트워크처럼 구성된 문서로 이미지 등을 누르면 다른 사이트로 옮겨갈 수 있도록 하이퍼링크(hyperlink)가 걸려있다.

- (HTML)은 운영체제에 상관없이 브라우저에서 실행되는 웹 문서를 표현하는 표준화된 마크업 언어로 웹 콘텐츠의 의미와 구조를 정의할 때 사용

728x90
반응형
LIST