포스트

모의고사 28회

Q. 다음이 설명하는 용어는 무엇인가?

다치 종속성

  • 릴레이션 내의 두 애트리뷰트 집합 사이 성립하는 제약조건 중의 하나이다.
  • 함수 종속과 달리 어떠한 조건을 만족하는 튜플이 릴레이션 안에 있을 것을 요구하므로, 튜플이 만들어내는 “종속” 중의 한 종류로 분류할 수 있다.
  • 릴레이션 내의 두 애트리뷰트 집합 사이 성립하는 제약조건 중의 하나로 함수 종속과 달리 어떠한 조건을 만족하는 튜플이 릴레이션 안에 있을 것을 요구하는 것은 다치 종속성이다.

Q. 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼으로 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고, 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크를 무엇이라고 하는가?

하둡(Hadoop)

  • Hadoop 관련 용어는 다음과 같다.
    • 하둡(Hadoop)
      • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼으로 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고, 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크
    • 하둡 분산 파일 시스템(HDFS)
      • Hadoop Distributed File System의 약자
      • 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템
    • 맵리듀스(Map Reduce)
      • 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크
      • 모든 데이터를 키-값(Key-Value) 쌍으로 구성, 데이터를 분류

Q. IPv4에서 IPv6로 전환 기술에는 세 가지가 있다. 먼저 ( ① ) 기술은 IP 계층에 두 가지(IPv4, IPv6)의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법이고, ( ② ) 기술은 IPv6 망에서 인접한 IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법이다. 마지막으로 ( ③ ) 기술은 IPv4 망과 IPv6 망 사이에 변환기(IPv4-IPv6 게이트웨이)를 사용하여 서로 다른 네트워크상의 패킷을 변환시키는 방법이다. () 안에 들어갈 용어를 쓰시오.

듀얼 스택(Dual Stack), 터널링(Tunneling), 주소 변환(Address Translation)

  • IPv4에서 IPv6로 전환 기술은 다음과 같다.

    전환 기술설명
    듀얼 스택(Dual Stack)IP 계층에 두 가지(IPv4, IPv6)의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법
    터널링(Tunneling)IPv6 망에서 인접한 IPv4 망을 거쳐 다른 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법
    주소 변환(Address Translation)IPv4 망과 IPv6 망 사이의 주소변환기(IPv4-IPv6 게이트웨이)를 사용하여 서로 다른 네트워크 상의 패킷을 변환시키는 방법

Q. 다음은 클라우드 보안 관련 사항이다. () 안에 들어갈 용어를 쓰시오.

서비스형 보안(SECaaS; Security as a Service), 중개 서비스(CASB; Cloud Access Security Broker)

( ① )은/는 기업의 비용과 시간, 인력에 대한 리소스 투자를 최소화하기 위해 클라우드 인프라를 통해 전문화된 보안 기능을 클라우드 형태로 제공하는 서비스이고, ( ② )은/는 클라우드 서비스 이용 시 접근통제, 암호화, 로깅 등 사용자와 클라우드 사이에서 보안 기능을 수행하는 중개시스템(Broker)이다.

  • SECaaS와 CASB에 대한 설명은 다음과 같다.

    기술설명
    SEEaaS기업의 비용과 시간, 인력에 대한 리소스 투자를 최소화하기 위해 클라우드 인프라를 통해 전문화된 보안 기능을 클라우드 형태로 제공하는 서비스
    CASB클라우드 서비스 이용 시 접근통제, 암호화, 로깅 등 사용자와 클라우드 사이에서 보안 기능을 수행하는 중개시스템(Broker)

Q. 다음은 [급여] 테이블이다. 다음 쿼리를 실행 결과 튜플 수는 얼마인지 쓰시오.

3

[급여]

사번이름연봉
202101유재석2500
202102박명수8200
202103하동훈5500
202104김종국9800

[쿼리]

1
2
3
SELECT * FROM 급여 WHERE 연봉 >= 5500
UNION 
SELECT * FROM 급여 WHERE 연봉 >= 7000;
  • SELECT * FROM 급여 WHERE 연봉 >= 5500의 쿼리 결과로 박명수, 하동훈, 김종국 총 3개의 튜플을 반환한다.
  • SELECT * FROM 급여 WHERE 연봉 >= 7000의 쿼리 결과로 박명수, 김종국 총 2개의 튜플을 반환한다.
  • UNION ALL의 경우 총 5개의 튜플을 반환하나, UNION은 중복된 튜플을 제거하고 3개의 튜플을 반환한다.

