NHN 그린팩토리 주변에 보면 고급 아파트들이 둘러쳐져 있다. 

  처음으로 와본 그린 팩토리. 2층과 1층은 일반인에게 개방되어 있기에 인근 주민들이 찾아와 시간을 보내는 모습이 색다르다. 하지만, 이 주민들 중 누군가는 그린팩토리의 창으로 비치는 태양이 눈부시다고 넣은 민원에 서명을 한 이도 있지 않을까? ㅋㅋ


  접수창구에는 올드멤버중 한분이신 채수원님이 주말알바로 접수요원을 하고 계셨다. 오랜만에 뵙기에 반갑게 인사드리고 약간의 기념품(스티커, 배지, 군것질류, 생수)을 챙기며 커넥트 홀로 들어섰다.




  앞자리로 이동하니, 첫발표자인 정상혁님과 다다음 발표자인 백기선님을 뵐 수 있었다.




  정상혁님은 '[Spring 3.0 -> 3.1 -> 3.2 따라하기]'라는 주제로 발표를 시작하신다. 소스코드가 많은 발표이기에 github 에 마크다운으로 작성된 문서를 기반으로 발표를 진행하신다. 이런 방법도 괜찮다 싶다. 개발과 관련된 발표자료를 만들때 소스코드를 이쁘게 표현하기가 참 쉽지 않은데, 그럴바에는 차라리 마크다운 문서로 보여주고 이를 공요하는 것이 적절해보인다. 프리젠테이션 파일로 만들어진 발표자료는 나중에 보기가 쉽지 않고, 시스템에서 텍스트 검색도 되지 않아서 나중에 다시볼 가능성이 극히 희박하다.


  스프링의 버전이 3.0에서 3.1로 넘어가면서 많은 변화가 일어났다. 스프링이 하위호환성(새로 출시된 프레임워크가 이전 프레임워크에 맞춰 개발된 기능을 그대로 유지-지원하는 것)을 강조하는 프레임워크지만, 코드의 개선을 위해서 3.1에서는 꽤 많은 부분이 변경되었다. 이 변경된 항목들에 대해서 찬찬히 짚어가는 시간이 지속되었다. 여전히 스프링 3.0을 이용하고 있는 프로젝트가 많은 상황에서 스프링 3.1 이상으로 업그레이드를 하려고 하는 이들에게 도움이 되었으리라고 본다.


  다음 발표는, 성능테스트 툴로 사람들의 많은 관심을 받고 있는 nGrinder에 관한 발표였다. 'nGrinder 초딩도 하는 성능 테스트'라는 제목으로 윤준호님이 발표하셨다. 낼모레 불혹을 앞두고 있는 '디자이너 출신'의 개발자는 nGrinder의 미려함에 대해서 강조하셨다.

  창조자인 개발자에게 자신의 창조물을 파괴하는 행위인 '테스트'는 참 힘든 일이다. 하지만, 자신이 만든 창조물의 성능과 안정성을 높이는 일은 외면해서는 안될 일이다. 어느 개발자들은 '테스트'는 품질관리QA(Quility Assurance)자에 의해서 진행이 되어야 한다고 말하지만, 나는 개발자가 일정수준 이상의 품질을 갖춘 제품을 만들어낼 의무가 있다고 본다.

  개발자가 일정수준 이상의 품질을 갖춘 제품을 만들어내기 위해서는 '테스트'를 진행해야 하는데, 그 테스트를 개발자 스스로 하게 하려면 어떻게 해야할까? '테스트'가 쉬워야 한다. 쉬워야 테스트를 쉽게 하고 제품의 품질을 높이면 자랑할 수가 있다. 테스트를 하면할수록 성능이 개선된다면 개발자는 자발적으로 테스트를 수행하게 될 것이다.


  nGrinder는 Grinder에서 시작되었다. Java 이외의 Jython과 Groovy를 지원하며, 테스트에 사용되는 스크립트를 자동생성하고 자체 SVN으로 관리해주고 테스트 결과를 저장하여 살펴볼 수 있는 기능을 제공한다. IDE와 클러스터링을 지원하면서 개발자의 '제품'에 대한 성능 테스트를 용이하게 한다. 이렇게 테스트를 용이하게 하면서 NHN내부에서도 620여명의 사용자가 11,000건의 테스트를 진행하며 성능 테스트 활동이 10배이상 증가하는 테스트를 달성했다고 한다.

  내가 만든 제품에 대해서도 성능테스트를 진행해봐야겠어. ㅡ_-);;


  세번째 발표는, whiteship 이라는 닉네임으로 '스프링 프레임워크'와 관련해서 잘 알려진 백기선님이 'Vert.x와 socket.io 이해 및 활용'이라는 주제로 발표하셨다. 특이하게, 자신의 큰 딸 '서연이'와 함께하는 발표였다. 발표 중간중간에 서연이의 돌발 행동에 참석자들은 흐뭇한 '아빠미소'를 짓고 있지 않았을까?



  시작에 '왕좌의 게임'에 나오는 말을 인용하며 '개발이 딸보다 쉬웠다' 라는 그의 말을 조금은 이해할 수 있는 순간이었달까?

