포스트

모의고사 19회

Q. 가상현실(VR)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기법을 무엇이라고 하는가?

증강현실(AR; Augmented Reality)

  • 증강 현실(AR), 가상 현실(VR), 혼합 현실(MR)의 개념은 같다.
    • 증강 현실(Augmented Reality)
      • 가상 현실(Virtual Reality)의 한 분야로 실제 환경에 가상 사물이나 정보를 합성하여 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기법
    • 가상 현실(Virtual Reality)
      • 어떤 특정한 환경이나 상황을 컴퓨터로 만들고 사람이 마치 실제 주변 상황∙환경과 상호작용을 하고 있는 것처럼 만들어 주는 인간-컴퓨터 사이의 인터페이스
    • 혼합 현실(Mixed Reality)
      • 증강 현실(AR)과 가상 현실(VR)의 장점을 합쳐 현실 세계와 가상 세계 정볼르 융합하여 새로운 공간을 창조하는 기술
      • 현실 세계와 가상정보를 결합한 것이 특징

Q. 조직의 성과 목표 달성을 위하여 회사의 비전이나 전략에 따라 성과 목표를 재무, 고객, 내부 프로세스, 학습∙성장 관점으로 균형 있게 목표를 정하고, 이를 조직 구성원의 개개인에게 네 가지 관점으로 목표를 설정하여 관리하는 기법은?

균형 성과표(BSC; Balanced Score Card)

  • BSC의 네 가지 관점은 아래와 같다. [재고내학]
    • 재무
      • 기업의 주요 이해관계자들에게 재무적인 지표를 통해 조직의 성과를 보여주기 위한 관점
    • 고객
      • 고객 관계 관리를 위한 관점
      • 기업에 수익을 가져다줄 수 있는 고객을 파악해 내고, 이들을 위한 고객 지향적 프로세스를 만들어나가는 것이 고객 관계 관리의 핵심 성공 요인
    • 내부 프로세스
      • 성과를 극대화하기 위하여 기업의 핵심 프로세스 및 핵심 역량을 규명하는 과정에 관련한 관점
    • 학습과 성장
      • BSC의 4가지 관점 중에서 가장 미래 지향적인 관점
      • 현재에는 그 가치가 보이지 않지만, 회사의 장기적인 잠재력에 대한 투자가 기업 성장에 얼마나 영향을 미칠 수 있을지를 파악

Q. 디자인 패턴 유형에는 생성 패턴, 행위 패턴, 구조 패턴이 있다. 그중 행위 패턴에 속하는 ( ① )은/는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴이고, ( ② )은/는 객체 상태를 캡슐화하여 클래스화 함으로써 그것을 참조하게 하는 형식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시 원시 코드의 수정을 최소화할 수 있고, 유지보수의 편의성도 갖는 디자인 패턴이다. () 안에 들어갈 디자인 패턴 유형을 쓰시오.

Observer Pattern, State Pattern

  • 디자인 패턴 유형 중 행위 패턴 유형은 다음과 같다.
    • Iterator
      • 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴
      • 내부 구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근 가능하게 해주는 행위 패턴
    • Template Method
      • 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴으로 일반적으로 상위 클래스(추상 클래스)에는 추상 메서드를 통해 기능의 골격을 제공하고, 하위 클래스(구체 클래스)의 메스드에는 세부 처리를 구체화하는 방식으로 사용하며 코드 양을 줄이고 유지보수를 용이하게 만드는 특징을 갖는 디자인 패턴
      • 상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업의 일부분을 수행
    • Observer
      • 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴
      • 객체의 상태 변화에 따라 다른 객체의 상태도 연동, 일대다 의존
    • State
      • 객체 상태를 캡슐화하여 클래스화함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시 원시 코드의 수정을 최소화할 수 있고, 유지보수의편의성도 갖는 디자인 패턴
      • 객체의 상태에 따라 행위 내용을 변경
    • Visitor
      • 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스로 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴으로, 객체의 구조는 변경하지 않으면서 기능만 따로 추가하거나 확장할 때 사용하는 디자인 패턴
      • 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위
    • Command
      • 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴으로 하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징을 갖는 디자인 패턴
    • Strategy
      • 알고리즘 군을 정의하고(추상 클래스) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음, 필요할 때 서로 교환해서 사용할 수 있게 하는 패턴으로, 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디자인 패턴
      • 하위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
    • Memento
      • 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴으로 Undo 기능을 개발할 때 사용하는 디자인 패턴
      • 객체를 이전 상태로 복구시켜야 하는 경우, ‘작업취소(Undo)’ 요청 가능
    • Chain of Responsibility
      • 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 디자인 패턴
      • 한 요청을 2개 이상의 객체에서 처리

    이미지