Q. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

27

1
2
3
4
5
#include <stdio.h>
void main() {
	int a[5] = {2, 4, 1, 3, 0};
	printf("%d%d", a[a[4]], a[3]+a[1]);
}
  • 배열 a는 사이즈가 5이고 2, 4, 1, 3, 0으로 초기화한다.
  • a[a[4]]는 a[4]인 0 값으로 대체되어 a[0]인 2가 화면에 출력된다.
  • a[3]+a[1]는 a[3]의 3과 a[1]의 4를 합한 값인 7이 화면에 출력된다.

Q. 테스트 레벨 중 인수 테스트에 관해 서술하시오.

인수 테스트는 계약상의 요구사항이 만족하였는지 확인하기 위한 테스트 단계이다.

  • 테스트 레벨의 종류 및 개념은 다음과 같다. [단통시인]

    종류설명
    단위 테스트사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
    통합 테스트단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계
    시스템 테스트통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계
    인수 테스트계약상의 요구사항을 만족했는지 확인하기 위한 테스트 단계

    이미지


Q. 다음은 화이트박스 테스트 유형에 대한 설명이다. 다음 빈칸에 들어갈 알맞은 기호를 보기에서 고르시오.

ㄷ, ㄴ

  • ( ① )는 전체 조건식뿐만 아니라 개별 조건식도 참 한번, 거짓 한 번 결과가 되도록 수행하는 테스트 커버리지이다.
  • ( ② )는 수행 가능한 모든 경로를 테스트하는 기법이다.

[보기]

ㄱ. 구문 커버리지 테스트

ㄴ. 기본 경로 커버리지 테스트

ㄷ. 조건/결정 커버리지 테스트

ㄹ. 다중 조건 컵머리지 테스트

ㅁ. 조건 커버리지 테스트

  • 화이트박스 테스트 유형은 다음과 같다.
    • 구문 커버리지 = 문장 커버리지(Statement Coverage)
      • 구문 커버리지는 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지
      • 조건문 결과와 관계없이 구문 실행 개수로 계산
    • 결정 커버리지 = 선택 커버리지(Decision Coverage) = 분기 커버리지(Branch Coverage)
      • 결정 커버리지는 (각 분기의) 결정 포인트 내의 전체 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과를 수행하는 테스트 커버리지
      • 구문 커버리지를 포함
    • 조건 커버리지(Condition Coverage)
      • 조건 커버리지는 (각 분기의) 결정 포인트 내의 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 커버리지
      • 구문 커버리지를 포함
    • 조건/결정 커버리지(Condition/Decision Coverage)
      • 조건/결정 커버리지는 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 테스트 커버리지
    • 변경 조건/결정 커버리지(Modified Condition/Decision Coverage)
      • 변경 조건/결정 커버리지는 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
    • 다중 조건 커버리지(Multiple Condition Coverage)
      • 다중 조건 커버리지는 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
    • 기본 경로 커버리지 = 경로 커버리지(Base Path Coverage)
      • 기본 경로 커버리지는 수행 가능한 모든 경로를 테스트하는 기법
    • 제어 흐름 테스트(Control Flow Testing)
      • 제어 흐름 테스트는 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트하는 기법
    • 데이터 흐름 테스트(Data Flow Testing)
      • 데이터 흐름 테스트는 제어 흐름 그래프에 데이터 사용현황을 추가한 그래프를 통해 테스트하는 기법
    • 루프 테스트(Loop Testing)
      • 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 기법

Q. 하나의 트랜잭션을 실행하는 동안 특정 데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제(Mutual Exclusion) 기능을 제공하는 기법은 무엇인가?

Locking

  • 하나의 트랜잭션을 실행하는 동안 특정 데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제(Mutual Exclusion) 기능을 제공하는 기법이다.
  • 로킹의 특징은 다음과 같다.
    • 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음
    • 로킹 단위가 작아지면 데이터베이스 공유도가 증가
    • 로킹 단위가 작아지면 로킹 오버헤드 증가
    • 한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 함

Q. 다음 [점수] 테이블에 대해 쿼리를 수행한 결과 [결과] 테이블과 같이 출력되었다. 결과 테이블의 ①, ②, ③을 채우시오.

NULL, NULL, NULL

[점수]

이름DB프로그래밍
지기쌤NULLNULL
두음쌤NULL0
보안쌤NULL10

[쿼리]

1
2
SELECT 이름, (DB+프로그래밍) AS 합계점수
FROM 점수; 

[결과]

이름합계점수
지기쌤
두음쌤
보안쌤
  • NULL은 어떤 값과 연산하여도 NULL이다.
  • DB와 프로그래밍 값을 더한 값이 결과 테이블로 나오게 되는데, NULL+NULL은 NULL이 되고, NULL+0 또한 NULL이 포함되어 있으므로 NULL이다. NULL+10 또한 NULL이 포함되어 있으므로 NULL이다.

Q. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

KKoorreeaaCCaannaaddaaUUSSAA

1
2
3
4
country = ['Korea', 'Canada', 'USA']
for i in country:
	for j in i:
		print(j*2, end='')
  • 리스트 country에 [’Korea’, ‘Canada’, ‘USA’]로 초기화한다.
  • 바깥쪽 for 반복문에서 country의 첫 번째 요소인 ‘Korea’를 i에 대입한다.
  • 안쪽 for 반복문에서 ‘Korea’의 첫 글자인 ‘K’를 j에 대입한다.
  • print(j*2, end=’’)에서 j인 ‘K’를 개행 없이 두 번 출력하고 다음 반복을 한다.
  • 안쪽 for 반복문에서 ‘K’ 다음 글자인 ‘o’를 j에 대입한다.
  • print(j*2, end=’’)에서 j인 ‘o’를 개행 없이 두 번 출력하고 다음 반복을 한다.
  • 반복을 계속하며 ‘Korea’의 마지막 문자인 ‘a’를 개행 없이 두 번 출력하여 KKoorreeaa를 출력하게 된다. end=’’는 개행(줄바꿈)을 하지 않음을 의미한다.
  • 안쪽의 for 반복문이 종료되고 바깥쪽 for 반복문에서 다음 반복을 한다.
  • 두 번째 원소인 ‘Canada’도 반복하며 CCaannaaddaa를 출력한다.
  • 마지막 원소인 ‘USA’도 UUSSAA를 출력한다.

Q. 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 소프트웨어 아키텍처 패턴은 무엇인가?

MVC 패턴(Model View Controller Pattern)

  • 소프트웨어 아키텍처 패턴의 유형은 다음과 같다.
    • 브로커 패턴(Broker Pattern)
      • 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴
    • 계층화 패턴(Layered Pattern)
      • 계층화 패턴은 시스템을 계층(Layer)으로 구분하여 구성하는 패턴
      • 각 하위 모듈들은 특정한 수준의 추상화를 제공하고, 각 계층은 다음 상위 계층에 서비스를 제공
    • 클라이언트-서버 패턴(Client-Server Pattern)
      • 하나의 서버와 다수의 클라이언트로 구성된 패턴
    • 파이프-필터 패턴(Pipe-Filter Pattern)
      • 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
    • MVC 패턴(Model View Controller Pattern)
      • 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴

Q. 관계 대수(Relation Algebra)에 관해 서술하시오.

관계 대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다.

  • 관계 대수 연산자의 종류로는 일반 집합 연산자와 순수관계 연산자가 있다.

    이미지


Q. [급여] 테이블 명세는 다음과 같다. 다음 물음에 맞는 쿼리를 작성하시오.

1
2
-- DROP TABLE 급여;
TRUNCATE TABLE 급여;
1
2
-- DELETE TABLE 급여 xxxxxx DML만 지정
DELETE FROM 급여;

[급여]

속성명데이터타입
사번INTEGER
직책VARCHAR(20)
연봉INTEGER

(1) [급여] 테이블의 모든 데이터를 삭제하는 쿼리를 DDL로 작성하시오.

