관리 메뉴

피터의 개발이야기

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

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

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

기록하는 백앤드개발자 2024. 3. 12. 14:07
반응형

ㅁ 들어가며

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

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

 

 

1. 형상 통제에 대해 간략히 설명하시오.

더보기

소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베에스라인에 반영될 수 있도록 통제

 

# 형상관리 절차

형상 식별 - 형상 통제 - 형상 감사 - 형상 기록

 

2. EAI 유형에 대한 설명이다. A, B에 해당하는 유형을 쓰시오.

유형 설명
A ㅇ 중앙에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결
ㅇ 솔루션 구매 없이 통합, 상대적 저렴
ㅇ 재사용 및 변경이 어려움
B ㅇ 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중방식
ㅇ 모든 데이터 전송 보장, 확장 및 유지보수 용이
ㅇ 허브 장애 시 전사장애
Message Bus ㅇ 애플리케이션 사이 미들웨어(Bus)로 처리
ㅇ 미들웨어 통한 통합
ㅇ 어댑터가 각 시스템과 버스를 둘어 연결하므로 뛰어난 대용량 처리 가능
Hybrid ㅇ 유연한 통합 작업이 가능
ㅇ 표준 통합 기술, 데이터 병목 현상 최소화
더보기

A: point to point

B: hub&spoke

 

3. UI 설계 원칙 중 직관성에 대해서 간략히 서술하시오.

더보기

누구나 쉽게 이해하고 사용할 수 있어야 한다.

 

# 설명

유효성: 사용자의 목적 달성

학습성: 사용자가 배우고 익힐 수 있어야

유연성: 요구사항 최대 수용, 오류 최소화

 

# UX 디자인이란?

사용자 경험에 바탕을 둔 디자인

ex) 네이버가 사용자 편의성을 위해 로그인 왼쪽에서 오른쪽으로 변경

 

4. 다음 아래 제어 흐름 그래프가 분기 커버리지(Branch Coverage)를 만족하기 위한 테스팅 순서를 쓰시오.

더보기

1,2,3,4,5,6,1 

1,2,4,5,6,7

 

# 코드 커버리지(Code Coverage) - 얼만큼 테스트 했니?

ㅇ 구문 커버리지

 - 코드 구조 내의 모든 구문에 대해 한 번 이상 수행

ㅇ 조건 커버리지

 - 결정 포인트 내의 모든 개별 조건식에 대해 수행

   ㄴ if 조건 true false 경우의 수 

ㅇ 결정 커버리지

 - 결정 포인트 내의 모든 분기문에 대해 수행

   ㄴ if이 포인트

 

ㅇ 조건/결정 커버리지

 - 결정포인트 T/F, 개별조건식 T/F를 가져야 한다.

 - if문들의 모든 조항을 T/F로 다 검사!

ㅇ 변경/조건 커버리지

 - 모든 결정 포인트 내의 개별 족건식은 적어도 한번 T,F를 가져야 한다.

ㅇ 다중 조건 커버리지

 - 결정 포인트 내 모든 개별 조건의 가능한 모든 조합을 100% 테스트

 

5. 소프트웨어 테스트 중 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치 분할/경계값 분석을 이용하는 테스트 기법을 쓰시오.

더보기

블랙박스 테스트 90~100

ㅇ 동등 분할 기법 - 95 입력

 - 입력 자료에 초점을 맞취 테스트 케이스 생성

ㅇ 경계값 분석 - 90 100 입력

 - 입력 조건의 경계값을 테스트 케이스 선정

ㅇ 원인-효과 그래프 검사 - 패턴 분석하여 80 90 100 입력

 - 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석하여 당므 효용성이 높은 테스트 케이스를 선정하는 검사 기업

ㅇ 오류 예측 검사 

 - 과거의 경험이나 테스트 감각으로 테스트 - QA

ㅇ 비교 검사

 - 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는 테스트 기법

 

6.  학생 테이블에 주소 속성을 추가하는 SQL문을 작성하려고 한다. 빈 칸을 채우시오.

(    A    ) TABLE 학생   (   B   ) 주소 VARCHAR(20);
더보기

 A: ALTER 

B: ADD

 

# ALTER 속성

- ADD

- MODIFY

- DROP

 

7. 다음 조건을 만족하면서, 과목별 점수의 평균이  90이상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오.

- 대소문자를 구분하지 않는다.
- WHERE 구분을 사용하지 않는다.
- GROUP BY, HAVING구문을 반드시 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다.

<성적> 테이블

과목코드 과목이름 학점 점수
1000 컴퓨터과학 A+ 95
2000 운영체제 B+ 85
1000 컴퓨터과학 B+ 85
2000 운영체제 B 80
더보기

SELECT 
  과목이름,

  min(점수) AS 최소점수,

  max(점수) AS 최대점수

FROM 성적

GROUP BY 과목이름

HAVING AVG(점수) >= 90

 

