정보처리기사 실기 (12) 제품 소프트웨어 패키징

Dodam·2023년 8월 29일
0

[정보처리기사]

목록 보기
10/11
post-thumbnail

소프트웨어 패키징

소프트웨어 패키징의 개요

  • 실행 파일을 묶어 배포용 설치 파일을 만듦
  • 사용자 중심으로 진행
  • 모듈화 하여 일반 배포 형태로 패키징

패키징 시, 고려사항

  • 사용자의 운영체제, CPU, 메모리 등에 필요한 최소 환경 정의
  • UI는 시각적인 자료와 함께 매뉴얼과 일치시켜 패키징
  • 소프트웨어는 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로 제공

패키징 작업 순서

배포는 온라인 또는 오프라인으로 배포

릴리즈 노트 작성

릴리즈 노트의 개요

  • 개발 과정에서 정의된 릴리즈 정보를 고객에게 공유하기 위한 문서
  • 테스트 진행 방법에 대한 결과가 소프트웨어 사양에 대한 개발팀의 정확한 준수 여부 파악
  • 소프트웨어의 버전 관리 및 릴리즈 정보를 체계적으로 관리
  • 소프트웨어 초기 배포, 출시 후 개선 사항을 적용한 추가 배포 시 제공

릴리즈 노트 초기 버전 작성 시 고려사항

  • 정확하고 완전한 정보를 기반으로 개발팀에서 직접 현재 시제로 작성
  • 신규 코드, 빌드 등의 이력이 정확하게 관리되어 변경 또는 개선된 항목에 대한 이력 정보들도 작성

릴리즈 노트 추가 버전 작성 시 고려사항

  • 테스트 과정에서 베타 버전이 출시되거나 긴급 버그 수정, 업그레이드, 사용자 요청 등의 특수한 상황의 경우 작성
  • 긴급 버그 수정 시, 릴리즈 버전을 출시하고 그 번호를 포함한 모든 내용(수정된 내용)을 담음
  • 요구사항에 의해 추가 혹은 수정된 경우, 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시하고 작성

릴리즈 노트 작성 순서


디지털 저작권 관리

저작권의 개요

  • 창작자가 가지는 배타적 독점적 권리로, 타인의 침해를 받지 않을 고유한 권한
  • 컴퓨터 프로그램처럼 복제하기 쉬운 저작물에 대해 저작권을 보호하는 방법을 저작권 보호 기술이라고 함

디지털 저작권 관리(Digital Right Management) 개요

  • 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 생성, 유통, 이용까지 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술
  • 크기가 작은 경우, 사용자가 콘텐츠를 요청하는 시점에 실시간 패키징 수행
  • 크기가 큰 경우, 미리 패키징을 수행 후 배포
  • 종량제 방식을 적용한 소프트웨어의 경우, 서비스의 실제 사용량을 측정하여 이용한 만큼 이용료 부과

디지털 저작권 관리의 흐름도

  • 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행
  • 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
  • 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
  • 콘텐츠 유통자(분배자) : 암호화된 콘텐츠를 유통
  • 콘텐츠 소비자 : 콘텐츠를 구매해서 사용
  • DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
  • 보안 컨테이너 : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

디지털 저작권 관리의 기술 요소

  • 암호화, 키 관리, 암호화 파일 생성, 식별 기술, 저작권 표현, 정책 관리, 크랙 방지, 인증

소프트웨어 설치 매뉴얼 작성

소프트웨어 설치 매뉴얼의 개요

  • 개발 초기에서부터 적용된 기준이나 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 문서
  • 설치 시작부터 완료까지의 과정을 순서대로 설명

서문

  • 문서 이력, 설치, 매뉴얼의 주석, 설치 도구의 구성, 설치 환경 체크 항목 기술
  • 설치 매뉴얼의 주석 : 주의 사항과 참고 사항 기술
  • 설치 환경 체크 항목 : 사용자 환경, 응용 프로그램, 업그레이드 버전, 백업 폴더 확인

기본 사항

  • 소프트웨어 개요, 설치 관련 파일, 설치 아이콘, 프로그램 삭제, 관련 추가 정보 설명

설치 매뉴얼 작성

  • 사용자가 설치 과정을 이해하기 쉽도록 설치 화면을 누락없이 캡처하여 순서대로 설명
  • 설치 화면 및 UI, 설치 이상 메시지, 설치 완료 및 결과, 설치 시 점검사항, Network 환경 및 보안, 고객 지원 방법, FAQ, 준수 정보 & 제한 보증에 대해 기술

설치 매뉴얼 작성 순서


소프트웨어 사용자 매뉴얼 작성

소프트웨어 사용자 매뉴얼의 개요

  • 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 기록한 문서

서문

  • 문서 이력, 사용자 매뉴얼의 주석, 기록 보관 내용 기술
  • 기록 보관 내용 : 소프트웨어를 사용하면서 필요한 기술 지원이나 추가 정보를 얻기 위한 소프트웨어 등록 정보 기술

기본 사항

  • 소프트웨어 개요, 사용 환경, 관리, 모델 버전별 특징, 기능 및 인터페이스의 특징, 구동 환경 설명

사용자 매뉴얼 작성

  • 사용자가 사용 방법을 이해하기 쉽도록 작성
  • 사용자 화면 및 UI, 주요 기능 분류, 응용 프로그램 및 설정, 장치 연동, Network 환경, Profile 안내, 고객 지원 방법, 준수 정보 및 제한 보증에 대해 기술

사용자 매뉴얼 작성 순서


