포스트

모의고사 18회

Q. 다음은 성과 평가를 위한 주요 용어이다. () 안에 들어갈 올바른 용어를 쓰시오.

KPI(Key Performance Indicator, 핵심 평가 지표)

  • ()은/는 기업의 목표를 달성하기 위한 지표를 의미한다.
  • ()을/를 설정하면 첫째 비지니스의 목표를 수립할 수 있고, 둘째 비지니스의 방향이 올바르게 진행되고 있는지 모니터링 할 수 있으며, 셋째 완성된 프로젝트를 되돌아보고 세부 활동들이 얼마나 유효했는지 평가할 수 있다.

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

SSID(Service Set IDentifier)

  • WLAN(Wireless LAN)은 고유 네트워크 이름을 사용하여 네트워크를 식별한다. 이러한 이름을 ()(이)라고 하며, WiFi 어댑터를 설정할 때 ()을/를 지정한다.
  • 무선보안과 관련된 주요 용어는 다음과 같다.
    • SSID(Service Set IDentifier)
      • 무선 랜을 통해 전송되는 패킷들의 각 헤더에 덧붙여지는 32바이트 길이의 고유 식별자
      • SSID는 하나의 무선 랜을 다른 무선 랜으로부터 구분
    • WPA(WiFi Protected Access)
      • Wi-Fi 얼라이언스에서 Wi-Fi의 송출 신호에 대한 보안을 위해 고안된 물리 계층에서의 패킷 암호화 방식
      • TKIP과 AES의 두 가지 표준 기술 중 하나를 사용하여 WEP보다 강력한 암호화를 제공

Q. ()은/는 기존의 운영체제에 내재된 보안 취약점을 해소하기 위해서 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제이다. ()에서 참조 모니터(Reference Monitor)는 핵심 요소로, 보호 대상의 객체에 대한 접근통제를 수행하는 추상 머신이며, 이것을 실제로 구현한 것이 보안 커널이다. () 안에 공통으로 들어갈 용어를 쓰시오.

보안 운영체제(Secure OS)

  • 보안 운영체제(Secure OS)는 컴퓨터 운영체제의 커널에 보안 기능을 추가한 운영체제이다.
  • 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹으로부터 보호하기 위한 보안 기능이 통합된 보안 커널을 추가로 이식한 운영체제이다.
  • 기본으로 열려있는 취약 서비스를 모두 차단하여 계정 관리 및 서비스 관리에 있어 개선된 보안 체계로 운영한다.

Q. 다음은 [급여] 테이블에 대한 명세이다. [급여] 테이블에서 부서명이 ‘마케팅부’이고, 직책은 ‘부장’, 급여는 ‘100’인 데이터를 입력하시오. (전화번호는 INSERT문에 따로 입력하지 않는다.)

1
INSERT INTO 급여(부서명, 직책, 급여) VALUES '마케팅부', '부장', '100';

[급여]

속성명데이터타입
부서명VARCHAR(20)
직책VARCHAR(20)
급여VARCHAR(20)
전화번호VARCHAR(11)
  • INSERT는 데이터의 내용을 삽입할 때 사용하는 명령어이다.

    1
    2
    
      INSERT INTO 테이블명(속성명1, ...)
      VALUES (데이터1, ...);
    
    • 속성과 데이터 개수, 데이터 타입이 일치해야 함
    • 속성명은 생략 가능
    • 속성의 타입이 숫자인 경우 데이터는 따옴표를 붙이지 않아도 되며, 문자열인 경우 따옴표를 붙여야 함

Q. SW 개발 보안의 3대 요소 중 다음이 설명하는 보안 요소는 무엇인가?

가용성(Availability)

권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성

  • SW 개발 보안의 3대 요소는 다음과 같다.
요소설명
기밀성(Confidentially)인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
무결성(Integrity)정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성
가용성(Availability)권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성

Q. 전송 계층과 응용 계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜은 무엇인가?

