수요일, 11월 23, 2011

[독서광] 알짜만 골라 배우는 자바 구글앱엔진

'무료로 시작하는 손쉬운 클라우드 애플리케이션 개발'이라는 긴 부제가 붙은 이 책은 지난번에 소개한 [독서광] 구글앱엔진 활용하기에서도 다뤘던 구글앱엔진 관련 서적이다. 따라서 두 책을 비교하면서 서평을 풀어보겠다.

'구글앱엔진 활용하기'가 파이썬으로 만들어진 완결된 예제 중심의 설명서라면, '알짜만 ...'은 자바로 만들어진 완결된 예제 중심의 설명서다. 두 책 모두 한국인 정서에 맞게 완결된 코드를 제공하고 있으므로(프로젝트 코드(다운로드 아이콘을 콕 눌러보시라)를 제공해주신 역자분들께 정말정말 감사드린다) 시간이 급한 분들이라면 일단 따라해보고 그 다음에 생각해보는 방식으로 책을 읽을 수 있겠다. '구글앱엔진 활용하기'가 상당히 많은 부분을 앱엔진과 무관한 일반적인 내용에 할애했다면, '알짜만 ...'은 본문 중 상당히 많은 부분을 서블릿 컨테이너와 MVC, 프레임워크, GWT 설명에 할애하고 있기 때문에 구글 앱엔진 자체에 관심이 많은 분들께서 다시 한번 황당해할지도 모르겠다. 순수하게 구글앱엔진을 원하시는 분이라면 안 맞을 수도 있으므로 반드시 구입 전에 목차를 살펴보시기 바란다.

이 책은 프로젝트 관리 시스템을 예로 들어 기능을 하나씩 추가하는 방법으로 전개하고 있다. UI 만든 다음에 사용자 인증을 추가하고 데이터베이스 엔진을 붙이고 GWT와 연동하는 순서를 따르므로 완결된 형태의 프로젝트 진행 과정을 볼 수 있다. 물론 이런 서술 방식은 양날의 검이다(당연히 서술 방식에 대한 평가는 사람마다 다르다). 급한 마음에 코드를 따라하는 사람들에게는 좋을지 모르겠지만, 똑같은 코드나 핵심에서 벗어나 중요하지 않은 코드들이 반복해서 나오므로 어느 정도 수준이 되는 사람 입장에서 보면 하품이 날지도 모르기 때문이다. 가장 끝 부분에 구글앱엔진에서 제공하는 서비스를 활용하고 외부 서비스와 연동하는 부분이 나오는 데, 앞서 설명하는 프로젝트와 외떨어져 간략하게 예제만 소개하고 넘어가버리므로 조금 김이 빠진다는 느낌이다. 이 부분까지도 프로젝트에 함께 엮어져서 나왔으면 더욱 좋을뻔했다.

결론: 지난번 '구글앱엔진 활용하기'와 거의 유사한 결론을 내려야겠다. 구글앱엔진의 숨겨진 비밀을 파해치거나 성능을 높이거나 비용을 절약하는 등 실제 현업에 필요한 내용을 기대하시는 분들이라면 별로 얻을 내용이 없지만, 자바를 사용해 구글앱엔진에서 뭔가를 시도해보려는 개발자들이 며칠 투자하면 감을 잡기에 적합하다는 생각이다.

애독자 여러분을 위해 클라우드 서평은 추운 겨울에도 계속해서 이어진다. 기대하시라!

EOB

수요일, 11월 16, 2011

[독서광] 스티브잡스 네 번의 삶

스티브 잡스의 평가는 세월이 흘러가면서 긍정적으로 바뀌는 경향을 보인다. 물론 모든 역사는 승자의 관점으로 기록되기에(예외: 징기스칸의 역사는 대부분 패자의 시각으로 기록되었다. 징기스칸이 오면 다 죽는다... 뭐 이런 식으로... T_T) 스티브 잡스도 예외는 아닌지라 애플로 복귀한 다음부터 기존의 부정적인 이미지에서 긍정적인 이미지로 탈바꿈한다. 물론 애플 제품 라인업의 단순화(수십 여 종의 매킨토시와 레이저라이터 제품군에서 데스크탑, 노트북, 아이맥 세 종류로 줄어든다)와 아이포드/아이폰의 성공이라는 후광 효과가 있었기에 가능했다는 생각이 들지만, 단순히 운으로 치부하기에는 연이은 성공은 우리에게 시사하는 바가 크다.

