본문 바로가기
ETC/정보처리기사

[정보처리기사 실기] 2021년 2회 기출문제 복원 및 답/해설

by sssinga 2022. 9. 13.

 

 

[문제 1] 네트워크 및 인터넷과 관련된 다음 설명에 해당하는 용어를 쓰시오.

· 재난 및 군사 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크이다.
· 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다.
· 멀티 홉 라우팅 기능을 지원한다.

 

[답]

더보기

애드 혹 네트워크, Ad-hoc Network

 

 

 

 

 

[문제 2] 인터페이스에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.

· (  ①  ) : 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험
·②  ) : 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어

[예] CLI, GUI 등 

 

[답]

더보기

· ① : UX, 사용자 경험, User Experience
· ② : UI, 사용자 인터페이스, User Interface

 

 

 

 

 

[문제 3] 데이터베이스의 상태 변화를 일으키는 트랜잭션(Transaction)의 특성 중 원자성(Atomicity)에 대해 간략히 서술하시오.

 

[답]

더보기

원자성(Atomicity)은 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit) 되든지 아니면 전혀 반영되지 않도록 복구(Rollback) 되어야 한다는 특성을 의미한다.

 

[해설]

더보기

트랜잭션 특징 4가지

- Atomicity(원자성): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback) 되어야 함

- Consistency(일관성): 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함

- Isolation(독립성, 격리성, 순차성): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음

- Durability(영속성, 지속성): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

 

 

 

 

 

[문제 4]  데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.

 

[답]

 

[해설]

더보기

· 정규화(Normalization): 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정

 

· 정규화 과정: 도부이결다조

- 비정규 릴레이션 -> 1NF: 도메인이 원자값

- 1NF -> 2NF: 부분적 함수 종속 제거

- 2NF -> 3NF: 이행적 함수 종속 제거

- 3NF -> BCNF: 결정자이면서 후보키가 아닌 것 제거

- BCNF -> 4NF: 다치 종속 제거

- 4NF -> 5NF: 조인 종속성 이용

 

 

 

 

 

[문제 5] SQL과 관련한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.

 

UPDATE문은 테이블에 있는 튜플의 내용을 갱신할 때 사용하는 명령문으로, DML에 해당한다. 다른 DML로는 INSERT, DELETE가 있으며, 각각 새로운 튜플을 삽입하건 삭제할 때 사용한다.

 

다음은 <학부생> 테이블에서 '입학생수'가 300 이상인 튜플의 '학과번호'를 999로 갱신하는 SQL문이다.

 ①  ) 학부생  ②  ) 학과번호 = 999 WHERE 입학생수 >= 300;

 

[답]

더보기

① UPDATE          ② SET

 

 

 

 

 

[문제 6] 다음 <사원> 테이블과 <동아리> 테이블을 조인(Join)한 <결과>를 확인하여 <SQL문>의 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.

SELECT a.코드, 이름, 동아리명 FROM 사원 a LEFT JOIN 동아리 b  ①  ) a.코드 = b. ②  ) 

 

[답]

더보기

① ON          ② 코드

 

 

 

 

 

[문제 7] 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력물의 출력 서식을 준수하시오.)

 

a = 100
result = 0
for i in range(1,3):
    result = a >> i
    result = result + 1
print(result)

 

[답]

 

[해설]

더보기

i가 1에서 시작하여 1씩 증가하면서 3보다 작은 동안 for문을 돈다.

 

>>는 오른쪽 시프트 연산자이므로, a에 저장된 값을 오른쪽으로 i비트 이동시킨 다음 그 값을 result에 저장한다.

정수는 4Byte이므로 100을 4Byte 2진수로 변환하여 계산하면 된다.

 

반복문 1회 (i=1)

100을 2진수로 표현하면 1100100

이걸 오른쪽으로 i(=1)비트 이동 시키면 110010

이걸 10진수로 변환하면 50

result = 50

