2009. 3. 17. 13:32

미리 보는 미래 개발환경「자바SE 6





[지디넷코리아]혁신의 중심에 있으면서 동시에 성장하고 진화하는 자바 기술의 원천은 자바를 사용하고 있는 5백만 명의 개발자들이다. 활발하게 활동하고 있는 자바 개발자 커뮤니티는 자바 커뮤니티 프로세스 프로그램(Java Community Process Program)을 통해 누구나 자유롭게 아이디어를 제공하고 동시에 변화를 제안하면서 자바 플랫폼의 미래를 설계할 수 있다. 특히, 이번 자바원에서는 엔터프라이즈 자바 플랫폼의 최신 기술과 특장점을 반영한 자바 플랫폼 엔터프라이즈(자바EE) 5가 새롭게 선보였다. 더불어 곧 출시될 예정인 자바플랫폼 스탠다드 에디션(자바SE) 6에 대한 소개도 이어졌다.

<그림 1> 숫자로 보는 자바


  자바SE(Java Standard Edition)?

자바 플랫폼 스탠다드 에디션에는 두 가지 주요 제품이 있다. Java SE Runtime Environment(이하 JRE)와 Java SE Development Kit(이하 JDK)가 그것이다. JRE는 자바 API, 자바 버츄얼 머신, 그리고 자바 프로그래밍 언어상에서 구동되는 애플릿과 애플리케이션에 필요한 컴포넌트이다. 자바SE는 또한 엔터프라이즈 소프트웨어 개발 및 디플로이를 위한 자바엔터프라이즈 에디션(Java EE)의 근간이기도 하다. JDK는 JRE상에 있는 모든 구성요소 외에도 애플릿과 애플리케이션을 개발하는 데에 필요한 컴파일러와 디버거 등의 툴도 포함한다.

<그림2> 자바 플랫폼 스탠다드 에디션 (Java SE)

<그림 2>는 이러한 자바SE의 플랫폼상의 모든 컴포넌트 기술을 보여준다.

<그림 3> 자바SE의 로드맵

<그림 3>에서도 알 수 있듯이 자바플랫폼 스탠다드 에디션은 새로운 특장점이 소개될 때마다 약 18개월의 주기로 업데이트 된다. 그 외에도 매 8주에서 16주를 주기로 버그 수정이 업데이트 된다.

썬은 지난 2005년 자바원에서 J2SE의 이름을 자바SE로 변경했다. 이후 5.1과 6.1이라는 추가 버전 없이 오는 2006년 10월 발표 예정인 자바SE 6 이후에는 버그 수정에서부터 특장점까지 커뮤니티 상에서의 기여 및 참여를 통해 업데이트 되며, 자바SE 7(코드명: 돌핀)은 2008년 하반기에 발표할 예정이다.

자바SE 6(코드명: 머스탱)는 지난 2004년 발표한 자바SE 5.0(코드명: 타이거)의 버그를 수정하고, 기존 프로그램을 운영할 수 있도록 했다. 또 질적 향상을 위해 소스와 바이너리를 활용하여 개발자들이 보다 오픈된 환경에서 개발할 수 있도록 개선되었다. 자바SE 6는 호환성, 안정성, 질적 향상에 중점을 두어 개발되었다.

<표 1> JDK
<표 2> 서버 벤치 마크:SPECjbb2000(기존 버전과 비교시 서버 벤치마크상 성능향상을 보여준다.)

자바SE 6는 지속적으로 자바 성능 향상에 중점을 두고, 클라이언트, 서버 양쪽의 성능 향상, 코어 JVM (Java Virtual Machine, 자바 버츄얼 머신)으로의 업그레이드, GC 스케일링과 패럴리즘, 라이브러리 튜닝, 자바2D그래픽 렌더링으로의 업그레이드와 구동 속도를 높이는 등의 기능이 강화되었다(<표 1>과 <표 2> 참조). 그 외에도 모니터링과 관리기능을 중점으로 보다 나은 JVM레벨의 테스팅, 메모리 핸들링 향상, JMX업그레이드,솔라리스 Dtrac와의 연계 기능 향상과 J콘솔 업그레이드 등 모니터링 기능이 한층 강화되었다. (<화면 1> 참조)

