정보처리기사 실기) 2021년 2회 정보처리기사 실기 문제 복원
본문 바로가기
정보처리기사/정보처리기사 실기 문제 복원

정보처리기사 실기) 2021년 2회 정보처리기사 실기 문제 복원

by 코딩하는 핑가 2021. 7. 27.
반응형

* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.

* 답안을 바탕으로 변형된 문제도 수록되어 있습니다.

https://cafe.naver.com/soojebi와, http://www.gisafirst.com/을 참고로 작성되었습니다.

* 본 포스팅을 무단 복제하거나 배포하지 마시기 바랍니다. ( 게시글 최상단에 본 블로그 출처 밝히시면 포스팅 가능합니다. )

 

1. 이것은 네트워크 장치를 필요로 하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에서 사용된다. ( 부분점수 없음 )

더보기

문제 유형 : 단답형 ( 2017년 2회 실기 기출 문제 )

답안 : 애드 혹 네트워크 ( Ad-hoc Network )

 

해설

* 애드 혹 네트워크는 고정된 기반 망의 도움없이 이동 노드들 간에 자율적으로 구성되는 망으로서, 네트워크에 자율성과 융통성을 부여한 차세대 네트워크 기술이다.

 

* 재난현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크로, 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하다. 유선망과 기지국이 필요없고 호스트의 이동에 제약이 없어 빠른 망 구성과 저렴한 비용이 장점이다.

 

2. 다음 (1), (2)에 알맞은 답안을 쓰시오. ( 부분점수 있음 )

(1) 사람의 감정이나 경험을 나타내는 개념

(2) 사용자 인터페이스의 예로는 CLI가 있다.

더보기

문제 유형 : 단답형

답안

(1) UX

(2) UI

해설

* UX는 제품과 시스템을 사용하면서 느끼는 사용자의 직접적, 간접적인 경험을 의미한다.

* UI는 사용자와 시스템 사이에서 의사소통을 할 수 있도록 고안된 물리적인 가상의 매개체로 CLI, GUI, NUI, OUI가 있다.

* https://ss-o.tistory.com/100 참고

 

3. 원자성에 대하여 설명하시오.

더보기

문제 유형 : 약술형 ( 트랜잭션의 특성과 관련된 문제 다수 출제됨 )

답안 : 모두 반영되거나 아니면 전혀 반영되지 않아야 한다. ( 핵심 키워드 > 모두 반영 혹은 전혀 반영되지 않음 )

 

해설

* 트랜잭션의 특성

- Atomicity(원자성)

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

: 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.

: 타인에게 송금하는 도중 장애가 발생하였을 경우 부작용을 방지하는 특성

- Consistency(일관성)

: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

- Isolation(독립성, 격리성, 순차성)

: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.(접근 불가)

: 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

- Durability(영속성, 지속성)

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

 

4. 다음은 제 ( ) 정규형으로 부분 함수적 종속성 제거하여 완전 함수적 종속을 만족하는 정규형이다. 괄호안에 들어갈 답안을 쓰시오.

[수강강좌] - 테이블 수제비 카페 참고

학생번호 강좌이름 강의실 성적
501 데이터베이스 공학관 110 3.5
401 데이터베이스 공학관 110 4.0
402 스포츠경영학 체육관 103 3.5
502 자료구조 공학관 111 4.0
501 자료구조 공학관 111 3.5

[수강]

학생번호 강좌이름 성적
501 데이터베이스 3.5
401 데이터베이스 4.0
402 스포츠경영학 3.5
502 자료구조 4.0
501 자료구조 3.5

[강의실]

강좌이름 강의실
데이터베이스 공학관 110
스포츠경영학 체육관 103
자료구조 공학관 111
더보기

문제 유형 : 단답형 ( 2019년 1회 실기 기출 )

답안 : 2

해설

* 정규화 ( Normalization )

- 관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스

- 논리적 설계 과정에서 정규화 과정 수행함

- Anomaly ( 이상 ) 현상을 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화 수행

