Sky Archive

자격증/정보처리기사

[정보처리기사 실기] 2021년 1회 기출문제

서울시장 2021. 7. 19. 16:44

정보처리기사 실기 2021년 1회 기출문제 문제복원 입니다.

 

 

1. 다음은 기술 내용에 따라 분류한 요구사항 분석 기법에 대한 설명이다. 빈칸 ① ~ ②에 알맞은 용어를 각각 쓰시오.

(  ①  )
요구사항
  • 제품 구현을 위해 소프트웨어가 가져야 할 기능적 속성
    • 파일 저장 기능, 편집 기능, 보기 기능 등
    • 차 운행, 탑승객, 예약을 입력하는 방법 결정
    • 기차표와 예약정보에 어떤 정보가 포함되어야 할지 결정
    • 관리자와 승객이 DB에 접근할 때 어떤 정보를 얻을 수 있는지 결정
(  ②  )
요구사항
  • 제품 품질 기준 등의 만족을 위해 소프트웨어가 가져야 할 특성
  • 고객의 새로운 요구사항을 추가하기 위하여 시스템을 확장할 수 있도록 설계
  • (예) 성능, 사용 용이성, 신뢰도, 보안성, 안정성 등
더보기
  • ① : 기능적
  • ② : 비기능적

 

해설

1. 요구사항 확인 문제

 

 

2. 다음은 데이터 모델에 대한 설명이다. 빈칸 ① ~ ③에 알맞은 용어에 해당하는 기호를 <보기>에서 골라 쓰시오.

데이터 모델링은 정보스스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석/표현하는 방법을 말한다.
데이터 모델링은 (  ①  ) 데이터 모델링, (  ②  ) 데이터 모델링, (  ③  ) 데이터 모델링을 통해 데이터베이스를 구축하는 일련의 절차를 거쳐 진행된다.
  • (  ①  ) 데이터 모델링은 특정 DBMS에 의존하는 데이터형식, 제약조건, 뷰, 인덱스 등을 설정하는 작업으로 결과물로는 테이블 정의서, 제약조건 리스트, 인덱스 명세서 등이 있다.
  • (  ②  ) 데이터 모델링은 업무의 대상이 되는 실제 데이터에 대해서 서로의 상관관계를 파악하는 작업으로 이를 통한 대표적인 결과물로는 ERD가 있다.
  • (  ③  ) 데이터 모델링은 DBMS의 유형에 맞추어 DBMS에 저장될 데이터의 골격(스키마)를 만드는 작업으로 이를 통해 함수종 종석 파악, 논리적 스키마(릴레이션 구조) 등의 결과를 얻을 수 있다.
<보기>
구현, 요구사항, 개념, 논리, 물리
더보기
  • ① : 물리
  • ② : 개념
  • ③ : 논리

 

해설

2. 데이터 입출력 구현 문제

개념적 데이터 모델링 > 논리적 데이터 모델링 > 물리적 데이터 모델링

 

 

3. 다음 빈칸에서 공통으로 설명하는 용어가 무엇인지 쓰시오.

  • (     )(은)는 시스템의 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.
  • (     )(이)란 DB의 성능 향상을 목적으로 정규화를 통해 분할된 테이블을 다시 합치는 과정을 의미한다.
  • (     )(은)는 중복성의 원리를 활용하여 데이터 조회 시 성능을 향상시키는 역할을 할 수 있다.
더보기
답 : 반정규화

 

해설

2. 데이터 입출력 구현 문제

물리적 데이터 모델링 : 논리적 데이터 모델을 사용하고자 하는 DBMS의 특성을 고려하여 데이터 베이스 저장 구조로 변환하는 것이다.(반정규화)

논리적 데이터 모델링 : 정규화

 

 

4. 기업 내부에서 운영되는 각종 플랫폼 및 애플리케이션 간의 상호 정보 전달, 연계, 통합을 가능하게 해주는 솔루션이다. Point to Point, Hub&Spoke, Message Bus 등의 데이터 연계 방식을 갖는 소프트웨어 및 정보시스템 아키텍처 프레임워크를 무엇이라 하는지 쓰시오.

더보기
답 : EAI

 

해설

4. 통합 구현 문제

 

 

5. 웹 서비스에서 웹 서비스명, 서비스 제공 위치, 서비스 메시지 포멧, 프로토콜 정보 등에 대한 상세정보를 기술한 파일로 XML로 기술된 웹 서비스 기술 언어 또는 기술된 정의 파일의 총칭을 무엇이라 하는지 쓰시오.

더보기
답 : WSDL

 

해설

3. 통합 구현 문제

 

 