result + 1 = 51

 

반복문 2회 (i=2)

1100100을 오른쪽으로 i(=2)비트 이동 시키면 11001. 10진수로는 25

result +1 = 26

 

 

 

 

 

[문제 8] 보안 및 암호화와 관련된 다음 설명에 해당하는 용어를 쓰시오.

· 2001년 미국 표준 기술 연구소(NIST)에서 발표한 대칭키 암호화 알고리즘이다.
· DES의 한계를 느낀 NIST에서 공모한 후 발표하였다.
· 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류된다.

 

[답]

더보기

AES, Advanced Encryption Standard

 

 

 

 

 

[문제 9] 테스트에 대한 다음 설명에서 각 지문(①~③)에 해당하는 커버리지(Coverage)를 <보기>에서 찾아 기호로 쓰시오.

 

① 최소 한번은 모든 문장이 수행되도록 구성하는 검증 기준
② 조건식이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준
②번과 달리 조건식에 상관없이 개별 조건이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준

 

<보기>

ㄱ. 다중 조건 검증 기준 ㄴ. 선택 검증 기준 ㄷ. 조건 검증 기준
ㄹ. 결정(분기) 검증 기준 ㅁ. 결정(분기)/조건 검증 기준 ㅂ. 구문(문장) 검증 기준

 

[답]

더보기

① ㅂ
② ㄹ
 ㄷ

 

 

 

 

 

[문제 10] 다음은 <회원> 테이블에서 '이름'이 "이"로 시작하는 회원들을 '가입일' 순으로 내림차순 정렬하는 <SQL문> 이다. 괄호(①, ②)에 들어갈 알맞은 답을 쓰시오.

 

<SQL문>

SELECT * FROM 회원 WHERE 이름 LIKE '(    )' OREDER BY 가입일 (    );

 

[답]

더보기

이%          DESC

 

 

 

 

 

[문제 11] 모듈에 대한 다음 설명에서 각 지문(①~③)에 해당하는 응집도(Cohesion)를 <보기>에서 찾아 기호로 쓰시오.

 

① 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도
② 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도

 

<보기>

ㄱ. 기능적 응집도 ㄴ. 순차적 응집도 ㄷ. 교환적 응집도 ㄹ. 절차적 응집도
ㅁ. 시간적 응집도 ㅂ. 논리적 응집도 ㅅ. 우연적 응집도  

 

[답]

더보기

① ㄹ
② ㄷ
 ㄱ

 

[해설]

더보기

순차적 응집도(Sequential Cohesion)는 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도

 

 

 

 

 

[문제 12] 네트워크에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.

