정보처리기사 필기 ) 2과목 소프트웨어 개발 정리
본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 필기 ) 2과목 소프트웨어 개발 정리

by 코딩하는 핑가 2020. 8. 13.
반응형

* 키워드 : 파티셔닝 유형, 테스트 커버리지, 형상관리, DRM, 소프트웨어 메뉴얼, 애플리케이션 테스트 관리, 테스트케이스/시나리오/오라클/하네스, AJAX/JSON

1. 파티셔닝 ( 레해리컴 )

- 유형 : 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝, 컴포지트 파티셔닝

- 해시 파티셔닝

: 해시 함수에 따라 데이터를 분할,

- 컴포지트 파티셔닝

: 범위 분할 이후 해시 함수를 적용하여 재분할하는 파티셔닝

 

2. 테스트 커버리지

- 유형 : 구문, 결정, 조건, 조건-결정, 변경조건-결정, 다중 조건

- 결정 커버리지

: 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

- 조건 커버리지

: 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

- 조건-결정 커버리지

: 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

3. 형상관리 ( SCM; Sortware Configuration Management )

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

- 형상관리 도구의 기능 : 체크인, 체크아웃, 커밋

- 체크인

: 개발자가 수정한 소스를 형상관리 저장소로 업로드하는 기능

- 커밋

: 개발자가 소스를 형상관리 저장소에 업로드 후 최종적으로 업데이트가 되었을 때 형상관리 서버에 반영하도록 하는 기능

 

* 소프트웨어 버전 관리 도구

- 공유 폴더 방식

- 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식

- 파일의 변경 사항을 데이터베이스에 기록하여 관리

- 종류 : SCCS, RCS, PVCS, QVCS 등

 

- 클라이언트/서버 방식

- 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식

- 모든 버전 관리는 서버에서 수행

- 서버에 문제가 생기면, 서버가 복구되기 전가지 다른 개발자와의 협업 및 버전 관리 작업은 중단

- 종류 : CVS, SVN(Subversion), CVSNT, Clear Case, CMVC, Perforce 등

* Subversion(서브버전, SVN)

- CVS를 개선한 것, 아파치 소프트웨어 재단에서 발표

- 모든 개발 작업은 trunk 디렉터리에서 수행

- commit 할 때마다 revision이 1씩 증가 ( 커밋 실패 시 롤백 지원 가능 )

- 클라이언트는 대부분의 운영체제에서 사용되지만, 서버는 주로 유닉스를 사용

- 디렉토리 파일을 자유롭게 이동 가능

- add, commit, update, checkout, lock/unlock, import, export, info, diff, merge

- 분산 저장소 방식

- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식

- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업 가능

- 종류 : Git, GNU arch, DCVS, Bazaar 등

* Git(깃)

- 지역 저장소는 개발자들이 실제 개발을 진행하는 장소, 버전 관리가 수행

- 원격 저장소는 여러 사람들이 협업을 위해 버전을 공동으로 관리하는 곳

- branch를 이용하면 기본 버전 관리 틀에 영향을 주지 않으면서 다양한 형태의 기능 테스팅이 가능

- 파일의 변화를 스냅샷으로 저장

- SVN 저장소에 대한 이관 기능

- add, commit, branch, checkout, merge, init, remote add, push, fetch, clone, fork

- branch, check-out, commit 등 로컬 환경에서의 형상관리 기능

- push, fetch, pull 등 원격 환경에서의 변경 전송 기능

4. 디지털 저작권 관리 ( DRM; Digital Rights Management )

- 디지털 콘텐츠를 관리 및 보호하는 기술

- 원본 콘텐츠가 디지털이 아닌 아날로그일 경우 디지털로 변환 후 패키지에 의해 DRM 패키징 수행

- 구성요소 : 패키저, DRM 콘텐츠, 클리어링 하우스

- 크기가 작은 경우 실시간 패키징

- 패키징 수행 시 암호화된 전자 서명 포함

- 라이선스 정보가 Clearing House에 등록

- DRM 컨테이너

: 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안 장치

- DRM 컨트롤러

: 배포된 디지털 콘텐츠의 이용 권한을 통제

5. 제품 소프트웨어 메뉴얼

- 설치 메뉴얼 프로세스 ( 개유설삭이최 )

: 개요 및 기능 식별 > UI 분류 > 설치파일 > 백업 파일 확인 > 삭제 절차 확인 > 이상 유형 확인 > 최종 메뉴얼 적용

- 사용자 메뉴얼 프로세스

: 작성 지침 정의 > 사용자 메뉴얼 구성요소 정의 > 구성 요소 별 내용 작성 > 사용자 메뉴얼 검토

6. 애플리케이션 테스트 관리

* 시각에 따른 테스트

- 검증(Verification) 테스트 : 개발자의 시각에서 명세서대로 완성됐는지 테스트

- 확인(Validation) 테스트 : 사용자의 시각에서 요구한대로 제품이 완성됐는지 테스트

* 테스트 목적에 따른 분류

- 강도 테스트

: 소프트웨어에 과도한 정보량을 입력하여 과부하 상태에도 소프트웨어가 정상적으로 실행되는지를 확인

- 병행 테스트

: 변경 소프트웨어와 기존 소프트웨어가 동일 데이터를 입력한 결과를 비교

- 안전 테스트

: 시스템 내 설치된 보호 도구가 비인가 된 침입으로부터 시스템을 보호할 수 있는지 확인

- 회귀 테스트

: 소프트웨어 변경 또는 수정된 코드에 새로운 결함이 없음을 확인

