포스트

모의고사 34회

Q. OLAP는 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식이다. 이러한 OLAP 연산 중에서 ( ① )은/는 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능이고, ( ② )은/는 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능이다. () 안에 들어갈 용어를 쓰시오.

Roll-up Drill-down

  • OLAP 연산에서 Roll-up, Drill-down 용어는 아래와 같다.

    용어설명
    Roll-up분석할 항목에 대해 한 차원이 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
    Drill-down분석할 항목에 대한 한 차원의 계층 구조를 따라 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능

Q. ()은/는 스마트폰이 곁에 없으면, 불안감과 공포감에 휩싸이게 되는 증상을 말한다. 전 세계에 스마트폰이 폭발적으로 보급되고 스마트폰에 대한 의존성이 높아지면서 나타난 현상으로, 통신기기와 잠시 떨어지게 되면 의사소통이 단절될 수 있다는 두려움, 정보 접근이 어려워질 수 있다는 불안감 등이 나타난다. () 안에 들어갈 용어를 쓰시오.

노모포비아(Nomophobia)

  • 노모포비아는 스마트폰이 곁에 없으면, 불안감과 공포감에 휩싸이게 되는 증상을 말한다.

Q. 다음은 보안 공격을 방어하기 위한 기술에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

QKD(Quantum Key Distribution; 양자 암호 키 분배)

()은/는 양자 통신을 위해서 비밀키를 분배하고 관리하는 기술로, 상호 통신을 하는 두 시스템이 암호 알고리즘을 위한 비밀키를 안전하게 공유하기 위해서 사용되는 시스템이다.

  • 양자 통신을 위해서 비밀키를 분배하고 관리하는 기술로, 상호 통신을 하는 두 시스템이 암호 알고리즘을 위한 비밀 키를 안전하게 공유하기 위해서 사용되는 시스템은 QKD이다.

Q. 다음은 보안과 관련된 내용이다. () 안에 들어갈 올바른 용어를 쓰시오.

CC(Common Criteria)

()은/는 보안 기능이 있는 IT 제품(정보보호 제품)의 국제표준(ISO/IEC 15408)에 기반하여 보안성을 평가기관에서 평가하고, 이에 대한 결과를 인증기관에서 인증하는 제도이다.

  • 보안 기능이 있는 IT 제품(정보보호 제품)의 국제 표준(ISO/IEC 15408)에 기반하여 보안성을 평가기관에서 평가하고, 이에 대한 결과를 인증기관에서 인증하는 제도는 CC(Common Criteria)이다.
  • IT 제품(H/W, F/W, S/W)의 보안 기능성과 평가 과정에서 그 제품들에 적용되는 보증수단에 대한 공통의 요구사항들을 제시함으로써, 독립적으로 수행된 보안성 평가의 결과를 비교 가능하다.

Q. [학생] 테이블 내의 모든 데이터를 삭제하는 쿼리를 DDL 문으로 작성하시오.

1
TRUNCATE TABLE 학생;
  • TRUNCATE TABLE은 테이블 내의 데이터들을 삭제하는 명령이다.

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

11

1
2
3
4
5
6
7
#include <stdio.h>
void main() {
	int num = 10;
	int *pnum = &num;
	num++;
	printf("%d", *pnum);
}
  • 정수형 변수 num은 10으로 선언과 동시에 초기화된다.
  • 정수형 포인터 변수 pnum은 선언과 동시에 num의 주솟값을 대입한다.
  • num 값을 1 증가시킨다.
  • 화면에 pnum의 값을 출력하면 num 값인 11이 출력된다.

Q. 스크럼(SCRUM) 방법론에 대해 약술하시오.

