2020년 6월 6일 정보처리기사 필기 기출 오답
응시
소프트웨어 설계
소프트웨어 개발
데이터베이스 구축
미응시
프로그래밍 언어 활용
정보시스템 구축관리

1과목 소프트웨어 설계
6. UML 확장 모델에서 스테레오 타입 객체를 표현할 때 사용하는 기호로 맞는 것은? 80%
① 《 》
② (( ))
③ {{ }}
④ [[ ]]
정답 : 1
UML 확장 모델 스테레오 타입 객체 표현기호 《 》
7. GoF(Gang of Four)의 디자인 패턴에서 행위 패턴에 속하는 것은? 63%
① Builder
② Visitor
③ Prototype
④ Bridge
정답 : 2
생성패턴 : 객체의 생성과 관련된 패턴
구조패턴 : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
행위패턴 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
① Builder 작게 불리된 인스턴스를 건축하듯이 조합하여 객체를 생성한다.(생성패턴)
② Visitor : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성한다.
③ Prototype : 원본 객체를 복제하는 방법으로 객체를 생성한다.(생성패턴)
④ Bridge : 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한다.(구조패턴)
8. 자료사전에서 자료의 생략을 의미하는 기호는? 76%
① { }
② **
③ =
④ ( )
정답 : 4
정의 =
구성, 연결 +
반복 { }
주석 **
선택 [ | ]
생략 ( )
9. 트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어하는 미들웨어는? 78%
① RPC
② ORB
③ TP monitor
④ HUB
정답 : 3
① RPC : remote procedure call 원격 절차 호출 또는 원격 프로시저 호출
② ORB : object request broker 객체 간 메시지 전달을 지원하는 미들웨어
③ TP monitor : 트랜잭션 처리를 감시/제어하는 미들웨어
ORB는 객체 지향 미들웨어로 코바 표준 스펙을 구현한 미들웨어다.
11. XP(eXtreme Programming)의 5가지 가치로 거리가 먼 것은? 79%
① 용기
② 의사소통
③ 정형분석
④ 피드백
정답 : 3
용기(Courage) : 고객의 요구사항 변화에 능동적인 대처
단순성(Simplicity) : 부가적 기능, 사용되지 않는 구조와 알고리즘 배제
커뮤니케이션(Communication) : 개발자, 관리자, 고객 간의 원활한 의사소통
존중(Request) : 모든 프로젝트 관리자는 팀원의 기여를 존중
13. 소프트웨어 개발 방법 중 요구사항 분석(Requirements Analasis)과 거리가 먼 것은? 61%
① 비용과 일정에 대한 제약설정
② 타당성 조사
③ 요구사항 정의 문서화
④ 설계 명세서 작성
정답 : 4
요구사항 분석
-비용과 일정에 대한 제약설정
-타당성 조사
-요구사항 정의 문서화
설계명세서 작성은 요구사항 분석 다음 단계인 요구사항 명세에서 한다.
14. 럼바우(Rumbaugh)의 객체지향 분석 절차를 가장 바르게 나열한 것은? 83%
① 객체모형→동적모형→기능모형
② 객체모형→기능모형→동적모형
③ 기능모형→동적모형→객체모형
④ 기능모형→객체모형→동적모형
정답 : 1
럼바우 객체지향 분석 절차
1. 객체 모델링 :객체 다이어그램(객체 관계)으로 표시한다. 가장 중요하며 선행되어야 함
2. 동적 모델링 : 상태 다이어그램(상태도)를 이용해서 시간의 흐름에 따른 객체들간의 제어흐름, 상호작용, 동작순서 등의 동적인 행위를 표현하는 모델링
3. 기능 모델링 : 자료 흐름도(DFD)를 이용하여 다수의 프로세스들간의 자료흐름을 중심으로 처리한다.
16. 객체지향 기법에서 클래스들간 '부분-전체(part-whole)' 관계 또는 '부분(is-a-part-of)'의 관계로 설명되는 연관성을 나타내는 용어는? 61%
① 일반화
② 추상화
③ 캡슐화
④ 집단화
정답 : 4
집단화 is part a (part가 들어가면 집단화를 떠올리기) : 클래스간의 구조적인 집약 관계 "클래스 A는 클래스 B와 클래스 C로 구성된다."
일반화 is a : 클래스들간의 개념적인 포함관계 "자식클래스 A는 부모 클래스 B의 일종이다."
캡슐화 : 속성(데이터)과 메소드(연산)을 하나로 묶어서 객체로 구성된다.
추상화 : 공통 성질을 추출하여 슈퍼클래스로 구성한다. 또한 객체 중심의 안정된 모델을 구축 가능하며 현실 세계를 자연스럽게 표현한다. 분석의 초점이 명확해진다는 점이 장점이다.
20. 객체지향 분석 방법론 중 E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체식별, 구조식별, 주체정의, 속성 및 관계정의, 서비스정의 등의 과정으로 구성되는 것은? 72%
① Coad와 Yourdon 방법
② Booch 방법
③ Jacobson 방법
④ Wirfs-Brocks 방법
정답 : 1
객체지향 분석 방법론
E-R다이어그램 사용 객체 행위 모델링 및 객체 구조 식별 및 주체 속성 및 관계 서비스 정의
1. Coad와 Yourdon 방법 : 클래스와 객체 식별 및 의미 관계 식별
2. Booch 방법 : 소프트웨어 구성요소를 그래픽 표기법을 이용하여 모델링 / 객체모델링, 동적 모델링, 기능 모델링
3. 럼바우 기법
Rumbaugh : 가장 일반적으로 사용되는 방법으로 분석활동을 객체모델/동적모델/기능모델로 나누어 수행하는 방법
Booch : 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석방법
Jacobson : Use Case를 강조하여 사용하는 분석방법
Coad와 Yourdon : E-R다이어그램을 사용하여 개체의 활동들을 데이터모델링하는데 초점을 둔 기법
Wirfs-Brock : 분석과 설계간의 구분이 없고 고객명세서를 평가해서 설계작업까지 연속적으로 수행하는 기법
2과목 소프트웨어 개발
22. White Box Testing에 대한 설명으로 옳지 않은 것은? 66%
① Base Path Testing, Boundary Value Analysis가 대표적인 기법이다
② Source Code의 모든 문장을 한번 이상 수행함으로서 진행된다.
③ 모듈 안의 작동을 직접 관찰할 수 있다.
④ 산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로서 논리적인 경로를 점검한다.
정답 : 1
White Box Testing 종류 : Condition Testing, Loop Tesitng, Data Flow Testing
Black Box Testing 종류 : Equivalence Partitioning Testing, Boundary Value Testing, Cause-Effect Graphing Testing, Error Guessing, Comparison Testing
24. 인터페이스 구현 검증 도구 중 아래에서 설명하는 것은? 61%
-서비스호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 -각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고 통합하여 자동화하는 검증 도구 |
① xUnit
② STAF
③ FitNesse
④ RubyNode
정답 : 2
인터페이스 구현 검증 도구
xUnit : Java, C++ 등 다양한 언어를 지원하는 단위테스트 프레임워크
STAF : 서비스 호출 및 컴포넌트 재사용 등 환경을 지원하는 테스트 프레임워크
FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크
Selenium : 다양한 브라우저 및 개발 언어를 지원하는 웹 어플리케이션 테스트 프레임워크
Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크
Ruby : 인터프리터 방식의 객체지향 스크립트 언어
26. 다음 트리를 전위순회(preorder traversal)한 결과는? 75%
① +*AB/*CDE
② AB/C*DE+
③ A/B*C*D+E
④ +**/ABCDE
정답 : 4
전위순회 : root를 먼저 방문 ex)+**/ABCDE
중위순회 : 왼쪽 하위트리를 방문한 뒤 root를 방문 ex)A/B*C*D+E
후위순회 : 하위트리를 방문한 뒤 root를 방문 ex)AB/C*D*E+
전위 : root -> left -> right
중위 : left->root->right
후위 : left->right->root
27. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은? 73%
① IPSec
② SMTP
③ SSL
④ S-HTTP
정답 : 2
SMTP : 이메일 송수신에 사용되는 프로토콜이다.
IPSec(IP Security) : 네트워크 계층에서 IP패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
SSL(Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
S-HTTP(Secure Hypertext Transfer Protocol) : 클라이언트와 서버간에 전송되는 모든 메세지를 암호화하는 프로토콜
28. 평가 점수에 따른 성적부여는 다음표와 같다. 이를 구현한 소프트웨어를 경계값 분석 기법으로 테스트하고자 할 때 다음 중 테스트케이스의 입력값으로 옳지 않은 것은? 75%
평가 점수 | 성적 |
80~100 | A |
60~79 | B |
0~59 | C |
① 59
② 80
③ 90
④ 101
정답 : 3
경계값 분석 기법: 경계가 되는 곳은 0, 59, 60, 79, 80, 100
90은 80~100사이의 값이라서 테스트하지 않는다.
101이 되는 이유는 100까지라서 그 이상의 값을 넣을 경우의 반응 확인이 가능하기 때문이다.
29. 반정규화(Denormalization) 유형 중 중복테이블을 추가하는 방법에 해당하지 않는 것은? 45%
① 빌드 테이블의 추가
② 집계 테이블의 추가
③ 진행 테이블의 추가
④ 특정 부분만을 포함하는 테이블의 추가
정답 : 1
반정규화 유형 중 중복 테이블 추가 방법은 다음과 같다.
진행 테이블 추가 / 집계 테이블 추가/ 특정 부분만을 포함하는 테이블 추가
31. 다음 트리의 차수(degree)와 단말 노드(terminal node)의 수는? 68%
① 차수 :4, 단말노드 : 4
② 차수 : 2, 단말노드 : 4
③ 차수 : 4, 단말노드 : 8
④ 차수 : 2, 단말노드 : 8
정답 : 2
트리의 차수 : 전체 트리에서 가장 큰 차수 ex) A,C,E => 차수 2
단말노드 : 자식이 없는 노드 ex) D,G,H,F
차수는 특정 노드에 연결된 자식 노드의 수
특정 노드 언급이 없는 경우는 가장 큰 차수가 가지는 값
노드 : 자식이 없는 노드
32. 디지털 저작권 관리(DRM)의 기술 요소가 아닌 것은? 73%
① 크랙 방지 기술
② 정책 관리 기술
③ 암호화 기술
④ 방화벽 기술
정답 : 4
디지털 저작권 관리의 기술 요소 :
1.암호화
2.키관리
3.암호화 파일 생성
4.식별기술
5.저작권 표현
6.정책관리
7.크랙방지
8.인증
33. 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20%내에서 발견된다는 법칙은? 70%
① Brooks의 법칙
② Boehm의 법칙
③ Pareto의 법칙
④ Jackson의 법칙
정답 : 3
Pareto의 법칙 :오류의 80%는 전체의 20%내에서 발견된다.
Brooks의 법칙 : 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다.
Pesticide Paradox : 동일 테스트 케이스로 동일 테스트 반복시 더이상 결함이 발견되지 않는 현상
Absence of Errors Fallacy : 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다.
36. 소스코드 품질분석 도구 중 정적분석 도구가 아닌 것은? 63%
① pmd
② cppcheck
③ valMeter
④ checkstyle
정답 : 3
정적 분석 도구
pmd : 소스 코드에 대한 미사용 변수, 최적화가 안된 코드 등 결함을 유발할 수 있는 코드를 검사
cppcheck : C/C++ 코드에 대한 메모리 누수 오버플로우 등을 분석
SonarQude : 중복 코드 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼
checkstyle : 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사
ccm : 다양한 언어의 코드 복잡도를 분석
cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정
동적 분석 도구
Avalanche : Valgrind 프레임워크 및 STP기반/ 프로그램 결함 및 취약점 분석
valgrind : 프로그램 내에 존재하는 메모리 및 스레드 결함 분석
37. 검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법이며 일반적으로 통제된 환경에서 사용자와 개발자가 함께 확인하면서 수행되는 검사는? 75%
① 동치 분할 검사
② 형상 검사
③ 알파 검사
④ 베타 검사
정답 : 3
동치 분할 검사 : 입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법(블랙박스 테스트)
알파 테스트 : 개발장소에서 사용자가 개발자 앞에서 행하는 테스트 기법(인수 테스트)
베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법(인수테스트)
형상 검사(구성 검토, 검사) : 구성 요소, 목록, 유지보수를 위한 모든 사항이 표현되었는가를 검사
38. 하향식 통합에 있어서 모듈 간의 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈을 무엇이라고 하는가? 79%
① Stub
② Driver
③ Procedure
④ Function
정답 : 1
상향식은 Driver 하향식은 Stub
1. Stub : 하향식 통합시 하위 모듈이 없으므로 하위 모듈 역할을 하는 Stub을 이용
2. Driver : 상향식 통합시 상위 모듈이 없으므로 상위 모듈 역할을 하는 Driver를 이용
3. Procedure : 특정 작업을 수행하는 PL/SQL BLOCK
4. Function : 첫번쨰 집합의 임의의 한 원소가 두번째 집합의 오직 한 원소에만 대응하는 관계
40. 외계인코드(Alien Code)에 대한 설명으로 옳은 것은? 82%
① 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
② 아주 오래되거나 참고문서 또는 개발자가 없어서 유지보수가 어려운 프로그램을 의미한다.
③ 오류가 없어 디버깅 과정이 필요없는 프로그램을 의미한다.
④ 사용자가 직접 작성한 프로그램을 의미한다.
정답 : 2
스파게티 코드 : 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
외계인 코드 : 아주 오래되거나 개발자가 없어서 유지 혹은 보수가 어려운 프로그램을 의미한다.
3과목 데이터베이스 구축
46. 데이터베이스의 논리적 설계(logical design) 단계에서 수행하는 작업이 아닌 것은? 47%
① 레코드 집중의 분석 및 설계
② 논리적 데이터베이스 구조로 매핑
③ 트랜잭션 인터페이스 설계
④ 스키마의 평가 및 정제
정답 : 1
데이터베이스의 논리적 설계(데이터모델링)
1. 현실 세계에서 발생하는 자료를 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
2. 개념 세계의 데이터를 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터 모델화
3. 트랜잭션의 인터페이스 설계
4. 관계형 데이터베이스라면 테이블 설계
5. 특정 목표 DBMS에 따른 스키마 설계
6. 스키마의 평가 및 정제
48. 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은? 62%
① 도메인
② 튜플
③ 엔티티
④ 다형성
정답 : 1
관계 데이터 모델에서 데이터의 가장 작은 논리적 단위는 애트리뷰트의 값
이 값은 원자값만을 허용한다.
같은 타입의 모든 원자 값들의 집합을 애트리뷰트의 도메인이라고 한다.
도메인은 같은 도메인의 값들끼리 비교가 허용된다.
하나의 도메인에 대한 둘 이상의 애트리뷰트가 정의될 수도 있다.
한 릴레이션에서는 모든 애트리뷰트의 이름이 반드시 달라야 한다.
52. 분산 데이터베이스 목표 중 "데이터베이스의 분산된 물리적 환경에서 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장된다"는 것과 관계있는 것은? 70%
① 장애 투명성
② 병행 투명성
③ 위치 투명성
④ 중복 투명성
정답 : 1
분산 데이터베이스의 목표
1. 위치투명성(Location Transparency) : 데이터 베이스의 실제 위치를 알 필요없이 단지 데이터베이스의 논리적인 명칭만으로 엑세스할 수 있다
2. 중복투명성(Replication Transparency) : 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용이 가능하다. 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
3. 병행투명성(Concurrency Transparency) : 다수의 트랜잭션이 동시에 실현되더라도 결과는 영향받지 않는다.
4. 장애투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터의 장애에도 트랜잭션을 정확히 처리한다.
53. 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL은? 79%
① 트리거(Trigger)
② 무결성(Integrity)
③ 잠금(Lock)
④ 복귀(Rollback)
정답 : 1
Trigger : 데이터베이스가 미리 정해 놓은 조건이 충족되거나 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에서 자동적으로 실행되도록 구현한 프로그램
Integrity : 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 데이터의 무결성을 유지하는 것은 DBMS의 중요한 기능이며 주로 데이터에 적용되는 연산에 제한을 두어 무결성을 유지한다.
Lock :삽입, 삭제, 갱신 등의 트랜잭션이 일어나는 동안 DBMS의 테이블, 행이나 열 등의 요소들은 잠기게 된다.
Rollback : 작업 중 문제가 발생되어 트랜잭션의 처리과정에서 발생한 변경사항을 취소하는 명령어
Database Transaction : 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위
54. 병행제어의 로킹(Locking) 단위에 대한 설명으로 옳지 않은 것은?
① 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
② 로킹 단위가 작아지면 로킹 오버헤드가 감소한다.
③ 로킹 단위가 작아지면 데이터베이스 공유도가 증가한다.
④ 한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 한다.
정답 : 2
로킹단위가 커지면 로킹 오버헤드가 감소한다.