[정보처리기사] 실기 정리 - 12과목 (1)

peach·2020년 10월 11일
4

정보처리기사

목록 보기
32/34
post-thumbnail

🧀 제품 소프트웨어 패키징


1. 개념

개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 과정


2. 특성

(1) 전체 내용을 포함

설치와 사용에 필요한 과정 및 환경 등의 전체 내용을 포함하는 매뉴얼을 작성

(2) 버전 관리와 릴리즈 노트

제품 소프트웨어에 대한 패치 개발과 업그레이드를 수행
신규/변경 이력을 확인하고 버전 관리와 릴리즈 노트를 통해 지속적으로 관리

(3) 고객 중심

개발자가 아닌 고객 편의성 중심으로 진행

(4) 모듈화

신규 및 변경 개발 소스를 식별하고 모듈화하여 상용 제품으로 패키징


3. 모듈 빌드

(1) 모듈 및 패키징

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

  • 모듈화 : 모듈을 이용해 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하게 하는 소프트웨어 설계 기법

    • 개발 편의성 : 효율적 관리, 개발 및 유지보수 용이, 오류 파급 효과 최소화
    • 복잡성 감소 : 기능 분리 가능, 단순한 인터페이스, 성능 향상
  • 패키징 : 모듈의 개념을 정확히 파악한 후 기능 단위로 패키징

(2) 빌드

  • 빌드 : 소스 코드 파일을 컴퓨터에서 실행할 수 있는 제품 소프트웨어의 단위로 변환하는 과정
  • 빌드 도구 : Ant, Make, Maven, Gradle

3. 사용자 중심의 패키징

(1) 고려 사항

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

(2) 작업 수행 프로세스

  • 기능 식별
    기능 수행을 위한 입출력 데이터 정의, 전체적인 기능 정의 및 데이터 흐름 확인, 함수에 대한 상세 정의

  • 모듈화
    기능 단위 및 서비스 분류, 기능의 공유와 재활용 분류, 모듈 간 결합도와 응집도 식별

  • 빌드 진행
    개발 소스 및 컴파일 결과물 준비, 정상 기능 단위 및 서비스 분류, 빌드 도구 확인 및 정상 수행, 도구의 다양한 기능 확인

  • 사용자 환경 분석
    최소 사용자 환경 사전 정의, 사용자 환경 테스트

  • 패키징 적용 시험
    사용자 환경에서의 패키징 적용 시험, UI 및 시스템 편의성 체크

  • 패키징 변경 개선
    패키징 적용 시 변경 부분 도출, 서비스 가능한 수준의 개선, 개선 버전 재배포



🧀 제품 릴리즈 노트


1. 개념

조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서


2. 중요성

(1) 정보 제공

사용자에게 더 자세하고 확실한 정보를 제공
기본적으로 전체적인 제품의 수행 기능 및 서비스의 변화를 공유

(2) 관리 용이

전체적인 버전 관리 및 릴리즈 정보를 체계적으로 관리


3. 작성 시 고려 사항

  • 개발팀에서 직접 작성
  • 현재 시제로 명확하고 정확하고 완전한 정보를 제공
  • 개발자와 테스터가 협업
  • 배포 시점부터 신규 소스, 빌드 등 이력을 정확하게 관리

(1) 작성 항목

  • 헤더 : 문서 이름, 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등
  • 개요 : 제품 및 변경에 대한 전반적 개요
  • 목적 : 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적에 대한 개요
  • 이슈 요약 : 버그의 간단한 설명, 릴리즈 추가 항목 요약
  • 재현 항목 : 버그 발견에 따른 재현 단계 기술
  • 수정/개선 내용 : 수정/개선의 간단한 설명
  • 사용자 영향도 : 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램 상의 영향도 기술
  • 소프트웨어 지원 영향도 : 버전 변경에 따른 소프트웨어의 지원 프로세스 및 영향도 기술
  • 노트 : 소프트웨어 및 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드 항목 메모
  • 면책 조항 : 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지 등에 대한 고지 사항
  • 연락 정보 : 사용자 지원 및 문의에 관한 연락처 정보

