2과목 소프트웨어 개발
21. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것은?
->SMTP
IPSec: 네트워크 계층에서 IP 패킷을 보호하는 프로토콜로, 데이터 암호화와 인증을 제공한다.
SSL: 웹사이트와 사용자의 브라우저 간의 통신을 암호화하여 데이터의 안전성을 보장하는 프로토콜이다.
S-HTTP: SSL의 변형으로, 웹 통신을 위해 설계된 프로토콜로 보안 웹 통신을 지원한다.
22. 소프트웨어 공학의 기본 원칙이라고 볼 수 없는 것은?
->최대한 많은 인력 투입
23. 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제표준은?
-> ISO/IEC 12119
24.다음 중 클린 코드 작성원칙으로 거리가 먼 것은?
->중복이 최대화된 코드 작성
25. 블랙박스 테스트의 유형으로 틀린 것은?
->조건, 푸르 검사
조건, 루프 검사: 이는 코드의 내부 구조와 실행 경로를 기반으로 검사하는 화이트박스 테스트 기법이다.
경계값 분석: 입력값의 경계에 대해 집중적으로 테스트하는 방법이다. 경계 조건에서 오류가 발생하기 쉬운 특성을 이용한다.
오류 예측: 이전의 오류 패턴이나 경험을 바탕으로 테스트를 설계하여 시스템의 약점을 찾아내는 기법이다.
동등 분할 기법: 입력값을 여러 가지 클래스로 나눈 뒤, 각 클래스에서 하나의 테스트 케이스로 대표하는 값을 이용하여 테스트한다.
26.제어흐름 그래프가다음과 같을 떄 McCave의 cyclomatic수는 얼마인가
->4

McCabe의 Cyclomatic 수는 소프트웨어의 복잡도를 측정하는 중요한 지표이며, 주로 테스트 케이스 수를 결정하는 데 사용된다. Cyclomatic 수는 다음 공식을 이용하여 계산된다:
M=E−N+2P
M은 Cyclomatic 수이다.
E는 그래프의 엣지(선)의 수이다.
N은 그래프의 노드(점)의 수이다.
P는 그래프의 연결된 구성 요소 수이다.
계산 방법
엣지 수 (E) 계산하기: 제어흐름 그래프의 엣지 수를 세어야 한다.
노드 수 (N) 계산하기: 제어흐름 그래프의 노드 수를 세어야 한다.
구성 요소 수 (P): 일반적으로 1로 가정한다.
27. 다음 자료에 대하여 선택 정렬을 이용하여 오름차순으로 정렬하고자한다. 3회전 후의 결과로 옳은것은?
->14,17,35,40,37
주어진 목록: [37, 14, 17, 40, 35]
첫 번째 회전
초기 목록: [37, 14, 17, 40, 35]
가장 작은 값을 찾는다: 14 (2번째 위치).
37과 14를 교환한다.
리스트 상태: [14, 37, 17, 40, 35]
두 번째 회전
현재 리스트: [14, 37, 17, 40, 35]
두 번째 위치부터 가장 작은 값을 찾는다: 17 (3번째 위치).
37과 17을 교환한다.
리스트 상태: [14, 17, 37, 40, 35]
세 번째 회전
현재 리스트: [14, 17, 37, 40, 35]
세 번째 위치부터 가장 작은 값을 찾는다: 35 (5번째 위치).
37과 35를 교환한다.
최종 리스트 상태: [14, 17, 35, 40, 37]
28. 형상 관리 도구의 주요 기능으로 거리가 먼 것은?
->정규화
정규화(Normalization): 데이터베이스에서 데이터의 중복을 줄이고 무결성을 보장하는 과정이다. 형상 관리 도구와는 관련성이 없다.
체크인(Check-in): 소스 코드의 변경 사항을 버전 관리 시스템에 업로드하는 기능이다. 형상 관리 도구의 주요 기능 중 하나이다.
체크아웃(Check-out): 소스 코드의 특정 버전을 가져오는 기능이다. 이 역시 형상 관리 도구에서 필수적인 기능이다.
커밋(commit): 변경된 소스 코드를 버전 관리 시스템에 영구 저장하는 기능이다. 이것도 형상 관리 도구의 핵심 기능이다.
29. 다음 트리를 Preorder 운행법으로 운행할 경우 가장 먼저 탐색되는 것은?
->A