7. 테스트 케이스, 테스트 시나리오, 테스트 오라클, 테스트 하네스

* 테스트 케이스

- 테스트를 위한 설계 산출물

- SW가 사용자의 요구사항을 얼마나 준수했는지 확인하기 위해 입력값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서

* 테스트 시나리오

- 테스트 수행을 위한 여러 개의 테스트 케이스 집합

* 테스트 오라클

- 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입해 비교하는 기법 및 활동

- 종류 : 참, 샘플링, 추정, 일관성 검사 오라클

* 테스트 하네스

- 테스트 케이스 예상 결과로 테스트 결과가 올바른지 판단하기 위한 근거

- 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분

- 테스트를 지원하기 위한 코드와 데이트를 의미

* 살충제 패러독스의 원리

- 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다는 테스트의 원리

* 애플리케이션의 성능 측정 지표 ( 처응경자 )

- 처리량(Throughput) : 일정 시간 내 애플리케이션이 처리하는 작업의 양

- 응답시간(Response Time) : 애플리케이션에 작업을 요청해서 응답 도착까지 걸린 시간

- 경과시간(Tun Around Time) : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

- 자원사용률 : 애플리케이션이 작업을 처리할 동안의 CPU, MEM, DISK 등의 사용랑

8. AJAX, JSON

- AJAX ( Asynchronous Javascript And XML )

  : 자바스크립트를 사용한 비동기 통신기술클라이언트와 서버간에 XML 데이터를 주고받는 기술

- JSON ( JavaScript Object Notation )

  : 비동기 브라우저/서버통신(AJAX)을 위해 "속성-값" 쌍, "키-값" 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

* 릴리즈 노트 작성 프로세스

: 모듈 식별 > 패키지 정보 확인 > 패키지 노트 개요 작성 > 영향도 체크 > 정식 패키지 노트 작성 > 추가 개선 항목 식별

* 애플리케이션 패키징 프로세스 ( 기모빌 환패변 )

: 기능 식별 > 모듈화 > 빌드 진행 > 사용자 환경 분석 > 패키징 적용 시험 > 패키징 변경 개선

* 크랙 방지 기술 : 난독화, SecureDB

* 저작권 표현 기술 : XrML, MPEG-21

* 국제 제품 품질 표준 : 9126, 14598, 12119, 25000

- ISO/IEC 9126 품질 특성 : 기신사효유이

- ISO/IEC 14598 품질 특성 : 반재공객 ( 반복성, 재현성, 공정성, 객관성 )

- ISO/IEC 25000

  : SQuaRE로 불리며 국제 제품 품질 표준을 통합하고,

    ISO/IEC 15288을 참고한 소프트웨어 제품 품질에 대한 통합적인 국제 표준

 

* 국제 프로세스 품질 표준 : 9001, 12007, 15504, CMMi

- CMMI

  : ISO15504(SPICE)를 준수하는 소프트웨어 개발 능력/성숙도 평가 및 프로세스 개선 활동의 지속적인 품질 개선 모델

    적용 및 평가 방식은 단계별 표현과 연속적 표현이 존재

 

9. 인터페이서 기능 구현 정의

- 일관성있는 인터페이스 기능 구현을 위해 송수신 단에서 진행하는 절차까지 세부적으로 재정의한다.

- 정의된 인터페이스 기능 구현은 표준화되고 알기 쉽게 정형화한다.

- 인터페이스 기능, 인터페이스 데이터 표준, 설계서를 기반으로 기능 구현을 정의한다.

- 인터페이스 명세서를 통해 컴포넌트 명세서에서 명시된 인터페이스 세부 기능을 확인한다.

 

* 협업 도구

- 다른 개발자와 유대감을 형성하거나 유지하기 위해서 지속적으로 커뮤니케이션을 수행하기 위한 도구

- 통합 구현 관리를 위해 개발자간 상호 소통을 위한 협업도구가 필요

- 프로젝트 관리를 위한 협업도구로 트렐로, 레드마인, 지라등을 활용

- 팀원 간 아이디어 공유를 위한 협업도구로 소스 공유를 위한 협업도구는 깃허브이다.

 

* 인터페이스 오류 발생 처리 방법

- 인터페이스 감시 도구를 활용 시 인터페이스의 전체 상황을 모두 확인 가능

- 오류이력이 누적되면 발생하는 오류원인 분석이 가능하여 오류의 재발방지가 가능

- 시스템 로그 및 인터페이스 오류 테이블을 관리자가 확인해 오류 발생 여부를 확인 가능

 

* 이 게시물은 수제비 카페 - 페코페코 예상문제 OX 게시글을 참고로 작성되었습니다.

https://cafe.naver.com/soojebi

 

* 과목별 정리

2020/08/13 - [정보처리기사/1과목 소프트웨어 설계] - 정보처리기사 필기 ) 1과목 소프트웨어 설계 정리

2020/08/13 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 필기 ) 2과목 소프트웨어 개발 정리

2020/08/14 - [정보처리기사/4과목 프로그래밍언어 활용] - 정보처리기사 필기 ) 4과목 프로그래밍 언어 활용 정리

2020/08/14 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 필기 ) 5과목 정보시스템 구축 관리 정리 1

2020/08/14 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 필기 ) 5과목 정보시스템 구축 관리 정리 2

2020/08/17 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 필기) 수제비 모의고사 정리 - 2과목 소프트웨어개발

2020/08/18 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 필기) 시나공 모의고사 정리 - 2과목 소프트웨어 개발

 

반응형

댓글