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

Minseol·2023년 3월 28일
0

정보처리기사

목록 보기
16/17

소프트웨어 패키징

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

패키징 작업 순서

  1. 기능 식별
  2. 모듈화
  3. 빌드 진행
  4. 사용자 환경 분석
  5. 패키징 및 적용 시험
  6. 패키징 변경 개선
  7. 배포

릴리즈 노트(Release Note)

  • 소프트웨어 개발 과정에서 정리된 릴리즈 정보를 고객과 공유하기 위한 문서

릴리즈 노트 작성 항목

  • Header(머릿말)
  • 개요
  • 목적
  • 문제 요약
  • 재현 항목
  • 수정/개선 내용
  • 사용자 영향도
  • SW 지원 영향도
  • 노트
  • 면책 조항
  • 연락처

릴리즈 노트 작성 순서

  1. 모듈 식별
  2. 릴리즈 정보 확인
  3. 릴리즈 노트 개요 작성
  4. 영향도 체크
  5. 정식 릴리즈 노트 작성
  6. 추가 개선 항목 식별

디지털 저작권 관리(DRM; Digital Right Management)

  • 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 하는 디지털 콘텐츠 관리 및 보호 기술

  • 저작권: 창작가가 가지는 배타적 독점적 권리로, 타인의 침해를 받지 않을 고유한 권한

디지털 저작권 관리의 흐름 및 구성 요소

클리어링 하우스(Clearing House)

  • 저작권에 대한 사용 권한, 라이선스 발급, 암호화된 키 관리 등을 수행하는 곳

콘텐츠 제공자(Contents Provider)

  • 콘텐츠를 제공하는 저작권자

패키저(Packager)

  • 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램

콘텐츠 분배자(Contents Distributor)

  • 암호화된 콘텐츠를 유통하는 곳이나 사람

콘텐츠 소비자(Customer)

  • 콘텐츠를 구매해서 사용하는 주체

DRM 컨트롤러(DRM Controller)

  • 배포된 콘텐츠의 이용 권한을 통제하는 프로그램

보안 컨테이너(Security Container)

  • 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

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

  • 암호화(Encryption)
  • 키 관리(Key Management)
  • 암호화 파일 생성(Packager)
  • 식별 기술(Identification)
  • 저작권 표현(Right Expression)
  • 정책 관리(Policy Management)
  • 크랙 방지(Tamper Resistance)
  • 인증(Authentication)

소프트웨어 설치 매뉴얼

  • 개발 초기에서부터 적용된 기준이나 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 설명서와 안내서

설치 매뉴얼 작성 순서

  1. 기능 식별
  2. UI 분류
  3. 설치 파일 / 백업 파일 확인
  4. Uninstall 절차 확인
  5. 이상 Case 확인
  6. 최종 매뉴얼 적용

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

  • 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서
  • 사용자 매뉴얼은 컴포넌트 명세서와 컴포넌트 구현 설계서를 토대로 작성

사용자 매뉴얼 작성 순서

  1. 기능 식별
  2. 사용자 화면 분류
  3. 사용자 환경 파일 확인
  4. 초기화 절차 확인
  5. 이상 Case 확인
  6. 최종 매뉴얼 적용

소프트웨어 버전 등록

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

  • 형상 관리(SCM; Software Configuration Management)는 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

형상 관리 기능

형상 식별

  • 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업

버전 제어

  • 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리

형상 통제

  • 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

형상 감사

  • 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

형상 기록

  • 형상의 식별, 통제, 감사 작업의 결과를 기록-관리하고 보고서를 작성

소프트웨어의 버전 등록 관련 주요 기능

저장소(Repository)

  • 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳

가져오기(Import)

  • 버전 관리가 되고 있지 않은 아무것도 없는 저장소(Repository)에 처음으로 파일을 복사함

체크아웃(Check-Out)

  • 프로그램을 수정하기 위해 저장소(Repository)에서 파일을 받아옴

체크인(Check-In)

  • 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)의 파일을 새로운 버전으로 갱신

커밋(Commit)

  • 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌(Conflict)을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료

동기화(Update)

  • 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화

소프트웨어 버전 등록 과정

  1. 가져오기(Import)
  2. 인출(Check-Out)
  3. 예치(Commit)
  4. 동기화(Update)
  5. 차이(Diff)

소프트웨어 버전 관리 도구

공유 폴더 방식

  • 버전 관리 자료가 지역 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
  • 종류: SCCS, RCS, PVCS, QVCS 등