Q. 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램인 시퀀스 다이어그램의 구성요소 중 ( ① )은/는 위쪽에 표시되며 아래로 ( ② )을/를 갖고, 사각형 안에 밑줄 친 이름으로 명시한다. 또한 ( ② )은/는 ( ① )(으)로부터 뻗어 나가는 점선으로 실제 시간이 흐름에 따라 ( ① )의 생명주기 동안 발생하는 이벤트를 명시한다. () 안에 들어갈 용어를 쓰시오.

객체(Object), 생명선(Lifeline)

  • 시퀀스 다이어그램의 구성요소는 다음과 같다.
    • 객체(Object)
      • 객체는 위쪽에 표시되며 아래로 생명선을 가짐
      • 객체는 사각형 안에 밑줄 친 이름으로 명시
    • 생명선(Lifeline)
      • 객체로부터 뻗어 나가는 점선
      • 실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시
    • 실행(Activation)
      • 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미
      • 직사각형이 길어질수록 오퍼레이션 수행시간이 긺
    • 메시지(Mesage)
      • 객체 간의 상호작용은 메시지 교환으로 이루어짐
      • 한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 오퍼레이션을 수행


  • 시퀀스 다이어그램(Sequence Diagram)
    • 시퀀스 다이어그램은 시스템이나 객체들이 메시지를 주고받으며 상호 작용하는 과정을 그림으로 표현한 것
    • 시스템이나 객체들의 상호 작용 과정에서 주고받는 메시지를 표현함
    • 각 동작에 참여하는 시스템이나 객체들의 수행 기간을 확인할 수 있음
    • 클래스 내부에 있는 객체들을 기본 단위로 하여 그들의 상호 작용을 표현함
  • 구성 요소
    • 액터(Actor)
      • 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미함

        이미지

    • 객체(Obiect)
      • 메시지를 주고받는 주체
      • 사각형 내부에 어떤 객체인지 기입
      • 객체는 위쪽에 표시되며 아래로 생명선을 가짐
      • 객체는 사각형 안에 밑줄 친 이름으로 명시

        이미지

        이미지

    • 생명선(Lifeline)
      • 객체가 메모리에 존재하는 기간으로, 객체 아래쪽에 점선을 그어 표현함
      • 객체 소멸(X)이 표시된 기간까지 존재함
      • 객체로부터 뻗어 나가는 점선
      • 실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시

        이미지

    • 실행 상자(Active Box, 활성 상자), 실행(Activation)
      • 객체가 메시지를 주고받으며 구동되고 있음을 표현함
      • 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미
      • 직사각형이 길어질수록 오퍼레이션 수행시간이 긺

        이미지

        이미지

    • 메시지 (Message)
      • 객체가 상호 작용을 위해 주고받는 메시지
      • 객체 간의 상호작용은 메시지 교환으로 이루어짐
      • 한 객체에서 다른 객체로의 메시지 전달하여 전달받은 객체의 오퍼레이션을 수행

        이미지

        이미지

    • 객체 소멸
      • 해당 객체가 더 이상 메모리에 존재하지 않음을 표현한 것

        이미지

    • 프레임(Frame)
      • 다이어그램의 전체 또는 일부를 묶어 표현한 것

        이미지

이미지


Q. HONG이라는 사용자에게 STUDENT 테이블에 SELECT할 수 있는 권한을 부여하는 DCL을 작성하시오.

1
GRANT SELECT ON STUDENT TO HONG;
  • 데이터베이스 관리자(DBA; Database Administrator)가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어이다. [그온투]

    1
    
      GRANT 권한 ON TABLE TO 사용자 [WITH GRANT OPTION];
    
    • 관리자가 사용자에게 테이블에 대한 권한을 부여
    • WITH GRANT OPTION은 사용자가 권한을 받고 난 후 다른 사람들과 권한을 나누어 가질 수 있는 옵션

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

