관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

[소프트웨어 개발] 3장 제품 소프트웨어 패키징 1 - 애플리케이션 패키징과 배포 도구에 대하여 본문

자격증 공부/정보처리기사 필기

[소프트웨어 개발] 3장 제품 소프트웨어 패키징 1 - 애플리케이션 패키징과 배포 도구에 대하여

huenuri 2024. 7. 31. 13:01

이제 새로운 chapter에 들어갔다. 제품 소프트웨어 패키징인데 많이 지루하고 재미없는 내용들이 많다. 그래도 중요한 내용 위주로 정리해보려고 한다. 앞으로 앱을 만들려면 어떤 과정으로 만들어지는지 프로세스 정도는 알고 있어야 할 것이다.

 

학습 내용

  1. 애플리케이션 패키징 개념과 특징, 프로세스 과정에 대해서 학습한다.
  2. 애플리케이션 배포 도구에 대해서도 알아보며 패키징과의 차이점을 구별해본다.

 

학습 시간

5시 20분 ~ 6시


 

 

1. 애플리케이션 패키징

 

개념

  • 개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작
  • 설치와 사용에 필요한 제반 내용을 포함하는 메뉴얼을 작성하는 활동

특징

  • 사용자 중심으로 진행. 신규 및 변경 개발 소스를 식별하며, 이를 모듈화하여 상요 제품으로 패키징
  • 고객의 편의성을 위해 신규/변경 이력을 확인, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리
  • 사용자의 실행 환경을 이해, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행됨

 

 

고려사항

1) 사용자 실행 환경의 이해

  • 사용자 실행 환경을 우선 고려하여 패키징을 진행
  • OS부터 시작하여 실행 환경, 시스템 사양 및 고객의 사용 방법까지 상세 분류하여 실행 환경을 사전 정의

 

2) 사용자 관점에서의 패키징 고려 사항

1. 사용자 시스템 환경 정의 : 운영체제, CPU, 메모리 등의 수행을 위한 최소 환경

2. UI 제공 : 사용자가 직관적으로 확인할 수 있는 UI를 제공, 메뉴얼과 일치시켜 패키징 작업 수행

 

3. 관리 서비스 형태로 제공 : 애플리케이션은 하드웨어와 함께 통합 적용할 수 있도록, 패키징을 관리 서비스 행태로 제공

 

4. 패키징의 변경 및 개선 관리 고려 : 다양한 사용자의 요구사항을 반영하기 위해 패키징의 변경 및 개선 관리를 고려

 

 

프로세스

1. 기능 식별 : 입출력 데이터 식별

  • 전체적인 기능 정의 및 데이터 흐름 식별

2. 모듈화 : 기능 및 서비스를 모듈 단위로 분류

  • 모듈간 결합도와 응집도 식별

3. 빌드 진행 : 신규 개발 소스 및 컴파일 결과물 준비

  • 빌드 도구 확인 및 정상 수행
  • 컴파일 이외 도구의 다양한 기능 확인

4. 사용자 환경 분석 : 최소 사용자 환경 사전 정의

  • 모듈 단위 사용자 환경 테스트 수행

5. 패키징 적용 시험 : 사용자 환경에서의 패키징 적용 시험

  • UI 및 시스템 상의 편의성 체크

6. 패키징 변경 개선 : 패키징 적용시 변경점 도출

  • 최소 사용자 환경에서 서비스 가능한 수준 개선

 

 

릴리즈 노트

  • 애플리케이션 최종 사용자인 고객과 잘 정리된 배포 정보를 공유하는 문서
  • 상세 서비스를 포함해 수정 · 변경 또는 개선되는 정보에 대한 사항이 제공

 

 

2. 애플리케이션 배포 도구

 

개념

  • 배포를 위한 패키징 시에 디지털 콘텐츠의 지적재산권을 보호하고 관리하는 기능 제공
  • 안전한 유통과 배포를 보장하는 도구이자 솔루션

 

배포 프로세스

1. 필드 내용 식별 : 릴리즈 노트 작성을 위한 모듈 및 빌드 정리

  • 입출력 데이터, 전체적인 기능 정의, 데이터 흐름 정리
  • 기능 단위 및 출력에 대한 상세 정의

2. 패키징 도구 식별 : 패키징 도구 사전 선택

  • 암호/보안 기능 확인

3. DRM 흐름을 확인하여 패키징 수행 : 콘텐츠 분배자, 배포자, 소비자 간 DRM 흐름 확인

  • 패키징 소행시 키 관리, 보안 개념 확인하며 수행

4. 패키징 도구 설치 : 환경에 맞게 설치

5. 배포 작업 : 제품 소프트웨어 배포 작업 진행

  • 배포 후 최종 패키징 완료 확인

6. 정상 배포 확인 : 암호화/ 보안 기능 적용 확인

  • 제품 소프트웨어 배포본 기준으로 기능 체크리스트 확인

 

 

도구 활용시 고려 사항

 

1. 암호화/ 보안 : 패키징시 사용자에게 배포되는 소프트웨어임을 감안하여 내부 콘텐츠에 대한 암호와 및 보안 고려

2. 이기종 연동 : 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려

 

3. 복잡성 및 비효율성 문제 : 사용자의 입장에서 불편해질 수 있는 문제를 고려하여, 최대한 효율적으로 적용

4. 최적합 암호화 알고리즘 적용 : 여러 암호화 알고리즘 중 제품 소프트웨어의 종류에 맞는 것을 선택 + 배포시 범용성에 지장이 없도록 고려


 

 

학습을 마치고

분량이 꽤 많아서 정리는 여기까지 하기로 했다. 모니터링과 DRM 도구는 따로 다음 포스트에 써보려고 한다. 그래도 오늘 8교시까지 무사히 공부를 마치고 귀가하게 되어 참 다행이다.

오늘 정말 힘든 하루였지만 그래도 기본은 따라갔던 것 같다. 때로는 그냥 자리에 있는 것만으로도 충분할 때가 있다. 


매일매일 공부하고 수업을 받으니 지금의 시간이 얼마나 소중한지 미쳐 느끼지 못할 수도 있다. 하지만 이 시간은 내 인생에서 가장 중요한 시기이며 개발자로 첫 출발을 하는 중요한 수업임을 잊지 말자! 힘들지만 난 꼭 이겨내서 다시 그 열정을 회복해볼 것이다.