1. 시작
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
2022년 5월달에 소개할 책은 「실무자를 위한 그래프 데이터 활용법(The Practitioner’s Guide to Graph Data) 」 입니다
<표지>
이책을 한마디로 그래프 데이터베이스 사용 안내서’라고 할 수 있습니다.
개발자라도 다소 생소하게 들릴 수 있을 것입니다.
개발에서 데이터베이스라고 함은 오픈소스 관계형 SQL 데이터베이스를 발합니다. MySQL, PostgreSQL, MariaDB, Microsoft SQL Server을 말합니다.
빅데이터 시대가 오면서 NoSQL을 사용하고 있습니다.
몽고DB, 레디스DB, Cassandra가 유명합니다.
그 다음에 나온 것이 그래프 데이터베이스입니다.
시대에 맞게 복잡한 비즈니스 환경을 데이터 기반으로 문제를 해결하기 위해서 사용되어지고 있습니다.
데이터베이스는 오픈소스가 시장에서 80%이상을 차지하고 있습니다. 그만큼 오픈소스가 대세입니다.
그래프 데이터베이스 랭킹을 확인해봤습니다.
출처 : https://db-engines.com/en/ranking/graph+dbms
이책의 저자는 그래프 씽킹이라는 용어를 쓰기 시작했습니다.
디자인 씽킹, 비주얼 씽킹 용어는 들어봤을 것입니다.
항상 새로운 방법론, 기술들은 문제를 해결하기 위해서 만들어지는 것 같습니다. 그래프 씽킹이란 시대 흐름에 맞춰서 비즈니스 환경에서 문제를 해결하기 위해서 만들어진것 같습니다.
그래프 씽킹이란? 도메인 문제를 연결된 그래프로 표현하고 그래프 기술을 사용해서 도메인 역학 관계를 설명함으로 문제를 해결하는 방법입니다.
그래프 데이터베이스에서도 언어를 사용합니다. ‘그래프 스키마 언어(Graph Schema Language(GSL)’ 입니다.
이책은 실제로 그래프 데이터베이스를 사용하고 있어야지만 이해할 수 있습니다.
예제를 사용할 수 있는 환경설정에 대한 부분은 깃허브에 있지만 Docker, Docker-compose, git, cassandra, DataStax, DataStax Studio를 알아야 하고 관련 환경을 구축한 다음에 이책에서 제시하고 있는 예제를 시도해 볼수 있습니다.
깃허브에 나와있는 예제에 대한 환경 구축은 linux OS를 기본으로 만들어져있으며, 다른 OS에 대해서는 안내하지 않고 있습니다.
2.목적 (책을 쓴 이유)
저자가 책을 쓴 목적을 보도록 하겠습니다.
점점 복잡해지고 있는 비즈니스 환경에서 문제를 해결할 수 있는 새로운 방식과 사고를 배우고 실용적인 해결책을 개발하기 위한 도구를 독자들에게 제공하기 위해서 입니다
대상독자는 데이터 엔지니어, 아키텍트, 데이터 과학자, 데이터 분석가, 컴퓨터 과학자이며, 그래프 데이터, 분산 시스템 문제를 해결하고 싶은 분들입니다.
지금부터 책의 내용을 요약하고 살펴보도록 하겠습니다.
3.책의 내용
그럼 이 책의 내용은 어떠한지 구조부터 알아보겠습니다.
구조는 총 13장으로 구성되어 있습니다.
먼저 1장은 그래프 씽킹이 무엇인지? 그래프 씽킹 기술이 출현하게 된 배경, 그래프 씽킹에 대한 개요에 대한 내용입니다.
애플리케이션에서 그래프 기술의 적용 가능성과 사용법을 탐색하는 방법
<페이지 47>
2장은 그래프 데이터 개념, 그래프 스키마 언어에 대한 내용을 다루고 있습니다.
<페이지 69>
3장은 간단한 C360 애플리케이션 구현하는 내용을 다루고 있습니다.
<페이지 91>
4장부터 ~ 8장까지는 가장 많이 사용하는 그래프 기술에 대해서 다루고 있습니다.
그래프 데이터에서
이웃탐색
트리사용
경로찾기
이 3가지는 가장 많이 사용하는 그래프 기술입니다.
이웃탐색에서는 질의 주도 설계, 그래프 데이터 분할, 정렬, 범위 설정 수행 방법과 고급 질의 기술을 알 수 있으며
<페이지 128>
트리사용에서는 이웃 데이터 이해를 넘어 계층 데이터에 그래프 씽킹을 적용하는 단계로서 실생활에서 찾을 수 있는 다양한 계층 데이터 예를 살펴보고, 다양한 예제를 통해 용어를 소개하며, 문제와 데이터, 스키마를 소개하고 제품화하는 방법을 알려준다.
<페이지 209>
경로찾기에서는 그래프 데이터에서 경로 가중치를 모아 데이터에서 가장 신뢰하는 경로를 찾도록 도와주는 내용을 다루고 있습니다.
<페이지 341>
10장 추천개발
이번 장에서는 웹사이트나 애플리케이션이 사용자에게 영화를 추천하는 방법을 설명하면서 협업 필터링 정의를 다루고 있습니다.
<페이지 355>
11장 그래프 간단한 개체 해석
사람에 관한 정보를 기록한 데이터 소스의 키와 값을 이용해 누가 누구이며, 무엇이 무엇인지 추론하기가 쉽지 않은데, 이를 개체 해석 문제라고 부르며 문제 정의, 분석, 매칭, 병합을 통해서 해결하고자 하지만 그래프로 데이터를 해석하고 합치는 기능은 다면적 문제라서 따로 책 한권을 집필해야 할 정도라고 한다. 그만큼 쉽지 않은 문제이며, 이를 함축적으로 다루고 있습니다.
<페이지 395>
12장은 추천 제품화를 다루고 있습니다.
요즘 거의 모든 제품은 추천 기능을 제공하고 있습니다.
이책에서는 사용자가 최근 평가한 영화로 상위 3개의 영화를 추천하는 방법을 다루고 있습니다.
<페이지 423>
4. 책의 좋은 점과 아쉬운 점
4.1 좋은점(장점)
-
그래프 씽킹을 통한 비즈니스 문제 해결을 배울 수 있습니다.
4.2 아쉬운점(단점)
-
그래프 씽킹을 배우기 위한 환경 구축에 대한 내용이 미흡합니다.
-
난이도가 높은 책입니다. 기본적으로 NoSQL이나, 그래프 데이터베이스를 사용하고 있는 사람들을 대상으로 쓰여진 책입니다
여기서 책의 서평을 마무리 짓고자 합니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
감사합니다