사실 오전에도 봄싹 스웨거가 있어서 시간이 약간 겹치기는 했는데 Kenu님과의 친분도 있고 해서 참가를 했습니다. 약간 늦어서 키노트세션인 OKJSP 커뮤니티 이야기는 듣지 못했네요 ㅎ Java 커뮤니티이기는 하지만 최근에 Kenu님이 모바일쪽에 집중하셔서인지 발표세션도 대부분 모바일쪽이 치중되어서 이루어졌고 대부분 키노트를 사용한 화려한 플라이드가 인상적이었습니다. 발표자료는 여기에 올라와 있습니다. 대부분의 세션이 20~30분 정도였기 때문에 기술적으로 깊게 들어가지는 않았습니다.
MobileWeb(SenchaTouch, jQueryMobile) - 안광운
모바일웹에 대한 세션이었고 안광운님이 발표 처음에 말씀하신 것 처럼 모바일얘기가 요즘은 너무 많아서 좀 지겨운 주제일수도 있기는 한데 그만큼 모바일이 중요해 지고 있다는 의미이기도 하다는데는 동감을 합니다. 전체적으로는 MobileWeb에 대한 간략한 개요정도였습니다.
HTML5는 HTML, CSS, JavaScript의 기술 모음이고 어렵게 생각할 필요 없이 현재 사용중인 HTML의 발전된 형태이고 개발자들이 보통 CSS를 많이 어려워하는데 공부해 두면 좋다고 하셨습니다. 과거에는 iUi나 jQTouch를 많이 썼지만 이젠 모두 개발이 중단되었고 jQueryMobile이나 Sencha Touch를 주로 사용하는 분위기이고 삼성의 Bada플랫폼에 최적화된 Rijj-js도 있습니다.
jQueryMobile같은 경우는 아주 쉬워서 누구나 일주일정도만 만지면 괜찮은 퀄리티로 만들어낼 수 있을 정도이고 지원하지 않는 브라우저에서는 기능을 줄여서 제공하는 점진적 향상, 단계적 기능 축소가 인상적인 기능이었습니다. JQM으로 만들어진 페이지들은 jQuery Mobile Gallery에서 보실 수 있습니다. Sencah Touch로 만들어진 잡지데모가 인상적이었는데 어떤 데모인지는 못찾겠네요 ㅎ
SVG with Raphael - 김종광
제가 알기로는 지난달 WebDevMobile에서도 발표된 내용으로 알고 있는데 그때 못봐서 아쉬웠는데 이번기회에 듣게 되어 좋았습니다. Raphael은 SVG(Scalable Vector Graphics)를 위한 라이브러리이고 SVG는 익히 알려진대로 벡터(Vector)그래픽입니다. 비트맵 그래픽은 2D는 Canvas라고 부르고 3D는 WebGL이라고 부르고 있습니다. 벡터그래픽은 VML과 PGML인 98년에 만들어지고 SVG는 2001년에 만들어졌습니다. 그뒤 PGML은 SVG로 대체되었지만 VML은 IE 6,7,8에 남아있는 상황입니다.
벡터그래픽이기 때문에 아무리 확대를 해도 그 모양이 깨지지 않으면 Raphael 사이트도 모든 이미지를 SVG로 그려주고 있으며 Raphael은 VML과 SVG와 JavaScript를 합친 라이브러리이기 때문에 IE6까지 폭넓게 지원해주고 있습니다. 이번 세미나에서 가장 인상적인 세션이었고 Raphael은 이름만 알고 있었는데 사용법도 아주 간단하게 느껴져서 조만간 좀 써봐야겠다고 생각하고 있습니다.
하이브리드 앱 - 강화영
발표자료를 JQM으로 만든 부분이 흥미로웠는데 모바일웹과 네이티브앱의 이점을 둘다 살려서 최근에 발전하고 있는 하이브리드앱에 대한 내용있었습니다. 가장 많이 알려진 PhoneGap과 Titanium과 함께 Rhodes와 KTH에서 개발해서 얼마전에 런칭한 Appspresso에 대해서 소개했습니다. 기술적인 내용을 다뤘다기 보다는 각 플랫폼에 소개와 간단한 특징비교정도였습니다.
프로그래머가 되는 방법 - Kenny(강윤신)
시간표에는 착하게 살자라는 제목으로 나왔지만 이 세션은 "How to be a Programmer"라는 글에 대한 내용이었습니다. (유명한 글이라더군요. 저도 날잡아서 읽어봐야겠습니다. 다행히도 KLDP에서 번역해놓은 문서가 있습니다.) 아주 예전에 몇번 본적은 있었는데 상당히 어조가 강한 세션이라서 듣는데 개인적으로 약간 거북함이 있었습니다. 세션 초반에 미리 자기 스타일로 그냥 얘기하겠다고 얘기하시기도 했기에 어느정도 예상은 했지만 약간 윗사람이 아랫사람한테 뭐라 하듯이 하는 어조라서 좀 거북함이 있었고 말하는 부분에서 개발자의 현실이 틀린말은 아니라는 부분에서 다시 거북해졌습니다. (개인적으로는 개발자는 약간의 까칠함정도는 있어야 한다고 생각하는 편인데 제가 가지지 못한 부분이라서 약간은 부럽(?)기도 했습니다.)
전체적인 내용은 문서를 읽어보는게 나을것 같기 간략이 보면 아래와 같습니다.
- 디버그 배우기 - 디버그 못하면 프로그래머라고 하지 말자
- 요즘 개발자 너무 착하다. 원래 좀 까칠해야 한다.
- 디바이드앤 퀀커 - 문제공간을 나눠서 디버그하는 방법이고 알고리즘을 직접 구현할 필요는 없다 일반적으로 라이브러리를 쓰는게 낫지만 디바이드앤퀀커를 하려고 알고리즘을 공부하는 것이다.
- 오류를 제거하는 방법
- 로그를 이용해서 디버그하는 방법
- 성능문제를 이해하는 방법
- 가끔씩 생기는 버그를 다루는 방법
- 문자열!(그리고 정규식) - java면 java.lang.String, commons.String을 달달 알고 js는 문자열관련을 외워라
- 프로그래밍 시간을 추정하는 방법
- 정보를 찾는 방법
- 사람들을 정보의 원천으로 사용하는 방법 - 아는 사람들에게 물어보는게 제일 빠르다
- 막힐때는 잠깐 쉬어라
- 집에 갈 시간을 인지하는 방법
- 게으름! - 약간의 게으름은 필요하다
안드로이드 프로그래밍 - 진성주
안드로이드 프로그래밍의 저자이면서 OKJSP의 안드로이드 프로젝트를 진행하신 진성주님의 세션이었습니다.(발표듣다보니 이미 저랑 트위터 팔로우 관계.. ㅎ) 사실 저는 작년에 잠깐 안드로이드를 만져보고 그뒤로는 안드로이드 개발을 하고 있지는 않고 오히려 관심이 있다면 iOS쪽으로 관심이 넘어간 상태입니다. 이 세션은 그냥 안드로이드 개발에 대한 설명이라기 보다는 안드로이드개발을 공부하기 위해서 Reverse Engineering을 택해서 하는 방법에 대한 설명이었습니다. 이부분은 공개된 소스가 상대적으로 부족한 iOS에 비해서 오픈소스가 주류를 이루고 있는 안드로이드의 특징을 잘 이용한 방법으로 실제 개발을 하려면 책으로 공부한 예제외에도 정말 많은 부분이 필요한데 그부분을 Reverse Engineering으로 접근한 점은 저는 생각지 못했던 부분이라 상당히 인상적이었습니다.
Google code나 Google code search를 이용해서 소스를 검색할 수 있고 apk로 패키징이 되어 있는 앱의 경우 ApkTook을 이용해서 apk파일을 dex(Java의 jar와 같은)와 리소스로 분리해내고 dex2jar를 이용해서 dex를 jar로 바꾼 다음에 자바 디컴파일러인 JD로 .class파일을 .java로 디컴파일해서 소스를 확인해서 필요한 기능을 어떻게 구현하는지 확인해 봄으로써 아주 퀄리티 좋은 예제의 소스를 참고해서 공부를 할 수 있습니다.
epilogue
OKJSP의 10년이라는 세월처럼 그동안 Kenu님이 얼마나 폭넓게 활동을 하셨는지가 많이 느껴지는 세미나였다고 생각합니다. 왠만한 상업적 컨퍼런스에 부족하지 않을 정도의 장소와 경품등이 지원되었던것 같습니다.(그 많은 경품중에 단 한개도 안걸리다니. ㅡㅡ;;;) 기술적으로 많은걸 배울수 있었던 세미나라기 보다는 많은 사람들을 만나고 10주년을 축하하는 즐거운 자리였던것 같습니다. ㅎ OKJSP의 10주년을 축하합니다. 20주년 세미나를 기대하겠습니다. ㅎ
세미나 사은품으로 나눠준 마이크로소프트웨어 잡지랑 OKJSP 파우치와 메탈스티커입니다. ㅎㅎㅎ 나름 레어네요 ㅎㅎ
거친 아대장님... 후기 잘 읽었습니다.
거친가요? ㅋㅋㅋ
요약을 잘 해주셔서 감사합니다.
^^ Outsider 블로그 10주년 기대해도 될까요?
예 감사합니다. ㅎㅎㅎ
닫을 생각은 없지만... 10년이 되어도 OKJSP같은 세미나는 무리가 아닐까 싶습니다. ㅎㅎ
안녕하세요.^^ 궁금해 하신 잡지 URL은 http://www.mygazines.com 입니다. 다음에 뵈요~
궁금해하고 있었는데 감사합니다. ㅎ 다음에 뵈요~ ^^