모든 플랫폼에서의 설치 프로그램 표준 - 인스톨쉴드 프로페셔널 멀티 플랫폼 4.0

일반입력 :2001/03/08 00:00

최원혁

모든 프로그래밍이 끝나 하나의 프로그램이 완성되면 이제 본격적으로 그동안 제작한 프로그램을 하나로 묶어 설치 프로그램을 만들게 된다..

사용자는 설치 프로그램으로 제작된 프로그램을 인터넷을 통해 다운로드 한다든지, 구입하게 된다. 즉, 프로그래머 입장에서는 설치 프로그램 작성이 마지막 과정이지만 사용자 입장에서는 가장 먼저 보여지는 프로그램인 셈이다.

이처럼 설치 프로그램의 사용법이 어렵다면 아무리 좋은 프로그램일지라도 사용자에게 외면받게 된다. 윈도우 환경에서는 그런 면에서 참으로 편리하다.

대부분의 프로그램이 인스톨쉴드 프로그램을 통해 설치 프로그램을 만드니 사용자 입장에서는 동일한 설치 화면을 보기 때문에 이제는 눈감고도 프로그램을 설치할 수 있는 것이다.

하지만 윈도우가 아닌 다른 환경에서는 인스톨 프로그램의 표준이라고 할 만한 것은 없는 실정이다. 따라서 프로그래머가 직접 설치 프로그램을 작성해야 되는 경우가 많다. 흔히 유닉스 계열의 프로그램은 설치 프로그램의 대부분이 쉘로 작성된 배치 프로그램이다.

결국 설치 프로그램도 프로그래머 취향대로 제작되다 보니 사용자 입장에서는 설치하는 일도 만만치 않다. 하지만 이제 인스톨쉴드 멀티 플랫폼 4.0이 이런 걱정을 말끔히 해결해 줄 것이다.

자바로 만들어진 인스톨쉴드

인스톨쉴드 CD를 컴퓨터에 넣었을 때, 자동으로 설치 화면이 나올 것이라는 기대와는 달리 화면에 아무런 변화가 없었다. 순간 '정식 버전이 아니라서 그런가?'하고 윈도우 탐색기로 CD의 내용을 살펴봤다.

그런데 setup.exe 파일은 보이지 않고 setup.htm 파일과 browser 폴더만 있는게 아닌가. 잠시 당황했으나 setup.htm 파일을 더블클릭해 본 결과 그 이유를 쉽게 알 수 있었다. 상단에 뚜렷하게 적혀 있는 'InstallShield Professional - Multi-Platform Edition' 문구가 눈에 들어왔다.

이를 보면 알 수 있듯이 다중 플랫폼을 지원한다는 이야기다. 다중 플랫폼을 지원하기 위해서는 CD를 넣자마자 설치 화면이 나타나지 않는 것이 당연하다. 그렇기 때문에 아마도 *.htm 파일로 작성된 것으로 보인다.

여기서 'Install'을 선택하면 인스톨쉴드를 설치할 플랫폼을 정하는 화면이 나왔다.

제공되는 플랫폼은 AIX, AIX Power PC, 리눅스, OS/2, 솔라리스 스팍, 솔라리스 x86, 윈도우였다. 우선 필자의 PC에는 윈도우가 설치돼 있으므로 윈도우를 선택했다. 잠시 뒤 JVM(자바 버츄얼 머신)을 찾는 화면이 잠깐 나오더니 드디어 상당히 낯익은 설치화면이 나왔다.

설치가 완료되면 「시작

IDE 화면에서도 보듯이 일반적인 윈도우 모양과는 다르다는 것을 알 수 있다. 다중 플랫폼을 지원하기 위해서는 자바로 제작됐기 때문이다. 하지만 자바 애플리케이션이기 때문에 실행 속도가 느리다는 단점이 있다.

따라서 인스톨쉴드를 설치하기 위해서는 먼저 자바를 사용할 수 있는 브라우저가 있어야 하며 JDK 1.2.2 이상을 설치해야 한다. 만약 두 가지 중 하나라도 없다면 설치화면은 한글이 깨져서 나오게 되니 꼭 두 가지 조건을 만족시키도록 하자.

사용자 인터페이스 크게 달라져