(2) 예외 케이스

  • 테스트 단계에서의 베타 버전 출시
    차기 버전이나 신규 버전의 베타 버전 테스트 단계에서도 릴리즈 버전으로 정보를 체크하여 릴리즈 노트 작성

  • 긴급 버그 수정
    모든 수정된 버그를 기술하여 릴리즈 노트 작성

  • 자체 기능 향상을 포함한 모든 추가 기능의 향상
    자체적 기능 개선을 완료했을 때 정식으로 릴리즈 버전 추가 및 신규 릴리즈 노트 작성

  • 사용자 요청에 따른 특이한 케이스 발생
    사용자의 의견이 접수될 경우 별도 버전으로 새로 추가하여 릴리즈 노트 작성

(3) 작성 프로세스

  • 모듈 식별
  • 릴리즈 정보 확인
  • 릴리즈 노트 개요 작성
  • 영향도 체크
  • 정식 릴리즈 노트 작성
  • 추가 개선 항목 식별



🧀 패키징 도구를 활용한 설치 및 배포


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

(1) 개념

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

(2) 활용 시 고려 사항

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

2. 저작권 보호

(1) 저작권

창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한

(2) 저작권 보호 기술

  • 개념
    복제가 용이한 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법
  • 특성
    • 콘텐츠 복제 제한적 허용
    • 종량제
    • 암호화/보안 기능
  • 필요성
    무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 특성을 가지는 상용 배포된 소프트웨어의 원작자에 대한 권리 보호자가 필요함

3. 디지털 저작권 관리 (DRM)

(1) 기능

중앙의 클리어링 하우스에서 콘텐츠 제공자, 분배자, 소비자 간의 패키징 배포 및 키 관리, 라이선스 발급 관리를 수행

(2) 구성요소

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

4. 암호화/보안 기능 중심의 패키징 도구 구성요소

(1) 암호화 (Encryption)

일반 텍스트, 콘텐츠, 라이선스 등의 암호화 및 전자서명에 사용하는 기술

  • 공개 키 기반 구조(PKI) : 공개 키 암호 방식 기반으로 디지털 인증서를 활용하는 것을 총칭하는 암호 기술

  • 대칭 및 비대칭 암호화 : 암호화와 해독을 위해 대칭 암호화는 동일한 키를 사용하고 비대칭 암호화는 다른 키를 사용

  • 전자서명 : 서명자를 확인하고 서명자가 전자 문서에 서명했다는 사실을 나타내기 위해 특정 전자 문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보

(2) 키 관리 (Key Management)

콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 (중앙 집중형/분산형)

(3) 식별 기술 (Identification)

콘텐츠에 대한 식별 체계 표현 기술

  • DOI : 디지털 저작물에 특정 번호를 부여하는 일종의 바코드 시스템

  • URI : 인터넷 자원을 나타내는 유일한 주소

(4) 저작권 표현 (Right Expression)

라이선스의 내용 표현 기술

  • XrML : 디지털 콘텐츠 및 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어

  • MPEG-21 : 멀티미디어 관련 요소 기술들이 통일된 형태로 상호 운용성을 보장하는 멀티미디어 표준 규격

(5) 암호화 파일 생성 (Packager)

콘텐츠의 암호화를 통해 콘텐츠를 보호하는 기술

  • Pre-Packaging : 콘텐츠를 등록하자마자 암호화하는 방법

  • On-the-fly Packaging : 사용자가 콘텐츠를 요청할 때 암호화하는 방법

(6) 정책 관리 (Policy Management)

라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술

  • XML : 다른 특수 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 다목적 언어

  • CMS : 다양한 미디어 포맷에 따라 각종 콘텐츠의 전 공급 과정을 관리하는 기술

(7) 크랙 방지 (Tamper Resistance)

크랙에 의한 콘텐츠 사용 방지 기술

  • 코드 난독화 : 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술

  • Secure DB : 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 기술

(8) 인증 (Authentication)

라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

  • SSO : 한 번의 시스템 인증을 통해 여러 정보 시스템에 접근할 수 있는 통합 로그인 기술

5. 배포 도구를 활용한 배포 프로세스

  • 빌드 내용 식별
  • 패키징 도구 식별
  • DRM 흐름을 확인하여 패키징 수행
  • 패키징 도구 설치
  • 배포 작업
  • 정상 배포 확인




🐭 참고문헌

  • NCS 정보처리기술사 연구회. (2020). 수제비 정보처리기사 실기 (2판). 건기원.

0개의 댓글