Vert.x는 매우 쉽게 확장 가능한 차세대 비동기 애플리케이션 개발 플랫폼이다.

  Vert.x는 자바스크립트 엔진을 이용한 node.js와 비교되는 Java를 기반으로 하는 비동기 애플리케이션 개발 플랫폼이다. 백기선님은 Vert.x에 관심을 가지고 관련한 글을 꾸준하게 작성하고 있다. 지금도 꾸준하게 관련한 소식들을 게재하고 있다.

  Vert.x의 핵심요소는 Netty(IO 처리), Hazelcast(메모리형 데이터를 분산처리할 수 있는 그리스 시스템 제공)이다.

  Vert.x 의 주요 개념으로 Verticle, Vert.x. instance, Ployglot, Concurrency 에 대해서 하나하나 짚어나간다.

  Verticle은 Vert.x 에서 배포가능한 애플리케이션 단위이며 개별적인 클래스로더를 사용하여 실행해주며, 손쉽게 클러스터링할 수 있다. 수평적인 확장을 지원하며, 확장된 Verticle 간에는 메시지를 주고 받을 수 있다.

  Polyglot은 JVM에서 실행가능한 다양한 언어들로 작성할 수 있다.JavaScript, Ruby, Java, and Groovy 등의 언어를 지원하고 있으며 추가적으로 Clojure, Scala and Python 등의 다양한 언어를 지원할 것으로 보인다.

  Vert.x 를 이용할 때는 vertx-core, vertx-platform을 이용하면 된다. 버전업 되면서 사용하는 방법이 달라졌다고 한다. 라이브코딩을 하다가 당황하셨지만 능숙하게 대처하는 모습에서 그의 발표경험의 연륜을 짐작하게 만든다.



  node.js가 많은 인기를 끌게 만든 모듈 중 하나가 socket.io(전송 방식을 추상화하여 모든 브라우저와 모바일 기기용 실시간 애플리케이션을 개발가능하도록 하는 것이 목적)다. Socket.io를 이용해서 실시간 웹 기술을 이용하여 요즘 많이 관심받는 푸쉬Push 기술을 구현하기가 용이해진다. Socket.io 는 node.js의 모듈이다보니 자바쪽에서 아쉬워하는 녀석 중에 하나였는데, 기선님이 keesun/mod-socket-io 를 만들어내어 오픈소스로 제공하고 있다.

  스프링 4.0에서는 자체로 웹소켓WebSocket을 지원하는데, SockJS 구현체가 들어 있어 지원한다고 한다. SockJS가 서버의 연결이 끊어졌을 때 서버와 클라이언트가 서로 그 정보를 주고 받는 핑퐁(Ping-Pong, 이걸 핑퐁이라고 하는 것이군!)을 지원하지 않아 아쉽다고 하였는데, 과연 스프링에 포함되었을 때는 어떤 모습을 가질 수 있을지... 궁금하군.


