본문바로가기

Products

개발자들의 앞으로 이어질 표준프레임워크에 대한 노력과 열정을 응원합니다.

기술세미나

표준프레임워크 및 오픈소스 관련 지식을 세미나를 통해 공유합니다.

SpringOne 2GX 2013: Conference 여행기_3일차 (백기선)
작성자명 : 사무국 작성일 : 2013-09-12 조회 : 13022 글번호 : 8378


안녕하세요, 백기선 입니다.


오늘은 어제처럼 세션 다섯개가 6시까지 진행되고 그 이후로는 보드 게임도 하고 맥주를 마시며 참석한 개발자들과 수다떠는 시간이 이어집니다.


첫번째 세션은 RabbitMQ is the new king이라는 강력한 제목의 세션이었는데 RabbitMQ라는 메시징 큐 제품 기능 소개였습니다. 이렇게 넘어가면 매우 단순해보이지만 오늘 본 발표 중에서 가장 많은 준비와 저를 놀래킨 라이브 코딩을 볼 수 있었습니다. 래빗MQ의 poliglot한 성격을 강력히 내세우고 싶었던 것인지 발표자의 코딩 실력을 뽐내고 싶었던 것인지 모르겠지만, 아이폰으로 촬영한 동전을 실시간으로 웹 브라우저로 그래픽 이미지로 보여주는 데모였습니다. 아이폰에서 촬영한 데이터를 스프링에 넘기고 스프링에서는 스트림 정보를 프레임으로 쪼개서 C++ 애플리케이션으로 넘기고 C++에서는 Open CL인가 하는걸로 동전 이미지를 분석해서 다시 스프링으로 넘겨주고 스프링은 AngularJS를 사용한 HTML5를 사용해서 데이터를 웹 브라우저에 전송하고 그 사이사이 RabbitMQ, stomp.js 등을 사용했습니다. 길고도 복잡한 라이브 코딩을 실수 없이 준비했고 마지막엔 심지어 반지의 제왕 사우론을 재현했습니다. 동전이 아니라 반지를 올리면 갑자기 사우론 이미지가 나타나서 반지를 움직일 때마다 그에 해당하는 이미지를 따라 다녔습니다. 가히 놀라운 발표가 아닐 수 없었습니다. 스프링원이 아니면 어디서 이런 데모를 볼 수 있을지 상상이 되지 않습니다.


두번째 세션은 Consuming web services asynchronously with Futures and RX Observables이라는 다소 긴 제목과 엄청나게 많은 내용이 들어있는 세션이었습니다. 주로 비동기적으로 REST API Server에 요청을 보내온 데이터를 가지고 오는 방법에 대한 내용이었는데, 최근 모바일에 대응하기 위한 웹 애플리케이션 개발에 가장 흔해 보이는 아키텍처가 제 눈길을 끌었습니다. REST API의 클라이언트이자, 네이티브 앱에게는 REST API Server 역할이 되는 애플리케이션이 바로 그것이었죠.


그 중에서도 REST Client 입장에서 생각을 많이 했는데, 즉 여러 REST API를 사용해서 어떤 로직을 처리해야 하는 경우에 여러 호출을 직렬적으로 수행하면 처리가 너무 느려집니다. 그래서 병렬도 하면 쓰레드를 많이 사용하게 되어 자원이 낭비될 가능성이 높고, 여러개 중에 한개가 실패했을 때 어떻게 처리해야하는지도 애매합니다. 스칼라의 Future에는 그런 여러 상황에 대한 대처가 잘 녹아 들어있다고 하는데 그와 비슷한 역할을 해주는 클래스가 스프링 4에 새로 추가된 AsyncRestTemplate이라고 합니다. 지금까지 스프링 4라고 하면 웹소켓 밖에 생각을 못했는데 어쩌면 그보다 더 중요한 역할을 해줄 클래스를 발견한것 같아서 기분이 좋았습니다.


세번째 세션은 로센이 웹소켓에 대한 이론적인 설명을 했는데 점심 시간이후에 코딩도 없이 이론 설명만 듣자니 너무 졸려서 오래 듣지 못했습니다. 초반에 웹소켓에 대한 잘못된 상식이라고 할까나. 그 중에 몇개는 저도 잘못알고 있는게 있어서 뜨끔했는데요. 로센은 언제나 친절하게 깃헙에 모든 발표 자료오 소스 코드를 미리 올려두기 때문에 자료와 소스를 보고 충분히 내용을 짐작할 수 있을 겁니다.


네번째 세션은 역시 로센이 진행하는 웹소켓 세션이었는데 이번에는 주로 코딩이 많았습니다. 이번에는 stomp.js와 웹소켓, SockJS 등을 언급하며, 웹소켓 기반의 프로토콜을 언급했고 그 필요성에 대해 주장했습니다. 개인적으로도 웹소켓에 관심이 많았는데 가끔 핑퐁이나 메시지 전송 보장에 대한 역할을 어떤 수준에서 구현해야 고민했었는데요. 웹소켓 기반의 프로토콜에서 그런 것들을 처리해 줄 수 있지 않을까 하는 기대를 가지고 stomp에 관심 가져보기로 했습니다. 문서를 살짝 찾아봤는데 왠지 그쪽에서 해주는 것처럼 보입니다.


마지막 세션은 지금까지 들었던 세션 중에 가장 쉽고 스프링의 기본 원리에 대해 다룬 세션이었는데, 사실 그런 내용을 기대하고 간것이 아니라 뭔가 좀 더 깊은 내용일까 싶었습니다. 그런데 워낙에 익숙한 내용이라 그런지 발표자가 하는 말의 90%가 넘게 이해되고(심지어 소소한 농담까지도), 청중들의 질문까지도 전부 이해가 되길래 내 귀를 의심하지 않을 수 없었습니다. 제가 그정도로 영어를 잘하진 못하거든요. 참석하신 분들의 적극적인 질문 공세와 재치있는 답변에 놀랐고 발표자가 준비한 예제 하나 하나 다 모두 제 스프링 교육에 써먹어도 될만한 것들이라 매우 유용한 세션이었습니다.


저녁에 개발자들과 어울리는 시간에는 간단하게 맥주 한잔하며 여기 와서 만난 친구와 수다 떨다가 헤어졌습니다. 벌써 내일이 마지막이라는 사실이 조금 아쉽지만 이젠 슬슬 일자리가 그립기도 합니다.


그럼 이만 정리합니다.


감사합니다.






첨부파일 1.jpg [141733 bytes]
2.jpg [164314 bytes]
3.jpg [169583 bytes]
4.jpg [132315 bytes]
5.jpg [147688 bytes]
6.jpg [130429 bytes]
twitter facebook

댓글 불러오는 중