문제: https://newbt.kr/시험/정보처리기사%20실기/2022년%201회
1번
RAID 0
ㅇ 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 디스크처럼 이용하는 기술이다.
ㅇ 스트라이프(Stripe) 방식으로 구현하여 I/O 속도가 빠르다.
ㅇ 데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다.
RAID : 2개 이상의 하드디스크로 디스크 배열 구성, 데이터 블록을 서로 다른 디스크에 분산 저장하거나 다중화
PAID 0: 스트라이프 방식, 중복 저장X, 에러검출X
PAID 1: 미러링 방식, 중복저장O, 높은 신뢰도
PAID 2: 스트라이핑 방식, 해밍코드를 사용하여 에러 검증
PAID 3: 스트라이핑 방식, 패리티(8bit)를 에러 검증, 바이트 단위
PAID 4: 블록 단위
PAID 5: 패리티 블록을 각 디스크마다 분산저장
최소 3개 디스크 필요. 하나 디스크 손상되어도 정상 동작 가능
PAID 6: 패리티 블록을 이중구조로 구축
2개의 디스크가 손상되어도 정상 가동 가능. 최소 4개 디스크 필요.
2번
DB 회복 (부분 점수 있음)
(1) 재실행, 장애 발생 전의 DB로 복구
(2) 변경 연산 취소
- 답안: ㅇ.redo / ㅈ.undo
데이터베이스의 이상현상 중, 삭제 이상에 대해 간략히 설명하시오.
재실행이니까 re
내용을 취소하니까 un
3번
데이터베이스의 이상현상 중, 삭제 이상에 대해 간략히 설명하시오.
(데이터를 삭제할 경우 원하지 않는 다른 데이터도 삭제되어버리는 이상)
삽입이상: 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
삭제이상:테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상
갱신이상: 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
4번
임시 키 무결성 프로토콜의 영문 약어를 쓰시오.
임시 키 무결성 프로토콜(Temporal Key Integrity Protocol, TKIP)
ㅇ IEEE 802.11 무성 네트워킹 표준에 사용되는 보안 프로토콜
ㅇ IEEE 802.11i의 작업 그룹과 WiFi 얼라이언스에서 WEP를 하으뒈어 교체 없이 대체하기 위해 고안
5번
키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경
GUNO
UI 유형:
CLI 명령어 라인 인터페이스
GUI 그래픽 사용자 인터페이스(마우스, 전자펜)
NUI 자연스러운 사용자 인터페이스(신체부위)
OUI 유기적 사용자 인터페이스
6번
1. 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법 : 정적
2. 소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 기법 : 동적
정적 분석, 동적 분석 (부분 점수 있음)
(1) 실행하지 않고 코드 분석
(2) 프로그램 동작이나 반응을 추적하고 보고, 스냅샷 생성 및 비교, 모니터링
7번
자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는 테스트용 프레임워크이다.
자바 단위 테스트 도구, xUnit 테스트 기법, Erich Gamma와 Kent Beck이 만든 오픈 소스 테스트 프레임워크
- 답안: JUnit
8번
<보기>
ㄱ. Cause-Decision Graph
ㄴ. Statement Coverage
ㄷ. Boundary Value Analysis
ㄹ. Equivalence Partitioning
ㅁ. Decision Coverage
ㅂ. Cause-Effect Graphing Testing
ㅅ. Base Path Coverage
ㅇ. Boundary Division Analysis
ㅈ. Base Path Testing
- 답안: ㄷ.Boundary Value Analysis / ㄹ.Equivalence Partitioning / ㅂ.Cause-Effect Graphing Testing
블랙박스 테스트 두음 암기법 : 구결조 조변다 기제데루
화이트박스 테스트 – 응용 프로그램의 내부 구조와 동작을 검사하는 테스트
테스트 유형
구문 (Statement) 커버리지 : 모든 명령문을 적어도 한번 수행
결정 (Decision) 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 참과 거짓을 결과로 수행
조건 (Condition) 커버리지 : 결정 포인트 내의 각 개별 조건식이 적어도 한번 참과 거짓의 결과가 수행
조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참 한번, 거짓 한번 결과 수행
변경(Modified) 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지
다중 (Multiple) 조건 커버리지 : 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장
기본 경로(Base Path) 커버리지 : 수행 가능한 모든 경로 테스트
제어 흐름 (Control Flow) 테스트 : 제어 구조를 그래프 형태로 나타내어 내부로직 테스트데이터 흐름(Data Flow) 테스트 : 제어 흐름 그래프에 데이터 사용현황을 추가
루프 (Loop) 테스트 : 반복구조에 초점을 맞춰 테스트
블랙박스 테스트 – 요구사항 명세를 보면서 수행하는 테스트
두음 암기법 : 동경결상 유분페원비오
테스트 유형
동등분할 (Equivalence Partitioning) 테스트: 유효값/무효값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트
경계값 분석 (Boundary Value Analysis) 테스트 : 최소값 바로 위, 최대값 바로 아래 등 입력값의 극한의 한계를 테스트
결정 테이블 (Decision Table) 테스트 : 요구사항의 논리, 발생조건의 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트
상태 전이(State Transition) 테스트 : 이벤트에 의해 다른 상태로 전이되는 경우의 수를 수행하는 테스트
유스 케이스 (Use Case) 테스트 : 유스케이스로 모델링 되어 있을 때 프로세스 흐름 기반으로 케스트를 명세화하여 수행
분류 트리(Classification Tree Method) 테스트 : SW의 일부 또는 전체 트리구조로 분석 및 표현하여 테스트 케이스를 설계
페어와이즈 (Pairwise) 테스트 : 데이터값들 간에 최소한 한 번씩 조합하는 방식원인-결과 그래프(Cause-Effect Graph) 테스트 : 그래프를 활용하여 데이터 간의 관계 및 출력에 미치는 영향 분석하여 효용성이 높은 테스트 케이스 선정
비교 (Comparison) 테스트 :여러 버전의 프로그램에 같은 입력값을 넣어 동일한 결과가 나오는지 테스트
오류 추정 (Error Guessing) 테스트 : 개발자가 할 수 있는 실수 범위 추정하고 결험이 검출 되도록 테스트 케이스를 설계하여 테스트
9번
정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해 수립·관리·운영하는 정보보호 관리체계가 인증 기준에 적합한지를 심사하여 인증을 부여하는 제도
(ISMS : Information Security Management System)
정부는 마이크로소프트이다.(IS MS)
10번
1. 슈퍼키는 ( 유일성 )의 속성을 갖는다.
2. 후보키는 ( 유일성 )와(과) ( 최소성 )의 속성을 갖는다.
기본키: 고유하게 식별
대체키: 후보키 중에서 키본키로 선택되지 않은 키
후보키:유일성 O, 최소성 O
슈퍼키:유일성 O, 최소성 X
왜래키: 다른 릴레이션의 기본키로 이용
11번
이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 방식이다.
: 워터링 홀(Watering Hole)
Pharming: 인테넷 주소창에 방문하고자 하는 사이트 URL을 입력하였을때 가짜 사이트로 이동시키는 공격기법
Drive by Download: 악의적인 해커가 불특정 웹서버와 웹페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속 사용자 동의 없이 실행되어 의도된 서버(뭘웨어)로 연결하여 감영시키는 공겨기법
Business SCAM: 기업 이메일 계정 도용하여 무역 거래 대금 가로채는 사이버 범죄
Phishing: 소셜 네트워크에서 악의적인 사용자가 지인 또는 특정 유명인으로 가장하여 불특정 다수의 정보를 탈취하는 공격기법
Cyber Kill Chain: 록히트 마틴의 사이버 킬체인은 공격형 방위 시스템으로 지능적, 지속적 사이버 공격에 대해 7단계 프로세스 별 공격분석 및 대응을 체계화한 API공격 방어분석 모델
Ransomware: 악성코드의 한 종류로 감영된 시스템 파일들(문서, 사건)을 암호화하여 복호화 할 수 없도록 하고, 피해자로 하여금 암호화된 파일을 인질처럼 잡고 몸값 요구 악성 소프트웨어
12번