개인적인 일정으로 여기까지만 듣고 Helloworld 세미나장을 나온다.

비가 내리는 날에도 많은 사람들이 참여한 세미나였고, 나로서는 처음 그린팩토리를 살펴볼 수 있는 좋은 기회였다. ㅎㅎ 하지만, 우리집(경기도 남양주시)에서 정자동까지는 멀고먼 여정이었다. Orz... 집에 돌아와서는 10시에 체력저하로 다운.

허니몬의 참가 트랙 및 현장 스케치
2011/06/20 - [Tech Trend(기술동향)] - [JCO] 2번째 Track : 도메인주도 개발(DDD)
2011/06/20 - [Tech Trend(기술동향)] - [JCO] 3번째 Track : Realtime Web application with Java
2011/06/20 - [Tech Trend(기술동향)] - [JCO] 4번째 Track : Framework Enginering
2011/06/20 - [Tech Trend(기술동향)] - [JCO] 5번째 Track : MongoDB with Play!

  지난 6월 19일, 삼성동 COEX에서 11번째 한국자바개발자컨퍼런스(http://kjdc.org/) 열렸습니다. KT가 주관사로 참여하고, 행사주관을 위한 이벤트기업과 계약하면서 행사진행이 이전의 컨퍼런스에 비해서 매끄러워졌다고 이야기들을 하시더군요. ^^

  원래는 MS에서 팝콘부스를 마련하여 맥주와 팝콘을 제공하려고 했었는데, COEX측에서 이를 거부하면서 팝콘돌이가 기운이 빠져있는지 계단에 널부러져 있습니다. 팝콘돌이가 열심히 돌아다니면서 개발자들과 어울려보려고 했지만, 우리나라 개발자들의 특성 중 하나인 '조용하고 내성적임'으로 인해 호응이 없자 기운빠져하는 모습이 역력했습니다.

  우리나라 개발자들도 잘 놀면 참 좋을텐데 말이죠. ^^;

  참고로, 저는 잘 못 놉니다. >ㅅ<);;;;

  계단 한구석에 앉아 넷북을 꺼내들고 뚜닥거리고 있는 사이에, 저와 비슷하게 도착한 이들이 들어가지 못하고, 행사장 입구에 있는 계단에 앉아서 트랙이 끝나기를 기다리고 있습니다. 가끔 해외 컨퍼런스에 참여한 개발자들이 보내오는 미국이나 해외컨퍼런스의 모습을 보면, 개발자들이 삼삼오오 모여 편안한 의자나 바닥에 앉아서 개발에 대한 이런저런 이야기를 나누면서 맥주한잔 하는 모습이 정말 부러웠는데, 그런 분위기를 연출할 기회가 잠시 주워졌었습니다. 하지만, 고품격(?) 전시회장인 코엑스에서는 행사관람객들이 아무곳에나 널부러져있는 것을 용납하지 않는 시설구조를 갖추고 있습니다. ㅡ_-); 어디 쪼구려앉아 있으면 시설물과의 부조화에 의한 위화감이 참 대단합니다.

이번 컨퍼런스는 크게 3개 주제로 진행이 되었습니다. 자바, 클라우드 컴퓨팅, 실습 의 주제로 7곳에서 50분씩 5개, 총 35개의 발표가 진행이 되었습니다. 오픈소스인 NoSQL에 속하는 MongoDB 쪽에 대한 많은 관심이 있었습니다. 아마도 클라우드 컴퓨팅, SNS의 대용량 데이터 처리에 대한 다양한 사례들이 나오면서 큰 유행을 일으키는 중이고, 앞으로도 NoSQL DB를 바탕으로 하는 다양한 서비스들이 출시될 것입니다.

  1500여 명의 개발자들이 참여한 이번 컨퍼런스는 제법 사람들로 북적였습니다. ^^; 저 사람들과 얼굴을 익히고 알게된다면 얼마나 좋을까요? 저에게는 살짝 무리일지도 모르겠습니다. 3개월동안 얼굴을 안보면, 얼굴과 이름을 까먹는 캐쉬메모리 기억력의 소유자거든요.... 헙...

