포스트

모의고사 25회

Q. 금융과 기술의 합성어로 모바일, 소셜 네트워크, 빅데이터 등의 첨단 기술을 활용한 새로운 형태의 금융 기술을 무엇이라고 하는가?

핀테크(Fintech)

  • 금융과 기술의 합성어로 모바일, 소셜 네트워크, 빅데이터 등의 첨단 기술을 활용한 새로운 형태의 금융기술은 핀테크이다.

Q. 프로세스 관련 용어에 대한 설명이다. () 안에 들어갈 올바른 용어를 쓰시오.

TPS(Transaction Per Second), 반환시간(Turnaround Time)

( ① )은/는 초당 처리 건수를 의미하며, 초당 몇 개의 트랜잭션을 처리할 수 있는지 나타내는 서비스 성능 지표이다. 또한 ( ② )은/는 프로세스들이 입력되어 수행되고 결과를 산출하기까지 소요되는 시간이다.

  • 프로세스 관련 용어는 다음과 같다.

    용어설명
    TPS(Transaction Per Second)초당 몇 개의 트랜잭션을 처리할 수 있는지 나타내는 서비스 성능 지표
    반환시간(Turnaround Time)프로세스들이 입력되어 수행되고 결과를 산출하기까지 소요되는 시간

Q. ( ① )은/는 AS 상호 간 (Inter-AS 또는 Inter-Domain)에 경로 정보를 저장하기 위한 라우팅 프로토콜로 변경 발생 시 대상까지의 가장 짧은 경로를 ( ② ) 알고리즘을 통해 선정하고, TCP 연결(port 179)을 통해 자치 시스템(AS)으로 라우팅 정보를 신뢰성 있게 전달하는 특징이 있다. () 안에 들어갈 올바른 용어를 쓰시오.

BGP(Border Gateway Protocol), 경로 벡터(Path Vector)

  • BGP는 AS 상호 간(Inter-AS 또는 Inter-Domain)에 경로 정보를 교환하기 위한 라우팅 프로토콜로 변경 발생 시 대상까지의 가장 짧은 경로를 경로 벡터(Path Vector) 알고리즘을 통해 선정하고, TCP 연결(port 179)을 통해 자치 시스템(AS)으로 라우팅 정보를 신뢰성 있게 전달하는 특징이 있다.

Q. 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있고, 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 된 최초의 비밀키 교환 프로토콜이 된 최초의 공개키 알고리즘은 무엇인가?

디피-헬만(Diffie-Hellman)

  • 1976년 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있고, 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 된 최초의 비밀키 교환 프로토콜이 된 공개키 알고리즘은 디피-헬만(Diffie-Hellman)이다.

Q. [학생] 테이블에 ‘과목명’이라는 컬럼이 VARCHAR(20)이라는 데이터 타입이다. 해당 컬럼에 NOT NULL이라는 제약조건을 추가하는 쿼리를 작성하시오.

1
ALTER TABLE 학생 MODIFY 과목명 VARCHAR(20) NOT NULL;
1
ALTER TABLE 학생 ALTER 과목명 VARCHAR(20) NOT NULL;
  • ALTER TABLE은 테이블을 수정하는 명령이다.
  • ALTER TABLE에서 컬럼을 수정하기 위해서는 MODIFY라는 키워드를 쓰고 문법은 다음과 같다.

    1
    
      ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
    
  • 추가로 제약조건은 다음과 같다.
    • PRIMARY KEY
      • 테이블의 기본 키를 정의
      • 유일하게 테이블의 각 행을 식별
    • FOREIGN KEY
      • 외래 키를 정의
      • 참조 대상을 테이블(컬럼명)로 명시
      • 열과 참조된 테이블의 열 사이의 외래 키 관계를 적용하고 설정
    • UNIQUE
      • 테이블 내에서 얻은 유일한 값을 갖도록 하는 제약조건
    • NOT NULL
      • 해당 컬럼은 NULL 값을 포함하지 않도록 하는 제약조건
    • CHECK
      • 개발자가 정의하는 제약조건
      • 참(TRUE)이어야 하는 조건을 지정
    • DEFAULT
      • 데이터를 INSERT 할 때 해당 컬럼의 값을 넣지 않는 경우 기본값으로 설정해주는 제약조건

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

