NoSQL 데이터 모델링 - 빅데이터 시대를 여는 첫걸음
1. 데이터 모델링은 RDB의 전유물 아니던가?
NoSQL 데이터 모델링 이라니?
DB를 좋아하는가? 좋아하는 것을 떠나서 DB란 기술은 굉장히 재미있는 ‘기술’ 혹은 ‘학문’임에 틀림없다. 데이터를 다루는 방법에 대해서 배우고, 조직하는 기법을 고민하는 분야이기 때문에 현대 사회를 움직이는 핏줄과 같은 존재라 할 수 있다.
그래도 개발자라서 몇 년간 RDB를 사용했다. 회사에서는 오라클이나 MySQL을 사용하고, 친구들과 작은 프로젝트를 진행할 땐 요즘 유행이라는 MariaDB, 집에 있는 데이터서버에는 Postgresql를 사용하고 있다. 그냥 시절과 유행에 맞춰서? 혹은 설치가능한(?) 제품에 맞춰서 사용하고 있따.
SQL 내용이야 크게 달라질 것이 없기 떄문에 따로 고민할 필요없으며, 데이터 구조는 기존에 잘 짜여진 테이블 모델이 많아서 여기저기 참조해서 사용하면 된다. 대충 만들어도 웬만해선 잘 돌아가는게 RDB의 매력 아니겠는가?
그런데 요즘은 JS 덕분에 JSON, 혹은 몽고DB등도 가끔 구경하게 된다. 그런데 몽고DB같이 매우 유연한 DB를 다루게 되면 ‘틀’에서 벗어난 자유로움을 만끽할 수 있다는 장점도 있지만, 뭔가 ‘틀’이 없기 떄문에 어지럽다는 단점도 분명히 존재한다. 이유야 어찌되었던 NoSQL은 ‘그냥 사용하는 DB’라는 인식이 본인에게 있다. 당연하게도 NoSQL에 대한 철학을 배우지 못했기 때문일지도 모른다. 아니 어쩌면 NoSQL이 아니라 JSON을 배웠기 때문 아닐까?
그런 나에게, NoSQL 데이터 모델링 이라니?
2. 데이터 모델링
얇은 책이다. 국내에서 알아주는 DB책 중에서 특히 모델링을 다루고 있는데 이렇게 얇을 수 있구나 싶을 만큼 얇다. 엔코아 시스템에서 출판한 데이터 아킥텍쳐의 1/5 수준의 얇은 책이라 할 수 있다. 그래서 가볍게 읽기 시작했다.
얇기 때문에 설명이 함축적이라 생각했는데, 오산이었다. RDB의 데이터 모델링까지 충실하게 다루고 있다. 굉장히 함축적이긴 하지만 내용이 핵심을 겨냥하고 있어서 웬만한 DB개론서 보다 깊이가 있다. 책 앞부분을 펼쳐서 이렇게 탄탄한 책을 쓴 책쓴이를 다시금 확인하게 된다. 특히 6장과 7장은 RDB 데이터 모델링과 NoSQL 모델링에 대한 명확한 차이를 예제를 통해서 익힐 수 있도록 도와주고 있다. 한 마디로 하자면 ‘예술’이다.
그럼에도 불구하고, 실습을 겸비할 수 있는 내용이 조금 부족하다는 점에서 안타까움을 금하지 못하겠지만 이왕 이렇게 된거 몽고DB’나 기타 NoSQL을 사용한 모델링 실습책도 한 권 더 만들어 주실 수 없는지 책쓴이에게 꼭 요청하고 싶을 정도이다(지앤선에 문의해보자! 자, 다같이 고고!)
실습이 많이 없다는 점이 매우 아쉽게 느껴지지만, 이 정도 분량으로 데이터 모델링에 대한 새로운 시각을 보여준다는 점에서 기존 DB사용자 및 NoSQL 입문자에게 꼭 권해보고 싶다. 그리고 NoSQL에 대한 내용도 내용인데, RDB에 관한 이론적인 면과 내용적인 면에서 아마 일취월장하게 될 것이다.