✨#단통시인
단위 테스트 : 컴포넌트 초점
통합 테스트 : 통합된 포넌트 간의 상호작용 검증
시스템 테스트 : 정상적으로 수행
인수 테스트 : 요구사항이 만족되었는지
13번
SQL-점수 내림차순 정렬
SELECT name, score
FROM 성적
① BY ② ③
- 답안: ① order ② score ③ desc
14번
1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
3. 리스트 내부의 요소의 순서는 뒤집는 역할
1. extend
2. pop
3. reverse
extend() 리스트 확장, 여러 값을 추가
pop() 마지막 또는 지정요소를 삭제하고 그 값을 반환
reverse() 역순으로 뒤집은
append() 리스트 마지막 요소 뒤에 값을 추가
insert() 리스트의 인덱스위치에 값을 삽입
remove() 리스트에서 해당하는 값을 제거
15번
파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
a= 20 b= 2
16번
자바 - 스레드 구현, 객체 생성 - 괄호 채우기
Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.
class Car implements Runnable{
int a;
public void run(){
system.out.println("Hello")
}
}
public class Main{
public static void main(String[] args){
Thread t1 = new Thread(new ___());
t1.start();
}
}
Thread 클래스를 구현하는 두가지 방법
Thread 클래스를 상속받고, run() 을 오버라이딩
Runnable 인터페이스를 implement 하고, run()을 오버라이딩
위 문제에서는 (2)번 방법을 선택함.
Car 클래스를 쓰레드로 실행하기 위해서 Runnable을 구현
new는 클래스 객체를 생성하고 위의 Runnable은 클래스가 아닌 인터페이스이기 때문에 밑줄을 Car
17번
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);
}
}
m.a =100 -> func1 결과 m.a=100*10=1000
m.b=m.a=1000 -> func2결과 m.a=1000+1000
m.a 출력 결과 2000
18번
C언어 - 재귀함수, 5 입력 시 출력 값 - 실행결과
18. 다음 소스코드에서 입력값이 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));
}
19번
C언어 - 정수를 역순으로 출력 - 괄호에 연산자 채우기
#include <stdio.h>
int main() {
int number = 1234;
int div = 10;
int result = 0;
while (number ( != or > ) 0) {
result = result * div;
result = result + number ( % ) div;
number = number ( / ) div;
}
printf("%d", result);
return 0;
}
- 답안: 29
- 참고: 13,195 = 5 * 7 * 13 * 29
- 출제: 기출예상문제집-출제기준 변경 전 기출문제 19년3회
20번
다음 C언어 프로그램의 괄호 안에 들어갈 알맞은 연산자를 작성하시오.
다음 C언어 프로그램의 결과를 쓰시오.
#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
소수이자, 13195의 약수” 중 가장 큰 수(max_div) = 29