SSL/TLS 또는 SSL 또는 TLS

  • 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성) 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜은 SSL/TLS이다.
  • SSL(Secure Socket Layer)/TLS(Transport Layer Security)의 주요 기능은 다음과 같다.
    • 기밀성
      • Triple DES, AES 같은 대칭 키 암호화 알고리즘 제공
    • 상호 인증
      • 연결 설정 과정에서 서버와 클라이언트 간에 신뢰할 수 있도록 인증
      • RSA(비대칭 키), DES(전자서명) 알고리즘, X.509 공개키 인증서 사용
    • 메시지 무결성
      • 안전한 해시 알고리즘을 사용하여 메시지 인증코드 생성
  • SSL(Secure Sockets Layer), 트랜스포트(전송) 계층 데이터를 송•수신하는 두 컴퓨터 사이에 위치하여 TCP/IP 계층애플리케이션 계층 사이에서 인증, 암호화(기밀성), 무결성을 보장하는 업계 표준 프로토콜
  • VPN(Virtual Private Network, 가상 사설 통신망) 인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
    • SSL VPN : PC에 VPN Client 프로그램을 설치하여 VPN 서버에 접속하는 방식으로, 암호화를 위해 SSL 프로토콜을 사용함
    • IPSec VPN : VPN 서버가 설치된 각각의 네트워크를 서로 연결하는 방식으로, 암호화를 위해 IPSec 프로토콜을 사용함
  • IPsec(IP Security), 네트워크 계층 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
    • IP계층에서 무결성과 인증을 보호하는 인증 헤더(AH)기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜

Q. 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트는 무엇인가?

사용성 테스트(Usability Test)

  • UI 개발을 위한 주요 기법은 다음과 같다.
    • 3C 분석
      • 고객(Customer), 경쟁하고 있는 자사(Company)와 경쟁사(Competitor)를 비교하고 분석하여 자사를 어떻게 차별화해서 경쟁에서 이길 것인가를 분석하는 기법
    • SWOT 분석
      • 기업의 내부 환경과 외부 환경을 분석하여 Strength(강점), Weakness(약점), Opportunity(기회), Threat(위협) 요인을 규정하고 이를 토대로 경영 전략을 수립하는 방법
    • 시나리오 플래닝(Scenario Planning)
      • 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설계하는 방법으로 불확실성을 제거해 나가려는 경영 전략의 한 방법
    • 사용성 테스트(Usability Test)
      • 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트
    • 워크숍(Workshop)
      • 소집단 정도의 인원으로 특정 문제나 과제에 대한 새로운 지식, 기술, 아이디어, 방법들을 서로 교환하고 검토하는 연구회 및 세미나

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

7

1
2
3
4
5
6
a = [i for i in range(1, 10, 5)]
sum=0
for i in a:
	sum +=i

print(sum)
  • 리스트 a에는 i 값이 1부터 9까지 5씩 증가하며 값을 대입한다.
  • 파이썬에서는 리스트 내포 기능을 제공한다.
    • 파이썬에서의 리스트 내포는 다음과 같은 문법을 가질 수 있다.

      1
      
        반복가능객체 = [표현식 for 항목 in range()]
      
    • range 함수는 for 문에서 범위를 지정하기 위해 사용하며 3개의 파라미터를 가질 수 있다. start, step 파라미터는 생략할 수 있다.

      range 함수내용
      range(stop)0부터 (stop-1)까지
      range(start, stop)start부터 (stop-1)까지
      range(start, stop, step)start부터 (stop-1)까지 step만큼 간격
  • a에 [1, 6]을 대입한다.
  • sum은 0으로 초기화하며 for 반복문에서 i 값은 sum 값과 i 값을 더한 결과를 sum 값에 대입한 후 for 반복문이 종료되면 화면에 sum 결과인 7을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 비교 예제
a = list() # 리스트 생성
for i in range(0, 10):
	a.append(i) # i 값을 a 리스트에 추가(append), a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in range(2, 5):
	a.remove(i) # i 값 인덱스에 해당하는 원소를 제거(remove)

sum=0
for i in range(len(a)):
	sum += a[i]

print(sum)

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

345

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>