시간이 충분한 독자분이라면 iCon: 스티브 잡스나 이번에 새로 나온 아이작슨이 지은 스티브 잡스 공식 전기(이 책도 읽고 있기에 조만간 서평을 올려드리겠다)를 읽어보시면 되겠지만, 두 책 모두 분량과 텍스트 압박이 진짜 만만치 않기에 비교적 속성(?)으로 스티브 잡스의 삶을 되돌아보고 싶다면 에이콘 출판사에서 나온 스티브 잡스 네 번의 삶을 읽어보는 방법이 있겠다.

책 나온지 며칠 되었다고 벌서 서평이 뜨냐고 알바라고 항의가 들어올지 몰라 잠시 설명을 드리자면... 반칙 같지만 출간에 앞서 교정지로 다 읽었다. 나름 애플광(?)이라는 소문이 퍼져서 그런지 몰라도 '미래를 만든 Geeks'(앤디 허츠필드가 지은 이 책도 스티브 잡스를 이해하기 위한 상당히 중요한 책으로 봐야한다. 필독서 목록에 넣어주시라.)도 출간에 앞서 일부를 미리 읽었는데 이번에도 미리 읽게 되는 찬스를 잡았다고 생각하시면 틀림 없겠다.

이 책은 프랑스 저자가 적었기 때문에 치밀한 자료를 토대로 헐리우드 블록버스터 식으로 밀어붙이는 미국쪽 책과는 달리 문화적인 냄새(?)가 많이 난다. 물론 전반부를 넘어서 후반부로 가면 아무래도 기술적인 내용이 많이 나오는 관계상 이런 좋은 특성이 사라지긴 하지만 1부까지는 확실히 음악/예술을 사랑(?)하는 스티브 잡스의 면모를 잘 잡아내었다(힌트: 이 책 원저자가 음악 관련 저술을 많이 했다). 책 제목에서 네 번의 삶이라고 나오는데 이는 책 구성을 본따 지은 제목이라고 보면 되겠다. 1부는 스티브 잡스가 방황하던 시절 이야기를 다루는 '구도와 방황', 2부는 애플과 매킨토시 개발 과정을 다루는 '스티브의 영광', 3부는 망가진 스티브 잡스의 재기를 다루는 '오딧세이', 4부는 스티브 잡스의 복귀와 죽음을 다루는 '인생의 절정기'이며 악마(?) 스티브 잡스가 인간(?) 스티브 잡스로 바뀌는 모습을 연대기 순으로 소개한다.

