AngzavA
[정보처리기사 실기] 기출정리 2022년 1회 본문
1. RAID 0
RAID 단계
ㅇ 두 개 이상의 하드디스크를 병렬로 연결해, 하나의 디스크처럼 이용하는 기술이다.
ㅇ 스트라이프(Stripe) 방식으로 구현하여 I/O 속도가 빠르다.
ㅇ 데이터를 블럭단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다.
RAID 형태
RAID 1 : 두 개 이상의 디스크를 미러링을 통해 하나의 디스크처럼 사용
RAID 2 : 오류 정정을 위한 해밍코드를 사용하는 방식
RAID 3 : 하나의 디스크를 패리티 정보를 위해 사용하고 나머지 디스크에 데이터를 균등하게 분산 저장
RAID 4 : RAID 3과 같은 방식이나, 블록 단위로 분산 저장
RAID 5 : 3개 이상의 디스크를 붙여서 하나의 디스크처럼 사용하고 각각의 디스크에 패리티 정보를 가지고 있는 방식
RAID 6 : 하나의 패리티를 두 개의 디스크에 분산 저장하는 방식
2. REDO / UNDO
1. 오류가 발생하기 전까지의 사항을 로그(log)로 기록해 놓고, 이전 상태로 되돌아간 후 실패가 발생하기 전까지의 과정을 재실행한다.
2. 로그를 이용하여 오류와 관련된 내용을 취소하여 복구한다.
지연 갱신 REDO
즉시 갱신 REDO / UNDO
트랜잭션의 특성
원자성(Atomicity) - COMMIT, ROLLBACK : 모두 반영 OR 모두 반영 X
일관성(Consistency)
독립성/격리성(Isolation)
영속성(Durability)
3. 이상현상
개념적 설계 : ERD
논리적 설계 : 정규화 수행, 트랜잭션/인터페이스 설계
물리적 설계 : 저장장치 구조에 맞춰서 DDL로 만듬, 성능 고려
4. TKIP(Temporal Key Integrity Protocol)
임시 키 무결성 프로토콜
ㅇ IEEE 802.11 무성 네트워킹 표준에 사용되는 보안 프로토콜
ㅇ IEEE 802.11i의 작업 그룹과 WiFi 얼라이언스에서 WEP를 하으뒈어 교체 없이 대체하기 위해 고안
5. NUI
키보드나 마우스와 같은 장치 없이 말이나 행동 그리고 감정과 같은 인간의 자연스러운 표현으로 컴퓨터나 장치를 제어할 수 있는 환경
NUI
CUI
GUI
CLI
AUI
UI 설계 원칙
직관성 : 화면의 버튼, 항목, 입력란 등 누구나 쉽게 이해하고 사용할 수 있도록 한다
유효성 : 사용자의 목적을 정확히 달성할 수 있도록 유용하고 효과적이어야 한다
학습성 : 사용자가 쉽게 배우고 익힐 수 있어야 한다
유연성 : 사용자의 요구를 최대한 수용하면서 오류를 최소화해야 한다
6. static, dynamic
1. 소스 코드의 실행 없이, 코드의 의미를 분석해 결함을 찾아내는 원시적 코드 분석 기법
2. 소스 코드를 실행하여 프로그램 동작이나 반응을 추적하고 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 기법
7. JUnit
자바 프로그래밍 언어를 이용한 xUnit의 테스트 기법으로써 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위 테스트를 쉽게 해주는
테스트용 프레임워크이다.
8. a, b, e
a. Equivalence Partitioning
b. Boundary Value Analysis
c. Base Path Test
d. Loop Test
e. Cause-effect Graph
f. Decision Coverage
g. Statement Coverage
9. ISMS
정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해 수립·관리·운영하는 정보보호 관리체계가 인증 기준에 적합한지를
심사하여 인증을 부여하는 제도
ISMS : 정보보호 인증 체계가 확실한지
PIMS : 개인정보 보호 체계를 확인하는지
ISMS-P 로 두개를 묶기도 함
10. 유일성, 최소
1. 슈퍼키는 ( A )의 속성을 갖는다.
2. 후보키는 ( A )와(과) ( B )의 속성을 갖는다.
슈퍼키 : 유일성
후보키 : 유일성 + 최소성
대체키 : 나머지
기본키 : 가장 적합한 키
11. Watering Hole
이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격
대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 방식이다.
12. 단위 통합 시스템 인수
V모델
단위 : 정적 동적
통합 : 상향식 하향식 빅뱅 백본
시스템 : 기능 비기능
인수 : 알파 베타
13. order by score desc
SELECT
FROM TABLE
WHERE 성적 >= 90 AND NAME LIKE '이%'
GROUP BY 반
HAVING SUM(점수) >= 100
ORDER BY ASC/DESC
HAVING 집계 함수
SUM, AVG, MAX, MIN, COUNT
14. extend, pop, reverse
1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
3. 리스트 내부의 요소의 순서는 뒤집는 역할
15. a=20, b=2
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
파이썬 함수 전개에서
num2 = 2 이런식으로 바로 선언은
값이 하나였을 때 default 지정 해두는 것
16. Car
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();
}
}
17. 2000
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. 120
#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));
}
5*4*3*2*1 = 120
19.
#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. /
최종 결과만 보자면 1234가 => 4321이 되었음
즉 자리수가 역순이 되었다는 말임
자리수를 바꾸는 방법은 여러개지만
int div에 10을 준걸로 봐서는 1234를 10으로 나눠서
나머지를 사용해서 자리를 바꾸라는걸 추론할 수 있음
1회차에서는
1234 % 10으로 1234를 10으로 나눈 나머지 4를 구했음
이걸 4321의 형태가 되기 위해서
result 에다가 += 더해주는거임
2회차에서는 이미 4라는 숫자는 포함했으므로
1234 / 10로 4라는 숫자를 탈락시킴 즉 result = 123
123 % 10의 형태로 나머지 3을 구하고 그걸 다시
result에 += 3해서
2회차가 끝난 시점에 result = 43이 되었음
이걸 3회차 4회차 반복하면 4321이 될꺼임
20. 29
#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;
}
소인수분해
'정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 기출정리 2021년 2회 (0) | 2023.07.17 |
---|---|
[정보처리기사 실기] 기출정리 2021년 3회 (0) | 2023.07.17 |
[정보처리기사 실기] 기출정리 2022년 2회 실기 문제 (0) | 2023.07.16 |
[정보처리기사 실기] 기출정리 2022년 2회 이론 문제 (0) | 2023.07.15 |
[정보처리기사 실기] 기출정리 2022년 3회 (0) | 2023.07.13 |