세션이 시작되었습니다. 튜토리얼때보다 사람이 2배는 늘어난거 같네요.
오전 8시45분부터 짧은 키노트 세션이 6개가 열리고 잠깐 쉬었다가 세션이 진행됩니다.
오늘 처음들은 세션은 Scailing to 100+ API 입니다. 발표자는 구글맵을 개발하는 Joe Gregorio 였는데 대규모 API를 운영하기 위해서 구글이 어떤 노력을 했는지 잘 정리하여 설명해줬습니다. 처음에는 구글도 API가 몇개 안되었습니다. 그 시절에 구글이 정의한 API 개발에 대한 기준은 API가 늘어나면서 다음과 같은 문제가 발생했습니다.
* 자바 라이브러리: 모든 팀이 퓨어 자바로 개발하지 않는다.
* Atom and AtomPub: 모든 경우를 만족하지는 못한다.
* 팀이 자체적으로서 API 서비스 운영: 모든 API에 걸쳐야 하는 feature가 등장, API 작업에 대한 우선순위가 떨어짐
* 코드에 API를 정의: Implicit vs Explicit,
* 직접 문서를 만들다: 업데이트 문제
* 클라이언트 코드도 직접 작성: 각 API revision을 업데이트 해야 했다.
문제를 해결하기 위해 구글은 다음과 같은 새로운 기준을 마련합니다.
* 자바 라이브러리: 인터페이스 Proto/RPC, 언어 독립적
* Atom and AtomPub: Atom, JSON, etc
* 팀이 자체적으로서 API 서비스 운영: 중앙 집중화
* 코드에 API를 정의: Explicit
* 직접 문서를 만들다: 자동 생성 방식
* 클라이언트 코드도 직접 작성: explicit API정의에서 자동 생성하는 방식
더 자세한 내용은 발표자료를 참고하세요.
두번째 세션은 Open Data and Visualization in Smallest Federated Wiki 였습니다. 발표자는 그 유명한 워드커닝험이더군요. 사실 세션이 너무 많아 이런 세션이 있는지 몰랐는데 이전 세션이 끝나고 나가려니 워드 커닝험이 들어와서 그냥 앉아서 들었습니다. 자신이 직접 만든 새로운 위키를 소개해줬는데요. 이 위키는 github에서 직접 다운로드할 수 있습니다.
https://github.com/WardCunningham/Smallest-Federated-Wiki
워드커닝험의 새로운 위키 소개: http://wardcunningham.github.com/
기존 위키와 다른 점을 정리하면
- 새로운 페이지가 맥의 Finder 처럼 옆으로 계속 열립니다.
- 각 페이지의 단락들을 자유롭게 드래그앤드롭으로 리팩토링이 가능합니다.
- 새로운 페이지를 만들때 사전에 의미를 부여하여 만들기도 하는데 각 아이콘이 어떤 의미를 갖는지는 잘 모르겠네요.
- 데이터는 JSON 형태로 주고 받습니다.
- 이 데이터를 이용해 레이더 그래프와 같은 형태로 Visualization 이 가능합니다.
- 폴더 형태의 플러그인을 지원하여 새로운 페이지를 열거나 할때 플러그인 활용이 가능합니다.
이 위키를 만드는데 쓰인 기술은 Coffee Script, Node.js, Ruby 라고 합니다. github에서 다운받아 설치하려니 루비부터 설치하라고 나오네요. 직접 설치해보시죠.
세번째 세션은 별로 고민안했습니다. Above the Clouds: Introducing Akka 였는데 Play의 Async Architecture를 이루는 부분이라 관심을 갖고 들어갔습니다. 발표자는 Typesafe 의 CTO Jonas Boner 였구요.
Akka가 우리에게는 낯설지만 이미 방송,통신 회사들에서 널리 사용되고 있던 프레임워크라고 합니다. 저도 Play2를 보면서 처음 들었습니다. Akka의 핵심이 되는 개념은 Actor 기반 모델입니다. 그럼 여기서 Actor가 뭘까요?
Actor는 unit of Code로 비유하자면 스프링의 빈, EJB의 세션빈을 들 수 있습니다. 클라우드 컴퓨팅에서라면 가상머신이 될수 있겠네요.
Akka를 처음 만들때 한가지 방식으로 Scale Up과 Scale Out을 하고자 했습니다. 그러다 보니 이를 위해 저 수준의 작업을 워크플로 수준에서 정의해야 했고 이를 위해 도입한 개념이 Acotr입니다. Actor를 더 정확히 이해하기 위해서는 Actor의 5가지 상태와 그 상태에 대한 예제코드를 같이 봐야 합니다.
0.DEFINE
1.CREATE
2.SEND
3.BECOME
4.SUPERVISE
이 부분은 돌아가서 따로 정리해야 할거 같습니다. 모호했던 Akka의 코드들을 좀 더 이해할수 있었습니다만 Play에서 Akka를 편하게 사용할 수 있도록 Promise와 Future로 구현한 부분도 있어서 다시한번 들여다 봐야 합니다.
Akka 사이트: http://akka.io/
Akka 개발팀 블로그: http://letitcrash.com/
네번째 들은 세션은 Lightweight Web Apps with Ratpack 입니다. Ratpack은 Groovy를 위한 경량의 웹어플리케이션 프레임워크라고 하네요. 데모를 보여주는데 URL 바인딩이 컨트롤러 메소드에 같이 정의되고 이때 반환하는 UI만 Groovy로 만들어주면 그냥 화면이 뜨네요.이런 류의 프레임워크가 어떤지 참고하려 들었습니다. Groovy 쓰시는 분들은 한번 써보세요.
다섯번째 들은 세션은 약간 흥미로 들어간 The O'Reilly Author Experience 라는 세션이었는데요. 오렐리 저자로 책을 쓰면서 경험했던 내용을 소소하게 공유해줬습니다. 그런데 놀란것은 이 세션을 듣고 나오는데 사람들이 구름같이 모여서 기다리고 있는겁니다. 이게 뭐지 하는데 저쪽에 왠 늙은 아저씨가 또 막 뛰어오면서 이 방이 The Conway Channel 이냐고 묻길래 맞다고 해주고 나서 찾아보니 이 사림이 Perl 커뮤니티에서 큰인물이네요. OSCON이 처음 시작된게 Perl 커뮤니티라고 하더니 그 영향력이 아직도 대단하네요.
마지막으로 들은 세션도 대박 세션이었습니다. What Makes a Great Open API? 라는 세션인데 발표자가 ProgrammableWeb을 만든 John Musser이니 말 다한거죠. 열심히 들으면서 적어놓은게 있는데 발표자료가 나오면 그걸로 대신하는게 좋을거 같습니다. OpenAPI에 관심있는 분들은 나중에라도 꼭 찾아보시길 권합니다.
http://www.slideshare.net/jmusser/what-makes-a-great-open-api
이 외에도 놓쳐서 아쉬운 세션들이 많은데 아직 발표자료도 안 올라왔네요. 잊기전에 정리합니다. 특히 Home Automation에 대해 발표한 분은 PostgreSQL 전문가인데 발표는 엉뚱한것으로 했네요. PostgreSQL 관심있으신 분은 저분 블로그 꼭 가보세요. Hypermedia API 발표한 분의 블로그도 특이합니다.
Remixing Android, 발표자가 만든 교육사이트: http://marakana.com/
Aparapi: An Open Source tool for extending the Java promise of ‘Write Once Run Anywhere’ to include the GPU
Building a Home Automation Server
Designing Hypermedia APIs, 발표자료
이제사 오픈소스 컨퍼런스에 왔다는게 좀 실감이 나네요. :-)