소프트웨어 버전 등록

소프트웨어 패키징 형상 관리

  • 형상관리는 소프트웨어의 변경 사항을 관리하기 위한 활동

형상 관리의 중요성

  • 지속적으로 변경사항을 체계적으로 관리 및 추적할 수 있음
  • 발견된 버그나 수정 사항을 추적
  • 무절제한 변경 방지

형상 관리 기능

  • 형상 식별 : 대상에 이름과 관리 번호를 부여하고 계층 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업
  • 버전 제어 : 소프트웨어 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고 특정 절차와 도구를 결합하는 작업
  • 형상 통제 : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재 기준이 잘 반영될 수 있도록 하는 작업
  • 형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
  • 형상 기록 : 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리하고 보고서를 작성하는 작업

소프트웨어 버전 등록 관련 주요 용어

  • 저장소(Repository) : 형상에 대한 정보들이 저장되어 있는 곳
  • 가져오기 : 아무 것도 없는 저장소에 처음으로 파일을 복사
  • 체크아웃 : 저장소에서 소스 파일, 버전 관리를 위한 파일을 받아옴
  • 체크인 : 체크아웃으로 받아온 파일을 수정 후, 저장소에 새로운 버전으로 갱신
  • 커밋 : 체크인 수행 시, 이전에 갱신된 내용이 있는 경우 충돌을 알리고 diff 도구를 이용해 수정한 후 갱신
  • 동기화 : 저장소에 있는 최신 버전을 동기화

소프트웨어 버전 관리 도구

공유 폴더 방식

  • 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리

클라이언트 / 서버 방식

  • 버전 관리 자료가 서버에 저장되어 관리
  • 서버의 자료를 자신의 PC로 복사하여 작업 후, 변경 내용을 서버에 반영
  • 모든 버전 관리는 서버에서 수행

분산 저장소 방식

  • 버전 관리 자료가 하나의 원격 저장소와 분산된 PC의 로컬 저장소에 함께 저장되어 관리
  • 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업 후, 변경 내용을 로컬 저장소에서 버전 관리 후 이를 원격 저장소에 반영

Subversion(SVN)

  • 아파치 소프트웨어 재단에서 2000년에 발표
  • 클라이언트 / 서버 방식
  • 모든 작업은 trunk 디렉토리에서, 추가 작업은 branches 디렉토리 안에 별도의 디렉토리를 만들어 작업 후, trunk 디렉토리와 병합
  • 커밋 시, 커밋의 버전인 리버전이 1씩 증가
  • 서버는 주로 유닉스에서 사용
  • 명령어
    • add : 새로운 파일이나 디렉토리를 관리 대상으로 지정
    • commit : add한 소스파일을 서버의 소스파일에 적용
    • update : 서버의 최신 commit 이력을 클라이언트 소스에 적용
    • checkout : 서버에서 버전 관리 정보와 소스 파일을 받아옴
    • import : 아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장
    • export : 버전 관리 정보를 빼고, 소스 파일만 서버에서 받아옴
    • info : 지정된 파일에 대한 정보를 표시
    • diff : 지정된 파일이나 경로에 대해 이전 리버전과의 차이를 표시
    • merge : 다른 디렉토리에서 작업된 버전 관리 내역을 기본 개발 작업과 병행

Git

  • 리누스 토발즈가 2005년에 개발
  • 분산 저장소 방식
  • 버전 관리가 지역 저장소에서 진행되어 신속하게 처리되고, 원격 저장소나 네트워크에 문제가 있어도 작업이 가능
  • 브랜치를 이용하여 기본 버전 관리 틀에 영향을 주지 않으면서, 다양한 형태의 테스팅이 가능
  • 파일의 변화를 스냅샷으로 저장하고, 이전 스냅샷의 포인터를 가져 버전의 흐름 파악 가능
  • 명령어
    • add : 작업 내역을 스테이징 영역에 추가하여 버전 관리 대상으로 지정
    • commit : 작업 내역을 지역 저장소에 저장
    • branch : 새로운 브랜치 생성 / 삭제
    • checkout : 지정한 브랜치로 이동
    • merge : 두 브랜치를 병합
    • init : 지역 저장소를 생성
    • remote add : 원격 저장소에 연결
    • push : 로컬 저장소의 변경 내용을 원격 저장소에 반영
    • fetch : 원격 저장소의 변경 이력만 지역 저장소에 반영
    • clone : 원격 저장소의 전체 내용을 지역 저장소로 복제
    • fork : 지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제

빌드 자동화 도구

빌드 자동화 도구의 개념

  • 소스 코드를 컴파일 한 후, 여러 개의 모듈로 묶어 실행 파일로 만드는 과정을 포함하여 테스트 및 배포를 자동화하는 도구

Jenkins

  • Java 기반의 오픈소스
  • 서블릿 컨테이너에서 실행되는 서버 기반의 도구
  • 형상 관리 도구와 연동 가능
  • Web GUI 제공으로 사용이 쉬움
  • 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트 가능

Gradle

  • Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구
  • 안드로이드 앱 개발 환경에 사용
  • Java, C/C++, Python 등의 언어도 빌드 가능
  • Groovy를 사용해서 만든 DSL을 스크립트 언어로 사용
  • 실행할 처리 명령들을 모아 태스크로 만든 후, 태스크 단위로 실행
  • 이전의 태스크를 재사용하거나 다른 시스템의 태스크를 공유하여 빌드 속도를 향상시킬 수 있음
profile
⏰ Good things take time

0개의 댓글