<화면 1> J컨솔 업그레이드

이렇듯 자바SE 6는 고객들의 자바SE 의존도가 높은 만큼 호환성, 안정성, 질적 향상을 중점으로 최신 기술과 개발자들의 니즈를 반영하여 다양한 특장점이 업데이트 되고 있다. J2SE 1.4 버전이후에 자바 스탠다드 에디션의 중심에 있는 XML은 주요 데이터 교환 기술로 웹서비스의 근간이 되고 있다. 자바SE 6는 클라이언트 중심뿐만 아니라 경량의 서버에까지 적용되는 클라이언트 스택으로(JSR 105, 173,181, 222,224) 업데이트된 코어XML 스택을 포함한다.

또한, 개발 용이성을 주제로 개발자들이 보다 생산적으로 작업을 단순화할 수 있도록 스크립트 언어 지원 (JSR-223), XML데이터 지원을 포함한 JDBC 4.0 (JSR-221), 기타 API 등이 향상
되었다. 이외에도 데스크톱 자바는 모든 자바 성공에 있어 중요한 만큼 Java SE 6 또한 이러한 기능 향상을 포함하고 있다. 아발론 룩앤필을 포함한 윈도우 비스타 지원과 그동안의 자바 기술의 단점으로 지적되어 온 GUI를 개선하기 위해 윈도우 시스템의 트레이 기능 지원, 스플래시 스크린 지원, 그래픽 파이프라인 부스트 등 많은 GUI기능을 업그레이드했다.

자바SE 6는‘보다 공개된 (Open)개발 환경’(소스와 바이너리면에서)을 목적으로 많은 개발자들의 참여와 기여를 기다리고 있다. 이 같은 자바SE 6 (머스탱)의 성공적인 런칭과 구현을 위해서는 개발자들의 적극적인 커뮤니티 참여가 절실히 필요하다.

이러한 공동 참여와 기여를 통해 현 개발환경에서 필요한 개발자들의 니즈를 반영하여 새로운 특장점을 업데이트하고 버그를 수정하여 자바SE 6가 완성된다. 이러한 시도는 기존의 베타 버전과는 다른 새로운 경험 및 발상의 전환이 될 것이다. 참여 URL은‘mustang.dev.java.net’이다.

  자바SE 6의 장점

자바SE 로드맵 상에서 볼 수 있는 자바SE 7(코드명: 돌핀)은 기존 자바SE 6(머스탱) 버전보다 더 개방된 환경에서 다이나믹한 언어를 지원할 뿐 아니라 확대된 XML 지원 기능과 보다 확대된 XML지원 등을 포함할 예정이다. 자바SE 7의 새로운 주요 특장점들은 10월 Java SE 6 출시이후에 보다 자세한 내용이 공개될 예정이다.

<그림 4>Mustang Features


  야생마 자바SE6 길들이기

이번에는 자바SE 6의 새로운 기능 중의 하나인 트레이(Tray) API를 이용한 예제를 살펴보자. 여기에서 트레이란 윈도우 GUI에서 태스크바(Taskbar) 오른쪽에 자리 잡는 작은 기능성 아이콘들이 들어가는 자리를 말한다. 보통 늘 떠 있어야 하는 애플리케이션들이 화면에 작게나마 현재 상태를 나타내고자 할 때 쓰인다. 예를 들어 메신저 창을 닫아도 메신저의 상태와 새 메시지 도착 등을 알리는 창구가 된다.

