컨퍼런스 마지막 날이다. 오전에 두개, 오후에 두개의 세션이 있지만, 보통 오후에는 오늘 내로 집으로 가려고 하는 많은 참가자들이 미리 떠나기 때문에 사실상 오전에 중요한 세션들이 마무리된다.

첫번째 세션은 JMS in POJO. JMS쪽으로 책도 많이 쓰고, 왕성한 활동을 하는 나이가 지긋하지만 정력이 넘쳐보이는 분의 발표. 내가 딱 좋아하는 스타일의 발표였다. 처음부터 끝까지 라이브 코딩을 해가면서 복잡하고 지저분한 올드스타일의 JMS코드를 스프링의 JMSTemplate와 POJO JMS를 이용해서 5단계의 점진적인 개선을 해나가는 과정을 보여주는 것이었다. 갑자기 덜렁 최선의 소스만 들여대면 사실 그 진가를 알 수 없다. 하지만 점진적인 개선과정을 통해서 그 변화가 주는 의미가 무엇인지 하나씩 설명하면 그 기술이 추구하려는 원칙과 철학이 무엇인지, 장점이 무엇인지 명확하게 느끼게 해줄 수 있다는 장점이 있다.

JMS는 그간 스프링에서 가장 사용하지 않던 기술 중의 하나이다. 좀 더 적극적으로 적용했으면 좋았을 것이라는 후회를 가장 많이 하게 한 기술이기도 하고. POJO기반의 JMS 호출이 가능하다는 것은 이미 지난 컨퍼런스에서 들었지만 역시 시도해보고 있지 않았는데, 이제는 본격적으로 사용해야 하지 않을까 싶다.

데모에서는 OpenJMS라는 아주 단순하고, 깔끔한 JMS구현을 이용했다. JNDI와 JMS구현을 함께 가지고 있고, 설정과 설치 모두 아주 가볍기 때문에 개발 과정에서 사용하기 적합한 듯 하다.

JMSTemplate의 스프링의 Template/Callback 스타일을 JMS코드에 적용한 것이다. 그 것 많으로도 많은 장점이 있긴 하지만, 스프링과 JMS API에 대한 종속까지 깔끔하게 제거하게 만들어주는 것이 POJO방식의 JMS 기능이다. 이 것을 이용하면 더 이상 JMS와의 인터페이스 부분이 노출되지 않는 깔끔한 POJO기반의 로직을 구현해서 JMS를 통해서 그대로 사용할 수 있게 해준다. POJO의 장점인 테스트도 깔끔할테고. 물론 JMS Template을 사용해서 delegate를 하는 방법도 있겠지만, 매번 그 번거로운 호출과 변환작업을 하는 것에 비해서 스프링이 제공하는 깔끔한 설정 하나로 그 모든 것을 처리해주는 기능을 사용하는 것이 당연이 나을 것이다.

스프링이 POJO 프로그래밍 모델을 지원하기 위해서 많이 사용하는 기법 중의 하나가 Reflection과 AOP이다. 자바의 객체지향적 스타일의 언어만으로는 충분하지 않기 때문이다. 그것이 POJO의 적용의 범위를 넓혀주고, 유연성을 주는 것은 사실이지만 이런 메타-프로그래밍 스타일은 그만큼 암시적인 규약과 관례를 따라야 하고, 런타임이 아니면 검증되지 않는 것이 있다는 단점이 있다. 그럼에도 자꾸 애노테이션 사용이 늘고, 리플렉션을 이용한 CoC스타일의 사용방법이 스프링에 늘고 있는 것은 그것 주는 장점이 그만큼 크기 때문일 것이다. 흠.. 그렇다면 결국 TypeSafety를 위해서 JavaConfig으로 가야하나?

 

둘째시간은 Rop Harrop의 Concurrency시간. Spring dm Server를 만들면서 고민했던 concurrency와 관련된 다양한 주제와 내용을 빠르고 정확한 설명과 함께 잘 이야기 해주었다. 사실 나도 직접적으로 concurrency를 고민해서 무엇인가를 만들어 본게 언제인지 잘 기억이 나지 않는다. 로우레벨 기술에서의 해방을 외치는 자바서버환경으로 온 뒤로 더욱 그랬다. 오래전 서버제품 자체의 개발에 몰두할 때 프로세스와 쓰레드, 풀과 각종 락과 씨름하던 때가 언제인지 기억도 가물가물. 자바의 쓰레드 기술이 여타 언어보다 초창기에 빠르게 지원되었던 것은 사실이지만 사실 1.5가 나오기전에는 정말 힘들었던 것이 사실이다. 1.5부터 시작된 JDK차원의 고급 concurrency지원기능은 Rop이 데모를 통해서 보여준 1.7에 이르러서는 이러게 편리해도 될까 싶을 정도로 좋아졌다. 초간단 Spring dm Server를 구현한 코드를 통해서 서버차원에서의 다양한 concurrency기술의 선택 문제와 특징을 보여준 데모도 좋았다. 조만간 블로그에 소스와 함께 공개한다고 하니 기대해봐도 좋을 듯.

 

마지막 컨퍼런스 식사인 점심을 먹고 잠깐 휴식을 취하러 방에 들어왔는데, 누가 침대에 본드를 발라놨는지 -_- 침대에서 몸이 착 달라 붙어 떨어지지가 않았다. 마지막 오후 세션이라 별로 들을만한 주제도 없고 어쩌고 하다가 결국 기선이랑 스르르 잠에 빠져들었다. 어제 해변과 수영장에서 신나게 논 덕분에 얼굴이 빨개져서 귀국하면 컨퍼런스간다고 뻥치고 바캉스 다녀온게 아니냐고 오해받을만하게 변신한 영회가 상기된 얼굴로 나타나, 날씨가 매우 좋으니 다 제끼고 수영하러 나가자고 매달리는 통에 결국 항복. 컨퍼런스 기간 내내 쌀쌀하던 날씨가 드디어 따듯한 플로리다의 날씨로 변해있었다. 결국 컨퍼런스 마지막 날 오후는 수영장에서 둥둥 떠다니며 마무리. -_-

 

