상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 제품 소프트웨어 패키징

정보처리기사 공부지식

by 소란한소란 2024. 3. 6. 11:44

본문

728x90

제품 소프트웨어 패키징: 사용자 중심의 효과적인 배포 전략

소프트웨어 개발에서 애플리케이션 패키징은 중요한 단계입니다. 이는 모듈별로 생성한 실행 파일을 묶어 사용자가 손쉽게 설치하고 사용할 수 있는 배포용 설치 파일을 만드는 과정입니다. 여기서는 애플리케이션 패키징의 개념과 특징, 그리고 사용자 실행 환경을 고려한 패키징의 중요성에 대해 알아보겠습니다.

 


애플리케이션 패키징의 개념

  • 모듈별로 생성한 실행 파일을 묶어 배포용 설치 파일을 만드는 것

애플리케이션 패키징의 특징

  • 애플리케이션 패키징은 개발자가 아닌 사용자 중심으로 진행
  • 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징
  • 신규/변경 이력을 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리
  • 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 패키징 진행

사용자 실행 환경의 이해

  • 고객 편의성을 위해 사용자 환경을 고려하여 패키징 진행

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

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

애플리케이션 패키징 수행 순서

기능 식별 - 개발 소스의 목적 및 기능을 식별
- 입출력 데이터, 전체적인 기능과 데이터 흐름을 식별
모듈화 - 모듈 단위 분류 및 모듈화를 순서에 맞게 진행
- 수행을 위한 기능 단위 및 서비스 분류,
기능 공유와 재활용 분류, 모듈 간 결합도와 응집도를 식별
빌드 진행 - 개발된 소스의 컴파일을 진행
- 정상 기능 단위 및 서비스 분류
- 빌드 도구 확인 및 정상 수행확인
- 컴파일 이외 도구의 다양한 기능 확인
사용자 환경 분석 - 최소 사용자 환경 사전 정의
- 모듈 단위의 여러 가지 기능별 사용자 환경 테스트
패키징 적용 시험 - 사용자 환경에서의 패키징 적용 시험
- UI 및 시스템상의 편의성 체크
패키징 변경 개선 - 패키징 적용 시 변경점 도출
- 최소 사용자 환경에서 서비스 가능한 수준의 개선
- 개선 버전의 재배포
  • 순서
    • 기능 식별 → 모듈화 → 빌드 진행 → 사용자 환경 분석 → 패키징 적용 시험 → 패키징 변경 개선

애플리케이션 배포 도구

  • 개념
    • 최종 사용자에게 소프트웨어를 전달하는 과정

애플리케이션 배포 도구 활용 시 고려사항

  • 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려
  • 추가로 다양한 이기종 연동을 고려
  • 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려
  • 제품 소프트웨어의 종류에 적합한 암호화 알고리즘을 적용

CI/CD (★)

  • CI(Continuous Integration)
    • 지속적인 통합
    • 여러 개발자들의 새로운 코드 변경 사항을 정기적으로 공유 레포지토리에 통합하는 것
  • CD(Continuous Delivery & Continuous Deployment)
    • 지속적인 서비스 제공 혹은 지속적인 배포

릴리즈 노트

  • 개념
    • 소프트웨어 제품과 함께 배포되는 문서들을 말한다.
  • 역할
    • 릴리즈 노트에는 테스트 결과와 정보가 포함
    • 사용자에게 보다 더 확실한 정보를 제공
    • 기본적으로 전체적인 제품의 수행 기능 및 서비스의 변화를 공유
    • 자동화 개념과 함께하여 적용할 수 있다.
  • 작성 항목
