|
올해 5월달에 '자바원2006'에 갔을 때, 썬에 개발자 커뮤니티에 대한 지원을 담당하는 부서의 매니저와 이야기를 나눈 적이 있다. 나는 제작년 썬 테크데이 때 고슬링이 참석한 이야기를 꺼내며, 관련하여 개발자들의 참여가 많았는데 올해는 또 한국에 올 계획이 없느냐고 넌지시 물어본 적이 있었다. 그는 빙그레 웃으며 좋은 일이 있을 것이라는 암시만을 주고 성급히 자릴 떴었다. 8월이 되어서야 그때 웃은 이유를 알 수 있었고, 초청 메일에 많이 반가웠던 썬 테크데이 2006이 드디어 열렸다.
대다수의 개발자와 IT관계자들이 알고 있는 썬은 H/W 벤더의 성격이 큰데, 내가 본사에서 만나본 대다수의 엔지니어와 사람들은 IBM과 같은 서비스와 기술을 제공하는 회사라고 이야기를 한다. 썬은 IBM과 마찬가지로 CPU에서 H/W, OS, S/W까지 모든 제품 라인업을 다 가지고 있는 몇 안 되는 회사이다.
게다가 현재 엔터프라이즈 시스템의 표준이 되다시피 한 자바 기술의 만든 회사이다. 지금도 많은 벤더들과 자바 기술의 혁신에 많은 투자를 하고 있으며, 많은 기술을 보유한 글로벌 벤더다. 이런 벤더에서 제공하는 행사는 대체로 영업과 마케팅 적인 부분들이 상당수 많기 마련인데, 썬 테크데이는 상당히 개발자 친화적인 냄새가 많이 나는 행사이다.
이번 행사를 위해 방한한 알란 브레너(Alan Brenner)의 경우에도 썬의 ME 관련 기술 개발을 총괄하고 있는 부사장이다. 이런 그가 이번에 기조연설에서 발표한 내용은 짐작은 몇 년째 해오고 있었지만 언제 이루어 질까 하던 요즘 가장 큰 화두였던 'Open Source Java!!'였다.
우선 현재 화두이자, 한국 내 개발자들도 관심이 많은 Web 2.0관련해서 서두를 시작한 그는 지금의 변화가 사용자의 경험을 소중히 하는 방향으로 웹의 변화를 이끌었으며, 이를 통해 좀더 느슨한 시스템, 분산 시스템들의 요구는 더욱 커졌으며, 이를 통해 새로운 기회가 창출 되었다면서 이러한 기회에 참여할 것을 부르짖었다.
사용자의 참여가 바이러스처럼 퍼져 가고, 이러한 참여가 새로운 서비스를 창출하고 있는 모습을 우리는 Web 2.0을 통해 보고 있으며, 이를 지원하기 위해 전세계 최고의 기술을 가진 회사들이 투자를 아끼지 않고 있다는 것, 그로 인해 이러한 새로운 ECO 시스템의 한 축인 개발자 커뮤니티가 어떠한 기회를 부여 받고 있는지 좀더 구체적으로 느낄 수 있는 자리였다. 이러한 근간에는 물론 시장의 요구도 큰 몫을 했겠지만, 많은 개발자들의 아낌없는 사랑과 희생으로 진행되어 온 'Open Source' 가 새로운 패러다임의 변화를 가속화 했다고 생각한다.
알란은 뒤이어 썬의 모든 활동들이 그 동안 오픈 되고 표준에 기초해 진행되어 왔으며, 그 동안 많은 커뮤니티와 시장에서 요구하던 Java의 오픈 소스화가 오픈이 될 것이라는 획기적인 소식을 전했다. 자바 챔피언 커뮤니티에서도 많은 논의가 되었던 주제였지만 실상 쉽지 않은 문제였는데, 이번에 큰 결심을 한 듯 했다.
이로써 다양한 기술들이 자바에 적용되고, 열정적인 개발자들이 새로운 자바 버전에 많은 참여를 할 수 있는 계기가 제공되었다. 물론 썬 뿐만 아니라 개발자 커뮤니티에서도 우려의 목소리는 크다. 그 동안 썬의 노력과 일관된 자바의 행태를 지질 수 있었지만, 이후에는 그런 일관된 노력을 Open Source로 진행하는 쪽에서 이에 대한 고민과 유지를 해야 하지만. 어떤 방향성과 거기에 두는 가치의 척도는 지금과 많이 달라 질 수 있겠다는 생각을 해본다.
이번 행사에서도 개발자들과 에반젤리스간에 맥주 한잔 하면서 편하게 최신 기술을 논할 수 있는 자리도 마련되고, 다양한 부대 행사들이 마련되어 이년전 과는 또 다른 발전을 느끼게 했다. 특히나 "머 당연히 인기 있지 않겠어?" 하고 예상했던 AJAX 기반의 Hands-on Lab의 경우는 10일 일정이 9일 일찌감치 예약이 마감이 되는걸 봐야 했다.
더군다나, 해당 세션이 현재 AJAX 강좌를 연재하고 계신 신상철 박사님과 AJAX FAQ로 유명한 그레그 머레이(Greg Murray)가 진행하는 랩이니 더더군다나 탐을 낼만한 코너였다.
갔을 때는 뒤에 의자만 놓은 곳까지 사람들로 꽉 차고, 서있는 사람까지 있을 정도로 대 인기였다. 그레그는 현재 AJAX 아키텍트를 역임하고 있는데 작년 12월 썬 테크 레터(자바 기술을 이용한 AJAX의 활용)를 통해서 소개된 바 있는 엔지니어였다. 이번에 JavaEE5에 소개된 PetStore 2.0 데모를 설계하고 개발하기도 했다.
참석했던 행사 중에 가장 뜻 깊었던 건 유니버시티 월드 투어(University World Tour)로 대학 및 대학원생 대상으로 학생들에게 자바의 비전과 기술을 설명하고, 학생들이 즐겁게 자바 기술에 빠져 들도록 마련한 행사로 다양한 기술 소개 및 데모와 썬에서 현재 진행되고 있는 썬스타 연수 프로그램으로 구성되어 있었다.
국내에서 이공계 기피 현상이 커지고 있어서 좀더 이런 행사들이 정부나 기업체에서 많이 생겨야 한다고 생각하고 있는데 마침 이런 행사에서 학생들에게 자바기술의 비전과 미래를 이야기 할 자리를 갖게 되어서 무척 기뻤다. 학생들은 자바로 개발된 게임과 넷빈즈를 통해 만들어지는 예쁜 스윙(Swing) UI에 매혹 되는 것 같았다. 실상 자바로 클라이언트 쪽 개발을 해보지 않은 학생들이다 보니 룩킹 글래스(looking Glass)와 화려한 스윙에 놀라는 것도 당연하다는 생각이 들었다.
내가 진행한 코너는 Java Puzzle로 간과하기 쉬운 Java 언어의 특성을 간단한 코드와 문답으로 진행하는 코너였는데, 호응이 좋아서 재미있게 진행할 수 있었다.
또한 스폰서로 참석한 벤더들, 특히, 요즘 엔터프라이즈 시스템에서 레퍼런스 아키텍처로 각광받는 웹 서비스와 BPEL의 통합 솔루션을 제공하고 있는 오라클의 경우 지난 오라클e APAC 개발자 서밋 2006에서 세션을 진행했던 Omar Tazi(오픈소스 및 SOA 수석 에반젤리스트)가 SOA design 이슈를 특유의 재기 발랄한 입담으로 설명하는 자리를 가졌는데, 관련해서 SOA라는 이야기를 많이 듣기는 했는데, 어떻게 적용하고 어떤 식으로 설계를 해야 할 지 막막한 개발자들에게는 좋은 시간이 되었을 것 같다.
이번 행사는 예년과 달리 다양한 부대행사(넷빈즈 세미나, 오픈솔라리스 세미나, JavaME 세미나, Sun University World tour, Java University)와 앗 이슈들의 적용을 보여줌으로 개발자들에게 풍성한 컨퍼런스를 제공했다는 생각이 든다. 아울러 AJAX, Open Source등 화두가 되는 기술에 대한 다양한 교육과 세미나가 진행되어 무엇보다 최신기술에 목마른 엔지니어에게 좋은 시간이 된 것 같았다. 아울러 썬의 자바 소스 오픈에 대한 공식 발표로 새로운 변화를 느낄 수 있는 짜릿한 자리였다.
앞으로 자바가 어떻게 변화해 나갈지(지금까지 지켜본 것보다 더 많은 변화를 보일 것 같아) 기대가 되면서 아쉽게 마감한 컨퍼런스였다.
지난 11월 9일부터 이틀간 자바는 달라진 모습을 보여주었다.
Dynamic Java, 10년을 넘어 새로운 시대를 자바를 표현하기에 이보다 좋은 단어는 없어 보인다.
이틀이라는 시간이 현재와 미래를 향한 자바의 역동성을 오롯이 보여주기에는 부족하지만, 최신의 자바 기술을 총망라했던 이번 썬 테크데이는 참가자들에게 자바의 차세대 원동력의 방점을 확실히 찍어주었다는 느낌이다.
특히 일반적이고 일방적인 세션을 보완하는 실습과 심화 세션은 최근 각광받고 있는 스크린캐스트(screencast, 간단한 예제를 아주 짧은 시간 안에 만들어 내는 것을 비디오로 찍어 보여주는 것)처럼 청중들의 관심과 집중을 모으기에 좋은 시도였다고 생각한다.
첫날 행사장을 들어서는 순간, 예상보다 훨씬 많은 참가자들의 수에 놀랐다. 이번 행사 참가자들의 성향은 개인보다는 법인이 우세해 보였다. 이는 바로 자바가 두터운 엔터프라이즈 사용자층을 확보하고 있다는 반증으로 볼 수 있다.
그렇다면, 다이나믹 자바의 어떤 면면들이 소개되었는지 차근차근 짚어 보자.
더욱 강력해지는 모바일 (Mobile goes powerful)
자바가 원래 추구했던 정보 단말기 플랫폼에 가장 부합하는 시장이 바로 모바일 자바, 더 구체적으로는 핸드폰 자바 플랫폼일 것이다. 핸드폰의 사양은 눈부시게 진화하고 있다. 이제 핸드폰은 음성통화의 도구만이 아니라 현대인의 정보 소비 창구로 자리 잡았다.
핸드폰에서 TV를 보는 것이 미래의 일일 것이라고 여겼지만, DMB 장착은 이제 기본 사양이 되었다. 음성 통화 + 문자 송수신 + 카메라 + MP3 + DMB까지 핸드폰으로 할 수 없는 것은 없어 보일 정도로 풍부해진 기능성은 또 다른 가능성으로 이어지기에 충분하다.
이렇게 강력해진 하드웨어 플랫폼에 걸맞는 미들웨어를 추구하는 것은 당연한 이치 아닐까? 애플리케이션과 하드웨어를 이어주는 미들웨어 계층은 점점 더 고도화하고 있다. 핸드폰용 OS도 그렇지만, 애플리케이션 개발에 좀더 가까운 자바는 MSA(Mobile Service Architecture)라는 접근을 취하고 있다.
사실 Java ME는 유연하고 가벼운 미들웨어층 구성을 위해 부가 패키지(Optional Package)를 기능 추가의 단위로 하고 있다. 하지만 너무 많은 부가 패키지는 통일된 플랫폼의 이미지가 부족했다. MSA는 다양한 핸드폰의 기능에 부합하는 부가 패키지의 통합체이며, 이로 인해 개발자와 사용자가 기본적으로 기대할 수 있는 API와 기능이 완전해졌다고 볼 수 있다.
이미 해외에는 스마트 폰의 보급과 더불어 MSA를 이끌고 있는 노키아와 이에 적극 참여중인 모토로라, 소니, 에릭슨 등의 핸드폰 제조사들이 MSA를 통해 모바일 자바 애플리케이션의 새로운 장을 열 태세다. 국내에서는 이동통신 서비스 제공사가 핸드폰 제조사보다 시정 운영에 강한 관계로 기술적 드라이브가 강하게 이루어지지 않고 있다.
하지만 전세계 시장 측면에서 모바일 자바는 총체적인 세대교체가 한창인 셈이다.
MSA와 더불어 모바일 자바의 더욱 근본적인 변혁은 CDC(Connected Device Configuration) 의 부상이다. 사실 CDC은 핸드폰과 같은 작은 단말기보다는 셋톱박스나 콘솔 게임기 등의 비이동성 중대형 장치를 위한 플랫폼이었다. 하지만 하루가 다르게 발전하는 소형 모바일 장치의 성능을 타고 새롭게 조명되고 있다.
이미 CDC를 탑재한 스마트폰이 출시되고 있으며, 고사양의 핸드폰들을 중심으로 채택이 확대되어 갈 것으로 보이는 CDC는 Java SE에 준하는 API와 파워가 최대 장점이다.
물론 CLDC 자체의 성능과 API도 개선되고 있지만, 근본적인 제약을 바탕으로 설계된 CLDC는 한편으로 한계가 뚜렷한 플랫폼임이 분명하다. 많은 전문가들이 소형 모바일 단말기과 PC의 성능차가 점차 사라지리라는 장밋빛 전망을 내놓는 것을 보면, 모바일 자바에 있어서도 마찬가지 현상이 나타나며 따라서 CDC는 CLDC와 Java SE를 이어주는 가교 역할이 기대된다.
새로운 핵심과 민첩한 웹(New Core and Agile Web)
모바일 자바를 먼저 이야기하긴 했지만 한국에 있어 자바는 기업 IT에서 먼저 성공을 거두었고 저변도 넓다. 웹 애플리케이션 개발에 자바가 널리 쓰이긴 했지만, 기업 IT에서의 인기가 폭넓은 저변으로 이어지기에는 PHP와 같은 스크립트 기술에 개발 효율성과 생산성 등 매우 중대한 면들에 있어 뒤져왔던 것이 현실이다.
물론 JSP가 점차 자바 코드 없는 웹 페이지 개발로 탈바꿈하고 있지만, 여전히 그 뒤를 받쳐주는 컴포넌트와 데이터 모델이 정적인 자바 언어로 작성되는 한 동적 언어의 민첩한 개발과 배치 모델을 따라잡기에는 정말 역부족일 수밖에 없다.
그렇다고 자바가 이런 점들을 그냥 수수방관한 것은 아니다. JDK 6는 JSR 223 Scripting for the Java Platform을 기본 포함하면서 스크립트 언어와 자바 언어를 API로 이어놓았고, JDK 7은 마치 .NET의 CLR(Common Language Runtime)처럼, 모든 언어에 VM의 문호를 열려고 계획 중이다. 그렇다면 왜 이토록 자바의 타언어에 대한 구애가 뜨거워진 것일까?
“Time to Market.” 이것은 웹 애플리케이션 개발에 있어서도 마찬가지이고, 오히려 더욱 극명하다. 웹 2.0의 시대에 다시 한번 벤처는 기회를 부여받았고, 구글과 같은 대형 인터넷 서비스 업체에 인수되는 뚜렷한 수익 모델을 바라볼 수 있게 되었다.
좋은 아이디어를 남들보다 빨리 구현하여 세상에 내놓으면 성공이다. 그 목적을 이루는 데에 자바에 대한 개인적인 혹은 기업 IT에서의 선호도 따위는 문제가 되지 않는 것은 당연하지 않을까? 이 시장은 확실히 떠오르고 있고, 기업 IT에서의 성공이 아무 노력 없이 민간 IT로 이어지지 않는다는 인식이 자바에도 반영되기 시작했다.
그 움직임의 또 한 축을 이루는 것이 자바의 Ajax 지원이다. 서블릿 2.5 스펙 리드로 알려진 그레고리 머레이(Gregory Murray)가 이끄는 jMaki(https://ajax.dev.java.net/)는 Dojo와 같은 Ajax 툴킷을 확장하여 Ajax 컴포넌트를 개발하고 운영하는 경량 모델을 제시하는 Ajax 프레임워크는 이번 테크 데이에서 가장 주목 받은 이슈 중의 하나였다.
투어는 다양한 분야에 다양한 시뮬레이션들로 OS, Server, Storage등 다양하게 준비 되어 있었는데, 내게 가장 흥미로 왔던 부분은 Sun Ray 2 였다. 한국내에서는 한국적인 어플리케이션들이 많아서 가능할까 싶은 부분도 있었지만, 예전보다 훨씬 작아지고, 그전에는 그냥 넘어갔던 Sun Ray를 다시 보게 된 부분은 보안성과 flexible office 환경에 있었다. 회사내에서도 개별로 지급된 컴퓨터는 개인 설정하고 나서는 개인들만 쓰기 좋고 다른 사람들은 쓰기 위해서는 시간이 필요하고, 자료 공유도 잘 안되는게 사실인데, Sun ray의 경우 아무나 동일한 클라이언트에서 작업할 수 있고, 개인의 환경 설정한 부분들을 어디서 던지 사용이 가능했다. 그리고 타란텔라라는 소프트웨어를 통해서 윈도우 클라이언트도 구동이 가능했다. 재미난 투어를 마치고 온뒤 Pauline의 한마디는 우리를 경악하게 하였다. 우리가 점심 전에만 왔으면 현재 CEO에서는 물러난 Scott하고 점심을 먹을 수도 있었다는 것이다. 원래 정해진 것은 아니였지만, 정말 아쉬운 자리였다. 컨퍼런스에서만 보던 Scott을 식탁을 마주하고 볼 수 있었다니 참 아쉬웠다.
사실 jMaki의 j는 Java가 아닌 xxJavaScript이다. Maki는 일본어로 ‘감싸다’라는 뜻으로, 흔히 우리가 말하는 레퍼(wrapper)인 셈이다. 즉, jMaki는 자바에 연연하지 않고 Ajax의 핵심 프로그래밍 언어인 xxJavaScript를 활용하기 위한 전방위적 접근을 시도하고 있으며 그 수단으로 자바 표준의 JSP나 JSF가 쓰인다는 점이 자바 개발자들에게도 친근하게 다가갈 수 있는 면이다.
하지만 여전히 xxJavaScript가 껄끄럽다면, 구글이 내놓은 GWT(Google Web Toolkit, http://code.google.com/webtoolkit)은 매우 매력적인 대안이 될 수 있다. GWT는 마치 스윙으로 GUI를 짜듯이 웹 UI를 자바로 작성할 수 있는 모든 환경을 제공한다.
GWT의 개발 언어가 자바라는 것은 곧 IDE의 지원도 의미하는데, 벌써 넷빈즈, 이클립스, IDEA 등이 지원에 나서 개발 편의성에 더욱 탄력을 받을 전망이다.
이쯤에서 썬이 매우 공을 들이고 있는 넷빈즈(NetBeans)에 대해 언급하지 않을 수 없겠다. 이클립스가 사실상의 자바 표준 IDE가 되어가고 있는 가운데 넷빈즈의 불꽃 투혼은 당장의 선전도 좋지만 앞으로의 가능성도 높게 칠 수 있다.
아직 에디터 본연의 기능에서 관록의 이클립스를 바로 따라잡기는 힘들지만, 글래스피시(GlassFish)와 연동하는 완전한 Java EE 5 애플리케이션 개발은 사실상 넷빈즈 밖에는 할 수 없다는 생각이 든다. 물론 EJB 3 지원은 다른 IDE에서도 시작하고 있지만, Java EE 5 전체를 아우르는 지원은 넷빈즈가 현재에도 갖고 있는 강점으로 꼽을 만 하다.
더욱 매끈해지는 Java SE의 GUI와 성능이 넷빈즈에게도 큰 힘이 되리라 보여지며, 개발자에게는 더 다양한 선택지가 생긴다는 점에서도 환영 받을 일이다.
커넥티드 엔터프라이즈
MS의 .NET으로 포문을 연 웹 서비스는, 자바가 뒤쫓아가는 형국으로 내내 비춰졌다. 그러나 실제 기업 IT의 주도권을 잡고 있는 자바의 부족한 연결성은 많은 문제를 야기해왔고, Java EE 5는 전례 없는 빠른 기술 공개와 전파로 문제의 해결을 서두르고 있다.
JAX-WS는 JAX-RPC의 굴레를 벗어 던지고 XML 기반 웹 서비스 본연의 자바 API로 돌아왔다. 불완전했던 Object-XML 매핑도 이제 W3C XML 스키마 100% 지원이라는 목표를 달성, 자료 표현력의 부족을 해결했다.
한편 SOAP/WSDL만이 웹 서비스의 전부가 아님은 MS의 WSE(Web Services Enhancement)의 호평으로 입증이 되었다. 특히 기업 환경에서 시큐리티의 중요성은 더 말할 나위도 없다. 하지만 WS-Security와 같은 WS-* 스펙의 난해함은 많은 사용자와 개발자들에게 손사래를 치게 했고, .NET-자바 진영간의 상호운영성에까지 영향을 미치며 웹 서비스 채택에 걸림돌로 자리 잡는 듯 보였다.
WSIT(Web Services Interoperability Technologies)는 MS의 WSE에 해당하는 JAX-WS의 확장팩이다. 다양한 WS-* 스펙의 지원 뿐아니라, 넷빈즈의 툴지원도 기대할 수 있다. MS와 직접 만나 상호운영성 테스트를 정기적으로 가질 정도로 현실적인 문턱을 낮추는 데에도 매우 열심이다.
솔직히 Java SE 6에서 JAX-WS가 기본으로 탑재된 것도 환영할 일이지만, WSIT까지 들어갔으면 어땠을까 생각도 해본다. 그도 그럴 것이, .NET 측의 차기 버전인 WCF에는 WS-* 스펙 지원이 기본으로 들어가 있기 때문이다. 아직 자바 API 표준이 아닌 문제가 있긴 하지만, WSIT은 자바의 연결성에 또 다른 차원을 연 것임이 분명하다.
Java EE 5의 RI인 글래스피시의 성장은 매우 고무적이다. 그 동안 썬이 내놓은 Java EE RI는 학습용 이상의 의미를 지니기 힘들 정도로 완성도나 성능에 한계가 있었다. 물론 EJB가 필요 없다면 서블릿/JSP의 RI인 톰캣을 쓰면 되고, EJB라면 JBoss도 무료로 쓸 수 있었다.
하지만 오늘날의 Java EE 기술은 서블릿/JSP/EJB라는 3대 주요 웹 애플리케이션 구성 요소 이상의 기술들이 점차 필수로 자리잡고 있어 완전한 지원이 절실하다. XML을 다루는 JAXB와 웹 서비스를 위한 JAX-WS, 그리고 JSTL과 JSF와 같은 웹 티어 등이 그러하다. 기존 Java EE RI와는 다르게 오픈 소스 프로젝트로 개발되고 있다는 점은 글래스피시의 커뮤니티로서의 성장성을 가늠하게 한다.
글래스피시에 기여해 온 나로서는 매우 보람찬 일이기도 한데, 표면적으로 좋은 기술 이상의 역할을 하기 위해서는 매우 중요한 움직임이라고 생각한다.
올해 한국 자바계의 대미를 장식하는 썬 테크데이는 흥미로움과 견실함을 모두 선사하는 뜻 깊은 자리라고 말하고 싶다. 아직 Java SE 6 출시와 자바 코어 플랫폼의 오픈 소스화 등 연말을 훈훈하게 할 소식들이 남아 있지만, 2007년은 완전히 오픈된 Java EE 5와 Java SE 6로 더더욱 신나는 자바 개발이 가능하지 않을까 점쳐본다.
일반 세션의 정보가 이미 웹에 있는 것들이 많았고, 발표자들의 중복이 있어 다소 아쉬움이 남지만, 2년만에 재개된 썬 테크데이는 자바를 사랑하는 이로서 무척 반갑고 또 유익했다. 앞으로도 이와 같은 개발자간의 만남이 계속 이루어지길 고대한다.