트레이에 아이콘을 두는 것은 윈도우 애플리케이션에 있어 사용자의 주목을 쉽게 끌 수 있고, 태스크바를 감추지 않는 이상 늘 떠 있어 자주 쓰는 기능의 호출에 대한 접근성을 향상시키는 장점이 있다. 따라서 자바 애플리케이션도 이런 트레이 아이콘을 가질 수 있다면 더욱 풍부한 사용자 경험을 제공할 수 있음은 두말할 나위도 없다. 원래 트레이 API는 JDIC(JDesktopI ntegration Components)라는 프로젝트의 일환으로, J2SE 1.4.2 이상이면 쓸 수 있는 부가 라이브러리로 시작했지만, 자바SE 6에는 기본 탑재되었다. 따라서 다음과 같이 패키지 이름만 다를 뿐 API 자체는 동일하므로 이제 소개할 예제를 간단히 포팅 할 수 있다.

JDIC Mustang
org.jdesktop.jdic.tray.SystemTray => java.awt.SystemTray
org.jdesktop.jdic.tray.TrayIcon => java.awt.TrayIcon

<리스트 1>은 본래 제우스 5를 부트.다운할 때 사용하려고 만든 것을 제우스 6 용으로 재구성한 것이다. 이 달의 디스켓 파일을 다운로드 받아서 압축을 푼 뒤에 핵심이 되는 코드를 살펴보자.

 <리스트 1> 제우스 부트.다운용 예제

우선 이렇게 짧은 코드로 트레이를 사용하는 애플리케이션을 만들 수 있다는 점이 놀랍다. 자바가 플랫폼에 독립적이기 때문이 트레이가 지원되는 OS(현재는 윈도우와 유닉스 일부)인지를 확인한 다음, 보통의 스윙(Swing) 애플리케이션처럼 아이콘용 이미지를 읽어 들이고 동작에 필요한 액션 리스너를 만다. 마지막으로 시스템 트레이에 트레이 아이콘을 추가하면 끝난다(아이콘 이미지는 예제 프로젝트 파일에 포함되어 있다). 이 애플리케이션을 실행시키는데 필요한 스크립트인 jeus-tray.bat은 다음과 같다.

%MUSTANG_HOME%\bin\java -cp bin ias.tray.JeusTray%JEUS_HOME% %*

이 배치 파일을 실행하려면 MUSTANG_HOME 환경 변수를 자바SE 6 설치 디렉토리로 잡아 줘야 한다. 예를 들어 다음과 같이 하면 된다.

set MUSTANG_HOME=c:\java\sdk\jdk6
JEUS_HOME은 제우스를 설치하면 자동으로 잡히므로 추가적으로 설정할 필요는 없다. jeus-tray.bat를 실행할 때에는 세 개의 인수를 넘겨주어야 한다.

jeus-tray xias jeus jeus

첫 번째 인수는 제우스가 설치된 노드 이름(보통은 컴퓨터 이름이다), 나머지 인수는 제우스 관리를 위한 어드민의 사용자 이름과 암호이다. 이렇게 제우스 제어를 위한 정보를 알려줘야 부트.다운이 가능하다. 실행시키면 다음과 같은 아이콘이 트레이에 표시된다.

<화면 2> 제우스 트레이가 뜬 상태
화면 2>에서 가장 왼쪽에 있는 것이 제우스 트레이 아이콘이다. 그 위로 마우스를 올리면 풍선 도움말이 표시된다. 이 아이콘
에서 마우스 오른쪽 버턴을 누르면 아래와 같은 메뉴가 나온다.

<화면 3> 제우스 트레이 명령 선택
oot는 부트, down은 다운, exit는 트레이 아이콘을 끝내는 것이다. Boot를 선택하면, <화면 4>와 같이 트레이 아이콘이 바뀐다.

<화면 4> 제우스가 부팅된 상태를 가리키는트레이 아이콘

앞서는 빨간색으로 X가 되던 부분이 부트가 되고 나면 녹색 진행 표시로 바뀐다. 물론 down을 선택하면 다시 X가 표시된다.

down 기능을 쓰기 위해서는 예제 프로젝트 파일에 동봉된 jeusdown. bat를 JEUS_HOME/bin에 넣어두어야 한다.

