Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개발의변화

2단원 문제풀이 본문

정보처리기사 준비

2단원 문제풀이

refindmySapporo 2023. 5. 9. 11:35
반응형

21. 정렬된 N개의 데이터를 처리하는데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?   

① 선택정렬 ② 삽입정렬     ③ 버블정렬 ④ 합병정렬

 

선택정렬,삽입정렬,버블정렬: O(n^2)

합병정렬: O(Nlog2N)

  1. 선택 정렬(Selection Sort): 선택 정렬은 배열을 순회하면서 최솟값을 선택하여 정렬된 부분과 교환하는 방식으로 동작합니다. 순회 과정에서 최솟값을 선택하기 위해 비교 연산을 수행하며, 선택한 값과 정렬된 부분의 첫 번째 값과 교환합니다. 이 과정을 반복하여 전체 배열이 정렬될 때까지 진행됩니다. 선택 정렬은 구현이 간단하지만 평균적으로 O(n^2)의 시간 복잡도를 가지므로 큰 데이터에 대해서는 비효율적일 수 있습니다.
  2. 삽입 정렬(Insertion Sort):

    첫번째 번호가 다음 번째 숫자보다 클 경우 그 자리 사이에 위치하는게 1회전

  3. 버블 정렬(Bubble Sort): 버블 정렬은 인접한 두 요소를 비교하고 필요에 따라 교환하는 방식으로 동작합니다. 배열의 첫 번째 요소부터 시작하여 인접한 요소와 비교하며 값의 대소에 따라 교환합니다. 이 과정을 한 번의 순회가 끝날 때마다 가장 큰 값이 배열의 마지막으로 이동합니다. 이러한 과정을 전체 배열이 정렬될 때까지 반복합니다. 버블 정렬은 선택 정렬과 삽입 정렬과 마찬가지로 평균적으로 O(n^2)의 시간 복잡도를 가지며, 대상 데이터가 이미 거의 정렬된 경우에는 상대적으로 빠른 성능을 보일 수 있습니다.
  4. 합병 정렬(Merge Sort): 합병 정렬은 분할 정복(divide and conquer) 방식을 사용하여 배열을 정렬합니다

 

22. White Box Testing 에 대한 설명으로 옳지 않은 것은?     

① Base Path Testing, Boundary Value Analysis가 대표적인 기법이다.     

② Source Code 의 모든 문장을 한번 이상 수행함으로서 진행된다.   

③ 모듈 안의 작동을 직접 관찰 할 수 있다.     

④ 산출물의 각 기능별로 적절한 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.

화이트박스 테스트(White Box Test)

- 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드 논리적인 모든 경로를 테스트하여  테스트 케이스를 설계하는 방법이다.

화이트박스 테스트

  • 화이트박스 테스트는 설계된 절차에 초점을 둔 구조적 테스트며, 테스트 과정의 초기에 적용된다.
  • 모듈 안의 작동을 직접 관찰한다.
  • 원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로써 수행된다.
  • 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다

블랙박스 테스트(Black Box Test)

- 블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서  기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.

  • 사용자의 요구사항 명세를 보면서 테스트하는 것으로, 주로 구현된 기능을 테스트한다.
  • 소프트웨어 인터페이스에서 실시되는 테스트이다.
  • 부정확하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류, 초기화와 종료 오류 등을 발견하기 위해 사용되며, 테스트 과정의 후반부에 적용된다

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

    ① 정확성 ② 무결성     ③ 사용성 ④ 간결성

소프트웨어 품질측정 개발자 관점: 정확성, 신뢰성, 효율성, 무결성, 유연성, 이식성, 재사용성, 상호운용성 

 

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

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

- 테스트 대상 분산 환경에 대몬을 사용하여 테스트 대상 프로그램을 통해 테스트 수행 통합 자동화

① xUnit ② STAF     ③ FitNesse ④ RubyNode

 

xUnid: Java,C++ 등 다양한 언어 지원하는 단위 테스트

STAF: 서비스 호출 및 컴포넌트 재사용 등 환경 지원 

FitNesse: 웹 기반 테스트케이스 설계, 실행, 결과 등 

NTAF: FitNesse 장점인 협업 기능과 STAF 장점인 재사용 및 확장성 통합 네이버 테스트

Selenium: 다양한 브라우저 및 개발 언어 지원하는 애플리케이션

Watlr: Ruby 사용하는 테스트

Ruby: 인터프리터 방식의 객체지향 스크립트 언어

 

25. EAI(Enterprise Application Integration)의 구축 유형으로 옳지 않은 것은?    

 ① Point-to-Point ② Hub&Spoke   ③ Message Bus ④ Tree

 

Point - to - Point: 가장 기본적인 애플리케이션 통합 방식 1 : 1

Hub & Spoke: 단일 접점인 허브 시스템을 통해 데이터 전송하는 중앙 집중형 방식

