관리 메뉴

피터의 개발이야기

[정처기 실기] 정보처리기사 실기 - 2020년 4회 기출문제 본문

개발이야기/정보처리기사

[정처기 실기] 정보처리기사 실기 - 2020년 4회 기출문제

기록하는 백앤드개발자 2024. 3. 13. 02:30
반응형

ㅁ 들어가며

ㅇ 기출문제를 풀어보고 공부한 내용을 ₩리하였다.

ㅇ 홍달샘- 정보처리기사 실기 2020년 4회 - 기출해설특강

ㅇ 시나공 정보처리기사 필기 핵심요약을 참조

 

1. 디자인 패턴에 대한 설명 중 빈 칸 안에 들어갈 적합한 용어는?

디자인 패턴은 객체 지향 프로그래밍 설계를 할 때 재사용할 수 있도록 만들어 놓은 패턴들의 모음이다.
goF의 디자인 패턴은 생성, 구조, ()의 3가지로 분류한다.
더보기

행위

 

2.  다음은 어떤 UML 다이어그램에 관한 예시이다. 어떤 종류의 다이어그램인가? 핵심 25) 다이어그램(Diagram)

패키지 다이어그램

# 구조
클래스(관계), 패키지(그룹화), 복합체(컴포넌트 내부 구조), 객체(객체정보), 컴포넌트, 배치

# 행위
유스케이스( Actor + Use Case, 사용자 요구중심)
순차 (상호작용 객체)
커뮤니케이션(순차의 메시지)
상태 (상태 변화와 상호작용, 럼바우 객체지향 분석 기법 중 동적 모델링 해당)
활동(기능 처리의 흐름)
상호작용 개요(상호작용 제어 흐름)
타이밍(시간 제약 명시)

 

3. 테스트 오라클 중 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클은 무엇인가?

핵심 144) 테스트 오라클(Test Oracle)

더보기

샘플링 오라클

 

# 설명

참: 모두 검사, 비행기나 미사일 테스트.

샘플링: 설렁설렁. 특정한 몇개

추정(휴리스틱,Heuristic): 샘플링은 너무 설렁하여 특정 케이스는 기대하는 결과, 나머지 입력 값은 추정처리

일관성: 수정 후 오류 없는지 확인

 

4. 점수에 따른 성적 부여가 잘 되었는지 알아보는 테스트 기법은 무엇인가?

핵심 131) 블랙박스 테스트의 종류, 2020년 3회 5번 문제

테스트 케이스 1 2 3 4 5
점수 0~59 60~69 70~79 80~89 90~100
테스트 데이터 45 65 70 85 95
성적
더보기

동치 분할 검사

 

# 설명

동치 분할 검사: 중간값

경계값 분석: 경계값

원인-효과 그래프: 입력 데이터와 출력에 영향을 체계적으로 분석

오류예측: QA 전문가

비교 검사: ASIS와 TOBE가 동일한 결과

 

5. 다음 조건을 만족하면서 학과별로 튜플 수가 얼마인지 구하는 SQL문을 작성하시오.

- WHERE 구문을 사용하지 않는다.
- GROUP BY 를 사용한다.
- 별칭(AS)을 사용한다.
- 집계 함수를 사용한다.

 

[학생]

학과 학생
전기 이순신
컴퓨터 안중근
컴퓨터 윤봉길
전자 이봉창
전자 강우규


[결과]

학과 학과별튜플수
전기 1
컴퓨터 2
전자 2

 

더보기

select 학과, count(*) AS 학과별튜플수 

from 학생

group by 학과

 

6. 스니핑(Sniffing)에 대하여 간략히 서술하시오.

더보기

네트워크상에 통과되는 패킷들의 내용을 엿보는 행위

 

# 서비스 공격 유형의 종류

DDos(분산 서비스 거부): 좀비 졸병으로 공격

피싱(Phishing)

파밍(Pharming)

스니핑(Sniffing)

스미싱(Smishing)

큐싱(Qshing)

랜섬웨어

키 로거

SQL 삽입(SQL Injection)

XSS(Cross Site Scripting)

 

7. 정보보안의 3요소 중 가용성에 대해서 서술하시오.

핵심 356) 보안요소

더보기

인가받은 사용자는 언제라도 사용할 수 있다.

 

# 정보보안 3요소

기밀성:  인가되지 않은 사람이 볼 수 없다. 방화벽, 암호

무결성:  인가된 사람이 인가된 방법으로 수정할 수 있다.

가용성:  

 

8. 데이터베이스의 이상(Anomaly)의 종류 3가지?

핵심 181) 이상(Anomaly)의 개념 및 종류

더보기

삽입이상, 삭제이상, 수정이상

 

핵심 182) 정규화 과정

비정규

  ㄴ 도메인 원자 => 등산, 걷기, 낚시 => 회원의 취미 테이블을 분리하여 row로 만든다.

