포스트

모의고사 26회

Q. ( ① )은/는 정보 위주의 분석 처리를 의미하며, 다양한 비지니스 관점에서 쉽고 빠르게 다차원적인 데이터에 접근하여 의사결정에 활용할 수 있는 정보를 얻을 수 있게 해주는 기술이고, ( ② )은/는 호스트 컴퓨터가 데이터베이스를 액세스하고, 바로 처리 결과를 돌려보내는 기술이다. () 안에 들어갈 용어를 쓰시오.

OLAP(On-Line Analytical Processing), OLTP(Online transaction Processing)

  • OLAP와 OLTP에 대한 개념은 다음과 같다.

    용어설명
    OLAP(On-Line Analytical Processing)정보 위주의 분석 처리를 의미하며, 다양한 비지니스 관점에서 쉽고 빠르게 다차원적인 데이터에 접근하여 의사결정에 활용할 수 있는 정보를 얻을 수 있게 해주는 기술
    OLTP(Online Transaction Processing)호스트 컴퓨터가 데이터베이스를 빠르게 액세스하고, 바로 처리 결과를 돌려보내는 기술

Q. ( ① )은/는 ID와 패스워드를 종합적으로 관리해주는 역할 기반의 사용자 계정 관리 솔루션으로 ID 도용이나 분실로 인한 보안 사고에 대비하여 보안 관리자에게는 사용자 역할에 따른 계정 관리를, 사용자에게는 자신의 패스워드에 대한 자체 관리기능을 제공한다. 또한 ( ② )은/는 기업이 직면하는 주요 경영 위험들을 전사적인 차원에서 통합 관리하는 전사적 위험관리를 말한다. () 안에 들어갈 용어를 쓰시오.

IAM(Identity & Access Management), ERM(Enterprise Risk Management)

  • IAM과 ERM 용어의 개념은 다음과 같다.

    용어설명
    IAM(Identity & Access Management)ID와 패스워드를 종합적으로 관리해 주는 역할 기반의 사용자 계정 관리 솔루션으로 ID 도용이나 분실로 인한 보안 사고에 대비하여 보안 관리자에게는 사용자 역할에 따른 계정 관리를, 사용자에게는 자신의 패스워드에 대한 자체 관리기능을 제공
    ERM(Enterprise Risk Management)기업이 직면하는 주요 경영 위험들을 전사적인 차원에서 통합 관리하는 전사적 위험 관리

Q. 순수관계 연산자 중에서 공통 속성을 이용해 R과 S의 튜플을 연결해서 만들어진 튜플을 반환하는 연산자 기호를 쓰시오.

  • 순수 관계 연산자 기호는 다음과 같다.

    이미지

  • SELECT 이름 FROM 학생 WHERE 학과=’교육’;

    이미지

    • () 테이블, σ 조건, π 속성(필드)을 가져옴

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

1
2
3
4
SELECT 고객번호, SUM(주문액수) AS 주문액수합계
FROM 주문
WHERE 주문일자 **<**= 20210102
GROUP BY 고객번호;

[주문]

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

[결과]

고객번호주문액수합계
1000016900
1000022500
1000034900
1000044600

Q. 수신 측에서 설정한 윈도우의 크기만큼 송신 측에서 확인 응답(ACK) 없이 전송할 수 있게 하여 흐름을 동적으로 제어하는 기술로 수신 측에서 제대로 수신한 바이트에 대한 확인 응답을 전송할 때마다 버퍼의 범위가 한꺼번에 이동시켜서 TCP 흐름을 제어하는 기법은 무엇인가?

슬라이딩 윈도우(Sliding Window)

  • 슬라이딩 윈도우 기법은 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK) 없이 전송할 수 있게 하여 흐름을 동적으로 제어하는 기술로 수신 측에서 제대로 수신한 바이트에 대한 확인 응답을 전송할 때마다 버퍼의 범위가 한꺼번에 이동시켜서 TCP 흐름을 제어하는 기법이다.

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

6

1
2
3
a = [2, 4, 6]
a.insert(0, 3)
a.pop()
  • 리스트 a에 2, 4, 6으로 초기값을 대입한다.
  • a.insert(0, 3)에서 a[0]번째에 3을 넣는다.
  • a.insert(0, 3) 실행 후 리스트는 다음과 같다.

    a[0]a[1]a[2]a[3]
    3246
  • a.pop()을 호출하면 리스트의 가장 뒤에 있는 요소인 6이 pop 되며 리스트는 다음과 같다.

    a[0]a[1]a[2]
    324
  • 리스트는 다음과 같은 함수를 사용할 수 있다.

    이미지


