[정보처리기사] 소프트웨어 개발

2024. 2. 24. 14:00자격증

반응형

 

 

 

 

Jenkins

- JAVA 기반의 오픈소스 형태

- 서블릿 컨테이너에서 실행되는 서버 기반 도구

- 친숙한 Web GUI 제공

- 분산 빌드나 테스트 가능

 

Gradle

- Groovy를 기반으로 한 오픈 소스 형태

- 안드로이드 앱 개발 환경에서 사용

- 행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행

 

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

 

1.연산자에 따라 묶는다

(-(/(*A(+BC))D)E)

2.연산자를 각 괄호 뒤로 뺀다(후위식)

(((A(BC)+)*D)/E)-

3.괄호를 제거한다.

ABC+*D/E-

 

ISO/IES25000 = SPICE

- 소프트웨어 품질 평가를 위한 품질평가 통합모델 표준

- System and Software Quality Requirements and Evaluation으로 줄여서 SQuaRE

- 기존 소프트웨어 품질 평가 모델과 소프트웨어 평가 절차 모델인 ISO/IEC 9126ISO/IEC 14598을 통합

 

ISO/IEC 12119: 제품 테스트

 

클린코드(clean code) (단가의중추)

- 가독성: 이해하기 쉽게

- 단위성: 한번에 하나만 처리, 클래스/메소드/함수 최소단위로 분리

- 의존성: 다른 모듈에 미치는 영향 최소화

- 중복성: 중복된 코드 최소화

- 추상화: 클래스/메소드/함수에 대해 동일한 수준의 추상화 구현

 

<체크인>

체크아웃한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신

 

<선형/비선형> : 하나씩 순서대로 나열되었냐 안되었냐

선형: 리스트, 스택, , 데크

비선형 : 트리, 그래프

 

NS(Nassi-Schneiderman) Chart

- 논리 기술에 중점을 둔 도형을 이용한 표현 방법(Box Diagram, Chapin Chart) 

- 순차, 반복, 선택, 다중 선택 구조등 표현 

- GOTO나 화살표 사용하지 않음, 선택과 반복 구조를 시각화 

- 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별 

 

Alien Code (외계인) : 개발자가 퇴사를 했거나 현재 사용하지 않는 환경및 언어로 작성되었거나 프로그램의 관련 문서나 주석이 없는 상태

 

<FTR>:Formal Technical Review, 소프트웨어 개발 산출물 대상 요구사항 확인 및 검증을 수행하는 방법.

FTR 지침 사항

제품 검토에만 집중하라

의제를 제한하여 진행하라

논쟁과 반박을 제한하라

문제영역을 정확히 표현하라

해결책이나 개선책에 대해서는 논하지 말라

참가자수를 제한하고 사전준비를 강요하라

자원과 시간 일정을 할당하라

모든 검토자들을 위해 의미있는 훈련을 시행하라

검토자들은 사전에 작성한 메모들을 공유하라

검토의 과정과 결과를 재검토하라

 

상향식 통합 테스트 (Bottom Up Intergration Test)

- 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합

- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)필요

- 중간에 기능추가 어려움

 

하향식 통합 테스트 (Top Down Intergration Test)

- 상위 모듈에서 하위 모듈 방향으로 통합

- 깊이 우선 통합법, 넓이 우선 통합법 사용

- 초기부터 사용자에게 시스템 구조를 보여줌

 

정점이 n개인 무방향 그래프에서 최대의 간선수는 n(n-1)/2

정점이 n개인 그래프에서 최대 간선수는 n(n-1)

 

이진 검색

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]

 

15를 찾을 때 비교횟수는? 8<14, 12<14, 14 3

 

워크스루: 요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견

 

인스펙션: 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견.

계획 사전교육 준비 인스펙션 회의 수정 후속조치

 

<dmr관리>

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

프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 모두 관리 대상이다.

유지 보수 단계뿐만 아니라 개발 단계에도 적용할 수 있다.

 

<DRM(디지털 저작권 관리)> 클리어한 dmr을 분패./ 오류 복구는 안해줌

- 콘텐츠 분배자: 암호화된 콘텐츠를 유통하는곳/사람

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

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

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

 

<디지털 저작권 관리의 기술요소>키 저작권 암호식별 정책인증 크랙

암호화/키관리/암호화 파일생성/식별기술/저작권 표현/정책관리/크랙방지/인증

 

복호화 - 디코딩, 즉 부호화된 데이터를 부호화 되기 전 형태로 바꾸어, 사람이 읽을 수 있는 형태로 되돌려 놓는 것

 

테스트 오라클(Test Oracle) - 테스트 케이스 실행이 통과되었는지 실패하였는지 판단하기 위한 기준

 

RCS(Revision Control System) : 수정사항 컨트롤 시스템

RTS(Reliable Transfer Service) : 신뢰할 수 있는 전송 서비스

RPC(Remote Procedure Call) : 원격 진행 호출

RVS(Relative Version System) : 상대 버전 시스템

 

