정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 2과목 ( 오답 )
본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 2과목 ( 오답 )

by 코딩하는 핑가 2020. 8. 12.
반응형

2과목 : 소프트웨어 개발

( CBT모의고사 기준 틀린 문항 : 23, 24, 26, 29, 30, 31, 32, 34, 36, 37, 40 )

* 키워드 : 품질 요구사항, 인터페이스구현검증도구, 전위순회, 반정규화, 트리의 차수, DRM, 형상관리, 소스코드품질분석도구, 인수테스트종류, 외계인코드

23. 소프트웨어 품질 측정을 위해 개발자 관점에서 고려해야할 항목으로 거리가 먼 것은?

1. 정확성

2. 무결성

3. 사용성

4. 간결성

더보기

정답 및 해설

4. 간결성

 

* ISO/IEC 9126의 소프트웨어 품질 특성별 상세 품질 요구사항 [ 기신사효유이 ]

품질 향상 = 사용자 요구사항 충족

기능
Functionality
신뢰
Reliability
사용
Usability
적절한 기능 정확하게
+ 호환, 보완
결함있어도 문제없이 얼마나 쉽고 편한지
적절 정확 호환 상호운용 보안 성숙 회복 고장 허용 이해 학습 운용 친밀
효율
Effciency
유지보수
Maintainability
이식
Portability
한정된 시간, 자원으로 많은 일처리 개선 및 확장 다른 환경에서 적응
시간 자원 분석 변경 시험 안정 적용 설치 대체 공존

 

24. 인터페이스 구현 검증도구 중 아래에서 설명하는 것은?

- 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

- 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하여 자동화하는 검증 도구

1. xUnit

2. STAF

3. FitNesse

4. RubyNode

더보기

정답 및 해설

2. STAF

* 인터페이스 구현 검증 도구

- xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크

 

- STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 

- FitNesse

: ​웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

 

- NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

 

- Selenium

: 다양한 브라우저 및 개발 언어를 지원​하는 웹 애플리케이션 테스트 프레임워크

 

- watir

: Ruby를 사용하는 애플리케이션 테이트 프레임워크

* 재사용

- 함수 재사용 : Function 단위 소스코드 재사용

- 객체 재사용 : Class 단위 소스코드 재사용

- 컴포넌트 재사용 : 컴포넌터의 인터페이스를 통해 통신

- 라이브러리 : 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법

 

26. 다음 트리를 전위 순회(preorder traversal)한 결과는?

1. +*AB/*CDE

2. AB/C*D*E+

3. A/B*C*D+E

4. +**/ABCDE

더보기

정답 및 해설

4. +**/ABCDE

* 따로 포스팅

https://ss-o.tistory.com/6?category=936854

29. 반정규화(Denormalization) 유형 중 중복 테이블을 추가하는 방법에 해당하지 않는 것은?

1. 빌드 테이블의 추가

2. 집계 테이블의 추가

3. 진행 테이블의 추가

4. 특정 부분만을 포함하는 테이블의 추가

더보기

정답 및 해설

1. 빌드 테이블의 추가

 

* 반정규화(Denormalization)

>> 개념 및 특징

- 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정

( 의도적으로 정규화 원칙을 위배하는 행위 )

- 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하됨

- 과도한 반정규화는 오히려 성능을 저하시킬 수 있음

- 반정규화를 위해서는 사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지를 결정해야함

>> 반정규화 방법

- 테이블 통합

: 두 개의 테이블이 JOIN되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행

 

- 테이블 분할

수평 분할(Horizontal Partitioning)

: 레코드를 기준으로 테이블을 분할하는 것, 레코드별로 사용 빈도의 차이가 큰 경우 사용 빈도에 따라 테이블 분할함

수직 분할(Vertical Partitioning)

: 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할함

 

- 중복 테이블 추가

여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복 테이블을 추가하여 작업의 효율성을 향상시킬 수 있음

-- 집계 테이블의 추가

집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거(Trigger)를 설정하여 사용하는 것으로, 트리거의 오버헤드에 유의해야 함

-- 진행 테이블의 추가

: 이력 관리 등의 목적으로 추가하는 테이블로, 적절한 데이터 양의 유지와 활용도를 높이기 위해 기본키를 적절히 설정함

-- 특정 부분만을 포함하는 테이블의 추가

: 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성함

 

- 중복 속성 추가

: 조인해서 데이터를 처리할 때 데이터를 조회하는 경로로 단축하기 위해 자주 사용하는 속성을 하나 더 추가

 

30. ISO/IEC 9126의 소프트웨어 품질 특성 중 기능서(Functionlity)의 하위 특성으로 옳지 않은 것은?

1. 학습성

2. 적합성

3. 정확성

4. 보안성

더보기

정답 및 해설

1. 학습성

 

* 23번 문제 해설

31. 다음 트리의 차수(degree)와 단말 노드(terminal node)의 수는?

1. 차수 : 4, 단말 노드 : 4

2. 차수 : 2, 단말 노드 : 4

3. 차수 : 4, 단말 노드 : 8

4. 차수 : 2, 단말 노드 : 8

더보기

정답 및 해설

2. 차수 : 2, 단말 노드 : 4

 

* 트리의 차수(Degree) : 가장 차수가 많은 노드의 차수

* 단말 노드 : 자식이 하나도 없는 노드

32. 디지털 저작권 관리(DRM)의 기술 요소가 아닌 것은?

1. 크랙 방지 기술

2. 정책 관리 기술

3. 암호화 기술

4. 방화벽 기술

더보기

​정답 및 해설

4. 방화벽 기술

 

* DRM; Digital Right Management

- 디지털 콘텐츠를 관리 및 보호하는 기술

