정보처리기사/정보처리기사 실기 대비 문제

정보처리기사 실기) 정보처리기사 실기 예상문제 (61~80)

코딩하는 핑가 2020. 8. 27. 17:49
반응형

* 이 글은 수제비 카페 Daily 문제를 참고로 작성됐습니다.

cafe.naver.com/soojebi

 

61.다음 괄호안에 알맞은 용어를 쓰시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student 테이블

학번 이름 학과 학년
20191001 강은미 컴퓨터학과 2
20192002 김정미 정보통신학과 2
20183003 홍길동 정보보호학과 3
20174004 장길산 인공지능학과 4

student 테이블에 학생을 추가한다.

insert  (    ①    ) student values (20201001, ‘박신입’, ‘컴퓨터학과’, 1);
더보기

정답 : into

 

62.다음 괄호안에 조건을 만족하는 값을 쓰시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번 이름 학과 학년
20191001 강은미 컴퓨터학과 2
20192002 김정미 정보통신학과 2
20183003 홍길동 정보보호학과 3
20174004 장길산 인공지능학과 4

student 테이블에서 홍길동 학생을 삭제한다.

delete from student where 학번 = '(    ①    )'
더보기

정답 : 20183003

 

63.다음 테이블의 차수와 카디널리티 갯수를 구하시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번 이름 학과 학년
20191001 강은미 컴퓨터학과 2
20192002 김정미 정보통신학과 2
20183003 홍길동 정보보호학과 3

- 차수 : (  ①  ) 

- 카디널리티 : (  ②  )

더보기

정답 : ① 4 ② 3

해설

- 차수(degree) : 하나의 릴레이션에 속성(열)의 전체 개수를 릴레이션의 차수라고 한다.

- 카디널리티(cardinality) : 하나의 릴레이션에서 투플(행)의 전체 개수를 릴레이션의 카디널리티라고 한다.

 

64. 다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.

a = 5
for i in range(1, a+1):
  if a % i == 0:
    print(i)
더보기

정답

1

5

 

해설

- 5의 약수를 구하는 코드

- 파이썬에서 print()는 자동으로 개행 ( 개행을 하기 싫은 경우 print(i, end='') => 작은 따옴표 2개 )

- range(1, a+1) 이면 1부터 a+1 미만

>> 1 ≤ i < (a+1)

 

65. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include <stdio.h>

int num(int a, int b){

    if( a > b ) {

        return a; 

    }

    else {

       return b;

    }

}

void main(){

    printf("%d\n", num(10, 20) + num(30, 20));

}
더보기

정답 : 50

 

66. 다음은 C++ 소스코드이다. 출력 결과를 쓰시오.

#include <iostream>

void main(){
  int arr[2][2];
  int count = 0;

  for(int i=0; i<2; i++){
    for(int j=0; j<2; j++){
      arr[i][j] = ++count;
    }
  }

  for(int i=0; i<2; i++){
    for(int j=0; j<2; j++){
      std::cout << arr[j][i] << " ";
    }
  }
}
더보기

정답 : 1 3 2 4

해설

i   j   count
0 0   1 
0 1   2
1 0   3
1 1   4

arr[j][i]

1 3 2 4

 

67. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include <stdio.h>

void main(){
  int i, j;
  int temp;
  int a[5] = {5, 4, 3, 2, 1};

  for(i=1; i<2; i++){
    j=i-1;

    while((a[j] > a[j+1]) && (j>=0)){
      temp=a[j];
      a[j]=a[j+1];
      a[j+1]=temp;
      j--;
    }
  }

  for(i=0; i<5; i++){
    printf("%d, ",a[i]);
  }
}
더보기

정답 : 4, 5, 3, 2, 1,

해설

- 삽입 정렬을 1회전 한 후의 결과

 

68. 다음은 테스트 유형에 대한 설명이다. 괄호 (  ) 안에 들어갈 테스트를 쓰시오.

- (   ①    )  : 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자의 입장에서 확인하는 테스트로 알파, 베타 테스트가 있다.

- (   ②    ) : 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법이다.

- (   ③    ) : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법이다.

더보기

정답 : ① 인수테스트 ② 강도(Stress)테스트 ③ 회귀(Regression)테스트

해설

* 테스트 종류

- 성능(Performance) Test : 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는지를 측정하는 테스트

- 부하(Load) Test

: 임계치의 한계에 도달할 때까지 시스템에 부하를  꾸준히 증가시키면서 진행하는 테스트

발생시키는 부하는 실제 시스템에 적용될 예상 트래픽

