포스트

모의고사 12회

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

QoS

()은/는 정보 시스템 사용자가 만족할 수 있는 서비스를 제공하고 지속적인 관리를 통해 서비스의 품질을 유지 및 증진시키기 위한 일련의 활동

  • QoS(서비스 품질)는 조직 네트워크의 성능을 최적화하도록 설계된 일련의 기술 및 기술이다. 이 기술은 우선 순위가 높고 성능에 민감한 애플리케이션이 제한된 대역폭과 높은 네트워크 정체에서도 계속 효과적으로 작동할 수 있도록 하는 데 도움이 될 수 있다.

Q. 다음이 설명하는 소프트웨어 개발방법론은 무엇인가?

CBD(Component Based Development) 개발방법론

  • 기존의 시스템 및 소프트웨어를 구성하고 있는 컴포넌트를 조립해서 하나의 새로운 애플리케이션을 만드는 소프트웨어 개발 방법론이다.
  • 소프트웨어를 완제품으로 개발하던 방식과 달리 부품 역할을 하는 소프트웨어 컴포넌트를 기능별로 개발하고 각자에 필요한 것은 선택하여 조립함으로써 소프트웨어 개발에 드는 노력과 시간을 절약할 수 있다.
  • 기존의 시스템 및 소프트웨어를 구성하고 있는 컴포넌트를 조립해서 하나의 새로운 애플리케이션을 만드는 소프트웨어 개발방법론은 DBD 개발방법론이다.
  • CBD 방법론은 소프트웨어를 완제품으로 개발하던 방식과 달리 부품 역할을 하는 소프트웨어 컴포넌트를 기능별로 개발하고 각자에 필요한 것은 선택하여 조립함으로써 소프트웨어 개발에 드는 노력과 시간을 절약할 수 있다.

Q. 빅데이터 가공 기술 중 ( ① )은/는 대용량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 ( ① )라틴이라는 자체 언어를 제공하는 기술이고, ( ② )은/는 하둡 기반은 DW 솔루션으로 SQL과 매우 유사한 HiveQL이라는 쿼리를 제공하는 기술이다. () 안에 들어갈 용어를 쓰시오.

피그(Pig), 하이브(Hive)

  • 빅데이터 가공 기술 중 피그와 하이브의 특징은 다음과 같다.

    수집기술설명
    피그(Pig)대용량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그 라틴이라는 자체 언어를 제공하는 기술
    하이브(Hive)하둡 기반의 DW(데이터 웨어하우스) 솔루션으로 SQL과 매우 유사한 HiveQL이라는 쿼리를 제공하는 기술

Q. SQL 삽입 공격유형 중 DB 쿼리에 대한 오류 메시지를 반환하지 않으면 공격을 할 수 없는 Error-Based SQL Injection과 달리 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법은 무엇인가?

Blind SQL Injection

  • SQL 삽입 공격유형 중 DB 쿼리에 대한 오류 메시지를 반환하지 않으면 공격을 할 수 없는 Error-Based SQL Injection과 달리 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법은 Blind SQL Injection

Q. 다음은 성적 테이블의 일부이다. 이름, 과목, 성적을 출력하려고 한다. 조회 결과를 성적순(오름차순)으로 출력” 하는 쿼리를 작성하시오.

1
2
3
SELECT *
FROM 성적
ORDER BY 성적 [ASC];

[성적]

이름과목성적
김준수프로그래밍3.8
이몽룡자료구조4.0
이성계자료구조4.1
김철민C++3.6

[결과]

이름과목성적
김철민C++3.6
김준수프로그래밍3.8
이몽룡자료구조4.0
이성계자료구조4.1

Q. C언어를 이용해 5개의 숫자 중 홀수의 개수가 몇 개인지 알려주는 기능을 구현하고자 한다. 밑줄에 들어갈 가장 적합한 답을 쓰시오.

!=

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void main() {
	int i, cnt=0;
	int arr[5];
	
	for(i=0; i<5; i++)
		scanf("%d", &arr[i]);
	
	for(i=0; i<5; i++) {
		if(arr[i] % 2 ___ 0)
			cnt = cnt +1;
	}
	
	printf("%d", cnt);
}

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

SSL/TLS

  • 데이터 암호화 전송을 위한 주요 기술은 다음과 같다.
    • IPSec
      • IP 계층에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 터널링 프로토콜
    • SSL/TLS
      • 전송 계층과 응용 계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
    • S-HTTP
      • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하는 프로토콜
  • 트래픽은 네트워크 내부에 일정 시간동안 흐르는 데이터의 양을 말한다.

Q. EAI의 구축 유형으로 그룹 내부에는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식을 무엇이라 하는가?