6. 다음은 결합도에 대한 설명이다. 빈칸 (     )안에 들어갈 가장 적합한 용어에 해당하는 기호를 <보기>에서 골라 쓰시오.

결합도 유형 설명
  ) 한 모듈이 다른 모듈 내부에 있는 지역 변수나 기능을 사용(참조 또는 수정)하는 경우의 결함도
  ) 모듈 간의 인터페이스로 배열이나 오브젝트(Object), 스트럭처(Structure) 등이 전달되는 경우의 결합도
(  ③  ) 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우의 결합도

 

<보기>

ㄱ. 자료 결합도  ㄴ. 스탬프 결합도  ㄷ. 제어 결합도
ㄹ. 공통 결합도  ㅁ. 내용 결합도  ㅂ. 외부 결합도
더보기
  • ① : ㅁ
  • ② : ㄴ
  • ③ : ㄹ

 

해설

4. 서버프로그램 구현 문제

결함도, 응집도 문제는 설명을 헷갈리게 출제된다 그러므로 해당 단계의 핵심키워드를 잘 이해해야 한다.

자료 결합도 자료만 주고 받으며 서로 간섭을 최소화하는 모듈간의 관계
매개 변수 넘겨주고 호출된 모듈에서 받은 데이터에 대한 처리 결과를 리턴
스탬프 결합도 두 모듈이 동일한 자료구조를 조회
필요한 자료만 주고 받을 수 없고 모든 자료를 주고 받아야 하는 경우(C언어 구조체의 경우)
제어 결합도 다른 모듈에 흐름을 제어, 제어용 신호를 주고 받는 경우
제어 플래그를 매개변수로 사용하여 호출하는 모듈의 내부 구조를 잘 알고 논리적 흐름을 변경하는 관계로 묶인 경우
외부 결합도 다수의 모듈이 모듈 밖에서 도입된 데이터, 프로토콜, 인터페이스 등을 공유할 때 발생
공통 결합도 모듈이 공통 변수를 같이 사용하는 경우(전역변수)
데이터가 변경되면 관련된 모듈 모두 검토해야 되므로 유지보수가 어렵다.
내용 결함도 모듈 간에 인터페이스를 사용하지 않고 직접 오가는 경우(지역변수)
한 모듈이 다른 모듈의 내부 기능 및 자료를 직접 참조

 

 

7. 다음은 목적 및 실행 코드 기반의 실행을 통한 블랙박스 검사 기법에 대한 설명이다. 빈칸 (     )안에 들어갈 가장 적합한 용어를 쓰시오.

테스트 목적 설명
(  ①  )
  • (  ①  )(은)는 입력의 경계값에서 발생하는 오류를 제거하기 위한 검사기법으로 등가분할의 경계부분의 입력값에서 결함이 발견될 확률이 높다는 가정으로 테스트하는 기법이다.
  • (예) 입력 값(x)의 유효범위로 0<=x<=10을 갖는 프로그램에서 -1, 0, 10, 11을 테스트 케이스의 입력값으로 테스트를 진행한다.
(  ②  )
  • (  ②  )(은)는 검사 사례 설계를 프로그램의 입력 명세 조건에 따라 설정한다. 즉, 검사 사례는 일반적으로 입력 데이터에 해당하므로 프로그램의 입력 조건에 중점을 두고, 어느 하나의 입력 조건에 대하여 타당한(유효 값)과 그렇지 못한 값을 설정한다.
더보기
  • ① : 경계값 분석
  • ② : 동등 분할(동치 분할)

 

해설

7. 애플리케이션 테스트 관리 문제

 

 

8. 다음은 테스트 종류에 대한 설명이다. 빈칸 (     )안에 들어갈 가장 적합한 용어에 해당하는 기호를 <보기>에서 골라 쓰시오.

(  ①  ) (  ①  )(은)는 '모듈 테스트'라고도 하며, 작은 소프트웨어 단위(컨포넌트 또는 모듈)를 개별 테스트하는 것으로서, 일반적으로 개발자 자신에 의해 행해진다. 과거에는 시간 부족을 이유로 생략되었으나 최근에는 개발 도구의 발전으로 개발 과정 중에 자동으로 진행된다. (  ①  )(은)는 아주 중요한 부분이므로 개발 도구에서 지원하지 않아도 반드시 수행해야 한다.
(  ②  ) (  ②  )(은)는 컨포넌트 간 인터페이스 테스트를 하고 운영체제(OS), 파일 시스템, 하드웨어 또는 시스템 간 인터페이스와 같은 각각 다른 부분과 상호 연동이 정상적으로 작동하는지 여부를 테스트한다.

 

<보기>

