본문 바로가기

정보처리기사

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

  1. 소프트웨어 패키징
    1. 소프트웨어 패키징의 개요
      1. 소프트웨어 패키징 (Software Packaging): 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것
      2. 패키징 시 고려 사항
      3. 패키징 작업 순서: 기능 식별 -> 모듈화 -> 빌드 진행 -> 사용자 환경 분석 -> 패키징 및 적용 시험 -> 패키징 변경 개선 -> 배포
    2. 릴리즈 노트 작성
      1. 릴리즈 노트 (Release Note) 의 개요
        1. 릴리즈 노트: 소프트웨어 개발 과정에서 정리된 릴리즈 (Release) 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서
        2. 릴리즈 노트를 통해 테스트 진행 방법에 대한 결과와 소프트웨어 사양에 대한 개발됨의 정확한 준수 여부를 확인할 수 있음
        3. 소프트웨어에 포함된 전체 기능, 서비스의 내용, 개선 사항 등을 사용자와 공유할 수 있음
      2. 릴리즈 노트 작성 항목: Header (머릿말), 개요, 목적, 문제 요약, 재현 항목, 수정 / 개선 내용, 사용자 영향도, SW 지원 영향도, 노트, 면책, 연락처 등
    3. 릴리즈 노트 추가 버전 작성 시 고려 사항
      1. 소프트웨어의 테스트 과정에서 베타버전이 출시되거나 긴급한 버그 수정, 업그레이드와 같은 자체 기능 향상, 사용자 요청 등의 특수한 상황이 발생하는 경우 릴리즈 노트를 추가로 작성함
      2. 중대한 오류가 발생하여 긴급하게 수정하는 경우에는 릴리즈 버전을 출시하고 버그 번호를 포함한 모든 수정된 내용을 담아 릴리즈 노트를 작성함
    4. 릴리즈 노트 작성 순서: 모듈 식별 -> 릴리즈 정보 확인 -> 릴리즈 노트 개요 작성 -> 영향도 체크 -> 정식 릴리즈 노트 작성 -> 추가 개선 항목 식별
  2. 디지털 저작권 관리
    1. 저작권의 개요
      1. 저작권: 소설, 시, 논문, 강연, 연술, 음악, 연극, 무용, 회화, 서예, 건축물, 사진, 영상, 지도, 도표, 컴퓨터 프로그램 저작물 등에 대하여 창작자가 가지는 배타적 독점적 권리로, 타인의 침해를 받지 않을 고유한 권한
    2. 디지털 저작권 관리 (DRM: Digital Right Management)의 개요
      1. 디지털 저작권 관리: 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술
    3. 디지털 저작권 관리의 흐름 및 구성 요소: 클리어링 하우스 (Clearing House), 콘텐츠 제공자 (Contents Provider), 패키저 (Packager), 콘텐츠 분배자 (Contents Distributor), 콘텐츠 소비자 (Customer), DRM 컨트롤러 (DRM Controller), 보안 컨테이너 (Security Container)
    4. 디지털 저작권 관리의 기술 요소: 암호화 (Encryption), 키 관리 (Key Management), 암호화 파일 생성, 식별 기술 (Identification), 저작권 표현 (Right Expression), 정책 관리 (Policy Management), 크랙 방지 (Tamper Resistance), 인증 (Authentication)
  3. 소프트웨어 형상 관리
    1. 소프트웨어 버전 등록
      1. 소프트웨어 패키징의 형상 관리
        1. 형상 관리 (SCM: Software Configuration Management): 개발 과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동
        2. 대표적인 형상 관리 도구에는 Git, SVN, CVS 등이 있음
      2. 형상 관리 기능: 형상 식별, 버전 제어, 형상 통제, 형상 감사, 형상 기록
      3. 소프트웨어의 버전 등록 관련 주요 기능: 저장소 (Repository), 가져오기 (Import), 체크아웃 (Check-Out), 체크인 (Check-In), 커밋 (Commit), 동기화 (Update)
      4. 소프트웨어 버전 등록 과정: 가져오기 (Import) -> 인출 (Check-Out) -> 예치 (Commit) -> 동기화 (Update) -> 차이 (Diff)
    2. 소프트웨어 버전 관리 도구
      1. 공유 폴더 방식
        1. 공유 폴더 방식: 버전 관리 자료가 지역 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
        2. 종류: SCCS, RCS, PVCS, QVCS 등
      2. 클라이언트 / 서버 방식
        1. 클라이언트 / 서버 방식: 버전 관리 자료가 서버에 저장되어 관리되는 방식
        2. 종류: CVS, SVN (Subversino), CVSNT, Clear Case, CMVC, Perforce 등
      3. 분산 저장소 바익
        1. 분산 저장소 방식: 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 지역 저장소에 함께 저장되어 관리되는 방식
        2. 종류: Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM 등
      4. Subverseion (서브버전, SVN)
        1. Subversion: CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 2000년에 발표한 자유 소프트웨어 버전 관리 시스템
        2. Subversion의 주요 명령어: add, commit, update, checkout, lock / unlock, import, export, info, diff, merge 등
      5. Git (깃)
        1. Git: 소규모 프로젝트에서 초대형 프로젝트에 이르기까지 모든 것을 신속하고 효율적으로 처리하도록 설계된 자유 및 오픈 소스 분산 버전 제어 시스템
        2. Git의 주요 명령어: add, commit, branch, checkout, merge, init, remote add, push, fetch, clone
    3. 빌드 자동화 두고
      1. 빌드 자동화 도구
        1. 빌드 자동화 도구: 빌드를 포함하여 테스트 및 배포를 자동화하는 도구 종류: SCCS, RCS, PVCS, QVCS 등
        2. 대표적인 예: Ant, Make, Maven, Gradle, Jenkins 등
      2. Jenkins: JAVA 기반의 오픈 소스 형태로, 서블릿 컨테이너에서 실행되는 서버 기반 도구
      3. Gradle: Groovy를 기반으로 한 오픈 소스 형태의 자동화 두고
      4. 소프트웨어 설치 매뉴얼 작성
        1. 소프트웨어 설치 매뉴얼: 개발 초기에서부터 적용된 기준이나 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 설명서와 안내서
        2. 설치 매뉴얼 작성 순서: 기능 식별 -> UI 분류 -> 설치 파일 / 백업 파일 확인 -> Uninstall 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용
      5. 소프트웨어 사용자 매뉴얼 작성
        1. 소프트웨어 사용자 매뉴얼: 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서
        2. 사용자 매뉴얼 작성 순서: 기능 식별 -> 사용자 화면 분류 -> 사용자 환경 파일 확인 -> 초기화 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용