Preorder 탐색은 다음과 같은 방식으로 진행된다:
현재 노드를 방문한다.
왼쪽 서브트리를 탐색한다.
오른쪽 서브트리를 탐색한다.
따라서, 트리에서 가장 먼저 탐색되는 것은 루트 노드이다.
이 경우에는 A가 루트노드
30. 소프트웨어 품질 목표 중 주어진 시간동안 주어진 기능을 오류없이 수행하는 정도를 나타내는 것은?
->신뢰성
직관성: 사용자가 시스템을 쉽고 자연스럽게 이해할 수 있는 정도를 나타낸다.
사용 용이성: 소프트웨어가 얼마나 쉽게 사용할 수 있는지를 평가하는 척도이다.
이식성: 소프트웨어가 다양한 환경에서 쉽게 전환되거나 배포될 수 있는 능력을 나타낸다.
31. 알고리즘 설계 기법으로 거리가 먼 것은?
->Static Block
Static Block (정적 블록): 일반적으로 프로그래밍 언어에서 사용되는 개념으로, 객체의 초기화 작업을 수행하기 위한 블록이다. 그러나 알고리즘 설계 기법으로서의 명확한 정의나 사용은 없다.
Divide and Conquer (분할 정복): 문제를 여러 개의 하위 문제로 나누고, 이 하위 문제들을 독립적으로 해결한 후 그 결과를 모아서 원래 문제를 해결하는 기법이다. 널리 사용되는 알고리즘 설계 기법이다.
Greedy (탐욕법): 매 단계에서 최선의 선택을 하여 최종적으로 최적의 해를 구하고자 하는 방식이다. 이 기법은 비교적 간단하며 흥미로운 문제를 해결하는 데 효과적이다.
Backtracking (백트래킹): 가능한 해를 찾기 위해 선택지를 한 단계씩 진행하면서 조건에 맞지 않을 경우에 이전 단계로 돌아가는 방식이다. 그래프 탐색이나 조합 문제에 주로 사용된다.
32. 제품 소프트웨어의 형상 관리 역할로 틀린 것은?
->프로젝트 개발비용을 효율적으로 관리
형상 관리는 주로 소프트웨어의 변경 이력과 버전 관리에 중점을 두기 때문에 비용 관리와는 다소 관련이 부족하다.
형상 관리의 의의: 형상 관리는 소프트웨어 개발 주기에서 버전 관리, 배포 관리, 문서화 등을 포함하여 소프트웨어의 변경을 관리하는 절차이다.
정보 접근 가능성: 형상 관리는 이전 리버전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용하다. 이는 적절한 설명이다.
소스 수정 제한: 불필요한 사용자의 소스 수정을 제한하는 것은 형상 관리의 역할 중 하나로 알맞다.
33. 제품 소프트웨어 패키징 도구 활용 시 고려사항이 아닌 것 은?
-> 내부 콘텐츠에 대한 보안은 고려하지 않는다
34. 디지털 저작권 관리 기술과 거리가 먼 것은?
-> 컨텐츠 오류 감지 및 복구
콘텐츠 오류 감지 및 복구: DRM의 일반적인 기능은 아니지만, 오류 검출과 복구는 다른 비즈니스 시스템에서 활용될 수 있다. 하지만 DRM에서는 직접적인 역할이 아니므로 거리가 있다.
콘텐츠 암호화 및 키 관리: DRM의 핵심 기능으로, 콘텐츠를 암호화하여 무단 사용을 방지하며 키 관리도 포함되므로 정확하다.
콘텐츠 식별체계 표현: DRM 시스템에서 콘텐츠를 식별하고 추적하기 위한 방법이므로 알맞다.
라이센스 발급 및 관리: DRM의 필수 기능으로, 사용자가 콘텐츠를 어떻게 사용할 수 있는지에 대한 권한을 부여하는 기능이다.
35. 물리데이터 저장소의 파티션 설계에서 파티션 유형으로 옳지 않은 것은?
->유닛분할
범위분할(Range Partitioning): 데이터를 특정 범위에 따라 나누는 방식으로, 일반적인 파티션 유형이다.
해시분할(Hash Partitioning): 해시 함수를 사용하여 데이터를 나누는 방식으로, 고르게 분산시키기 위해 일반적으로 사용된다.
조합분할(Composite Partitioning): 두 가지 이상의 파티션 방식을 결합하여 사용하는 방식으로, 복잡한 데이터 분할을 위한 유용한 방법이다.
36. 다음이 설명하는 애플리케이션 통합 테스트 유형은?
-깊이 우선 방식 또는 너비 우선 방식이 있다. -상위 컴포넌트를 테스트하고 점증적으로 하위컴포넌트를 테스트한다. -하위 컴포넌트 개발이 완료되지 않은 경우 스텁을 사용하기도 한다. |
->하향식 통합 테스트
상향식 통합 테스트 (Bottom-up Integration Testing):
하위 컴포넌트를 먼저 테스트하고, 그 후 이들을 결합하여 상위 모듈을 테스트하는 방식이다.
각 하위 모듈이 독립적으로 완벽하게 작동한 이후에 상위 모듈이 결합된다.
➡️ 이 테스트는 하위 모듈의 안정성을 더욱 강조한다.
회귀 테스트 (Regression Testing):
기존 소프트웨어에서 특정 기능이나 모듈이 변경되었을 때, 이로 인해 다른 기능이나 모듈에 문제가 발생하지 않는지 확인하는 테스트이다.
➡️ 소프트웨어 수정 후의 안정성을 보장하는 데 필수적이다.
빅뱅 테스트 (Big Bang Testing):
모든 모듈을 통합한 후에 한 번에 모든 테스트를 수행하는 방식이다.
이 방법은 버그 발생 시 원인을 찾기 어려울 수 있으며, 모든 것이 뜨게 모여 있는 상황에서 문제를 해결해야 하므로 비효율적일 수 있다.
➡️ 테스트가 실패할 경우 문제의 원인을 파악하는 데 많은 시간이 소요된다.
37. 인터페이스 구현시사용하는 기술 중 다음 내용이 설명하는 것은?
JavaScript를 사용한 비동기 통신기술로 클라이언트 서버간에 XML데이터를 주고 받는 기술 |
-> AJAX
Procedure: 프로시저를 사용해 특정 기능을 구현하는 구조로, 일반적인 절차형 언어에서의 함수 호출 방식을 의미한다.
Trigger: 데이터베이스에서 조건에 따라 자동으로 실행되는 프로시저로, 주로 데이터의 무결성을 유지하는 데 사용된다.
Greedy: 문제 해결을 위해 현재 상황에서 가장 최선의 선택을 하는 알고리즘 접근 방식이다.
38. 소프트웨어 재공학이 소프트웨어의 재개발에 비해 갖는 장점으로 거리가 먼 것은?
->개발시간의 증가
39. 알파, 베타 테스트와 가장 밀접한 연관이 있는 테스트 단계는?
->인수 테스트
단위 테스트: 개별적인 모듈이나 컴포넌트의 정확성을 검증하는 테스트로 주로 개발자가 수행한다.
인수 테스트: 최종 사용자의 요구 사항을 충족하는지 확인하기 위해 소프트웨어를 검증하는 단계이다.
통합 테스트: 여러 컴포넌트가 함께 작동하는지를 검토하는 단계로, 모듈 간의 상호작용을 테스트한다.
시스템 테스트: 전체 시스템이 특정 요구 사항을 충족하는지를 평가하는 단계이다.
40. 다음 트리의 차수는?
->3

B-C
D-E-F -G
H-I
3개