dgodgocta

1
2
3
4
a = 'dog'*4
b = 'cat'*2
c = a+b
print(c[::2])
  • a = ‘dog’*4에서 ‘dogdogdogdog’를 a에 대입한다.
  • b = ‘cat’*2에서 ‘catcat’을 b에 대입한다.
  • c = a+b에서 a와 b를 연결하고 c에 ‘dogdogdogdogcatcat’을 대입한다.
  • c[::2]는 처음부터 끝까지 2칸씩 이동하며 화면에 dgodgocta를 출력한다.

Q. UI 화면에서 이해관계자들과의 화면구성을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업을 무엇이라 하는가?

와이어프레임(Wireframe)

  • UI 화면 설계를 위한 산출물은 다음과 같다. [와스프]

    산출물설명
    와이어프레임(Wireframe)이해 관계자들과의 화면 구성을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업
    스토리보드(Storyboard)정책, 프로세스, 콘텐츠 구성, 와이어 프레임(UI, UX), 기능 정의, 데이터 베이스 연동 등 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물
    프로토타입(Prototype)정적인 화면으로 설계된 와이어 프레임 또는 스토리보드에 동적 효과를 적용하여 실제 구현된 것처럼 시뮬레이션 할 수 있는 모형

Q. 다음이 설명하는 보안공격 기법은 무엇인지 쓰시오.

DRDoS(Distributed Reflection DoS)

공격자는 출발지 IP를 공격 대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격 기법

  • DRDoS(Distributed Reflection DoS)는 DDoS에 비해 공격 근원지 파악이 어렵고, 공격 트래픽 생성 효율이 DDoS보다 훨씬 큰 공격이다.
  • DRDoS의 공격 절차는 다음과 같다.

    순서공격 절차설명
    1출발지 IP 변조공격자는 출발지 IP를 공격 대상자 IP로 Spoofing하여 SYN 패킷을 공격 경유지 서버로 전송
    2공격 대상자 서버로 응답SYN 패킷을 받은 경유지 서버는 Spoofing 된 IP(공격 대상자 서버)로 SYN/ACK을 전송
    3서비스 거부공격 대상자 서버는 수많은 SYN/ACK를 받게 되어 서비스 거부가 됨

    이미지


Q. 다음은 [학생] 테이블이다. 다음 쿼리를 수행한 후에 레코드의 개수를 구하시오.

5

[학생]

학번이름학년
200101블랙핑크1
200102마마무3
200103에이핑크2
200104아이들3
200105트와이스4
200106아이즈원3
200107오마이걸2
200108러블리즈3
200109ITZY2

[쿼리]

1
2
3
SELECT 학번 FROM 학생 WHERE 학년 >= '3'
UNION
SELECT 학번 FROM 학생 WHERE 학년 >= '4';
  • 집합 연산자는 테이블을 집합 개념으로 보고, 두 테이블 연산에 집합 연산자를 사용하는 방식이다.
  • 집합 연산자는 여러 질의 결과를 연결하여 하나로 결합하는 방식을 사용한다.(집합 연산자는 2개 이사으이 질의 결과를 하나의 결과로 만들어 준다.)
    • UNION
      • 중복 행이 제거된 쿼리 결과를 반환하는 집합 연산자(중복 레코드를 제외)
    • UNION ALL
      • 중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자(중복레코드도 허용)
    • INTERSECT
      • 두 쿼리 결과에 공통적으로 존재하는 결과를 반환하는 집합 연산자(중복 레코드만 포함)
    • MINUS
      • 첫 쿼리에 있고, 두 번째 쿼리에는 없는 결과를 반환하는 집합 연산자(비교 레코드 제외)