Q. 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 기능 테스트이며, 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 이뤄지는 테스트는 무엇인가?

블랙박스 테스트(Black-Box Test) 또는 명세 기반 테스트

  • 블랙박스 테스트의 유형은 다음과 같다.
    • 동등분할 테스트 = 동치분할 테스트, 균등 분할 테스트, 동치 클래스 분해 테스트(Equivalence Partitioning Testing)
      • 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법
    • 경곗값 분석 테스트 = 한곗값 테스트(Boundary Value Analysis Testing)
      • 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법
      • 최솟값 바로 위, 최대치 바로 아래 등 입력값의 극한 한계를 테스트하는 기법
    • 원인-결과 그래프 테스트(Cause-Effect Graphing Testing)
      • 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법
    • 비교 테스트(Comparison Testing)
      • 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해 보는 테스트 기법
    • 오류 추정 테스트(Error Guessing Testing)
      • 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법
      • 특정 테스트 대상이 주어지면 테스터의 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수들을 나열하고, 해당 실수에 따른 결함을 노출하는 테스트로 다른 블랙박스 테스트 기법을 보완할 때 사용하는 기법
    • 결정 테이블 테스트(Decision Table Testing)
      • 요구사항의 논리와 발생조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법
    • 분류 트리 테스트(Classification Tree Method Testing)
      • SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법
    • 페어와이즈 테스트(Pairwise Testing)
      • 테스트 데이터값 간에 최소한 한 번씩은 조합하는 방식이며, 이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 기법
    • 상태 전이 테스트(State Transition Testing)
      • 테스트 대상∙시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법
    • 유스케이스 테스트(Use Case Testing)
      • 시스템이 실제 사용되는 유스케이스로 모델링 되어있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법

Q. 테이블의 튜플들을 고유하게 식별하는 컬럼으로 주민번호, 학번과 같이 중복되지 않는 값을 가지는 키는 무엇인지 쓰시오.

기본키(Primary Key)

  • 키의 종류는 다음과 같다.
    • 기본 키(Primary Key)
      • 테이블의 각 튜플을 고유하게 식별하는 컬럼
    • 대체 키(Alternate Key)
      • 후보 키 중에서 기본 키로 선택되지 않은 키
    • 후보 키(Candidate Key)
      • 테이블에서 각 튜플을 구별하는데 기준이 되는 컬럼
      • 기본 키와 대체 키를 합친 키(기본 키 ⊆ 후보 키, 대체 키 ⊆ 후보 키)
    • 슈퍼 키(Super Key)
      • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
    • 외래 키(Foreign Key)
      • 테이블 간의 참조 데이터 무결성을 위한 제약 조건
      • 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키

Q. 소프트웨어 테스트의 원리 중 결함 집중에 관해서 서술하시오.

결함 집중 원리는 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다는 소프트웨어 테스트 원리이다.

  • 소프트웨어 테스트의 원리는 다음과 같다.
    • 결함 존재 증명
      • 테스트는 결함이 존재함을 밝히는 행동
      • 결함이 없다는 것을 증명활 수 없음
    • 완벽 테스팅은 불가능
      • 무한 경로(한 프로그램 내의 내부 조건은 무수히 많을 수 있음)
      • 무한 입력 값(입력이 가질 수 있는 모든 값의 조합이 무수히 많음)으로 인한 완벽한 테스트가 어렵다는 원리
    • 초기 집중
      • 개발 초기에 체계적인 분석 및 설계가 수행되면 테스팅 기간 단축, 재작업을 줄여 개발 기간을 단축 및 결함을 예방할 수 있는 원리
      • SW 개발 초기 체계적인 분석 및 설계가 수행되지 못하면 그 결과가 프로젝트 후반에 영향을 미치게 되어 비용이 커진다는 요르돈 법칙 적용(Snowball Effect; 눈덩이 법칙)
    • 결함 집중
      • 적은 수의 모듈(20% 모듈)에서 대다수 결함(80% 결함)이 발견된다는 원리
      • 파레토 법칙(Pareto Principle)의 내용인 80대 20 법칙 적용
    • 살충제 패러독스
      • 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 원리
    • 정황 의존성
      • 소프트웨어의 성격에 맞게 테스트를 수행해야 한다는 원리
    • 오류-부재의 궤변
      • 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없다는 원리

Q. 다음은 [성적] 테이블에서 [쿼리]를 실행한 후 빈칸에 결괏값을 쓰시오. (튜플의 개수가 4개일 경우 위에서 3줄만 채우고 나머지 칸은 비우시오.)

1

[성적]