int fn(int n) {
	int a;
	
	if(n<1) {
		return 2;
	}
	else {
		a = fn(n-1) + 1;
		printf("%d", a);
		return a;
	}
}

void main() {
	fn(3);
}
  • main에서 fn(3)를 호출한다.
  • fn(3)은 n이 3이므로 if(n<1)이 거짓이 되어 else 문에 있는 문장을 실행한다.
  • a = fn(2) + 1에서 fn(2)의 값이 반환되어야 아래 있는 printf 문과 return 값을 반환할 수 있다.
  • fn(2)은 n이 2이므로 if(n<1)이 거짓이 되어 else 문에 있는 문장을 실행한다.
  • a = fn(1) + 1에서 fn(1) 값이 반환되어야 아래 있는 print 문과 return 값을 반환할 수 있다.
  • fn(1)은 n이 1이므로 if(n<1)이 거짓이 되어 else 문에 있는 문장을 실행한다.
  • a = fn(0) +1에서 fn(0) 값이 반환되어야 아래 있는 print 문과 return 값을 반환할 수 있다.
  • f(0)은 n이 0이므로 if(n<1)이 참이 되어 2를 반환한다.
  • fn(1)에서 fn(0)은 2이므로 a = fn(0) + 1은 2 + 1이므로 a = 3이 된다.
  • 3을 출력(printf)하고 3을 반환(return)한다.
  • fn(2)에서 fn(1)은 3이므로 a = f(1) + 1은 3 + 1이므로 a = 4가 된다.
  • 4를 출력(printf)하고, 4를 반환(return)한다.
  • fn(3)에서 fn(2)는 4이므로 a = fn(2) + 1은 4 + 1이므로 a = 5가 된다.
  • 5를 출력(printf)하고 5를 반환(return) 한다.

Q. 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 언어를 무엇이라 하는가?

UML(Unified Modeling Language)

  • UML의 구성요소는 다음과 같다. [사관다]
    • 사물(Things)
      • 추상적인 개념으로, 주체를 나타내는 요소
      • 단어 관점에서 ‘명사’, ‘동사’를 의미
    • 관계(Relationships)
      • 사물과 사물을 연결하여 관계를 표현하는 요소
      • 단어 관점에서 ‘형용사’ 또는 ‘부사’를 의미
    • 다이어그램(Diagrams)
      • 사물과 관계를 모아 그림으로 표현한 형태
      • 형식과 목적에 따라 9가지로 정의
  • UML(Unified Modeling Language): 시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
    • UML의 구성요소 3가지: 사물, 관계, 다이어그램
      • 사물(Things): UML의 구성요소 중 다이어그램 안에서 관계가 형성될 수 있는 대상들을 가리킴
      • 관계(Realationships): UML의 구성요소 중 사물과 사물 사이의 연관성을 표현하는 것을 가리킴
      • 다이어그램(Diagram): UML의 구성요소 중 사물과 관계를 도형으로 표현한 것
      • 연관 관계(Association): 관계를 표현할 때 2개 이상의 사물이 서로 관련되어 있는 관계를 의미하며 실선으로 표시함
      • 집합 관계(Aggregation): 관계를 표현할 때 하나의 사물이 다른 사물에 포함되어 있는 관계를 의미하며 속이 빈 마름모로 연결함
      • 포함 관계(Composition): 관계를 표현할 때 포함하는 사물의 변화가 포함되는 사물에게 미치는 관계를 의미하며 속이 채워진 마름모로 연결함
      • 일반화 관계(Generalization): 관계를 표현할 때 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계를 의미하며 속이 빈 화살표로 연결함
      • 의존 관계(Dependency): 관계를 표현할 때 서로에게 영향을 주는 짧은 시간동안만 연관을 유지하는 관계를 의미하며 점선 화살표로 연결함
      • 실체화 관계(Realization): 관계를 표현할 때 할 수 있거나 해야 하는 기능으로, 서로를 그룹화할 수 있는 관계를 의미하며 속이 빈 점선 화살표로 연결함
  • UML(Unified Modeling Language), 표준화
    • UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
    • Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합 하였음
    • OMG(Object Management Group)에서 표준으로 지정하였음
    • UML의 구성 요소
      • 사물(Things)
      • 관계(Relationships)
      • 다이어그램(Diagram)
  • 사물(Things)
    • 사물은 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말함
    • 모델을 구성하는 가장 중요한 기본 요소임
    • 사물의 종류
      • 구조 사물(Structural Things)
        • 시스템의 개념적, 물리적 요소를 표현
        • 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node) 등
      • 행동 사물(Behavioral Things)
        • 시간과 공간에 따른 요소들의 행위를 표현
        • 상호작용(Interaction), 상태 머신(State Machine) 등
      • 그룹 사물(Grouping Things)
        • 요소들을 그룹으로 묶어서 표현
        • 패키지(Package)
      • 주해 사물(Annotation Things)
        • 부가적인 설명이나 제약조건 등을 표현
        • 노트(Note)
  • 관계(Relationships)
    • 관계는 사물과 사물 사이의 연관성을 표현하는 것
      • 연관 관계
      • 집합 관계
      • 포함 관계
      • 일반화 관계
      • 의존 관계
      • 실체화 관계
  • 연관(Association) 관계
    • 연관 관계는 2개 이상의 사물이 서로 관련되어 있는 관계
    • 사물 사이를 실선으로 연결하여 표현함
    • 방향성은 화살표로 표현함
    • 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결함
    • 다중도를 선 위에 표기

      이미지

