- 1 - 데이터 입출력 구현
데이터와 입출력, 자료구조와 관련된 내용은 다른 좋은 예제가 많이 있기 때문에 다루지 않겠습니다.
1. 데이터저장소 / 데이터베이스 / DBMS <중요>
1) 데이터 저장소
소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화 하거나, 물리적인 공간에 구축한 것
구분 : 논리 데이터저장소, 물리 데이터 저장소
논리 데이터 저장소 : 데이터 및 데이터 간의 연관성, 제약조건 식별 -> 논리적 구조로 조직화
물리 데이터 저장소 : 소프트웨어가 운용될 환경의 물리적 특성을 고려해 하드웨어적 저장장치에 저장한 것
2) 데이터베이스
특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 모임
통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터 모임
저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는데 존재 가치가 확실하고 없어서는 안될 필요한 장치
공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료
* 데이터베이스는 여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제해 통합하고, 쉽게 접근해 처리할 수 있도록 저장장치에 저장해서 항상 사용할 수 있도록 운영하는 운영 데이터입니다.
3) DBMS
데이터베이스 관리 시스템이란, 데이터베이스 사이에서 사용자 요구에 따라 정보를 생성하고 데이터베이스를 관리해주는 소프트웨어다.
정의 기능 : 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용방식, 제약조건을 명시
조작 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공
제어 기능 : 데이터의 무결성 유지, 보안을 유지하고 권한을 검사, 처리 결과가 항상 정확성을 유지하도록 병행 제어(Concurrency Control)
* 병행제어 : 동시에 여러 개의 트랜잭션을 병행 수행할 때, 트랜잭션들이 DB의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것. 계속 공부하시다보면 어떤 의민지 아실거에요!
4) DBMS의 장단점
장점 | 단점 |
데이터의 논리적 물리적 독립성이 보장 데이터의 중복을 피할 수 있어 기억 공간 절약 저장된 자료를 공유 데이터 일관성 유지 데이터 무결성 유지 보안 유지 데이터 표준화 데이터 통합 관리 최신 데이터 유지 데이터의 실시간 처리 |
데이터베이스 전문가 부족 전산화 비용 증가 대용량 디스크로의 집중적인 Access로 과부하가 발생 파일의 Backup과 회복이 어렵다. 시스템이 복잡하다. |
데이터의 독립성 : DBMS의 궁극적 목표
논리적 독립성 : 데이터의 논리적 구조를 변경시켜도 응용 프로그램은 변경되지 않음
물리적 독립성 : 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입해도 응용 프로그램에 영향을 주지 않고 물리적 구조만 변경함
- 2 - 통합 구현
1. 단위 모듈 테스트
1) 단위 모듈 테스트의 개요
프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 하는지 검증하는 것
- 단위 테스트라고하며, 화이트박스 테스트와 블랙박스 테스트를 사용한다.
- 테스트를 수행하기 위해서는 모듈을 단독적으로 실행할 수 있는 환경과 테스트에 필요한 데이터가 모두 준비되어야 한다.
- 모듈의 통합 이후에는 오랜시간 추적해야 발견할 수 있는 에러들도 단위 모듈 테스트를 수행하면 쉽게 발견하고 수정할 수 있다.
- 시스템 수준의 오류는 잡아낼 수 없다.
2) 테스트 케이스
구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목에 대한 명세서로, 명세 기반 테스트의 설계 산출물에 해당된다.
- ISO/IEC/IEEE 29119-3 표준을 따른다.
- 입력데이터, 테스트조건, 예상 결과등을 모아 테스트 케이스를 제작한다.
- 테스트 케이스를 이용하지 않으면 불필요한 검증의 반복으로 인력과 시간을 낭비할 수 있다.
3) 테스트 프로세스
테스트를 위해 수행하는 모든 작업들이 목적과 조건을 달성할 수 있도록 도와주는 과정이다.
- 계획 및 제어 단계 : 목표를 달성하기 위한 계획을 수립, 진행되도록 제어
- 분석 및 설계 단계 : 목표를 구체화해 테스트 시나리오와 테스트 케이스를 작성하는 단계
- 구현 및 실현 단계 : 효율적인 테스트 수행을 위해 테스트 케이스를 조합해 테스트 프로시저에 명세하는 단계 + 모듈의 환경에 적합한 단위 테스트 도구를 이용하여 테스트를 수행하는 단계
- 평가 단계 : 계획과 목표에 맞게 수행되었는지 평가하고 기록하는 단계
- 완료 단계 : 참고 자료 및 테스트 수행에 대한 증거 자료로 활용하기 위해 수행 과정과 산출물을 기록 및 저장하는 단계
- 3 - 제품 소프트웨어 패키징
2. 소프트웨어 패키징
1) 소프트웨어 패키징의 개요
모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것이다.
사용자 중심으로 진행한다.
소스코드는 향후 관리를 고려해 모듈화하여 패키징한다.
사용자의 실행 환경을 이해하여 다양한 환경에서 이용할 수 있도록 일반적인 배포 형태로 패키징한다.
사용자 중심으로 진행되는 작업으로 사용자의 편의성 및 실행 환경을 우선적으로 고려한다.
* 안드로이드 마켓을 생각하시면 편해요! 안드로이드 어플을 출시하기 위해 어플을 설치할 수 있는 배포 파일을 만드는 과정입니다!
2) 패키징 시 고려사항
사용자의 시스템 환경인 운영체제, CPU, 메모리 등에 필요한 최소 환경을 정의한다.
UI는 사용자가 직관적으로 시각적인 자료와 함께 제공하고 메뉴얼과 일치시켜 패키징 한다.
하드웨어와 함께 관리될 수 있도록 Managed Service(24시간 모니터링) 형태로 제공하는 것이 좋다
고객의 편의성을 고려한 안정적인 배포가 중요하다.
다양한 사용자의 요구사항을 반영할 수 있도록 패키징의 변경 및 개선에 대한 관리를 항상 고려한다.
3) 패키징 작업 순서
기능 식별 -> 모듈화 -> 빌드 진행 -> 사용자 환경분석 -> 패키징 및 적용 시험 -> 패키징 변경 개선 -> 배포
3. 릴리즈 노트 작성
1) 릴리즈 노트의 개요
개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서
- 테스트 진행 방법에 대한 결과와 소프트웨어 사양에 대한 개발팀의 정확한 준수여부를 확인할 수 있다.
- 전체 기능, 서비스의 내용, 개선 사항등을 사용자와 공유할 수 있다.
- 소프트웨어의 버전 관리나 릴리즈 정보를 체계적으로 관리 할 수 있다.
- 소프트웨어의 초기 배포시 또는 출시 후 개선 사항을 적용한 추가 배포시에 제공한다.
- 소프트웨어 초기 배포시 제공되는 릴리즈 노트에는 소프트웨어에 포함된 기능이나 사용 환경에 대한 내용을 확인할 수 있다.
- 출시 후 개선된 내용이 있을 때마다 릴리즈 노트를 갱신한다.
- 릴리즈 노트에 정리된 정보들은 철저한 테스트를 거친 것이며, 개발팀에서 제공하는 소프트웨어 사양에 대한 최종 승인을 얻은후 문서화되어 제공된다.
2) 릴리즈 노트 추가 버전 작성 시 고려 사항
소프트웨어의 테스트 과정에서 베타 버전이 출시되거나 긴급한 버그 수정, 업그레이드와 같은 자체 기능 향상, 사용자 요청 등의 특수한 상황이 발생하는 경우 릴리즈 노트를 추가로 작성한다.
- 중대한 오류가 발생해 긴급하게 수정하는 경우에는 릴리즈 버전을 출시하고, 버그를 포함한 모든 수정 내용을 담는다.
- 소프트웨어 기능 업그레이드가 된 경우에는 릴리즈 버전을 출시하고 릴리즈 노트를 작성한다.
- 사용자로부터 접수된 요구사항에 의해 추가나 수정된 경우에는 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시하고 릴리즈 노트를 작성한다.
3) 릴리즈 노트 작성 순서
모듈 식별 -> 릴리즈 정보 확인 -> 릴리즈 노트 개요 작성 -> 영향도 체크 -> 정식 릴리즈 노트 작성 -> 추가 개선 항목 식별
4. 디지털 저작권 관리(DRM) <중요>
1) 저작권의 개요
저작물 등에 대하여 창작자가 가지는 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한이다.
2) 디지털 저작권 관리(DRM)의 개요
저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다.
- 원본 콘텐츠가 아날로그인 경우에는 디지털로 변환한 후 패키저(Packager)에 의해 DRM 패키징(아날로그->디지털)을 수행한다.
- 콘텐츠의 크기에 따라 크기가 작으면 실시간으로 패키징을 수행하고, 크기가 큰 경우에는 미리 패키징을 수행한 후 배포한다.
- 패키징을 수행하면 콘텐츠에는 암호화된 저작권자의 전자서명이 포함되고 저작권자가 설정한 라이선스 정보가 클리어링 하우스(라이선스의 중개발급 하는 곳)에 등록된다.
- 사용자가 콘텐츠를 사용하기 위해서는 클리어링 하우스에 등록된 라이선스 정보를 통해 사용자 인증과 콘텐츠 사용 권한 소유 여부를 확인받아야 한다.
- 종량제 방식을 적용한 소프트웨어인 경우 클리어링 하우스를 통해 서비스의 실제 사용량을 측정하여 이용한 만큼의 요구를 부과한다.
3) 디지털 저작권 관리의 용어
콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
패키저 : 콘텐츠를 메타 데이터(데이터에 대한 속성정보)와 함께 배포 가능한 형태로 묶어 암호화 하는 프로그램
콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳이나 사람
콘텐츠 소비자 : 콘텐츠를 구매해서 사용하는 주체
DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
보안 컨테이너 : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
4) 디지털 저작권 관리의 기술 요소
암호화 : 콘텐츠 및 라이선스를 암호화하고 전자서명할 수 있는 기술
키관리 : 암호화한 키에 대한 저장 및 분배 기술
암호화 파일 생성 : 암호화된 콘텐츠로 생성
식별 기술 : 콘텐츠에 대한 식별 체계 표현 기술
저작권 표현 : 라이선스의 내용 표현 기술
정책 관리 : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
크랙 방지 : 크랙에 의한 콘텐츠 사용 방지 기술
인증 : 라이선스 발급 및 사용자 기준이 되는 기술
'2020 정보처리기사 필기 > 2과목 - 소프트웨어 개발' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 2과목 - 소프트웨어 개발(인터페이스 구현_1) (0) | 2020.07.23 |
---|---|
[2020 정보처리기사 필기 요약] 2과목 - 소프트웨어 개발(애플리케이션 테스트 관리_3) (0) | 2020.07.22 |
[2020 정보처리기사 필기 요약] 2과목 - 소프트웨어 개발(애플리케이션 테스트 관리_2) (0) | 2020.07.21 |
[2020 정보처리기사 필기 요약] 2과목 - 소프트웨어 개발(애플리케이션 테스트 관리_1) (0) | 2020.07.20 |
[2020 정보처리기사 필기 요약] 2과목 - 소프트웨어 개발(제품 소프트웨어 패키징) (0) | 2020.05.30 |