자격증/정보처리기사 필기

[정보처리기사 필기] SW 개발 : 애플리케이션 패키징

Yuco 2023. 1. 27. 18:44

 

정보처리기사 필기 2과목 - 소프트웨어 개발 : 애플리케이션 패키징(제품 소프트웨어 패키징)

 

[1] 제품 소프트웨어 패키징의 개요

1. 개요

- 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 메뉴얼을 작성하며, 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전 관리를 수행하는 것 

 

2. 사용자 관점의 패키징 고려사항

* 고객 편의성을 위해 사용자 환경을 확인하여 다음과 같이 여러 가지 케이스를 사전에 고려

 

- 운영체제, CPU, 메모리(사용자의 시스템 환경) 등에 필요한 최소 환경을 정의

- 사용자가 직관적으로 확인할 수 있는 UI를 제공하고, 매뉴얼과 일치시켜 패키징 작업

- 하드웨어와 통합 적용될 수 있도록 Managed Service 형태로 제공

- 개발자가 아닌 사용자 중심으로 다양한 사용자의 요구사항 반영

 

 

[2] 제품 소프트웨어 패키징을 위한 모듈 빌드

1. 제품 소프트웨어의 모듈 및 패키징

- 제품 소프트웨어는 모듈의 개념을 정확하게 이입하고, 이에 맞는 기능 단위들로 패키징 하는 게 중요

- 모듈화를 할 경우 패키징 배포 시 제품 소프트웨어의 성능을 향상시킬 수도 있고, 배포 전 시험 및 수정 등의 작업 진행에도 모듈 단위로 모든 것을 분류하여 수행 가능

 

1) 모듈

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

 

2) 모듈화

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

- 모듈 간 결합도의 최소화 / 모듈 내 응집도의 최대화가 목적 

 

3) 모듈화의 장점

- 프로그램의 효율적인 관리 및 성능 향상

- 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소

- 소프트웨어 시험, 통합, 수정 시 용이성 제공

- 기능의 분리가 가능하고 인터페이스가 단순

- 오류의 파급 효과를 최소화

- 모듈의 재사용 가능으로 개발과 유지보수가 용이 

 

 

2. 소프트웨어 빌드 (Software Bulid)

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

- 소스코드 파일이 실행코드로 변환되는 컴파일 과정을 핵심으로 수행

 

 

3. 제품 소프트웨어를 위한 빌드 자동화 도구

- 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리(Preprocessing), 컴파일(Complie) 등의 작업들을 수행하는 소프트웨어

 

1) Ant (Another Neat Tool)

- 아파치 소프트웨어 재단에서 개발한 소프트웨어

- 자바 프로젝트의 공식적인 빌드 자동화 도구

- XML 기반의 빌드 스크립트를 사용

- 정해진 규칙이나 표준이 없어 개발자가 모든 것을 정의

- 스크립트의 재사용이 어려움

 

2) Maven

- 아파치 소프트웨어 재단에서 Ant의 대안으로 개발

- 규칙이나 표준이 존재해 예외 사항만 기록됨

- 컴파일과 빌드를 동시에 수행할 수 있음

- 의존성(Dependency)을 설정하여 라이브러리를 관리

 

3) Gradle  ⭐

- 기존의 Ant와 Maven을 보완해 개발된 빌드 자동화 도구

- 안드로이드 스튜디오(안드로이드 앱 개발)의 공식 빌드 도구

- Maven과 동일하게 의존성 활용

- 그루비(Groovy) 기반의 빌드 스크립트 사용

- 플러그인을 설정하면, JAVA, C/C++, Python 등의 언어도 빌드 가능

- 실행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행

- 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능 지원 ▶ 빌드의 속도 향상

 

4) Jenkins 

- JAVA 기반의 오픈 소스 형태로 가장 많이 사용되는 빌드 자동화 도구

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

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

- 친숙한 Web GUI 제공

- 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트 가능

 

[3] 모듈 패키징 작업 수행 순서

기능 식별 ▶ 모듈화 ▶ 빌드 진행 ▶ 사용자 환경 분석 ▶ 패키징 적용  시험 ▶ 패키징 변경 개선 ▶ 배포

 

[4] 제품 소프트웨어 패키징 도구 활용 시 고려사항

- 패키징 시 사용자에게 배포되는 SW이므로 내부 콘텐츠에 대한 암호화 및  보안 고려

- 사용자 편의성을 위한 복잡성 및 비효율성 문제 고려 (효율적 적용 고려)

- 제품 SW 종류에 적합한 암호화 알고리즘 적용하여 배포시 범용성에 지장이 없도록 고려

- 다양한 이기종 콘텐츠 및 단말기 간 DRM 연동을 고려