이미지

이미지

이미지

  • 집합(Aggregation) 관계, 비어있는 마름모
    • 집합 관계는 하나의 사물이 다른 사물에 포함되어 있는 관계
    • 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적
    • 포함되는 쪽(부분, Part)에서 포함하는 쪽(전체, Whole)으로 속이 빈 마름모를 연결하여 표현함

    이미지

  • 포함(Composition) 관계, 속이 채워진 마름모
    • 포함 관계는 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
    • 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립될 수 없고 생명주기를 함께 함
    • 포함되는 쪽(부분, Part)에서 포함하는 쪽(전체, Whole)으로 속이 채워진 마름모를 연결하여 표현함 표현함 표현함 표현함

    이미지

  • 일반화(Generalization) 관계
    • 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
    • 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)라고 부름
    • 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현 함

    이미지

  • 의존(Dependency) 관계
    • 의존 관계는 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
    • 하나의 사물과 다른 사물이 소유 관계는 아니지만 사물의 변화가 다른 사물에도 영향을 미치는 관계임(등급에 따라 할인율, 사은품이 변화)
    • 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결하여 표현 함

    이미지

  • 실체화(Realization) 관계
    • 실체화 관계는 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계
    • 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현함

    이미지

  • 다이어그램(Diagram)
    • 다이어그램은 사물과 관계를 도형으로 표현한 것
    • 여러 관점에서 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에 도움을 줌
    • 정적 모델링에서는 주로 구조적 다이어그램을 사용함(6, 클객컴배복패)
    • 동적 모델링에서는 주로 행위 다이어그램을 사용함(7, 유시커상활상타)
  • 정적 모델링
    • 정적 모델링은 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현한 것(개발자 관점에서 그림으로 표현)
    • 시스템에 의해 처리되거나 생성될 객체들 사이에 어떤 관련이 있는지를 구조적인 관점(View)에서 표현함
    • 정적 모델링은 객체(Object)들을 클래스(Class)로 추상화하여 표현함

    이미지

    • UML을 이용한 정적 모델링의 대표적인 것이 클래스 다이어그램 임
  • 동적 모델링
    • 동적 모델링은 시스템의 내부 구성 요소들의 상태 변화 과정과 과정에서 발생하는 상호 작용을 표현한 것
    • 시스템 내부 구성 요소들 간에 이루어지는 동작이라는 관점(View)에서 표현함
    • 시스템이 실행될 때 구성 요소들 간의 메시지 호출, 즉 오퍼레이션을 통한 상호 작용에 초점을 둠
    • 동적 모델링의 종류
      • 시퀀스 다이어그램
      • 커뮤니케이션 다이어그램
      • 상태 다이어그램
  • 기능 모델링 ← 사용자의 시각에서 소프트웨어의 범위와 기능을 설명하는 설계 표기법
    • 기능 모델링은 사용자의 요구사항을 분석하여 개발될 시스템이 갖춰야 할 기능을 정리한 후 사용자와 함께 정리된 내용을 공유하기 위해 그림으로 표현하는 것
    • 개발될 시스템의 전반적인 형태를 기능에 초점을 맞춰 표현함
    • 기능 모델링의 종류
      • 유스케이스(Use Case) 다이어그램
      • 활동, 액티비티(Activity) 다이어그램
  • 기능 모델링: 사용자관점, 시스템이 제공할 수 있는 기능, 기능에 중점을 두고 표현하는 방법
  • 정적 모델링: 개발자 관점, 시스템 내부의 구성요소들을 표현하는 방법
  • 동적 모델링: 시스템 설계자가 시간에 흐름에 따라 변하는 시스템 내부 구성요소의 상태를 파악하기 위해 그림으로 표현

