- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 일반 IzPack으로 GUI 설치 프로그램 만들기
2015.02.15 15:47
IzPack으로 GUI 설치 프로그램 만들기
| 제목 | 사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 분류 | Etc | 조회수 | 2109 | |||||||||||
| 작성일자 | 2009.01.21 | 출처 | 한국 IBM | |||||||||||
| 첨부파일 | 작성자 | dbguide | ||||||||||||
|
사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기 IzPack으로 GUI 설치 프로그램 만들기
소프트웨어 설치는 많은 사용자에게 보통 고통스러운 일에 해당합니다. 여러분이 생성한 설치 패키지(소프트웨어 개발의 "마지막 일정")는 사용자에게 채택되거나 쓰레기통에 버려지는 갈림길에서 예전보다 나아질 수 있습니다. 이번 사람을 위한 자동화 기사에서, 자동화 전문가 Paul Duvall은 무료로 이용할 수 있는 오픈 소스 IzPack 도구를 사용하여 마법사 기반 설치 프로그램을 만들어 여러분의 소프트웨어를 사용자가 간단하게 설치할 수 있게 하는 방법을 살펴보겠습니다.
내 경험을 전반적으로 볼 때, 나는 소프트웨어 개발 전체 생명 주기에 참여해왔다. 요구 사항 도출, 설계, 개발 그리고 테스트뿐만 아니라 배포, 빌드 관리, 문서화, 설치 같은 활동에도 참여했다. 요즘 애자일을 많이 채택하면서 이 부류가 좀 더 많아졌고 일반화되었다. 하지만 내가 참여했던 애자일 프로젝트에서 효율적인 배포와 설치가 항상 최우선 과제는 아니었다. 이것이 바로 아이러니다. 잠재적인 고객이 여러분의 소프트웨어를 쉽게 사용할 수 없거나 아예 사용할 수 없다면, 여러분은 그들을 잃을 것이기 때문이다. 여러분의 소프트웨어를 간단하게 설치하는 방법을 제공하는 것은 고객을 유지하고 더 끌어오는데 정말로 중요하다.
나는 수년에 걸쳐 여러 설치 프로그램 도구를 사용해왔다. 대규모 프로젝트에서 내 팀은 올해 초에 일을 시작했고, 엔터프라이즈 수준의 설치 프로그램을 만들어 달라는 매우 상세한 요구사항을 만족시켜야 했다. 우리는 Antigen, AntInstaller, Denova, install4j, InstallAnywhere, IzPack, NSIS와 여러 가지를 살펴봤다. 우리가 가진 요구사항을 바탕으로 다음과 같은 이유로 IzPack을 사용하기로 결정했다.
IzPack은 2001년부터 사용할 수 있었다. 마법사 기반 설치 프로그램을 만드는 여러 기능을 제공한다. 본 기사에서, 나는 이 도구를 사용하여 설치 프로그램을 만드는 방법을 보여줄 것이다. 패널을 정의하고, 검증기 스크립트를 작성하고, 리소스를 설정하는 등의 예제를 제공하겠다.
IzPack 다운로드와 설치는 매우 간단하다. 별로 놀랍지 않게도 IzPack은 IzPack을 사용해 컴퓨터에 IzPack을 설치한다. IzPack 웹 사이트를 참조하여 IzPack JAR 파일을 다운로드하라.
자바 런타임 환경(JRE)을 실행하여 IzPack을 설치해야 한다. 커맨드 창을 열고 다음을 입력한다. java -jar IzPack-install-4.1.0.jar 적당한 버전으로 수정해 입력하라.
마법사 기반 설치 프로그램이 어디에 IzPack을 설치하고 싶은지와 같은 몇 가지 기본 설치 정보를 요구할 것이다. 일단 IzPack을 설치하면, 예제 설치 프로그램을 가지고 실행해보는 것은 쉽다.
IzPack은 완전한 예제 설치 스크립트를 제공한다. 그것을 기반으로 사용하여 설치 프로그램을 작성하는 것이 설치 프로그램을 가장 빠르게 만드는 방법이다. IzPack을 설치한 최상위 디렉터리에는 하위 디렉터리가 몇 개 있다. bin, doc, lib 등이다. 예제 설치 프로그램은 sample이라는 하위 폴더에 있다. 그 안에 설치 프로그램을 만들 때 필요한 모든 것이 들어있다. 나는 이 예제 디렉터리를 복사해 원래 내용을 변경하지 않고 내용을 수정해볼 수 있게 했다. 그림 1은 예제 디렉터리의 내용을 보여준다. 그림 1. IzPack 파일 목록
그림 1에 있는 각각의 파일에 대한 설명은 다음과 같다.
다음으로 install.xml 스크립트를 살펴보면서 IzPack을 좀 더 자세히 들여다 보겠다.
리소스는 스크립트, 이미지, 라이선스, 설치 프로그램을 구성하는 여러 파일을 정의한다. 나는 install.xml 스크립트에 <resources> XML 엘리먼트를 정의했다. <resources> 엘리먼트 안에 내 설치 프로그램이 필요로 하는 여러 파일을 정의할 수 있다. Listing 1을 보자. Listing 1. 리소스 파일을 IzPack install.xml에 정의하기 IzPack의 리소스를 설치 프로그램이 필요로 하는 모든 파일을 정의한 "부품표(bill of material)"의 일종으로 생각할 수 있다.
패널은 사용자가 설치 마법사 각 단계에서 보는 것이다. IzPack은 여러 종류의 패널을 제공한다. 따라서 그것들 중에서 필요로 하는 것을 기반으로 수정하면 된다. 그림 2에서 나는 IzPack의 HelloPanel 을 수정하여 몇 가지 기본 정보를 사용자에게 제공했다.
Listing 2. 설치 프로그램에서 보여줄 패널 정의하기 아마도 가장 자주 사용할 패널 타입은 UserInputPanel 일 것이다. 이 패널 템플릿을 사용하여 사용자가 특정 주요 정보를 입력하게 할 수 있다. 여기에는 사용자의 연락처 정보, 인증 정보, 디렉터리 위치 등을 포함할 수 있을 것이다. 사용자에게 그들의 특정 환경에 따라 몇 가지 입력 패널을 제공해야 할지도 모른다. 우리 팀의 경우 사용자가 데이터베이스에 접근하여 여러 JBoss 컨테이너를 설정할 필요가 있었기 때문이다. 따라서 사용자에게 사이트 관련 정보를 보여주는 패널을 사용했다.
Listing 3은 userInputSpec.xml에 있는 예제로, Listing 1 에서 리소스로 정의했다. 이 예제에서는 사용자 관련 정보를 수집하여 특정 DB에 접근한다. Listing 3. 설치 프로그램의 특정 패널의 속성 정의하기 패널의 order 속성은 0 으로 설정했다. 이는 Listing 2 의 패널 집합에서 정의한 UserInputPanel 의 숫자와 일치한다.
user-input 패널에서, 사용자를 위한 정보 텍스트를 정의할 수 있다. 또한, NotEmptyValidator 를 추가하여 사용자가 유효한 값을 입력하도록 했다. 이렇게 하면 사용자가 필요한 정보를 입력하지 않아 설치 에러가 발생하는 것을 막을 수 있다. Listing 3 에 있는 UserInputPanel 은 그림 3처럼 보일 것이다. 그림 3. 사용자 입력 패널
사용자는 보통 얼마나 쉽게 정보를 입력하고 유용한 메시지를 보여주는지에 따라 설치 프로그램의 효율성을 판단할 것이다. 따라서 사용자가 쉽게 사용할 수 있도록 각별한 주의를 기울여야 한다.
IzPack은 개발 팀이 구현한 소프트웨어 실제 설치 정도를 나타내는 모든 컴포넌트를 가리키는 데 팩(pack) 이라는 용어를 사용한다. 모든 다른 IzPack 구성요소(패널, 사용자 입력, 검증기 등)는 이 팩을 실행하기 위한 준비물이다. 프로젝트에서 우리는 팩을 사용하여 몇 가지 일을 했다. 앤트에서 미리 작성해둔 ZIP 설치 배포판을 다운로드하고 그것을 실행한다. 이 과정은 앞서 커맨드 라인에서 실행하던 것을 재사용하는 것이다. Listing 4는 <pack> 을 정의한다. Listing 4. install.xml에 <pack> 정의하기
| ||||||||||||||

