본문 바로가기

정보 처리 기사 필기/2. 소프트웨어 개발

2-3 제품 소프트웨어 패키징

반응형

 

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

 

반응형