문제 1. 아래 설명에 맞는 RAID 단계를 숫자로 작성하시오.
- Striping(스트라이핑) 구현 방식
- I/O 로드의 분산으로 매우 빠른 속도
- 데이터를 블럭으로 분할 저장하며, 각 블럭은 다른 디스크로 나뉘어 저장
답:
0
RAID(Redundant Array of Independent Disks)
- 하드디스크를 병렬로 배열해 사용하는 기법
- 컴퓨터의 성능을 끌어올리기 위한 방법
- 저장장치 여러 개를 묶어 고용량·고성능 저장장치 한 개와 같은 효과를 얻기 위해 개발된 기법
- RAID는 여러개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하며, 하드웨어적인 방법과 소프트웨어적인 방법이 있다
1. RAID 0
- 스트라이프(Stripe or Striping)
- 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 하드디스크처럼 이용하는 기술
- 속도 추구만을 위한 레이드 구성
- 단순히 하드 여러개에 데이터를 분산시켜서 한꺼번에 입출력을 수행하는 것
2. RAID 1
- 미러(Mirror or Mirroring)
- 두 개 이상의 하드디스크를 병렬로 연결해서 똑같은 복사본을 생성하는 기술
- 안전성 추구만을 위한 레이드 구성
3. RAID-5 : Independent data disks with distributed parity blocks
- 안전성과 속도 모두 추가한 가장 무난하게 사용되는 방식
- 최소한 3개 이상의 하드가 있어야 구현이 가능- 패리티를 사용하지만 여러 하드에 분산 저장하여 병목 현상을 해결해줌4. RAID 0+1
- RAID 0(스트라이프)와 RAID 1(미러)를 혼용한 방식
- 스트라이핑한 디스크 두 개를 서로 미러링
- 속도 향상과 복사본 생성이라는 두 가지 목적을 동시에 어느정도 구현할 수 있다
- RAID0의 스트라이핑으로 구성된 하드들을 묶어 RAID-1미러링으로 구성하는 방법
5. RAID-1+0
- RAID-0+1의 반대 개념
- RAID-1로 구성된 하드들을 묶어 RAID-0으로 구성하는 방법
- RAID-0+1보단 RAID-1+0이 더 많이 쓰임
문제 2. 다음 DB 회복 기법에 대한 설명에 알맞은 답을 [보기]에서 찾아 작성하시오.
[보기]
1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후, 실패가 발생하기 전까지의 과정을 그대로 따라가는 현상
2. 작업을 취소하여 트랜잭션을 이전 상태로 되돌리는 것
ㄱ. Commit | ㄴ. Active | ㄷ. Partially Committed | ㄹ. Rollback | ㅁ. Abort | ㅂ. Committed | ㅅ. Failed | ㅇ. redo | ㅈ. undo |
답:
1. ㅇ.redo
2. ㅈ. undo
* DB 회복 기법
* 보기 설명
ㄱ. Commit : 트랜잭션 연산의 종류로 하나의 트랜잭션이 성공적으로 종료된 후, 데이터베이스가 일관된 상태를 유지할 때 갱신 연산이 완료되었다고 트랜잭션 관리자에게 알려주고 결과를 최종적으로 데이터베이스에 반영하는 연산이다.
ㄴ. Active : 트랜잭션 상태의 종류로 트랜잭션이 작업을 시작하여 실행중인 상태이다.
ㄷ. Partially Committed : 트랜잭션 상태의 종류로 트랜잭션의 마지막 연산까지 실행하고 commit 요청이 들어온 직후의 상태, 최종 결과를 데이터베이스에 아직 반영하지 않은 상태이다.
ㄹ. Rollback : 트랜잭션 연산의 종류로 하나의 트랜잭션이 비정상적으로 종료되어 데이터베이스의 일관성을 잃었을 때 트랜잭션이 지금까지 실행한 연산의 결과가 취소되고 트랜잭션 수행 이전의 상태로 돌아가는 연산이다.
ㅁ. Aborted : 트랜잭션 상태의 종류로 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태이다.
ㅂ. Committed : 트래잭션 상태의 종류로 트랜잭션이 성공적으로 종료되어 commit연산을 실행한 후의 상태이다.
ㅅ. Failed : 트랜잭션 상태의 종류로 트랜잭션에 오류가 발생하여 실행이 중단된 상태이다.
문제 3. 다음 자바 문법에 알맞는 출력 결과를 작성하시오.
class A {
int a;
int b;
}
public class Main {
static void func1(A m){
m.a *= 10;
}
static void func2(A m){
m.a += m.b;
}
public static void main(String args[]){
A m = new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
답:
2000
문제 4. 다음 SQL 결과에 알맞는 쿼리을 작성하시오.
SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )
답:
1. ORDER2. score3. DESC문제 5. 데이터베이스의 이상현상 중, 삭제 이상에 대해 서술하시오.
답:
데이터를 삭제할 경우 원하지 않는 다른 데이터도 삭제되어버리는 이상
문제 6. 다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
답:
a= 20 b =2문제 7. 다음 설명과 관련된 답을 보기에서 골라 작성하시오.
[보기]
ㄱ. pop | ㄴ. append | ㄷ. reverse ㄹ. insert | ㅁ. sort | ㅂ. index | ㅅ. extend |
1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
3. 리스트 내부의 요소의 순서는 뒤집는 역할
답:
1. ㅅ. extend
2. ㄱ. pop
3. ㄷ. reverse
해설
-ㄴ. append : 리스트 끝에 요소 추가하기
-ㄹ. insert : 리스트의 원하는 위치에 요소 삽입하기
-ㅁ. sort : 리스트 정렬하기
-ㅂ. index : 요소의 위치 반환하기
* 보기에 나오지 않은 python에서 다른 리스트 함수
1. remove : 리스트 요소 제거하기
2. count : 리스트의 요소 개수 세기
문제 8. 다음 아래 단어를 영어 약자로 작성하시오.
임시 키 무결성 프로토콜
답:
TKIP(Temporal Key Integrity Protocol)
문제 9. 다음 중, 설명에 대한 답을 영어 약자로 작성하시오.
키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경
답:
NUI
해설
* UI
- 사용자 인터페이스
: 인터페이스 중에서 사람과 컴퓨터를 서로 원활하게 상호 소통할 수 있게 중간에서 연결시켜주는 소프트웨어 또는 장치
* CLI (Command Line Interface)
- 명령어 라인 인터페이스
- 키보드를 통한 텍스트 입력과 출력
* GUI (Graphic User Interface)
- 그래픽 사용자 인터페이스
- 마우스를 통한 그래픽
* NUI (Natural Uesr Interface)
- 자연스러운 사용자 인터페이스
- 사람의 신체를 통한 입력과 출력 제어
* OUI (Oranic User Interface)
- 유기적 사용자 인터페이스
- 자연 그대로의 상태 특성들을 반영한 장치 제어
문제 10. 다음은 분석도구에 대한 설명으로 보기에 알맞는 답을 작성하시오.
[보기]
ㄱ. static | ㄴ. Execution | ㄷ. Performance ㄹ. Control | ㅁ. dynamic | ㅂ. Harness |
1. 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법
2. 소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석
답:
1. ㄱ. static
2. ㅁ. dynamic
해설
* Static ( 테스트 정적 분석 도구 )
: 소스 코드를 실행하지 않고 분석하는 테스트 분석 도구
- 종류 : pmd, SonarQube, cppcheck, checkstyle
- pmd : 미사용 변수, 비어있는 코드 블락, 불필요한 오브젝트 생성과 같은 Defect을 유발할 수 있는 코드를 검사하며, 주로 Java에서 사용하지만, Javascript, PLSQL, XML 등의 언어도 지원
- SonarQube : 중복코드, 복잡도, 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼이며, 다른 정적 분석 도구에 비해 다양한 기능을 지원
- checkstyle : 코드가 코딩 룰을 잘 따르고 있는지 분석하는 도구이며 디폴트 코딩룰은 Google's Style, Unix Style이다. 조직만의 코딩 룰을 정의 가능한 것이 특징이다.
* Dynamic ( 테스트 동적 분석 도구 )
: 소스 코드를 실행하며 분석
- 종류 : Avalanche, Valgrind
다른 보기 해설
- 참고 : https://m.blog.naver.com/handuelly/221958993492
* 테스트 자동화 도구 유형
* 테스트 실행 도구(Test Execution Tools)
- 스크립트 언어를 사용하여 테스트를 실행하는 방법
- 테스트 데이터와 수행 방법 등이 포함된 스크립트를 작성한 후 실행
- 데이터 주도 접근 방식 : 스프레드시트에 테스트 데이터를 저장하고 실행하는 방식, 다양한 테스트 데이터를 동일한 테스트 케이스로 반복하여 실행, 미리 작성된 스크립트에 테스트 데이터만 추가하여 테스트 진행 가능
- 키워드 주도 접근 방식 : 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장하여 실행, 키워드를 이용하여 테스트 정의
* 성능 테스트 도구(Performance Test Tools)
- 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률 등 성능 목표 달성 여부 확인
- 인위적으로 적용한 가상 사용자를 만들어 테스트 수행
* 테스트 통제 도구(Test Control Tools)
- 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
- 형상 관리 도구, 결함 추적, 결함 관리 도구
*테스트 하네스 도구(Test Harness Tools)
- 테스트 하네스 : 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위해 생성된 코드와 데이터
- 테스트가 실행될 환경을 시뮬레이션 하여 컴포턴트 및 모듈이 정상적으로 테스트 되도록 한다.
문제 11. 다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.
class Car implements Runnable{
int a;
public void run(){
system.out.println("message")
}
}
public class Main{
public static void main(String args[]){
Thread t1 = new Thread(new ___());
t1.start();
}
}
답:
Car문제 12. 다음 설명에 대한 알맞는 단어를 작성하시오.
자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 Framework이다.
답:
JUnit
문제 13. 다음 보기 중에서 블랙박스 테스트 기법을 3가지 골라 작성하시오.
답:
ㄷ, ㄹ, ㅂ
해설
* ㄷ.Boundary Value Analysis
- 경계값 분석
* ㄹ.Equivalence Partitioning
- 동등분할
* ㅂ.Cause-Effect Graphing Testing
- 원인-효과 그래프
문제 14. 다음 소스코드에서 입력값이 5가 들어왔을때 출력되는 값을 작성하시오.
#include <stdio.h>
int func(int a) {
if (a <= 1) return 1;
return a * func(a - 1);
}
int main() {
int a;
scanf("%d", &a);
printf("%d", func(a));
}
답:
120
문제 15. 다음 중, 괄호 ( ) 안에 들어갈 연산자를 써서 정수를 역순으로 출력하는 알맞는 답을 작성하시오.
#include <stdio.h>
int main() {
int number = 1234;
int div = 10;
int result = 0;
while (number ( 1 ) 0) {
result = result * div;
result = result + number ( 2 ) div;
number = number ( 3 ) div;
}
printf("%d", result);
return 0;
}
결과 : 4321
답:
1. > 또는 !=
2. %
3. /
문제 16. 다음 설명에 대한 답을 영어 약자로 작성하시오.
정보보호 관리 체계의 영문 약자
답:
ISMS (Information Security Management System)
문제 17. 다음 설명 중, 괄호 ( ) 안에 들어가는 알맞는 답을 보기에서 선택하여 작성하시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, 참조성, 무결성 등..))
1. 슈퍼키는 ( 1 ) 의 속성을 갖는다.
2. 후보키는 ( 1 ) 와/과 ( 2 ) 의 속성을 갖는다.
답:
1. 유일성
2. 최소성
문제 18. 다음 설명과 관련된 답을 보기에 찾아서 작서하시오.
(실제 기출문제에서는 답의 보기가 주어집니다.(오답 중, Pharming, Ransomware등..))
이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 방식
답:
watering hole문제 19. 다음 소스코드가 실행할 때의 출력값을 작성하시오.
#include <stdio.h>
int isPrime(int number) {
int i;
for (i=2; i<number; i++) {
if (number % i == 0) return 0;
}
return 1;
}
int main(void) {
int number = 13195, max_div=0, i;
for (i=2; i<number; i++)
if (isPrime(i) == 1 && number % i == 0) max_div = i;
printf("%d", max_div);
return 0;
}
답:
29
문제 20. 다음은 V모델에서의 테스트 단계에 대한 설명으로 괄호안에 들어갈 답을 작성하시오.
답:
1. 단위 테스트
2. 통합 테스트
3. 시스템 테스트
4. 인수 테스트