본문 바로가기
자격증/일학습병행 외부평가 : SW개발_L5_20V1

[일학습병행 외부평가 요약정리][지필] 01. 제품소프트웨어 패키징

by aeong_ 2024. 1. 27.

* 제품소프트웨어 패키징 *

 

곧 2024년 외부평가가 시작된다는 이야기를 듣고 노션에 정리했던 내용을 시간있을 때 티스토리 게시글로 재정리해서 올려본다.

시간상 한번에 올리지는 못하고 하나씩 업로드할 것 같다

작년과 달라졌을 수도 있는데 큰 맥락은 비슷할테니 뭐.. 다같이 취업까지 파이팅 해보자

 

개요 능력단위 시험시간
지필평가 제품 소프트웨어 패키징 20분
애플리케이션 테스트 관리

 

- 지필 영역은 과목당 3문제씩만 출제되며 난이도는 세개의 평가중 제일 쉽다.

- 그만큼 한 문제당 배점이 크고 꼭 PASS 해야한다.

- 깊게 공부하기 보다 단어(키워드)와 그 정의 위주로 외우자.

- 총 6문제가 출제되며

  문제 유형은 줄 연결하기 / 보기를 주고 정답인 단어 적기 / 정의or특징을 주고 정답 단어 적기 등이 있었다.

- 기출문제 우선으로 먼저 공부하자

- 내가 아는 선에서 실제 출제되었던 문제들은 뒷배경으로 빨간색을 채워두었다.

- 여기에 요약되지 않은 내용에서 출제될 수도 있기 때문에 시간이 여유롭다면 아래 학습모듈 자료도 한번 훑어보기를 바란다.

- 그렇게 빡세게 할 필요는 없다 문제가 쉬워서..

 

학습모듈 자료 

https://www.ncs.go.kr/unity/th03/ncsSearchMain.do

 

공개문제 아님

능력단위의 전반적인 내용 전체를 볼 수 있는 자료 사이트

해당 내용을 기준으로 요약본을 작성함

  1. [ 분야별 검색 : 20. 정보통신 ] ⇒ [01. 정보기술] ⇒ [02. 정보기술개발] ⇒ [하단 NCS학습모듈]
  2. 원하는 능력단위의 PDF 다운로드

LM2001020209_제품소프트웨어패키징.pdf
7.54MB

 

 

노란색 : 출제될 확률이 높음. 개인적인 의견이니 믿지는 마세요

빨간색 : 실제 출제된 적이 있음

 

 


01. 제품소프트웨어 패키징

▶ 제품소프트웨어 패키징

개발 완료 제품을 고객에게 전달하기 위한 형태로 패키징하고, 매뉴얼을 작성하며, 버전 관리를 수행하는 능력

  • 고려사항
    • 시스템 환경
    • 직관적 UI
    • 관리 서비스
    • 안정적 배포

 

▶ 모듈/모듈화

모듈

설계에서 기능 단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위

모듈화

SW성능을 향상시키거나 시스템 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법

  • 모듈 간 결합도의 최소화
  • 모듈 내 요소들간의 응집도 최대화

 

▶ 소프트웨어 빌드

소스 코드 파일을 컴퓨터에서 실행할 수 있 는 제품 소프트웨어의 단위로 변환하는 과정&결과물

 

 

▶ 릴리즈 노트 ( Release Note )

고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서

특성 소프트웨어의 최근 변경 사항, 개선사항 및 버그 수정을 간결히 요약한다.

 

 

▶ 제품 소프트웨어 패키징 도구

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

  • 고려사항
    • 암호화/보안
    • 이기종 연동
    • 사용자 편의성
    • 적합한 암호화 알고리즘 사용

 

제품 소프트웨어 사용자 매뉴얼

사용자 측면에서 패키징 이후 설치, 제품 소프트웨어를 사용하는데 필요한 주요 내용을 기록한 문서

사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서

( 세부내용이 많아 시간이 남으면 모듈PDF 에서 찾아보길 바람 )

 

작권 관리 구성 요소

저작권 관리 흐름도

 

구성요소 설명
컨텐츠 제공자 콘텐츠를 제공하는 저작권자
콘텐츠 분배자 암호화된 콘텐츠 제공 ( 쇼핑몰 등)
패키저 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 기능
보안 컨테이너 원본 안전 유통을 위한 전자적 보안 장치
DRM 컨트롤러 배포된 컨텐츠의 이용 권한을 통제
클리어링 하우스 키관리 및 라이선스 발급 관리

 

▶ 패키징 도구 구성 요소

 