Message Bus: 애플리케이션 사이에 미들웨어를 두어 처리하는 방식

Hybrid: Hub & Spoke 와 Message Bus 혼합 방식

 

27. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은?

① IPSec ② SMTP  ③ SSL ④ S-HTTP

SMTP는 이메일 송/수신에 사용되는 프로토콜

 

28. 평가 점수에 따른 성적부여는 다음 표와 같다.

이를 구현한 소프트웨어를 경계값 분석 기법으로 테스트 하고자 할 때 다음 중 테스트 케이스의 입력 값으로 옳지 않은 것은?    

80~100 A

60~79   B

0 ~ 59.  C   

① 59 ② 80     ③ 90 ④ 101

경계값 분석 기법 ->

경계가 되는 곳 0 59 60 79 80 100 90은

80~100 사이 값이라서 테스트 의미가 없음

101이 되는 이유 : 100까지라서 그 이상의 값을 넣을 경우의 반응 확인 가능

 

31.

단말노드 : 자식이 없는 노드

 

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

 

정적 분석 도구

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

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

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

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

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

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

동적 분석 도구

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

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

 

동치 분할 검사 :

입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법  - 블랙박스 테스트 종류 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행 하는 테스트 기법

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

  - 인수 테스트 종류 [해설작성자 : 거상 주작섭] 형상 검사(구성 검토, 검사) : 구성 요소,

 

ISO/IEC 9126: 소프트웨어 품질 특성 및 척도에 대한 표준화

ISO/IEC 14598: 소프트웨어 제품 평가, ISO/IEC 9126 사용을 위한 절차와 기본 상황 및 소프트웨어 평가 프로세스에 대한 표준 규정

ISO/IEC 12119: 패키지 소프트웨어 평가

 

물리데이터 저장소의 파티션 유형

1. 범위 분할 (Range Partitioning): 지정한 열의 값을 기준으로 분할

2. 해시 분할 (Hash Partitioning): 해시 함수를 적용한 결과값에 따라 데이터 분할

3. 조합 분할 (Composite Partitioing): 범위 분할 후 해시 함수를 적용하여 다시 분할

 

인수 테스트

알파,베타 테스트

 

외부 스키마 => 논리

사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것

 

내부 스키마 => 물리

실제 DB에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현 방법을 나타냄

 

개념 스키마=> 전체 논리

개념 스키마는 DB의 전체적인 논리적 구조로서 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조칙 전체의 DB로 하나만 존재한다

해싱 함수 종류:

제곱법

폴딩법 : 해싱함수 중 레코드 키를 여러 부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용

제산법: 레코드키를 해시표로 나눈 나머지를 홈 주소로 사용

기수변환법: 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수 절단, 다시 주소 범위에 맞게 조정

숫자분석법: 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택

 

DRM 구성요소

1. 콘텐츠 분배자: 암호화된 콘텐츠를 유통하는 곳

2. 패키저: 콘텐츠를 메타데이터와 함께 배포가능한 형태로 묶어 암호화

3. 클리어링 하우스: 키 관리및 라이센스 발급 관리

4. DRM 컨트롤러: 배포된 콘텐츠의 이용권한 통제

 

단위 테스트(Unit Test)
: 하나의 "모듈"을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트

내부에 존재하는 논리적인 오류를 검출, 기능이 제대로 수행되는지 점검

통합 테스트(Integration Test): 모듈을 통합하는 과정에서 "모 듈 간의" 호환성을 확인하기 위해 수행되는 테스트
시스템 테스트(System Test): "완전한 시스템"에 대해 수행하 는 테스트. 기능적, 비기능적 요구사항을 만족하는지 확인 인수(Acceptance Test): 실제 환경에서 "사용자"가 참여하는 테스트. 요구 분석 명세서에 나타난 사항을 모두 충족하는지, 시스템이 예상대로 동작하는지 사용자의 관점에서 확인

인수 테스트(Acceptance Test): 실제 환경에서 "사용자"가 참여하는 테스트. 요구 분석 명세서에 나타난 사항을 모두 충족하는지 사용자 관점에서 확인

 

이식성(Portability)==수정: 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 능력

효율성(Efficiency): 최소의 작업으로 요구되는 기능을 수행하는 정도

사용 용이성(Usability): 소프트웨어를 쉽게 사용할 수 있는 정도

정확성(Correctness): 사용자의 요구사항을 충족시키는 정도

반응형

'정보처리기사 준비' 카테고리의 다른 글

3-1 SQL 응용  (0) 2023.05.11
1단원 기출 정리  (0) 2023.05.11
2-3 제품 소프트웨어 패키징  (0) 2023.05.08
2-2 통합 구현  (0) 2023.05.08
2-1 데이터 입출력 구현  (1) 2023.05.08