Java One에 가면 항상 느끼는 것 중에 하나가 기술의 발전 속도에 대한 두려움이다. 점차 빨라져가는 버전업 타임. 작년 Java One의 주된 토픽이 J2SE 5.0 Tiger였으나 금년에는 Mustang과 Dolphin을 이야기 하고 있다. 더우기 발전속도를 표현하기에 현재 J2SE 라는 명칭이 부족하다고 보고 Java SE 6로 명명하기로 하였다.
아래의 그림을 보면 신버전의 발표 주기가 빨라지는 것을 알수 있다. Merlin에서 Tiger까지는 32개월이 걸렸으나 Tiger에서 Mustang까지는 24개월, 다시 Dolphin까지는 18개월이 소요될 예정이다. 시장의 기술에 대한 요구를 따라가기 위해 JCP 멤버들이 얼마나 노력하고 있는지를 알수 있다.
그럼 앞으로 Java 기술의 발전에 대하여 잠시 논의해 보고자 한다. 우선 Java의 스펙은 Java SE, EE, ME로 나누어져있는 점을 알고 있을 것이다. 이중 가장 중심이 되는 것이 Java SE다.
작년 J2SE 5.0 Tiger를 발표하면서 가장 중요시 했던 점 중에 하나가 바로 EoD(Ease of Development)이다. 그동안의 'Java = 어렵다'라는 편견을 없애기 위해서 였다. 이미 Tiger에 대해서는 많이 논의가 되었던바 내년에 발표될 Mustang에 대해 이야기 하겠다.
Mustang의 가장 중요한 테마는Compatibility, Stablility, Quality이다. 보다 더 안정된 환경을 위해 많은 노력을 하고 있다. 또한 Diagnosability, Monitoring, Management을 위해 Java Management Extensions(JMX)와 Java Console (JConsole)을 업그레이드 하였다. 우리는 앞으로 왜 'out of memory exception'이 발생하는지 쉽게 알게 될 것이다. 다음으로 XML & Web Services의 지원을 더욱 강화 할 것이다. 이를 위해 JSR-105 XML Digital Signature, JSR-173 Streaming API for XML, JSR-222 JAXB 2.0, JSR-181 WS Metadata, JSR-224 JAX-WS 2.0, JSR-250 Common Anotations과 같은 JSR이 승인되었다. Tiger에서 일부 적용된 EoD를 위해 JSR-199 Compiler API, JSR-221 JDBC 4.0, JSR-223 Scripting, JSR-260 Javadoc Tag Update , JSR-269 Annotation Processors등이 승인되었다 이중에서 JSR-223을 주목하기를 바란다. 또한 ME, SE간의 코드를 공유하기 위해 JSR-202 Class File Update가 승인되었다. 하지만 가장 큰 이슈는 바로 Microsoft의 Longhorn(native look and feel (Avalon), common language runtime (CLR))을 적극 지원 한다는 것이다. 많은 GUI의 업그레이드를 통해 그래픽 랜더링이 빨라질것이다. 아직 Mustang의 모습이 100% 정의된것은 아니다. 이번 Java One에서의 중요한 키워드중 하나인 'Participation(참여)' 측면에서 많은 개발자들이 Mustang 프로젝트에 참여하기를 바란다.

