Java SE 6가 릴리즈되었습니다.
Java 개발자라면 놓치면 안되는 몇가지 중요한 레퍼런스들을 살펴보시죠.
- Java SE 6의 새로운 feature들: What’s New in Java SE 6 Beta 2
- Java SE 6의 성능: Java 6 Leads Out of the Box Server Performance
- JDBC 4.0: Improvements in JDBC 4.0
몇가지 코멘트.
Scripting
Agile 언어들의 생산성은 충분히 입증된 사실입니다. Java를 프로젝트의 주요 언어로 채택하더라도 각종 툴들에서 사용할 Agile 언어의 필요성은 여전히 남아있습니다. 그렇지 않아도 JRuby나 Groovy를 try해보려고 계속 생각 중이었는데, Agile 언어를 좀 더 잘 지원하게 되었다는 것은 반가운 소식입니다.
Database
Apache Derby가 SQLite를 대체할 수 있겠군요.
Performance
address resolving 상의 성능 문제 jrockit을 사용하고 있었는데 일반적으로 Java SE 5가 성능이 더 좋다는 것은 처음 알았습니다. (적절한 벤치마크를 해보지도 않았지만.) Java SE 6는 더 좋아졌다니 다행이군요. 현재 개발하고 있는 애플리케이션도 한번 벤치마크를 해보아야할 것 같습니다. 그나저나 Java SE 6에서는 제발 gethostbyname 대신 getaddrinfo를 사용해주었으면 좋겠군요. (소스도 한번 살펴보아야겠습니다.)
JDBC 4
SQL을 annotation으로 쓰는 기능은, annotation의 full power를 활용하는 동시에, Object-Relational impedance mismatch를 어느 정도 보완하려는 노력이 엿보이는 것 같습니다. JDBC를 사용하다가 발생하는 오류는 상황별로 자동 복구하는 등의 처리가 매우 힘들었는데, (그래서 기록해두는 수 밖에 없었는데), SQLException이 계층화된 것은 매우 환영할만한 일인 것 같습니다.
그나저나, JDBC 3과의 인터페이스 호환성이 없다는 것이 상당히 짜증스럽군요. (당연히 호환된다면 JDBC 4로 나올 이유도 없을 것 같긴 합니다만.) JDBC 3과 JDBC 4 둘다 지원하기 위한 유일한 방법은 빌드를 분리해서 바이너리를 나누는 수 밖에 없는 것 같습니다. 현재 진행중인 프로젝트라면 가능한 한 Java 6과 JDBC 4로 가는 것이 편하겠죠. 하지만, 안타깝게도 PostgreSQL의 JDBC driver 외에는 아직 공식적으로 JDBC 4를 지원하는 경우가 별로 없는 것 같습니다. 적어도 MySQL Connector/J와 Commons DBCP의 경우에는요. PostgreSQL의 경우에도 새로 추가된 메서드들을 제대로 구현하진 않았더군요. 소외받는 JDBC 4입니다.
java programmer!