한빛미디어에서 저자사인회를 주최하였습니다. 책을 구매하거나 가져온 책에 사인을 받으면 고급의 머그컵을 사은품으로 주는 사인회였습니다. 다만 아쉬운 점이라면, 한빛미디어가 행사장 안쪽에 부스를 개설하면서, 사인회도 구석에 마련되어 쉽게 발견할 수 없었다는 겁니다.  아는 분들이 모여 있어서 찾아가보니 저자분들의 사인회가 진행되고 있었습니다. 이렇게 구석에 마련된 사인회를 보고'헐~'하고 한탄이 절로 나오더군요.

  이왕 사인회를 할거면, 행사장을 향해서 자리를 잡았으면 더 많은 사람들이 찾아오고 저자분들도 많은 독자들과 만날 기회가 있었을텐데...


아마, 이날 코엑스에서 검은 백팩을 메고서 조용한 성격을 가졌을 것으로 보이는 사람들을 보셨다면,
99.99% 개발자였을 겁니다.


  많은 개발자들과 '우리나라 개발자' 들에 대한 이야기를 나누다보면 공통적으로 나오는 이야기가 있다.
'우리나라 개발자들은 조용하고 즐길 줄을 모른다.'
  오늘 JCO에서는 이례적으로 여성 아이돌그룹 '달샤벳'의 공연이 있었다.
http://yfrog.com/6fkhxz
  일반 대학 축제나 공연에서였다면 달샤벳은 열광적인 사람들의 환호성을 받으면서 공연을 마쳤을지 모른다.
기조연설이나 공연은 건너뛰고 와서, 사람들의 반응이 궁금해 물어보니, "팔짱을 끼고 조용히 경청했어요."라고 이야기해주는 이야기를 들으며 피식 웃음을 지을 수밖에 없었다. 그 아이돌 그룹은 얼마나 어색했을까?
  모두 팔짱을 켜고 조용히 그들의 춤사위에 집중하고 있었던걸까? ^^;;
  그나마 내가 만나는 많은 개발자들은 자신의 이야기를 상대에게 전하는 것에 어색해하지 않는다. 자연스럽게 자신의 생각과 기술에 대한 이야기들을 털어놓을 수 있는 흔하지 않은 개발자들이다. 한창 많은 것을 듣고 보고 배워야할 지금 내 입장에서, 그런 개발자들이 주변에 많다는 것은 너무나 이로운 일이다. ^^
   개발자는 자신이 배우고 알게된 것을 누군가에게 전하는 것을 즐길 수 있을 때 비로소 진정한 고수의 반열에 들어서게된다.
자신만 잘 아는 것은 결코 고수라 할 수 없다.
나도 내년에는 저 앞에 서서 발표를 하고 싶어졌다.

오늘 불현듯 '나를 위해서, 다른 이들을 위해서' 할 수 있는 것이 뭘까 고민해봤다.

OpenSource Project를 진행해보자.

내가 유용하게 사용하여 왔던 것들에 대한 보답을 할 때가 된 것 같다.

흠... 그런데 뭘 하면 좋을까??

'Programming' 카테고리의 다른 글

내가 짰던 코드를 회상하며,  (0) 2011.03.09
에디터에 대해서  (0) 2011.03.09
Types of software architects  (0) 2011.01.01
What dows 'PMD' mean?  (0) 2010.12.31
[Velocity] velocity.properties  (0) 2010.03.13

+ Recent posts