(2) [급여] 테이블의 모든 데이터를 삭제하는 쿼리를 DML로 작성하시오.

  • TRUNCATE TABLE은 테이블 내의 데이터들을 삭제하는 명령이다.
  • TRUNCATE TABLE 문법은 다음과 같다.

    1
    
      TRUNCATE TABLE 테이블명;
    
  • DELETE는 데이터 내용을 삭제할 때 사용하는 명령이다.
  • DELETE 명령어 문법은 다음과 같다.

    1
    2
    
      DELETE FROM 테이블명
      WHERE 조건;
    
    • 모든 레코드를 삭제할 때는 WHERE절 없이 DELETE만 사용
    • 레코드를 삭제해도 테이블 구조는 남아 있어서 디스크에서 테이블을 완전히 삭제하는 DROP 명령과는 다름

Q. REST(Representational State Transfer)란 무엇인지 설명하시오.

REST는 웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처이다.

  • REST의 HTTP 메서드 중 CRUD에 해당하는 4가지 메서드를 사용한다.

    메서드의미
    POSTCreate(생성)
    GETRead(조회)
    PUTUpdate(수정)
    DELETEDelete(삭제)

Q. 다음은 죽음의 핑(PoD; Ping of Death) 기법에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

ICMP 패킷(Ping) 또는 ICMP

죽음의 핑 공격은 ()을/를 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리(재조합)하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격 기법이다.

  • 죽음의 핑 공격에서는 ICMP 패킷을 이용하여 공격한다.
  • 죽음의 핑 공격은 ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리(재조합)하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격 기법이다.

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

SHA-256, SEED

  • ( ① ) 암호화 알고리즘은 안전한 해시 알고리즘의 한 종류로서 256비트의 해시값을 생성하고, 출력 속도가 빠르다는 장점을 갖고 있고, 단방향성의 성질을 띠고 있는 암호화 방법으로 복호화가 불가능하다.
  • ( ② ) 암호화 알고리즘은 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘으로 128비트 비밀키로부터 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문 블록을 128비트 암호문 블록으로 암호화하여 출력하는 방식이다.

  • 암호화 알고리즘 SHA-256과 SEED에 대한 특징은 다음과 같다.

    알고리즘설명
    SHA(Secure Hash Algorithm)-256안전한 해시 알고리즘의 한 종류로서 256bit의 해시값을 생성하고, 출력 속도가 빠르다는 장점을 갖고 있고, 단방향성의 성질을 띠고 있는 암호화 방법으로 복호화가 불가능하다.
    SEED1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘으로 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문 블록을 128비트 암호문 블록으로 암호화하여 출력하는 방식

Q. 빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법을 무엇이라 하는가?

데이터 마이닝(Data Mining)

  • 빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법은 데이터 마이닝이다.

Q. 기존 무선 랜의 한계 극복을 위해 등장하였으며, 대규모 디바이스의 네트워크 생성에 최적화되어서 차세대 이동통신, 홈 네트워킹, 공공 안전 등의 특수목적을 위해 사용되는 새로운 방식의 네트워크 기술은 무엇인가?

메시 네트워크(Mesh Network)

  • 기존 무선 랜의 한계 극복을 위해 등장하였으며, 대규모 디바이스의 네트워크 생성에 최적화되어서 차세대 이동통신, 홈 네트워킹, 공공 안전 등의 특수목적을 위해 사용되는 새로운 방식의 네트워크 기술은 메시 네트워크이다.

Q. 다음은 자바 코드이다. 출력 결과를 쓰시오.

helloChild

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Parent {
	void print() {
		System.out.print("Parent");
	}
}
class Child extends Parent {
	Child() {}
	Child(String msg) {
		System.out.print(msg);
	}
	void print() {
		new Child("hello");
		System.out.print("Child");	
	}
}
public class Soojebi {
	public static void main(String[] args){
		Parent pa = new Child();
		pa.print();
	}
}
  • Parent 클래스를 Child 클래스는 extends 키워드를 이용하여 상속한다. 객체 생성 시 자식 클래스인 Child 클래스의 생성자 Child()를 이용하여 객체를 생성한다. pa.print()에서 자식 클래스의 print()가 호출된다.
  • print 메서드에서 new Child(”hello”)가 실행하면 우선 부모 클래스의 생성자가 실행되고 자식 클래스에서 매개변수가 없는 Child() 생성자가 먼저 실행되고, 매개변수가 있는 Child(String msg) 생성자가 실행된다. 파라미터로 넘겨받은 “hello”를 화면에 출력한다. 그리고 System.out.print(”Child”);에 의해 Child가 출력되어 helloChild가 출력된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.