9

1
2
3
4
5
6
7
def soojebi(exp, num):
	if num == 0:
		return 1
	return exp * soojebi(exp, num-1)

a = soojebi(3, 2)
print(a)
  • exp와 num 2개의 파라미터를 가지는 soojebi 함수를 정의한다.
  • if 문에서 num 값이 0과 같으면 1을 리턴한다.
  • if 문이 실행되지 않는 경우 exp와 soojebi(exp, num-1)의 값을 리턴한다.
  • soojebi(3, 2)에서 num 값이 2이므로 3 * soojebi(3, 1)을 리턴한다.
  • soojebi(3, 1)에서 num 값이 1이므로 3 * soojebi(3, 0)을 리턴한다.
  • soojebi(3, 0)에서 num 값이 0이므로 1을 리턴한다.
  • 즉, 331이 계산되어 9가 화면에 출력된다.

Q. 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션으로 바이러스나 웜 등의 보안 위협뿐만 아니라 불법 사용자에 대한 네트워크 제어 및 통제기능을 수행하는 장비를 무엇이라고 하는가?

네트워크 접근 제어(NAC; Network Access Control)

  • 네트워크 접근 제어를 위한 보안 솔루션은 아래와 같다.
    • 방화벽(Firewall)
      • 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템
    • 웹 방화벽(WAF; Web Application Firewall)
      • 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안 장비
      • SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능
    • 네트워크 접근 제어(NAC; Network Access Control)
      • 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
      • 바이러스나 웜 등의 보안 위협으로부터 네트워크 제어 및 통제기능을 수행
    • 침입 탐지 시스템(IDS; Intrusion Detection System)
      • 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원접근과 보안정책 위반 행위(침입)을 실시간으로 탐지하는 시스템
    • 침입 방지 시스템(IPS; Intrusion Prevention System)
      • 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고,유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템
    • 무선 침입 방지 시스템(WIPS; Wireless Intrusion Prevention System)
      • 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
    • 통합 보안 시스템(UTM; Unified Threat Management)
      • 방화벽, 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS), VPN, 안티바이러스, 이메일 필터링 등 다양한 장비의 기능을 하나의 장비로 통합하여 제공하는시스템
    • 가상사설망(VPN; Virtual Private Network)
      • 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

Q. 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development LIfe Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론은 무엇인가?

Seven TouchPoints

  • Secure SDLC(Software Development Life Cycle)
    • Seven TouchPoints
      • 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development LifeCycle)에 통합한 소프트웨어 개발 보안 생명주기 바업론
    • MS SDL(Security Development LifeCycle)
      • 마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안 강화 프레임워크
    • OWASP CLASP
      • 개념 관점, 역할기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점 등의 활동 중심, 역할기반의 프로세스로 구성된 보안 프레임워크로 이미 운영 중인 시스템에 적용하기 쉬운 보안 개발방법론

Q. 다음은 [도서]와 [도서가격] 테이블이다. 다음 서브쿼리를 실행했을 때 결과값을 쓰시오.

25000

[도서]

책번호책명
111운영체제
222자료구조
555컴퓨터구조

[도서가격]

책번호가격
11120000
22225000
33310000
44415000

[쿼리]

1
2
3
4
SELECT (SELECT MAX(가격)
				FROM 도서 A
				WHERE A.책번호 = B.책번호 AND 책명 = '자료구조') AS 가격
FROM 도서가격 B;
  • A라는 이름으로 바꾼 ‘도서’ 테이블의 ‘책번호’와 B라는 이름으로 바꾼 ‘도서가격’ 테이블의 ‘책번호’와 같으면서 ‘책명’이 ‘자료구조’인 테이블에서의 책의 ‘가격’ 중 가장 큰 값을 출력한다.
  • 위치에 따른 서브 쿼리 유형은 다음과 같다.
    • SELECT절 서브 쿼리
      • 서브 쿼리가 SELECT절 안에 들어있는 형태
      • 스칼라 서브 쿼리(Scalar Sub-Query)라고도 불림
      • SELECT절에 오는 서브쿼리는 반드시 단일 행을 리턴해야 함
      • SUM, COUNT, MIN, MAX 등과 같은 집계 함수가 많이 쓰임
    • FROM절 서브 쿼리
      • 서브 쿼리가 FROM절 안에 들어있는 형태
      • 인라이 뷰(inline Views)라고 불림
      • 뷰(View)처럼 결과가 동적으로 생성된 테이블 형태로 사용할 수 있음
    • WHERE절 서브 쿼리
      • 서브 쿼리가 WHERE절 안에 들어있는 형태
      • 중첩 서브 쿼리(Nested Sub-Query)라고도 불림