Q. 다음이 설명하는 DBMS의 특징은 무엇인가?

데이터 일관성, 데이터 무결성

  • ( ① ): 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정한 성질
  • ( ② ): 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
  • 데이터베이스 관리 시스템(DBMS)의 특징은 다음과 같다.

    특징설명
    데이터 무결성부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
    데이터 일관성삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
    데이터 회복성장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
    데이터 보안성불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
    데이터 효율성응답시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질

Q. 다음은 OLAP 연산이다. () 안에 알맞은 연산을 쓰시오.

Roll-Up, Drill-Down, Slicing, Dicing

  • ( ① ): 분석할 항목에 대해 구체적인 데이터로부터 요약된 형태의 데이터로 접근하는 연산
  • ( ② ): 분석할 항목에 대해 요약된 형태의 데이터로부터 구체적인 데이터로 접근하려는 연산
  • ( ③ ): 온라인 분석처리를 위한 자료구조인 데이터 큐브의 한 조각을 볼 수 있게 해주는 연산
  • ( ④ ): 고정된 다차원 값에 대한 연산
  • OLAP는 의사결정 지원 시스템으로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와주는 기술이다.
  • OLAP 연산은 다음과 같다.

    연산설명
    Roll-Up분석할 항목에 대해 구체적인 데이터로부터 요약된 형태의 데이터로 접근하는 연산
    Drill-Down분석할 항목에 대해 요약된 형태의 데이터로부터 구체적인 데이터로 접근하려는 연산
    Slicing온라인 분석처리를 위한 자료구조인 데이터 큐브의 한 조각을 볼 수 있게 해주는 연산
    Dicing고정된 다차원 값에 대한 연산
    Pivoting다차원 분석 테이블인 크로스 테이블에서 차원 변경을 위해 사용되는 연산
  • 피봇의 원래 사전적인 의미는 ‘회전축’, 경제/경영 전문 매거진 Fast Company에 의하면 피봇은 “A change in strategy without a change in vision”이라고 한다. 번역하자면 “비전을 바꾸지 않고 전략을 바꾸는 것” 정도가 된다.

Q. 다음이 설명하는 용어는 무엇인지 쓰시오.

메타데이터 레지스트리(MDR; Metadata Registry)

  • 메타데이터(Metadata; 데이터의 의미 파악을 위한 데이터)의 등록과 인증을 통하여 표준화된 메타데이터를 유지∙관리하며, 메타데이터의 명세와 의미의 공유를 목적으로 하는 데이터베이스이다.
  • 표준화된 메타데이터를 사용하여 데이터에 대한 접근과 사용을 촉진하고 메타데이터가 설명하는 특징에 따른 데이터의 조작을 가능하게 해준다.
  • MDR은 메타데이터(Metadata; 데이터의 의미 파악을 위한 데이터)의 등록과 인증을 통하여 표준화된 메타데이터를 유지∙관리하며, 메타데이터의 명세와 의미의 공유를 목적으로 하는 데이터베이스이다.

