개발 지원 도구 / 소프트웨어 패키징

2023. 2. 15. 19:53정처기 필기/2과목 - 소프트웨어 개발

개발 지원 도구

1. 통합 개발 환경 (IDE : Integerated Development Environment)

- 개발에 필요한 환경을 하나의 인터페이스로 통합해 제공하는 것 (이클립스, 인텔리제이, 비주얼 스튜디오, 엑스 코드 등)

 

2. 빌드 자동화 도구

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

 

Ant (Another Neat Tool)

소프트웨어 빌드 프로세스를 자동화하는 소프트웨어 도구

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

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

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

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

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

 

Maven

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

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

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

의존성을 설정하여 라이브러리를 관리

 

Gradle

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

안드로이드 스튜디오의 공식 빌드 도구

Maven과 동일하게 의존성 활용

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

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

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

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

 

Jenkins

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

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

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

친숙한 Web GUI 제공

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

 

3. 기타 협업 도구

일정 관리 도구 : 구글 캘린더

프로젝트 관리 도구 : 트렐로(Trello), 지라(Jira)

정보 공유 및 커뮤니케이션 도구 : 슬랙, 잔디, 태스크월드

디자인 도구 : 스케치, 제플린

아이디어 공유 도구 : 에버노트

형상 관리 도구 : 깃허브

 


소프트웨어 패키징

1. 개요

모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것

 

2. 고려사항

- 운영체제(OS), CPU, 메모리 등에 필요한 최소 환경을 정의

- 하드웨어와 함께 관리될 수 있도록 Managed Service형태로 제공

- 다양한 사용자의 요구사항 반영

3. 패키징 작업 순서

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

# 식모빌 환패패배

 

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

- 패키징 시 사용자에게 배포되는 SW이므로 보안 고려

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

- 제품 SW종류에 적합한 암호화 알고리즘 적용

- 다양한 기종 연동 고려