ㄱ. 시스템테스트  ㄴ. 인수테스트  ㄷ. 알파테스트
ㄹ. 단위테스트  ㅁ. 통합테스트  ㅂ. 회귀테스트
더보기
  • ① : ㄹ
  • ② : ㅁ

 

해설

7. 애플리케이션 테스트 관리 문제

단위테스트 > 통합테스트 > 시스템테스트 > 인수테스트(알파, 베타)

 

 

9. <EMP> 테이블을 대상으로 다음 <SQL>문을 적용한 출력 결과를 쓰시오.

<EMP>

EMPNO ENAME AGE SAL DEPT_ID
100 홍길동 25 1000 20
200 강감찬 40 3000 30
300 이순신 42 2000 40
400 강희영 25 2500 40

 

<SQL>

SELECT COUNT(*) FROM EMP
WHERE EMP > 100 AND SAL >= 3000 OR EMPNO = 200;
더보기
답 : 1

 

 

10. 다음 설명에 해당하는 용어를 쓰시오.

  • 접근통제 모델 중 정보의 소유자가 정보의 보안 수준을 결정하고 이에 대한 정보의 접근 통제까지 설정하는 모델이다.
  • 주체 또는 소속 그룹의 아이디(ID)에 근거하여 소유자가 자신의 의지대로 데이터에 대한 접근 권한을 지정하고 제어하는 방식이다.
  • 객체별로 세분된 접근제어가 가능하며 유연한 접근제어 서비스를 제공할 수 있다.
  • 대부분의 운영체제에서 지원이 되어 다양한 환경에서 폭넓게 사용되고 있다.
더보기
답 : DAC

 

해설

9. 소프트웨어 개발 보안 구축 문제

접근제어모델

정책 MAC DAC RBAC
권한부여 시스템 데이터 소유자 중앙 관리자
접근결정 보안등급 신분 역할
정책변경 고정적 변경 용이 변경 용이
장점 안정적 중앙 집중적 구현 용이 유연함 관리 용이

 

 

11. 다음은 C언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.

#include <stdio.h>
struct insa
{
    char name[10];
    int age;
}
void main()
{
    struct insa a[] = {"Kim", 28, "Lee", 38, "Kang", 48};
    struct insa *p;
    p = a;
    p++;
    printf("%s\n", p->name);
    printf("%d\n", p->age);
}
더보기

답안

Lee
38

 

해설

구조체 문제

a[0] = name : "Kim"; age : 28;

a[1] = name : "Lee"; age : 38;

a[2] = name : "Kang"; age : 48;

p = a; => a의 전체 데이터가 p 변수에 설정되지만 p는 포인터 변수이므로 p의 경우 a[0]를 의미한다.

따라서 p++;는 p[1];

%s는 문자열 전체(%c: 문자 하나)를 출력하기 때문에 p[1].name인 Lee 출력 후 \n 붙어 있으므로 줄바꿈이 된다.

%d는 정수형을 출력하므로 p[1].age인 38을 출력하게 된다.

 

 

12. 다음은 Java로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.

public class Exam { 
    public static void main(String[] args){
        int a[][] = {{45, 50, 55}, {89}};

        System.out.println(a[0].length);
        System.out.println(a[1].length);
        System.out.println(a[0][0]);
        System.out.println(a[0][1]);
        System.out.println(a[1][0]);
    }
}
더보기

답안

3
1
45
50
89

 

해설

a[0] = {45, 50, 55}

a[1] = {89}

 

 

13. 다음은 Java로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.

public class Exam { 
    public static void main(String[] args) {
        int i, j = 0;
        for(i = 0; i < 5; i++) {
            j += i;
            System.out.print(i);
            if(i == 5) {
                System.out.print("=");
            } else {
                System.out.print("+");
            }
        }
        System.out.println(j);
    }
}
더보기

답안

0+1+2+3+4+5=15

 

해설

print : 줄바꿈X

println : 출력 후 줄바꿈

 

 

14. 다음은 Python언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.

class Arr:
    a = ["Seoul", "Kyeonggi", "Inchon", "Daejoen", "Deagu", "Pusan"]

str01 = ''

for i in Arr.a:
    str01 = str01 + i[0]

print(str01)
더보기
답 : SKIDDP

 

해설

i i[0] str01
"Seoul" "S" "S"
"Kyeonggi" "K" "SK"
"Inchon" "I" "SKI"
"Daejoen" "D" "SKID"
"Deagu" "D" "SKIDD"
"Pusan" "P" "SKIDDP"

 

 

15. 아래 보기의 <학생> 릴레이션의 카디널리티(Cardinality)와 디그리(Degree)를 쓰시오.

<학생>

