정보처리기사

[정보처리기사] 소프트웨어 구축 (7)

hminor 2023. 7. 6. 01:39

소프트웨어 유지보수

  • 소프트웨어 유지보수
    • 개념
      • 개발 완료 시점부터 폐기될 때까지, 지속적으로 수행하는 작업
      • 소프트웨어의 수명을 연장하기 위한 활동
      • 소프트웨어 생명주기 동안 가장 많은 비용이 소모되는 단계
    • 유지보수의 구분
      • 수정 보수(Corrective Maintenance)
        • 소프트웨어 구축 시 테스트 단계에 미처 발견하지 못한 잠재적인 오류를 찾아 수정한다.
      • 적응 보수(Adaptive Maintenance)
        • 운영체제, 하드웨어와 같은 프로그램 환경변화에 맞추기 위해 수행하는 유지보수
        • 해당 시스템을 다른 곳으로 이동시킬 수도 있기 때문에
      • 향상 보수(Perfective Maintenance)
        • 기존 기능과 다른 새로운 기능을 추가하거나 기존 기능을 개선
        • 소프트웨어 확장 및 리모델링
        • 유지보수 활동 중 가장 많은 자원이 소모되는 활동
      • 예방 보수(Preventive Maintenance)
        • 장래에 유지보수성 또는 신뢰성을 보장하기 위해 선제적으로 하는 유지보수
        • 소프트웨어 재공학과 관련된 유지보수(리펙토링)
    • 유지보수 관련 용어
      • 레거시 시스템
      • 외계인 코드
      • 스파게티 코드

제품 소프트웨어 패키징

  • 제품 품질 국제 표준
    • 개념소프트웨어 개발 공정 각 단계에서 산출되는 제품이 사용자 요구를 만족하는지 검증하기 위한 국제 표준
  • 소프트웨어 품질 관련 국제 표준
    • ISO/IEC 9126품질을 보는 국제 표준
      • 기능성
      • 신뢰성
      • 사용성
      • 효율성
      • 유지보수성
      • 이식성
    • ISO/IEC 14598 → 소프트웨어 평가 프로세스에 대한 표준을 규정
      • 반복성: 동일 평가자가 동일 사양, 동일한 결과
      • 재현성: 다른 평가자가 동일 사양, 비슷한 결과
      • 공정성: 평가가 특정 결과에 편향되지 않아야 한다.
      • 객관성: 평가 결과가 평가자의 감정, 의견에 영향을 받지 않아야 한다.
    • ISO/IEC 12119 → 패키지 SW 품질 요구사항 및 테스트 (테스트를 하는게 중요)
    • ISO/IEC 25000
  • 프로세스 품질 국제 표준
    • 개념
      • 소프트웨어 개발 프로제스 등 소프트웨어 관련 업체의 프로세스 관리능력을 평가하고 프로세스를 개선하는데 활용할 수 있는 표준
    • 프로세스 품질 국제 표준
      • ISO/IEC 9001: 조직의 품질 경영 및 품질 보증
      • ISO/IEC 12207: 소프트웨어 개발 관련 생명주기
        • 기본 생명주기 프로세스
          • SDLC
          • 획득, 공급, 개발, 운영, 유지보수
        • 지원 생명주기 프로세스
          • 개발에 도움을 주는 것
          • 문서화, 형상관리, 품질보증, 검증, 확인, 합동검토, 감사, 문제해결
        • 조직 생명주기 프로세스
          • 개발 후 받을 것
          • 관리, 기반구조, 개선, 교육훈련
      • ISO/IEC 15504(SPICE): 소프트웨어 개발 관련해 선정된 프로세스 평가 모델
        • 유럽에서 만듦
        • SPICE 프로세스 능력 수준
          • 0단계(불안정): 미구현 또는 목표 미달성
          • 1단계(수행): 프로세스 수행 및 목적 달성
          • 2단계(관리): 프로세스 수행 계획 및 관리
          • 3단계(확립): 표준 프로세스의 사용
          • 4단계(예측): 프로세스의 정량적 이해 및 통제
          • 5단계(최적화): 프로세스의 지속적인 개선
      • CMM: 조직의 소프트웨어 개발 관련 전체 프로세스 평가
        • 1수준(초기 단계): 관리가 안되는 단계
        • 2수준(반복 단계): 프로세스의 반복
        • 3수준(정의 단계): 프로젝트 관리
        • 4수준(관리 단계): 정량적 관리
        • 5수준(최적화 단계): 지속적인 개선
      • CMMI: 다양한 CMM 모델을 통합한 프로세스 개선 프레임워크
        • 1수준(초기 단계): 프로세스가 없는 상태
        • 2수준(관리 단계): 기본적인 프로세스
        • 3수준(정의 단계): 표준 프로세스
        • 4수준(정량적 관리 단계): 정량적 관리
        • 5수준(최적화 단계): 지속적인 개선

애플리케이션 패키징

  • 애플리케이션 패키징의 개념
    • 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하는 활동
  • 애플리케이션 패키징의 특징
    • 개발자가 아닌 사용자 중심으로 진행
  • 애플리케이션 배포 도구
    • 애플리케이션 배포의 개념
      • 최종 사용자에게 소프트웨어를 전달하는 과정
    • 애플리케이션 배포 도구 활용 시 고려사항
      • 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려
      • 추가로 다양한 이기종 연동을 고려
      • 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려
      • 제품 소프트웨어의 종류에 적합한 암호화 알고리즘을 적용
    • CI/CD
      • CD(Continuous Integration)
        • 지송적인 통합
        • 여러 개발자들의 새로운 코드 변경 사항을 정기적으로 공유 레포지토리에 통합하는 것
      • CD(Continuous Delivery & Continuous Deployment)
        • 지속적인 서비스 제공 혹은 지속적인 배포
        • Continuous Delivery (지속적 제공)
          • 빌드와 테스트를 거쳐 공유 레포지토리로 업로드하는 것
        • Continuous Deployment(지속적 배포)
          • 사용자가 사용할 수 있는 환경까지 배포하는 것
  • 릴리즈 노트
    • 개념
      • 소프트웨어 제품과 함께 배포되는 문서들을 말한다.
  • DRM
    • DRM(Digital Right Management)의 개념
      • 각종 디지털 콘텐츠의 불법적인 사용을 제한하고, 승인된 사용자의 콘텐츠 사용저작권 소유자의 의도에 따라 제어하는 기술
    • DRM의 구성 및 흐름
      • 콘텐츠 제공자
        • 패키저
        • 콘텐츠
        • 메타 데이터
      • 클리어링 하우스
        • 권한정책
        • 라이선스
      • 콘텐츠 분배자
        • 유통 서비스
      • 콘텐츠 소비자
        • DRM 컨트롤러
        • 보안 컨테이너
    • 권리표현 종류
      • Render Permission: 재생, 이용
      • Transport Permission: 양도
      • Derivative Permission: 변형
    • 저작권 보호 기술
      • 워터마깅
        • 불법 복제 방지
        • 저작권 정보
        • 최초 저작 시점
        • 불법 유통에 취약
      • 핑거 프린팅
        • 불버 유통 방지
        • 저작권 정보 + 구매자
        • 구매시점마다
        • 공모 공격에 취약
    • DRM 구성요소
      • 암호화
      • 키 관리
      • 암호화 파일 생성
      • 식별 기술
      • 저작권 표현
      • 정책 관리
      • 크랙 방지
      • 인증