본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사 실기] 2021년 2회 실기 기출

by 케리's 2023. 3. 26.

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)

 

 

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을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된 채로 존재하므로 자주 사용하게 되면 시스템의 퍼포먼스에 악영향을 주게 됩니다.

[Java] static변수와 static 메소드 - MangKyu's Diary (tistory.com)

 

 

 

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);
    }
}

 

 

 

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

댓글