하이브리드(Hybrid)

  • EAI의 구축 유형은 다음과 같다.
    • 포인트 투 포인트(Point-to-Point)
      • 가장 기초적인 애플리케이션 통합방법으로 1:1 단순 통합방법
    • 허브 앤 스포크(Hub & Spoke)
      • 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
      • 허브 장애 시 전체 장애 발생
    • 메시지 버스(Message Bus)
      • 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식
      • 뛰어난 확장성과 대용량 데이터 처리 가능
    • 하이브리드(Hybrid)
      • 그룹 내부는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식

Q. 다음이 설명하고 있는 시스템 보안 공격 기법은 무엇인가?

레이스 컨디션 공격(Race Condition Attack)

실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격 기법

  • 주요 시스템 보안 공격 기법은 다음과 같다.
    • 포맷 스트링 공격(Format String Attack)
      • 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법
    • 레이스 컨디션 공격(Race Condition Attack)
      • 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하게 하는 공격 기법
    • 키로거 공격(Key Logger Attack)
      • 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
    • 루트킷(Rootkit)
      • 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모
  • race condition
    • 두 개 이상의 프로세스가 공통 자원을 병행적으로(concurrently) 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Race의 뜻 그대로, 간단히 말하면 경쟁하는 상태, 즉 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말한다.
    • 경쟁 프로세스의 경우, 세 가지 제어 문제에 직면한다. Mutual exclusion(상호 배제), Deadlock(교착 상태), Starvation(기아 상태)이다.
  • 심볼릭 링크(symbolic link)
    • 링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크이다. 윈도우의 바로가기와 비슷한 개념이다.
    • 특정 폴더에 링크를 걸어 NAS(Network Attached Storage), library 원본 파일을 사용하기 위해 심볼릭 링크를 사용한다.
      • NAS(Network Attached Storage)는 중앙 집중식 파일 서버로, 여러 사용자가 Wi-Fi 또는 이더넷 케이블을 통해 TCP/IP 네트워크에서 파일을 저장하고 공유할 수 있다. 일반적으로 NAS 박스, NAS 장치, NAS 서버 또는 NAS 헤드라고도 한다.

Q. 다음은 [자격증]과 [응시료] 테이블이다. [자격증]과 [응시료] 테이블을 조인하여 [결과] 테이블처럼 나오도록 쿼리를 작성하시오.

1
2
3
SELECT A.자격증번호, A.자격증명, B.자격증번호, B.응시료
FROM 자격증 A
CROSS JOIN 응시료 B;

[자격증]

자격증번호자격증명
1정보처리기사
2빅데이터분석기사
11컴퓨터시스템응용기술사
12정보관리기술사

[응시료]

자격증번호응시료
120000
319000
1260000
1362000

[결과]

자격증 번호자격증명자격증 번호응시료
1정보처리기사120000
2빅데이터분석기사120000
11컴퓨터시스템응용기술사120000
12정보관리기술사120000
1정보처리기사319000
2빅데이터분석기사319000
11컴퓨터시스템응용기술사319000
12정보관리기술사319000
1정보처리기사1260000
2빅데이터분석기사1260000
11컴퓨터시스템응용기술사1260000
12정보관리기술사1260000
1정보처리기사1362000
2빅데이터분석기사1362000
11컴퓨터시스템응용기술사1362000
12정보관리기술사1362000

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

animaldog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
abstract class Aniaml {
	abstract void value();
	void key() {
		System.out.print("animal");
	}
}
class Dog extends Animal {
	void value() {
		System.out.print("dog");
	}
}
public class Soojebi {
	public static void main(String[] args) {
		Animal d = new Dog();
		d.key();
		d.value();
	}	
}

Q. 트랜잭션의 상태 중 트랜잭션의 정상적인 실행이 더이상 진행될 수 없을 때 가지는 상태를 무엇이라 하는가?

실패 상태(Failed)

  • 트랜잭션의 상태 변화 및 설명은 다음과 같다. [활부완실철]
    • 활동 상태(Active)
      • 초기 상태, 트랜잭션이 실행 중일 때 가지는 상태
    • 부분 완료 상태(Partially Committed)
      • 마지막 명령문이 실행된 후에 가지는 상태
    • 완료 상태(Committed)
      • 트랜잭션이 성공적으로 완료된 후 가지는 상태
    • 실패 상태(Failed)
      • 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
    • 철회 상태(Aborted)
      • 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태

Q. 소스 코드 품질분석 도구 유형 중 동적 분석 도구의 개념에 관해서 서술하시오.

동적 분석 도구는 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 등을 분석하기 위한 도구이다.

  • 소스 코드 품질분석 도구의 유형은 다음과 같다.
    • 정적 분석 도구
      • 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부를 확인하는 코드 분석 도구
      • 예: pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
    • 동적 분석 도구
      • 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 등을 분석하기 위한 도구
      • 예: Avalanche, Valgrind 등

Q. 다음 릴레이션의 차수(Degree)와 카디널리티(Cardinality)는 얼마인지 쓰시오.

차수: 4, 카디널리티: 5

[학생]