- 제1정규형에서 부분 함수 종속 혹은 부분 함수적 종속을 제거하여 제 2정규화를 만듦

 

* 정규화 단계

- 1NF(제1정규화) : 테이블 내의 속성값은 자 값을 가져아 한다.

- 2NF(제2정규화) : 분 함수 종속성을 제거해야 한다.

- 3NF(제3정규화) : 행 함수 종속성을 제거해야 한다.

- BCNF : 결정자 함수의 종속성을 제거하고 모든 정자가 후보키 집합에 속한 정규형

- 4NF(제4정규화) : 중 값 종속을 제거해야 한다.

- 5NF(제5정규화) : 인 종속성을 제거해야 한다.

 

5. SQL 문제 ( 부분점수 있음 )

- 튜플을 수정하는 문제

(     1   ) 테이블명 (      2     ) 컬럼=값 WHERE 점수 >= 90;

더보기

문제 유형 : 프로그래밍 ( SQL )

답안

(1) UPDATE

(2) SET

 

6. SQL 문제 ( 부분점수 있음 )

- JOIN 문제

SELECT ... FROM 학생정보 a JOIN 학과정보 b (    1    ) a.학과 = b.(    2     )

더보기

문제 유형 : 프로그래밍 ( SQL )

답안

(1) ON

(2) 학과

 

7. 파이썬 문제

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

문제 유형 : 프로그래밍 (Python)

답안 : 26

 

8. 이것은 미국 국립 표준 기술연구소(NIST), DES를 대체하며, 128 비트 블록 크기, 128, 192, 256 비트 키 크기, 대칭 키 암호

더보기

문제 유형 : 단답형

답안 : AES

 

* 해설

- https://ss-o.tistory.com/103 참고

 

9. 다음은 화이트 박스 테스트 검증 기준에 대한 설명이다. [보기]에서 (1)-(3) 에 알맞은 답안을 찾아 쓰시오. ( 부분 점수 있음 )

[보기]

ㄱ. 다중 조건 커버리지 | ㄴ. 변형 조건 / 결정 커버리지 | ㄷ. 조건 커버리지

ㄹ. 결정(분기) 커버리지 | ㅁ. 구조 커버리지 | ㅂ. 구문(문장) 커버리지

(1) 최소 한 번은 모든 문장을 수행한다.

(2) 결정(Decision) 검증 기준이라고도 하며 조건 별로 True/False일 때 수행한다.

(3) (2)와 달리 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행한다.

더보기

문제 유형 : 단답형 ( 테스트 설계 기법 다수 출제됨 )

답안 - 기호만 작성 혹은 보기 답안만 작성해도 됨

(1) ㅂ. 구문(문장)

(2) ㄹ. 결정(분기)

(3) ㄷ. 조건

 

 

* 해설

* 화이트박스 테스팅 ( White-Box Testing )

   - 구조 기반 기법, 개발자 관점에서의 단위 테스팅 기법

   - 소프트웨어 내부 소스 코드를 보면서 필요한 정보들을 사용

   - 컴포넌트(단위) 또는 소프트웨어의 구조를 중심으로 테스트 케이스를 도출

 

* 구조 기반 기법

   - 소프트웨어 코드나 설계 등 구조를 보여주는 정보로부터 테스트 케이스를 도출

   - 커버리지를 높이기 위해 테스트 케이스를 시스템적으로 도출 추가 가능

 

[ 구조 기반 기법 기본 ]

* 구조 기반 기법 ( Structure-based technique )

   - 코드와 개발 설계 등의 소프트웨어 구현 정보를 기반으로 테스트 케이스를 설계하는 기법

 

* 구문 테스팅과 커버리지 ( Statement testing and coverage )

   -  프로그램 내의 모든 문장들을 한 번 이상 수행하도록 테스트 케이스를 설계하는 기법

 