Q. 데이터베이스 회복 기법의 종류 중 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법은 무엇인가?

체크 포인트 회복 기법(Checkpoint Recovery)

  • 회복 기법 종류에는 다음과 같다. [회로체그]
    • 로그 기반 회복 기법
      • 지연 갱신 회복 기법(Deferred Update)
        • 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않는 방법
      • 즉각 갱신 회복 기법(Immediate Update)
        • 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
    • 체크 포인트 회복 기법(Checkpoint Recovery)
      • 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법
    • 그림자 페이징 회복 기법(Shadow Paging Recovery)
      • 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 방법

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

StoreBook

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class BookStore {
	void info() {
		System.out.print("Store");
	}
}
class Book extends BookStore {
	void info() {
		super.info();
		System.out.print("Book");
	}
}
public class Soojebi {
	public static void main(String[] args) {
		BookStore bs = new Book();
		bs.info();
	}
}

  • BookStore 클래스는 Book 클래스와 상속 관계이다. BookStore 클래스의 info 멤버메서드는 화면에 “Store”를 출력한다.
  • Book클래스는 BookStore 클래스의 자식 클래스로 info 멤버 메서드에서 super.info()에서 부모 클래스의 info 메서드를 호출한다. System.out.print에서 “Book” 문자열을 화면에 출력한다.
  • main 메서드에서 BookStore 클래스의 bs라는 이름의 객체를 Book() 생성자를 이용하여 생성한다. bs.info 메서드를 호출하여 화면에 StoreBook을 출력한다.

Q. 클라우드 서비스 유형에서 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스는 무엇인가?

PaaS(Platform as a Service)

  • 클라우드 서비스 유형은 아래와 같다.
    • 인프라 형 서비스(IaasS; Infrastructure as a Service)
      • 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
      • 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
      • 하위의 클라우드 인프라를 제어하거나 관리하지 않지만, 스토리지, 애플리케이션에 대해서는 제어권을 가짐
    • 플랫폼 형 서비스(PaaS; Platform a Service)
      • 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
      • SaaS의 개념을 개발 플랫폼에도 확장한 방식으로 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 모델
      • OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
    • 소프트웨어 형 서비스(SaaS; Software as a Service)
      • 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
      • 주문형 소프트웨어라고도 함

Q. 테스트 드라이버(Test Driver)란 무엇인지 서술하시오.

테스트 드라이버는 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 상향식 통합 테스트 수행 시 사용되는 더미 모듈이다.

  • 목 객체
    • 행위를 검증하기 위해 사용되는 객체를 지칭. 수동으로 만들 수도 있고 프레임 워크를 사용해 만들 수 있다.
    • Mock 객체는 행위 검증에 사용하고, Stub은 상태 검증에 사용한다.
  • 유형은 아래와 같다.
    • 더미 객체(Dummy)
      • 테스트할 때 객체만 필요하고 해당 객체의 기능까지는 필요하지 않은 경우에 사용
      • 더미 객체의 메서드가 호출되면 정상 동작은 수행하지 않고 예외 수행
      • 단순히 인스턴스화될 수 있는 수준으로만 객체를 구현. 객체가 필요할 뿐, 객체의 기능까지는 필요하지 않은 경우에 사용
    • 테스트 스텁(Stub)
      • 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 더미 객체에의 단순 기능에 특정 상태를 가정해서 특정한 값을 리턴하거나 특정 메시지 출력
      • 더미 객체가 실제로 동작하는 것처럼 보이게 만들어 놓은 객체. 특정 값을 리턴해 주거나 특정 메시지를 출력해주는 작업. 특정 상태를 가정하여 하드코딩 된 형태이기 때문에, 로직에 따른 값의 변경을 테스트 할 수 없다.
    • 테스트 드라이버(Driver)
      • 테스트 대상 하위 모듈을 호출하고, 파라미터 전달 및 모듈 테스트 수행 후의 결과를 도출
    • 테스트 스파이(Spy)
      • 주로 테스트 대상 클래스와 협력하는 클래스로 가는 출력을 검증하는 데 사용
      • 테스트 더블로 구현된 객체에 자기 자신이 호출 되었을 때 확인이 필요한 부분을 기록하도록 구현. 행위 기반 테스트가 필요한 경우 사용
    • 테스트 더블
      • 테스트를 진행하기 어려운 경우 대신해 테스트를 진행할 수 있도록 만들어주는 객체
      • Mock 객체와 유사한 의미, 테스트 더블이 좀 더 상위 의미로 사용

