자바 SE 6 업데이트 10 베타 소개

Java SE 2008/06/10 16:26 Posted by Sun

확실하지 않은 이름만으로 속단하지 마십시오. 곧 발표될 자바 SE 6 업데이트 10(현재 베타 릴리스)은 앞서 나온 업데이트들과는 전혀 다른 부류입니다. 자바 SE 6u10은 오랫동안 예고되어 왔던 여러 기능을 포함하여 기존의 어느 자바 프로그래밍 언어 업데이트 릴리스보다도 새로운 요소와 기능을 더 많이 추가함으로써 새로운 영역에 도전하고 있습니다.

공식적으로 '자바 업데이트 릴리스'는 버전 번호에서 넷째 자리 수(1.6.0_10에서 10)만 변경된 릴리스입니다. 메이저 릴리스와 달리 업데이트 릴리스에서는 공개 API를 추가하거나 제거, 변경할 수 없습니다. 따라서 일반적으로 업데이트 릴리스는 버그 수정 정도로만 제한되는 경우가 많습니다. 6u10도 마찬가지로 새로 추가되거나 변경된 API가 없습니다. 그러나 그와 같은 제한 조건에도 불구하고 저희는 몇 가지 놀라운 새 기능을 끌어낼 수 있었습니다.


목차



왜 특별한 업데이트 릴리스인가?


일단 자바 프로그램이 준비되고 가동을 시작하면, 아주 원활하게 작동하는 것이 일반적입니다. 요즘의 자바 런타임 환경(JRE)은 안정성과 신뢰성, 속도가 우수합니다.

그러나 유감스럽게도 '준비와 가동' 부분은 지금까지 필요 이상으로 까다로왔습니다. 문제점 가운데 일부는 다음과 같습니다.

  • JRE 감지의 어려움, 특히 웹브라우저에서 감지하기 까다로움
  • 새 JRE의 자동 설치가 어려움
  • 다운로드 크기가 큼
  • 콜드 스타트 성능이 빈약함
  • 애플릿과 Web Start 프로그램 사이의 오버랩이 거의 없음

자바 SE 6u10은 이러한 문제에 대한 대응책으로 고안되었습니다. 공개 API 변경을 신중하게 피함으로써, 자바 SE 7을 기다릴 필요 없이 수정 사항을 일찍 제공할 수 있게 된 것입니다!


자바 커널

JRE는 여러 다양한 API를 제공합니다. Swing, AWT, ImageIO, SQL, CORBA, RMI, math, XML, XSLT, concurrency... 등등 일일이 열거하기 어려울 정도이며 새로운 릴리스가 나올 때마다 더 늘어납니다. API의 다양성은 자바 소프트웨어를 쉽게 만들 수 있게 해주지만, 시간이 흐르면서 JRE의 크기가 꾸준히 커질 수 밖에 없었습니다(자바 2 플랫폼, Standard Edition 1.5는 압축 효율이 좋아 다운로드 크기가 작았지만 압축을 푼 JRE는 여전히 크기가 컸습니다).

사용자 삽입 이미지
그림 1: JRE의 크기(MB 단위)
 

자바 커널은 자바 소프트웨어를 더 신속히 준비하고 가동시키는 것을 목적으로 하는 새로운 배포 방식입니다. 사용자들은 정식 JRE 대신, 일반적으로 가장 필요한 JRE 구성요소만 포함된 작은 인스톨러('커널')을 다운로드합니다. 그 외의 구성요소들은 필요에 따라 다운로드되며, JRE는 나머지 구성요소들을 백그라운드 작업으로 다운로드해서 스스로 재조립합니다.

사용자 삽입 이미지
그림 2: 커널 크기(MB 단위)
 

현재의 빌드에서 Swing 프로그램과 자바 애플릿의 일반적인 다운로드 용량은 4-5MB임에 비해 정식 JRE는 14.4MB에 이릅니다.

자바 커널에 대한 자세한 정보는 6u10 FAQ를 참고하십시오.


차세대 자바 플러그인