- 스트레스(Stress) Test : 시스템이 과부하상태에서 어떻게 작동하는지를 검사하는 테스트

 

 

69. 다음 설명은 인터페이스 구현 검증 도구에 대한 설명이다. 괄호 (  ) 안에 들어갈 구현 검증 도구를 쓰시오

- (  ①  ) : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음

- (  ②  ) : 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

더보기

정답 : ① FitNesse ② watir

해설

* 인터페이스 구현 검증 도구

xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크

 

STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 

FitNesse

: ​웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

 

NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

 

Selenium

: ​다양한 브라우저 및 개발 언어를 지원​하는 웹 애플리케이션 테스트 프레임워크

 

watir

Ruby를 사용하는 애플리케이션 테스트 프레임워크

* 참고 > 재사용

- 함수 재사용 : Function 단위 소스코드 재사용

- 객체 재사용 : Class 단위 소스코드 재사용

- 컴포넌트 재사용 : 컴포넌터의 인터페이스를 통해 통신

- 라이브러리 : 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법

 

70. 다음은 프로세스 스케줄링 알고리즘에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 용어를 쓰시오.

- (   ①   ) :  FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위를 가지고 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 프로세스 스케줄링 알고리즘이다.

- (   ②   ) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 방식으로 준비 큐 작업 중 가장 짧은 작업부터 수행하고, 평균 대기시간이 최소가 되는 프로세스 스케줄링 알고리즘이다.

더보기

정답 : ① 다단계 피드백 큐(Multi Level Feedback Queue) ② SJF(Sortest Job First)

해설

- 비선점 스케줄링 : https://ss-o.tistory.com/7?category=937705

- 선점 스케줄링 : https://ss-o.tistory.com/8?category=937705

 

71. 다음은 애플리케이션 테스트에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 테스트 유형을 쓰시오.

- 김PM은 온라인 예약시스템 개발 PM을 맡고 있다. 사용자 요구사항에 따라 시스템에 고의로 실패를 유도하고, 온라인 예약시스템의 정상적 복귀 여부를 확인하는 테스트를 수행해야 한다. 김PM이 수행해야 하는 테스트는  (   ①   )이다.

- 이대리는 내부 인트라넷 급여시스템 개발자이다. 일정에 맞춰 커버리지 테스트를 수행해야 한다. 이대리는 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 커버리지 테스트를 수행해야 한다. 이 코드 커버리지 유형은 (   ②   )이다.

더보기

정답 : ① 회복 테스트  ② 조건/결정 커버리지

해설

* 소프트웨어 테스트 유형

- 회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

- 회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

- 안전 테스트 : 소스 내의 보안적인 결함을 확인

- 강도 테스트 : 과부하시 정상적인 동작을 하는지 확인하는 테스트

- 성능 테스트 : 응답시간, 특정시간, 처리량 등 시스템 반응 속도 테스트

- 구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

- 병행 테스트 : 변경된 시스템과 기존의 시스템에 동일한 데이터 입력 후 결과 비교

 

* 테스트 커버리지

- 유형 : 구문, 결정, 조건, 조건-결정, 변경조건-결정, 다중 조건

- 결정 커버리지

: 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

- 조건 커버리지

: 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

- 조건-결정 커버리지

: 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

 

72. 다음 지문은 OSI 7 계층 중 어느 계층인지 한글 또는 영어로 쓰시오.

- (   ①   )계층은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층이다. 

- (  ①   )계층은 라우팅, 패킷 포워딩등을 수행한다.

- 주요 프로토콜로는 IP, ARP, BGP등이 있다. 전송단위는 패킷(Packet)이다.

더보기

정답 : 네트워크 또는 Network

 

73. 다음이 설명하는 용어를 쓰시오.

- 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간구조를 의미한다.
- 자료의 형태에 따라 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류할 수 있다.

더보기

정답 : 자료구조

 

74. 연계 방식 중 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성으로 <a href="url"> Link 대상 </a>와 같은 방식으로 사용하는 기술은 무엇인지 쓰시오.

더보기

정답 : 하이퍼링크

 

75. 다음은 애플리케이션 테스트에 대한 설명이다. 올바르게 설명한 항목의 번호를 쓰시오.

① 화이트박스 테스트가 끝난 후 더 나은 품질을 기대하기 위해서는 블랙박스 테스트를 실시해서 결함을 많이 검출해야 한다.

② 리그레션 테스트는 자동화에 적합한 테스트 타입이다.

③ 디버깅은 테스트의 일종이 아니다.