Q. 테이블에서 각 튜플을 구별하는 데 기준이 되는 컬럼으로 기본 키와 대체 키를 합친 키는 무엇인지 쓰시오.

후보키(Candidate Key)

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

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

4

[영화]

영화명개봉일관객수
명량2014073017544104
괴물2006072713019740
도둑들2012072512983341
7번방의 선물2013012312810776
광해, 왕이 된 남자2012091312323291
왕의 남자2005122912302831
태극기를 휘날리며2004020511746135
해운대2009072211453338
변호인2013121811375944
실미도2003122411081000

[쿼리]

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

    영화명
    명량
    도둑들
    7번방의 선물
    광해, 왕이 된 남자
    변호인
  • SELECT 영화명 FROM 영화 WHERE 관객 수 > 12000000 결과는 다음과 같다.

    영화명
    명량
    괴물
    도둑들
    7번방의 선물
    광해, 왕이 된 남자
    왕의 남자
  • 둘을 INTERSECT한 결과는 다음과 같다.

    영화명
    명량
    도둑들
    7번방의 선물
    광해, 왕이 된 남자

Q. 성능 테스트에서 사용되는 Little’s law란 무엇인지 서술하시오.

리틀의 법칙(Little’s law)은 시스템에 오랜 시간 동안 머물러 있는 고객의 평균 수치는 오랜 시간 동안에 걸친 평균 실제 도착률과 시스템에서 고객이 머문 평균 시간을 곱한 값과 동일하다는 법칙이다.

  • 리틀의 법칙은 발명자 존 리틀 박사의 이름을 따서 만들었으며 성능 테스트에서 반드시 알아야 하는 법칙이다.
  • 리틀의 법칙은 성능 테스트에서 사용되는 목표 처리량에 요구되는 동시 사용자 수를 산정할 때 사용한다.

Q. 다음은 보안 분석 도구에 대한 설명이다. () 안에 들어갈 도구를 쓰시오.

Tripwire, Tcpdump

( ① )은/는 크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분석하는 도구로 시스템 내의 지정한 중요 디렉터리와 파일에 대한 데이터베이스를 생성한 후에 ( ① )을/를 실행할 때 새로 생성된 데이터베이스와 비교하여 그 차이점을 체크함으로써 시스템 관리자가 시스템 내에서 어떠한 변화가 있는지 감지할 수 있게 해주는 도구이다. 반면에 ( ② )은/는 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램으로 스니핑 도구의 일종으로 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격유형 분석을 위한 패킷 분석 시 활용할 수 있는 도구이다.

  • 보안 분석 도구 중 Tripwire, Tcpdump는 다음과 같다.
    • Tripwire
      • 크래커가 침입하여 시스템의 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분석하는 도구로 시스템 내 지정한 중요한 디렉토리와 파일에 대한 데이터베이스를 생성한 후에 Tripwire를 실행할 때 새로 생성된 데이터베이스와 비교하여 그 차이점을 체크함으로써 시스템 관리자가 시스템 내에서 어떠한 변화가 있는지 감지할 수 있게 해주는 도구
    • Tcpdump
      • 네트워크 인터페이스를 거치는 패킷의 내용을 출력해준즌 프로그램으로 스니핑 도구의 일종으로 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격유형 분석을 위한 패킷 분석 시 활용할 수 있는 도구