8. 학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성하시오

학번 이름 점수 과목이름
1000 김정미 90 알고리즘
2000 강은미 95 데이터베이스
3000 홍길동 90 전산수학
4000 민수 95 운영체제
더보기

DELETE FROM 학생 WHERE 이름='민수'

 

9. 데이터베이스에서 스키마(Schema)에 대해 간략히 설명하시오.

더보기

데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것이다.

 

# 설명

외부 스키마 = 모델하우스 -> view

------------------------------ 논리적 독립성: 개념 스키마 변경 시 외부 스키마 영향 X

개념 스키마 = 아파트 조감도

------------------------------ 물리적 독립성: 내부 스키마 변경 시 개념 외부 영향 X

내부 스키마 = 설계도

 

10. 릴레이션 A에서 릴레이션 B 조건에 맞는 튜플을 제외한 후 프로젝션하는 관계대수의 기호는 무엇인가? 동영상

더보기

DIVISION(÷)

 

# 관계대수 연산자

순수관계 :  SELECT(σ), PROJECT(π), JOIN(⋈), DIVISION(÷)

일반 집합:  합집합(U), 교집합(∩), 차집합(-), 카티션 프로덕트(X)

 

11. 다음 설명에 해당하는 라우팅 프로토콜을 쓰시오. 동영상

- 최단 경로 탐색에 다익스트라(Dijkstra) 알고리즘 기반 방식 사용
- 최적 경로 선택을 위해 홉수, 대역폭, 지연시간 등을 고려
- 링크 상태 번화 시에만 라우팅 정보 전송
더보기

OSPF

 

# 라우링이란? 가장 빠른 경로는 찾는 것

 

# 라우팅 종류

ㅇ 내부(IGP, Interior Gateway Protocol)

   - RIP: 최대 홉(Hop) 수 15 제한

   - OSPF 

ㅇ 외부(EGP, Exterior Gateway Protocol): Gateway 끼리

   - EGP, BGP

 

12. TCP/IP에서 신뢰성없는 IP를 대신하여 송신측으로 네트워크의 IP 상태 및 에러 메시지를 전달해주는 프로토콜을 ( )이라 한다. 동영상

더보기

ICMP

핵심: 313 인터넷 계층의 주요 프로토콜

물리계층: 허브, 리피터

데이터링크계층: 브릿지, 스위치

네트워크계층: 라우터

 

13. 헝가리안 표기법에 대해 간략히 설명하시오. 

더보기

변수 선언 시 변수명에 데이터 타입을 명시하는 것

 

14. 리팩토링의 목적에 대해 간략히 설명하시오.

더보기

 결과의 변경 없이 코드이 구조를 재조정한다. 

 

15. 빈 칸 안에 들어갈 적합한 용어를 쓰시오.

심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( )이라는 용어로 정의하였다.
더보기

프로토콜

 

16. 다음의 출력 결과를 쓰시오.

#include <stdio.h>
void main() {
    int c=0;
    int i=0;
    while(i<10) {
      i++;
      c *= i;
    }
    printf("%d", c);
}

 

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

#include <studio.h>
int r1(){
	return 4;
}
int r10(){
	return (30+r1());
}
int r100(){
	return (200+r10());
}
int main(){
	printf("%dn", r100());
    return 0;
}

 

18. 다음의 출력 결과를 쓰시오.

public class Test{
    public static void main(String []args){
        int i=0;
        int sum=0;
        while (i<10){
            i++;
            if(i%2==1)
              continue;
            sum += i;
        }
        System.out.print(sum);
    }
}

 

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

abstract class Vehicle{
    String name;
    public Vehicle(String val){
        this.name = val;
    }
    
	// 기본생성자가 없어서 추가함.
    Vehicle() {
    }

    public String getName(){
        return "vehicle name:" + name;
    }
}

public class Car extends Vehicle {
    private String name;
    public Car(String val){
        name = super.name = val;
    }
    public String getName(String val){
        return "Car name:" + val;
    }
    public String getName(byte val[]){
        return "Car name:" + val;
    }
}

public class good {
    public static void main(String[] args){
        Vehicle obj = new Car("Spark");
        System.out.print(obj.getName("a"));
    }
}
더보기

vehicle name:Spark

ㅇ main에서 obj 객체의 클래스는 Vehicle이다. Vehicle에는 getName에 인자값을 받는 객체가 없어서 에러가 발생한다.

ㅇ Vehicle 클래스에 getName(String val)을 추가하였다.

ㅇ Vehicle 클래스에 기본 생성자가 없어서 추가함.

ㅇ 홍달쌤님의 예리한 충고을 남겨본다. 따봉!!

 

 

20. C++에서 생성자란 무엇인지 쓰시오.

더보기

생성자는 객체 생성 시 자동으로 호출되는 메서드로 멤버를 초기화하는 목적으로 주로 사용된다. 

 

반응형
Comments