④ 타 시스템과 연동되는 테스트는 테스트 수행 단계에서 단위테스트 단계에 속한다.

더보기

정답 : ②,

해설

- 화이트박스 테스트와 블랙박스 테스트의 수행 순서와 결함 검출률은 아무런 상관이 없다. 독립적으로 수행하면 된다.

- 리그레션 테스트(회귀 테스트)는 반복적 성향이 강해서 자동화 테스트에 적합하다.

- 디버깅(Debugging)은 개발 활동이다.

- 타 시스템과 연동 테스트는 통합 테스트 단계에서 수행한다.

 

* 애플리케이션 테스트

- 시스템 테스트, 인수테스트, 통합테스트, 단위테스트

- 시스템 테스트 : 개발된 애플리케이션을 서버에 설치한 이후에 서버에서 잘 동작하고 DB연결도 잘되도록 하는 것

- 통합 테스트 : 모듈 결합 후 인터페이스 테스트, 전체 기능 동작 테스트

 

76. 다음은 보안 공격 기법에 대한 설명이다. 괄호(    )안에 들어갈 공격 기법을 쓰시오.

- (  ①  ) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 타켓 시스템을 마비시키는 공격기법이다.

- (  ②  ) : 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시켜 자원을 소진시키는 공격기법이다.

- (  ③  ) : 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격기법이다.

더보기

정답 : ① 스머프(Smurf) ② RUDY(Slow HTTP POST DoS) ③ 티어드롭(Tear Drop)

해설

* Smurfing

- ICMP Echo Request 메시지(Ping 요청)의 IP를 희생자 IP로 스푸핑한 후 이를 증폭 네트워크에 직접 브로드캐스트하여 외부 ICMP Echo Reply(Ping 응답)를 발생시켜 희생자에게 대량의 트래픽을 발생시키는 Dos 공격

* Land Attack

패킷을 전송할 때 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것

* Smishing (SMS phishing, 스미싱)

- SMS + Phishing의 합성어

* Qshing

- QR코드 + Phising 합성어

 

* 서비스 공격 유형

Dos(서비스 거부) : 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수 공격자 or 시스템에서 대량의 데이터를 한 곳에 집중적으로 전송함

DDoS(분산 서비스 거부) : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대한 분산 서비스 공격을 수행

Ping of Death(죽음의 핑) : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격

- SYN Flooding : TCP는 신뢰성 있는 전송을 위해 3-way-handshake를 거친 후 데이터를 전송하는데 SYN은 공격자가 가상의 클라이언트로 위장 3WH을 의도적으로 중단, 서버가 대기상태에 놓여 정상 서비스를 못하게 하는 공걱 방법

- Land : 패킷을 전송할 대 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것, 공격 대상은 송신IP주소가 자신이기 때문에 자신에게 무한히 응답하게 되는 공격

 

77. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  )은 특정 서버에 대해서 자체 기준으로 테스트를 수행하여 나온 결과중 1분간 최대 처리건수를 나타낸 수치를 말한다. 가장 객관적으로 하드웨어 성능을 나타내는 지표로 사용된다.

더보기

정답 : tpmC ( Transaction ProcessingPerfomance Council )

 

78. 다음은 애플리케이션 성능 개선 방안에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.

1. 소스 코드 최적화 기법 적용

- 인터페이스를 통해 (  ①  )된 자료 구조를 구현하여 의존성을 최소화한다.

2. System.out.println( ) 사용 제외

- 파일, 콘솔에 로그를 남기면 애플리케이션 대기 시간이 발생된다.

- 이에 대응하여 (  ②  )를 사용함으로써 성능을 개선한다.

더보기

정답 : ① 추상화 ② Log4j 로거

 

79. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  )은 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

(  ②  )은 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스이다.

더보기

정답 : ① JDBC ( Java Database Connectivity ) ② ODBC ( Open Database Connectivity )

 

80. 다음은 애플리케이션 배포 도구를 활용한 배포 프로세스와 패키징 도구에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.

- 배포 프로세스 : 빌드 내용 식별 → (    ①    ) → DRM 흐름을 확인하여 패키징 수행 → 패키징 도구 설치 → 배포 작업 → 정상 배포 확인

패키징 도구 : 저작권 보호를 위해 크랙 방지를 제공하는 패키징 도구 구성요소 중 역공학 방지를 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술을 (    ②    )라고 한다.

더보기

정답 : ① 패키징 도구 식별(선정)  ② 코드 난독화(Code Obfuscation)

반응형