유명한 프로그램을 유심히 살펴보면 동일한 사용자 인터페이스를 유지하려고 노력한다는 점을 알 수 있다. 매번 사용자가 새로운 인터페이스의 사용법을 익혀야 하고, 이런 이유로 사용자가 프로그램을 외면한다면 프로그래머 입장에서는 난감한 일이 아닐 수 없다.

설치 프로그램도 마찬가지다. 사용자의 인터페이스가 크게 바뀌지 않는 한도 내에서 변화가 이뤄져야 프로그래머가 쉽게 사용법을 익힐 수 있을 것이다.

그런데 이번 인스톨쉴드의 화면은 이전 버전과 크게 달라서 혼란을 주고 있으며, 화면이 깔끔해 좋기는 하지만 예전에 있었던 화면 내용이 사라지거나 버튼의 배치가 변하니 어디부터 시작해야 할지 난감하기까지 했다.

하지만 이번 버전의 인스톨쉴드는 이런 불편을 줄여주는 차원에서 많은 기능을 마법사로 이끌어 이전에는 어려웠던 내용을 좀 더 쉽게 풀어가려는 배려를 했다.

한 곳에서 여러 OS용 설치 프로그램 제작 가능

이번 버전의 인스톨쉴드에서 기능적으로 가장 큰 변화는 바로 다중 플랫폼을 지원한다는 점이다. 물론 인스톨쉴드 자체도 다중 플랫폼을 지원하지만, 이를 통해 생성한 설치 프로그램 자체가 다중 플랫폼을 지원한다는 것이다.

즉, 프로그래머는 여러 플랫폼에서 동작할 설치 프로그램을 따로 제작할 필요 없이 하나의 설치 프로그램에서 모든 것을 처리할 수 있다는 것이다.

인스톨쉴드는 AIX, AIX Power PC, 리눅스, OS/2, 솔라리스 스팍, 솔라리스 x86, 윈도우의 플랫폼을 지원하며, 특히 상당히 종류가 많은 리눅스는 레드햇 리눅스, 칼데라 오픈리눅스, 수세리눅스, 터보리눅스 등을 지원한다. 국내에서는 레드햇 리눅스를 많이 사용하므로 인스톨쉴드를 통해 손쉽게 설치 프로그램을 제작할 수 있다.

지원 언어 확대

지원 언어가 확대됐다는 것은 개인 사용자에게는 별 의미가 없겠지만, 기업 사용자에게 희소식일 것이다. 예를 들어 브라질에 수출할 프로그램을 브라질 언어로 제작했는데 인스톨쉴드로 제작한 설치 프로그램이 브라질 언어를 제공하지 않아 영어로 제작을 했다면 어딘가 이상하게 보일 것이다.

이번 버전에서는 브라질어, 포르투갈어, 체코어, 핀란드어, 그리스어, 덴마크어, 네덜란드어, 헝가리어, 노르웨이어, 폴란드어, 러시아어, 터키어 등의 12개 언어가 추가돼 이런 걱정을 줄일 수 있게 됐다. 또한 2바이트 언어인 중국어, 일본어, 한국어 등은 계속적으로 지원하고 있다.

실전을 통해 본 인스톨쉴드

인스톨쉴드 멀티플랫폼을 실행하면 Open an Existing Project(기존의 작성했던 프로젝트을 열기)와 Create a New Project(새로운 프로젝트 만들기)라는 항목을 찾을 수 있다. 새로운 프로젝트를 만들기 위해 Create a New Project 항목을 선택한다.

설치 프로그램 제작 화면

1단계 작업으로 새롭게 만들 프로젝트의 유형을 선택하는 항목이 나온다. 일반적인 마

법사(General Wizards)와 제품 마법사(Product Wizards)가 있는데 이중에서 제품 마법사 내의 Simple Product Installation을 선택한다.

가장 간단한 제품 설치 프로그램을 만들겠다는 의미다. 2단계 작업에서는 Simple Product Installation에서는 환영 메시지 화면(a welcome panel), 제품의 설명 화면(a product destination panel), 설치 시작과 종료 화면(preview and summary panels)이 생성될 것이라고 알려준다.

이때 '생성' 버튼을 누르면 제품의 이름과 프로젝트의 위치를 묻는 화면이 나타난다. 제품 이름란에 Test1이라고 입력한 후 확인을 누르면 잠시만 기다리라는 메시지와 함께 기본적인 값이 설정된 새로워진 IDE를 보게 된다. IDE 환경에서 보듯이 4개의 탭이 있다. 각각의 탭들은 다음과 같은 역할을 한다.

