구글을 지탱하는 기술 - 
니시다 케이스케 지음, 김성훈 옮김, 전병국 감수/멘토르
검색 분야에서 당대 최고를 달리고 있는 구글이기에 언젠가는 한번 그들의 기술을 조명한 서적을 읽어 볼 필요가 있지 않을까 했는데, 학교에서 공부하는 중에 번뜩 생각이 나서 빌려보았다.
음... 생각보다 책 내용이 어렵다. 분명 어떤 글에서 소설처럼 읽을 수 있다고 본 것 같은데, 글쎄...
논문에 실리는 내용을 쉽게 바꿔 쓰긴 했지만 아무리 쉽게 설명해도 기술은 기술이니...
일단 내가 착각한 가장 큰 부분은 책 내용이 '검색엔진' 에 관한 부분이 주력일꺼라 생각한 거였는데, 책의 대부분의 내용은 대용량 처리와 분산처리이다.
1장이 검색엔진에 관련된 내용이고, 2,3,4 장에 걸쳐 GFS, Chobby, BigTable, MapReduce, Sawzall 등 대용량 처리와 분산처리에 내용이 집중되어 있다.
5장에는 구글의 운용비용에 대한 내용이 나오고, 6장에 구글의 개발 문화가 나온다.
1장의 대한 느낌은... 검색엔진 내용이 상대적으로 적긴 하지만, 구글의 초기 검색엔진 시스템을 훓어주면서 친절하게 설명하고 있어서 나같은 검색관련 뉴비가 검색엔진의 겉모습을 파악하는 데에는 도움이 많이 된다. overview 의 역할은 충실한 것 같다.
이후 2~4장의 GFS, Chobby, BigTable, MapReduce 등의 분산처리, 대용량 처리에 대한 것들은 한 번 쭉 보고 지나갔다. 내공 부족인 탓도 있고, 당장 활용해야 의미가 있는데 그럴만한 것도 아직 없다.
필요할 때 다시 빌리던지 사던지 해서 봐도 될 것 같고, 구글의 위의 기술들을 오픈소스화 한 Hadoop 프로젝트가 아파치재단에 올라가 있으니 필요성이 생기면 이를 공부하는 것이 사실상 더 실무적인 도움이 될 것 같다.
다만 느낀 점은, 구글이 검색엔진 업체로 시작했고 주력 기술이 검색엔진 이라고 생각했지만 결국 구글의 온갖 서비스들을 버티는 방대한 시스템을 커버하기 위해서 분산처리와 대용량 처리가 가장 중요한 기술로 인식되고 있는 것 같다. 운용비용 절감 부분도 포함해서...
그리고 분산 처리 중에 하드웨어 오류를 커버하기 위한 여러 가지 방법들(이원화라던지 관리 서비스라던지 마스터 선택 투표 알고리즘이라던지) 은 꽤 흥미롭게 읽었다. 구글의 그 수많은 서버들을 운영하고 분산처리 하는 동안 분명 하드웨어 오류와 네트워크 오류 등이 발생할 수 밖에 없는데, 이를 어떻게 처리하는지에 대한 것이 크리티컬한 부분인데, 그 궁금증이 어느 정도는 풀린 느낌이다.
5장의 구글의 운용비용 부분은 내가 평소에 전혀 생각해보지 않은 비용의 문제를 다루고 있어서 재밌게 읽을 수 있었다. 그 방법이 인력비용 절감이라면 화를 냈을만한 소재였겠지만(^^;;) 서버의 전력활용과 데이터센터에 초점이 맞추어져 있고 특히 고사양 서버를 쓰는 것이 전력비용 대 성능비 상 좋은 선택이 아니라는 점이 새로웠다. 분산처리의 파워를 보여 주는 면이랄까...
6장의 구글의 개발 문화는 일단 익히 알려진 문화부터 시작한다.
20% 문화는 아주 잘 알려져 있는 예인데, 이 서비스들 중 선택받는 서비스들은 구글랩스를 거쳐서 베타로 진입한다는 점은 모르던 일이었다. 능력 있는 구글러들이 새로운 서비스를 창출해내는 데에도 최선을 다하는 것이 구글의 입지를 계속 강화시키는 방법인 것 같다. 고급인력의 집단지성이라고 할 수 있을 것 같다.
그 외에도 코드리뷰가 필수적이라던지, 유닛테스트를 시행하고 QA/QC 팀이 코드의 품질을 검증한다던지 하는 이야기들도 흥미롭고...
가장 눈에 띄는 것은 메일링리스트와 블로그, 문서들, TechTalk, TGIF, 이력서, 스니펫, 분기 보고 등 상당히 많은 방법을 통해 자신의 스테이터스를 공유하고 정보를 철저하게 공유하고 있다는 점이었다. 사실 가장 본받아야 할 점은 이 부분이 아닐까 싶다. 회사는 미래를 위해 회사의 일원들 각각의 성장을 이끌어야 한다. '키워놓으면 도망간다' 는 말은 적어도 개인을 성장하도록 이끄는 회사에 대해서는 성립하지 않을 것이다. 계속 성장할 수 있는 회사에서 도망가봐야 장기적으로 개인의 손해이다.
내공의 부족으로 참 두서없이 읽고 두서없이 독후감을 남긴 것 같은데... 읽는 동안 참 행복했다. 대형 시스템이 굴러가는 방법, 좋은 기업으로 평가받는 기업의 회사 문화 등... 읽으면서 행복할 꺼리가 많았던 것 같다.
내가 느끼는 행복은 역으로 국내 IT 에 필요한 개선이 아닐지...
쉽게 읽을수만은 없는 책이지만(그래서 일단 별 하나를 빼긴 했다) 구글이라는 회사에 관심이 있는 사람이라면 분명 흥미를 자아낼 만한 책이라고 생각한다.
'Dev.BookReview' 카테고리의 다른 글
| 구글을 지탱하는 기술 (2) | 2009/08/17 |
|---|---|
| 입문자를 위한 루비 (2) | 2009/08/01 |
| 뉴욕의 프로그래머 - 이상적인 개발자 환경에 대한 이야기 (0) | 2007/12/21 |