Dolphin(Java SE 7)에서 크게 강조될 부분 중 하나는 Language-level XML이 될것이라 한다. Dolphin까지는 아직 많은(?) 시간이 남았으니 추후에 다시 이야기할 기회를 갖도록 하겠다.
보통 SE의 새로운 버전이 나오고 약간의 시간이 흐르고 나면 Enterprise Edition이 발표된다. Java EE 5가 내년 초 정식 발표를 예정하고 있다. Java EE 5는 쉬워진 Web Service 지원, 다양한 Web Service 표준을 지원, EJB 3.0과 새로운 Persistence API, JSF를 활용한 Web Application의 개발이 주된 장점이다. Java EE 5는 Tiger의 특징을 잘 수용하고 있으며, 따라서 역시 EoD를 강조하고 있다. POJO 기반의 프로그래밍, Annotaion의 사용, Resource Injection등이 이에 해당한다. Web Service지원은 Java EE 5의 또다른 중요 테마이다. JAX-WS는 Web Service를 위한 상호운용 모델을, JAXB는 Web Service의 XML 데이터 바인딩 모델을 디파인한다.
Java의 새로운 스펙을 보면 Web Service를 상당히 강조 하는 것을 알 수 있다. 개발자들은 Service를 개발하고 디플로이 하기 위한 방법을 원하고, 관리자는 Service를 모니터링하고 관리하기 위한 방법을 원한다. 바로 이것이 ESB(Enterprise Service Bus)의 기본 컨셉이 되는 것이다. ESB는 Service를 개발, 디플로이, 실행, 모니터링, 관리하는 미들 웨어와 툴을 제공한다. Web Service하면 생각나는 키워드 하나가 SOA다. 바로 이 SOA(Service Oriented Architecture)를 위한 Java 플랫폼이 바로 JBI(Java Business Integration)다. JBI()는 Java 플랫폼에 비지니스 프로세스 엔진과 워크플로우 또는 문서 트랜스포메이션 엔진과 같은 컴포넌트를 플러그 인 하는 아키텍쳐와 인터페이스를 정의 한다. JBI를 통해서 유저는 레거시,백엔드 시스템을 제어하고 이들을 Java 환경에서 이용할 수 있다.
금년 JavaOne의 키워드를 살펴보면 'Participation'와 'Share'이다. 이 키워드를 음미해 보면 바로 알수 있을 것이다. 중요한 것은 '커뮤니티' 와 '오픈 소스'이다.
그럼 먼저 여러분이 잘 알고있는 Spring, JSF, Struts, Tiles 등 오픈 프레임워크에 대해 집어 보도록 하겠다. 이번 JavaOne에서도 로드존슨과 멕클라한의 인기는 하늘을 찔렀다. 특히 멕클라한은 'Next Struts'라는 주제에서 새로운 프레임워크인 Shale을 소개했다. 안정성을 입증한 Struts 과 UI 구성에 장점을 보이는 JSF는 멕클라한에 의해 탄생한 가장 인기있는 프레임워크이다. Shale는 바로 이러한 프레임워크들의 장단점을 수용하여 최상의 프레임워크로 탄생하게 될 것이라고 한다. 우린 멕클라한이라는 천재의 또하나의 걸작을 기다리고 있는 중인 것이다.

'Participation'라는 키워드의 관점에서 봤을때 우리가 집고 넘어가야 할 것은 Java.Net 을 통한 오픈 프로젝트이다. 이 중 가장 쇼킹하게 다가온 것이 GlassFish 프로젝트이다. 현재 엔터프라이즈 시스템의 가장 핵심을 담당하는 것이 바로 Web Application Server인데, 바로 이 Web Application Server를 오픈한다는 것이다.
GlassFish() 프로젝트는 Sun Java System Application Server Platform Edition (PE) 9을 CDDL(Common Development and Distribution License) 라이센스에 따라 오픈하는 것이다. CDDL 라이센스는 이미 Open Solaris에서 입증된 바와 같이 2차 생산물을 만든 노력을 충분히 인정하여 개발자의 노력을 가장 잘 인정하는 오픈 소스 라이센스이다. GlassFish 프로젝트 멤버들은 코드를 리뷰하고 버그 리포트를 제출하고, 자신의 요구사항을 전달하는 등 다른 팀원들과 함께 기술적 논의를 통해 자신의 능력 향상과 오픈소스 커뮤니티에 기여할수 있게 된다. 이미 안정성이 인정된 솔라리스와 Application Server를 공개 한것은 시장에 큰 파급 효과를 가져올것이고 개발자들의 기술력 향상에도 큰 도움이 될 것이다.
앞의 내용에서 변화하는 모습을 보면 중요한 키워드의 하나가 'ease'다, 쉽다라는 것을 가장 피부에서 느낄수 있는 것은 IDE인것이다. 그럼 IDE는 어떻게 진화 할것인가? Java One 하루전인 일요일 오후에 있었던 NetBeans Day에서 그 진화의 모습을 볼수 있었다.
Net Beans는 Swing, J2EE(EJB, JSP, Servlet)등 다양한 모듈이 포함된 상태로 배포되고 있어 별도의 플러그인 없이 J2EE 환경의 개발이 용이하다. 예를 들면 Http 모니터링, JSP 디버깅등 개발자가 원하는 기능을 다양하게 보유하고 있다. 만약 MIDP 개발 환경이 필요하다면 NetBeans Mobility Pack 4.1 를 설치하면 Mobile Information Device Profile (MIDP) 2.0과 Connected, Limited Device Configuration (CLDC) 1.1 을 지원한다.