1NF

  ㄴ 부분적 함수 종속 제거 =>   학번, 과목, 과목명, 점수 => 학생 정보에 공통된 학과 정보 분리

  ㄴ 학번의 학생이름이 부분적 함수 종족 관계임.

2NF

 ㄴ 이행적 함수 종속 제거 => x-y-z 이면 x-z 이기에 xy, yz 테이블로 분리ㅓ 

3NF

 ㄴ 결정자이면서 후보키가 아닌 것 제거

BCNF

 ㄴ 다치 종속 제거

4NF

 ㄴ 조인 종속성 제거

 

9. 데이터베이스의 회복(Recovery) 기법 중 Rollback 시 Redo, Undo가 모두 실행되는 트랜잭션 처리법으로 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법은 무엇인가?

핵심 352) 회복(Recovery)

더보기

즉시갱신기법

 

#  데이터베이스의 회복(Recovery)이란?

 ㄴ 트랜잭션을 수행하는 도중 장애가 발생하여 DB가 손상되었을 때에 정상상태로 복구하는 작업

 

# 복수 기법 - 로그 이용

장애를 대비하여 로그를 쌓는 기법이며, 즉시, 지연 갱신 기법이 있다.

ㄴ 즉시 갱신- 부분 완료 시 바로 디비 적용 => 회복 시 Redo와 Undo 모두 적용

ㄴ 지연 갱신- 부분 완료 시 Undo 로그남 남기고 커밋되면 디비반영하기 때문에 장애 시 exception처리되어 redo만 작업하면 됨.

 

# 백업본을 통한 RPO 기법

그림자 페이지: 일정 크기의 페이지 단위로 백업하여 fail over 처리

검사점 기법: 로그를 일정 기간까지 확정하여 리커버리 지점 확보. 전체 트렌젝션 로그를 재수행할 시간과 작업을 절약할 수 있다.

 

10. 다음은 프로세스 상태 전이도이다. 1, 2, 3에 알맞은 상태를 쓰시오.

더보기

1: 준비(Ready)

2: 실행(Run)

3: 대기(Wait, Block)

 

핵심 299) 프로세스 상태 전이

 

11. 다음 설명하는 용어는?

• 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
• 16비트씩 8부분, 총 128비트로 구성
• 각 부분을 16진수로 표현하고, 콜론(:)으로 구분
• 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결
• 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원
• 주소 체계로 유니캐스트(1 대 1), 멀티캐스트(1 대 N), 애니캐스트(인근 1 대 1 )을 사용
더보기

IPv6

 

핵심 307) IPv6(Internet Protocol version 6)

핵심 308) IPv6의 구성

 

# IPv4

  ㄴ 유니캐스트: 1대1 

 ㄴ 멀티캐스트: 1대 n

 ㄴ 브로드캐스트: 방송 => 부하 심함.

 

# IPv6   

 ㄴ 유니, 멀티

 ㄴ 애니 캐스트: 인근의 단일 수신자와 1대1 통신

 

# IPv4/IPv6 전환기술 : IP 고갈로 인해 IPv6로 변경 시 전환기술 필요

ㄴ 듀얼스택(Dual Stack): IPv4와 IPv6 동시지원

ㄴ 터널링(Tunneling): 두 IPv6간에 터널, IPv4 패킷에 IPv6 패킷을 캡슐화하여 전송

ㄴ 주소 변환(Address Translation): IPv4와 IPv6 간에 주소 변환

 

# IP 주소

Class A (2진, 00000000 ~ 01111111 / 10진, 0~127) :  국가 대형

Class B (2진, 10000000 ~ 10111111 / 10진, 128~191) : 중대형 통신망

Class C (2진, 11000000 ~ 11011111 / 10진, 192~223) : 소규모 통신망

Class D (2진, 11100000 ~ 11101111 / 10진, 224~239) : 멀티캐스트용

Class E (2진, 11110000 ~ 11111111 / 10진, 240~255) : 실험 주소, 공용X

 

12.  다음 설명에 해당하는 운영체제는?

• 1960년대 AT&T (Bell) 연구소가 MIT, General Electric 사와 함께 공동 개발한 운영체제이다.
• 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제이다.
• 대부분 언어로 작성되어 있어 이식성이 높으며 장치프로세스 간의 호환성이 높다.
• 트리 구조의 파일 시스템을 갖는다.
더보기

UNIX

 

# 핵심 286) UNIX의 개요 및 특징

 

 

13. 분산 컴퓨팅에 대한 다음 설명에 해당하는 용어를 쓰시오.

• 오픈 소스 기반 분산 컴퓨팅 플랫폼이다.
• 분산 저장된 데이터들은 클러스터 환경에서 병렬 처리된다.
• 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발되었다.
• 더그 커팅과 마이크 캐퍼렐라가 개발했으며구글의 맵리듀스(MapReduce) 엔진을 사용하고 있다.
더보기