Q. 데이터를 데이터베이스에 저장할 때 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는 현상은 무엇인가?

이상 현상(Anomaly)

  • 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
  • 삽입, 삭제, 갱신 이상이 있다.
    • 삽입 이상(Insertion Anomaly): 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
    • 삭제 이상(Deletion Anomaly): 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
    • 갱신 이상(Update Anomaly): 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

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

24

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Soojebi {
	public static void main(String[] args) {
		int[] a = {1, 2, 3};
		int[][] b = new int[3][4];
		int sum=0;
		
		for(int i=0; i<3; i++) {
			for(int j=0; j<4; j++) {
				b[i][j] = a[i];
			}
		}
		
		for(int[] i: b) {
			for(int j : i) {
				sum += j;
			}
		}
		System.out.print(sum);
	}
}
  • 1차원 정수형 배열 a를 선언하고 1, 2, 3으로 초기화한다.
  • 2차원 정수형 배열 b는 3*4 크기로 선언한다.
  • 정수형 변수 sum은 0으로 초기화한다.
  • 2중 for문에서 2차원 정수형 배열 b에 a[i] 값을 대입한다.
  • 아래 2중 for 반복문에서는 foreach 구문 형태로 배열의 원소를 바깥쪽 for 문에서는 1차원 배열 단위로 반복을 하고 안쪽 for 문에서는 원소별로 반복한다. 반복하면서 sum += j가 실행되어 모든 원소의 합계를 구한다.

Q. 네트워크 공격 기법 중 IP 스푸핑(IP Spoofing)에 대하여 서술하시오.

IP 스푸핑은 타깃 시스템의 정보를 빼내기 위해 침입자가 자신의 패킷 헤더를 인증된 호스트의 IP 주소로 위조하여 타깃에 전송하는 공격 기법이다.

  • 네트워크 공격 기법은 다음과 같다.
    • IP 스푸핑(IP Spoofing)
      • 타깃 시스템의 정보를 빼내기 위해 침입자가 자신의 패킷 헤더를 인증된 호스트의 IP 주소로 위조하여 타깃을 전송하는 공격 기법
    • ARP 스푸핑(ARP Spoofing)
      • ARP 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법(MITM; Man In The Middle)
      • ARP 프로토콜의 허점을 이용하여 자신의 MAC(Media Access Control) 주소를 다른 컴퓨터의 MAC인 것처럼 속임
    • ICMP Redirect 공격
      • ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격 기법
    • 트로이 목마(Trojan Horses)
      • 악성 루틴이 숨어 있는 프로그램으로 겉보기엔 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램

Q. RSA(Rivest-Shamir-Adleman)의 개념에 대해서 서술하시오.

