NoSQL이 생각외로 군데군데 쓰이고 있어서 전반적인 개념을 잡을 목적으로 읽은 책이다.
이 책의 내용을 궁금해하는 사람이라면 NoSQL이라는 단어가 뭘 의미하는지 간단하게나마 알고 있을 것이다. 기존에 가장 흔하게 쓰이던 관계형 테이블 식의 DB 설계방식은 정형화된 SQL문이라는 것이 존재했고, 이 SQL문으로 해당 테이블에서 관련 업무를 수행할 수 있었다.
NoSQL은 말 그대로 SQL이 No인 것이다. 정형화 되어 있지 않은 셈이다. SQL역할을 하는 명령문도 그렇고, 테이블 자체도 정형화가 되어 있지 않은 셈이다.
나 역시 NoSQL은 굉장히 유연한 것만 알고 정확히는 모르는 상태였다. 이제는 이 책의 내용을 토대로 크게 분류 및 목적에 따라 어떻게 써야 할 지에 대한 생각을 해 볼 수 있어졌다.
이 책에는 전체적인 NoSQL 데이터베이스를 소개한다.
크게 4가지로 나뉘는데
- 키-값 형태
- 문서 형태
- 컬럼패밀리 형태
- 그래프 형태
이 중에 그나마 실제로 책을 보기 전에 알고 있었던 내용이 키-값 형태다. 물론, 이는 비단 DB뿐 아니라 자료형으로도 많이 쓰이고 있는 형태라서 더 친숙하다.
문서 형태는 XML혹은 JSON형태로 자료를 저장하는 것이다. 해당 파일을 써본 사람이라면 알겠지만, 명확히 정의가 된 것이 아니기 때문에 어떤 JSON형태는 작고, 어떤경우는 복잡하고 이럴 수 있다. 그래서 굉장히 유연성이 높다.
한편으로, 유연성이 높다는 것은 해당 데이터가 필요해서 다시 찾아야 할 때를 잘 염두에 둬야한다는 말과 같다. 왜냐하면 데이터가 무수히 많을 때 규칙성을 가지고 있다면 찾기가 훨씬 쉬워지니까.
컬럼패밀리는 구글급의 초거대 데이터를 다뤄야 하는 기업에 적합하다고 나온다.
그래프는 연관 데이터들을 훑어서 관련 정보를 확인하거나 혹은 데이터를 한 번에 가져올 때 유용하다.
분류를 해서 각각의 특징, 설계시 고려해야 할 점 등을 나눠놓은 것은 굉장히 좋았다. 이 책으로 갈피를 못잡던 개념이 정립되었으니까.
그렇지만, 대부분의 코드가 의사코드로만 되어 있는 것이 아쉬웠다.
해당 NoSQL 데이터베이스에 속하는 mongoDB나 cassandra, redis 등이 있는데 '해당 프로그램에서 실제 사용할 때는 어떻게 쓴다~' 는 꼴로 코드를 제시했었으면 그게 더 낫지 않았을까 싶다.
아무래도 저자는 의사코드로 흐름만 보여주고 어떻게 해야 하는지는 직접 생각하며 해보라는 의도지 않을까 싶다.
'독서 > 서평' 카테고리의 다른 글
[Django 파이썬 웹 프로그래밍] 내가 아는 가장 쉬운 장고(Django)책 (0) | 2022.04.13 |
---|---|
[초격차] 세계1위 기업을 만들어 본 리더의 관점 (0) | 2022.03.31 |
[파이썬 코딩의 기술] 파이썬을 좀 더 유용하게 쓸 수 있는 팁 (0) | 2022.03.25 |
[구독경제 101] 구독 경제 분야에는 무엇들이 생겨나고 있는가 (0) | 2022.03.22 |
[코딩인터뷰 퀘스천] 주요한 CS질문 모음 (0) | 2022.03.21 |