Header - 문서 이름 (릴리즈 노트 이름) , 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트버전 등
개요 - 제품 및 변경에 대한 간략한 전반적 개요
목적 - 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적에 대한 간략한 개요
- 버그 수정 및 새로운 기능 기술
이슈 요약 - 버그의 간단한 설명 또는 릴리즈 추가 항목 요약
재현 항목 - 버그 발견에 따른 재현 단계 기술
수정/개선 내용 - 수정/개선의 간단한 설명 기술
사용자 영향도 - 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술
SW 지원 영향도 - 버전 변경에 따른 SW의 지원 프로세스 및 영향도 기술
노트 - SW 및 HW Install 항목, 제품, 문서를 포함한 업그레이드 항목 메모
면책 조항 - 회사 및 표준 제품과 관련된 메시지, 프리웨어, 불법 복제 방지, 중복 등 참조에 대한 고지 사항
연락 정보 - 사용자 지원 및 문의 관련한 연락처 정보

 

릴리즈 노트 추가 작성 및 개선 사항 발생의 예외 케이스

  • 테스트 단계에서의 베타 버전 출시
  • 긴급 버그 수정 시
  • 자체 기능 향상을 포함한 모든 추가 기능의 향상
  • 사용자 요청에 따른 특이한 케이스 발생

DRM(Digital Rights Management)

  • 개념
    • 각종 디지털 콘텐츠의 불법적인 사용을 제한하고, 승인된 사용자의 콘텐츠 사용을 저작권 소유자의 의도에 따라 제어하는 기술
  • 특징
    • 콘텐츠의 공개키로 암호화하고, 콘텐츠의 비밀키를 판매
    • 저작권의 라이센스에 따른 분배를 투명하게 한다.

DRM의 구성 및 흐름

DRM 구성

 

 

 

DRM 사용 규칙 제어 기술

  • 콘텐츠 식별 체계(Identification)
    • 디지털 콘텐츠에 고유 식별 번호를 부여하여 관리하고 운영
  • 메타데이터(Meta Data)
    • 콘텐츠에 관한 구조화된 데이터
  • 권리 표현 기술(Right Expression)
    • 콘텐츠에 대한 규칙 설정
    • XrML(eXtensible rights Mark-up Language) 기술이 대표적

 

저작권 보호 기술

  • 암호화 기술
    • 특정키를 가진 사용자만이 해당 콘텐츠를
    • 사용할 수 있도록 한다.
  • 위변조 방지(Tamper-Proofing)
    • 콘텐츠에 승인되지 않은 조작이 가해졌을 때,오류 동작을 일으키게끔 하는 기술
    • 위변조 사항을 감지할 수 있도록 하고,
  • 워터마킹(Watermarking)
    • 콘텐츠에 저작권 정보를 은닉하여 향후 저작권 분쟁이
    • 일어날 경우, 추적을 통해 저작권자를 확인할 수 있게 해주는 기술

 

워터마킹(Watermarking), 핑거프린팅(Fingerprinting) 구분

관점 워터마킹 핑거프린팅
목적 불법 복제 방지 불법 유통 방지
삽입정보 저작권 정보 저작권 정보 + 구매자 정보
콘텐츠 변화 시점 최초 저작 시점 구매시점마다
취약점 불법 유통 공모 공격

 

DRM 구성요소

암호화 - 콘텐츠 및 라이선스를 암호화하고,
전자 서명을 할 수 있는 기술
키 관리 - 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
암호화 파일 생성 - 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
식별 기술 - 콘텐츠에 대한 식별 체계 표현 기술
저작권 표현 - 라이센스의 내용 표현 기술
정책 관리 - 라이센스 발급 및 사용에 대한 정책 표현 및 관리기술
크랙 방지 - 크랙에 의한 콘텐츠 사용 방지 기술
인증 - 라이센스 발급 및 사용의 기준이 되는 사용자 인증 기술

 


좋은 애플리케이션 패키징과 보호 기술은 소프트웨어 제품의 성공과 사용자 만족도를 결정짓는 중요한 요소입니다. 사용자 중심의 개발과 보안적인 측면을 함께 고려하여 소프트웨어를 제공함으로써 품질 높은 서비스를 구현할 수 있습니다.

 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기