블랙박스 테스트 : 프로그램 구조를 고려하지 않는 것

1) 동치분할검사

2) 경계값 분석

3) 원인-효과 그래프 검사

4) 오류 예측 검사

5) 비교 검사

 

화이트박스 테스트 : 기초 경로 검사 (Base Path Testing)/조건 검사 (Condition Testing)/루프 검사 (Loop Testing)/데이터 흐름 검사 (Data Flow Testing)

- 논리흐름도(Logic-Flow Diagram)이용할 수 있다.

- 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당

- 테스트 데이터를 선택하기 위하여 검증기준(Test Coverage)을 정한다

루프검사

 

깊이 우선탐색 넓이 우선탐색

https://yunyoung1819.tistory.com/86

 

선형 검색 : 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 검색, 정렬x

이진검색 : 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다, 탐색 효율이 좋고 탐색 시간이 적게 소요된다. 최악의 경우 검색효율 가장 안좋음

 

퀵정렬 : 키 기준 값으로 작은값 왼쪽에 큰값 오른쪽에. 최악의 경우회의 비교 수행시 정렬

<삽입 정렬> [8, 5, 6, 2, 4] :하나하나 차례차례

pass 1 [5, 8, 6, 2, 4]

pass 2 [5, 6, 8, 2, 4]

pass 3 [2, 5, 6, 8, 4]

pass 4 [2, 4, 5, 6, 8]

 

<버블정렬> [8, 5, 6, 2, 4] : 왼쪽부터 바로 오른쪽 수와 문제 발생 큰거부터

pass 1 [5, 6, 2, 4, 8]

pass 2 [5, 2, 4, 6, 8]

pass 3 [2, 4, 5, 6, 8]

pass 4 [2, 4, 5, 6, 8]

 

<선택 정렬> [8, 5, 6, 2, 4] : 작은거부터 자리바꾸기

pass 1 [2, 5, 6, 8, 4]

pass 2 [2, 4, 6, 8, 5]

pass 3 [2, 4, 5, 8, 6]

pass 4 [2, 4, 5, 6, 8]

 

<힙정렬>

최적,평균,최악 모두 O(nlogn)같다.

O(N*log2N) : 퀵정렬,병합정렬

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

 

1. Refactoring - 코드의 구조 재조정, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부구조를 변경

2. Architecting - 설계관련

3. Specification - 명세서

4. Renewal 유지보수/ 완전히 갈아엎는 것

 

단위 테스트(Unit Test) : "모듈"이나 "함수" 등의 개별적인 부분을  격리시켜 테스트, 구조적 테스트 주로 함

 

- 테스트 드라이버(test driver) : 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할, 상향식 테스트 수행시 사용

- 테스트 스텁(test stub) : 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할, 하향식 테스트 수행시 사용

 

테스트 케이스 생성 도구 : 자료흐름도,기능 테스트(모든 기능),입력 도메인 분석, 랜덤 테스트

 

<Compile>

주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 기능, 고급언어(사람이 인식하는 언어)에서 저급언어(기계언어)로 변환하는 기능

<Deployment>

소프트웨어를 최종 사용자에게 전달하기 위한 기능

 

전위 순회 : 루좌우 (Preorder)

중위 순회 : 좌루우 (Inorder)

후위 순회 : 좌우루 (Postorder)

https://simuing.tistory.com/entry/2021-%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%ED%95%84%EA%B8%B0%EC%9A%94%EC%95%BD-%ED%8A%B8%EB%A6%AC-%EC%88%9C%ED%9A%8C%EB%B0%A9%EB%B2%95-%EC%B0%A8%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0

->문제 풀어보기

 

1. JSON(JavaScript Object Notation) : 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다.

2. HTML (Hyper Text Markup Language) : 웹 페이지 만들 때 사용되는 언어

3. AVPN (Applicaiotn Virtual Private Network) : 애플리케이션 간 통신을 안전하게 전송하기 위해 사용되는 가상 네트워크

4. DOF (Depth of Field) : 초점 맞는 영역 앞뒤로 일정 거리 범위 내의 영역

5. XML : 송수신 시스템 간 전송되는 데이터 구조를 동일한 형태로 정의

 

- Stack : LIFO 한쪽에서만 일어남

Queue : FIFO 양방향

 

 

CppUnit - C++ 프로그래밍 언어용 단위 테스트 도구

JUnit - 자바 프로그래밍 언어용 단위 테스트 도구

HttpUnit - 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용

 

<인터페이스 구현 검증 도구> : xUnit, STAF(서비스 호출 및 컴포넌트 재사용 등 환경 지원하는 테스트 프레임워크), Fitnesse, NTAF, Selenium, watir

 

SMTP(Simple Mail Transfer Protocol): 전자 우편을 교환하는 서비스를 제공하는 프로토콜

 

< 파티션 유형 >범해조

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

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

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

 

 

정답 :3(B가 3개로 나뉨)

 

 

 

반응형