ggomgom22
2022. 6. 15. 15:01
1. 제품 소프트웨어 패키징
개념 |
- 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 묶어내는 것
- 설치/사용에 필요한 절차 및 환경 등 전반적 내용 포함하는 매뉴얼 작성
- 제품 s/w 패치 개발/갱신 위해 버전 관리 수행하는 능력
- 고객 편의성 및 사용자 실행 환경 우선적 고려
|
특성 |
- 개발자 아닌 사용자 중심
- 신규/변경 s/w 소스 개발 소스 식별
- 식별 소스 모듈화하여 상용 제품으로 패키징
- 고객 편의성 위해 신규/변경 s/w 작업 이력 확인
- 버전 관리 및 릴리즈 노트 통해 지속적 관리
- 사용자 실행 환경을 이해하고 범용 환경 사용 가능토록 일반적 배포 형태로 분류하여 패키징
|
소프트웨어 모듈 및 패키징
소프트웨어 모듈화 |
- s/w 설계에서 기능 단위로 분해하고 추상화되어 재사용 및 공유 가능한 수준으로 만들어진 단위를 모듈로 규정
- s/w 성능 향상시키거나 시스템 디버깅, 테스트, 통합 및 수정을 용이하도록 하는 설계 기법이 모듈화
|
제품 소프트웨어 모듈 및 패키징 |
- 모듈 개념 정확히 적용
- 기능 단위로 패키징해야 배포 시 성능 향상
|
제품 소프트웨어 모듈 빌드 기법
소프트웨어 빌드(build) |
- 소스 코드 파일을 컴퓨터에서 실행할 수 있는 제품 s/w 단위로 변환하는 과정/결과물
- 컴파일 과정(소스코드 파일->실행 코드)이 핵심
- 빌드에 따른 결과물 상세 확인 필요
|
제품 소프트웨어 위한 빌드 기법 |
- 빌드의 실행 단위 컴파일, 빌드 도구 특징 및 사례들의 사전 확인 필요
- 빌드 도구는 유용한 유틸리티
- 빌드 과정 문서화 시 이력 관리 가능
- 대표적 도구: Ant, Make, Maven, Gradle
|
2. 사용자 중심의 패키징
사용자 실행 환경 개념 |
- 고객 편의성위해 사용자 실행 환경 우선 고려하여 패키징 진행
|
사용자 관점에서의 패키징 고려사항 |
- 운영 체제, 중앙 처리 장치, 메모리 등 수행에 필요한 최소 환경
- 사용자 이해 가능한 인터페이스 제공
- 매뉴얼과 일치시켜 패키징 작업 수행
- 제품 s/w는 h/w와 함께 통합 적용
- 패키징은 Managed service 형태로 제공
- 제품 s/w는 고객 편의성 위해 안정적 배포가 가장 중요
- 다양한 사용자 그룹 요구사항 반영 위해 패키징 변경 및 개선 관리 고려하여 배포
|
사용자 중심의 패키징 작업 수행 순서
기능 식별 |
- 기능 수행 위한 입출력 데이터(int, char, float…)
- 전체적 기능 정의 및 데이터 흐름
- 함수 단위 및 출력에 대한 상세 정의
|
모듈화 |
- 수행 위한 기능 단위 및 서비스 분류
- 패키징 개념에서의 기능 공유와 재활용 분류
- 모듈 간 결합도와 응집도 식별
|
빌드 진행 |
- 신규 개발 소스 및 컴파일 결과물 준비
- 정상 기능 단위 및 서비스 분류
- 빌드 도구 확인 및 정상 수행
- 컴파일 이외 도구의 다양한 기능 확인(Editor, CI)
|
사용자 환경 분석 |
- 최소 사용자 환경 사전 정의ᅟ
- 모듈 단위의 여러가지 기능별 사용자 환경 테스트
- 패키징 적용 시험
- 사용자 환경에서의 패키징 적용 시험
- 사용자 인터페이스 및 시스템 상의 편의성 체크
|
패키징 변경 개선 |
- 변경 부분 정리
- 개선 포인트 도출
- 재배포 수행
|
3. 제품 소프트웨어의 패키징 도구
개념 |
- 제품 s/w 배포 위한 패키징 시 디지털 콘텐츠 지적 재산권 보호, 관리
- 제품 s/w 안전한 유통/배포 보장하는 도구이자 솔루션
- 패키징 작업 진행 시 암호화 및 보안 기능 고려하여 패키징
|
제품 소프트웨어 패키징 도구 활용 시 고려사항 |
- 반드시 암호화 및 보안 기능 고려
- 다양한 다른 기종 연동 고려(DRM Digital Rights Management 디지털 저작권 관리)
- 사용자 편의성 위한 복잡성 및 비효율성 문제 고려
- 제품 소프트웨어 종류에 적합한 암호화 알고리즘 적용
- 지속적인 배포 고려(CI 연계, 짧은 주기 배포)
|
제품 소프트웨어 저작권 보호 |
|
4. 패키징에서의 릴리즈 노트
개념 |
- s/w와 함께 배포되는 s/w 변경사항 기록, 설명하는 문서
- 최종 사용자에게 전달되는 제품에 대한 공유 정보
- 테스트 진행 후 개발팀 제공 사양 최종 승인 후 문서 통해 릴리즈 정보 배포
- 표준 형식은 없으며 개발팀에서 소유권 갖고 직접 작성
- 현재 시점에서 작성되어야 하며, 명확/정확/완전한 정보 제공
- 신규 소스, 빌드 등은 배포 시부터 이력 정확하게 관리/진행
|
중요성 |
- 테스트 결과와 정보 포함
- 개발팀 제공 사양 얼마나 준수했는지 확인 가능
- 전체적 제품의 수행 기능 및 서비스 변화 공유
- 자동화 개념과 함께하여 적용
- 전체적인 버전 관리 및 릴리즈 정보 체계적 관리
|
릴리즈 노트 |
최종 사용자인 고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서 |
고려 사항
릴리즈 노트 추가 작성 및 개선 사항 발생 예외 케이스
- 테스트 단계에서의 베타 버전 출시
- 긴급 오류 수정 시
- 자체 기능 향상 포함한 모든 추가 기능의 향상
- 사용자 요청에 따른 특이한 케이스 발생
Reference
https://book.naver.com/bookdb/book_detail.naver?bid=17134434
이기적 정보처리기사 필기 기본서
- 기초부터 탄탄히 잡아주는 영진닷컴의 이기적 수험서!영진닷컴이 자랑하는 수험서 브랜드 ‘이기적’ 시리즈는 쉽고 풍부한 내용으로 기초부터 튼튼하게 쌓아주는 합격의 동반자입니다. 기
book.naver.com