1. 네트워크 장치를 필요로하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크는?
애드혹 네트워크(Ad-hoc Network)
애드혹 네트워크는 기지국이나 액세스 포인트와 같은 기반 네트워크 장치를 필요로 하지 않는 무선 네트워크이다.
이는 일시적으로 구성되는 네트워크로, 특정한 목적을 위해 만들어진 관습적인 해결책이다. 예를 들어, 군사 작전에서 사용되거나 재난 상황에서 사용될 수 있다2.
2. 다음에서 설명하는 개념을 쓰시오.
(1) 사람의 감정이나 경험을 나타내는 개념 (2) 사용자 인터페이스. 예로는 CLI이 있다. |
(1) UX(User Experience)
(2) UI(User Interface)
3. 트랜잭션의 특징 중, 원자성(Atomicity)에 대해 약술하시오.
모두 반영되거나 아니면 전혀 반영되지 않아야 하는 특성
트랜잭션특성 - ACID
특성 | 설명 | 주요기법 |
원자성 (Atomicity) |
분해가 불가능한 작업의 최소단위 연산 전체가 성공 또는 실패 하나라도 실패할 경우 전체가 취소되어야 함 |
Commit / Rollback 회복성보장 |
일관성 (Consistency) |
트랜잭션이 실행 성공후 항상 일관된 데이터베이스 상태 보존 | 무결성 제약조건 동시성 제어 |
격리성 (Isolation) |
트랜잭션 실행중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가 | Read Uncommited Read Commited Repeatable Read Serializable Read |
영속성 (Durability) |
성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장 | 회복기법 |
4. 다음은 제 ( ) 정규형으로 부분 함수적 종속성 제거하여 완전 함수적 종속을 만족하는 정규형이다. 괄호안에 들어갈 답안을 쓰시오.
[수강강의 테이블]
학생번호 | 강좌이름 | 강의실 | 성적 |
501 | 데이터베이스 | 공학관 110 | 3.5 |
401 | 데이터베이스 | 공학관 110 | 4.0 |
402 | 스포츠경영학 | 체육관 103 | 3.5 |
502 | 자료구조 | 공학관 111 | 4.0 |
501 | 자료구조 | 공학관 111 | 3.5 |
[수강 테이블]
학생번호 | 강좌이름 | 성적 |
501 | 데이터베이스 | 3.5 |
401 | 데이터베이스 | 4.0 |
402 | 스포츠경영학 | 3.5 |
502 | 자료구조 | 4.0 |
501 | 자료구조 | 3.5 |
[강의 테이블]
강좌이름 | 강의실 |
데이터베이스 | 공학관 110 |
스포츠경영학 | 체육관 103 |
자료구조 | 공학관 111 |
제2정규형
제1정규형 | 원자값으로 구성 |
제2정규형 | 부분 함수 종속 제거 (완전 함수적 종속관계) |
제3정규형 | 이행함수 종속 제거 |
BCNF | 결정자 후보키가 아닌 함수 종속 제거 |
제4정규형 | 다치(다중 값) 종속 제거 |
제5정규형 | 조인 종속 제거 |
5. 테이블의 튜플을 수정하고자 한다. 올바른 SQL을 작성하기 위해 빈칸을 채우시오.
( A ) 테이블명 ( B ) 컬럼 = 값 WHRE 점수 >= 90;
A: UPDATE
B: SET
6. 다음은 Inner Join을 하기 위한 SQL이다. 빈칸에 들어갈 문구를 적으시오.
SELECT .... FROM 학생정보 a JOIN 학과정보 b ( A ) a.학과 = b.( B )
A: ON
B: 학과
7. 다음 파이썬 코드의 결과를 적으시오.
a = 100
result = 0
for i in range(1,3);
result = a >> i
result = result + 1
print(result)
26
8. 미국 국립 표준 기술연구소 (NIST), DES를 대체하며, 128 비트 블록 크기와 128,192,256비트 키 크기의 대칭 키 암호화 방식은?
AES (Advanced Encryption Standard)
종류 | 설명 |
DES (Data Encryption Standard) |
블록크기 64bit, 키 길이 56bit 인 페이스텔구조, 미국 연방 표준국(NIST) 암호화 알고리즘 |
AES | DES 대체, 3DES의 성능 문제를 극복하기 위해 개발, 미국 표준 기술 연구소 |
SEED | 한국 인터넷 진흥원(KISA) 개발 |
ARIA | 경량 환경 및 하드웨어에서 효율성 향상을 위해 개발, 국가정보원 + 산학연구협회가 개발 |
IDEA | 스위스 연방기술 기관에서 개발 |
LFSR | 선형 되먹임 시프트 레지스터 |
디피-헬만 | 최초의 공개키 알고리즘, 이산대수 |
RSA | MIT 수학교수가 고안, 소인수분해 수학적 알고리즘 |
ECC | RSA암호방식 대안, 타원곡선암호 |
ELGamal | 이산대수 계산이 어려운 문제를 기본 원리로 함 |
MD5 | MD4개선, 프로그램이나 파일의 무결성 검사에 사용 |
SHA-1 | NSA에서 미 정부 표준으로 지정, DSA사용 |
SHA-256/384/512 | 256비트의 해시값을 생성하는 해시함수 |
HAS-160 | 국내 표준 서명 알고리즘을 위해 개발된 해시함수, MD5 장점 + SHA-1장점 |
9. 다음은 화이트 박스 테스트 검증 기준에 대한 설명이다. 다음에서 설명하는 알맞은 용어를 보기에서 찾아 쓰시오.
(1) 최소 한 번은 모든 문장을 수행한다. (2) 결정(Decision) 검증 기준이라고도 하며 조건 별로 True/False일 때 수행한다. (3) (2)와 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행한다. [보기] 다중 조건 커버리지, 변형 조건 / 결정 커버리지, 조건 커버리지, 결정 커버리지, 구조 커버리지, 구문 커버리지 |
(1) 구문 커버리지
(2) 결정 커버리지
(3) 조건 커버리지
- 화이트박스테스트 (구조 기반 테스트) - 구결조 조변다 기제데
원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
구문 (문장) 커버리지 (Statement Coverage) |
프로그램 내의 모든 명령문을 적어도 한 번 수행 ex) a=1; b=2; c=a+b; d=c*2; 이렇게 구문 4개 모두 실행 |
결정 (분기) 커버리지 (Decision/Branch Coverage) |
결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행 ex) 모든 결정문 (if-else) 가 참과 거짓을 각각 한번씩 수행 |
조건 커버리지 (Condition Coverage) |
결정 포인트 내의 각 개별조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행 ex) 각 개별조건식 (a>b)와 (c<d) 가 각각 참일때와 거짓일때 한번씩 실행 |
조건/결정 커버리지 (Condition/Decision Coverage) |
전체 조건식 + 개별 조건식 모두 참 한번, 거짓 한번 결과가 되도록 수행 ex) 각 개별조건식 (a>b)와 (c<d)가 각각 참, 거짓일때 수행하고 if(a>b && c<d)도 한번씩 실행 |
변경 조건/결정 커버리지 (Modified Condition/Decision Coverage) |
개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함 ex) a>b와 c<d가 각각 전체 조건식의 결과에 영향을 줄 수 있는 값들로 테스트 |
다중 조건 커버리지 (Multiple Coverage) |
결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100%보장 ex) a>b, c<d 각각 참또는 거짓인경우 수가 4가지 있으므로 4가지 경우 모두 테스트 |
기본 경로 커버리지 (Base Path Coverage) |
수행 가능한 모든 경로를 테스트 * 맥케이브 복잡도 : 간선수 - 노드수 +2 |
제어 흐름 테스트 (Control flow) |
프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직 테스트 |
데이터 흐름 테스트 (Data flow) |
제어 흐름 테스트에 데이터 사용 현황 추가 |
10. 다음은 '이'씨 성을 가진 사람의 이름을 내림차순으로 출력하기 위한 SQL문이다. 괄호안에 들어갈 알맞은 답안을 작성하시오.
SELECT ... FROM ... WHERE 이름 LIKE ( A ) ORDER BY ( B )
A: '이%'
B: 이름 DESC
11. 다음 각 번호에 해당하는 응집도를 보기에서 찾아 쓰시오.
(1) 입출력 간 연관성은 없으나, 순서에 따라 수행할 필요가 있다. (2) 동일한 입출력을 사용한다. (3) 하나의 기능에 모두 기여하고 밀접하게 관련되어 있다. [보기] 기능적(functional), 시간적(temporal), 교환적(communication), 절차적(procedural), 순차적(sequential), 우연적(coincidental), 논리적(logical) |
(1) 절차적 응집도
(2) 교환적 응집도
(3) 기능적 응집도
응집도 - 우논시절통순기 (기능적 응집도 좋음, 응집도가 높음)
모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소간 연관 정도, 하나의 모듈은 하나의 기능을 수행할 수록 응집도가 높다.
유형 | 설명 |
우연적 응집도 (Coincidental Cohesion) |
모듈 내부의 각 구성요소가 연관이 없을 경우 ex) 아무상관 없는 모듈끼리 모아둠 |
논리적 응집도 (Logical Cohesion) |
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 ex) 비슷한 모듈끼리 모아둠 |
시간적 응집도 (Temporal Cohesion) |
연관된 기능이라기 보다 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 ex) 같은 시간대에 일어나는 모듈을 모아둠 |
절차적 응집도 (Procedural Cohesion) |
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 ex) 모듈 내부의 기능이 순차적으로 수행되는 경우 |
통신적 응집도 (Communication Cohesion) |
동일한 입, 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우 응집도 ex) 동일한 입력 동일한 출력을 모아둔것 |
순차적 응집도 (Sequential Cohesion) |
모듈 내에서 한 활동으로 부터 나온 출력값을 다른 활동이 사용할 경우 ex) 출력값이 나왔으면 그 출력값을 입력값으로 사용하는것 |
기능적 응집도 (Functional Cohesion) |
모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우 ex) +함수의 기능을 하기위해 똘똘 뭉쳐져있음, + 말고는 아무것도 안함 |
12. 다음에서 설명하는 패킷 교환 방식을 작성하시오.
(1) 목적지 호스트와 미리 연결한 후, 통신하는 연결형 교환 방식 (2) 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식 |
(1) 가상 회선 방식
(2) 데이터그램 방식
(1) 가상회선방식
패킷을 전송하기 전에 미리 경로를 설정하고 패킷을 전송하는 방식.
이 경로는 패킷이 전송되는 동안 유지된다.
연결 설정과 해제 과정이 필요하기 때문에 데이터그램방식보다 전송 속도가 빠르고 신뢰성이 높다
(2) 데이터그램 방식
패킷을 전송할 때마다 경로를 설정하지 않고 패킷을 전송하는 방식.
이 방식에서는 각 패킷이 독립적으로 처리되기 때문에 경로가 유지되지 않는다.
경로 설정 과정이 없기 때문에 유연하게 대처할 수 있으며, 오류 발생 시 해당 패킷만 재전송하면 되기 때문에 전체적인 대역폭 사용률이 높아집니다.
13. 다음 괄호 안에 들어갈 디자인 패턴의 명을 적으시오.
디자인 패턴 중 ( ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로 클래스나 객체들이 상호작용하는 방법이다. 알고리즘 등과 관련된 패턴으로 그 예는 Interpreter, Observer, Command 가 있다. |
행위(behavioral)
14. 병행제어기법 중, 접근한 데이터에 대한 연산을 모두 마칠때까지 상호배제하는 기법을 무엇이라 하는지 작성하시오.
로킹
병행 제어 기법 - 로 낙타다
기법 | 설명 |
로킹 (Locking) |
트랜잭션들이 동일한 데이터에 동시에 접근하지 못하도록 lock과 ulock연산으로 제어한다. 로킹 단위가 커질수록 병행성이 낮아지지만 제어가 쉽고, 로킹단위가 작아질수록 제어가 어렵지만 병행성이 높아진다. 1) lock 연산 트랜잭션이 데이터에대 한 독점권을 요청하는 현상 2) unlock연산 트랜잭션이 데이터에 대한 독점권을 반환하는 현상 |
낙관적검증 | 트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션 수행하고 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법 |
타임스탬프순서 | 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에대해 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여시간에 따라 트랜잭션 작업 수행 |
다중버전동시성 (MVCC; Murti Version Concurrency Control) |
트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는기법 |
15. 럼바우 데이터 모델링에 관한 설명으로써, 각 번호에서 설명하는 모델링 기법을 보기에서 찾아서 작성하시오.
(1) 입력값이 출력값일 때 - 예) 자료 흐름도(DFD) (2) 시간에 따라 변하는 것 - 예) 상태 변화도(상태도) (3) 구조 - 예) ER다이어그램(ERD) [보기] Operation, Object , Sequence, Information, Transaction, Function, I/O, Dynamic, Architecture, Cause-Effect, Constraint, Rebuilding, Duration |
(1) Function Modeling
(2) Dynamic Modeling
(3) Object Modeling
16. 다음은 C언어에 관한 소스코드이다. 실행 결과값을 작성하시오.
int main(){
int res;
res = mp(2,10);
printf("%d",res);
return 0;
}
int mp(int base, int exp) {
int res = 1;
for(int i=0; i < exp; i++){
res = res * base;
}
return res;
}
1024
int main(){
int res;
res = mp(2,10);
printf("%d",res);
return 0;
}
int mp(int base, int exp) {
int res = 1;
for(int i=0; i < exp; i++){ // 0~9까지 10번
res = res * base; // 1*2, 2*2, 4*2, 8*2, 16*2, 32*2, 64*2, 128*2, 256*2, 512*2
}
return res;
}
17. 이것은 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드이다. 다음의 출력 결과를 보고 괄호안에 알맞은 답안을 작성하시오.
public class Test {
public static void main(String[] args){
system.out.print(Test.check(1));
}
( 괄호 ) String check (int num) {
return (num >= 0) ? "positive" : "negative";
}
}
// [출력결과] positive
static
일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성됩니다. 객체의 생성시에 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받습니다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된 채로 존재하므로 자주 사용하게 되면 시스템의 퍼포먼스에 악영향을 주게 됩니다.
18. 다음은 C언어 코드의 실행 결과를 적으시오.
int main() {
int ary[3];
int s = 0;
*(ary + 0) = 1;
ary[1] = *(ary + 0) + 2;
ary[2] = *ary + 3;
for(int i = 0; i < 3; i++) {
s = s + ary[i];
}
printf("%d", s);
}
8
int main() {
int ary[3]; // 정수 3개짜리 ary배열 선언
int s = 0; // s변수 초기화
*(ary + 0) = 1; // ary배열 첫번째 포인터에 값 1할당
ary[1] = *(ary + 0) + 2; // 배열 두번째 값 3할당
ary[2] = *ary + 3; // 배열 세번째 값에 ary배열 첫번째 포인터 값 + 3 = 4 할당
for(int i = 0; i < 3; i++) {
s = s + ary[i];
}
printf("%d", s);
}
19. 다음 JAVA 코드의 실행 결과를 적으시오.
public class ovr1 {
public static void main(String[] args){
ovr1 a1 = new ovr1();
ovr2 a2 = new ovr2();
System.out.println(a1.sun(3,2) + a2.sun(3,2));
}
int sun(int x, int y){
return x + y;
}
}
class ovr2 extends ovr1 {
int sun(int x, int y){
return x - y + super.sun(x,y);
}
}
11
20. 다음 괄호 안에 들어갈 알맞은 답안을 작성하시오.
테스트 하네스의 도구 구성 요소 중, 상향식 테스트시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시, 하위 모듈 역할을 대신하는 테스트 ( ) 이 있다. |
스텁
https://q.fran.kr/%EC%8B%9C%ED%97%98/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0/2021%EB%85%84%202%ED%9A%8C
'|Developer_Study > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 프로세스 스케줄링 (0) | 2023.03.30 |
---|---|
[정보처리기사] 서브넷 2 (0) | 2023.03.29 |
[정보처리기사 실기] 2021년 1회 실기 기출 (0) | 2023.03.24 |
[정보처리기사] 2020년 4회 실기 기출 (0) | 2023.03.22 |
[정보처리기사 실기] 예상문제 4 (0) | 2023.03.22 |
댓글