· (  ①  ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식
·  ②  ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까자ㅣ의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식

 

[답]

더보기

· ① 가상 회선, 가상 회선 방식, VC, Virtual Circuit
· ② 데이터그램, 데이터그램 방식, Datagram

 

 

 

 

 

[문제 13] 디자인 패턴에 관련된 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.

디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다. 그 중 (    ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로 Interpreter, Observer, Command 등이 그 예에 해당한다.

 

[답]

더보기

행위, Behavioral

 

 

 

 

 

[문제 14] 데이터베이스의 병행제어(Concurrency Control) 기법 중 하나로, 접근한 데이터에 대한 연산을 모두 마칠 때까지 추가적인 접근을 제한함으로써 상호 배타적으로 접근하여 작업을 수행하도록 하는 기법을 쓰시오.

 

[답]

더보기

로킹, Locking

 

 

 

 

 

[문제 15] 럼바우(Rumbaugh) 데이터 모델링에 대한 다음 설명에서 각 지문(①~③)에 해당하는 모델링을 <보기>에서 찾아 기호로 쓰시오.

 

① 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링
     [예] 자료흐름도(DFD)
② 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
     [예] 상태 변화도(STD), 사건 추적도
 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링
     [예] ER 다이어그램(ERD)

 

<보기>

ㄱ. Operation ㄴ. Sequence ㄷ. Information ㄹ. Transaction
ㅁ. Function ㅂ. I/O ㅅ. Dynamic ㅇ. Cause-Effect

 

[답]

더보기

① ㅁ
② ㅅ
 ㄷ

 

 

 

 

 

[문제 16] 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

 

#include <stdio.h>
main() {
    int res = mp(2, 10);
    printf("%d", res);
}
int mp(int base, int exp) {
    int res = 1;
    for (int i = 0; i < exp; i++)
    	res *= base;
    return res;
}

 

[답]

더보기

1024

 

[해설]

더보기

base = 2, exp = 10, res = 1

for (int i = 0; i < 10; i++)

 1 *= 2

 

이때 1 *=2를 i = 0,1,2,3,4,5,6,7,8,9 일 때 총 10번 타므로 2^10 = 1024

 

 

 

 

 

[문제 17] 다음 Java로 구현된 프로그램을 분석하여 괄호에 들어갈 알맞은 답을 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

 

public class Test {
    public static void main(String[] args) {
        System.out.print(Test.check(1));
    }
    (    ) String check(int num){
        return (num >= 0) ? "positive" : "negative";
    }
}

 

[답]

더보기

static

 

[해설]

더보기

static은 클래스 이름으로 메소드에 접근하기 위해 사용하는 예약어로, 메소드를 사용하기 위해서는 메소드가 포함된 클래스의 객체 변수를 선언한 후 [객체 변수].[메소드]의 방식으로 접근해야 하지만 static을 이요하면 객체 변수 없이 [클래스 이름].[메소드]의 방식으로 접근하는 것이 가능해진다.

 

 

 

 

 

[문제 18] 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

 

#include <stdio.h>
int main() {
    int ary[3];
    int s = 0;
    *(ary + 0) = 1;
    ary[1] = *(ary + 0) + 2;
    ary[2] = *ary + 3;
    for (int i = 0; i < 3; i++)
        s = s + ary[i];
    printf("%d", s);
}

 

[답]

 

[해설]

더보기

*(ary + 0) = 1;        ㅡ> ary+0이 가르키는 곳에 1을 저장한다. ary[0] <- 1

ary[1] = *(ary +0) +2 = 3

ary[2] = *ary + 3; = 1 + 3 = 4

 

1+3+4 = 8

 

 

 

 

 

[문제 17] 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

 

public class ovr1 {
    public static void main(String[] args) {
        ovr1 a1 = new ovr1();
        ovr2 a2 = new ovr2();
        System.out.println(al.sun(3,2) + a2.sun(3,2));
    }
    int sun(int x, int y) {
        return x + y;
    }
}
class ovr2 extends ovr1 {
    int sun(int x, int y) {
        return x - y + super.sun(x, y);
    }
}

 

[답]

 

[해설]

더보기

a1.sun(3,2) = 3+2 = 5

a2.sum(3,2) = 3-2+5 = 6

 

5 + 6 = 11

 

 

 

 

 

[문제 20] 통합 테스트에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.

 

통합 테스트는 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법으로, 하위 모듈에서 상위 모듈 방향으로 통합하는 상향식 통합 테스트와 상위 모듈에서 하위 모듈 방향으로 통합하는 하향식 통합 테스트가 있다. 상향식 통합 테스트는 미완성이거나 문제가 있는 상위 모듈을 대체할 수 있는 테스트 드라이버가, 하향식 통합 테스트는 미완성이거나 문제가 있는 하위 모듈을 대체할 수 있는 테스트 (    )이(가) 있어야 원활한 테스트가 가능하다.

 

[답]

더보기

스텁, Stub

 

 

 

 

 

 

<2022 시나공 정보처리기사 실기>(길벗,2022)를 학습하고 개인 학습용으로 정리한 내용입니다.

기출문제는 시나공 저자(알앤디)가 복원한 것임

댓글