학번이름학년학과
202101강감찬3군사학과
202102서희2외교정치학과
202103일연5역사학과
202104경대승1체육학과
202105김부식2역사학과
구성요소설명
릴레이션행(Row)와 열(Column)로 구성된 테이블
튜플(Tuple)릴레이션의 행(Row)에 해당하는 요소
속성(Attribute)릴레이션의 열(Column)에 해당하는 요소
카디널리티(Cardinality)튜플(Tuple)의 수
차수(Degree)속성(Attribute)의 수

Q. 다양한 프로토콜, 세분화된 구성, 대규모 단말기 등이 포함된 대규모 네트워크 환경을 구성할 때 계층 구조의 활용은 복잡한 구조와 정보들을 정리하고 최적화시키는 데 필수적이다. 네트워크 계층 구조 중 액세스 계층의 트래픽을 처리하기 위한 정책을 결정하는 계층으로 코어 계층과 액세스 계층 사이의 통신을 담당하는 계층은 무엇인가?

분배 계층(Distribution Layer)

  • 네트워크 계층 구조 중 액세스 계층의 트래픽을 처리하기 위한 정책을 결정하는 계층으로 코어 계층과 액세스 계층 사이의 통신을 담당하는 계층은 분배 계층(Distribution Layer)이다.

Q. 메모리 분산 할당 기법 중 가상기억장치 내의 프로세스를 서로 크기가 다른 논리적 단위로 분할하고 메모리를 할당하는 기법으로, 분할 형태가 배열이나 함수와 같은 논리적인 다양한 크기의 가변적인 크기로 관리되는 기법은 무엇인가?

세그먼테이션 기법(Segmentation)

  • 분산 할당 기법은 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치하는 기법이다.
  • 분산 할당 기법에는 페이징 기법, 세그먼테이션 기법, 페이징/세그먼테이션 기법이 있다.
  • 메모리 분산 할당 기법 중 가상기억장치 내의 프로세스를 서로 크기가 다른 논리적 단위로 분할하고 메모리를 할당하는 기법으로, 분할 형태가 배열이나 함수와 같은 논리적인 다양한 크기의 가변적인 크기로 관리되는 기법은 세그먼테이션 기법이다.

Q. 럼바우의 객체지향 분석 절차에 대한 설명이다. () 안에 들어갈 용어를 쓰시오.

객체 모델링, 동적 모델링, 기능 모델링

  • ( ① ): 시스템의 정적 구조 표현
  • ( ② ): 객체의 제어 흐름/상호 반응 표현
  • ( ③ ): 데이터값의 변화 과정 표현
  • 럼바우 객체지향 분석 절차는 객체 모델링 → 동적 모델링 → 기능 모델링 순서로 되어있다.

    절차내용
    객체 모델링시스템의 정적 구조 표현
    동적 모델링객체의 제어 흐름/상호 반응 표현
    기능 모델링데이터값의 변화 과정 표현

인터넷은 여러 작은 네트워크들이 서로 연결된 거대한 네트워크라면, 이더넷은 이러한 인터넷을 구성하고 있는 작은 네트워크를 구성하는데 필요한 기술이라는 점에서 차이가 있다.

이더넷은 같은 공간, 같은 지역의 네트워크(LAN)에 속해있는 컴퓨터로만 데이터 전송이 가능한 규약이다.

이더넷이 네트워크 모델의 OSI 계층에서 물리 계층과 데이터 링크 계층에서 사용된 기술이었다면, 인터넷은 네트워크 계층의 기술로 사용된다.

서로 다른 네트워크 간 통신(인터넷)을 위해서는 라우터라는 네트워크 장비가 필요하다. LAN에서는 MAC주소만으로 통신할 수 있었지만 다른 네트워크로 데이터를 보낼 순 없다. 그래서 MAC주소가 아닌 네트워크를 식별할 수 있는 다른 주소가 필요했는데, 그 주소를 IP(Internet Protocol)주소라고 한다. 라우터는 IP주소를 통해 데이터의 목적지 주소를 식별하게 된다. IP주소는 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있게 하는 주소다. IP 버전에는 IPv4와 IPv6가 있다. IPv4 주소는 32비트로 되어 있어서 IP주소를 약 43억개 만들 수 있는데, 인터넷이 널리 보급되면서 IP주소가 부족해졌고 128비트로된 IPv6가 나오게 되었다. IPv4 주소는 네트워크 ID와 호스트 ID로 나눠져 있는데, 네트워크 ID는 ‘어떤 네트워크’ 인지를 나타내고 호스트 ID는 해당 네트워크의 어떤 컴퓨터’ 인지를 나타낸다. 네트워크 ID와 호스트 ID는 비트 수를 조정하여 크기를 조정할 수 있는데, 클래스라는 개념으로 네트워크 크기를 구분하고 있다.

IP주소는 인터넷 서비스 공급자(ISP)에게 받을 수 있으며, IP주소에는 공인 IP주소와 사설 IP주소가 있다.


참고 자료


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