minlog
article thumbnail

 

정보처리기사 실기 2020년 1회

 

1. 다음 ( ) 안에 들어갈 단어를 쓰시오.

(         )은(는) 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 다목적 마크업 언어이다.

 

더보기

답 : XML

 


 

2. 다음 ( ) 안에 들어갈 단어를 쓰시오.

( )은 속성-값 쌍(attribute-value pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.
더보기

답 : Json

 


 

3. 다음은 릴리즈 노트의 구성 항목에 관한 설명이다. 설명하는 항목은 무엇인가?

릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등의 기존정보가 포함된다
더보기

답 : 헤더

 


 

4. 애플리케이션 테스트의 기본 원리 중 살충제 패러독스(Pesticide Paradox)의 의미를 설명하시오.

더보기

답 : 동일한 테스트 전략을 반복 할 시 어느 시점 부터는 결함을 발견하지 못한다.

 


 

5. 데이터 마이닝이란 무엇인지 설명하시오.

더보기

많은 데이터 가운데 유용한 데이터를 발견하여 정보를 추출하고 의사결정에 이용하는 과정

 


 

6. 프로토콜을 구성하는 대표적인 세가지 요소를 적으시오.

더보기

구문, 의미, 타이

 


 

7. 다음에서 설명하는 해시 함수는?

128비트 암호화 해시 함수로 RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트(Ronald Rivest)가 예전에 쓰이던 MD4를 대체하기 위해 고안하였다.
더보기

답 : MD5

 


 

8. 비선점형 스케줄링 HRN의 우선순위 계산식을 작성하시오.​

더보기

(대기 시간 + 서비스 시간) / 서비스 시간

 


 

9. 아래는 데이터베이스 트랜잭션의 4가지 속성이다. (가) , (나)에 들어가 단어를 적으시오.

더보기

답 : 가 . 원자성 나. 독립

 


 

10. 다음에서 설명하는 서비스 거부 공격은?

패킷의 출발지 주소(Address)나 포트(port)를 임의로 변경하여 출발지와 목적지 주소(또는 포트)를 동일하게 함으로써, 공격 대상 컴퓨터의 실행 속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격
더보기

답 : 랜드 어택


풀이 

SYN 플러딩(Flooding) : 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격

UDP 플러딩(Flooding) : 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 지속적으로 자원을 고갈시키는 공격

스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴

죽음의 핑(PoD; Ping of Death) : ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어서 전송

랜드어택(Rand Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 함

티어 드롭(Tear Drop) : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격

봉크(Bonk)/보잉크(Boink) : 시스템의 패킷 재전송과 재조립이 과부하를 유발하게 하는 공격기법

 


 

11. OSI 7계층 중 다음에서 설명하는 계층은?

전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 단위(PDU)는 '비트'를 사용한다.
더보기

물리 계층

 


 

12. LoC 기법으로 개발을 해야 하는 프로젝트의 총 라인이 30000 라인이고, 개발자가 5명, 그리고 인당 월평균 300라인의 개발이 가능할 때, 개발하는데 소요될 것으로 예상되는 시간의 계산식과 그 결과를 작성하시오.

더보기

답 :  (5*300) / 30000 = 20개월

 


 

13. 아래는 애플리케이션 성능을 측정하기 위한 요소들이다. (가), (나),(다)에 들어갈 단어를 적으시오.

더보기

가 .처리량 나.응답시간 다. 경과시간

 


 

14. 다음은 소프트웨어 모듈화에 관한 설명이다. (가), (나)에 들어갈 단어를 각각 적으시오.

모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어진다. 모듈의 독립성을 높이기 위해서는 ( 가 )는 약하게, ( 나 )는 강하게 만들어야 한다.
더보기

답 : 가. 결합도 나. 응집

 


 

15. 데이터베이스 성능 개선과 관련하여 '데이터베이스 반정규화'란 무엇인지 설명하시오.

더보기

시스템 성능향상과 개발 및 운영의 편의성을 위하여  정규화된 데이터를  통합,중복,분리하는 과정으로  의도적으로  정규화 원칙을 위배 시키는 행위.

 


 

16. 다음의 시스템 구조도에서 팬인(Fan-in)이 2 이상인 것은?

더보기

답 : F,J

 


17. 다음은 C언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

#include 
void align(int a[ ]) {
int temp;
for (int i = 0; i < 4; i++) {
  for (int j=0; j < 4 - i; j++)  {
    if (a[j]> a[j+1]) {
      temp = a[j];
      a[j] = a[j+1];
      a[j+1] = temp;
    }
  }
}

main( ) {
    int a[ ] = { 85, 75, 50, 100, 95 };
    align(a);
     for (int i = 0; i < 5; i++) printf("%d ", a[i]);
}
더보기

답 : 50 75 85 95 100


풀이 :

1번 for문이 4번 루프

2번 내부 for문이 한번씩 줄어들며 루프 된다.

if문에서는 a[j] > a[j+1] 을 비교해서 앞에 값이 뒤에 값보다 클 경우 두개의 순서를 바꿔주고 있다.

1번 for문이 1회 실행될때 ( i  = 0 ) / 2번 for문은 4번 실행

a[0] > a[1] => 75,85,50,100,95

a[1] > a[2] => 75,50, 85,100,95

a[2] > a[3] => 75,50, 85,100,95

a[3] > a[4] => 75,50, 85,95,100

1번 for문이 2회 실행될때 ( i  = 1 ) / 2번 for문은 3번 실행 

a[0] > a[1] => 50, 75, 85,95,100

a[1] > a[2] => 50, 75, 85,95,100

...

1번 for문의 2회 실행 차에 정렬이 오름차순으로 모두 변경되기 때문에 

for문이 계속 돌아가도 값은 동일하다.

다시 메인으로 돌아가서 printf("%d ")로 for문을 돌며 값을 출력하면 각각의 값이 개행 없이 띄어쓰기를 포함하여  출력된다.

 


 

18. 다음은 C언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

#include 
main( ) {
   int c = 1;
   switch (3) {
      case 1: c += 3;
      case 2: c++;
      case 3: c = 0;
      case 4: c += 3;
      case 5: c -= 10;
      default: c--;
   }
   printf("%d", c);
}
더보기

답 : -8


풀이 : 스위치 문에 break가 없으므로 3번 case 부터 마지막 default 까지 모두 실행된다.

c = 0;

c = 0 +3 -10 -1 = -8

 


 

19. 다음은 Java언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

public class Test {
   static int[ ] arr( ) {
     int a[ ] = new int[4];
     int b = a.length;
     for(int i = 0; i < b; i++)
        a[i] = i;
     return a;
  }

  public static void main(String[ ] args) {
     int a[ ] = arr( );
     for(int i = 0; i < a.length; i++)
        System.out.print(a[i] + " ");
  }
}
더보기

답 : 0 1 2 3


풀이 :

static 메서드인 arr() 을 실행시

a[]변수에는 [0,1,2,3] 값이 들어가게된다.

for 문을 돌리면 순서대로 개행 없이 각 배열의 값이 나온다

 


 

20. 학생 테이블에 전기과 학생이 50명, 전산과 학생이 100명, 전자과 학생이 50명 있다고 할 때, 다음 SQL문 ①, ②, ③의 실행 결과로 표시되는 튜플의 수를 쓰시오. (단, DEPT 필드는 학과를 의미)​

1) SELECT 학과 FROM 학생;
2) SELECT DISTINCT 학과 FROM 학생;
3) SELECT COUNT(DISTINCT 학과) FROM 학생 WHERE 학과='전산과';
더보기

답 : 1) 200 , 2) 3 , 3) 1


풀이 :

DISTINCT 중복 제거

 

 

 

 

profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!