이름국어영어
치와와NULLNULL
말티즈NULL0
리트리버0NULL
요크셔테리어00

[쿼리]

1
SELECT COUNT(국어+영어) FROM 성적;

[결과]

COUNT(국어+영어)
 
  • SELECT 국어+영어 FROM 정처기; 쿼리를 동작시키면 같은 레코드의 국어와 영어 값을 더한다. (NULL은 연산할 경우 결괏값은 NULL이다.)

    국어+영어
    NULL
    NULL
    NULL
    0
  • COUNT 함수를 사용하면 NULL 값을 제외한 튜플들의 숫자를 반환하므로 1이 된다.

    COUNT(국어+영어)
    1

Q. 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격은 무엇인가?

키 로거 공격(Key Logger Attack)

  • 주요 시스템 보안 공격 기법은 다음과 같다.
    • 포맷 스트링 공격(Format String Attack)
      • 포맷 스트링을 인자로 하는 함수의 취약점을 이요한 공격으로 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법
    • 레이스 컨디션 공격(Race Condition Attack)
      • 레이스 컨디션은 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정상적인(원하지 않는) 결과가 발생하는 조건/상황
      • 레이스 컨디션 공격은 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격 기법
    • 키 로거 공격(Key Logger Attack)
      • 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
      • 키보드 활동을 기록하는 것을 키 로깅 또는 키 스토로크 로깅이라 함
    • 루트킷(Rootkit)
      • 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부사용 흔적 삭제, 관리자 권환 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음

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

BCDE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void main() {
	int a = 3; b = 4;
	int ret = 0;
	
	ret = a>b? a: b;
	
	switch(ret) {
		case 0: printf("A");
		case 4: printf("B");
		case 3: printf("C");
		case 7: printf("D");
		default: printf("E");
	}
}
  • 정수형 변수 a는 3, b는 4로 선언과 동시에 초기화한다.
  • 정수형 변수 ret는 0으로 초기화한다.
  • a와 b를 비교하여 a가 b보다 크면 a 값을 ret에 대입하고 b가 크면 b 값을 ret에 대입한다.
  • switch 조건문에서 ret가 4이므로 case 4의 printf(”B”);를 실행하여 “B”를 화면에 출력한다. break 문이 없으므로 case 3, case 7, default의 printf 문이 수행되어 “C”, D“, “E”가 출력된다.

Q. 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화하는 정형 기술 검토 기법은 무엇인가?

워크 스루(Walk Through)

  • 정형 기술 검토 기법은 다음과 같다.
    • 동료 검토(Peer Review)
      • 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행
      • 2~3명이 진행하는 리뷰의 형태
    • 워크 스루(Walk Through)
      • 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화
      • 오류를 조기에 검출하는 데 목적
    • 인스펙션(Inspection)
      • 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법

Q. 해시 암호화 알고리즘에 대해 서술하시오.

해시 암호화 알고리즘은 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 알고리즘이다.

  • 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 지닌 알고리즘이다.
  • 해시 암호화 알고리즘이 적용된 정보는 복호화가 불가능하다.

이미지


Q. 다음은 [학생]과 [과목점수] 테이블이다. [학생]과 [과목점수] 테이블을 완전 조인하여 [결과] 테이블처럼 나오도록 쿼리를 작성하시오.

1
2
3
4
SELECT **A.학번 AS 학번, A.학생명 AS 학생명, B.학번 AS 학번, B.과목명 AS 과목명 B.점수 AS 점수**
FROM 학생 A
FULL [OUTER] JOIN 과목점수 B
ON A.학번 = B.학번;

[학생]

학번학생명
1임꺽정
2장길산
3홍길동

[과목점수]

학번과목명점수
1수학100
1영어50
2과학70
2수학80
4국어20

[결과]

학번학생명학번과목명점수
1임꺽정1수학100
1임꺽정1영어50
2장길산2과학70
2장길산2수학80
3홍길동NULLNULLNULL
NULLNULL4국어20
  • 외부 조인의 종류로는 왼쪽 외부 조인, 오른쪽 외부 조인, 완전 외부 조인이 있다.

    왼쪽 외부 조인(Left Outer Join)왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출
    오른쪽 외부 조인(Right Outer Join)오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출
    완전 외부 조인(Full Outer Join)양쪽의 모든 데이터를 추출
  • 왼쪽 테이블인 [학생] 테이블의 ‘학번’에 해당하는 값이 오른쪽 테이블인 [과목점수] 테이블에 있을 경우 값을 조인하고, 그렇지 않으면 NULL 값으로 되어 있다.
  • 오른쪽 테이블인 [과목점수] 테이블의 ‘학번’에 해당하는 값이 왼쪽 테이블인 [학생] 테이블에 있을 경우 값을 조인하고, 그렇지 않으면 NULL 값으로 되어 잇다.
  • 양쪽의 모든 데이터를 추출하고 있으므로 완전 외부 조인(Full Outer Join)이다.