RSA는 1977년 3명의 MIT 수학 교수(Rivest, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘이다.

  • 비밀키의 복호화가 어려운 RSA의 안정성은 소인수분해 문제의 어려움에 근거를 두고 있다.
  • 비대칭 키 암호화 방식의 종류는 다음과 같다.
    • 디피-헬만(Diffie-Hellman)
      • 최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 잇음
      • Diffie-Hellman은 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 됨(최초의 비밀키 교환 프로토콜)
    • RSA(Rivest-Shamir-Adleman)
      • 1977년 3명의 MIT 수학 교수(Rivest, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘
      • 비밀키의 복호화가 어려운 RSA 안정성은 소인수분해 문제의 어려움에 근거를 두고 있음
    • ECC(Elliptic Curve Cryptography)
      • 1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 처음 제안
      • 타원 곡선 암호(ECC)는 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘
      • PKI 기반의 RSA의 문제점인 속도와 안정성을 해결하기 위해 타원 기반 구조체의 안정성과 효율성을 기반으로 생성되었고, RSA보다 키의 비트 수를 적게 하면서 동일한 성능을 제공하는 것이 가장 큰 특징
    • ElGamal
      • T.ElGamal이 1984년에 제안한 공개키 알고리즘
      • 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며, RSA와 유사하게 전자서명과 데이터 암∙복호화에 함께 사용 가능
  • 공개키 기반구조(PKI)
    • 인증기관에서 공개키 암호 방식의 전자 서명된 인증서를 발급받아 네트워크상에서 안전하게 비밀통신을 가능하도록 하는 기술

Q. 다음 [주문] 테이블에 대해 주문일자별 주문액수 합계를 구하시오. (AS라는 키워드를 사용하여 주문액수 합계 값에 해당하는 컬럼명을 주문액수합계라고 변경하시오.)

1
2
3
SELECT 주문일자, SUM(주문액수) AS 주문액수합계
FROM 주문
GROUP BY 주문일자;

[주문]

주문번호고객번호주문일자주문액수
20210001100001202101012000
20210002100001202101013000
20210003100002202101012500
20210004100003202101012800
20210005100004202101011500
20210006100001202101021900
20210007100003202101022100
20210008100004202101023100
20210009100001202101034000

[결과]

주문일자주문액수합계
2021010111800
202101027100
202101034000
  • 집계 함수는 NULL인 값은 제외하고 계산한다.
  • 집계 함수의 종류는 다음과 같다.

    집계 함수내용
    COUNT복수 행의 줄 수
    SUM복수 행의 해당 컬럼 간의 합계
    AVG복수 행의 해당 컬럼 간의 평균
    MAX복수 행의 해당 컬럼 중 최댓값
    MIN복수 행의 해당 컬럼 중 최솟값
    STDDEW복수 행의 해당 컬럼 간의 표준편차
    VARIANCE복수 행의 해당 컬럼 간의 분산

Q. DBMS에서 지원하는 기능이며, 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합으로 반환 값을 출력하지 않는 기능은 무엇인지 쓰시오.

프로시저(Procedure)

  • 프로시저의 주요 구성은 다음과 같다. [디비컨 SET]
    • 선언부(DECLARE)
      • 프로시저의 명칭, 변수와 인수 그리고 그에 대한 데이터 타입을 정의하는 부분
    • 시작/종료부(BEGIN/END)
      • 프로시저의 시작과 종료를 표현하며, BEGIN/END가 쌍을 이룸
      • 다수 실행을 제어하는 기본적 단위가 되며 논리적 프로세스를 구성
    • 제어부(CONTROL)
      • 기본적으로 순차적으로 처리
      • 조건문과 반복문을 이용하여 문장을 처리
    • SQL
      • DML을 주로 사용
      • 자주 사용되지 않지만, DDL 중 TRUNCATE 사용
    • 예외부(EXCEPTION)
      • BEGIN~END절에서 실행되는 SQL 문이 실행될 때 예외 발생 시 예외 처리 방법을 정의하는 처리부
    • 실행부(TRANSACTION)
      • 프로시저에서 수행된 DML 수행 내역의 DBMS 적용 또는 취소 여부를 결정하는 처리부

    이미지


Q. 정보 주체가 기관으로부터 자기 정보를 직접 내려 받아 이용하거나 제3자 제공을 허용하는 방식으로 정보 주체 중심의 데이터 활용체계이자 개인이 정보 관리의 주체가 되어 능동적으로 본인의 정보를 관리하고, 본인의 의지에 따라 신용 및 자산관리 등에 정보를 활용하는 일련의 과정을 무엇이라고 하는가?

마이 데이터(MyData)

  • 마이 데이터는 정보 주체가 기관으로부터 자기 정보를 직접 내려 받아 이용하거나 제3자 제공을 허용하는 방식으로 정보 주체 중심의 데이터 활용체계이자 개인이 정보 관리의 주체가 되어 능동적으로 본인의 정보를 관리하고, 본인의 의지에 따라 신용 및 자산관리 등에 정보를 활용하는 일련의 과정이다.

Q. 다음은 리눅스/유닉스 시스템에서 로그 파일에 대한 설명이다. () 안에 들어갈 정확한 로그 파일명을 쓰시오.

utmp, lastlog

  • ( ① ): 현재 시스템에 로그인한 사용자 정보가 들어 있는 로그 파일로 who, w, users 명령으로 확인할 수있음
  • ( ② ): 사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보를 확인할 수 있는 로그 파일
  • 로그 파일이 utmp와 lastlog는 다음과 같다.

    로그 파일설명
    utmp현재 시스템에 로그인한 사용자 정보가 들어있는 로그 파일로 who, w, users 명령으로 확인할 수 있음
    lastlog사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보를 확인할 수 있는 로그 파일

Q. 다음은 객체지향 설계 원칙에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

개방 폐쇄 원칙(Open Close Principle), 리스코프 치환의 원칙(Liskov Substitution Principle)

( ① )은/는 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 열려있고, 변경에는 닫혀있어야 한다는 원칙이고, ( ② )은/는 자식 클래스(서브 타입)는 언제나 자신의 부모 클래스(기반 타입)를 대체한다는 원칙이다.

  • 객체지향 설계 원칙은 다음과 같다.
    • 단일 책임의 원칙(Single Responsibility Principle)
      • 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙
      • 객체지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙
    • 개방 폐쇄 원칙(Open Close Principle)
      • 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀 있어야 한다는 원칙
    • 리스코프 치환의 원칙(Liskov Substitution Principle)
      • 서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 원칙
    • 인터페이스 분리의 원칙(Interface Segregation Principle)
      • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙
      • 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다는 원칙
    • 의존성 역전의 원칙(Dependency Inversion Principle)
      • 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙

Q. 다음 설명에서 () 안에 알맞은 용어를 쓰시오.

이행함수 종속 관계, 3정규형(3NF)

  • <책번호>가 <출판사>에 영향을 주고, <출판사>가 <홈페이지>에 영향을 주는 관계인 A→B이고, B→C이면서 A→C 관계가 같이 있는 경우를 ( ① )(이)라고 한다.
  • <책번호, 출판사, 홈페이지>를 한 테이블에 두는 것은 ( ① )(으)로 인해 ( ② )을/를 만족하지 못한다.
  • <책번호>는 <홈페이지>에 직접 영향을 주는 관계가 아니기 때문에(A→C 관계), <책번호, 출판사> 테이블, <출판사, 홈페이지> 테이블로 분리하여 ( ① )을/를 제거하여 ( ② )을/를 만족한다.
  • 데이터베이스 정규화 단계는 다음과 같다.

    단계조건
    1정규형(1NF)원잣값으로 구성
    2정규형(2NF)부분 함수 종속 제거(완전 함수적 종속 관계)
    3정규형(3NF)이행함수 종속 제거
    보이스-코드 정규형(BCNF)결정자 후보 키가 아닌 함수 종속 제거
    4정규형(4NF)다치(다중 값) 종속 제거
    5정규형(5NF)조인 종속 제거

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

A

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
void main() {
	int a = 100;
	char c = 'z';
	
	switch(a/10) {
	case 10: 
	case 9: c = 'A'; break;
	case 8: c = 'B'; break;
	default: c = 'F';
	}
	
	printf("%c\n", c);
}
  • 정수형 변수 a는 선언과 동시에 100으로 초기화한다.
  • 문자형 변수 c는 선언과 동시에 ‘Z’로 초기화한다.
  • switch 문에서 a 값 100을 10으로 나눈 값인 10이므로 case 10이 수행된다. break 문이 없으므로 case 9의 c=’A’; 가 수행된다. break 문을 만나서 switch 문을 종료한다.
  • printf 함수에서 c값 ‘A’를 화면에 출력한다.


참고 자료


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.