우리에게 새로운 희소식이 하나 있다. 금번 Java One에서 얼리억세스 버전이 발표된 Java Studio Creator2가 올해 가을에 정식 발표될 예정이다. Java Studio Creator2는 NetBeans 4.1 기반으로 개발된 IDE로 JSF와 JDBC Rowsets을 지원하여 User Interface를 개발하는데 최적의 환경을 지원한다. 또한 Data Provider와 Style Sheet Editer기능을 가지고 있으며 Portlet, CVS, Refactoring을 지원한다. 또한 지원 언어에 한국어가 추가될 예정이다.
그러면 최근 이슈중의 하나인 모니터링에 대하여 생각해 보자. 실제 비지니스를 진행하고 있는 시스템은 다양한 종류의 소프트웨어와 하드웨어가 만나 서비스를 구성하는 것이다. 그동안 서비스상의 문제점을 찾기위해서는 상당히 많은 노력을 기울여야만 해왔다. 과연 OS에 문제가 있는지?, DB에 문제가 있는지?, 어플리케이션에 문제가 있는지? 알아내기 위해 너무 다양한 경우의 수를 테스트 해봐야만 하였다. 그러나 Open Solaris의 기능중에 하나인 DTrace를 쓰면 쉽게 찾을수 있다. 과연 어느 레이어에서 데이터를 잡고 있는지?, 병목 현상이 일어나는지? 우리에게 정확한 데이터를 쉽게 제공하는 것이다. 여기에 Net Beans의 Http 모니터링, JSP 디버깅, 프로파일링 기능등을 함께 사용하면 고객에게 보다 신뢰도 높은 서비스를 제공하게 되는 것이다.
앞으로 Java의 모습은 어떠할것인가? 현재는 복잡성(complexity)과의 싸움을 하고 있다. 이는 API와 tool에서 주된 해결 방법을 찾아야만 했고 새로운 Java 스펙을 통하여 해결되어 가고 있다. 미래의 모습은 다양한 디바이스에서 적용되는 Java다. Java의 최대 장점인 유연한 이식성과 확장성을 최대한 활용하는 다양한 디바이스들이 나올것이고 이 디바이스들은 우리의 생활을 보다 편하게 발전시켜 줄것이다. 이미 비행시스템이나 환경 감지기, 복사기, DVD 플레이어등등 폭넓은 분야에서 그성과를 보이고 있다. 아마 멀지 않은 미래에는 Java가 탑재된 로봇이 나오게 될것으로 보인다.
|
? 테크놀로지 에반젤리스트 ? Java, Open Computing 전문 ? JCO 전임 회장 |
"썬특집기사" 카테고리의 다른 글
- 타이거, 포효하다 (타이거 : J2SE 5.0 코드명) (댓글 1개 / 트랙백 0개) 2006/01/01
- 파워 오프 자바 (댓글 3개 / 트랙백 0개) 2006/01/01
2006/01/01 23:33
2006/01/01 23:33
댓글을 달아 주세요
아직 초보라 잘 몰라서 그러는데요 자바라는 것이 웹 어플리케이션 개발 외에도 다른 분야에서도 쓰일수 있나보군요! 보통 로봇 하면 C나 어셈블러로 짜야 된다는 생각하는데요 자바의 활용 분야에는 제한이 없는 건가요? OS가 탑재 되어있어 있는 어느것에나 실행 되어 로우 레벨 까지 건드려서 코딩할수 잇는 언어인건가요??
2007/09/10 11:19썬특집기사가 유용하네요..
2007/09/14 19:15좋은 정보 감사해요~
2007/09/19 04:51