스크럼 방법론은 Product Backlog를 바탕으로 하여 2~4주의 스프린트 기간 동안 스크럼 팀을 통해 구현해 나가는 개발방법론이다.

  • 스크럼 방법론 관련 용어는 다음과 같다.
    • 백로그(Backlog)
      • 제품과 프로젝트에 대한 요구사항
    • 스프린트(Sprint)
      • 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품 질 향상
    • 스크럼 미팅(Scrum Meeting)
      • 매일 15분 정도 미팅으로 To-Do List 계획 수립
      • 데일리 미팅(Daily Meeting)이라고도 함
    • 스크럼 마스터(Scrum Master)
      • 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
    • 스프린트 회고(Sprint Retrospective)
      • 스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인 및 기록
      • 해당 스프린트가 끝난 시점이나 일정 주기로 시행
    • 번 다운 차트(Burn Down Chart)
      • 남아있는 백로그 대비 시간을 그래프적으로 표현한 차트
      • 백로그는 보통 수직축에 위치하며 시간은 수평축에 위치

Q. 다음은 경험 기반 테스트에 대한 설명이다. () 안에 들어갈 테스트 유형을 쓰시오.

탐색적 테스트(Exploratory Test), 오류 추정(Error Guessing)

경험 기반 테스트는 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법이다. 경험 기반 테스트 기법 중 ( ① )은/는 사전에 구체적으로 테스트 케이스를 설계하고 이를 바탕으로 테스트를 수행하는 방식이 아니라, 테스트 대상에 대한 이해, 테스트 케이스 설계, 테스트 실행을 병행하는 방식이고, 무작위 테스팅이 아닌 중대한 테스트 위주, 테스트 엔지니어의 휴리스틱한 능력이 필요하며 주요 구성요소에는 테스트 파터, 시간제한(Time Boxing), 노트(Note) 등이 있다.

또한 ( ② )은/는 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법으로 특정 테스트 대상이 주어지면 테스트 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수들을 나열하고, 해당 실수에 따른 결함을 노출하는 방식으로 테스트를 수행한다.

  • 경험 기반 테스트 유형은 다음과 같다.
    • 탐색적 테스트(Exploratory Test)
      • 테스트 스크립트 또는 테스트 케이스를 문서로 작성하지 않고 경험에 바탕을 두고 탐색적으로 기능을 수행해 보면서 테스트하는 기법
      • 사전에 구체적으로 테스트 케이스를 설계하고 이를 바탕으로 테스트를 수행하는 방식이 아니라, 테스트 대상에 대한 이해, 테스트 케이스 설계, 테스트 실행을 병행하는 방식
      • 무작위 테스팅이 아닌 중대한 테스트 위주, 테스트 엔지니어의 휴리스틱한 능력 필요, 제품을 익히면서 테스트하고 설계하고 테스트 수행
      • 구성요소는 테스트 차터, 시간 제한(Time Boxing), 노트(Note), 회고
    • 오류 추정(Error Guessing)
      • 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 노출되도록 테스트 케이스를 설계하여 테스트하는 기법
      • 특정 테스트 대상이 주어지면 테스터의 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수들을 나열하고, 해당 실수에 따른 결함을 노출하는 테스트 수행
      • 동등분할이나 경곗값 분석 같은 명세 기반 테스트 방법과 함께 사용 가능
      • 다른 기법이나 공식적인 테스트를 보완할 때 유용
      • 오류 추정은 일반적으로 예상되지 않는 상황이 사용자 입력값으로 적절히 처리되고 있는지 확인할 때 유용
      • 필수 입력, 입력 항목의 길이, 입력 항목의 형식, 입력값의 명시적 제약사항, 입력값의 묵시적 제약사항 등을 확인할 때 유용
    • 체크리스크(Checklist)
      • 테스트하고 평가해야 할 내용과 경험을 분류하여 나열한 이후 하나씩 확인하는 테스트 기법
      • 체계적 도출보다는 경험과 노하우를 정리하고 목록화하여 재사용 목적으로 활용됨
    • 특성테스트(Characteristics Test)
      • 국제표준인 ISO/IEC 9126 등의 품질모델(Quality Model)에 있는 품질 특성(Quality Characteristics)을 염두에 두고 이를 근간으로 경험적으로 테스트 케이스를 설계하고 테스트하는 기법
      • ISO/IEC 9126-2에 명기된 품질 특성 활용

Q. 소프트웨어 생명주기 모델 중 ()은/는 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델이다. () 안에 들어갈 속성을 쓰시오.

