자격증/정보처리기사

[정보처리기사] 제품 패키징

IT록흐 2021. 10. 16. 00:16
반응형

소프트웨어 패키징

 

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

 

패키징 작업 순서

 

패키징 개발주기는 개발기법에 따라 달라짐

애자일 기법 2 - 4, 각 주기마다 패키징 수행

주기별 패키징한 결과물은 테스트 서버에 배포

 

1) 기능 식별 : 작성된 코드의 기능을 확인

 

2) 모듈화 : 확인된 기능 단위로 코드 분류

 

3) 빌드 진행 : 모듈 단위별로 실행 파일 제작

 

4) 사용자 환경 분석 : 최소 운영 환경을 정의

 

5) 패키징 및 적용 시험

 

빌드된 실행 파일들을 정의된 환경에 맞게 배포용 파일 형식으로 패키징

정의된 환경과 동일 환경에서 테스팅 한 후 사용자 입장에서 불편사항 확인

 

6) 패키징 변경 개선

 

확인된 불편사항을 반영하기 위한 패키징의 변경 및 개선 진행

 

7) 배포

 

배포 수행 시 오류가 발생하면 해당 개발자에게 전달하여 수정 요청

 

 

릴리즈 노트(Relase Note) 작성

 

전체 기능 , 서비스 내용, 개선사용 관련 소프트웨어 정보를 사용자와 공유하기 위한 문서

 

정확하고 완전한 정보, 현재 시제로 작성

릴리즈 노트에 정리된 정보들은 철저한 테스트를 거친 것

신규 소스, 빌드 등의 이력이 정확하게 관리되어 변경 또는 개선 항목을 작성

 

 

릴리즈 노트 작성 순서

 

1) 모듈 식별

 

모듈별 빌드 수행 후 릴리즈 노트에 작성될 내용 확인

 

2) 릴리즈 정보 확인

 

릴리즈 이름, 버전, 날짜 등을 확인

 

3) 릴리즈 노트 개요 작성

 

SW에 대한 간략한 내용작성

 

4) 영향도 체크

 

릴리즈 버전의 기능 변화가 다른 기능에 미칠수 있는 영향 기술, 버그나 이슈 기술

 

5) 정식 릴리즈 노트 작성

 

Header(머릿말), 개요, 영향도 체크항목을 포함 정식 릴리즈 노트에 작성될 기본 사항 작성

 

6) 추가 개선 항목 식별

 

추가 버전 릴리즈 노트 작성이 필요한 경우 추가 릴리즈 노트 작성

 

 

디지털 저작권 관리(Digital right Management)

 

저작권자가 배포한 디지털 컨텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 컨텐츠 의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 컨텐츠 관리 및 보호기술

 

원본이 아날로그면 디지털로 변환하여 패키저에 의해 DRM 수행

패키징을 수행하면 컨텐츠에 암호화된 저작권자의 전사서명이 포함

저작권자가 설정한 라이선스 정보가 클리어링 하우스(Clearing House)에 등록

 

 

 

DRM 컨트롤러 : 배포된 컨텐츠 이용 권한 통제 프로그램

보안 컨테이너 : 컨텐츠 원본을 안전하게 유통하기 위한 전자적 보안장치

 

 

소프트웨어 버전 등록

 

형상관리(SCM, Software Configuration Management)

소프트웨어 변경사항을 관리(버전관리)하기 위해 개발된 일련의 활동

 

역할

변경의 원인 파악하여 적절히 변경되었는지 확인

소프트웨어 전 개발 단계에서 적용

개발 비용과 방해요인의 최소화를 목적으로 한다.

 

소프트웨어 버전 등록 과정

 

 

소프트웨어 버전 관리 도구

 

공유 폴더 방식

 

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

 

클라이언트 서버 방식

 

버전관리 자료가 주앙시스템에 저장되어 관리되는 방식

 

분산 저장소 방식

 

버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 pc의 로컬 저장소에서 우선 반영(버전관리)한 다음 이를 원격 저장소에 반영

 

Subversion( 서브버전, SVN )

 

CVS를 개선한 클라이언트/서버 구조 (아파치 소프트웨어)

 

서버 자료를 클라이언트로 복사, 작업 후 변경내용을 서버(저장소)에 반영(Commit)

