카산드라 완벽 가이드 - 페이스북, 트위터를 지탱하는 기술, NoSQL
에벤 휴잇 지음, 송무찬.최원우 옮김 / 한빛미디어 / 2011년 10월
평점 :
절판


개발자라면 NoSQL이라는 말을 최근에 한번이라도 들어본 적이 있을것입니다. 카산드라는 페이스북에서 개발하여 아파치재단에 오픈소스로 공개한 프로젝트입니다.


필자가 책 초반에 예고는 했지만 생소한 용어들이 많이 나옵니다.  


참고로 이 책을 읽으시는 분들은 저자의 다음 말을 기억하시는게 도움이 될 듯 합니다.

“카산드라를 배우려면 관계형 분야의 지식은 잠시 잊는 것이 효과적이다.” 


이 책은 프로그래밍을 막 시작한 초급자에게는 어려울 수 있습니다. 중급자에서 상급자의 수준에 적합할 것 같습니다. 또한 기본적으로 자바언어를 다룰 수 있어야 합니다. 카산드라를 자바개발자만 사용할 수 있는 것은 아니지만, 일단은 책에서 설명하는 예제코드가 자바로 구현되어 있기 때문입니다. 책의 내용 이해를 위해 웹과 네트워크에 대한 지식도 어느 정도 숙지하고 있어야 합니다. 무엇보다도 중요한 것은 카산드라가 관계형 데이터베이스와는 전혀 다른 방식의 저장구조를 구현하고 있다는 점을 염두해두고, 카산드라에서 사용되는 새로운 용어와 개념에 익숙해져야 합니다.


1장에서는 카산드라를 소개하면서 관계형 데이터베이스에 대한 핵심적이고 날카로운 분석내용을 짧지만 명확하게 제시합니다. 관계형 데이터베이스는 트랜잭션이라는 특징이 있고, 간결하면서도 강력한 SQL을 통해 데이터를 관리할 수 있습니다. 그러나 모든 스키마를 관계형모델에 매핑할 수 있는 것은 아니며, 데이터와 사용량의 증가 시 하드웨어적인 수직적 확장으로는 처리속도가 느려지는 문제를 근본적으로 해결할 수는 없다는 점을 언급합니다. 


그렇다면 카산드라는 어떤 특징이 있을까요? 오픈소스, 분산된, 비집중화된, 지속적으로 확장 가능한, 고가용성, 결함 허용, 조정가능한 일관성, 컬럼 지향 데이터베이스라는 단어로 요약할 수 있습니다.


2장부터는 카산드라의 설치와 데이터모델, 아키텍쳐, 데이터의 읽기/쓰기 방법을 상세하게 설명합니다. 예제 전문을 수록하여 꼼꼼하게 설명하거나, 메소드 하나에 각 절을 할애하여 설명하고 있습니다. 또한 카산드라의 내부동작이나 아키텍쳐를 설명하기 위해서 저자는 관계형 데이터베이스의 개념과 카산드라의 차이를 적절한 예로 제시하고 있습니다. RDB에 익숙한 독자들에게 N x M의 고정된 테이블이 아닌 데이터베이스를 설명하기 위한 최상의 방법일 것입니다.


저자는 관계형 데이터베이스 보다 카산드라와 같은 NoSQL 부류의 데이터베이스가 최선이라고 말하지 않습니다. 각각 장단점이 있기 때문에 프로젝트의 성격에 맞게 사용하라고 권유합니다.


번역본 임에도 문장이 매우 매끄럽습니다. 이해를 돕기 위해 본문 곳곳에 추가적인 설명이 첨부되어 있습니다. 카산드라의 버전업 주기가 빠르기에 책의 집필 시점에서도 버전이 업그레이드 되고 있었다고 합니다. 역자분들 또한 최신버전으로 반영하려 애쓴 모습이 보입니다. 특히 역자주를 통해 버전 간의 차이점과 어느 버전을 반영했는지 명시하고 있습니다. 가장 마음에 들었던 부분은 용어집입니다. 뒷부분에 별도로 용어집을 두어서 책에서 언급된 용어들에 대한 설명을 자세히 하고 있습니다. 참고하면서 읽으시면 좋을 듯 합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo