본문 바로가기

JCO 2011 "MongoDB with PLAY!" 발표자료 지난 6월 19일 COEX에서 진행되었던 JCO 2011에서 제가 진행했던 세션 "MongoDB with PLAY!"의 발표자료입니다. NoSQL/MongoDB관련해서는 세션들이 이미 있었어서 저는 MongoDB보다는 Play Framework을 중심으로 다뤘습니다. MongoDB는 MongoDB자체의 Feature들 보다는 쓰기 편한 Data Store정도로 보았습니다. 사실 두 제품보다 좀 더 중심이 주제는 "생산성"이었고요.라이브 코딩으로 진행하는 부분은 역시나 어렵지만 재밌었습니다. 다만 제가 욕심을 과도하게 부렸어서 시간을 10여분 가량 더 쓰고도 다 보여드리지 못한 부분은 아쉬운 점이었습니다. 마지막 타임이었기도 하고 쫓기듯 진행하진 않으려 했었는데, 그래도 그 와중에 여유마저 잃지는 않은 걸.. 더보기
JCO 2011에서 MongoDB with Play! 라는 제목으로 발표합니다. 내일 코엑스에서 열리는 2011년 JCO (http://www.kjdc.org)에서 "MongoDB with Play!"라는 제목으로 발표를 진행합니다 시간은 4시 15분 부터 약 50분간 진행할 예정입니다. (트랙2 세션4) MongoDB의 큰 카테고리에 속하는 NoSQL이라던가 MongoDB에 대한 내용은 13:05분부터 진행되는 김형준님의 "클라우드 시대의 데이터베이스 NoSQL 개념 및 사례(트랙4, 세션2)"와 이용혁님의 LBS with MongoDB (몽도디비를 이용한 위치기반서비스, 트랙2, 셰션4)에서도 들으실 수 있습니다. 저는 JVM Based Web Framework중 구글 구룹스에서 가장 활발한 Top 5 프로젝트에 속하는 Play Framework (playframework.org.. 더보기
당신은 애자일 전문가 입니까? (Are you an agile expert?) 저는 주 업무와 별개로 회사에서 애자일 관련 활동을 진행하고 있습니다. 애자일 관련 교육을 한다던가, 프로젝트를 찾아가서 상황에 맞게 이런저런 가이드를 하고 오기도 합니다. (남는 시간에 팀장님 및 팀원분들께 양해를 구하고 말입니다.) 사내에서는 이런 활동과 더불어 스크럼 마스터를 양성하는 사람을 Agile Coach라고 부릅니다. [포스트 상단의 문구를 보면... IT 코치인듯... (...) ] Agile 관련 활동을 하다보면 사내, 혹은 사외에서 "애자일 전문가"라는 불릴때가 있습니다. 사실 그런 순간이 되면 얼굴이 화끈해집니다. "나는 애자일 전문가인가? 애자일 전문가는 어떤 사람인가?"라는 의문이 들기 때문입니다. 경험도 아직 미천하고, 지식도 부족하다는 걸 잘 알기 때문에, "열심히는 해왔지만.. 더보기
[dW Review] Java Database Connectivity에 대해 모르고 있던 5가지 사항 예전에는 JDBC를 직접 이용해서 개발을 했던 적이 있었습니다. 누가 잘 짰다는 코드가 있으면 그걸 받아다가 만들기도 했고, 직접 개선해서 라이브러리화 해서 쓰기도 했습니다. 그러다 프레임워크라는 것들이 나오기 시작하면서 DB를 다루는 부분들은 대부분 라이브러리를 이용하는 걸로 바뀌었습니다. 그래서 오히려 요즘엔 JDBC에 대해서 배울일이 거의 없어졌습니다. 좋기도 하고 나쁘기도 한 일인것 같습니다. 비슷한 상황으로는 예전에는 자바 배울때 컴파일하는 방법도 열심히 배웠었습니다만, 요즘엔 그냥 이클립스등의 IDE를 쓰면 알아서 하니까 몰라도 됩니다. 마찬가지로 좋은 일이기도 하고 나쁜일이기도 합니다. 물론 튜닝을 위해서 특정 옵션을 주어야 하거나, 빌드 작업을 하는 담당자일 경우 다시 명령행에서 부터 치열.. 더보기
[dW Review] 데이터 교환 표준형식 정하기 YAML & JSON 예전에는 데이터 교환에 XML을 많이 썼다면 요즘에는 JSON을 많이 씁니다. 아니, 많이 쓰는걸 넘어서서 JSON이 대세인것 같습니다. XML이 한참 잘 나갈때는 모든 설정파일들을 왠지 XML로 만들어야 할 것만 같았습니다. [ibatis XML 구성 파일인 ibatis-config.xml] 한참 XML을 광범위하게 쓰던 시절.. 그런데 어찌된 일인지 아무리 주입식 교육을 받아도 XML이 편한건지는 잘 모르겠다는 생각이 들곤했습니다. 복잡한 형태의 Document를 만들때는 그렇다고쳐도, 단순히 키/값 쌍으로 이루어진 데이터를 이용할때도 XML을 사용하는 건 확실히 가독성에 대한 정신적 시험에 들곤 합니다. 그런 사람이 비단 저 뿐만은 아니었겠지요. 데이터 교환에 있어서 대안을 찾아보는 시도는 꽤 오래.. 더보기
메시지코드를 이용해 만든 예외(Exception)처리에 대한 단위 테스트 특정 업무 규칙 검증을 위해 하나의 BizException을 만들고 메시지, 혹은 메시지 코드를 이용해 예외처리를 하는 코드를 가끔씩 보곤 합니다. 이를테면 다음과 같은 식으로 코드를 작성한 경우입니다. private void checkInvalidate(Purchase purchase){ if(purchase == null ) throw new PurchaseException("구매 정보가 없습니다."); if(purchase.getItem() == null) { throw new PurchaseException("구매할 상품이 없습니다."); } if(purchase.getItem().isSelling() == false) { throw new PurchaseException("판매가 마감되었습니다... 더보기
[dW Review] 자바 동시성 처리 학습 팁 저의 주 사용언어는 자바입니다. 자바 외에도 이런저런 언어를 사용했지만, 해당 언어가 가지는 미묘한 아키텍처적인 특징들을 찾는데 많은 시간을 쓰진 않았던 것 같습니다. 사실 자바언어도 아직 제대로 알려면 멀었다고 생각합니다. 특히 멀티쓰레딩/동시성 관련 부분은 봐도 봐도 어려운 부분인것 같습니다. 해당 분야를 프로그래밍시에 자주 쓰지 않았기 때문인 것도 그 이유중 하나인 듯 합니다. 예전에 Kent Beck에게 멀티쓰레드 영역의 TDD에 대해 물어봤던 적이 있습니다. 수 십년 프로그래밍 경험을 가진 그로부터도 사실 뾰족한 대답을 듣진 못했습니다. 우선은 예외로 하고 넘어간다는 식으로 답변을 들었던 기억이 납니다. 사실 절차적으로 쭈욱~ 흘러가면 끝나는 식으로 짜여진 프로그램을 놓고, 멀티 쓰레드환경의 경.. 더보기
개인적으로 권장드리는 TDD 코드 작성 스타일 코드를 많이 작성하지는 않지만 코드를 보지 않거나 작성하지 않고 넘어가는 날은 없는것 같습니다. 그리고 작성하는 코드는 TDD로 작성하기 위해 노력합니다. TDD가 불편하지 않고 안하면 불안한 단계까진 온것 같습니다. : ) 이런저런 시도를 많이 했었는데요, 요즘엔 TDD진행에 있어 어느 정도 (개인적으로) 정제된 형태가 된것 같습니다. 자세한 이야기는 따로 정리하기로 하고요, 우선 몇 가지만 이야기해 보겠습니다. #1. 테스트 케이스는 무조껀 //Given //When //Then으로 작성하고 있습니다. 제가 제 책에도 써 놓았지만, 저도 mockito 개발자의 열변에 동참합니다. :) "저처럼 어리석은 짓을 하지 마시고, 바로 오늘부터 //given //when //then 템플릿을 쓰기 시작 하세요.. 더보기
[dW Review] Java development 2.0: MongoDB IBM DeveloperWorks에 올라온 기사 Java development 2.0: MongoDB를 좀 더 잘 이해하기 위한 보충설명입니다. :) Java development 2.0: MongoDB: (적절한) RDBMS 이동 기능을 제공하는 NoSQL 데이터 저장소 http://www.ibm.com/developerworks/kr/library/j-javadev2-12/index.html 스케일 업(Scale Up) : 서버 성능을 올리는 것. CPU 증설, 램 Up~ 스케일 아웃(Scale Out): 서버 대수를 늘리는 것. 샤딩(Sharding): 데이터 베이스의 수평확장(horizontal partitioning)의 일종. 일반적으로 한 테이블의 Row를 분산시키는 것. 요금테이블 -> 1월.. 더보기
세상을 구하는 용기 (The Courage that save the world) 용기라는 말은 비교적 일상에서 흔히 듣는 단어다. 특히 영화나 애니메이션 같은걸 보면 주인공이 동료의 응원(Be brave!!)으로 용기를 내서 세상을 구하는 장면이 곧잘 나오곤 한다. 아니면 TV나 신문에서 사람을 구하기 위해 지하철 노선위로 뛰어 들거나 범죄자를 몸으로 막아 표창장같은 걸 타는 사람을 보기도 한다. 하지만, 현실에선 그와 달리 '용기'라는 말은 나와는 크게 관련이 없고, 쉽게 실천하기 어려운 영역인 것만 같다. 불의와 싸우고, 많은 희생을 감내하며 용기로 세상을 구하는 건 아무리 생각해도 역시 현실과는 동떨어져 있다. 그래서 아는 단어지만 쓰이지 않는 단어가 돼버렸다. 나는 현재 신입사원을 비롯하여 사내의 많은 사람들에게 강의를 하고 있다. 다른 사람 앞에서 강의를 한다는 건 생각보다.. 더보기