◆ Product : 설치될 파일 등을 설정한다. 특히 유닉스 계열에서 설치할 경우 파일의 소유 권한을 설정할 수도 있다.

◆ Installer : 설치시 보여주는 화면과 기능을 정의한다.

◆ Uninstaller : 프로그램 삭제시 보여주는 화면과 기능을 정의한다.

◆ Build : 설치 프로그램의 파일명, 압축 유형, 지원 언어 등을 결정한다.

Product 탭에서 Component1을 선택하면 File1이 나온다. 이것을 클릭하면 우측 화면이 Files라고 나타나면서 어떤 파일을 추가할 것인지를 선택한다. Add 버튼을 클릭해 간단하게 몇 개의 파일을 넣어보자. 제일 우측 화면에는 항상 도움말이 대기하고 있으니 적극 활용하는 것도 잊지 말자.

만약 특정 동작 등을 추가하고 싶다면 Project 탭 내의 좌측화면에서 마우스 우측버튼을 눌러 'Insert Action…' 메뉴가 나오게 되고 이를 선택해 원하는 기능을 선택한 후, 적당한 동작을 만들면 된다.

여기에는 모든 플랫폼에서 적용될 수 있는 내용이 담겨져 있다. 예를 들면, 윈도우에서는 레지스트리 키를 조작하는 메뉴가 있는가 하면 리눅스에서는 RPM 패키지를 지정하는 기능도 있다.

Installer, UnInstaller 탭에서 설치할 때나 프로그램을 삭제할 때 화면에 출력될 메시지를 정해줄 수 있다. Build 탭을 선택해 Platform Support를 윈도우만을 남기고 나머지는 체크하지 말자. 차후에 다른 플랫폼을 지원하고 싶다면 이곳에서 체크하면 된다.

그럼 Build 버튼을 클릭해 보자. 화면 하단에 설치 프로그램을 만드는 진행 상황이 표시되고, 끝나면 InstallShield 설치 폴더중 ISMPP40ProjectsTest1default 폴더에 setup.jar 파일이 생성돼 있을 것이다. 이것이 설치 프로그램이다.

일반적으로 '설치 프로그램이라고 하면 setup.exe가 생겨야 하지 않을까?'하고 생각하는 독자가 있을지도 모른다. 하지만 *.exe 확장자는 윈도우에서 사용하는 실행 포맷일뿐 다른 플랫폼에서는 인식하지 못한다. 그러므로 *.jar 확장자로 생성하는 것이다.

설치 프로그램(setup.jar)를 실행하기 위해서는 다음과 같이 두가지 방법이 있다. 자바 1.2.2 이상이 설치된 윈도우에서는 기본적으로 jar 파일에 대해 설정돼 있으므로 윈도우 탐색기에서 setup.jar을 더블클릭하면 설치 프로그램이 실행한다.

또 다른 방법으로는 이것은 흔히 유닉스 계열에서 사용하는 방법으로 명령어 프롬프트에서 바로 실행 명령어를 주는 방식이다.

◆ $ java -jar setup.jar

◆ $ java -cp setup.jar run

이렇게 하면 눈에 익숙한 설치 화면이 나타난다. 지금까지 인스톨쉴드 프로그램의 간단한 사용법을 살펴봤다.

사라진 편집기와 강화된 IDE

이전 버전의 인스톨쉴드를 사용했던 사용자라면 편집기가 없어졌다는 것에 무척 당황스러워 할지 모른다. 필자도 어리둥절했지만 그만큼 IDE 환경이 강력해졌다는 뜻이다.

예를 들어 이전 버전의 인스톨쉴드에서는 설치 화면의 좌측에 나왔던 이미지를 직접 편집기에서 바꿔야 했지만, 지금은 그럴 필요가 없다. IDE 환경에서 바로 편집할 수 있다. Installer 탭에서 Setup Properties를 선택한 후 Wizard Image Source를 원하는 그림으로 바꾸면 된다.

또한, Wizard Image Orientation을 지정해주면 원하는 위치에 그림을 보여줄 수 있다.

이밖에도 편집기에서 작업했던 내용을 대부분 마우스 우측 버튼을 누르고, 원하는 내용을 선택해서 삽입할 수 있도록 돼있다. 그럼 이런 내용은 모두 어디에 저장 될까. 이전 버전에는 setup.rul에 저장돼 이 파일을 편집함으로써 가능하다.