* 결정 테스팅과 커버리지 ( Decision testing and coverage )

   - 프로그램 내의 각 분기들을 한 번 이상 수행하도록 테스트 케이스를 설계하는 기법

   - 전체 조건식이 최소한 참이 한 번 그리고 거짓이 한 번 선택되었는지 측정하여 퍼센트로 표현

* 조건 테스팅과 커버리지 ( Condition testing and coverage )

   - 조건들이 참이 되는 경우와 거짓이 되는 경우를 모두 수행하도록 테스트 케이스를 설계하는 기법

   - 전체 조건식의 결과와 관계없이 각 개별 조건식이 참 한번, 거짓 한 번을 모두 갖도록 함

* 다중 조건 커버리지 ( Multiple condition coverage )

   - 프로그램 내의 모든 개별 조건식의 모든 가능한 논리적 조합을 고려한 강력한 커버리지

   - 출시 전에 반드시 100% 결함을 제거해야 하는 제품 테스트에서 주로 사용

* 변형 조건/결정 커버리지 ( Modified Condition/Decision Coverage )

   - 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 독립적으로 영향을 줌

[ 구조 기반 기법 고급 ]

* 분할 ( Splitting ) 방법으로 접근한 조건/결정 커버리지

   - 분할 ( Splitting ) : 생성한 모든 논리적 조합을 분할하여 테스트 케이스를 작성하는 방식

   결함의 원인 판단은 빠르지만 테스트 케이스 수가 크게 증가하게 됨

 

* 포함 ( Including ) : 생성한 조합 중 단 하나만 선택하여 하나의 논리적 테스트 케이스를 작성

   결함의 원인 판단이 느리지만 적당한 커버리지 만족과 테스트 케이스 수를 가짐

 

* 참고) https://ss-o.tistory.com/129

 

10. SQL 문제 ( 부분점수 있음 )

- 이씨 내림차순 문제

SELECT ... FROM ... WHERE 이름 LIKE (    1    ) ORDER  BY (    2     )

더보기

문제 유형 : 프로그래밍 ( SQL )

답안

(1) 이%

(2) DESC

 

11. [보기]에서 (1)-(3) 에 알맞은 답안을 찾아 쓰시오. ( 부분 점수 있음 ) - 응집도

[보기]

ㄱ. 기능적(functional) | ㄴ. 시간적(temporal) | ㄷ. 교환적(communication)

ㄹ. 절차적(procedural) | ㅁ. 순차적(sequential) | ㅂ. 우연적(coincidental) | ㅅ. 논리적(logical)

(1) 입출력 간 연관성은 없으나, 순서에 따라 수행할 필요가 있다.

(2) 동일한 입출력을 사용한다.

(3) 하나의 기능에 모두 기여하고 밀접하게 관련되어 있다. ( 그룹화 )

더보기

문제 유형 : 단답형 ( 결합도와 응집도 다수 출제 )

답안 - 기호만 작성 혹은 보기 답안만 작성해도 됨

(1) ㄹ. 절차적

(2) ㄷ. 교환적

(3) ㄱ. 기능적

 

* 해설

- 응집도 : 정보은닉 개념 확장, 응집도가 강할수록 품질이 좋음

[ 응집도가 강한 순서 -> 약한 순서]

functional – sequential – communication – procedural – temporal – logical – coincidental

기능-단일 / 순차-나온것 입력으로 / 통신-동일한입출력 다른기능수행

절차-다수의 관련기능 순차수행 / 시간-특정시간 / 논리-유사한 성격 / 우연-서로 관련 없는 요소

- 기능적 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우

- 순차적 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음활동의 입력 데이터로 사용할 경우

- 통신적(교환적) : 동일한 입출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우

- 절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우

- 시간적 : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성한 경우

- 논리적 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 하나의 모듈이 되는 경우

- 우연적 : 모듈 내부의 각 구성요소들이 서로 관련 없는 요소로만 구성된 경우

 

- 결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승

[ 결합도가 약한 순서 -> 강한 순서 ]

data – stamp – control – external – common - content

자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용

- 자료: 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식

- 스탬프: 두 모듈이 동일한 자료 구조를 조회하는 경우

- 제어: 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어

- 외부: 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때

- 공통: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때

- 내용: 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때

( 다른 모듈에서 사용하는 경우 )

 

# https://ss-o.tistory.com/98

 

12. 다음은 패킷 교환 방식에 대한 설명으로 (1), (2)에 알맞은 답안을 쓰시오. ( 부분점수 있음 )

(1) 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식

(2) 헤더에 붙여서 개별적으로 전달하는 비연결형 교환 방식

더보기

문제 유형 : 단답형

답안 

(1) 가상 회선 방식

(2) 데이터 그램 방식

 

* 해설

- 참고 ( https://gotwo.tistory.com/107?category=653990 )

 

[ 패킷 교환 방식 ]

- 패킷 : 네트워크를 통해 전송하기 쉽도록 자른 데이터 단위이며 수신하는 곳에서는 원래의 데이터로 다시 재조립됨

- 일정한 데이터 블록인 패킷을 교환기가 수신측 주소에 따라 적당한 통신경로를 선택하여 전송하는 교환방식

- 전송하고자 하는 정보를 일정한 크기의 데이터로 분할한 후, 송수신 주소인 헤더를 각각에 부가한 패킷단위로 전송하는 방식

 

* 가상 회선 방식 ( Virtual Circuit ) 

- 데이터를 전송하기 전에 논리적 연결이 설정됨 ( 연결 지향형 )

- 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착함

 

 

* 데이터 그램 방식 ( Datagram )

- 데이터를 전송하기 전에 논리적 연결이 설정되지 않으며, 패킷이 독립적으로 전송됨

- 패킷을 수신한 라우터는 최적의 경로를 선택하여 패킷을 전송하는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전성될 수 있음 ( 비연결 지향형 )

 

[ 회선 교환 방식 ]

- 송수신 단말장치 사이에서 데이터를 전송할 때마다 통신경로를 설정하여 데이터를 교환하는 방식

- 통화로 동작에 의해 공간분할방식과 시분할방식으로 구분

 

13. 디자인 패턴, (    ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로 클래스나 객체들이 상호작용하는 방법이다. 알고리즘 등과 관련된 패턴으로 그 예는 Interpreter, Observer, Command 가 있다. 괄호에 들어갈 말을 작성하시오.

더보기

문제 유형 : 단답형 ( 2020년 4,5 회차 행위 패턴 출제 , 디자인 패턴 다수 출제 )

답안 : 행위

 

* 해설

* MVC 패턴 : Model, View, Controller로 이루어진 패턴

생성 패턴
(Creational Pattern)
구조 패턴
(Structural Pattern)
행위 패턴
(Behavioral Pattern)
객체의 생성과 관련된 패턴 클래스나 객체들을 조합하여
더 큰 구조로 만들 수 있게 해주는 패턴
클래스나 객체들이 서로 상호작용하는
방법이나 책임 분배 방법을 정의하는 패턴
- 추상 팩토리(Abstract Factory)
- 빌더(Builder)
- 팩토리 메소드(Factory Method)
- 프로토타입(Prototype)
- 싱글톤(Singleton)
- 어댑터(Adapter)
- 브리지(Bridege)
- 컴포지트(Composite)
- 데코레이터(Decorator)
- 퍼싸드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리터(Interpreter)
- 반복자(Iterator)
- 중재자(Mediator)
- 메멘토(Memento)
- 옵서버(Observer)
- 상태(State)
- 전략(Strategy)
- 템플릿 메소드(Template Method)
- 방문자(Visitor)

< 생성 패턴 >

* 추상 팩토리

동일한 주제의 다른 팩토리를 묶어줌

- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

 

* 빌더

- 생성과 표기를 분리해 복잡한 객체를 생성

 

* 팩토리 메소드

- 생성할 객체의 클래스를 국한하지 않고 객체를 생성

- 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

 

* 프로토타입

- 기존 객체를 복제함으로써 객체를 생성

 

* 싱글톤

- 한 클래스에 한 객체만 존재하도록 제한

- 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

 

< 구조 패턴 >

* 어댑터

- 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움

 

* 브리지

- 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음

 

* 컴포지트

- 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음

- 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴

 

* 데코레이터

- 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음

 

* 퍼싸드

- 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공

 

* 플라이웨이트

- 다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음

 

* 프록시

- 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함

 

< 행위 패턴 >

* 커맨드

- 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것

- 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

 

* Observer 패턴(2020 실기 1회 기출문제)

- 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것

- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴

 

* 템플릿 메소드

- 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴

- 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴* 디자인 패턴 종류 설명

 

 

14. 아래는 병행제어 (    ) 기법에 대한 설명이다. 괄호 안에 들어갈 알맞은 말을 작성하시오.

- 접근한 데이터에 대한 연산을 모두 마칠 대 까지 상호배제하는 것

더보기

문제 유형 : 단답형 ( 2017년 3회 기출문제 - 약술형, 2018년 3회 기출문제 - O,X문제 )

답안 : 로킹(Locking) 혹은 잠금

 

* 해설

* 병행 제어

- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술

 

* 병행 제어 기법

- 로킹기법, 2Phase Locking 기법, 낙관적 검증기법, Timestamp Ordering 기법, 다중버전동시성제어기법(MVCC)

 

* 로킹 기법

- 주요 데이터의 액세스를 상호 배타적으로 하는 것으로, 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법

 

* 2018년 3회 기출문제 발췌

병행 제어와 관련한 다음 설명에서 괄호 (①) ~ (③)에 가장 적합한 답을 쓰시오.

 

병행 제어(Concurrency Control)란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술이다. 데이터베이스의 공유와 시스템의 활용도를 최대화하고, 데이터베이스의 일관성을 유지하며, 사용자에 대한 응답시간을 최소화하기 위한 목적으로 사용된다.

 

병행 제어 기법의 종류 중 하나인 로킹(Locking)은 주요 데이터의 액세스를 상호 배타적으로 하는 것을 의미한다. 즉 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법이다. 로킹 단위는 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이서, 테이불, 레코드, 필드 등이 사용될 수 있다. 로킹의 종류에는 공유 로크(S, Shared Lock), 배타 로크(X, Exclusive Lock), 의도 로크(I, Intention Lock), 의도 공유 로크(IS, Intention-Shared Lock), 배타 의도 로크(IX, Intention-Exclusive Lock), 공유 의도 독점 로크(SIX, Shared and Intention-Exclusive Lock)가 있다.

 

로킹과 관련된 다음 내용에 대해 맞으면 O, 틀리면 X로 답란에 쓰시오.

- 트랜잭션 T1이 데이터 항목 x에 대해 배타 잠금(Exclusive Lock)을 설정할 경우, 트랜잭션 T2는 데이터 항목 x에 대하여 읽기(read) 연산은 물론 기록(write) 연산도 수행할 수 없다. ( 답란 1 )

- 로킹 단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 로킹 단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다. ( 답란 2 )

 

또 다른 병행 제어 기법 중 하나로 ( 답란 3 ) 기법은 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다. 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법이다. 교착 상태가 발생하지 않는 것이 특징이다. 예를 들어, 트랜잭션이 시스템으로 들어오면 그 때의 시스템 시간 값이 그 트랜잭션의 ( 답란 3 )이(가) 된다.

답안

(답란 1) O

(답란 2) O

(답란 3) 타임 스탬프 또는 Time Stamp

 

15. [보기]에서 (1)-(3) 에 알맞은 답안을 찾아 쓰시오. ( 부분 점수 있음 ) - 럼바우 데이터 모델링

[보기]

ㄱ. operation | ㄴ. sequence | ㄷ. Information

ㄹ. transaction | ㅁ. Function | ㅂ. I/O | ㅅ. Dynamic 

ㅇ.
architecture | ㅈ.
Cause-Effect | ㅊ. constraint | ㅋ. Rebuilding | ㅌ. Duration

(1) 입력값이 출력값일 때 - 예) 자료 흐름도(DFD)

(2) 시간에 따라 변하는 것 - 예) 상태 변화도(DFD)