커밋 시, 리비전(revision)(커밋의 버전)1씩 증가한다.

소스가 오픈되어 무료 사용 가능

 

trunk(줄기, 몸통) 디렉터리 : 개발의 중심이 되는 디렉토리

branches(가지, 부분) 디렉터리 : 추가 작업, 완료후 trunkmerge(병합)한다.

 

GIT()

 

분산 버전 관리 시스템(지역저장소 +원격저장소) (리눅스 커널 개발에 사용)

 

지역저장소 : 개발자들이 실제 개발하는 장소

원격저장소 : 협업을 위해 버전을 공동 관리하는 곳 ( 내 버전 반영, 남 버전 가져오기 )

 

새로운 기능을 추가하는 작업은 Branch를 통해 이루어진다.

 

Branch : Master Branch(기본 디폴트) + Topic Branch(Feature Branch)(별도생성)

Topic 브랜치를 별도로 만들어 새로운 기능을 테스팅 한 후 Master 브랜치에 병합하는 방식

 

파일 변화는 스냅샷(Snapshot)으로 저장, 스냅샷은 이전 스냅샷의 포인터를 가지므로

버전 흐름을 파악 가능

 

 

GIT 명령어 활용

 

계정 설정 하기 (사용자 이름, 사용자 이메일 등록)

 

$ git config --global user.name “sinagong” (누가 커밋 했는지 식별)

$ git config --global user.email “sinagong@naver.com”

 

지역 저장소 만들기

 

$ git init

원하는 작업 폴더에 가서 init 명령어로 지역저장소 생성

 

변경 내역 지역 저장소에 저장

 

1단계 : add (작업장소 -> 스테이징영역)

2단계 : commit(스테이징 영역 -> 지역 저장소(.GIT))

 

*스테이징영역에서 개발자가 한번더 커밋할 대상 선별 가능

 

$ git add --all

--all : 모든 파일을 스테이징에 저장

 

$ git commit m “첫 번째 커밋 작업 완료

-m “: 지역 저장소에 저장하면서 첫 번째 커밋작업완료라는 메시지 부여

 

병합(merge) 기능 사용

 

첫 커밋을 사용하면 마스터 브랜치가 생성, 실질적인 버전관리를 수행

기본 작업과 별도의 새로운 기능 테스트는 Topic 브랜치를 만들어 테스트 후 병합

 

$ git branch new_test : 새로운 브랜치를 생성(Topic 브랜치)

$ git checkout new_next : Master 브랜치에서 Topic 브랜치로 포인터 옮기기

$ git add Test5.java : 자바파일을 스테이징 영역에 추가

$ git commit m ”두번째 작업 완료“ : new_branch에 자바파일 저장

$ git checkout master : 포인터를 마스터로 이동

$ git merge new_test : 커밋 내역을 마스터에 반영

$ git branch d new_test : new_test 제거

 

원격 저장소에 저장하기

 

$ git remote add abc https://github.com/kyk/remotetest.git

 

사용자 : kyk

원격저장소 이름 : remotetest

원격저장소 별명 : abc

 

원격저장소의 위치에 별명을 지정(add)해야 push 명령어를 통한 반영이 가능하다

 

$ git push abc master : 마스터 브랜치의 내용을 abc에 반영한다.

 

 

 

빌드 자동화 도구

빌드란 소스 코드 파일들을 컴파일 한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정

 

Jenkins

 

java기반 오픈 소스 형태, 가장 많이 사용되는 빌드 자동화 도구

서블릿 컨테이너에서 실행되는 서버기반도구

SVN, Git 등 대부분의 형상관리 도구와 연동 가능

 

Gradle

 

Groovy 기반 오픈 소스 형태의 자동화 도구

안드로이드 앱 개발 환경에서 사용

(Groovy : 자바에 파이썬, 루비 등의 장점을 결합한 동적 객체 지향 프로그래밍 언어)

 

플러그인을 설정하면 java, c, Python등의 언어도 빌드 가능

Groovy를 사용해서 만든 DSL(Domain Specific Language)를 스크립트로 실행

빌드 캐시 기능을 지원하여 빌드 속도 향상( 이전 태스크 재사용 및 다른 태스크 공유 )

 

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

 

 

 

반응형