이번 컨퍼런스는 지금까지 참석했던 4번의 컨퍼런스 중에 가장 편안한 시간이 아니었나 싶다. 이전엔 아는 사람이 전혀 없이 거의 혼자서 전투하러 온 사람 처럼 매 시간마다 무엇있가 얻어내고, 경험하려고 애쓰고 낑낑 댄 시간들이었다. 물론 그만큼 많은 것을 얻었고, 또 새로운 사람을 만나고 친해지고 지금까지도 연락할 수 있다는 좋은 면도 있지만 사실 컨퍼런스 내내 긴장하고 다니기 때문에 몹시 피곤한 시간이었다. 하지만 이번에는 완전 재밌는 영회,기선,케누형을 비롯해서 다음에서 온 3인방과 SDS분들까지 편안하게 만나고, 심지어 놀 수도 있는 친근한 사람들과 함께 했다는 것이라서 그런지 시간시간 별로 힘들이지 않고 즐겁게 보낸 듯 하다. 시간시간마다 만나서 지난 세션의 감상이나 느낌, 비판 등을 바로바로 편안하게 말할 수도 있다는 것도 좋았다. 저녁엔 다 함께 모여서 함께 식사를 하러가기도. 광남이 형이 슬롯머신에서 한 방에 900크레딧을 딴 덕에 맛있는 아이스크림도 얻어먹고.

 

이번 컨퍼런스의 전체 느낌은 사실 이전보다 좀 딱딱하고 심각해졌다는 것이다. 여전히 가족적인 분위기와 스피커들과의 자유로운 만남, 참석자 상호간의 자유로운 교제는 있었지만, 이전에는 오픈소스 커뮤니티의 모임이라는 뭔가 좀 더 부드럽고 즐거운 만남이었다면 이번엔 스프링소스라는 벤더가 주관하는 행사라는 느낌이 종종 느껴지기도 했다. 중간에 만났던, 여러번 참석했다는 다른 사람들도 비슷한 이야기를 하기도 했다. 언제나 딱딱하고 무표정한 그 얼굴을 가지고 있는 로드 존슨이기는 하지만, 이번에는 수시로 전화를 잡고 심각한 이야기를 하며 다니는 모습에서 이전에 느꼈던 여유와 즐거움은 찾아볼 수가 없었다. VC에 적지 않은 돈을 투자 받고, 회사를 성공시켜야만 하는 큰 부담을 가지게 되었으니 그럴 수 밖에 없을 것이라고 이해해보지만… 이전엔 작은 커뮤니티였고, 약자였고, 돈도 제대로 못 버는 오픈소스 뿐이었지만 그래도 자신의 기술과 철학에 대한 강한 믿음과 그것을 인정해주고 감사하는 전세계의 개발자들과 즐거운 교류를 했던 때가 이제는 슬슬 그리워지기 시작할 것 같다.

 

잔잔하고 파란 대서양 바다를 뒤로 하고 이제 내일부터는 치열한 현장으로 가서 다시 일에 매달려야 한다. 그래도 개발자에게 가장 즐거운 시간은 현장에서 일을 할 때가 아닐까. 이번에 배우고 알게된 기술들을 어떻게 차차 적용시킬지, 또 어떻게 공부해갈지 슬슬 계획을 세워봐야겠다.

Related posts:

  1. S1A 2008 둘째날 – Grails
  2. S1A 2008 둘째날 정리
  3. S1A 2008 셋째날 정리
  4. S1A 2008 셋째날 – Spring JavaConfig
  5. SpringOneAmerica 2008 첫날
  6. S1A 2008 둘째날 SpringSecurity 2.5
  7. S1A 2008 사진모음
  8. SpringOneAmerica 2008 그리고 SpringSource Webinar
  9. SpringOne 2008 (1) – OSGi
  10. 유쾌한 이슈처리 재촉 메일
  11. 토비의 스프링 3이 나오기까지 (4)
  12. Testable한 코드와 OCP

Facebook comments:

to “S1A 2008 넷째날 정리”

  1. 그동안 수고 많으셨습니다.
    감사히 잘 읽었고, 앞으로의 활동도 기대 됩니다. ^^*

  2. “오~ 좋은 프로그램 짜니까 돈도 주네.”, “제길~ 돈받고 프로그램짜니까 내 맘 대로 하기 힘드네” 이렇게 된 건가? ^^;
    900크레딧 * 2센트 = 18달라
    1달라 넣고 한 게임이라 대박이지만, 아쉽네. 쩝. 2센트가 아니라 2달라만 되었어도. 쩝.쩝쩝

  3. 음… 나때문에 재미있었다고 실토하는군.
    나도 뭔가 보상을 해줘야 할텐데…
    조만간 형이 둥둥 떠다닌 사진을 공개해야겠어

  4. Ah yes, nceliy put, everyone.

  5. Wow! This can be one particular of the most helpful blogs We have ever arrive across on this subject. Basically Great. I am also a specialist in this topic therefore I can understand your effort.

  6. mbt fora shoes S1A 2008 넷째날 정리 » Toby’s Epril

  7. ¹Ø¼ü×Ö S1A 2008 넷째날 정리 » Toby’s Epril

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha