부제 : RIA를 위한 JavaFX 그리고 그의 진화

첫번째 세션에는 Prototype.js 저자 이신 김영보 선생님의 MethodChain과 Ajax 애플리케이션 아키텍처에 대한 내용이였습니다. 

하나의 점으로 시작한 이번 PT는 원리와 개념적인 설명부터 이어졌고 작은 점 하나의 의미는 보는 사람들에 따라 다르고 이 점이 아키텍처에 비추어 설명해 주셨습니다.

 


좀 다른 면이 있지만 <쎙떽쥐페리의 어린왕자 中에서> 코끼리를 삼킨 보아뱀과도 같다 라는 느낌을 받았습니다.  

아키텍처의 본질은 작은 점으로 시작되었지만 그 깊이는 알 수 없이 깊어 수많은 문제점에서 유연하게 대처하고 그 넓이는 무한히 넓게 확장성을 갖어야 한다는 의미를 담고 있었던 거 같습니다.

“새소리, 물소리” 
군인은 지도를 보면 새소리와 물소리가 들려야 한다 라는 선임하사의 말을 연상하시며 역시 아키텍처에 사전적인 것이 아닌 본질을 이해하기 위한 설명이 이어졌습니다. 

이어 설명한 HTML, CSS, DOM, JavaScript, XML, JSON, Ajax 까지 Ajax Application를 위한 기본 도구(언어, 디자인 등)들이 갖는 일반적인 특징과 기술적인 특징에 대해서 간략하게 설명했고. Ajax Application에서 getElementById()가 갖는 개념에 대한 중요한 포인트를 지적하였는데 간단히 넘어가서 다시 한번 언급하자면

var dom = document.getElementById( ‘domBook’ ); 
위의 코드가 갖는 개념, 목적, 관련 기술에 대해 정확히 알아야 한다는 것 이였다.

짧고 간단하게 집고 넘어간 부분이지만 Ajax Application 개발에 있어서 가장 중요한 부분이라 생각합니다..  우리가 많이 사용하고 있는 Porototype, jQuery, Script.aculo.us와 같은 라이브러리들 역시 이런 도구들의 원리와 본질을 잘 파악하고 있고 발전에 잘 대응하고 있기 때문에 성공한 JavaScript 라이브러리도 탄생할 수 있었을 것입니다.

Framework의 범주는 주요 라이브러리들과 MethodChain에서 기술적으로 고려하였던 부분을 비교해서 간락햐게 설명하셨데 MethodChain도 범주에 속한 조건(?)들을 대부분 만족하고 있는 것 같습니다.  하지만 많은 라이브러리가 이미 기본 범주를 뛰어넘어 RIA를 위한 좀더 나은 프레임웍 이상으로 발전해가고 있죠.  빨리 MethodChian도 세계적인 라이브러리들에 동일 선상에 위치하도록 발전되었으면 하는 바램입니다.

이로써 국내 오픈 JavaScript 라이브러리가 3개가 되었습니다.
레이쥬님 swaf 2.0 - http://reizes.egloos.com/ (개발 중단 하신 듯)
김영보님 MethodChain - http://www.methodchain.com/ 

마지막으로 Framework의 핵심은 "접근성과 확장성" MethodChain이 풀어야할 숙제들 중에 하나가 아닐까 생각이 듭니다.   jQuery가 세계적인 라이브러리가 된 것은 바로 두 가지 “접근성”, “확장성” 의 두 마리 토끼를 잡기 위해 노력했기 때문일 것입니다.

jQuery의 문서화가 꾀 잘되어있고 이는 개발자들이 쉽게 개발에 참고할 수 있는데 큰 도움을 주엇습니다.  그로 많은 개발자들이 확장기능이나 플러그인을 개발하여 공유하는 커뮤니티가 형성되다 보니 점차 jQuery의 사용률은 높아갔던 것입니다.  더불어 노키아, MS 등과 같은 기업에서도 웹 런타임 환경으로 임베드 되는 것들이 jQuery를 세계적인 라이브러리로 만드는데 보탬이 되었습니다.

이번 1세션에서는 MethodChain 에 대한 기술적 이슈보다 Ajax Application 아키텍처에 대한 기본으로 가져야 할 사상에 대해서 좀더 이해할 수 있는 시간이 되지 않았나 싶습니다.  