이번 버전부터는 xml 파일에 저장된다. 앞서 예를 들었던 Test1에 해당하는 프로젝트는 Test1.xml 파일에 저장된다.

제공하는 설치 프로그램이 맘에 들지 않는다?

프로그래머 입장에서 '일반적으로 제공하는 인스톨쉴드의 모습이 마음에 들지 않는데 어떻게 할까?' 하고 생각해본 적이 한번쯤 있을 것이다. 이전 버전에는 울며 겨자먹기 식으로 제공해주는 화면을 그대로 사용해야 했지만 이번 버전부터는 프로그래머 마음대로 바꿀 수 있다.

단, 인스톨쉴드가 자바로 작성돼 있기 때문에 자바를 알아야 내가 제작한 클래스를 등록시켜 설치 프로그램이 생성될 때 원하는 모양과 동작의 정의할 수 있다.

사용자 정의 클래스 추가

예를 들어 원하는 설치시 나타내야 할 마법사 화면이 인스톨쉴드 기본 마법사 화면에 없을 때 프로그래머는 직접 제작을 해야 한다. 실제 인스톨쉴드가 사용하는 마법사 클래스를 상속받아 새로운 마법사 화면을 만들게 된다.

import com.installshield.wizard.*;

public class CustWizardPanel extends WizardPanel

{

//...

}

그런 후에는 createUI() 메쏘드를 오버라이드해서 원하는 화면을 만든다.

public class CustWizardPanel extends WizardPanel

{

protected

void createUI(WizardBeanEvent event) {

getContentPane().add(new

Label(getMessage(), Label.CENTER));

}

public String getMessage()

{

return message;

}

public void setMessage(String str)

{

message=str;

}

private String message = 메시지는 내 마음대로…;}

그리고 이 클래스를 등록시켜 나타낼 IDE 환경에서의 값들을 만들어 둔다.

public BeanDescriptor getBeanDescriptor( )

{

if (bd == null)

{

bd = super.getBeanDescriptor( );

if (bd == null)

bd = new BeanDescriptor(beanClass);

bd.setValue(details, Text to display for help.);

}

return bd;

}

// ...

private BeanDescriptor bd = null;

이제는 이 내용을 컴파일해 CustWizardPanel.class로 만든 다음, 메뉴에서 「Tools

동작 정의 추가

설치 프로그램의 최강자

자바를 통해 이룩한 다중 플랫폼 지원, 강화된 IDE, 더욱더 많아진 언어 지원, 프로그래머 입맛에 맞게 바꿀 수 있는 기능은 더 이상의 설치 프로그램은 존재할 수 없음을 보여주는 것 같았다.

결국 모든 플랫폼에서의 설치 프로그램은 인스톨쉴드 하나로 가리라 예상된다. 프로그래머는 여러 플랫폼의 설치 프로그램을 만들지 않아서 좋고, 사용자는 어떤 플랫폼이든 동일한 사용자 인터페이스를 갖기 때문에 따로 사용법을 익히지 않아도 되니 말이다.

이번 테스트를 통해 아쉬운 점은 자바로 구현됐기 때문에 느린 속도, 그리고 많은 설치 공간을 필요로 했다는 것이다. 인스톨쉴드 자체만으로는 약 60MB이지만, 자바 1.3 SDK가 약 40MB를 차지하니까 결국 약 100MB 이상을 요구하는 셈이다.

또한 이제는 인스톨쉴드가 개인 사용자를 위한 버전이라기보다는 기업 사용자를 위한 것임을 알 수 있다. 인스톨쉴드 5.5 프로페셔널부터라고 개인 사용자가 사용하기에는 덩치가 너무 커진 듯 하다.

그리고 프로그래머에게 필수적인 API를 모두 습득하기에는 너무나 방대해 이를 위한 교육 코스가 마련돼 있지만, 국내에는 존재하지 않고 북미와 유럽에서만 실행되고 있다.

결국 인스톨쉴드 프로그램의 한글화와 도움말 번역이 하루빨리 이뤘졌으면 하는 바람이다. 이젠 설치 프로그램을 어떤 것을 사용할까하고 고심할 필요가 없을 듯 하다. 과감하게 인스톨쉴드를 선택하자. @