(3) 구조 - 예) ER다이어그램(ERD)

더보기

문제 유형 : 단답형

답안 

(1) ㅁ. Function

(2) ㅅ. Dynamic

(3) ㄷ. Information

 

* 해설

* 객체지향 분석(OOA; Object Oriented Analysis)의 방법론 중 한 방법

- Rumbaugh(럼바우) 방법 - 객체 모델링 기법(OMT)

: 가장 일반적으로 사용되는 방법으로 ​분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행하는 방법

>> 객체 지향 분석 절차

- 객체 모형(객체 - 객체도),

- 동적 모형(객체의 흐름, 상태, 행위도 - 상태도),

- 기능 모형(자료 흐름, 처리과정 - 자료흐름도)

 

16. C언어

int mp(int base, int exp);

int main() {

	int res;	

	res = mp(2, 10);

	printf("%d ", res);	

	return 0;

}

int mp(int base, int exp) {

	int res = 1;

	for(int i = 0; i < exp; i++) {

		res = res * base;

	}

	return res;

}
더보기

문제 유형 : 프로그래밍 (C언어)

답안 : 1024

 

17. JAVA - 이것은 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드이다. 다음의 출력 결과를 보고 괄호안에 알맞은 답안을 작성하시오.

public class Test {

	public static void main(String[] args) {

		System.out.print(check(1));

	}	

	(           ) String check(int num) {

		return (num >= 0) ? "positive" : "negative";

	}

}

[결과]
positive
더보기

문제 유형 : 프로그래밍 (JAVA)

답안 : static 

 

18. C언어

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);

}
더보기

문제 유형 : 프로그래밍 (C언어 배열과 포인터)

답안 : 8 

 

19. JAVA

 public class ovr1 {

	public static void main(String[] args) {

		ovr1 a1 = new ovr1();

		ovr2 a2 = new ovr2();

		System.out.println(a1.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);

	}

}
더보기

문제 유형 : 프로그래밍 (JAVA 상속, 오버라이딩)

답안 : 11 

 

20. 다음 괄호에 알맞은 답안을 쓰시오.

- 테스트 하네스, 상향식은 테스트 드라이버, 하향식은 테스트 (          )

더보기

문제 유형 : 단답형

답안 : 스텁

 

* 해설

 

* 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하는 테스트 활동의 묶음

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

 

* 단위 테스트(Unit Test)

- 코딩 직후 SW 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 진행

- 사용자 요구사항을 기반으로 한 기능성 테스트 최우선

- 주로 구조기반(화이트박스 테스트) 시행

 

* 통합 테스트

- 시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠

- 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트

-- 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움

-- 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요

-- 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요

-- 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용

 

* 시스템 테스트

실제 환경과 가능한 유사한 환경에서 진행

- 기능적 요구사항(명세기반 기법), 비기능적 요구사항(구조기반 기법)

- 개발 조직과는 독립된 테스트 조직에서 수행되어야 하며 사전 요구사항이 명확해야 한다

- 단위, 통합 테스트가 가능한 완벽히 완료되어 가능상에 문제가 없는 상태여야 한다

 

* 추가 

* 테스트 하네스 

- 테스트를 지원하기 위한 코드와 데이터를 말하며 단위 테스트에 사용하기 위해 개발자가 작성

- 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소

 

* 테스트 슈트

- 테스트 대상 컴포넌트나 시스템에 사용되는 테스트 케이스 집합

 

* 테스트 케이스

- 입력값, 실행 조건, 기대 결과 등의 집합

 

* 테스트 스크립트

- 자동화된 테스트 케이스의 절차와 실행 순서 명시

 

* 테스트 드라이버

- 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈

 

* 테스트 시나리오

- 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서

 

* 테스트 오라클

- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

 

반응형

댓글