다른 주요 라이브러리와 MethodChian에 기술적인 비교에 대한 내용이 이어졌지만 실제 구현이 아닌 Firebug를 통한 코드 Trace를 하여 설명하기가 난해하군요. ^^;

MethodChain를 포함 대부분의 JavaScript 라이브러리가 갖는 기능들 중 MethodChain이 다른 라이브러리들 보다 좀더 개선된 메커니즘을 갖는 다는 내용이였습니다.
PT자료를 보시면 어떤 부분에서 차이가 있는지 간략하게 정리가 되어있으니 좀더 자세한 내용은 JCO의 PT 자료를 참고하면 됩니다.

시간이 여유로웠다면 여러 JavaScript 라이브러리들의 차이점들에 대해서 자세히 알 수 있었을 텐데요. 아쉽습니다.



제 2세션 JavaFX : RIA를 위한 새로운 플랫폼
이번 세션을 많은 분들이 기대가 컸던 것 같습니다.  새로운 플랫폼에 대한 관심도도 관심도지만 발표자가 신상철 박사님이라는 것 때문이였는데요.  신상철 박사님의 히스토리를 보니 열정이 대단하신 분이라고 생각이 들었습니다.  이번 세션을 통해 처음 뵈었지만 발표하는 내내 정말 열정이 묻어 나왔던 시간이였습니다.  

모든 PT가 영어로 되어있고 중간 중간 영어를 사용하신다고 하시더니 문장만 영어가 아니였지 60~70%는 영어를 사용하시더군요.. 새로운 용어도 있어서 생소했지만 그래도 적응할 만 했습니다.

신상철 박사님은 http://www.javapassion.com 을 통해서 자세히 만나보실 수 있습니다.
대부분의 컨퍼런스 참여자가 개발자일 것이라는 배려로 개념적인 부분들은 중요한 부분만 집고 넘어갔습니다.  JCO의 PT자료를 참고하시면 JavaFX의 특징에 대해서 쉽게 이해하실 수 있고 위에서 언급한 사이트에서 JavaFX의 좀더 상세한 강좌를 볼 수 있다고 하니 관심있는 분이라면 꼭 챙겨 보시기 바랍니다.

 

JavaFX Script의 특징
• Declarative, statically-typed scripting language
• Facilitates rapid GUI development
• Many cool, interesting language features
• Runs on Virtual Machine for the Java™ platform
• Deployment options same as Java programs
• Fully utilizes Java class libraries behind the scenes
• For content designers and Media engineers

를 소개로 실제 구현을 위한 위의 내용을 세세히 설명해 나가기 시작했습니다.
JavaFX Script라고 해서 그런지 왠지 JSON(Javascript Object Notation)과 별반 달라 보이지 않았다. PT자료를 보시면 아시겠지만 표기법의 차이가 조금 있을 뿐 매우 흡사해 보였습니다.  그 뒤에 보지 못한 다양한 기술들이 있겠지만 ^^;

그외에 Binding 이라는 개념에 있어서는 Callback 함수와 유사한 느낌을 받았지만 JavaFX에서는 bind 라는 메커니즘을 사용한 것 같습니다.



PT자료 소스코드 발췌
// Code in the previous slide
// The bind keyword, placed just before the invocation of makePoint,
// binds the newly created Point object (pt) to the outcome of the
// makePoint function.
var myX = 3.0;
var myY = 3.0;
def pt = bind makePoint(myX, myY);
println(pt.x); // 3.0

myX = 10.0;
println(pt.x); // 10.0

scale = 2.0;
println(pt.x); // 20.0

특별히 어려운 점은 없어 보입니다.  매우 손쉽게 접근할 수 있지 않을까 생각이 듭니다.  그 뒤로 이어지는 구현 설명으로 NetBeans에서 실제 준비된 예제와 디버깅을 통해서 개발자들에게 매우 쉽게 설명해 주셨습니다.


마지막으로 가장 인상 깊었던 내용이였는데 JavaFX를 이용한 모션 트위닝(Motion Tweening)과 이펙트(Effect) 예시를 아주 세세히 모든 단계로 쪼개어서 보여주셨습니다.

예제 소스를 JCO에 올린다고 하셨던 것 같은데 잘 모르겠네요.  위에서 언급한 사이트에서도 보실 수 있다고 하니 예제는
 그곳을 통해서 받아서 보셔도 될 것 같네요.




PT자료 소스코드 발췌
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

Stage {
   title: "My circle"
   width: 100
   height: 100
   scene: Scene {
     content: [
        Circle {
          centerX: 50,
          centerY: 50,
          radius: 40,
          fill: Color.RED
        }
     ]
   }
}


3번째 세션 : RIA Technology Introduction
좋은 내용의 발표 내용이 많았지만 발표장 인터넷 환경 때문인지 조금 어수선했음 발표자료가 올라오는 데로 좀더 요약해서 올릴 예정



마감하며….
일단 발표하신 모든 분들과 컨퍼런스를 준비하신 분들께 감사함을 전합니다.  이번 컨퍼런스를 통해서 RIA 플랫폼을 위한 Java의 변화와 기술에 대해 간략하게 알 수 있게 되었던 기회가 되었던 것 같습니다.  

아쉬운 점은 Java개발자들에게도 상당히 많은 웹 개발 이슈가 있을 텐데 Java의 RIA 관련 세션이 3개 밖에 되지 않았다는 것입니다.  아마 내년엔 Java와 RIA는 더욱 끈끈한 관계로 세션이 개설되리라 확신을 합니다.  
그리고 세션이 주제별로 분류되다 보니 둘 중에 하나는 포기해야 하는 문제도 생기더군요. 

내년 내 후년에는 좀더 발전된 모습으로 개발자들에게 좋은 내용으로 다시 볼 수 있으면 좋겠습니다.  경품은 좀더 많아지고 여성 개발자들도 더욱 많이 올 수 있는 이벤트도 좀 ^-^
웹 앱스콘에 비해 여성분들이 몹시 작음은 솔로 개발자들에게 JCO 컨퍼런스에 참가에 대한 동기 유발이 그만큼 작아진다는 것 -.-;

고무님 말씀 했던처럼 10년 후에는 가족들과 함께 모이려면 쏠로 탈출구가 되어야 되지 않을까요?  (잘못된 해석인지 알지만 ^-^;;)



신고
Posted by Rhio.kim

부제 : RIA를 위한 JavaFX 그 시작

올해는 관심 섹션인 RIA 쪽으로 발표가 많이 준비가 되어있고 작년에는 필요한 섹션만 보구 왔었는데 올해는 다 보고자 하는 생각에 개회식부터 참석하기 위해서 아침 일찍 서둘렀습니다.  

아침 일찍이라서 인지 개회식에서는 준비된 자석에 1/3정도는 비어있었던 것 같습니다.  오고 싶어도 오지 못핸던 분들도 계실 것이고 아무튼 작년에 비해 적어진 것 같다는 느낌을 많이 받았습니다.  다른 분들의 후기도 보니 그렇게들 느끼셨나 보군요.

경제가 어려울 때 자기 개발에 더욱 노력해야 하지 않을까?  라는 생각이 문득 들어 개회식 때 짬시간을 이용하여 간단한 그래프를 그려봤습니다. 

 

그래프는 통계 자료에 의한 것이 아닌 전적인 개인적인 경함과 추측을 바탕으로, 이상적인 그래프를 생각하면서 그렸습니다. ^^;

경제가 어려울 때 사람들이 느끼는 체감 여유는 경제 지표보다 더욱 더 힘들다는 점입니다.  반면 자기 개발은 힘들 때 일수록 더 많이 하고 경제가 풀리면 또한 반대로 느끼는 여유는 더 많게 느끼게 됩니다.  여유가 있을 때 일수록 자기 개발도 더욱 하면 좋겠지만 말이죠. 

여유가 있을 때 즉 파란색 그래프와 녹색 그래프가 그리는 보라색 면적은 다른 방면으로 자기 개발을 해야 할 부분입니다 저 부분이 넓을수록 좋겠죠?  각설하고...