하둡(Hadoop)

 

핵심 351) DB 관련 신기술  

# 빅데이터 관련 용어

ㅇ Big Data

  ㄴ 대량의 정형, 비정형 데이터 집합

  ㄴ 이 데이터로부터 가치를 추출하고 결과를 분석하는 기술

ㅇ Hadoop(하둡)

  ㄴ 오픈 소스 기반 분산 컴퓨팅 기술: 서버가 아닌 일반 컴퓨터를 사용할 수 있음.

ㅇ NoSQL

  ㄴ RDBMS(관계형)<->  비관계형 => 유연한 데이터 처리

ㅇ Data Mining(데이터 마이닝)

  ㄴ 대규모로 저장된 데이터 안에서 체계적이고 유요한 정보를 찾아내는 것

ㅇ 데이터웨어 하우스

  ㄴ 기간 시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 사용할 수 있음.

ㅇ 데이터 마트

  ㄴ 리틀 데이터웨어 하우스

ㅇ OLAP

  ㄴ 이용자가 직접 데이터베이스를 검색, 분석하는 분석형 애플리케이션 개념

ㅇ Mashup

  ㄴ 웹에서 제공하는 정보 및 서비스를 이용하는 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술

 

14. 다음 설명하는 용어는?

분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술로 P2P방식을 기반으로 하여 소규모 데이터들이 연결되어 형성된 '블록'이라는 분산 데이터 저장 환경에 관리 대상 데이터를 저장함으로써 누구도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있게끔 만드는 기술
더보기

블록체인

 

15. 다음 설명하는 용어는?

• 우리말로 번역하면 네트워크 주소 변환이라는 의미의 영문 3글자 약자이다.
• 1개의 정식 IP 주소에 다량의 가상 사설 IP 주소를 할당 및 연결하는 방식이다.
• 1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개만으로 제한되는 문제가 있으나
   이 때에는 IP 마스커레이드(Masquerade)를 이용하면 된다.
더보기

NAT(Network Address Translation)

 

16. 다음 C어어 프로그램의 결과를 쓰시오.

int main() {
   char *p = "KOREA";
   printf("%s\n", p);
   printf("%s\n", p + 3);
   printf("%c\n", *p);
   printf("%c\n", *(p + 3));
   printf("%c\n", *p + 2);
   return 0;
}
더보기

KOREA # printf("%s\n", p);  => p의 주소에서 %s(끝까지 출력) /n 엔터  
EA         # printf("%s\n", p + 3); => (p의 주소+3)에서 끝까지 출력
K           # printf("%c\n", *p); => p의 주소의 %c(한글자)  
E           # printf("%c\n", *(p + 3)); =>(p의 주소 + 3)의 %c(한글자)  
M          # printf("%c\n", *p + 2); (p 주소의 값)에 아스키코드 2번째 => K L M

--------------

%s : 주소 전체

%c : 주소만

*p  : p의 값

*p + 2 : 

 

 

17. 다음 JAVA 프로그램을 분석하여 빈칸을 쓰시오.

public class good {
    public static void main(String[] args) {
    int[][]a = new int[  ①  ][  ②  ];
    for(int i = 0; i < 3; i++){
        for(int j=0; j < 5; j++){
        a[i][j] = j*3+(i+1);
        System.out.print(a[i][j]+"");
      }
      System.out.println();
      }
   }
} 


[출력 결과] 
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15

 

18. 아래의 <처리결과>처럼 10진수를 2진수로 변환해주는 프로그램이다. 빈칸의 JAVA 구문을 쓰시오.

// <처리결과> : 00001010

class good {
    public static void main (String[] args) {
    	int a[] = new int[8];
        int i=0, n=10;
        while ( ① ) {
          a[i++] = ( ② );
          n /= 2;
       }
      for(i=7; i>=0; i--){
          System.out.print(a[i]);
      }
   }
}

 

1) i < a.length 또는n > 0

2) n %2 

 

19. 다음은 자바(Java) 소스 코드이다. 출력 결과를 쓰시오.

class Parent {
  public int compute(int num){
    if(num <=1) return num;
    return compute(num-1) + compute(num-2);
  }
}

class Child extends Parent {
  public int compute(int num){
    if(num<=1) return num;
    return compute(num-1) + compute(num-3);
  }
}

class Good {
  public static void main (String[] args){
    parent obj = new Child();
    System.out.print(obj.compute(4));
  }
}
더보기

1

 

# 재귀함수는 피라미드

 

20. 다음 Python언어로 작성된 프로그램의 출력 결과를 쓰시오.

lol = [[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
    for item in sub:
        print(item, end = '')
    print()

 

 

반응형
Comments