시작하면서
해당 글은 메타 코드 M에서 지원하는 정처기 필기 장학생에 합격하여 글을 작성하게 되었습니다.
메타 코드 해당 강의 보러 가기
참고 사항
- 플랫폼 => 이 뜻은 참고할 주제라는 뜻입니다.
- 이렇게 형관펜이 되어 있는 곳은 시험에 나오거나, 강조하고 싶은 부분이 있을 때 표시할 것입니다.
해당 문제는 메타코드 M의 강의 기출 문제 관련 참고집입니다.
1. 자료구조에 대한 설명으로 틀린 것은?
- 자료구조의 분류
- 선형 구조: 리스트, 스택, 큐, 데크 (deque)
- 비선형 구조 : 트리, 그래프
- 스택 : 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용된다.
2. 다음 중 디지털 저작권 관리(DRM) 구성 요소가 아닌 것은?
- DRM(Digital Rights Management)
- 디지털 콘텐츠의 불법 복제와 무단 사용을 방지하는 기술
- 디지털 미디어의 생명주기 동안 발생하는 사용 권한 관리, 과금, 유통 단계를 제어하고 관리하는 기술
- 크랙 방지, 정책 관리, 암호화, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 인증 등의 기술 요소가 있음.
3. 알고리즘 시간 복잡도 O(1)의 의미는?
- 입력 데이터 수와 관계 없이 항상 일정한 시간 소요
4. 하향식 통합 테스트를 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈은?
- 하향식 통합 테스트
- 상위 모듈부터 하위 모듈로 테스트를 진행하는 방식
- Stub는 아직 개발되지 않은 하위 모듈을 대신해 임시로 사용되는 모듈
- Stub는 상위 모듈이 필요로 하는 기본 기능만 있으며 Test driver보다 작성하기 쉬움.
5. n개의 노드로 구성된 유향 그래프의 최대 간선 수는?
- 유향 그래프 : 방향이 있는 그래프
- 최대 간선 수는 n(n-1), 무향 그래프는 n(n-1)/2임.
6. 소프트웨어 프로젝트 일정이 지연된다고 해서 프로젝트 말기에 새로운 인원을 추가 투입하면, 프로젝트는 더욱 지연된다는 법칙은?
- Brooks의 법칙
- Pareto의 법칙 : 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20%에서 발견된다는 법칙
10. 다음 중 인터페이스 구현 검증 도구가 아닌 것은?
- 인터페이스 검증 도구
- STAF
- 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- 다양한 언어와 플랫폼을 지원하는 분산 소프트웨어 시스템의 재사용 가능한 테스트 케이스를 생성
- Watir(Web application testing in Ruby)
- Ruby로 작성된 웹 앱 테스트를 위한 오픈소스 브라우저 자동화 도구
- xUnit
- 여러 프로그래밍 언어의 단위 테스트를 지원하는 테스트 프레임워크
- FitNesse
- NTAF
- FitNesse와 STAF의 장점을 결합해 개발된 테스트 자동화 프레임워크
- Selenium
- 다양한 브라우저와 플랫폼에서 웹앱을 테스트할 수 있는 오픈소스 브라우저 자동화 프레임워크
- SVN은 버전 관리 시스템임
11. Alpha Test, Beta test와 연관이 가장 깊은 테스트 단계는?
- 시스템 테스트
- 시스템의 모든 기능이 통합된 상태에서 제대로 동작하는 지 테스트
- 인수 테스트
- 시스템이 최종 사용자의 요구사항을 만족하는 지 확인하기 위한 테스트
- 알파 테스트, 베타 테스트와 밀접한 연관
- 알파 테스트
- 내부 팀 또는 선택된 사용자가 통제된 개발자 환경에서 진행되는 테스트
- 베타 테스트
- 개발자 없이 실제 사용자가 소프트웨어를 사용해보고 피드백을 제공하는 테스트
12. 인터페이스 구현시 사용하는 기술 중 다음 내용이 설명하는 것은?
- 인터페이스 시 데이터 교환을 위한 기술
- REST : 웹과 같은 환경에서 HTTP를 통해 클라이언트와 서버 간의 상호 작용을 정의함.
- AJAX : JavaScript 를 사용한 비동기 통신 기술로 클라이언트와 서버 간의 xml 데이터를 주고받는 기술
13. 다음 중 디지털 저작권 관리(DRM) 구성 요소에 대한 설명이 틀린 것은?
- 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
- 클리어링 하우스 : 키 관리 및 라이선스 발급 관리 수행
- 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하고 배포하는 역할을 담당
- 패키지 : 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 도구
- 보안 컨테이너 : 콘텐츠를 암호화하여 무단 접근을 방지
18. IDE(Integrated Development Environment) 도구의 각 기능에 대한 설명으로 틀린 것은?
- Complile : 저급 언어 프로그램을 고급 언어 프로그램으로 변환하는 기능
23. 다음 중 스택에 대한 설명으로 거리가 먼 것은?
- 스택은 TOP이라는 하나의 포인터만을 사용하여 데이터의 삽입과 삭제가 이루어짐. Head와 Tail 두개의 포인터를 사용하는 것은 큐(Queue)의 특징임.
24. 화이트 박스 검사 기법에 해당하는 것만으로만 짝지어 진 것은?
- 화이트 박스 테스트
- Source code의 모든 문장을 한 번 이상 수행함으로써 진행됨.
- 모듈 안의 작동을 직접 관찰할 수 있음.
- 산출물의 각 기능 별로 적절한 프로그램 코드를 수행함으로써 논리적 경로를 점검함
- 데이터 흐름 검사, 루프 검사
- 블랙 박스 테스트
- 프로그램의 구조와 코드를 고려하지 않음.
- 경계값 분석, 오류 예측, 동등 분할 기법(동치 클래스 분해), 원인 결과 그래프 등
25. 다음 주 해싱 함수(Hashing Function)의 종류가 아닌 것은?
- 해싱 함수
- 입력 데이터를 고정된 크기의 고유값(해시)로 변환하는 함수
- 시간 복잡도 O(1)
- 제곱법 (mid-square)
- 키 값을 제곱한 후 그 결과의 중간 부분을 해시 값으로 사용
- 제산법 (division)
- 키를 특정 숫자로 나눈 나머지로 해시 값으로 사용
- 폴딩법(Folding)
- 키를 여러 부분으로 나누고, 각 부분을 더하거나 특정 연산을 통해 해시 값으로 구하는 방식
- 숫자 분석법(digit analysis)
- 키의 특정 자리 숫자들을 선택하여 해시 값으로 사용하는 방식
32. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?
- 테스트 수행을 위한 보조 도구 : 드라이버
- 테스트 케이스 자동 생성 도구 : 자료 흐름도, 랜덤 테스트, 기능 테스트, 입력 도메인 분석 등
33. 다음 중 빌드 자동화 도구에 대한 설명으로 틀린 것은?
- JENKINS는 java 기반의 오픈 소수 도구이며, 주로 지속적 통합(CI) 서버로 사용됨. Groovy 기반의 안드로이드 앱 개발용 빌드 도구는 Gradle임.
34. 다음 중 테스트 드라이버에 대한 설명으로 틀린 것은?
- 상향식 통합 테스트
- 하위 모둘에서 상위 모듈로 테스트를 진행하는 방식
- Test driver는 아직 개발되지 않은 상위 모듈을 대신해 하위 모듈을 호출하는 역할
- Test driver는 필요에 따라 매개 변수를 전달하고 모듈을 수행한 후에 결과를 보여줄 수 있음.
- 테스트 대상 모듈이 호출하는 상위 모듈의 역할을 한다.
37. 블랙박스 테스트를 이용하여 발견할 수 있는 오류가 아닌 것은?
- 블랙박스 테스트는 내부 로직을 보지 않고 입출력 결과만으로 테스트하는 기법.
- 반복 조건과 루프 내의 문장 실행 여부는 프로그램의 내부 로직과 관련된 것으로, 이는 화이트 박스 테스트로 발견할 수 있는 오류임.
40. 다음 그래프에서 정점 A를 선택하여 깊이 우선 탐색(DFS)로 운행한 결과는?
- 깊이 우선 탐색(DFS)은 한 방향으로 최대한 깊이 탐색한 후, 더 이상 갈 수 없을 때 다른 방향을 탐색함. A에서 시작하여 가능한 경로를 따라가면 A→ B → D → F → E → C 순서로 탐색이 이루어짐.
41. 소프트웨어 형상관리에 대한 설명으로 가장 거리가 먼 것은?
- 대표적인 형상 관리 도구로 And, Gradle, Jenkins는 빌드 자동화 도구이며, 형상 관리 도구가 아님. 대표적인 형상 관리 도구로는 Git, SVN, CVS 등이 있음.
47. 제어 흐름 그래프가 다음과 같을 때, McCabe의 Cyclomatic 수는?
- 맥케이브 회전 복잡도(McCabe Cyclomatic Complexity)
- 소프트웨어의 복잡도를 측정하는 지표로 프로그램의 제어 흐름 그래프를 기반으로 계산됨.
- 제어 흐름 그래프의 cyclomatic 수
- CC = E - N + 2
- CC 는 복잡도, E는 간선의 수, N은 노드의 수
- 오른쪽 예시에서는 CC = 6 -5 + 2 = 3
48. 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준은?

!https://velog.velcdn.com/images/j_k_/post/d8be0d7a-a68f-486d-9f9a-0d5f014f35ff/image.png
!https://velog.velcdn.com/images/j_k_/post/c64f8c60-3726-42b9-9e69-db3ada6c9894/image.png