클라이언트/서버 방식

  • 버전 관리 자료가 서버에 저장되어 관리되는 방식
  • 종류: CVS, SVN(Subversion), CVSNT, Clear Case, CMVC, Perforce 등

분산 저장소 방식

  • 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식

  • 종류: Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM 등

Subversion(서브버전, SVN)

  • Subversion은 CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 2000년에 발표
  • 클라이언트/서버 구조로, 서버(저장소, Repository)에는 최신 버전의 파일들과 변경 사항이 관리
  • 소스가 오픈되어 있어 무료로 사용

Subversion의 주요 명령어

add

  • 새로운 파일이나 디렉터리를 버전 관리 대상으로 등록

commit

  • 버전 관리 대상으로 등록된 클라이언트의 소스 파일을 서버의 소스 파일에 적용

update

  • 서버의 최신 commit 이력을 클라이언트의 소스 파일에 적용

checkout

  • 버전 관리 정보와 소스 파일을 서버에서 클라이언트로 받아옴

lock/unlock

  • 서버의 소스 파일이나 디렉터리를 잠그거나 해제

import

  • 아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장하는 명령

export

  • 버전 관리에 대한 정보를 제외한 순수한 소스 파일만을 서버에서 받아옴

info

  • 지정한 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보를 표시

diff

  • 지정된 파일이나 경로에 대해 이전 리비전과의 차이를 표시

merge

  • 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병행

Git(깃)

  • 분산 버전 관리 시스템으로 2개의 저장소, 즉 지역 저장소와 원격 저장소가 존재

add

  • 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역(Staging Area)에 추가함

commit

  • 작업 내역을 지역 저장소에 저장

branch

  • 새로운 브랜치를 생성

checkout

  • 지정한 브랜치로 이동

merge

  • 지정한 브랜치의 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영함으로써 두 브랜치를 병합함

init

  • 지역 저장소를 생성함

remote add

  • 원격 저장소에 연결함

push

  • 로컬 저장소의 변경 내역을 원격 저장소에 반영

fetch

  • 원격 저장소의 변경 이력만을 지역 저장소로 가져와 반영

clone

  • 원격 저장소의 전체 내용을 지역 저장소로 복제

Git(깃) 명령어 활용

계정 설정하기

  • Git을 통해 버전을 관리하려면 먼저 사용자 이름과 사용자 이메일을 등록하여 계정을 설정
git config --global user.name "Minseol"
git config --global user.email "illyasviel@kakao.com"

지역 저장소 만들기

git init

변경 내역을 지역 저장소에 저장하기

git add --all // 파일 중 변경 내용이 있는 파일만 모두 스테이징 영역에 추가
git commit -m "첫 번째 커밋 작업 완료" // 작업 내역을 지역 저장소에 저장하면서 "첫 번째 커밋 작업 완료"라는 메시지를 부여

병합(Merge) 기능 사용하기

git branch new_test // 새로운 브랜치를 생성
// 가장 최근의 commit을 가리키는 포인터를 현재 작업중인 마스터 브랜치에서 new_test 브랜치로 이동
git checkout new_test

git add new_file.txt // 새로운 파일을 스테이징 영역에 추가
git commit -m "두번째 커밋 완료"

git checkout master
git merge new_test // new_test 브랜치의 커밋 내역을 마스터 브랜치에 반영
git branch --d new_test // new_test 브랜치를 제거

지역 저장소의 버전 관리 내역을 원격 저장소에 저장하기

git remote add minseol 

// 사용자가 mikinano이고 저장소 이름이 minseol_test인 원격 저장소의 별명을 minseol로 지정
https://github.com/mikinano/minseol_test.git

git push minseol master // 원격 저장소(minseol)에 마스터 브랜치의 내용을 반영

빌드 자동화 도구

  • 빌드를 포함하여 테스트 및 배포를 자동화하는 도구
  • 빌드 자동화 도구에는 Ant, Make, Maven, Gradle, Jenkins 등이 있으며, 이중 Jenkins와 Gradle이 가장 대표적

Jenkins

  • Java 기반의 오픈 소스 형태로, 서블릿 컨테이너에서 실행되는 서버 기반 도구
  • SVN, Git 등 대부분의 형상 관리 도구와 연동이 가능
  • 친숙한 Web GUI 제공으로 사용이 쉽다.

Gradle

  • Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구
  • 안드로이드 앱 개발 환경에서 사용
profile
귀여운 설이에양

0개의 댓글