아이폰 이후의 잡스는 스포트라이트를 너무 많이 받아 많은 분들께서 별의 별 내용까지 다 알고 계시겠지만, 넥스트스텝 이전의 스티브 잡스는 애플 ][ 오덕이 아닌 이상 잘 모르실 가능성이 높으므로 이 책을 읽으면서 한번쯤 본 모습을 보시고(이 책에서 많이 순화한 수준이 이 정도다. 사실상 젊었을 때 잡스는 거의 구둣발로 엔지니어 조인트 까는 게 일상 다반사라고 보시면 된다.) 언론에 너무 많이 나와 조금 식상하긴 하지만 스티브 잡스의 스탠포드 연설도 본문 중에 소개되므로(경험상 규칙: 유명할수록 실제로 다 읽고 들어본 사람은 적다. ㅋㅋ), 혹시 아직 접해보지 못한 분이시라면 이번 기회에 읽어보시면 좋겠다.

1991년부터 매킨토시를 사용해왔던(물론 중간에 유닉스 워크스테이션과 윈도우 기계로 외도를 한 기간이 있긴하지만... ㅋㅋ) 애플 광으로서 여러분께 한 가지 부탁 말씀을 드리겠는데, (애플 제품의 철학과 사상을 좀더 명확하게 이해하기 위해) 스티브 잡스에 대한 이야기는 상기 소개하는 어떤 책이라도 좋으니 애독자 여러분께서는 꼭 시간 내셔서 읽어보시기 바란다. 기존 대기업에서 수행했던 구태의연하고 구시대적인 시장 조사 방식을 거부하고 철저히 개발자 스스로가 가장 중요한 고객으로서 사용자에게 최대의 가치를 제공하려는 필사적인 노력을 이해하는 단초가 되리라 확신한다.

EOB

목요일, 11월 10, 2011

[끝없는 뽐뿌질] SDHC 카드 성능 비교

블로거 인터페이스 개편 이후 통계 기능이 들어갔기에, 독자 여러분들께서 어떤 글을 가장 많이 읽는지 확인해봤더니... 사실상 [독서광] 섹션은 파리만 날리고(예외: 백트랙 책 소개!), [뽐뿌질] 섹션은 맥북에어랑 맥미니가 아주 두각을 나타내고 있었다. 애독자 여러분들께 서비스를 위해 오늘도 뽐뿌성 글 하나 정리하고 넘어가겠다. 소개할 주제는 SDHC 카드 성능 비교다. ㅋㅋ

맥북에어 13인치랑 맥미니에 SDXC 슬롯이 내장되어 있기에 또 그냥 넘어갈 수 없었다. 투철한 실험정신을 발휘해 SDHC 카드 성능을 같이 살펴보기로 하자. 우선 SDHC에 대한 일반적인 이야기를 잠시 늘어놓겠다. SD 카드는 디지털 카메라를 사용하시는 분이라면 누구나 한번씩 듣고 써보고 했음직한 용어다. 그렇다면 SD 뒤에 HC가 붙은 이 물건의 정체가 무엇이냐 하면 뭐 간단하다. HC는 고용량(High Capacity)을 줄인 말이며 2G~32G까지 용량을 지원한다. 눈치빠른 분들이라면 SDXC 슬롯이라는 표현에서 XC도 유추해낼 수 있을테다. XC는 확장용량(eXtended Capacity)을 줄인 말이며 32G~2T까지 용량을 지원한다. 용량 이외 고려해야 하는 다른 요소로 폼팩터(표준, 미니, 마이크로 세 종류로 위키피디아에서 가져온 그림을 살펴보기 바란다), 그리고 엄청 중요한 속력(Speed Class Rating)이 있다. 속력은 원안에 들어있는 숫자 * 8Mbits/s으로 계산하면 된다. 예를 들어, 바이트 단위로 환산할 경우 클래스 2라면 2MBytes/s, 클래스 4라면 4Mbytes/s, 클래스 10이라면 10Mbytes/s 정도 성능이 나온다. SD 카드 가격을 보면 더 큰 용량이 더 저렴한 경우가 있는데, 클래스 차이 때문이라는 사실을 알면 그리 신기하지 않다. 따라서 구입 과정에서 폼팩터, 용량, 속력 3박자를 모두 살펴 가격대비 성능이 가장 좋은 녀석을 고르기 바란다.

실제 테스트로 들어가자. 실험 시료를 구입할 예산 관계로 오늘 실험은 SDXC가 아니라 SDHC(하나는 16G/클래스 10, 다른 하나는 32G/클래스 4)를 대상으로 하며, 폼팩터는 SDXC 슬롯에 맞춰 별도 어댑터가 필요하지 않은 표준(32mmx24mmx2.1mm)을 지원하는 녀석을 골랐다. 실험실 환경은 먼지 하나 없는 클린 어쩌구 이런 환경이 아니라 그냥 무대포로 평상시 작업 하던 상황에서 그냥 했으므로 결과를 너무 심각하게 믿지마라. 여기 실험 결과를 보구 실험의 기본이 안 되어있다는 둥, 특정 회사에 유리한 편파적인 결과를 유도했다는 둥 무지막지하게 까는 행위는 자제해 주시라. ㅋㅋ 한번 더 강조하지만 여기 실험 내용은 참고용일 뿐이며 글자 그대로 믿어서는 정말 _곤란_하다.

실험 방식 역시 내 맘대로다. 큰 파일 하나를 ExFAT와 HFS+로 포맷한 미디어로 복사해봤고 작은 파일 몇 개를 역시 ExFAT와 HFS+로 포맷한 미디어로 복사했다. ExFAT는 FAT32 용량 한계 등을 극복하기 위해 마이크로소프트에서 만든 파일 시스템으로 아직 디지털 장비에서는 제대로 지원하지 못하지만 맥 라이언이랑 윈도우 비스타 계열 운영체제에서는 기본으로 지원하고 있기에 성능을 확인하기 위해 그냥 재미로 테스트해봤다.

맥미니(신형)에서 약 7GB짜리 이미지를 복사한 결과는 다음과 같다.

  • Transcend(Class 10)
    • 16G ExFAT: 10분 51초
    • 16G HFS+(journaling): 11분 23초
  • SanDisk(Class 4)
    • 32G ExFAT: 26분 20초
    • 32G HFS+(journaling): 22분 26초

맥미니(신형)에서 약 431Mbytes짜리 파일 32개(크기 제각각)를 복사한 결과는 다음과 같다.

  • Transcend(Class 10)
    • 16G ExFAT: 51초
    • 16G HFS+(journaling): 44초
  • SanDisk(Class 4)
    • 32G ExFAT: 1분 27초
    • 32G HFS+(journaling): 1분 25초

뭐 딱히 예측을 크게 안 벗어나는 결과를 보여준다. HFS+가 저널링 때문에 좀더 느릴 것으로 예상했는데, 막상 결과를 까놓고 보니까 어떤 경우에는 더 빨랐다(7GB 파일을 Class 4짜리 미디어에 복사한 결과를 보고 킹콩 데이터인줄 착각해 한 번 더 실험했는데 결과는 유사했다). 캐시나 파일 룩업 테이블 처리 방식이나 기타 등등 미묘한 뭔가가 있다는 의심이 들지만 머리가 무지 아파지니 이쯤 끝내기로 하겠다.

EOB

목요일, 11월 03, 2011

[독서광] 구글앱엔진 활용하기

한 동안 클라우드 관련 서적 소개를 좀 게을리했는데, 반성하고 다시 제궤도로 돌아오겠다. 오늘 소개할 책은 오라일리에서 나온 'Using Google App Engine'의 한국어판인 '구글앱엔진 활용하기: GAE로 시작하는 클라우드 컴퓨팅'이다. 이 책은 구글이 제공하는 PaaS(Platform As A Service)인 구글앱엔진에서 웹 애플리케이션을 작성하는 방법을 설명하고 있다.

서문에도 나와있듯이, 이 책은 미시건 대학교에서 가르치는 수업을 기반으로 제작되었다. 수업을 목표로 AppEngineLearn(아, 이 꼼꼼한 탐사 정신)에서 여러 가지 보충 자료를 제공하므로 책과 더불어 함께 활용하면 더욱 좋겠다. 이 책은 웹/구글 기술에 처음 입문하는 초보자들을 주요 대상 독자로 삼기 때문에 구글앱 엔진 자체에 관심이 많은 분들은 책 내용 중에 2장(HTML/CSS), 3(파이썬), 4장(애플리케이션으로 데이터 전송하기)(2, 3, 4장 합치면 무려 100페이지/전체 245페이지!)이 거의 쓸모 없다는(물론 알고 있던 지식을 정리한다는 측면에서 필요할지도 모르겠지만...) 사실에 경악할지도 모르겠다. 그런데 각 장 뒤에 나오는 연습 문제는 처음 컴퓨터 프로그래밍에 입문한 사람들이 풀기가 상당히 난해하므로 이 부분은 모두 한번씩 풀어보시기 바란다. ㅋㅋ(간이 잘 안맞다는 이야기).

이 책은 일반적인 오라일리 책과는 달리 완결된 코드를 주로 제공하므로, 사실상 따라하기가 가능한 수준으로 봐도 된다. 간단한 로그인 페이지를 시작으로 암호 저장을 위한 데이터베이스를 연동하고, 정말 단순한 채팅 프로그램으로 발전시킨 다음 AJAX 기술을 사용해 실시간으로 변경된 채팅 내용을 표시하는 기능을 추가하며 캐시를 도입해 성능을 높이는 선에서 마무리를 짓기에 구글 앱 엔진을 하루이틀 정도에 맛을 보려는 사람들에게 적합하다는 생각이다. 본문에 나오는 예제는 모두 파이썬으로 작성되어 있으므로 파이썬 모르는 분들은 애로 사항이 꽃필 가능성이 높다는 사실도 미리 밝혀둔다.

결론: 구글앱엔진의 숨겨진 비밀을 파해치거나 성능을 높이거나 비용을 절약하는 등 실제 현업에 필요한 내용을 기대하시는 분들이라면 별로 얻을 내용이 없지만, 프레임워크로 프로그램을 작성할 때 필요한 기본 원리(라우팅, MVC 구조, HTML 코드 템플릿, 컨트롤러 작성 방식, 모델을 사용한 데이터베이스 연결)를 취미 수준에서 살펴보고 싶은 호사가라면 읽어볼 가치가 있다는 생각이다.

EOB