Q. 두 개 이상의 시스템을 클러스터로 구성하여 하나의 시스템이 장애 시 최소한의 서비스 중단을 위해 다른 시스템으로 신속하게 시스템 대체 작동(Fail Over)하는 기술을 무엇이라고 하는가?

고가용성(HA; High Availability)

  • 두 개 이상의 시스템을 클러스터로 구성하여 하나의 시스템이 장애 시 최소환의 서비스 중단을 위해 다른 시스템으로 신속하게 시스템 대체 작동(Fail Over)하는 기술은 고가용성이라고 한다.

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

이미지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Soojebi {
	public static void main(String[] args) {
		int [][]arr = new int[3][3];
		
		init(arr);
		hourGlass(arr);
		arrayPrint(arr);
	}
	
	public static void init(int arr[][]) {
		for(int i=0; i<arr.length; i++) {
			for(int j=i; j<arr[0].length; j++) {
				arr[i][j] = 0;
			}
		}
	}
	public static void hourGlass(int arr[][]) {
		int v = 0;
		for(int i=0; i<arr.length; i++) {
			for(int j=i; j<arr[0].length; j++) {
				arr[i][j] = ++v;
			}
		}
	}
	public static void arrayPrint(int arr[][]) {
		for(int i=0; i<arr.length; i++) {
			for(int j=0; j<arr[0].length; j++) {
				if(arr[i][j] == 0) {
					System.out.print("");
				}
				else {
					System.out.print(arr[i][j]);
				}
			}
			System.out.println("");		
		}
	}
		
}
  • arr 3행 3열 크기의 배열 생성
  • init 함수에 arr 전달
    • init 함수는 main 함수로부터 arr을 전달받음
    • arr.length는 행의 개수로 3이기 때문에 i는 0부터 3 미만까지 반복
    • arr[0].length는 arr[0]의 개수로 3이기 때무에 j는 0부터 3 미만까지 반복
    • arr[i][j]의 값을 0으로 대입
  • hourGlass 함수에 arr 전달
    • hourGlass 함수는 main 함수로부터 arr을 전달받음
    • 바깥쪽 for 문은 i=0부터 3 미만일 때까지 반복
    • 안쪽 for 문은 j=i부터 3 미만일 때까지 반복
    • v값을 1 증가시킨 후에 v값을 arr[i][j]에 대입
  • arrayPrint 함수에 arr 전달
    • arrPrint 함수는 main 함수로부터 arr을 전달받음
    • arr[i][j]가 0이면 띄어쓰기 1칸으로 표시하고, 그렇지 않으면 값을 출력
    • 안쪽 for 문이 종료된 후에 println 함수를 실행하는데, println “”만 있으므로 개행만 수행
    • hourGlass에서 값은 다음과 같이 저장된다.

      ijarr[i][j]
      001
      012
      023
      114
      125
      226

Q. 광 전송 기술 중 ( ① )은/는 파장이 서로 다른 복수의 광신호를 동시에 이용하는 것으로 광섬유를 다중화하는 방식으로 광섬유를 이용한 통신 기술의 하나이다. 또한 ( ② )은/는 대용량 데이터 전송을 위하여 파장 대역 채널을 조밀하게 나누어 규격화한 광 전송 기술로 일정 파장 대역에 걸쳐 수십, 수백 개 파장의 광신호를 동시에 변조하는 기술이다. () 안에 들어갈 용어를 쓰시오.

WDM(Wavelength Division Multiplexing), DWDM(Dense Wavelength Division Multiplexing)

  • 광전송 기술인 WDM과 DWDM 기술은 아래와 같다.
    • WDM(Wavelength Division Multiplexing)
      • 파장이 서로 다른 복수의 광신호를 동시에 이용하는 것으로 광섬유를 다중화하는 방식
      • 광섬유를 이용한 통신 기술의 하나를 의미함
      • 빛의 파장 축과 파장이 다른 광선은 서로 간섭을 일으키지 않는 성질을 이용함
    • DWDM(Dense Wavelength Division Multiplexing)
      • 대용량 데이터 전송을 위하여 파장 대역 채널을 조밀하게 나누어 규격화한 광전송 기술
      • 일정 파장 대역에 걸쳐 수십, 수백 개 파장의 광신호를 동시에 변조


참고 자료


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