*문제 풀고 틀린 부분만 따로 정리함
chap1. 데이터 입출력 구현
2-1) 물리 데이터 저장소
물리 데이터 저장소 모델 변환 절차
- 단위 개체를 테이블로 변환
- 속성을 컬럼으로 변환
- UID를 기본키로 변환
- 관계를 외래키로 변환
- 컬럼 유형과 길이 정의
- 반 정규화 수행
반 정규화 수행 방법
- 테이블 통합
- 테이블 분할: 수평 분할, 수직 분할
- 중복 테이블 추가: 집계 테이블 추가, 진행 테이블 추가, 특정부분만을 포함하는 테이블 추가 * 빌드 테이블 추가는 없음 !!
- 컬럼 중복화
파티션의 종류
- 범위분할, 레인지 파티셔닝: 지정한 열의 값을 기준으로 분할
- 해시분할, 해시 파티셔닝: 해시함수에 따라 데이터를 분할
- 목록분할, 리스트 파티셔닝: 미리 정해진 그룹핑 기준에 따라 데이터를 분할
- 조합분할, 컴포지트 파티셔닝: 범위분할 이후 해시함수를 적용하여 재분할
chap3. 제품 소프트웨어 패키징
1-1) 애플리케이션 패키징
애플리케이션 패키징 프로세스
1. 기능식별
2. 모듈화
3. 빌드 진행
- 신규 개발 소스 및 컴파일 결과물 준비, 정상 기능 단위 및 서비스 분류,
- 빌드 도구 확인 및 정상 수행, 컴파일 이외 도구의 다양한 기능 확인.
4. 사용자 환경 분석
5. 패키징 적용 시험
6. 패키징 변경 개선
1-2) 애플리케이션 배포 도구
애플리케이션 배포 도구 활용시 고려사항
- 암호화/보안
- 이기종 연동: 패키징 도구를 활용하여 여러가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려 * EAI 연동 아니다!!!!
- 복잡성 및 비효율성 문제
- 최적합 암호화 알고리즘 적용
1-3) 애플리케이션 모니터링 도구
DRM 구성 요소
- 콘텐츠 제공자(DRM 콘텐츠, 패키저)
- 클리어링 하우스(콘텐츠 정책, 라이선스, 관리정보, 사용정보)
- 콘텐츠 소비자(DRM 컨트롤러, 보안 컨테이너)
* 제니퍼는 애플리케이션 모니터링 도구중에 성능관리 도구에 있는것!
DRM의 기술요소
- 암호화, 키 관리, 식별기술, 저작권 표현, 암호화 파일 생성, 정책 관리, 크랙 방지, 인증.
* 컨텐츠 오류감지 없음!!!
2-1) 제품 소프트웨어 매뉴얼 작성
제품 소프트웨어 사용자 매뉴얼 작성 프로세스
1. 작성 지침 정의
2. 사용자 매뉴얼 구성요소 정의
: 제품 소프트웨어의 기능, 구성 객체 목록, 객체별 메서드, 메서드의 파라미터, 실제 사용 예제, 사용자 환경 세팅 방법 등의 사용자 매뉴얼 구성요소를 정의 * 배포 및 빌드 환경에 대한 설명은 없음.
3. 구성요소별 내용 작성
4. 사용자 매뉴얼 검토
2-2) 국제 표준 제품 품질 특성
국제 제품 품질 표준
- 9126: 소프트웨어 품질을 측정하고 평가하기 위해서 sw의 품질요소와 특성을 정의
sw 품질 특성
기능성 | - sw가 특정조건에서 사용될 때 명시된 요구와 내재된 요구를 만족하는 기능을 제공 - 품질 부특성: 적합성, 정확성, 상호 운용성, 보안성, 준수성 |
신뢰성 | - 옳고 일관된 결과를 얻기위하여 요구된 기능을 수행할 수 있음. - 주어진 시간동안 주어진 기능을 오류없이 수행하는 정도 |
사용성 | - 사용자에 의해 이해되고, 학습되고, 사용되고, 선호될 수 있는 sw제품의 능력 |
효율성** | - 사용되는 자원의 양에 따라 요구된 성능을 제공하는 sw제품의 능력 - 품질 부특성: 시간 반응성, 자원 효율성, 준수성 |
유지보수성 | - sw제품이 변경되는 능력 |
이식성 | - 한 환경에서 다른 환경으로 전이될 수 있는 sw제품의 능력 |
- 14598: 소프트웨어 제품 평가 프로세스 및 평가 모듈을 제공 * 9126에서 별도로 빠져나온 것.
- 12119: 소프트웨어 패키지 제품에 대한 품질 요구사항 및 테스트 국제 표준
- 25000: 9126+14598+12119 통합본
국제 프로세스 품질 표준
- 9001, 12207, 15504, CMMi
*제품 품질 표준: 9126, 14598, 12119, 25000
*프로세스 품질 표준: 9001, 12207, 15504, CMMi
두가지 구분해서 숫자 외워두기
3-1) 소프트웨어 버전 관리 도구
- CVS: 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행하는 도구
- Git: 속도에 중점을 둔 분산형 방식, 대형 프로젝트에서 효과적. commit, push
3-2) 빌드 자동화 도구
빌드 자동화 도구의 기능
- 코드 컴파일, 컴포넌트 패키징, 파일 조작, 개발 테스트 실행, 버전 관리도구 통합, 문서 생성, 배포 기능, 코드 품질 분석.
* UI 사용성 테스트, 코딩 자동화 기능 없음.
chap4. 애플리케이션 테스트 관리
1-1) 테스트 케이스
테스트 오라클
: 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법
* 테스트 오라클(기법)과 테스트 시나리오(문서) 구분.
- 참 오라클: 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출할 수 있는 오라클
- 샘플링 오라클: 특정한 몇개의 입력값에 대해서만 기대하는 결과 제공
- 휴리스틱 오라클: 특정 입력값에 대해 올바른 결과를 제공, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리
- 일관성 검사 오라클: 애플리케이션 변경이 있을 때, 수행 전과 후의 결괏값이 동일한지 확인
1-2) 테스트 레벨
테스트 레벨 종류
- 단위 테스트
- 통합 테스트: 상향식, 하향식 테스트
- 시스템 테스트
- 인수 테스트
알파 테스트: 선택된 사용자가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트
베타 테스트: 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트
1-3) 테스트 시나리오
테스트 시나리오: 애플리케이션의 테스트되어야할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서
* 테스트 오라클: 테스트의 결과가 참/거짓인지 판단하기위해 사전에 정의된 참값을 입력하여 비교하는 기법
1-4) 테스트 지식 체계
블랙박스 테스트 유형
- 동등분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 테스트, 비교 테스트
* 기초 경로 검사 없음!!
2-1) 결함 관리 도구
결함관리 목록중 심각도: 치명적>주요>보통>경미한>단순 *경미한이 단순보다 먼저!
3-1) 알고리즘
알고리즘 설계 기법
- 분할과 정복
- 동적 계획법: 어떤 문제를 풀기위해 그 문제를 더 작은 문제의 연장선으로 생각하고, 과거에 구한 해를 활용하는 방식
*정적 계획법 아니다!!!!!!!!!!!! not static!!!
- 탐욕법
- 백트래킹: 어떤 노드의 유망성 점검 후, 유망하지 않으면 그 노드의 부모 노드로 되돌아간 후 다른 자손노드를 검색
** 동적계획- 과거 구한 해 활용
** 백트래킹- 부모노드 되돌아가기
두개 헷갈려하지말자!
알고리즘 설명
- 해싱 함수
- 거품 정렬
- 삽입 정렬 : 자신의 위치를 찾아 삽입!!!
- 선택 정렬: 가장 작은 데이터를 찾고 앞의 데이터와 교환!!!
chap5. 인터페이스 구현
2-1) 인터페이스 보안
시큐어 코딩 가이드
- 입력 데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러처리, 코드오류, 캡슐화, API오용 ** Agent 오용 아님
3-1) 설계 산출물
인터페이스 구현 검증 도구
- xUnit
- STAF: 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- FitNesse: 웹기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
- NTAF
- Selenium
- watir: ruby기반 웹 애플리케이션 테스트 프레임 워크
'study > 자격증' 카테고리의 다른 글
[정보처리기사 필기] 1. 소프트웨어 설계 (0) | 2021.02.04 |
---|