소프트웨어 패키징
- 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것
- 개발자가 아니라 사용자를 중심으로 진행
- 사용자의 편의성 및 실행 환경을 우선적으로 고려
패키징 시 고려사항
- 운영체제, CPU, 메모리 등에 필요한 최소 환경을 정의
- 고객의 편의성을 고려한 안정적인 배포가 중요
패키징 작업 순서
1. 기능 식별 : 작성된 코드의 기능 확인
2. 모듈화 : 확인된 기능 단위로 코드들을 분류
3. 빌드 진행 : 모듈 단위별로 실행 파일을 만듬
4. 사용자 환경 분석 : 운영체제, CPU RAM 등의 최소 운영 환경을 정의
5. 패키징 및 적용 시험 : 정의된 환경에 맞게 배포용 파일 형식으로 패키징 및 테스팅
6. 패키징 변경 개선 : 확인된 불편 사항을 반영하기 위한 패키징의 변경 및 개선을 진행
7. 배포 : 배포 수행 시 오류가 발생하면 해당 개발자에게 전달하여 수정을 요청
알고리즘
- 어떤 문제를 해결하는 논리적인 절차를 의미
- 알고리즘의 실행시간은 컴퓨터의 처리 속도, 사용된 프로그래밍 언어의 종류, 컴파일러의 속도에 의해 결정
시간 복잡도
- 알고리즘의 실행시간, 즉 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것을 의미
- 시간 복잡도가 낮을수록 알고리즘의 실행시간이 짧고, 높을수록 실행시간이 길어진다.
- 점근 표기법의 종류
- 빅오 표기법(Big-O Notation) : 알고리즘의 실행시간이 최악일 때를 표기하는 방법
- 세타 표기법(Big-θ Notation) : 알고리즘의 실행시간이 평균일 때를 표기하는 방법
- 오메가 표기법(Big-Ω Notation) : 알고리즘의 실행시간이 최상일 때를 표기하는 방법
빅오 표기법(Big-O Notation)
- O(1) : 입력값(n)에 관계 없이 일정하게 문제 해결에 하나의 단계만을 거침(예 : 스택의 삽입, 삭제)
- O(log₂n) : 문제 해결에 필요한 단계가 입력값(n) 또는 조건에 의해 감소(예 : 이진 트리, 이진 검색)
- O(n) : 문제 해결에 필요한 단계가 입력값(n)과 1:1의 관계를 가짐(예 : for문)
- O(nlog₂n) : 문제 해결에 필요한 단계가 n(log₂n)번만큼 수행(예:힙정렬, 2-way 합병 정렬)
- O(n²) : 문제 해결에 필요한 단계가 입력값(n)의 제곱만큼 수행(예 : 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬)
- O(2^n) : 문제 해결에 필요한 단계가 2의 입력값(n) 제곱만큼 수행(예 : 피보나치 수열)
디지털 저작권 관리(DRM)
- 컴퓨터 프로그램들과 같이 복제하기 쉬운 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법을 통칭해 저작권 보호 기술이라고 함
디지털 저작권 관리의 기술 요소
- DRM의 기술요소
- 암호화
- 키 관리
- 암호화 파일 생성
- 식별 기술
- 저작권 표현
- 정책 관리
- 크랙 방지
- 인증
- 인터페이스
- 이벤트 보고
- 사용 권한
소프트웨어 패키징의 형상 관리
- 형상 관리(SCM: Software Configuration Management)는 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
- 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인
- 소프트웨어 개발의 전 단계에 적용되는 활동, 유지보수 단계에서도 수행
- 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함
형상 관리의 중요성
- 지속적인 소프트웨어의 변경 사항을 체계적으로 추적하고 통제
- 무절제한 변경을 방지
- 버그나 수정 사항을 추적할 수 있음
- 가시성이 결핍되므로 진행 정도를 확인하기 위한 기준으로 사용될 수 있음
형상 관리 기능
- 형상 식별 : 형상 관리 대상에 이름과 관리 번호를 부여하고 계층 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업
- 버전 제어 : 소프트웨어 업그레이드나 유지 보수 과성에서 생성된 다른 버전의 형상 항목을 관리하고 이를 특정 절차와 도구를 결합시키는 작업
- 형상 통제(변경 관리) : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정하는 작업
- 형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
- 형상 기록(상태 보고) : 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리하고 보고서를 작성하는 작업
소프트웨어 버전 등록 과정
- 가져오기(Import) -> 인출(Check-Out) -> 예치(Commit) -> 동기화(Update) -> 차이(Diff)
소프트웨어 버전 관리(공유 폴더 방식)
- 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
- 담당자는 공유 폴더의 파일을 자기 pc로 복사한 후 컴파일 하여 이상 유무를 확인
- 이상 유무 확인 과정에서 파일의 오류가 확인되면, 해당 파일을 등록한 개발자에게 수정 요청
- 파일을 잘못 복사하거나 다른 위치로 복사하는 것에 대비하기 위해 파일의 변경 사항을 데이터베이스에 기록하여 관리
- 종류 : SCCS, RCS, PVCS, QVCS 등
소프트웨어 버전 관리(클라이언트/서버 방식)
- 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식
- 서버의 자료를 개발자별로 자신의 pc로 복사하여 작업한 후 변경된 내용을 서버에 반영
- 모든 버전 관리는 서버에서 수행
- 서버에 문제가 생기면 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업이 중단
- 종류 : CVS, SVN, CVSNT , Clear Case, CMVC, Perforce
소프트웨어 버전 관리(분산 저장소 방식)
- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 pc의 로컬 저장소에 함께 저장되어 관리되는 방식
- 개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경 된 내용을 로컬 저장소에서 우선 반영한 다음 이를 원격 저장소에 반영
- 로컬 저장소에서 버전 관리가 가능하므로 원격 거장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업할 수 있음
- 종류 : GIT , GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM
'1. 자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 2과목 소프트웨어 개발 - 5 (0) | 2020.08.04 |
---|---|
[정보처리기사 필기] 2과목 소프트웨어 개발 - 4 (0) | 2020.08.04 |
[정보처리기사 필기] 2과목 소프트웨어 개발 - 2 (0) | 2020.08.01 |
[정보처리기사 필기] 2과목 소프트웨어 개발 - 1 (0) | 2020.07.31 |
[정보처리기사 필기] 1과목 소프트웨어 설계 - 4 (0) | 2020.07.31 |