나선형 모델(Spiral Model)

  • 소프트웨어 생명주기 모델의 종류는 다음과 같다.
    • 폭포수 모델(Waterfall Model)
      • 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
      • 가장 오래된 모델
      • 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
      • 모형의 적용 경험과 성공 사례가 많음
      • 요구사항의 변경이 어려움
      • 절차: 타당성 검토 → 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
    • 프로토타이핑 모델(Prototyping Model)
      • 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
      • 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공
      • 프로토타입은 구현 단계의 구현 골격
    • 나선형 모델(Spiral Model)
      • 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
      • 절차: 계획 및 정의 → 위험 분석 → 개발 및 검증 → 고객 평가
    • 반복적 모델(Iteration Model)
      • 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델
      • 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델

Q. 다음 [점수] 테이블에 대해 쿼리를 수행한 결과는 [결과] 테이블과 같다. ①, ②에 들어갈 값을 쓰시오.

20, 20

[점수]

이름DB프로그래밍
이완용20NULL
송병준NULL30
민영휘NULL10

[쿼리]

1
SELECT SUM(DB), AVG(프로그래밍) FROM 점수;

[결과]

SUM(DB)AVG(프로그래밍)
  • 집계 함수는 NULL인 값을 제외하고 계산한다.

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

helloh

1
2
3
4
5
6
#include <stdio.h>
void main() {
	char *p = "hello";
	printf("%s", p);
	printf("%c", *p);
}
  • char * 타입의 포인터 변수 p를 선언과 동시에 문자열 “hello”로 초기화한다.
  • printf 함수에서 문자열 출력을 위한 포맷스트링 “%s”를 이용하여 p가 가리키는 문자열 “hello”를 화면에 출력한다.
  • printf 함수에서 문자 출력을 위한 포맷스트링 “%c”를 이용하여 *p 값인 ‘h’가 화면에 출력된다.
  • 포인터 변수에 *를 붙이면 가리키는 값에 접근할 수 있다.

Q. 비용산정 모형 중 전문가의 경험적 지식을 통한 문제 해결 및 미래예측을 위한 기법으로 전문가 합의법이라고도 하는 용어는 무엇인가?

델파이 기법(Delphi Method)

  • 비용산정 모형에는 하향식 산정방법과 상향식 산정방법이 있으며, 델파이 기법은 하향식 산정방법에 속한다.
    • 하향식 산정방법
      • 경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 1명의 조정자를 통해 산정하는 방식
      • 종류: 전문가 판단, 델파이 기법
    • 상향식 산정방법
      • 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식
      • 종류: 코드 라인 수(LoC), Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형

Q. 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로, 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성이 테스팅이 가능한 인터페이스 구현 검증 도구는 무엇인가?

watir

  • 인터페이스 구현 검증 도구는 아래와 같다. [엑스피 엔셀웨]
    • xUnit
      • 자바(Junit), C++(Cppunit), .Net(Nunit)등 다양한 언어를 지원하는 단위테스트 프레임워크
      • 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트할 수 있게 해주는 도구
    • STAF
      • 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
      • 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증 도구
    • FitNesse
      • 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
      • 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트 할 수 있는 장점이 있음
    • NTAF
      • FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
    • Selenium
      • 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
      • 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공
    • watir
      • 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크
      • 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

Q. [수강] 테이블에서 학번이 2000인 사용자의 수강과목명을 ‘알고리즘’에서 ‘자료구조’로 변경하는 쿼리를 작성하시오.

1
UPDATE 수강 SET 수강과목 = '자료구조' WHERE 학번 = 2000;

[수강]

학번이름수강과목
1000서용빈알고리즘
2000윤영삼알고리즘
3000박인호자료구조
4000김학영자료구조
5000이진형JAVA
  • UPDATE는 데이터의 내용을 변경할 때 사용하는 명령어이다.

    1
    2
    3
    
      UPDATE 테이블명
      SET 속성명 = 데이터, ...
      WHERE 조건;
    
    • UPDATE 명령문은 WHERE절을 통해 어떤 조건이 만족할 경우에만 특정 컬럼의 값을 수정하는 용도로 자주 사용됨

Q. 접근 통제의 유형 중 ( ① )은/는 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법이고, ( ② )은/는 중앙 관리자가 사용자와 시스템의 상호관계를 통제하여 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법이다. () 안에 들어갈 용어를 쓰시오.