Q. 다음 [점수] 테이블에 대해 SQL을 수행한 결과는 [결과] 테이블처럼 출력된다. [결과] 테이블의 ①, ②에 알맞은 값을 쓰시오.

1, 2

[점수]

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

[쿼리]

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

[결과]

COUNT(DB)COUNT(프로그래밍)
( ① )( ② )
  • 집계 함수는 NULL인 값은 제외하고 계산한다.
  • 집계 함수의 종류는 다음과 같다.

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

Q. 최근 현실 세계를 가상화하여 비지니스에 사용하는 기술이 부각되고 있다. 그중 ( ① )은/는 가상 물리 시스템으로 인간의 개입 없이 대규모 센서∙액추에이터를 갖는 물리적인 요소들과 통신 기술, 응용∙시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템이고, ( ② )은/는 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델이다. () 안에 들어갈 용어를 쓰시오.

CPS(Cyber-Physical System, 가상 물리 시스템), 디지털 트윈(Digital Twin)

  • CPS와 디지털 트윈 기술은 다음과 같다.

    구분설명
    CPS(Cyber-Physical System)가상 물리 시스템으로 인간의 개입 없이 대규모 센서∙액추에이터를 갖는 물리적인 요소들과 통신 기술, 응용∙소프트웨어 기술을 호라용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템
    디지털 트윈(Digital Twin)물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델
  • CPS(가상물리시스템)

    • 사이버 물리 시스템(Cyber-Physical Systems, CPS)은 우리가 살아가는 물리 세계와 사이버 세계와의 융합을 추구하는 새로운 패러다임이다. CPS는 다수의 센서, 엑츄에이터, 제어기기들이 네트워크로 연결되어 복합 시스템(System of Systems)을 구성하고 물리 세계 정보를 습득, 가공, 계산, 분석하여 그 결과를 엑츄에이터 시스템을 통하여 물리 세계에 적용한다. 이를 통해 지속적으로 일어나는 변화에 능동적으로 적응하는 것에 중점을 두고 있다. CPS는 단순한 연결성을 뛰어넘어 어떻게 물리 시스템을 높은 신뢰성을 가지고 실시간으로 제어할 수 있는지에 주목한다는 점에서 뚜렷한 차이가 있다.

    이미지

    • 먼저 물리 시스템을 수학적으로 표현하는, 이른바 모델링 작업이 필요하다. 결국에는 우리를 둘러싼 물리 세계를 인간이 어떻게 제어하고 상호작용하는지를 객관적으로 밝히는 모델링 작업을 시작으로, 사이버 세계에서는 물리 시스템과의 복잡한 상호작용 및 의존관계를 정확하게 모델링해야한다. 이를 위해서 기존의 제어 시스템에 대한 단순한 이해가 아닌 자연 과학을 기초로 하여 컴퓨터 과학을 융합한 새로운 융∙복합적 기술접근이 필요하다.
    • CPS는 다양한 분야에 적용되어 안정성, 효율성, 신뢰성, 보안성에 혁신적인 변화를 가져와 새로운 부가가치를 창출한다. 핵심적인 응용 분야로 스마트 팩토리, 스마트 교통 시스템, 스마트 그리드, 스마트 헬스케어 시스템, 스마트 홈/빌딩 시스템, 스마트 국방 시스템, 스마트 재해대응 시스템에 활용되리라 예상한다.
      • 스마트 공장은 인공지능(AI), 머신러닝 같은 고급 기술을 적용해 데이터를 분석하고, 프로세스 자동화를 가속화하며, 시간 경과에 따라 학습하는 ‘사이버 물리 시스템(CPS)’이다.
      • 스마트 그리드(Smart Grid)란 일반적인 전력망에 ICT기술을 접목시켜, 전기 공급자와 소비자 간의 실시간 정보교환을 통해 에너지를 효율적으로 이용할 수 있는 차세대 전력망이다.

        기존 전력망에 정보·통신기술을 접목하여, 공급자와 수요자간 양방향으로 실시간 정보를 교환함으로써 지능형 수요관리, 신재생에너지 연계, 전기차 충전 등을 가능케 하는 차세대 전력인프라 시스템

        더 발전된 형태로 디지털 그리드가 있다.

      • 센서(Sensor)란, 어떤 대상의 정보를 수집하여, 기계가 취급할 수 있는 신호로 치환하는 소자 및 장치
      • 액추에이터(작동기, 작동장치)는 시스템을 움직이거나 제어하는 데 쓰이는 기계 장치. 기계의 작동은 운동을 에너지로 전환. 이는 모터, 유압 실린더 또는 전기 액추에이터를 사용하는 등 다양한 방식으로 발생한다. 이러한 장치는 외부 입력을 받아 동작으로 변환한다.

