Media Log

Hadoop 완벽 가이드 - 8점
톰 화이트 지음, 심탁길.김우현 옮김/한빛미디어
나는 하둡의 분산 파일 시스템에 많은 관심을 가지고 있었는데, 이 책이 한빛미디어에서 번역되어져서 너무 반가웠다.

HDFS는 구글의 분산 파일 시스템인 GFS의 기능들을 Java로 배낀 파일 시스템이다. 오픈소스이며, 아파치 메인 프로젝트로 올라가면서 많은 사람들이 관심을 가지고 지켜보고 있고 또 공헌하고 있다.

모든 코드는 Java를 통해 유저모드에서 구현되었으므로 여러 플랫폼에서 동작이 가능하다 -물론 윈도우에서는 잘 쓰이지 않는다. 누가 분산 서버로 윈도우를 쓰겠는가.

GFS나 HDFS는 현대의 분산 파일시스템에서 트렌드라고 말할 수 있을 정도로 획기적이며 재미있는 기능들을 많이 가지고 있는데 그 기능들은 다음과 같다.

  • 데이터베이스를 사용하지 않고 메모리에서 자료구조를 유지하며 메타데이터를 관리함으로써 속도가 빠르다.
  • 파일을 추상화해서 일정 크기의 블록으로 관리함으로 인해 파일 크기의 제한이 없어졌으며 다른 여러 이득이 있다.
  • 장비의 추가 및 제거가 자유롭다.
  • 파일(혹은 블록)들의 여러 사본들을 만들어 저장해 놓음으로써 특정 서버가 고장나더라도 사용자에게는 오류가 보이지 않으며 데이터의 분실 없이 지속적으로 서비스가 제공 가능하다. 또한 사용자에게 가까운 위치의 데이터를 내려줄 수 있다.
  • 파일에 대한 각 오퍼레이션들을 디스크에 영구적으로 기록함으로써 장애시에도 데이터를 분실시키지 않을 수 있다. 이런 메카니즘은 스냅샷이나 파일 히스토리를 구현하기에도 용이하다. 하지만 이런 파일 저널링 작업때문에 사용자에게 응답이 느려질 수 있다.(메모리에서는 훨씬 먼저 연산이 끝났음에도 불구하고 파일에 쓰여질 때까지 기다려야 한다)

내게는 아쉽게도, 하둡 파일 시스템의 내용보다 맵리듀스에 대한 내용이 이 책의 주를 이루는데 맵리듀스 부분은 시간이 좀 더 남을 때 천천히 읽어보려고 한다.
맵리듀스는 분산컴퓨팅에서 하둡 파일시스템만큼이나 획기적이고 실용적인 기술이므로, 꼭 제대로 이해하고 넘어갈 수 있었으면 좋겠다.

분산 시스템을 잘 아는 역자가 번역했으므로 큰 흐름에 대한 오역은 거의 없지만, 문체가 지나치게 딱딱해서 재밌게 술술 읽히지 않는 다는 것은 크나큰 단점이다. 사실 재미없는 내용은 아닌데 말이다.
게다가 오타도 지나치게 많다. 읽다보면 몇 장을 안넘기고서 꼭 오타가 보이고 잘못 인쇄된 부분들이 보이곤 하는데 이건 거의 베타도 아닌 알파 수준의 책이구나 하는 생각을 했다. 나는 이 책이 나오자마자 구입했었는데, 출판사의 무성의함에 참 화가 났었다. -어떻게 한빛미디어가!

다른 한빛리더스 회원들과 함께 이 책의 많은 오류들을 출판사에 보고 했고, 잘 등록이 된 것 같다.
아마 이 책의 2쇄에서는 많은 부분이 개선될 수 있을 것이다.

파일 시스템이나 맵리듀스에 관심이 있는 사람들은 꼭 읽어볼 것을 추천한다.
구글을 지탱하는 기술 - 8점
니시다 케이스케 지음, 김성훈 옮김, 전병국 감수/멘토르

아름다운 명서에 넣기는 뭐해서 가볍게 읽기 좋은책으로 카테고리를 정하긴 했지만 실제로 이 책이 그렇게 가볍게 읽을만한 책은 아니다.

맨 마지막 장인 6장에 가서야 구글의 시스템, 개발 언어 등 많은 사람들이 원하는 이야기들이 소개되며, 그 전까지는 맘 편히 볼만한 내용들은 별로 없다.

나는 회사에서 가상 파일 시스템을 구현하는 일을 맡고 있는데,
그래서 역시 이 책의 3장에 나오는 GFS(구글 파일 시스템)부분이 가장 인상깊었다.

거기에는 지금까지 우리가 생각은 해왔지만, 구현하기 힘들다는 이유로
그리고 개발 시간이 오래걸린다는 이유로 도망쳐왔던 많은 아이디어들과
심지어는 생각해보지도 못했던 여러 기술들이 구현되어 있었다.

이 책을 읽으면서 줄곧 들었던 생각이 있다.
나는 무엇을 그렇게 무서워 하고 있는가?

이 프로젝트를 과연 내가 해낼 수 있을까?
이 복잡한 알고리즘을 과연 버그 없이 구현할 수 있을까?
다른 방식으로 구현하면 몇몇 단점들이 있긴 하지만,
훨씬 쉽고 빨리 만들수 있으니 그 방법으로 사람들을 설득하자. 하는 썩어빠진 마음가짐.

실제로 이런 어려운 문제들을 멋지게 구현해낸 이들을 보면서, 나는 많은 반성을 했다.
주위에 도움을 받을 수있는 훌륭한 해커들이 있다는 것은 이런 두려움을 없애주는 가장 큰 힘이다.
내가 어려운 문제에 봉착해서 머리를 싸매고 있을 때, 해결책을 제시해주는 그들에게 진심으로 감사한다.

담대하게, 그리고 좀 더 진지하게 문제에 접근하는 태도를 길러야겠다.