아주 간단한 예제지만, 그 활용처는 무궁무진하고 리눅스와 솔라리스에서도 쓸 수 있어 윈도뿐만 아니라 다양한 GUI 환경에서 트레이의 편리함을 누릴 수 있다는 점이 매력적이다. 앞으로 자바 메신저나 RSS 리더에서 멋지게 사용되기를 기대해본다.

  자바 브랜드 강화 및 미래

2005년으로 탄생 10주년을 맞은 자바는 이를 기념하기 위해 자바 브랜드를 새롭게 단장했다. 더욱 쉽고 심플한 디자인의 자바브랜드는‘한번 쓰면 어디에든 적용된다’는 주제 하에 전 세계적으로 PC와 휴대폰을 포함해 약 80%이상의 무선 애플리케이션 상에 적용되고 있다는 점이 많은 제조사와 컨슈머 고객사들이 자바 브랜드를 선호하는 이유다.

8세부터 80세까지, 200여개의 언어의 모든 사람들이 사용하는 자바 브랜드(로고)는 이러한 자바의 역사를 대변하고 있다. 보다 단순화된 자바 로고와 이름은 약 180여개의 자바 라이센서들의 샘플 집단에서 인터뷰를 거쳐 완성되었다.

프로젝트 탱고 (Tango)  
.net 플랫폼과 자바 플랫폼의 웹서비스 상호운영성 기술, WSIT:
프로젝트 탱고 (Tango)

지난 5월 16일 자바원 컨퍼런스에선 웹서비스를 위한 자바 플랫폼과 MS의 닷넷 플랫폼의 상호 운영성 기술(이하 WSIT)이 발표되었다. WSIT는 썬의 소프트웨어의 오픈소스 정책에 맞춰서 차세대 웹서비스 및 SOA구현을 위한 개발 환경 향상을 위한 기술로 MS와의 협력을 통한 프로젝트 탱고의 주요 컴포넌트이다. MS와 공동으로 발표한 WSIT 컴포넌트는 보안, 메시징, 서비스 질의 향상과 메타데이터 지원을 포함하는데, 프로젝트 글래스피시의 일환으로 Open JavaEE 커뮤니티에서 공개될 예정이다. 웹서비스상의 개발환경 향상을 위한 개발자들의 니즈를 반영하기 위해서 진행된 WSIT는 자바 기반 애플리케이션이 혁신적인 방식으로 닷넷 기술과 상호 운영되고 통합될 수 있게 한다.

WSIT는 MS 윈도우 커뮤니케이션 재단(WCF; Windows Communication Foundation)에서 광범위한 테스트를 거쳐서 자바 기술 기반의 애플리케이션과 연동할 수 있도록 신뢰성 높은 방법을 제시한다. WSIT는 썬이 기존에 추진해오던 MS 제품과의 상호 연동성을 향상시키기 위한 협력방안의 일환으로 썬의 자바 시스템 애플리케이션 서버의 다음 버전에도 포함될 예정이다.

WSIT 사용을 위한 JavaEE SDK 5.0 또는 썬 개발자 툴을 사용하는 개발자는 http://developers.sun.com/services에서 관련 정보 및 지원을 받을 수 있다.

썬과 MS는 이 외에도 단일 비즈니스 프로세스 디자인이 자바플랫폼과 닷넷 플랫폼 상 에서 연동될 수 있도록 WCF기반 서비스와자바EE 5 간의 상호연동을 위한 기술 협력을 추진하고 있다.


이렇듯 자바는 브랜드에서부터 기술의 발전에 이르기까지 개발자들의 참여와 기여를 통해 하나의 생태계로서 발전하고 있다.

<그림5> 자바 플랫폼의 성장과 미래

마지막으로 현재 개발환경이 스탠다드 에디션이든 엔터프라이즈 에디션이든 더욱더 단순하면서도 풍부한 자바 기술의 향상을 위해서는 자바 개발자라는 공동체내에서 개발자들의 커뮤니티 참여가 무엇보다도 중요하다(<그림 5> 내용 참조). @

* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.