이번 10회 컨퍼런스는 Java와 RIA 관련 섹션이 3가지나 개설되어 마지막까지 즐거운 시간을 보낼 수 있었습니다.  아쉽지만 폐회식만 보지 못했습니다.

첫 개회식은 간소하게 현재 JCO 최상훈 회장님의 간략한 개회사를 통해서 시작되었고 다음으로 전임 회장님들 중 1대 (현)박용우 고무님, 3대 양수열님의 축사가 있었습니다.  축사 내용 중 매우 중요한 내용이 있었습니다.

JAVA에 대한 Keynote는 아니였지만 박용우 고무님은 JCO의 미래에 대한 양수열님은 Java개발자들에 대한 현재와 미래에 대해 이야기 해주셨습니다.

박용우 고무님의 축사 내용 중 “10 년 후에 가족들과 손잡고 함께 할 수 있는 컨퍼런스”에 대해 말씀하셨습니다.  이 말을 듣고 많은 생각이 들었지만 지금은 별로 생각나는게 없네요.  국내 개발자 컨퍼런스와 강의 세미나들의 모습은 왠지 모를 딱딱함이 많이 묻어있는데 비해 외국의 경우에는 매우 자유스럽고 오픈된 느낌을 많이 받습니다.  

10년 후에? 아니 좀더 빠른 시일에 박용우 고무님 말씀처럼 JCO가 가족들과 함께 즐길 수 있는 좋은 축제의 한마당이 되었으면 좋겠습니다.  웹 앱스콘과 같은 컨퍼런스 또한 ^-^

그리고 양수열님의 발표에서는 Java개발자가 가장 많이 사용하는 IDE는 무엇이냐는 질문과 함께!!
이클립스의 스플래시 화면(초기 로딩)에 보이는 태양을 가리는 모습처럼 개발자의 현재는 암흑기를 그대로 보여주고 있다라고 아래 화면을 인용해 말씀해 주셨습니다.
 

그 뒤로 좋은 말씀을 많이 해주셨는데 위에 그래프 그리느라 생각이 나질 않네요 -_-;;
하지만 개발자들은 100번의 좋은 예시보다 한번의 코딩인데요.  저 태양을 가리는 것을 걷어낼 수 있도록 개발자들이 어떤 노력을 해야하는 지 혹은 비젼에 대한 언급이 있었으면 좋지 않았을 까라는 아쉬움이 남는다.  

잠시 삼천포로 빠져서 위 내용을 현 국가 상황에 적용해보면 태양은 대한민국 달은?  여담(?)이였습니다.  태양이 대통령, 달은?  이런 식으로 되어 빨리 태양을 가리는 모든 것들이 사라지길 바랍니다.

그리고 다음으로 각 주요 Java관련 커뮤니티 대표분들의 소개가 있었습니다.

그리고 이벤트로 JCO 티셔츠를 던져 주었는데 첫 박용우 고무님이 딱 저를 향해서 던졌는데 사방에서 날라오는 검은 손 0.o;;; 들에 의해서 어부지리로 다른 곳에서 가만히 앉아 계시던 분에게 가더군요.  참는 자에게 복이 있나니 ^-^;  결국 가만히 참고 앉아 있다가 티셔츠는 받지 못하고 밖에 부스에서 받을께 있나 하고 나갔는데 눈에 띄는 부스가 없더군요.  결국은 모두 허탕 -.,0;

제 눈에 가장 띄었던 건 MS의 멀티터치 테이블 이였는데요.  이미 아이팟 터치에서 경험하고 있어서 인지 Surface 구현에 대한 것이 궁금했는데 그외의 것들만 설명해 주셔서 ^-^;;  원하는 것은 얻지 못하고 왔습니다.  그리고 실버라잇으로 구현한 게임 – 추억의 게임 시노비? – 으로 높은 점수를 받은 사람들에게 경품을 나눠주는 것 같던데 경품이 좀 약한 듯 -_-;; 그래도 게임을 즐기는 사람들은 상당히 많았던 것 같습니다.


쓰고 나니 JCO의 후기라고 보기엔 조금 멀어 보이긴 하네요.  컨퍼런스의 분위기는 느낄만한 것이 별로 없네요.. ^-^;;

발표 내용에 대한 후기는 다음에..


신고
Posted by Rhio.kim