- 원본 콘텐츠가 디지털이 아닌 아날로그일 경우 디지털로 변환 후 패키지에 의해 DRM 패키징 수행

- 크기가 작은 경우 실시간 패키징

- 패키징 수행 시 암호화된 전자 서명 포함

- 라이선스 정보가 Clearing House에 등록

 

* 디지털 저작권 관리(DRM)의 기술 요소

- 암호화(Encryption) : 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술

- 키 관리(Key Management) : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술

- 암호화 파일 생성(Packager) : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술

- 식별 기술(Identification) : 콘텐츠에 대한 식별 체계 표현 기술

- 저작권 표현(Right Expression) : 라이선스의 내용 표현 기술

- 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술

- 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술

- 인증(Authentication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

 

34. 소프트웨어 형상 관리의 의미로 적절한 것은?

1. 비용에 관한 사항을 효율적으로 관리하는 것

2. 개발 과정의 변경 사항을 관리하는 것

3. 테스트 과정에서 소프트웨어를 통합하는 것

4. 개발 인력을 관리하는 것

더보기

정답 및 해설

2. 개발 과정의 변경 사항을 관리하는 것

 

* 형상 관리(SCM; Software Configuration Management)

- 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

- 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보

- 형상 관리는 소프트웨어 개발의 전 단계에 적용되는 활동이며, 유지보수 단계에서도 수행

- 형상 관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함

 

- 형상 관리 기능의 종류

: 형상 식별, 버전 제어, 형상 통제, 형상 감사, 형상 기록

-- 형상 식별

: 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 함

-- 버전 제어

: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구(Tool)를 결합시키는 작업

-- 형상 통제(변경 관리)

: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

-- 형상 감사

: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

-- 형상 기록(상태 보고)

: 형상의 식별, 통제, 감사 작업의 결과를 기록 관리하고 보고서를 작성하는 작업

36. 소스코드 품질분석 도구 중 정적분석 도구가 아닌 것은?

1. pmd

2. cppcheck

3. valMeter

4. checkstyle

더보기

정답 및 해설

3. valMeter

 

* 소스 코드 품질 분석 도구

- 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구

 

- 정적 분석 도구

: 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구이다.

비교적 애플리케이션 개발 초기의 결함을 찾는데 사용되고,

개발 완료 시점에서는 개발된 소스 코드의 품질을 검증하는 차원에서 사용된다.

>> 종류

- pmd - 소스 코드에 대한 미사용 변수 최적화 안된 코드 등 결함을 유발할 수 있는 코드 검사

- cppchek - C/C++ 코드에 대한 메모리 누수 오버플로우 등 분석

- SonarQube - 중복 코드 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼

- checkstyle - 자바 코드에 대해 소스코드 표준을 따르고 있는지 검사한다

- ccm : 다양한 언어의 코드 복잡도를 분석한다

- cobertura : 자바 언어의 소스코드 복잡도 분석 및 테스트 커버리지 측정

 

- 동적 분석 도구

: 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 도구이다.

발견하기 어려운 결함을 찾아내고, 소스 코드에서 코딩의 복잡고, 모델 의존성, 불일치성 등을 분석

>> 종류

- Avalanche : Valgrind 프레임워크 및 STP기반 / 프로그램 결함 및 취약점 분석

- Valgrind : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석

37. 검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법이며, 일반적으로 통제된 환경에서 사용자와 개발자가 함께 확인하면서 수행되는 검사는?

1. 동치 분할 검사

2. 형상 검사

3. 알파 검사

4. 베타 검사

더보기

정답 및 해설

3. 알파 검사

 

* 인수 테스트의 종류

- 사용자 인수 테스트

: 사용자가 시스템 사용의 적절성 여부를 확인

- 운영상의 인수 테스트

: 시스템 관리자가 시스템 인수 시 수행하는 테스트 기법으로, 백업/복원 시스템, 재난 복구, 사용자 관리, 정기 점검 등을 확인

- 계약 인수 테스트

: 계약상의 인수/검수 조건을 준수하는지 여부를 확인

- 규정 인수 테스트

: 소프트웨어가 정부 지침, 법규, 규정 등 규정에 맞게 개발되었는지 확인

 

- 알파 테스트

: ​개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법

통제된 환경에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 기록함

- 베타 테스트

: 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법

실업무를 가지고 사용자가 직접 테스트하고, 개발자에 의해 제어되지 않은 상태에서 테스트가 행해지며, 발견된 오류와 사용상의 문제점을 기록하고 개발자에게 주기적으로 보고함

40. 외계인코드(Alien Code)에 대한 설명으로 옳은 것은?

1. 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.

2. 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.

3. 오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.

4. 사용자가 직접 작성한 프로그램을 의미한다.

더보기

정답 및 해설

2. 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.

 

* 외계인 코드(Alien Code)

- 아주 오래 전에 개발되어 유지보수 작업이 매우 어려운 프로그램을 의미한다.

- 일반적으로 15년 전 또는 그 전에 개발된 프로그램을 의미하며, 문서화(Documentation)를 철저하게 해두면 방지할 수 있다.

* 이 게시물은 시나공과 유튜버 주간컴공님의 영상을 참고로 작성되었습니다.

 

* 기출문제 풀이

2020/08/12 - [정보처리기사/1과목 소프트웨어 설계] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 1과목 ( 오답 )

2020/08/12 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 2과목 ( 오답 )

2020/08/12 - [정보처리기사/3과목 데이터베이스 구축] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 3과목 ( 오답 )

2020/08/18 - [정보처리기사/4과목 프로그래밍언어 활용] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 4과목 ( 오답 )

2020/08/19 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 2020 1, 2회 통합 기출문제 풀이 - 5과목 ( 오답 )

반응형

댓글