Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
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
Archives
Today
Total
관리 메뉴

Ga0's

2020년 4∙5회 통합 정보처리기사 실기 본문

Study IT/정보처리기사

2020년 4∙5회 통합 정보처리기사 실기

Ga0Kwon 2023. 4. 21. 00:10

문제4

데이터베이스 회복(Recovery)기법에 관련된 다음 설명에서 괄호에 공통적으로 들어갈 가장 알맞은 답을 쓰시오.

 

(        )은 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB에 그 내용을 반영하는 기법으로, 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들을 로그(log)에 보관시킨다. (       )에서 회복 작업을 수행할 경우 Redo와 Undo 모두 수행 가능하다.

 

∴ 즉시갱신 회복 기법 (Immediate Update)

 

장애의 유형

 ▪ 트랜잭션 장애 : 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황

 ▪ 시스템 장애 : H/W 시스템 자체에서 발생할 수 있는 에러 상황

 ▪ 미디어 장애 : 디스크 자체의 손상으로 발생할 수 있는 에러 상황

 

Undo와 Redo

 ▪ Undo : 트랜잭션 로그를 이용하여 오류와 관련된 모든 변경을 취소하여 복구 수행

 ▪ Redo : 트랜잭션 로그를 이용하여 오류가 발생한 트랜잭션을 재실행하여 복구 수행

 

로그파일을 이용한 복구

 

 ▪ 로그파일에 트랜잭션의 시작(START)와 종료(COMMIT)이 있는 경우 REDO 수행

 ▪ 로그파일에 트랜잭션의 시작(START)는 있고 종료(COMMIT)은 없는 경우 UNDO 수행

 

회복기법

 ▪  로그기반 회복 기법

지연갱신 회복 기법
(Deferred Update)
 ▪  트랜잭션의 부분 완료 상태에선 변경 내용을 로그 파일에만 저장
 ▪  커밋이 발생하기 전까진 데이터베이스에 기록하지 않음
 ▪  중간에 장애가 생기더라도 데이터베이스에 기록되지 않았으므로 UNDO가 필요 없음
 ▪  미실행된 로그 폐기

즉시갱신 회복 기법
(Immediate Update)
 ▪  트랜잭션 수행 도중에도 변경 내용 즉시 데이터베이스 기록
 ▪  커밋 발생 이전의 갱신은 원자성이 보장되지 않는 미완료 갱신이므로 장애 발생시 UNDO 필요

 ▪  검사적 회복 기법

Checkpoint Recovery  ▪  체크포인트(Checkpoint) 회복 기법이라고도 함
 ▪  장애 발생 시 검사점(checkpoint)이전에 처리된 트랜잭션은 회복에서 제외하고
 ▪  검사점 이후에 처리된 트랜잭션은 회복 작업 수행
      ▪ 검사점 이후, 장애 발생 이전에 commit이 완료된 경우 Undo 수행
      ▪ 장애 발생 시점까지 commit 되지 못한 경우 Redo 수행  

 ▪  그림자 페이징 회복 기법

Shadow Paging Recovery  ▪ 트랜잭션이 실행되는 메모리 상의 Current page Table과 하드디스크의 shadow page Table 이용
 ▪ 트랜잭션 시작시점에 Current Page Table과 동일한 Shadow Page Table 생성
 ▪ 트랜잭션이 성공적으로 완료될 경우 Shawdow Page Table 삭제
 ▪ 트랜잭션이 실패할 경우 Shadow Page Table을 Current Page Table로 함 

 ▪ 미디어 회복 기법

Media Recovery  ▪ 디스크와 같은 비휘발성 저장 장치가 손상되는 장애 발생을 대비한 회복 기법
 ▪ 데이터베이스 내용을 백업, 미러링, RAID등을 통해 별도의 물리적 저장 장치에 덤프
 ▪ 미디어 장애 시 가장 최근 덤프로 복구하고 로그 파일을 참조해 덤프 이후의 작업 Redo
 ▪ Undo는 사용되지 않음

*RAID :  개별 디스크드라이브(= 저장장치)를 여러 개를 묶어 고용량, 고성능인 저장 장치 한 개와 같은 효과를 얻기 위해 개발된 기법이다.

 

▪ ARIES 회복 기법

REDO 중 Repeating history  ▪ 붕괴가 발생했을 때 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행한다.
 ▪ 붕괴가 발생했을 때 완료되지 않은 상태였던 진행 트랜잭션을 Undo
UNDO 중 Logging  ▪ Undo를 할 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 Undo 연산은 반복하지 않음.

 

문제5

다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

   
    lol = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
    print(lol[0])
    print(log[2][1])
    for sub in lol :
        for item in sub :
            print(item, end = " ")
        print()
 

 

답 :

[ 1, 2, 3]

7

1 2 3

4  5

6 7 8 9

 

파이썬에서 print()를 쓰면 자동 줄 바꿈이다. print() 쓸때마다 end = 를 지정해주지 않으면 그냥 줄바꿈

  일단, 처음은 print(lol[0])이다. 해당 lol 리스트(배열)은 배열을 요소로 받는 배열이다. => 즉 lol[0] = [1, 2, 3] 이다.(list니까)

  print(log[2][1])은 두번째 [6, 7, 8, 9]의 1인덱스 요소를 출력하면된다. => 7

  lol을 반복문을 돌아 sub에 저장하고, 그 sub의 반복문을 또 돌아서 item에 요소를 저장하여 print(item, end = " ")를 통해 출력한다. => 1 2 3 을 출력하고 (사이는 공백이 존재한다) for item in sub의 첫번째 반복문은 끝났으니 빠져나가면 print()을 만난다. 즉 줄바꿈을 한다.

  그리고, sub가 [ 4, 5 ] 일때 반복하여 요소를 꺼낸다 => 4 5 를 출력하고, 두번째 반복문이 끝났으니 아래 print()를 만나 다시 줄바꿈

마지막으로 sub가 [ 6, 7, 8, 9]일 때 반복하여 요소를 꺼낸다 6 7 8 9 를 출력하고 세번째 반복문이 끝났으니 아래 print()를 만나 줄바꿈을 하고 for sub in lol : 의 반복문도 끝나서 프로그램은 종료된다.

 

 

문제10

다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

   
   #include<stdio.h>

    main(){
        char *p = "KOREA";
        printf("%s\n", p); //(1)
        printf("%s\n", p+3); //(2)
        printf("%s\n", *p); //(3)
        printf("%s\n", *(p + 3)); //(4)
        printf("%s\n", *p + 2); //(5)
    }
 

답 :

KOREA

EA

K

E

M

 

*(별)이 없다면 해당 주소의 값을 받아온다.

  (1) : p의 주소에 있는 값을 받아오기 때문에 KOREA가 출력되고 줄바꿈(\n)

  (2) : p + 3의 주소의 값 부터 끝까지 출력함으로 EA가 출력되고 줄바꿈(\n)

  (3) : *p는 p가 가르키는 곳을 출력한다. -> p는 시작 주소를 가르키고 있다. 즉, K를 출력하고 줄바꿈(\n)

  (4) : *(p+3)은 p+3번째의 문자를 출력하면된다 즉 E가 출력되고 줄바꿈(\n)

  (5) : *p는 일단 K를 가르키고 그 K라는 문자에 +2를 했다 => 아스키 코드 계산이 된다 K 다음 다음이 M임으로 M이 출력되고 줄 바꿈(\n)

 

문제11

네트워크에 대한 다음 설명에 해당하는 용어를 쓰시오.

 

 ▪ 우리말로 번역하면 '네트워크 주소 변환'이라는 의미의 영문 3글자 약자이다.

 ▪ 1개의 정식 IP주소에 다량의 가상 사설 IP 주소를 할당 및 연결하는 방식이다.

 ▪ 1개의 IP주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서만 1개만으로 제한되는 문제가 있으나, 이 때에는 IP마스커레이드(Masquerade)를 이용하면 된다.

 

∴ NAT, Network Address Translation

 

NAT(Network Address Translation, 네트워크 주소 변환)

 ▪ 한 개의 정식 IP주소에 대량의 가상 사설 IP주소를 할당 및 연결하는 기능

 ▪ 한 개의 IP주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 한 개로 제한되는 문제가 있지만 IP 마스커레이드 이용하여 해결할 수 있다.

 * IP마스커레이드(Masquerade) : Linux의 NAT기능으로 리눅스 서버를 통해 다른 네트워크에 접속할 수 있도록 해준다.

 

