[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 Git인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Git인 게시물을 표시합니다. 모든 게시물 표시

2017년 6월 8일 목요일

[NEWS] 기술 뉴스 #14 : 14-09-01..


출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

웹개발 관련

  • Chrome Enchanted: 2014년 주목할만한 HTML5 규격 4종 : 도창욱님이 정리한 글로 Web Components, Web Animations, WebRTC, Service Worker 기술의 개념을 잡기에 잘 정리된 글이다. 개인적으로는 Web Components와 Service Worker에 관심이 있는 편이다.(한글)
  • JavaScript Memory Management Masterclass : JavaScript의 메모리 관련 성능개선과 관련해서 아주 깊은 내용까지 잘 정리된 발표자료(영문)
  • 온라인 장애 체험관 : 네이버 NULI에서 접근성 확대를 위해 온라인 장애 체험관 사이트를 열었다(한글)
  • 반응형 웹 디자인의 현재 : Smashing Magazine의 The State Of Responsive Web Design를 번역한 글로 반응형 웹과 관련된 기술들을 잘 설명한 글이다. 현재 반응형 웹을 구현하는 방법이라기보다는 현재의 문제점과 새로운 기술들이 어떻게 해결하려고 하고 있는지를 설명하고 있어서 반응형 웹 디자인에 관심이 있다면 알아둘 필요가 있는 내용이다.(한글)

그 밖의 프로그래밍 관련

  • Beautiful Open : 오픈 소스 프로젝트 사이트 중에서 디자인이 좋은 사이트만 모아놓은 곳(영문)
  • Common App Rejections : 애플이 앱스토어에서 앱 리뷰를 거절하는 이유를 정리해 놓은 페이지를 공개했다.(영문)
  • Java 9 Features Announced : 오라클에서 Java 9의 기능을 처음으로 공개했다. Java 8도 먼 얘기로 들리는 상황에 벌써 자바 9을 얘기하는 게 맞는지 모르겠지만, 경량 JSON API, HTTP 2 클라이언트 등이 포함되었다.(영문)
  • VisuAlgo : 정렬, 큐, 트리 등의 데이터 구조나 알고리즘을 동작 방식을 애니메이션으로 코드와 함께 보여주는 사이트. 알고리즘을 애니메이션으로 보여주는 사이트가 다수 있지만 깔끔한 디자인과 코드와 함께 보여주고 있어서 알고리즘을 이해하기에 좋다.(영문)
  • Open Sourcing the f8 Conference Apps : 페이스북이 인수한 DBaaS 업체인 Parse에서 페이스북 콘퍼런스인 f8용으로 만든 앱을 오픈 소스로 공개했다. 이 앱은 Parse를 기반으로 만들어졌다.(영문)
  • PYCON Korea 2014 : 국내 첫 파이썬 콘퍼런스가 지난 8월 30일에 숙명여대에서 열렸다. 나는 안타깝게도 참석을 못 했지만 콘퍼런스 사이트에 가면 발표자료를 볼 수 있다.(한글)

IT 업계 뉴스

볼만한 링크

  • 뉴욕타임스 혁신보고서(번역본) : 170페이지 정도의 PDF로 뉴욕타임스의 혁신보고서의 번역본이다. 내용이 길어서 다 읽어보진 못했고 IT 기술 내용이 위주는 아닌 것 같지만 관심 가는 주제라서 링크를...(한글)
  • GitHub – Cracking the Code to GitHub’s Growth : Github의 성장과 관련해서 분석한 글이다. 긴 글이지만 Github이 어떠한 전략을 사용하면서 성장했고 어떤 부분을 중요시하는지 잘 정리되어 있다.(영문)

2016년 4월 14일 목요일

[Book] Pro Git..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

Pro Git - 10점
Chacon, Scott
Springer-Verlag New York Inc
박창우, 이성환 옮김

Pro GitGithub에서 일하는 Scott Chacon이 쓴 책으로 어떻게 출판사에서 이를 허락했는지 모르지만 Apress의 책으로도 출판되면서 Pro Git사이트에서 무료로 공개되어 있습니다. 이 책은 Github의 저장소에서 관리되고 있는데 올 초 pismute님과 lethee님이 이 책을 번역해서 공개했습니다. 정식으로 국내에 출판된 책이 아니기 때문에 위의 책 정보는 원서를 기준으로 링크했지만 무료로 공개된 번역서를 읽었습니다. 무료번역서는 여기서 다운로드 받을 수 있으며 현재 최신 버전은 2012-02-26에 빌드한 버전입니다.

결론부터 말하자면 이 책은 내용이 너무 좋은데다가 무료로 번역임을 감안하지 않더라도 번역의 품질이 좋은 편입니다. 국내의 유일한 Git책인 Git, 분산 버전 관리 시스템[과거에는 왜 안가져왔지..?? 아마도 그 때는 Git 에 대한 관심도가 전혀 없었던 듯.. ㅎㅎ]가 Git을 사용하는데 중점을 두고 있다면 Pro Git은 Git을 이해하는데 중점을 두고 있다고 느껴집니다. 이 2가지 접근에 대해서 어느 쪽이 과연 좋은가는 저도 잘 모르겠습니다. Git을 공부할 때 Git에 동작방식이나 내부 구조, DVCS의 특성들까지 다 이해하면서 배운다면 참 좋겠지만 저같은 경우는 기본적인 명령어인 clone, commit, push등으로 기본적인 DVCS를 다루다 보니 활용하는데 한계를 점점 느끼면서 내부적인 부분이 궁금해진 경우인데 마침 이 책이 번역되어서 읽었는데 궁금한 상당부분이 해소되었습니다.

이 두 가지 접근은 사실 둘다 괜찮은 방법이라고 생각합니다.(어쩌면 개개인의 성향에 따른 것일 수도 있겠습니다.) 물론 Pro Git에서도 기본적인 Git의 사용법은 당연히 다루고 있고 2장 Git의 기초와 3장 Git 브랜치를 읽고 나면 기본적인 사용을 할 수 있습니다. 하지만 앞에서 얘기했듯이 Git을 이해하게 하는데 중점을 두고 있기 때문에 설명할 때도 처음 Git을 배운다면 약간 어려울 수 있는 개념들이 함께 등장하고 있습니다. 설명이 좋지 않다는 얘기도 아니고 이 부분은 Git을 쓰려면 꼭 배워야 하는 개념들이지만 저같은 경우는 간단한 명령어들은 어느정도 쓰고 있었기에 가볍게 보면서 읽을 수 있었지만 아주 모르는 사람들이 보면 어려울 수도 있겠다는 생각이 듭니다.(사실 일단 Git 자체가 어렵습니다. ㅎ) 하지만 이 말은 최초 입문서로 적당한가? 하는 의문일 뿐 Git을 좀 제대로 이해하려면 반드시 Pro Git을 보라고 추천하고 싶을 정도로 내용과 설명이 깔끔합니다.

4장에서는 Git 서버를 구성하는 방법이 나옵니다. 여기서 Git서버를 사용하는 방법과 Git서버 프로그램들이 GitosisGiolite등을 소개하고 있습니다. 5장에서는 DVCS인 Git으로 팀 개발을 할 때 어떤 Workflow를 적용해야 좋은지를 몇가지 방법을 비교하면서 설명해 주고 있습니다. 개인적으로는 이 두 챕터는 약간 흐럽을 끊지 않나 생각합니다. 사실 이 부분의 대한 고민은 상당히 Git을 사용해 본 뒤에 하게되거나 실제로 팀에 적용할 때 고민할 부분인데 일단 GitHub라는 걸죽한 무료 호스팅이 존재하기 때문에 보통은 기본 명령어후에 좀 더 고급의 사용을 고민하게 되지 않나 생각합니다.

이부분은 6장부터 나옵니다. 히스토리를 조회하고 커밋메시지를 관리하거나 rebase, stashing같은 약간은 고급(?) 명령어들을 다뤄주고 있습니다. 상황을 예시로 잘 들어주면서 설명해 주기 때문에 이해하기가 좋고 책을 참고하면서 실제로 활용할 수 있을 정도로 잘 설명되어 있습니다. 7장은 Git의 설정과 Git Hook을 다루는 방법을 설명하고 있는데 단순히 사용방법뿐만 아니라 어떻게 Hook을 작성해서 추가하는지 자세히 보여주고 있습니다. 이런 부분들은 다른 곳에서는 많이 안다뤄주기 때문에 특히 유용합니다. 8장에서는 기존의 Subversion을 사용하고 있다면 git-svn으로 어떻게 혼합해서 사용할 수 있는지와 아니면 Subversion등의 VCS를 Git으로 변환하는 과정을 보여주고 있씁니다. 8장은 사실 git-svn말고는 많이 쓰진 않을 것 같지만 팀에 도입하려면 한번정도는 겪을만한 상황이라고 생각하고 있습니다.

개인적으로 가장 좋았던 장은 9장입니다. 이 장에서는 Git의 내부 구조를 다루고 있습니다. Pro git에서 언급하는 용어대로라면 앞에서 계속 배웠던 명령어들은 Porcelain명령어로 사용자가 쉽게 쓸 수 있도록 제공되는 언어이고 내부적으로는 저수준인 Plumbing를 사용하고 있습니다. 9장에서는 Git을 사용하면서 clone하고 커밋하고 푸쉬할 때 Plumbing명령어나 직접 코드를 작성해서 생성해 보면서 Git이 실제로 내부에서는 어떻게 동작하는지를 보여주고 있습니다. 어려운 내용이라 한번 보고 죽~ 이해하기는 어렵겠지만 정말 다른데서는 거의 설명되지 않은 부분이기 때문에 정말 유용한 부분이라고 생각하고 9장을 이해하면 Git의 활용폭도 크게 늘어날 것으로 보입니다.

저는 Git을 꽤 좋아하는 편인데(잘 쓰진 못하더라도) 작년까지는 어디서나 다 git만 썼으면 좋겠다고 생각했습니다. 그만큼 Git이 좋았고 Git을 쓰면서 Subversion이 얼마나 구린 VCS인지를 깨닫게 되었습니다. 하지만 올해는 좀 생각이 달라졌는데 Git을 제대로 쓰려면 공부를 상당히 많이 해야 되고 저야 좋아하니까 이런 투자를 할 가치를 느끼지만 Git을 팀에 도입하자고 적극적으로 나서면서 앞으로 Git을 공부하세요! 라고 다른 사람에게 강요(?)하는 건 어렵겠다라고 생각하고 있습니다.(아마 팀에 상당수가 Git에 대한 호감이 있지 않다면 도입은 아주 어려운 일일것입니다. 대부분의 새로운 것의 도입이 그렇긴 하지만요.) 그럼에도 현재 대부분의 오픈소스가 Git으로 이동하고 있기 때문에 Git을 능수능란하게 사용하지는 못하더라도 기본적인 사용은 꼭 알아두어야 할 필요가 있다고 봅니다.

아무튼 Git을 좀 더 이해하고 싶고 잘 쓰고 있지만 Pro Git은 꼭 읽어보시라고 추천하고 싶습니다. 이런 양질의 자료를 무료로 번역해서 공개해 주신 pismute님과 lethee님께 정말 감사드립니다. 앞으로 Git 사용할 때 완소 자료가 되겠네요 ㅎ


My Comment..
여기서 논하는 Git 자체를 알지는 못한다.. 음.. 알지 못한다라기보단 우찌됬건 햄 블로그를 통해서 Git 의 쓰임새를 대충은 봤으니 아예 모르는건 아니고, 내가 사용하지를 않으니 아무래도 관심도에서는 순위권 밖이라고 할 수 있다는 정도이다.. 그런데 혹시라도 언젠가 Git 을 사용하는 회사 또는 프로젝트를 가면, 해당 글이 좀 유용하게 쓰일듯해서 가져왔다.. 근데 웃기게도 해당글은 가져오면서 Git, 분산 버전 관리 시스템 책은 왜 안갖고 왔나 모르것넹.. 아마도 그 때는 Git 은 나랑 상관없는 딴 나라 세상 얘기라고 넘겨버렸나보다.. ㅎㅎ

2016년 4월 6일 수요일

[EP]H3 Developers Conference 2011 후기 #2..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

개발자를 위한 고급 Git 활용전략 - 김상영
Git명령의 대부분은 File보다는 Commit 객체를 다룬다는 점을 알아야 하고 Git의 명령어를 이해하기 위해서는 HEAD와 브랜치가 단순한 포인터라는 것을 기억해야 합니다.

이 발표는 말로 정리하기는 어려운 부분이 있어서 Aj가 올려주신 발표자료를 첨부했으니 이 내용을 보시는게 이해하기가 훨씬 쉬울 것입니다. 처음 설명은 HEAD와 브랜치에 대한 설명이었습니다. Git의 커밋객체들이 자신의 부모 커밋들을 참고해서 링크드리스트처럼 연결되고 HEAD는 이에 대한 포인터로의 역할만 합니다. Branch도 마찬가지로 다른 커밋객체를 가리키는 새로운 포인터일 뿐입니다. 이를 자바스크립트의 객체에 비유해서 설명했는데 명확하게 이해하기가 쉬운 비교였습니다. 다만 자바스크립트로 비유할 때 커밋객체의 parent대신에 prev로 설명했는데 혹 git을 잘 모르는 사람은 prev라는 속성이 있는 것으로 오해할까 싶기도 했습니다.(머 그걸 오해한다고 큰 문제가 생기는 것은 아닙니다. ㅎ)

뒷부분은 Git저장소의 해부에 대한 내용입니다. git저장소를 만들면 .git폴더안에 많은 파일들이 생기고 git로 작업할 때마다 이 폴더안에 새로운 파일들이 생기게 되는데 이 구조에 대한 설명이었습니다. 커밋객체는 커밋할 때 생기지 않고 git add할 때 생기는데(git add할때 생기는건 블랍객체이고 커밋객체는 커밋할때 생깁니다.)  .git/objects안에 생기고 블랍파일입니다. git blob format는 헤더를 포함해서 zlib으로 압축을 합니다. git hash-object 명령어를 사용하면 파일에 대한 해쉬명을 알아낼 수 있고 해시화된 파일은 git cat-file로 그 내용을 알 수 있습니다.

왜 해쉬를 사용했는가 하면 중복이 나올 확률이 무척 적으며 육안으로 구별하기 어려운 간단한 차이도 해시에서는 쉽게 구별할 수 있습니다. 그래서 Git에는 4개의 객체가 있는데 모두 파일로 존재합니다.

  • Blob : .git/objects안에 존재합니다.
  • Tree : 폴더처럼 트리안에 트리가 존재하고 그안에 Blob가 존재할 수 있고 .git/objects안에 있습니다.
  • Commit : 리스트입니다. 이전 커밋을 참조하는 Parent, tree, author, date등의 속성을 가지고 있고 .git/objects안에 있습니다.
  • Tag : 커밋객체에 대한 포인터로 .git/refs/tags아래 있습니다.

Git에는 Working Area, Staging, Repo 3가지 스페이스가 있습니다. 각 명령어를 실행할 때마다 이 스페이스 사이에 리스트가 만들어지는 것이고 이 리스트를 통해서 비교가 됩니다. 그리고 리셋옵션은 리셋할 스페이스를 지정하는 것입니다. --soft는 Repo까지 --mixed는 Staging까지 --hard는 Working까지 리셋한다는 의미입니다.

Aj와 개인적인 친분도 있었기 때문에 초기에 이 발표에 대한 설명을 들은적이 있었는데 그때는 사실 잘 이해가 되지 않고 너무 어려운 얘기를 하시려는게 아닐까 생각했었습니다. 그뒤에 여러번의 과정을 거쳐서 발전되어 실제 발표할 때는 너무나 깔끔한 설명이 되었습니다. Git에 대해 궁금하신 분은 이 발표자료를 꼭 참고하라고 하고 싶습니다. 개인적으로는 이날 제일 유익한 세션이었네요.

많은 Git에 대한 발표들이 GIt의 명령어에 대한 것이었다면 이번 발표는 Git의 내부구조에 대한 설명이었는데 이해를 돕기 위해서 자바스크립트의 변수에 비유해서 설명하였는데 아주 이해하기 쉽고 최근에 제가 궁금해 하던 부분이기 때문에 무척 유익했습니다. Git을 시작할 때 이런 부분을 이해하고 사용해야 한다는 것은 아니지만 단순히 clone - commit - push만 하는 것 이상의 작업을 하려면 반드시 내부구조에 대한 이해가 반드시 필요합니다.

UX에 대한 7가지 오해와 진실 - 김수영
이 세션을 저로써는 잘못 선택한 세션이었습니다. 저는 사실 UX자체에 대한 내용으로 생각하고 들어갔지만 실제로는 UX에 대한 얘기가 아니라 UX팀과 UX팀의 업무에 대한 얘기였습니다. 그래서인지 오후가 되어서인지 좀 집중하지 못하고 들었습니다.


많은 얘기가 있었지만 간단히 요약하면 위 사지의 7가지가 오해이고 아래 사진의 7가지가 그 진실입니다. 내용이 요약으로 하기는 좀 어려워서 사진으로 대체합니다. ㅡㅡ;;


이런 부분은 UX만 아니라 상당부분은 QA팀이나 기획팀에 적용해도 크게 이상하지 않았을꺼라고 생각하고 있습니다. 저도 UX에 어느정도 관심이 있는데 사실 많이 알지 못합니다. 저는 사실 국내에 UX에 대해서 제대로 아는 사람이 얼마나 있는가에 대해서 좀 회의감을 가지고 있는 사람입니다. UX라는 단어가 인기를 끈 뒤에 많은 회사에 UX라는 조직이 생겼지만 제대로 UX를 하고 있는지는 잘 모르겠습니다. 발표내내 들은 느낌은 KTH의 UX조직은 개발과 프로젝트의 전반적으로 관여하고 품질향상을 위해서 상당히 노력하는 것으로 보였는데 아마 저는 이렇게 UX와 일을 못해봐서 그렇게 느끼고 있었는지도 모르겠습니다.

제가 느끼는 UX조직의 문제는 UX라는 단어의 모호함(어쩌면 모호하다기 보다는 대부분 쉽게 이해못하는...)때문도 있지만 UX라는 것이 그렇게 표가 나지 않는 작업입니다. UX라는 것은 아주 다양한 곳에 적용되지만 아주 간단한 예로는 주민등록번호를 입력하면 생년월일이 자동으로 입력된다는 등의 일이 있습니다. 당연히 이는 무척 중요하고 사용자의 편의성을 크게 높여주지만 사실 잘 표가 나지 않습니다. 조직내에서 우리 UX팀이 좋은 UX를 만들어냈다는 것을 윗분들에게 보여주기가 다른 쪽에 비해 쉽지 않다는 것입니다.(대부분 윗분들은 UX를 깊이 이해못하고 있으니까요.) 그래서인지 어느 조직이든 그렇듯이 UX팀의 존재성을 증명하려다 보니 좀 이상한 UX까지 억지로 들어가는 느낌이 없잖아 이다고 생각하고 있습니다.

암튼 이런건 개인적인 생각이고 다른 분들은 좋았다는 사람들도 많았던것 보니 아마 기대감의 차이였던 것 같습니다. 전 UX전문가한테 UX에 대해 자세한 얘기를 좀 듣고 싶었거든요. 발표를 들으면서 다른 UX조직도 KTH처럼 다방면으로 노력하면서 하는지 궁금하다군요.(그렇다면 제가 UX에 대한 오해를 가지고 있었던 것이겠지요. ^^;;)

파이썬으로 클라우드 하고 싶어요 - 하용호
이 세션의 주제는 파이썬으로 분산처리도 해보고 병렬처리도 해보고 클라우드도 써보자였습니다. 지금은 시대가 빅데이터와 분산처리를 필요로 하고 있습니다. 가장 간단한 것은 한 컴퓨터내의 멀티코어를 잘 사용하는 것이고 그 다음은 여러 머신을 사용하고 그 다음은 클라우드를 사용하는 것입니다. 하지만 분산프로그래밍은 어려운데 배우기도 어렵고 쓰기도 어렵고 실행하기도 어렵습니다. 이렇게 어려운 이유는 작성하는 것이 어렵고 라인수도 무척 길어집니다. 그리고 네트워크나 디스크가 병목점이 될 때가 많고 의외로 반복사용하기도 어렵습니다.

여기에 대한 해답이 파이썬이고 파이썬을 사용하면 생각의 속도로 코딩을 할 수 있습니다. 국내에서는 인기가 높지 않지만 파이썬도 쉽고 쉽게 쓸 수 있는 라이브러리도 많이 존재하고 파이썬이 느리기는 하지만 어차피 네트워크나 디스크로 인한 병목점이 많이 발생하기 때문에 파이썬의 속도는 크게 문제가 되지 않습니다.

멀티코어를 잘 사용하려면 쓰레드를 여러개 사용해야 합니다. 간단한 덧셈프로그램을 하나의 쓰래드로 했더니 3.5초가 걸렸는데 쓰레드를 2개로 늘렸더니 오히려 4.2초가 걸렸습니다. 파이썬도 파이썬 버츄얼머신상에서 동작하는데 이는 GIL(Global Interpreter Lock)때문에 발생하는 문제입니다. 보통 시스템이 락이 걸때 Coarse-grained락이라는 큰 락을 거는데 성능이 좋지 않고 작업당 락은 거는 Fine-Grained락은 작은 락이라 성능은 좋지만 만들기가 쉽지 않습니다. 파이썬은 전체를 락으로 거는 단 하나의 락을 사용합니다. 그래서 쓰레드를 여러개 사용하더라도 락이 하나이기 때문에 하나의 CPU가 일을 하면 다른 CPU는 놀고 있습니다.

GIL을 사용하면 인터프리터 구현이 쉽고 GC만들기도 좋습니다. 파이썬이 GIL을 도입했을 때는 1990년대였기 때문에 싱글CPU였지만 지금은 멀티코어가 일반화되었기 때문에 이부분이 오히려 장벽이 되었습니다. 그래서 쓰레드로 할 수 없으면 프로세스로 할 수 있습니다. GIL은 프로세스에서만 유효하기 때문에 CPU별로 프로세스를 구분해 주어 작성하면 앞의 덧셈프로그램을 프로세스 2개로 1.88초만에 계산할 수 있습니다. 사실 이건 꼼수가 아니라 분산프로그래밍에서는 오히려 정답입니다. 쓰레드라는 것은 하나의 PC내에 존재하는 것이지만 분산은 여러 머신에 걸처서 해야 하는 것입니다. 파이썬에는 Parallel Python이라는 라이브러가 존재하는데 여러 프로세스에 분산해 주는 역할을 합니다. 사용하기도 쉽고 잘 동작하는데 싱글머신의 멀티코어에도 사용할 수 있고 워커머신 자동찾기 기능도 있습니다.

이제 클라우드를 사용해 보겠습니다. 맵리듀스는 2004년 OSDI의 구글 발표에서 이야기 나온 것입니다. 맵리듀스는 사실 어려운게 아닌데 누구나 많은 양의 작업을 해야한다면 생각해 낼 만한 작업입니다. 예를 들어 책에 나오는 단어의 갯수를 세어보는 작업을 해야한다면 여러명에게 일을 나눠주고(map) 나눠준 결과를 다시 모으는 것도 힘들기 때문에 일정단위로 분단장을 뽑아서 종류별로 모으도록(reduce)하는 것입니다. 맵리듀스가 인기있는 이유는 하둡때문입니다.

하둡이 등장하기 이전의 분산처리는 어떻게 분배해야 하는지 프로그램을 어떻게 원격에 전송하고 나눈 작업을 어떻게 스케쥴링해야하는지에 대해서 고민해야 했지만 하둡의 등장으로 어떻게 Map을 작성하고 Reduce를 작성하는지만 고민하면 나머지는 하둡이 다 알아서 해줍니다. 그래서 슈퍼개발자가 아니러도 분산처리를 할 수 있게 되었고 분산이 유행하게 되었습니다. 하둡은 자바로 만들어졌지만 HadoopStreaming을 이요하면 어떤 언어에서도 사용할 수 있습니다. HadoopStreaming에 관심을 가진 업체는 Yelp인데 이 회사는 사장부터 파이썬 매니아라서 mrJob이라는 라이브러리를 만들었습니다. mrJob을 사용하면 하둡없이도 로컬에서 테스트할 수 있고 runner부분만 바꾸어 주면 하둡에서 동작하게 할 수 있습니다.

분산프로그래밍을 하려면 많은 머신이 필요한데 회사에 머싱이 많지 않다면 아마존의 ElasticMapReduce가 좋은 대안이 될 수 있습니다. 아마존이 OS와 하둡을 설치해 놓아서 비용만 지불하면 이용할 수 있습니다. 가격도 저렴해서 라지인스턴스 기준으로 7.5G 메모리에 4CPU 100대를 한시간 써도 6불만 지물하면 된다. ElasticMapReduce도 mrJob에서 지원하고 있어서 runner만 emr로 바꾸면 자동으로 ElasticMapReduce에서 실행한뒤에 결과를 S3로 전송해 줍니다.

원래는 이 시간대에 다른 세션을 들으려고 했습니다. 클라우드에는 관심이 있었지만 파이썬은 할 줄 몰랐기 때문에 제가 들을 만한 세션인지 잘 몰랐기 때문이지요. 하지만 컨퍼런스 몇일전부터 트위터에서 이 세션이 엄청 재밌다는 홍보가 많이 있었고 주위사람들도 들으러 간다기에 같이 들어갔습니다. 들어가고 보니 안들어왔으면 엄청나게 후회했을 좋은 세션이었습니다.

기본적으로 내용이 탄탄하고 좋았습니다. 설명을 너무 잘하셔서 내년에는 파이썬을 배워보고 싶은 마음이 들 정도였습니다. 파이썬과 분산프로그래밍의 연결에서 흐름과 예제까지 자연스럽게 잘 구성이 되어 있어서 몸이 지친 마지막 세션이었음에도 집중해서 들을 수 있었습니다. 더군다나 중간에 개그를 계속 하셨는데 개그가 완전히 제 코드라서 너무 재밌게 들었습니다. 좋은 내용에 적절한 개그까지 발표스타일이 너무 맘에 들더군요.

Epilogue
개인적으로 너무나 흡족한 컨퍼런스였습니다. 처음하는 세미나라고 믿기 어려울 만큼 컨퍼런스가 좋아서 상당한 기간동안 열심히 준비했다는 것을 느낄 수 있었습니다.


H3에서 가장 인상깊었던 것은 바로 이 책입니다. 이 책은 (모든 세션은 아니지만) 발표자들이 세션의 내용을 글로 적은 내용을 책으로 묶은 것입니다. 단순히 발표자료를 프린트해서 한 것이 아닌 글을 자세히 새로 적었습니다. 이는 제가 생각하는 발표라는 방향과도 부합하는데 사실 발표자료는 발표를 돕는 역할이기 때문에 발표없이 발표자료만 보면 이해하기가 어려운게 사실이고 그냥도 볼 수 있는 발표자료를 만들려면 원래 의도에 제대로 맞출수 없습니다. 발표는 발표로 하고 자세한 내용을 읽어볼 수 있도록 이렇게 제공했다는 점에서 이번 컨퍼런스를 얼마나 열심히 준비했는지 알수 있습니다.

저는 컨퍼런스나 세미나는 한두가지 인사이트나 괜찮은 세션정도면 만족하는 편인데 H3에서는 대부분의 세션에 만족감을 느낄정도로 퀄리티가 좋았습니다. 이는 대부분 보안이라고 감추는 사내에서 직접 업무를 하면서 고민했던 부분과 개발한 부분을 그대로 공개했기 때문에 세션들이 무척 실용적이면서도 내용이 탄탄했습니다.

그리고 많은 사람들이 트위터에 H3의 만족감에 대한 트윗을 올라서 30일 타임라인에서 최대의 이슈였던것 같습니다. 그런 글 중에 많은 글에서 xguru님으로 인해 달라진 KTH에 대한 얘기가 많이 있었는데 제 생각은 약간 다릅니다. xguru님이 KTH에 오신 이후로 대외적으로 많이 알려진 것은 사실이지만 이번 컨퍼런스를 통해서 KTH가 겉으로 드러나는 부분만이 아닌 다양한 부분에서 오랫동안 탄탄히 준비한 것이 느껴졌습니다. 그리고 이 뒤에는 KTH 부사장인 박태웅님이 있다고 생각하고 있습니다. 지금 이 수많은 개발자들을 끌어들이며 KTH가 순신간에 영향력을 가지게 된 것은 박태웅님이 그 주역이라고 생각하고 사실 xguru님을 끌어들인것도 부사장님인걸로 알고 있습니다.

꽤전에 KTH에서 전사원들에게 엄청나게 열심히 기술을 전파하는 부사장님 얘기를 들은적이 있었지만 사실 그다지 신경쓰진 않았습니다. 실제로 어떤지는 제가 알 수 없었고 대부분의 윗분들은 기술을 잘 모르는데다가 사실 이해하려는 마음도 그다지 없이 주변에서 주위들은 기술지식만으로 섣부르게 몰아쳐서 피곤해지는 경우가 훨씬 많았기 때문입니다. 그러면서 트위터를 통해서 많은 얘기나 요즘은 직원분들과 얘기하는 것을 많이 보았는데 제가 아는 범위에서는 거의 유일할 정도로 비기술자이면서 기술에 대한 제대로된 관점을 가진 임원입니다. 기술자가 아님에도 기술자와 비슷한 관점을 가지고 있고 이제는 그 기술에 대한 판단을 제대로 해줄 능력있는 개발자들까지 갖추어진 상태입니다.(나중에 혹시 이력서를 쓸지도 모를 상황을 위해서 아부하려는 것은 아닙니다. ㅡㅡ;;)

암튼 H3컨퍼런스내내 상당히 즐거웠습니다. 최근 KTH가 유명한 개발자들을 많이 데려가면서 저는 이러한 최근행보를 아주 좋게 보고 있고 꼭 성공(?)하길 바라고 있습니다. 그래야 그런 분위기가 다른 곳으로도 퍼질 수 있을테니까요. 사실 과거에는 KTH는 IT에서 그다지 안중에도 없는 회사였지만 최근에는 NHN, Daum과 어깨를 견줄 수준까지 올라온듯 합니다. 컨퍼런스 얘기는 안하고 회사얘기만 한참 했네요. ㅎㅎ 오랜만에 좋은 컨퍼런스를 갔다왔더니 기분이 좋군요.