강제적 접근 통제(MAC; Mandatory Access Control), 역할 기반 접근 통제(RBAC; Role Based Access Control)

  • 접근 통제 유형은 아래와 같다.
    • 임의적 접근 통제(DAC; Discretionary Access Control)
      • 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한하는 방법
      • DAC에서 사용자는 자원과 관련된 ACL(Access Control List)이 수정됨으로써 자원에 대한 권한을 부여
    • 강제적 접근 통제(MAC; Mandatory Access Control)
      • 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
      • MAC에서 사용자들은 자원에 대한 권한을 관리자로부터 부여
      • 관리자만이 시스템 자원에 대한 권한을 할당할 수 있음
    • 역할기반 접근 통제(RBAC; Role Based Access Control)
      • 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법
      • RBAC에서 자원에 대한 접근은 사용자에게 할당된 역할에 기반
      • 관리자는 사용자에게 특정한 권리와 권한이 정의된 역할을 할당

Q. 다음은 데이터 저장 및 분석 관련 용어이다. () 안에 들어갈 용어를 쓰시오.

디지털 아카이빙(Digitial Archiving), CEP(Complex Event Processing)

( ① )은/는 지속적으로 보존할 가치를 가진 디지털 객체를 장기간 관리하여 이후의 이용을 보장할 수 있도록 변환, 압축 저장하여 DB화 하는 작업이고, ( ② )은/는 실시간으로 발생하는 이벤트 처리에 대한 결괏값을 수집하고 처리하는 기술로 IoT 센싱 데이터, 로그, 음성 데이터 등 실시간 데이터의 처리 기술이다.

  • 디지털 아카이빙과 CEP의 개념은 아래와 같다.

    용어설명
    디지털 아카이빙(Digital Archiving)지속적으로 보존할 가치를 가진 디지털 객체를 장기간 관리하여 이후의 이용을 보장할 수 있도록 변환, 압축 저장하여 DB화하는 작업
    CEP(Complex Event Processing)실시간으로 발생하는 이벤트 처리에 대한 결괏값을 수집하고 처리하는 기술로 IoT 센싱 데이터, 로그, 음성 데이터 등 실시간 데이터의 처리 기술

Q. 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘은 무엇인가?

선형 피드백 시프트 레지스터(LFSR; Linear Feedback Shift Register)

  • 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘은 LFSR이다.

Q. 다음 설명 중 () 안에 공통으로 들어갈 알맞은 용어를 쓰시오.

BCNF(보이스-코드 정규형)

학번과목명교수명
202001C언어장길산
202001데이터베이스홍길동
202002데이터베이스홍길동
학번과목명
202001C언어
202001데이터베이스
202002데이터베이스
교수명과목명
장길산C언어
홍길동데이터베이스
  • <학번, 과목명>이 <교수명>에 영향을 주고, <교수명>이 <과목명>에 영향을 주는 관계로서, <교수명>은 <과목명>에게 영향을 주지만, 한 테이블에 같이 존재하고 <교수명>은 키가 아닌 상황이므로 결정자인 <교수명>이 후보키가 아니다.
  • <학번, 과목명, 교수명>을 한 테이블에 두는 것은 <교수명>이 결정자이지만 후보 키가 아니기 때문에 ()을/를 만족하지 못한다.
  • <교수명>은 <과목명>에 직접 영향을 주기 때문에 <교수명, 과목명> 테이블로 분리하여 교수명이 후보 키 역할을 하도록 하여 ()을/를 만족한다.
  • 데이터베이스 정규화 단계는 다음과 같다.

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

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

11

1
2
3
4
5
6
7
#include <stdio.h>
void main() {
	int num = 10;
	int *pnum = &num;
	(*pnum)++;
	printf("%d", num);
}
  • 정수형 변수 num은 10으로 선언과 동시에 초기화된다.
  • 정수형 포인터 변수 pnum은 선어과 동시에 num의 주솟값을 대입한다.
  • pnum이 가리키는 값을 1 증가시킨다.
  • 화면에 num 값은 11을 출력한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.