문제12

분산 컴퓨팅에 대한 다음 설명에 해당하는 용어를 쓰시오.

 

 ▪ 오픈 소스 기반 분산 컴퓨팅 플랫폼이다.

 ▪ 분산 저장된 데이터들은 클러스트 환경에서 병렬 처리된다.

 ▪ 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발되었다.

 ▪ 더그 커팅과 마이크 캐퍼렐라가 개발했으며, 구글의 맵리듀스(MapReduce)엔진을 사용하고 있다.

 

∴ 하둡(Hadoop)

 

DB 관련 신기술

빅데이터
(Big Data)
 ▪ 기존의 과니 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합
 ▪ 빅데이터가 주목받고 있는 이유는 기억이나 정부, 포털 등이 빅데이터를 효과적으로 분석함으로써 미래를 예측해 최적의 대응 방안을 찾고, 이를 수익으로 연결하여 새로운 가치를 창출하기 때문임
브로드 데이터
(Broad Data)
 ▪ 다양한 채널에서 소비자와 상호 작용을 통해 생성된 것으로, 기업 마게팅에 있어 효율적이고 다양한 데이터이며, 이전에 사용하지 않거나 알지 못했던 새로운 데이터나 기존 데이터에 새로운 가치가 더해진 데이터
메타 데이터
(Meta Data)
 ▪ 일련의 데이터를 정의하고 설명해 주는 데이터
 ▪ 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미함
 ▪ HTML 문서에서는 메타 태그 내의 내용이 메타 데이터임

디지털 아카이빙
(Digital Archiving)
 ▪ 디지털 정보 자원을 장기적으로 보존하기 위한 작업
 ▪ 아날로그 콘텐츠는 디지털로 변환 후 압축해서 저장하고, 디지털 콘텐츠도 체계적으로 분류하고 메타데이터를 만들어 DB화하는 작업임
하둡
(Hadoop)
 ▪ 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
 ▪ 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크
 ▪ 구글, 야후 등에 적용되고 있음

맵리듀스
(MapReduce)
 ▪ 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
 ▪ 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는  Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce 작업을 수행함
 ▪ Google에 의해 고안되었으며, 대표적인 대용량 데이터 처리를 위한 병렬 처리 기법으로 많이 사용되고 있음

타조
(Tajo)
 ▪ 오픈 소스 기반 분산 컴퓨팅 플랫폼인 아파치 하둡(Apache Hadoop) 기반의 분산 데이터 웨어하우스 프로젝트

*데이터 웨어하우스(Data Warehouse)  
  - 기업의 의사결정 과정에 효과적으로 사용될 수 있도록 여러 시스템에 분산되어 있는 데이터를 주제별로 통합 ∙ 축적해 놓은 데이터베이스
데이터 다이어트
(Data Diet)
 ▪ 데이터를 삭제하는 것이 아니라 압축하고, 중복된 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업
데이터 마이닝
(Data Mining)
 ▪ 대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호 관계를 규명하여 일정한 패턴을 찾아내는 기법
OLAP
(Online Analytical Processing)
 ▪ 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
 ▪ OLAP 연산 : Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing

 

 

문제13

특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클로, 전수 테스트가 불가능한 경우 사용하고, 경계값 및 구간별 예상값 결과 작성시 사용하는 오라클을 쓰시오.

 

∴ 샘플링(Sampling)오라클

 

테스트 케이스(Test Case)

 ▪ 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

 ▪ 테스트 케이스를 미리 설계하면 테스트 오류 방지, 테스트 수행에 필요한 인력, 시간 등의 자원 낭비를 줄일 수 있다.

 

테스트 시나리오(Test Scenario)

 ▪ 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합

 ▪ 테스트 케이스를 적용하는 구체적인 절차를 명세한다.

 ▪ 테스트 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등이 설정되어 있다.

 

테스트 오라클(Test Oracle)

 ▪ 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법 및 활동

 ▪ 결과를 판단하기 위해 테스트 케이스에 대한 예상 결과를 계산하거나 확인한다.

 ▪ 테스트 오라클의 특징

   - 제한된 검증 : 테스트 오라클은 모든 테스트 케이스에 적용할 수 없음.

   - 수학적 기법 : 테스트 오라클의 값을 수학적 기법을 이용하여 구할 수 있음.

   - 자동화 기능 : 테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등을 자동화할 수 있음

 

 ▪ 테스트 오라클의 종류

참(True)
오라클
 ▪ 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클
 ▪ 발생된 모든 오류를 검출할 수 있음
샘플링(sampling)
오라클
 ▪ 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클로 전수 테스트가 불가능한 경우 사용
추정(Heuristic)
오라클
 ▪ 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서 추정으로 처리하는 오라클
일관성 검사(consistent)
오라클
 ▪ 애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클

 

문제16

다음 설명에 해당하는 운영체제(OS)를 쓰시오.

 

 ▪ 1960년대 AT&T 벨(Bell) 연구소가 MIT, General Electric사와 함께 공동 개발한 운영체제이다.

 ▪ 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제이다.

 ▪ 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.

 ▪ 트리 구조의 파일 시스템을 갖는다.

 

∴ UNIX

 

Windows

 ▪ 1990년대 마이크로소프트(Microsoft)사가 개발한 운영체제

 ▪ Windows의 주요 특징

그래픽 사용자 인터페이스
(GUI; Graphic User Interface)
 ▪ 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식
선점형 멀티태스킹
(Preemptive Multi-Tasking)
 ▪ 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료 시키고 모든 시스템 자원을 반환하는 방식
PnP(Plug and Play,
자동 감지 기능)
 ▪ 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능
OLE(Object Linking and
Embedding)
 ▪ 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
255자의 긴 파일명  ▪ / \ * ? " < > |를 제외한 모든 문자 및 공백을 사용하여 최대 255자까지 파일 이름을 지정할 수 있음
Single-User 시스템  ▪ 컴퓨터 한대를 한사람만이 독점해서 사용함

 UNIX

 ▪ 1960년대 AT&T 벨(Bell) 연구소가 MIT, General Electric사와 함께 공동 개발한 운영체제이다.

 ▪ 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제이다.

 ▪ 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.

 ▪ 트리 구조의 파일 시스템을 갖는다.

 ▪ 소스 코드가 공개된 개방형 시스템(Open System)이다.

 ▪ 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.

 ▪ UNIX 시스템의 구성

커널(Kernel)  ▪ 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당함
 ▪ UNIX의 가장 핵심적인 부분임
 ▪ 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입∙출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능을 수행함

쉘(Shell)  ▪ 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기임
 ▪ 시스템과 사용자 간의 인터페이스를 담당함
 ▪ 종류 : Bourne Shell, C Shell, Korn Shell

유틸리티 프로그램
(Utility Program)
 ▪ 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용함
 ▪ DOS에서의 외부 명령에 해당됨
 ▪ 종류 : 에디터, 컴파일러, 인터프리터, 디버거 등

 

LINUX

 ▪ 1991년 리눅스 토발즈(Linus Torvalds)가 UNIX를 기반으로 개발한 운영 체제

 ▪ 프로그램 소스 코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있다.

 ▪ 다양한 플랫폼에 설치하여 사용이 가능하며, 재배포도 가능하다.

 ▪  UNIX와 완벽하게 호환된다.

 ▪ 대부분의 특징이 UNIX와 동일하다.

 

 MacOS

 ▪ 1980년대 애플(Apple)사가 UNIX를 기반으로 개발한 운영체제

 ▪ 아이맥(iMac)과 맥북(MacBook) 등 애플 사에서 생산하는 제품에서만 사용이 가능하다.

 ▪ 드라이버 설치 및 install과 uninstall의 과정이 단순하다.

 

Android

 ▪ 구글(Google)사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제이다.

 ▪ 모든 코드가 공개된 개방형 소프트웨어이다.

 ▪ 자바와 코틀린으로 애플리케이션을 작성한다.

 ▪ 스마트폰 등의  휴대용 장치에서 주로 사용된다.

 

iOS

 ▪ 애플(Apple)사에서 개발한 유닉스 기반의 모바일 운영체제이다.

 ▪ 아이폰, 아이팟 터치, 아이패드 등에 내장된다.

 ▪ 애플사 고유의 모바일 운영체제로 타사 제품은 iOS를 탑재할 수 없다.

 

 

문제17

피투피(P2P) 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(Peer)의 디지털 장비에 분산 저장하는 기술을 쓰시오.

 

∴ 블록체인(Blockchain)

 

SW 관련 신기술

인공지능
(AI ; Artificial Intelligence)
 ▪ 인간의 두뇌와 같이 컴퓨터 스스로 추론, 학습, 판단 등 인간지능적인 작업을 수행하는 시스템
 ▪ 인공지능의 응용 분야 : 패턴 인식, 전문가 시스템, 로봇 공학 등
뉴럴링크
(Neuralink)
 ▪ 미국의 전기자동차 회사 테슬라(Tesla)의 CEO 일론 머스크(Elon Musk)가 사람의 뇌와 컴퓨터를 결합하는 기술을 개발하기 위해 2017년 3월에 설립한 회사
 ▪ 뉴럴링크가 개발하고 있는 기술은 '신경 레이스(Neural Lace)'로, 작은 전극을 뇌에 이식함으로써 생각을 업로드하고 다운로드하는 것을 목표로 삼고 있음
딥 러닝
(Deep Learning)
 ▪ 인간의 두뇌를 모델로 만들어진 인공 신경망(ANN; Artificial Neural Network)을 기반으로 하는 기계 학습 기술
전문가 시스템
(Expert System)
 ▪ 의료 진단 등과 같은 특정 분야의 전문가가 수행하는 고도의 업무를 지원하기 위한 컴퓨터 응용 프로그래밍
증강 현실
(AR; Augmented Reality)
 ▪ 실제 촬영한 화면에 가상 정보를 부가하여 보여주는 기술로, 혼합 현실(MR; Mixed Reality)이라고도 부름
블록체인
(Blockchain)
 ▪ P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(Peer)의 디지털 장비에 분산 저장하는 기술
분장 원장 기술
(DLT; Distribited
Ledger Technology)
 ▪ 중앙 관리자나 중앙 데이터 저장소가 존재하지 않고 P2P 망내의 참여자들에게 모든 거래 목록이 분산되어 거래가 발생할 때마다 지속적으로 갱신되는 디지털 원장을 의미합
해시(Hash)  ▪ 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
양자 암호키 분배
(QKD; Quantum Key
Distribution)
 ▪ 양자 통신을 위해 비밀키를 분배하여 관리하는 기술
 ▪ 두 시스템이 암호 알고리즘 동작을 위한 비밀키를 안전하게 공유하기 위해 양자 암호키 분배 시스템을 설치하여 운용하는 방식으로 활용됨
프라이버시 강화 기술
(PET; Privacy Enhancing
Technology)
 ▪ 개인정보 침해 위험을 관리하기 위한 핵심 기술
 ▪ 암호화, 익명화 등 개인정보를 보호하는 기술에서 사용자가 직접 개인정보를 통제하기 위한 기술까지 다양한 사용자 프라이버시 보호 기술을 통칭함
공통 평가 기준
(CC; Common Criteria)
 ▪ 1999년 6월 8일 ISO 15408 표준으로 채택된 정보 보호 제품 평가 기준
 ▪ 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보 보호 기능과 이에 대한 사용 환경 등급을 정한 기준
개인정보 영향 평가 제도
(PIA; Privacy Impact
Assessment)
 ▪ 개인 정보를 활용하는 새로운 정보 시스템의 도입 및 기존 정보 시스템의 중요한 변경 시 시스템의 구축 ∙ 운영이 기업의 고객은 물론 국민의 사생활에 미칠 영향에 대해 미리 조사 ∙ 분석 ∙ 평가하는 제도
그레이웨어
(Grayware)
 ▪ 소프트웨어를 제공하는 입장에서는 악의적이지 않은 유용한 소프트웨어라고 주장할 수 있지만 사용자 입장에서는 유용할 수도 있고 악의적일 수 있는 애드워드, 트랙웨어, 기타 악성 코드나 악성 공유 웨어를 말함.

 *애드웨어 : 소프트웨어 자체에 광고를 포함하여 이를 보는 대가로 무료로 사용하는 소프트웨어
 *트랙웨어 : 적절한 사용자 동의 없이 사용자 정보를 수집하는 프로그램으로 스파이웨어(spyware)라고도 불림
매시업
(Mashup)
 ▪ 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술, 즉 다수의 정보원이 제공하는 콘텐츠를 조합하여 하나의 서비스로 제공하는 웹  사이트 또는 애플리케이션을 말함
리치 인터넷 애플리케이션
(RIA; Rich
Internet Application)
 ▪ 플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기준 HTML 보다 역동적이고 인터랙티브한 웹 페이지를 제공하는 신개념 프래시 웹 페이지 제작 기술
시맨틱 웹
(Semantic Web)
 ▪ 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹
증발폼
(Vaporware)
 ▪ 판매 계획 또는 배포 계획은 발표되었으나 실제로 고객에게 판매되거나 배포되지 않고 있는 소프트웨어
오픈 그리드 서비스 아키텍처
(OGSA; Open Grid
Service Architecture)
 ▪ 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준
  * 그리드(Grid) : 한번에 한 곳만 연결할 수 있던 기존 웹(WWW)과는 달리 동시에 여러 곳에 연결할  수 있는 인터넷 망 구조
서비스 지향 아키텍처
(SOA; Service 
Oriented Architecture)
 ▪ 기업의 소프트웨어 인프라인 정보 시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보 기술 아키텍처
 ▪ SOA 기반 애플리케이션 구성 계층
    - 표현(Presentation) 계층
    - 업무 프로세스(Biz-Process) 계층
    - 서비스 중간(Service Intermediary) 계층
    - 애플리케이션(Application) 계층
    - 데이터 저장(Persistency) 계층
서비스형 소프트웨어
(SaaS; Software as a
Service)
 ▪ 소프트웨어의 여러 기능 중에서 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 소프트웨어
소프트웨어 에스크로
(Software Escrow)
 ▪ 소프트웨어 개발자의 지식재산권을 보호하고 사용자는 저렴한 비용으로 소프트웨어를 안정적으로 사용 및 유지보수 할 수 있도록 소스 프로그램과 기술 정보 등을 제 3의 기관에 보관하는 것
복잡 이벤트 처리
(CEP ; Complex Event 
Processing)
 ▪ 실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
디지털 트윈
(Digital Twin)
 ▪ 현실 속의 사물을 소프트웨어로 가상화한 모델
 ▪ 자동차, 항공, 에너지, 국방, 헬스케어 등 여러 분야에서 주목받고 있음
 ▪ 실제 물리적인 자산을 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있음
 ▪ 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설꼐부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있음.

 

문제19

다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

   
    class Parent{
        int compute(int num){
            if(num <= 1) return num;
            return compute(num-1) + compute(num-2);
        }
    }

    class Child extends Parent{
        int compute(int num){
            if(num <= 1) return num;
            return compute(num-1) + compute(num-3);
        }
    }

    public class Test{
        public static void main(String[] args){
            Parent obj = new Child();
            System.out.print(obj.compute(4));
        }
    }
 

 ▪ main() 메소드를 먼저 보면 Parent obj로 Child의 생성자를 받긴 하지만, 이는 Child(Parent의 자식클래스) 형 변환으로 볼 수 있다.

 ▪ 따라서 obj.compute(4)의 compute는 자식 클래스인 Child의 compute를 실행하는 것(재정의한 compute = override)이다.

 

∴ 1

 

문제20

데이터베이스 보안에서 가용성(Availabilby)에 대해 간략히 서술하시오.

 

인가받은 사용자는 언제라도 시스템 내의 정보 자원을 사용할수 있다는 것이다.

 

Secure SDLC

보안상 안전한 소프트웨어를 개발하기 위해 SDLC(프트웨어 애플리케이션을 구축하는 데 요구되는 몇 가지 작업을 개략적으로 설명)에 보안 강화를 위한 프로세스를 포함한 것을 의미

 

DB 보안 요소


 ▪ 기밀성: 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됩니다.
 ▪ 무결성: 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있습니다.
 ▪ 가용성: 인가받은 사용자는 언제라도 사용할 수 있습니다.
 ▪ 인증: 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위를 의미
 ▪ 부인 방지: 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공합니다.

4