Q. 소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 모형으로 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 하는 비용산정 모형은 무엇인가?

푸트남(Putnam) 모형

  • 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 모형으로 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 하는 비용산정 모형은 푸트남 모형이다.

  • Putnam 모형
    • 비용 산정 기법에서 소프트웨어 생명 주기의 전 과정 동안 사용될 노력의 분포를 예상하는 모형
    • Putnam 제안한 생명 주기 예측 모형
    • 소프트웨어 개발 주기의 각 단계별로 요구할 인력의 분포를 가정하는 모형
    • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 하는 비용 산정 기법
    • 대형 프로젝트에서 이용되는 기법이다.
    • 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소한다.
    • SLIM: Rayleigh-Norden 곡선과 Putnam 예측 모형을 기초로 개발한 자동화 추정도구

    이미지

  • 자동화 추정 도구
    • SLIM: Rayleigh-Norden 곡선과 Putnam 예측 모델을 기반으로 개발됨
    • ESTIMACS: 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기반으로 개발됨

Q. 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴인 디자인 패턴의 유형 중 구조 패턴에 속하는 ( ① )은/는 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴이고, ()은/는 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴으로, 상속을 이용하는 클래스 패턴과 위임을 이용하는 인스턴스 패턴의 두 가지 형태로 사용되는 디자인 패턴이다. () 안에 들어갈 디자인 패턴 유형을 쓰시오.

Bridge, Adapter

  • 디자인 패턴 유형 중 구조 패턴 유형은 다음과 같다.
    • Bridge
      • 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
      • 구현뿐만 아니라, 추상화된 부분까지 변경해야 하는 경우 활용
    • Decorator
      • 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴으로 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
      • 객체의 결합을 통해 기능을 동적으로 유연하게 확장
      • 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴으로 상속을 이용하는 클래스 패턴과 위임을 이용하는 인스턴스 패턴의 두 가지 형태로 사용되는 디자인 패턴이다.

이미지


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

9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Soojebi {
	public static void main(String[] args) {
		int[] numArr = new int[5];
		int result = 0;
		
		for(int i=0; i<5; i++)
			numArr[i] = ++i;
		
		for(int i : numArr)
			result += i;
			
		System.out.printf("%d", result);
	}
}
  • int[] numArr = new int[5]; 문장을 실행하여 배열의 크기가 5인 1차원 정수형 배열 numArr을 선언한다.
  • 정수형 변수 result를 선언하고 0으로 초기화한다.
  • for 반복문은 i 값을 0부터 5보다 작을 때까지 i 값을 1씩 증가하며 반복한다. i 값을 1 증가시키고 numArr[i]에 대입하는 것을 반복 수행한다.
코드inumArr[i]
for(int i=0; i<5; i++)0 
numArr[i] = ++i;1numArr[0] = 1
for(int i=0; i<5; i++)2 
numArr[i] = ++i;3numArr[2] = 3
for(int i=0; i<5; i++)4 
numArr[i] = ++i;5numArr[4] = 5
  • 배열 numArr의 원소 하나씩 반복을 하며 result에 numArr[i]들의 원소 값들을 더한다.(1+0+3+0+5 =9)
  • for 반복문이 종료되고 result 값을 화면에 출력한다.


참고 자료


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