hawkm***
2022-05-28

국내 최초 그래프 씽킹 안내서! 문제 해결력을 키우는 그래프 씽킹 완벽 가이드북. 그래프 씽킹으로 그래프 데이터를 효율적으로 구축하는 방법을 배워 은행 고객 관리 시스템부터 넷플릭스와 유사한 영화 추천 시스템까지 설계해본다.
한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.
이 책을 선택했던 이유는 순전히 호기심 때문이었다. 약(about) 4년전에 Neo4j를 사용해서 뭔가를 했던 적이 있다. 어떤 것을 했는지 말하긴 쉽지 않지만, 확실한 것은 실패했다는 것이다. 당시 프로젝트에 사용된 비용에 비하면 결과가 참혹했기 때문에, 햇빛도 못보고 프로젝트를 접어야 했다. 당시, 이 프로젝트의 핵심을 담당하던 분이 ‘Neo4j’와 ‘그래프 알고리즘’을 활용하면 손쉽게 해결할 수 있다고 했지만, 그 분을 제외한 거의 모든 참여자들이 Neo4j와 그래프 알고리즘을 제대로 활용하지 못해서 쉽지 않았다. 하지만, 우리가 풀지 못했던 문제의 경우 Neo4j를 사용하면 정말 손쉽게 풀었지만, 그 외에 다른 문제는 달랐던 것이다.
지금와서 돌이켜 생각해보면 RDBMS를 기반으로 만들어진 서비스에 Neo4j를 적용하는 방법에 미숙했고, 당시 그래프 이론을 기반으로 서비스를 구성하는 것에 대해서 다들 처음이라서 실패 경험과 기간이 너무 길었던 것은 아닐까 생각해본다.
개인적인 의견이지만, 이 책의 목표는 Neo4j와 같은 그래프 구조나 데이터베이스를 곧바로 활용하는 것이 아닌 듯 하다. 이 책은 기존의 RDBMS를 사용했던 사용자의 경험을 기반으로 그래프 구조를 활용할 수 있는 개념을 차근 차근 설명하는 것이라 생각한다. 이 책은 실습에 관한 태도를 대해서 ‘하면 좋고, 못해도 괜찮다’라는 태도를 취하고 있다. 즉, 실습을 적극적으로 권장하고 있지 않다. 하지만, 실습을 적극적으로 권장한다(강추!).
이 책은 RDBMS에 대한 이해도가 어느정도 있다고 가정하고, 그래프 데이터베이스를 스스로 사용할 수 있다고 가정한다. 실습의 경우 Neo4j 등을 사용하는 것이 아니라 Cassandra를 사용하고 있다. 그렇다고 Cassandra를 별도로 설치하는 등의 번거로운 과정없이 ‘DataStax Studio’를 다운로드 받아서 설치만 하면 된다. 나는 Docker를 사용하고 있어서 Docker의 compose를 활용하였고 편하게 실습을 진행할 수 있었다.
예제 프로그램의 기능을 조금씩 확장/개선하면서 그래프 구조를 기반으로 한 데이터베이스를 왜, 언제 활용해야 하는지 알려주고 있다. RDMBS 구조를 함께 설명하고 있기 때문에 실습 없이도 이해는 가능하지만 이왕이면 실습을 함께 진행하길 다시 한번 권하고 싶다. 무엇보다 데이터의 양이 많아졌을 때 쿼리를 개선하는 과정은 굉장히 흥미로운 경험이었다.
이 책은 크게 4가지 챕터로 나눌 수 있다.
개인적으론 1~6장까지 정도는 꼭 읽어보면 좋을 것 같고, Neo4j 등을 사용했던 경험이 있다면 9~13장 부터 진행해도 무리없을 것으로 예상된다.