학번 성명 학년 전화번호
110011 강희영 1 010-1111-1111
220022 홍길동 2 010-2222-2222
330033 김철수 2 010-3333-3333
440044 신면철 3 010-4444-4444
550055 김선희 4 010-5555-5555
더보기
  • 카디널리티 : 5
  • 디그리 : 4

 

해설

카디널리티 : 튜플, 행

디그리 : 차수, 열

 

 

16. 다음은 데이터 모델에 대한 설명이다. 빈칸 ① ~ ②에 알맞은 용어를 각각 쓰시오.

데이터 모델은 현실 세계의 정보를 컴퓨터 세계의 환경에 맞게 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적인 도구이다.
데이터 모델은 일반적으로 다음의 3가지 구성 요소를 포함하고 있다.
  • ①  )(은)는 데이터 모델의 구성 요소 중 데이터베이스에 표현된 개체 인스턴스를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당한다.
  •   )(은)는 데이터 모델의 구성 요소 중 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계에 해당한다.
  • 논리적으로 표현된 (    )(와)과 허용될 수 있는 (  ①  )에서의 제약조건에 대한 명세를 기술한 것이다.
더보기
  • ① : 연산
  • : 구조

 

해설

11. 응용 SW 기초 활용 문제

데이터 모델 3요소

1. 논리적으로 표현된 데이터 구조

2. 구성요소의 연산

3. 구성요소의 제약조건

 

 

17. '프로세스 간 통신'이라고도 하며, 세마포어, 소켓 등 프로세스 간 메시지 전달이나 공유 메모리 기법을 통해 자원이나 데이터를 서로 주고 받는 행위 또는 그에 대한 방법이나 경로를 의미하는 용어를 쓰시오.

더보기
답 : IPC

 

해설

11. 응용 SW 기초 활용 문제

 

 

18. 다음은 IP주소에 대한 설명이다. 빈칸 ① ~ 에 알맞은 용어를 각각 쓰시오.

IPv6는 IETF(Internet Engineering Task Force)에서 IPv4 Address의 부족과 Mobile IP Address 구현 문제를 해결 방안으로 만들어진 IPv4를 보완하는 차세대 IP Address 주소 체계이다. 주소 유형은 유니캐스트, 멀티캐스트, 브로드캐스트 3가지이며, 주소의 길이는 (  ①  )bit이고 8개 그룹으로 배열되며 각 그룹은 16비트이다. 각 그룹은 4개의 16진수로 표현되며 그룹 간은 콜론(:)으로 구분된다. 패킷 전송 시 멀티캐스트를 사용한다.
약 32억개의 유한한 IPv4의 주소는 네트워크의 크기나 호스트의 수에 따라 A, B, C, D, E클래스로 나누어진다. 202.255.208.223과 같은 IPv4의 길이는 32bit이고 (    )bit씩 4부분으로 구분하여 10진수로 표현한다.
더보기
  • ① : 128
  •  : 8

 

해설

11. 응용 SW 기초 활용 문제

IPv4 IPv6
  • 32비트
  • 8비트 단위로 구분
  • 유니캐스트, 멀티캐스트, 브로드캐스트
  • 128비트
  • 16비트 단위로 구분
  • 유니캐스트, 멀티캐스트, 애니캐스트

 

 

19. TCP/IP의 인터넷 계층의 프로토콜로 호스트의 물리 주소를 통하여 논리 주소인 IP 주소를 얻어 오기 위해 사용되는 프로토콜을 무엇이라 하는지 쓰시오.

더보기
답 : RARP

 

해설

11. 응용 SW 기초 활용 문제

ARP : IP주소 -> MAC주소

RARP : MAC주소 -> IP주소

 

 

20. 빈칸 (     ) 안에 공통적으로 들어갈 공격기법을 쓰시오.

(     )(은)는 '세션 가로채기'라고도 하며, 두 시스템 간의 정상적으로 연결이 활성화된 상태, 즉 로그인된 상태를 가로채는 것이다. RST(Reset)패킷을 통해 일시적으로 TCP세션을 끊고 시퀀스 넘버를 종료시킨 후 서버와 클라이언트에 각각 잘못된 시퀀스 번호를 위조해서 연결된 세션에 잠시 혼란을 준 뒤 자신이 끼어들어가는 방식을 사용하는 능동적 공격기법이다.
TCP (     )(은)는 TCP 세션을 훔쳐서 서버에게 새로운 시퀀스 넘버를 보내서 마치 클라이언트인 척하며 연결을 이어나가 인증을 회피하는 공격으로 서버가 세션과 클라이언트의 유효성을 검사하지 않아 발생하기 된다. Telnet, FTP 등 TCP를 사용한 모든 세션의 갈취가 가능하다.
더보기
답 : 세션 하이재킹