구성요소 설명
암호화 - 콘텐츠 및 라이선스를 암호화하고, 전자 서명을 할 수 있는 기술
- PKI, Symmetric/Asymmetric Encryption, DiGital Sinature
키 관리 - 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 (Centralized, Enveloping)
암호화 파일 생성 - 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
- Pre-packaging, On-the-fly Packaging
식별 기술 - 콘텐츠에 대한 식별 체계 표현 기술
- DOI, URI
저작권 표현 - 라이선스의 내용 표현 기술
- XrML/MPGE-21 REL, ODRL
정책 관리 - 라이선스 발급 및 사용에 대한 정책표현 및 관리기술
- XML, Contents Management System
크랙 방지 - 크랙에 의한 콘텐츠 사용 방지 기술
- Code Obfuscation, Kernel Debugger Detection, Module Certification
- Secure DB, Secure Time Management, Encryption
인증 - 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
- User/Device Authentication, SSO, DiGital Certificate

 

▶ 제품 소프트웨어 배포본

최종 완성 단계에서 사용자가 정상 사용할 수 있도록 공식적인 인증 절차를 통하여 사용자들에게 배포

 

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

형상 관리 파악

형상 관리 목적 : 작성된 패키지의 변경 내용을 관리하기 위함

이는 SW의 변화를 시간에 따라 기록하고 특정 시점의 버전을 다 시 꺼내올 수 있도록 관리하는 체계를 의미

 

형상 관리 중요성

  1. 제품 소프트웨어는 지속적으로 변경 → 개발 통제가 중요
  2. 관리가 잘 안되면 무절제한 변경 및 버그에 대한 추적 결여
  3. 관리가 잘 안되면 가시성의 결핍이 일어남

형상 관리 역할

  1. 이전 리비전이나 정보에 언제든지 접근 가능하여 배포 본 관리에 유용
  2. 불필요한 사용자의 소스 수정 제한
  3. 동일 프로젝트 여러 개발자 동시 수정 가능

 

▶ 제품 소프트웨어 버전 등록 순서도

add ⇒ check out ⇒ commit ⇒ update ⇒ diff

  1. add : 개발자가 신규로 어떤 파일을 저장소에 추가
  2. check out : 추가되었던 파일을 개발자가 인출
  3. commit : 개발자가 인출된 파일을 수정, 저장소에 commit하며 설명을 붙인다
  4. update : commit 이후 새로운 개발자가 자신의 작업 공간을 동기화
  5. diff : 새로운 개발자가 추가된 파일의 수정 기록을 보면서 기존 개발자가 추가한 파일과 이후 변경된 파일의 차이를 본다

 

▶ 제품 소프트웨어 버전 등록 관리 용어

  • 가져오기(import) : 버전 관리되지 않은 로컬 디렉토리 파일을 처음으로 저장소에 복사
  • 체크아웃(check out) : 저장소 파일 받기
  • 체크인(check in) : 저장소에 새로운 버전으로 갱신
  • 커밋 (commit) : 체크인시 이전 갱신사항이 있는 경우 충돌 알림, diff 도구 이용 수정
  • 저장소(repository) : 파일 현재버전과 변경 이력 정보를 저장하는 저장소

* 줄긋기 유형으로 나왔으므로 어떤 단어가 문제로 출제되어도 이상하지 않다

 

▶ 버전 관리 도구 유형

 

1. 공유 폴더 방식 ( RCS, SCSS )

  • 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사
  • 담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사하고 컴 파일하여 에러 확인과 정상 동작 여부 확인

 

2. 클라이언트/서버 방식 ( CVS, SVN )

  • 중앙에 버전 관리 시스템이 항시 동작
  • 서로 다른 개발자가 같은 파일을 작업했을 때 경고 출력

 

3. 분산 저장소 방식 ( Git, Bitkeeper )

  • 로컬 저장소/원격 저장소 구조
  • 중앙 저장소에서 로컬에 복사(clone)한 순간 자신만의 로컬 저장소의 생성
  • 개발 완료 파일을 로컬 저장소에 commit 이후 다시 원격 저장소에 반영 (push)삼각형 버튼 Click

 

▶ 버전 관리 도구 유형별 분류

버전 관리 도구 소개 특징
CVS - 서버클라이언트로 구성, 다수의 인원동시에 범용적인 운영체제로 접근 가능하여 버전 관리를 가능케 함
- Client가 이클립스에 내장
SVN GNU의 버전 관리 시스템으로 CVS의 장점은 이어받고 단점은 개선
RCS - 소스 파일의 수정을 한 사람만으로 제한
- 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일을 잠금하는 방식 으로 버전 컨트롤을 수행
Bitkeeper - SVN과 비슷한 중앙 통제 방식의 버전컨트롤 툴
- 대규모 프로젝트에서 빠른 속도를 내도록 개발되었다.
Git - 속도에 중점을 둔 분산형 버전 관리 시스템(DVCS)이며, 대형 프로젝트에서 효과적
- Commit로컬 저장소에서 이루어 지고 push라는 동작으로 원격 저장소에 반영
- 받을 때도 Pull 또는 Fetch로 서버에서 변경된 내역을 받아 올 수 있음
Clear Case - IBM에서 제작
- 복수 서버, 복수 클라이언트 구조
- 확장성