Q. 소프트웨어 재사용 방법 중 ( ① ) 방법은 전자칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로 블록 구성 방법이라고 한다. 또한 ( ② ) 방법은 추상화 형태로 쓰인 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고 한다. () 안에 들어갈 용어를 쓰시오.

합성 중심(Composition-Based), 생성 중심(Generation-Based)

  • 소프트웨어 재사용 방법의 유형은 다음과 같다.

    구분설명
    합성 중심(Composition-Based)전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 끼워 맞추어 소프트웨어를 완성시키는 방법
    생성 중심(Generation-Based)추상화 형태로 쓰인 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법

Q. 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격 기법을 무엇이라고 하는가?

공급망 공격(Supply Chain Attack)

  • 공급망 공격은 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해서 사용자 PC에 소프트웨어 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격 기법이다.

Q. 내∙외부 송∙수신 시스템 연계 시스템 기술 중 다음이 설명하는 연계 기술은 무엇인가?

DB 연결(DB Connection) 기술

수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB 커넥션 풀(DB Connection Pool)을 생성하고 연계 프로그램에서 해당 DB 커넥션 풀 명을 이용하는 방식

  • 내∙외부 송∙수신 시스템 연계 시스템 기술 중 직접 연계 기술은 다음과 같다.
    • DB 링크(DB Link)
      • 데이터베이스에서 제공하는 DB 링크 객체를 이용
      • 수신 시스템에서 DB 링크를 생성하고 송신 시스템에서 해당 DB 링크를 직접 참조하는 방식
      • 예: 테이블명@DBLink명
    • DB 연결(DB Connection)
      • 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB 커넥션 풀(DB Connection Pool)을 생성하고 연계 프로그램에서 해당 DB 커넥션 풀 명을 이용하여 연결
      • 예: 송신 시스템의 Data Source = DB Connection Pool 이름
    • API/Open API
      • 송신 시스템의 DB에서 데이터를 읽어서 제공하는 애플리케이션 프로그래밍 인터페이스 프로그램
      • API명, 입출력 파라미터 정보가 필요함
    • JDBC
      • 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
      • DBMS 유형, DBMS 서버 IP와 Port, DB 인스턴스(Instance) 정보가 필요
    • 하이퍼링크(Hyper Link)
      • 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해 주는 속성 - 예: <a href=”url”> Link 대상 </a>

Q. 다음은 IT 업무 프로세스 관련 용어에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

6 시그마(Six Sigma)

()은/는 모든 프로세스에 적용할 수 있는 전방위 경영혁신 운동으로 미국에서 새롭게 각광받던 품질관리법으로 경영성과 평균 및 산포를 동시에 개선하는 모토로라에 근무하던 마이클 해리에 의해 1987년 창안되었다.

  • IT 업무 프로세스 관련 용어 중 5 force, 6시그마(Six Sigma)는 다음과 같다.
    • 5 force
      • 사업경쟁요인 분석을 통하여 경쟁의 강도를 알아내고 수익성을 추출할 때 유용하게 사용되는 도구로 마이클 포터에 의해 처음 소개됨
      • 소비자의 구매력, 생산자의 구매력, 대체품에 대한 위험, 진입장벽이라는 요인을 통해 어떤 잠재적 경쟁자가 있는지에 대한 경쟁력 분석 도구임
    • 6 시그마(Six Sigma)
      • 모든 프로세스에 적용할 수 있는 전방위 경영혁신 운동으로 미국에서 새롭게 각광받던 품질관리법으로 경영성과 평균 및 산포를 동시에 개선하는 방법
      • 모토로라에 근무하던 마이클 해리에 의해 1987년 창안됨

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

10

1
2
3
4
5
6
7
8
9
10
public class Soojebi {
	public static void main(String[] args) {
		int a=50;
		int sum=0;
		for(int i=0; i<a%9; i++) {
			sum +=i;
		}
		System.out.print(sum);
	}
}
  • 정수형 변수 a는 50, sum은 0으로 선언과 동시에 초기화한다.
  • for 반복문에서 i는 0부터 a%9인 5보다 작을 때까지(i<5) 1씩 증가하며 반복한다. 그래서 sum은 0+1+2+3+4가 되어 10이 된다.
  • for 반복문이 종료되면 sum 변수에 누적된 10이 화면에 출력된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.