자바 SE 6u10에는 Firefox 3 또는 Internet Explorer를 사용하는 경우, 기본적으로 사용되는 자바 플러그인의 새로운 버전이 포함되어 있습니다. 이 차세대 플러그인은 애플릿을 하나 이상의 분리된 프로세스로 브라우저 외부에서 실행합니다. 애플릿은 여느 때처럼 웹 브라우저 창 안에 표시되지만, 이것은 상이한 JRE 버전, 명령줄 인수, 구성을 사용하여 각기 다른 애플릿을 실행할 수 있다는 것을 의미합니다. 매우 크고 대단히 복잡한 두 소프트웨어인 웹 브라우저와 JRE를 서로 분리된 프로세스 공간에서 실행함으로써 제공되는 이와 같은 격리 조치는 웹 브라우저와 JRE 양쪽의 신뢰성을 높여주며, 애플릿에게는 다른 자바 소프트웨어가 항상 누려온 것과 동일한 수준의 JRE 구성에 대한 융통성과 제어 능력을 부여합니다.

이제 애플릿은 자바 Web Start 프로그램과 똑같이 강력한 JRE 선택 기능과 구성을 갖추고 있으므로 둘에게 동일한 메커니즘을 적용하는 것이 당연했습니다. 이제 자바 플러그인은 자바 네트워크 실행 프로토콜(JNLP) 파일을 이용하여 애플릿 구성과 시작 옵션을 지정하는 기능을 지원합니다. 이제는 아주 약간의 추가 작업만으로 같은 프로그램을 애플릿과 Web Start 프로그램으로 배포하면서, PersistanceServiceFileSaveService와 같은 JNLP 서비스를 활용할 수 있는 것입니다.

새로운 플러그인의 이점:

  • 신뢰성 향상
  • JavaScript 통신 기능 향상
  • JRE 명령줄 인수에 대한 애플릿별 제어
  • JRE 메모리 설정에 대한 애플릿별 제어, 최대 힙(heap) 확대
  • JNLP 지원
  • 애플릿별 JRE 버전 선택
  • Vista 지원 향상

릴리스 노트에서는 새 플러그인에 관해 훨씬 더 많은 정보를 확인하실 수 있습니다.


자바 배포 툴킷

자바 배포 툴킷은 자바 애플릿 또는 자바 Web Start 프로그램 배포 작업을 아주 쉽게 만들어줍니다. Deployment Toolkit JavaScript 파일이 제공하는 기능은 다음과 같습니다.

  • 설치된 JRE의 정확한 탐지
  • 원활한 JRE 설치
  • 코드 한 줄로 애플릿 완벽 실행(JRE 탐지와 업그레이드)
  • 코드 한 줄로 Web Start 프로그램 완벽 실행

자바 1.6을 설치하고 자바 애플릿을 실행하는 데에는 아래와 같은 HTML 코드로 충분합니다.

<script src="http://java.com/js/deployJava.js"></script>
    
<script>
  deployJava.runApplet({codebase:"http://www.example.com/applets/",
     archive:"ExampleApplet.jar", code:"Main.class",
     width:"320", Height:"400"}, null, "1.6");
</script>

이 배포 툴킷에 대한 더 많은 설명 자료는 여기를 참고하십시오.


Nimbus 룩앤필

우아한 Metal 룩앤필의 Swing이 처음 모습을 드러냈을 때, 미적인 면에서 그 주된 경쟁 상대는 Windows 95 인터페이스였습니다. 약 10년 전의 GUI 수준으로 볼 때 Metal은 당시 일반적인 인터페이스에 비해 매력적이고 우아한 대안이었습니다.

자바 SE 5에서 업데이트된 Ocean 테마는 Metal이 지금까지도 선택받는 데 기여했으나, 이제는 플랫폼을 넘나드는 Swing의 외관을 전면적으로 개편해야 할 시점입니다.

Nimbus 룩앤필의 세계로 오십시오. Synth에 기반한 새롭고 현대적인 룩앤필의 Nimbus는 애플리케이션에 매우 세련된 느낌을 부여합니다. 또한 Nimbus는 정적 비트맵이 아니라, 온전히 Java 2D 벡터 그래픽을 이용해서 만들어졌기 때문에 크기가 매우 작고(불과 56KB!), 임의의 해상도에서 렌더링이 가능합니다.

Nimbus 룩앤필에 관한 더 자세한 정보는 SDN KOREA 자바 SE 6 업데이트 10 베타의 Nimbus 룩앤필 을 통하여 보실 수 있습니다.

성능

