1.4.2.x 와 5.0 비교
Why use? Performance Development Environment Conclusion Reference Site
x 지원 ◦ x 버전의 소스는 5.0 에서 완벽히 구동됨 성능 ◦ x 버전의 어플리케이션 보다 5.0 의 어플리케이션이 80% 뛰어남 개발 속도 향상 ◦ 오류 체크 기능 향상, 다양한 개발툴 지원 ◦ 향상된 Hot Swapping 기능 64Bit 서버 환경 완벽 지원 ◦ Hyper-threaded 지원 ◦ 64Bit CPU 완벽 지원 ◦ 향상 된 Heap 공간 제공 대형 단체 및 파트너의 지원 ◦ Apache, Apple, BEA Systems, Borland ◦ Cisco Systems, Fujitsu, HP, IBM ◦ Macromedia, Oracle, SAP, Sun 안정성 ◦ 2004 년 9 월 정식 발표, 현재 까지 패치. 이어 Java 6 도 이미 정식 발표 완료 Sun 의 행보 ◦ Sun 은 더 이상 Java 을 Windows, Linux, Solaris9, Solraris10 에서 지원 안 함 (J2SE Download)J2SE Download
VM 성능 비교 : 적게는 25% 의 성능 향상 ◦ 테스트 환경 : Sun Fire V40z, 2.4 GHz AMD Opteron CPU X 4, 8GB RAMSun Fire V40z
Class Data Sharing ◦ 5.0 의 JVM Class Data Sharing 에 따른 어플리케이션 시작시간 단축Class Data Sharing
CPU x86/x64 에 따른 성능 비교 (5.0 만 x64 를 완벽지원 )
Garbage Collector 성능 향상 ◦ Tuning Garbage Collection with the 5.0 Java Virtual Machine Tuning Garbage Collection with the 5.0 Java Virtual Machine
XSLT 속도 향상 ◦ XSLT 은 XML 을 여러 문서의 형태로 변환 시킴 ◦ 테스트 환경 : Windows 2000, x86 3Ghz, 1GB RAM ◦ 테스트 소스 : Image I/O 속도 향상 ◦ Swing API 의 속도가 향상됨 Thread 관리 기능 향상과 Concurrent API 추가로 인한 성능 향상 JVMRun Time(ms) Sun JDK JRockit 8.1 (1.4.2)1600 Sun JDK JRockit 5540
Language Support ◦ Generics ◦ Enhanced for Loop ◦ Autoboxing/Unboxing ◦ Enums Type ◦ Variable Argument ◦ Static Import ◦ Annotations (Metadata) Learning Time: 약 90 분 (1.4.2.x 개발자 기준 ) 기존 1.4 의 Language 를 사용해도 무관 Web Service 를 포함 수많은 API 지원 (5.0 Features)5.0 Features Open Framework 지원 ◦ Spring 2.x 이상, Struts 2, AIXS2, xFire(1.4.2.x 지원 안함 ) 등 ◦ xFire 는 Web Service 를 쉽게 개발하기 위한 Framework 으로 많은 프로젝트에서 사용 기존의 것에 안주하지 말고 새로운 기술을 습득하자 !
Tool 지원 ◦ Eclipse 3.2 부터 5.0 컴파일러 완벽 지원 ◦ Eclipse 3.3 의 Eclipse IDE for Java EE Developers 는 5.0 버전을 요구Eclipse IDE for Java EE Developers Eclipse 3.3 에서 를 사용할 경우 부분적으로 기능이 제한 됨 Hot Swapping ◦ 개발 시 Hot Swapping 기능을 사용하면 WAS 를 재 시작 하지 않아도 자동으로 변 경된 부분이 적용될 수 있음. ◦ 소스를 수정 뒤 WAS 를 재시동할 필요가 없고, 수정된 내용을 바로 테스트 할 수 있으므로 개발 속도를 20% 이상 향상 시킴 ◦ 참고 ◦ x 에서는 method 내부 수정 시 Hot Swap 이 지원 되나 버그가 있어 불안정 ◦ 5.0 에서는 x 버그 수정 및 더 많은 Hot Swap 기능을 제공 (JAVAREBEL)JAVAREBEL
성능, 개발 편의성, 프레임워크의 지원 등을 다루었다. 결과적으로 5.0 으로 하기에 충분한 이점이 있다고 보인다. x 버전을 고수하는 부류는 안전성 혹은 Learning curve 로 인해 5.0 으로 변경 을 못 한다고 하지만 정식 발표가 있은 지 4 년이 지났고, 수많은 Reference 사이트가 나오고 있는 지금, 아직도 안전성을 얘기하는 것은 무리가 있다. 또한, 5.0 의 기능을 사용하고 싶지 않은 개발자는 x 기능으로만 개발이 가능함으로, 완벽한 이식성 을 가지고 있다. 이미 5.0 의 Generics 기능을 이용한 수많은 패턴 (Generics DAO, Factory 변형 ) 들 이 나오고 있고, 이는 개발 생상성 향상으로 연결되는 부분이다.Generics DAO 마지막으로 근래 개발은 XML 기반 ( 설정 파일 기반 ) 으로 대부분 이루어지며, XML 설 정을 하다 적지 않은 개발시간을 보낸다. 이를 보안하기 위해 Spring 2.x 은 annotation(Metadata) 기반의 설정을 지원한다 x 에서도 xDoclet 으로 Metadata 기반의 개발을 할 수 있지만 이는 Spring Inc 에서 공식지원하지 않고, Ant Build 를 사용해서 배포해야 되므로 Auto Deploy 기능을 포기할 수 밖에 없다. (nTrust 에서는 주문 개발자는 간단한 소스를 수정하고 테스트하기 위해 어플리케이 션을 재배포하였고, 10 분간 커피를 마실 수 밖에 없었다. 하루에 수십번씩 )