JavaScript로 Windows 프로그래밍을 해보자!
.NET Framework 은 C#, VB# 등의 여러 언어를 지원하는데, 이 중에는 JScript.NET 도 포함되어있다. JScript.NET은 JScript의 .NET 버전으로 기존의 JScript에 비해 그 범위나 성능이 대폭 향상되었다고 할 수 있다. 특히 눈에 띄는 변화는 실행파일로 컴파일 할 수 있다는 점이다.
JScript.NET 의 문법은 현재 브라우저에서 사용되는 JavaScript 혹은 JScript 보다 더 객체 지향적이고 조금 더 프로그램스럽다(?). 예를 들면, 이런 문법도 가능하다.
1 import System; 2 3 package Test { 4 public final class newClass { 5 const word:String = "word"; 6 7 private var prop:int = 3; 8 9 public function newClass() { 10 prop = prop + 5; 11 } 12 private function somePrivate() { 13 } 14 public static imStatic() { 15 } 16 } 17 }
위 코드에서 보다시피, 외부 라이브러리를 가져올 수도 있으며, package 이름을 정할 수도 있고, 완벽한 class 문법을 지원하며 심지어 static 문법도 지원하며, 상수, private 멤버, this의 생략 등도 지원한다. 웹 브라우저에서 사용하던 JavaScript 만 기억하고 있던 사람이라면 상당히 놀랄만한 일이다. 여전히 weak type언어라는 점은 변함이 없지만, 최근의 ActionScript 처럼 명시적으로 타입을 정해줄 수도 있다.
var i:int = 3; var strings:String[] = ["a","b","c"];
Hello, world!
백독이 불여일타! (백번 읽는 것이 한번 타이핑 하니만 못하다) 라는 옛 성현들의 말씀에 따라 실제로 Hello, world 프로그램을 작성해서 컴파일까지 해보도록 하자. .NET과 마찬가지로 콘솔 프로그래밍을 위해서는 System 패키지를 가져와야한다.
import System;
참고로, C#, Java 등과 다르게 JScript.NET 에는 main() 이 없다. 그냥 전역 객체 작성하듯이 작성하면 된다. 즉, 이런 식으로 Hello, world 를 뿌려도 된다는 것이다.
import System; Console.Write("Hello, world!");
하지만, 역시 뭔가 뽀대가 안난다. 앞으로의 진행을 위해서라도 class 사용하는 법을 익혀두도록 하자.
1 import System; 2 3 package Test { 4 public class myTest { 5 public function myTest() { 6 Console.Write("Hello, world!"); 7 } 8 } 9 } 10 11 new Test.myTest();
이제 간단한(?) 형태의 기본 프로그램이 완료되었다. 이 프로그램을 컴파일하도록 해보자. 먼저 이 프로그램을 hello.js 라는 이름으로 저장한다.
앞서 말했듯이 지금 우리가 작성하고 있는 것은 .NET 프로그램이다. 따라서 .NET Framework 이 설치되어 있어야 앞으로의 과정을 따라할 수 있다. 물론, 컴파일을 위해서는 SDK를 설치해야 한다. 1.0 이상이면 모두 해당 기능을 가지고 있으나 이왕이면 최신 버전을 이용하는 편이 좋을 것 같으니 .NET Framework 3.5 버전을 다운로드 받도록 한다. 참고로, Windows Vista 에서는 3.5 버전만 사용가능하다.
설치가 완료되었다면, 다음 경로에서 jsc 파일을 발견할 수 있을 것이다.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\jsc.exe
바로 이 jsc 파일이 JScript를 실행 파일로 만들어 줄 JScript Compiler 이다. 세부 버전은 다를 수 있으나 아마도 경로는 비슷할 것이라고 생각한다. 참고로 64비트버전에는 Framework\ 대신 Framework64\ 를 입력하면 가능하다. 그럼 이제 이 파일을 실행해보자. 무어라 무어라 하면서 도움말이 주욱 나온다. 간단하게 다음과 같이 실행할 수 있다.
jsc /t:exe hello.js
/t 는 결과물의 타입을 정해주는 옵션으로 exe 면 콘솔 프로그램, winexe 면 Windows 응용프로그램, library 면 dll 파일을 생성한다.
이제, 폴더에 hello.exe가 생겼을 것이다. 실행해보면 물론 너무도 당연하지만 이런 식의 화면을 얻을 수 있다.
D:\OwnUtil>hello
Hello, World
이상으로 JavaScript (정확하게는 JScript) 를 이용해서 Windows 실행파일을 만드는 법을 알아보았다. .NET 은 MS의 최대 강점인 MSDN을 통한 문서화가 잘 되어 있어 문법적인 요소만 극복을 하면 생각보다 어렵지 않게 접근할 수 있다. 또한, 대부분의 예제에 JScript.NET도 포함해주고 있어 JScript 문법이 더 익숙한 웹 개발자들에게는 좋은 놀이거리가 될 수도 있을 것이다.
위의 /t 스위치에서 보았듯 JScript.NET 으로도 당연히 Windows GUI 프로그래밍도 가능하다. 이 부분은 나중에 기회가 되면 연재를 진행해볼까 생각한다.