썬의 JRE는 여러 해 동안 꾸준히 속도가 빨라졌으며 6u10도 예외는 아닙니다. 중요한 성능 향상 요인은 대부분의 시스템에서 자바의 콜드 스타트 속도를 크게 개선해주는 Java Quick Starter의 도입과 Windows의 새로운 그래픽 파이프라인입니다.

이 새로운 그래픽 파이프라인은 Direct3D를 이용하여 대부분의 일반적인 연산 속도를 높일 것입니다. 따라서 여러분의 컴퓨터에 장착되어 있을 강력한 3D 그래픽 카드는 게임 이외의 다른 용도를 갖게 될 것입니다. 반투명성, 경사, 아핀 변환(affine transforms), 안티앨리어싱, 사각형 채우기 및 복사, 그리고 기타 다양한 그래픽 연산 속도가 3D 그래픽 카드에 의해 빨라질 것입니다. 그리고 충분히 견고하지 못해서 기본으로 활성화하기에는 적당치 않았던 기존의 3D 파이프라인과 달리, 새로운 파이프라인은 매우 탄탄하여 6u10에서는 기본적으로 사용됩니다.

이에 관한 더 자세한 내용은 Chet Haase의 블로그를 참고하십시오.


개선된 패칭

자바 SE 6u10에는 패치 다운로드 및 설치 기능의 개선 사항들이 포함되었습니다. 물론 6u11이 등장할 때까지는 이 개선 사항들은 눈에 띄지 않을 것이지만, 그 시점이 되면 새로운 다운로드 엔진을 통해 업데이트가 다운로드될 것인데, 그 새로운 다운로드 엔진은 네트워크 사용 상태를 모니터링해서 인터넷 사용을 방해하지 않도록 그 대역폭 사용량을 조절할 것입니다.

새로운 다운로드 엔진은 중단된 다운로드를 자동으로 재개하며, 6u10은 향후 업데이트 크기를 크게 줄여주는 새로운 패칭 알고리즘을 사용합니다. 업데이트가 나오는 즉시 사용자에게 알리고 다운로드가 완료될 때까지 사용자를 기다리게 만드는 현재의 JRE와는 달리, 6u10은 패치를 백그라운드로 다운로드하고 그 다운로드가 완전히 완료되어야만 사용자에게 설치 승인을 요청하게 될 것입니다.


배포 유용성

자바 Web Start는 항상 버전이 지정된 다운로드를 지원했으며, 애플릿과 Web Start는 Pack200 압축을 처음 등장했을 때부터 지원했습니다.

그러나 이 두 기능은 모두 서버 측의 협조를 필요로 했으며 따라서 다루기가 까다로울 수 밖에 없었습니다. 비록 필요한 서블릿이 제공되면 개발자들이 그것을 설치하기만 하면 되었지만, 유감스럽게도 많은 웹 호스트에서 그것이 불가능했으며 따라서 이 기능은 널리 사용되지 못했습니다.

6u10부터는 특별한 서버 지원 없이, 버전 지정 기능과 pack200 지원이 가능합니다. 여전히 JNLP 파일 또는 애플릿 태그에서 이 기능을 활성화해야 하지만, 다음과 같은 간단한 코드만 추가하면 됩니다.

<property name="jnlp.packEnabled" value=true">
또는
<param name="java_arguments" value="-Djnlp.packEnabled=true">

보다 자세한 내용은 여기를 참고하십시오.


잠깐, 이것이 전부는 아닙니다!

다른 자바 업데이트 릴리스와 마찬가지로, 이번 업데이트에서도 하나의 글에서 모두 다룰 수 없을 정도로 수 많은 버그 수정과 성능 향상, 사용 편의성 개선 사항들이 이루어졌습니다. 자바 SE 6u10은 자바 소프트웨어 사상 최대 규모의 업데이트 릴리스(공개 API의 변화가 없는 릴리스)이며, 공개 API의 변화가 없다는 것이 놀라운 변화를 볼 수 없다는 뜻은 결코 아닙니다.

자바 SE 6 업데이트 10 베타 빌드 23 다운로드

6u10 JDK를 다운로드하려면 early access download 페이지를 이용하십시오.


이 글의 영문 원본은
Introducing Java SE 6 update 10 Beta
에서 보실 수 있습니다.

"Java SE" 카테고리의 다른 글

2008/06/10 16:26 2008/06/10 16:26

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/589

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 66 67 68 69 70 71 72 73 74  ... 624  Next ▶