이전

리뷰 (10)

한줄평
평점 분포
  • 리뷰 총점10 70%
  • 리뷰 총점8 20%
  • 리뷰 총점6 10%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 7.0
  • 40대 9.0
  • 50대 10.0

포토/동영상 (1)

리뷰 총점 종이책
고급 사용자를 위한 그래프 데이터 설명서
"고급 사용자를 위한 그래프 데이터 설명서" 내용보기
우선 처음 이 책을 골랐을 때, <그래프 데이터 활용>에 대한 실무 내용을 기대했었습니다. 그런데, 이 기대라는 것이 1) 그래프 데이터에 대한 쉽고 명확한 설명 2) 바로 활용할 수 있는 내용 이것이었는데, 이 책은 그 기대를 맞춰주지는 않았습니다. 즉, 저는 이 책의 타켓 독자가 아니라는 것이죠. 그렇다면, 이 책은 누구의 어떤 기대를 맞춰주는 책일까요? 일단, 이 책
"고급 사용자를 위한 그래프 데이터 설명서" 내용보기

우선 처음 이 책을 골랐을 때, <그래프 데이터 활용>에 대한 실무 내용을 기대했었습니다.

그런데, 이 기대라는 것이

1) 그래프 데이터에 대한 쉽고 명확한 설명

2) 바로 활용할 수 있는 내용

이것이었는데, 이 책은 그 기대를 맞춰주지는 않았습니다.

즉, 저는 이 책의 타켓 독자가 아니라는 것이죠.

그렇다면, 이 책은 누구의 어떤 기대를 맞춰주는 책일까요?

일단, 이 책은 그래프 디비를 사용함에 있어서, 기존의 RDB와 어떤 점에서 다르고, 또 어떻게 사용해야 하는지에 대한 방법을 단계별로 알려주는 책입니다.

만약, "헤드 퍼스트 시리즈"를 봤다면, 익숙한 진행 방식일 것입니다.

하지만, "헤드 퍼스트 시리즈"가 초심자들을 위한 입문서의 역할을 한다고 한다면, 이 책은 초심자를 위한 책이 아닙니다.

일단, 이 책은 그래프디비를 설명하기 위해, 기존의 RDB와의 차이를 이야기합니다. 즉, 독자는 최소한 RDB에 대한 기본은 알고 있어야 하고, 디비 설계 및 정규화에 대해서 알고 있어야 하고, 실무에서 db 스키마 설계를 하면서, 어떻게 설계하는 것이 좋은지, ERD를 그려가면서 고민하는 사람이어야 합니다.

 

그래야지, RDB와 비교해서 어떤점이 다르다는 이 책의 설명을 이해할 수 있습니다.

그리고 독자는 그래프디비에 대한 일반 개념을 알고 있어야 하는데, Neo4J나 ArrangoDB 대신 카산드라를 기반으로 설명하고 있기 때문에, 카산드라에 어느정도 익숙한 상태여야 합니다.

왜냐하면 우선 저자들 자체가 카산드라 개발에 핵심 역할을 하고 있는 데이터스텍스의 주요 개발진이기 때문이죠.

그래서, 이 책의 예제를 실습해보고 따라해보려면, 데이터스택스의 스튜디오 프로그램을 사용해야 하고, 카산드라에 대한 경험이 있고, 그렘린 언어를 경험해봤고, RDB를 중급 이상으로 활용해본 사람을 대상으로 하는 책입니다.

최소한 이 정도 배경지식은 습득하고 있어야지, 이 책이 이야기하는 내용을 따라갈 수 있습니다.

하지만, 이 정도로도 부족합니다.

이 책은, RDB와 비교해서 그래프DB를 왜/언제 써야 하는지에 대한 설명을 해 주며, 동시에, 예제 프로그램의 기능을 조금씩 확장/개선하고 있는데, 이 추가되는 기능이 왜 필요한지, 이 개선점이 왜 중요한 것인지를 알지 못하면, "도대체 이 짓을 왜 하는거지?" 라는 생각을 하게 됩니다.

이것은 마치, 1000라인 미만의 코드를 짜면서, 소프트웨어 공학의 중요성과 프로그램 디자인의 중요성, 패턴 활용의 중요성을 이해할 수 없는 것과 마찬가지입니다.

실제 그래프디비를 사용하면서, 레코드 수가 많아졌을 때, 왜 디비가 느려지는지, 디비가 느려지는 문제를 해소하기 위해 질의를 어떤 식으로 리팩토링 해야 하는지에 대한 이야기를 합니다.

물론, 실무에 활용하고, 해당 문제에 직면해서, 해결 방법을 고민해봤던 개발자에게는 이것보다 더 소중한 지식은 없을 것입니다.

풀리지 않던 문제에 대한 답을 스택오버플로우에서 발견한 기쁨에 비견할 수도 있을 것입니다.

하지만, 아무리 쉽고 잘 설명을 해도, 중학교 수학을 모르는 사람에게 미적분을 이야기하기가 어려운 것 처럼, 이 책은 비록 친절하게 그래프디비를 사용하기 위한 함정들과 유의점들, 잘 사용하기 위한 포인트들을 단계별로 설명해주고 있지만, 그것을 받아들일 수 있는 자격이 안되어 있는 사람에게는 그저 "돼지 목에 진주목걸"일 뿐입니다.

이 책의 진가를 알기 위해서는, 이 책에서 알려주는 단계별 문제 해결 팁을 보려면, 실제 그래프디비를 사용하면서, 막다른 골목에 도달해서, 밤을 세가며 고민해본 시간을 경험해 봐야 합니다.

요컨데, RDB를 잘 다루고 있고, NoSQL 특히 카산드라를 써 봤으면서, 신규 프로젝트로 새롭게 그래프디비를 사용해 보고 싶어하는 개발자("자 그래프디비를 한번 해 보자. 근데, 그래프디비가 RDB로 처리하는 것에 비해서 어떤 차이점이 있는거지? RDB로는 이렇게 하던 것을 그래프디비로 바꾸려면 어떻게 해야 하는 거지? 같은 고민을 하고 있는 개발자)에게는 좋은 책입니다만, 그렇지 못한 독자들에게는 읽기 힘든 책입니다.

마지막으로, 아쉬웠던점 2가지를 얘기하도록 하겠습니다.

첫번째, 그래프디비를 얘기할 때면 항상 묻는 질문이 있습니다. "그래서, 온톨로지랑은 뭐가 다르지?" 라는 것인데, 이 책에서도 그 질문에 대한 답은 해 주지 않고 있습니다. 제가 기대했던 것은, 온톨로지와의 비교를 통해, 기존의 온톨로지를 사용하던, ABox, Tbox와 그래프디비의 차이, 그리고 온톨로지의 표현력의 범위 차이와 그래프디비의 표현력의 차이, 추론기의 적용 방법 등에 대한 것이었습니다만, 이 책에서 알려준 것은, RDB와 그래프디비의 차이와 그래프디비를 사용할 때, 맞닥뜨릴 수 있는 카산드라 기반의 성능 문제, 그래프디비 설계 문제, 기존 설계의 추가/변경 과정의 문제 등을 해결하기 위한 실무 팁이었습니다.

두번째, 번역이 아쉬웠습니다. 책의 원 내용은 "헤드 퍼스트 시리즈" 처럼 이런 저런 농담을 섞어가면서, 원격 강의 하듯이 진행하려고 했던 것 같은데, 번역이 정말 직역이라서, 원 저자의 의도가 제대로 드러나지 못한 것 같습니다. 이것은 아마, 데드풀 영화의 자막을 번역한 황석희 번역가 처럼, 대상에 대한 이해를 바탕으로 번역한 것이 아니라, 역자도 그래프디비에 대한 사전 이해가 없는 상황에서 그냥 직역을 해 버린 (마치 릭퓨리의 "mother.."를 "어머니..." 라고 번역해버린 박지훈처럼) 것 같았습니다.

-------------

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

---------------

l*****6 2022.05.28. 신고 공감 2 댓글 0
리뷰 총점 종이책
[똑똑한 도서소개] 실무자를 위한 그래프 데이터 활용법
"[똑똑한 도서소개] 실무자를 위한 그래프 데이터 활용법" 내용보기
[똑똑한 도서소개] 그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내서, 실무자를 위한 그래프 데이터 활용법   글, 사진 : 서원준(news@toktoknews.com)  * 이 포스팅은 한빛미디어에서 도서를 제공받아 작성한 것으로 도서 소개, 구매가이드 형식으로 작성되었습니다. 이 책은, 국내 최초의 그래프 씽킹 안내서다. 이 책을 읽으면, 그래프와 관련된 여러 생각들을 정리하
"[똑똑한 도서소개] 실무자를 위한 그래프 데이터 활용법" 내용보기

[똑똑한 도서소개] 그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내서, 실무자를 위한 그래프 데이터 활용법


 

글, 사진 : 서원준(news@toktoknews.com) 

* 이 포스팅은 한빛미디어에서 도서를 제공받아 작성한 것으로 도서 소개, 구매가이드 형식으로 작성되었습니다.

이 책은, 국내 최초의 그래프 씽킹 안내서다. 이 책을 읽으면, 그래프와 관련된 여러 생각들을 정리하여 문제 해결력을 키울 수 있도록 하는 책이다. 







 

데이터는 점점 더 방대하고 복잡해지고 있는데 이렇게 넘쳐나는 데이터의 홍수 속에서 좀 더 쉽게 이해하도록 하는 책이 “실무자를 위한 그래프 데이터 활용법(5월 10일경 출간)”이라는 책이다. 컴퓨터는 행과 열로 이루어진 정적 데이터에 의존하는 반면, 사람은 관계를 통해 삶을 탐색하고 유추한다. 

그래프 데이터는 사람과 컴퓨터가 세상을 바라보는 관점의 차이를 좁힐 수 있다. 이 책에서는 새로운 사고방식인 그래프 씽킹 개념을 소개하며 그래프 데이터로 두 가지 접근 방식을 아우르는 방법을 친절히 안내한다. 











 

이 책을 따라 하면, 그래프 씽킹과 그래프 이론, 데이터베이스 스키마, 분산 시스템, 데이터 분석을 터득하고 그래프 데이터를 효율적으로 구축해 복잡한 문제를 해결하는 법을 배울 수 있다. 즉, 그래프와 데이터베이스를 한꺼번에 학습할 수 있다.

YES마니아 : 로얄 S****W 2022.09.04. 신고 공감 0 댓글 0
리뷰 총점 종이책
실무자를 위한 그래프 데이터 활용법
"실무자를 위한 그래프 데이터 활용법" 내용보기
실무자를 위한 그래프 데이터 활용법 본 서평은 한빛미디어에서 도서를 제공받아 작성되었습니다.  이 책은 국내 최초 그래프 씽킹(graph thinking) 안내서이자 문제 해결력을 키우는 그래프 씽킹 완벽 가이드로 의미가 있는 도서이다.                   점점 더 방대하고 복잡해지고 있는 데이터의 홍수 속에서 구원의 손길을 바라는 이가 있다면 이 책을 꼭
"실무자를 위한 그래프 데이터 활용법" 내용보기

실무자를 위한 그래프 데이터 활용법

본 서평은 한빛미디어에서 도서를 제공받아 작성되었습니다. 

이 책은 국내 최초 그래프 씽킹(graph thinking) 안내서이자 문제 해결력을 키우는 그래프 씽킹 완벽 가이드로 의미가 있는 도서이다.  

 

 

 

 

 

 

 

 

점점 더 방대하고 복잡해지고 있는 데이터의 홍수 속에서 구원의 손길을 바라는 이가 있다면 이 책을 꼭 필독하자. 컴퓨터는 행과 열로 이루어진 정적 데이터에 의존하는 반면, 사람은 관계를 통해 삶을 탐색하고 유추한다. 그래프 데이터는 사람과 컴퓨터가 세상을 바라보는 관점의 차이를 좁힌다. 

 

 

 

 

 

 

 

 

 

 

 

 

이 책에서는 새로운 사고방식인 그래프 씽킹 개념을 소개하며 그래프 데이터로 두 가지 접근 방식을 아우르는 방법을 친절히 안내한다. 이 책을 따라 하며 그래프 씽킹과 그래프 이론, 데이터베이스 스키마, 분산 시스템, 데이터 분석을 터득하고 그래프 데이터를 효율적으로 구축해 복잡한 문제를 해결하는 법을 배워보자.

YES마니아 : 로얄 S****W 2022.07.01. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 실무자를 위한 그래프 데이터 활용법
"[리뷰] 실무자를 위한 그래프 데이터 활용법" 내용보기
[리뷰] 실무자를 위한 그래프 데이터 활용법   그래프 씽킹 생소한 용어다. 표지부터 그래프를 그리면 세상이 보인다라는 문구가 참 마음에 와 닿았다. 예전에 프로젝트를 할때 복잡한 로직을 해결하지 못해서 끙끙거리다가 그림으로 하나씩 그려가면서 정리했던 기억이 난다. 생각해보면 복잡한 얘기들을 정리할 때는 그림을 그려가면서 하는 것이 더 정리가 잘 되곤 했다. 그런 점
"[리뷰] 실무자를 위한 그래프 데이터 활용법" 내용보기

[리뷰] 실무자를 위한 그래프 데이터 활용법

 

그래프 씽킹 생소한 용어다. 표지부터 그래프를 그리면 세상이 보인다라는 문구가 참 마음에 와 닿았다.

예전에 프로젝트를 할때 복잡한 로직을 해결하지 못해서 끙끙거리다가 그림으로 하나씩 그려가면서 정리했던 기억이 난다. 생각해보면 복잡한 얘기들을 정리할 때는 그림을 그려가면서 하는 것이 더 정리가 잘 되곤 했다.

그런 점에서 그래프 데이터베이스라는 것이 생소하기는 하지만 RDBMS(관계형)에서 벗어나 새로운 세상으로 진입하는 것이라고 하겠다.

아직까지 세상은 관계형 세상이기 때문에 이런 것도 되나 싶을 정도로 조금은 많이 신기한 방법이지만, 점점해보다 보면 이렇게도 할 수 있고, 이렇게 하는 것이 좀 더 좋아지겠다는 생각이 들고 있다. 하지만 앞에서도 말했지만 세상은 관계형이고, 나 또한 관계형이기 때문에 그래프 씽킹으로 이동하려면 아직은 갈 길이 멀다 하겠다. 프로젝트에서 적용하기는 어려울 뜻 하지만 예제를 보면서 조금한 토이 프로젝트라고 해 볼 필요가 있을 뜻 하다. 기술은 언제나 그렇지만 갑자기 등장하여 누구나 사용하고 있을 것이다. 그럴 때 나도 아는 척을 할 수있는 좋은 책인 듯 하다.

새로운 기술에 대해서 목 마른 사람이라면 이 책을 강력히 추천하는 바이다.

 

  "한빛미디어나는 리뷰어다활동을 위해서 책을 제공받아 작성된 서평입니다."

d*****l 2022.05.29. 신고 공감 0 댓글 0
리뷰 총점 종이책
그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내
"그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내" 내용보기
## 1장  모든 이들이 저자와 같이 그래프를 처음 접했을 무렵의 경험을 상기 시키며 시작한다. 데이터베이스 기술이 계층형 > 관계형 > NoSQL > 그래프 싱킹으로 변화되고 있음을 단계적으로 설명하고 있으며, 복잡한 문제와 복잡한 시스템에서 그래프 기술을 사용해 문제 해결이 가능함을 설명한다. ## 2장  관계형 데이터베이스를 사용하던 팀에서 그래프 씽킹으로의 전환을 돕는
"그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내" 내용보기


## 1장
 모든 이들이 저자와 같이 그래프를 처음 접했을 무렵의 경험을 상기 시키며 시작한다. 데이터베이스 기술이 계층형 > 관계형 > NoSQL > 그래프 싱킹으로 변화되고 있음을 단계적으로 설명하고 있으며, 복잡한 문제와 복잡한 시스템에서 그래프 기술을 사용해 문제 해결이 가능함을 설명한다.

## 2장
 관계형 데이터베이스를 사용하던 팀에서 그래프 씽킹으로의 전환을 돕는다.

 1) 관계형 개념을 그래표 용어로 변환
 2) 관계형과 그래프의 차이 설명
 3) 관계형 데이터 모델링
 4) 그래프 데이터의 개념
 5) 그래프 스키마 언어

 위의 순서로 설명하고 있다.

## 3장
 여전히 관계형이냐 그래프 기술이냐를 놓고 고민하는 팀에게 유용한 사용 사례를 설명한다.
 C360 이라는 애플리케이션을 그래프로 구현하면서 여기저기에 산재한 데이터에 접근해야 하는 요구사항을 만족시키기 위해서 그래프 기술이 필요함을 단계적으로 설명하고 이해시킨다.

## 4장
 3장의 C360 애플리케이션을 더 완벽한 시나리오에 대응할 수 있도록 확장한다. 이 과정에서 사용 편의성과 출시 속도 측면에서 그래프 기술과 관계형을 비교해 주고 있다.

## 5장
 앞서의 C360을 더욱더 확장한다. 자칫 그래프 데이터 사고 방법을 적용하면서 범할 수 있는 함정을 배치하고 어떠어떠한 함정이 숨어 있었고 이를 어떻게 해결하는지 설명해 준다.

## 6장
 그래프 씽킹을 데이터로 확장하는 방법을 살펴본다. 센서들의 통신 네트워크에서 간선 계산과 계층 그래프 데이터가 교차하는 지점에서 발생하는 복잡한 문제를 제시하고 이를 해결하는 방법을 설명한다.

## 7장
 트리 사용 제품화를 중심으로 이전장에서 다소 미흡했던 리프(타워)에서 모든 루프로(센서)로 탐색할 때 그래프 기술을 이용하면 이를 쉽게 구현할 수 있음을 알려주며, 분산 시스템에서 가장 인기 있는 두 가지 그래프 모델인 이웃과 계층을 살펴보고 질의를 살펴본다.

## 8장
 7장에서는 이웃과 계층을 살펴보았고, 분산 그래프 애플리케이션에서 3번째로 인기 있는 네트워크 경로 데이터 모델과 질의를 사용한다.

## 9장
 기존에서 사고 전환을 통해 복잡한 문제(그래프 데이터의 최단 가중치 경로)를 해결한 방법에 대해서 살펴본다.

## 10장
 10장부터는 실제 사례에 대해 소개한다. 사용자 평가 기반으로 영화를 추천하는 방법을 살펴본다.

## 11장
 무비렌즈와 캐글 데이터를 합쳐서 모델과 질의를 만드는 방법을 설명한다. 데이터 정리, 병합 작업을 수행함으로 단순한 데이터라도 더욱 유용한 정보를 얻을 수 있음을 알려준다.

## 12장
 그래프 데이터에서 항목 기반 협업 필터링의 제품 버전을 설명한다. 여기에서는 항목 기반 협업 필터링의 추천을 제공하는 방법을 알려준다.

## 13장
 마무리. 복잡한 문제를 해결하는 새로운 방식과 사고를 위해 새로운 기술과 기법을 배웠다. 그러나, 관계형으로 표현되는 데이터가 문제가 있거나 그래프 씽킹이 마냥 좋다는 것이 아님을 다시한번 강조한다. 각각의 장단점을 상기하고 복잡한 문제를 작은 단위로 나누어서 두 기법을 모두 이해하고 적용하길 권한다.

마지막으로 책 표지를 보며 리뷰를 마무리 하고자 한다.

'그래프를 그리면 세상이 보인다,
그래프 씽킹으로 시작하는 그래프 데이터베이스 사용 안내서'
(원서 : Applying Graph Thinking and Graph Technologies to Solve Complex Problems)

현대의 다량의 데이터를 갖는 복잡한 문제를 해결하기 위해서 그래프 씽킹과 그래프 기술은 필수 요소가 아닐까 생각한다. 그래프를 통해 세상의 다양한 데이터에서 유형의 가치를 뽑아 내기 위해 그래프를 통한 사고에 도전에 보자.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

YES마니아 : 로얄 n***u 2022.05.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
[서평] 실무자를 위한 그래프 데이터 활용법
"[서평] 실무자를 위한 그래프 데이터 활용법" 내용보기
https://blog.naver.com/rock1192/222733402857   이 책은 그래프 기술, 그래프 씽킹이라는 흥미로운 개념을 소개하고 있다 이 책에서는 여러 데이터베이스 기술을 설명하고 관계형 데이터베이스와 그래프 기술의 차이를 설명한다 물론 이 책은 그래프 기술을 설명하는 책이므로 복잡한 문제를 그래프 기술로 해결하는 법을 설명하지만 그 과정에서 항상 그래프 기술을 사용하는 것이
"[서평] 실무자를 위한 그래프 데이터 활용법" 내용보기

https://blog.naver.com/rock1192/222733402857

 

이 책은 그래프 기술, 그래프 씽킹이라는 흥미로운 개념을 소개하고 있다

이 책에서는 여러 데이터베이스 기술을 설명하고 관계형 데이터베이스와 그래프 기술의 차이를 설명한다

물론 이 책은 그래프 기술을 설명하는 책이므로 복잡한 문제를 그래프 기술로 해결하는 법을 설명하지만 그 과정에서 항상 그래프 기술을 사용하는 것이 최선의 방법이 아닐 수도 있는 이유도 제시한다

이를 통해 균형잡힌 견해를 유지하도록 돕는다

실전에 그래프 기술을 잘 적용할 수 있도록 처음에는 개발 모드로 프로그램을 개발하고 이후로는 최적화를 적용한다

이 책에서는 그래프 탐색 개념을 많이 사용하는데, 개념은 기존의 그래프 이론과 동일하다

다만 이러한 그래프 탐색을 구현할 수 있도록 데이터를 모델링하고 그렘린 언어로 구현하는 과정은 정말 흥미롭다

 

예제 코드

https://github.com/datastax/graph-book

 

 

최근 수십 년간 기술 산업의 중심이 바뀌면서 그래프가 중요해졌다

기존에는 기술과 데이터베이스로 데이터를 가장 효율적으로 저장하는 방법에 집중했다

관계형 기술은 이를 효율적으로 수행하는 선두 주자였다

하지만 이제는 데이터에서 가장 중요한 가치를 얻는 것이 중요해졌다

데이터가 연결되었을 때 진정한 가칠르 발한한다는 사실을 깨달은 것이다

1960~1980년대: 계층 데이터

1960년대에서 1980년대까지의 데이터베이스 기술은 계층형또는 탐색형이라는 단어로 요약된다

하지만 이 단어의 의미와 달리 당시에는 트리 형태의 자료구조로 데이터를 정리하는 것이 목표였다

이 시대에 데이터베이스 기술은 서로 연결된 레코드 형태로 데이터를 저장했다

이 시스템의 아키텍트는 트리 형태의 자료구조를 이용해 키, 시스템 스캔, 트리의 링크 탐색 등의 방법으로 모든 레코드를 접근하는 방법을 시도했다

1960년대 초반에 코디실 산하 데이터베이스 연구회(DBTG)를 만드렁 업계 첫 표준을 제정했다

데이터베이스 연구회는 트리 자료구조에서 레코드를 추출하는 표준을 만들었다

초기 표준을 코다실 접근법이라 부르며 데이터베이스 관리 시스템에서 레코드를 추출할 때 세가지 목표를 다음과 같이 설정했다

1. 기본 키 사용

2. 순차적으로 모든 레코드 스캔

3. 한 레코드에서 다른 레코드로 탐색할 수 있는 연결 링크

 

 

1980~2000년대: 개체-관계

데이터 구조와 데이터 추출 시스템을 분리하자는 에드거 F. 커드의 아이디어는 데이터 관리 기술 세대교체 바람을 일으켰다

커드의 작업 덕분에 데이터베이스의 개체-관계 시대의 기초가 세워졌다

개체-관계 시대는 1960년대에 설정한 목표 중 하나인 키로 데이터를 가져오는 방식의 영역을 점점 넓힌 시기였다

업계는 테이블로 자료를 저장, 관리, 검색하는 상당히 효율적인 방식을 개발했으며, 이는 그 당시뿐 아니라 지금까지도 유효한 기법이다

이 시대에 개발된 기술은 충분히 검증되고, 문서화되어 있으며, 널리 알려져 있어 오늘날에도 사용된다

이 시대의 시스템은 데이터를 사고하는 구체적인 방식을 소개하고 대중화했다

무엇보다도 탄탄한 수학적 이론인 관계대수기반으로 관계형 시스템을 개발했다

특히 관계형 시스템은 데이터를 집합으로 조직한다

이들 집합은 사람, 장소, 물건 등 현실 개체를 저장하고 가져오는 일에 초점을 맞춘다

사람과 비슷한 개체는 테이블에서 그룹으로 묶이며 이 테이블에서 각 행이 레코드가 된다

기본 키로 테이블의 레코드에 접근한다

2020~2020년대: NoSQL

2000년대에서 2020년대 사이의 데이터베이스 기술 발전은 주로 NoSQL 운동의 출현과 연관된다

이 시대의 목표는 모든 형태의 데이터를 저장, 관리, 질의하는 확장성을 갖춘 기술을 개발하는 것이었다

NoSQL 시대의 데이터베이스 혁신은 마치 미국에 일어난 수제 맥주 열풍과 비슷했다

그 당시에 맥주 발효법은 바뀌지 않았지만 재료의 품질과 신선도 그리고 풍미가 향상되었다

수제 맥주 전문가인 브루마스터와 소비자 간의 소통이 원활해지면서 제품 방향에 영향을 미치는 피드백 루프도 빠르게 진행되었고

그 결과 슈퍼마켓은 30가지가 넘는 맥주 브랜드로 가득 채워졌다

데이터베이스 업계에서는 새로운 발효 조합을 찾기보다 데이터를 관리하는 기술들이 폭발적으로 늘어났고 선택의 폭이 기하급수적으로 넓어졌다

아키텍트는 다양한 형태, 많은 양, 빠르게 발전하는 애플리케이션의 요구 사항을 충족하는 확장성 있는 기술이 필요했다

이 시기에는 키-값, 와이드 컬럼, 문서, 스트림, 그래프 형태의 데이터가 인기를 끌었다

 

 

2020년대 이후 그래프

2020년은 두 가지 생각이 교차하는 지점이었고 이는 자연스레 기준이 되었다

이 교차점에서 지금까지 세 번의 데이터베이스 혁신에서 관찰된 제프리 무어의 유명한 캐즘 이론을 만나게 된다

특히 초기 기술 수용 이후, 해당 기술이 광범위하게 적용되기까지는 어느 정도 시간이 걸린다는 사실이 증명되었으며 주변에서도 이를 쉽게 확인할 수 있다

앞서 1970년대의 관계형 데이터베이스를 살펴보면서 이 시간 지연을 확인했다

관게형 기술의 첫번째 논문이 나온지 10년이 지나서야 쓸 만한 기술이 구현되기 시작했다

다른 시대에서도 동일하게 시간 지연 현상을 관측할 수 있다

그래프 시대 이전 시기의 역사를 살펴보면 광범위한 적용이 발생하기까지 시간이 어느 정도 걸리는 틈새 기간이 계속 관측되었다

마찬가지로 2020년대에도 그래프 시장에 같은 일이 일어날 것임을 에상할 수 있다

또한 새로운 시대(그래프)가 도래했다고 기존 도구가 사라지지 않는다는 것도 역사를 통해 확인했다

 

 

그래프 씽킹이란?

데이터의 관계가 그래프로 표현될 때 그래프 씽킹의 힘은 강력해진다

그래프 씽킹은 데이터간의 관계에 숨은 가치를 찾는 과정에서 경험과 인지 방식을 확장하도록 돕는다

데이터를 그래프로 표현한다는 것은 도메인에 포함된 복잡한 네트워크를 이해하고 있다는 말과 같다

복잡한 네트워크 안에서 해결하기 가장 어려운 문제를 찾을 수 있다

일반적으로 가치가 가장 높은 비즈니스 문제와 기회는 이런 복잡한 문제에 가려져 있다

따라서 데이터 기술 혁신의 다음 단계가 그래프 기술을 적용해 데이터의 효율성을 넘어 가치를 찾는 것 중심으로 전환 되었다

 

 

복잡한 문제를 해결하는 기술 선택하기

그래프 씽킹을 배우고 적용할 때 가장 먼저 만나게 될 장애물은 관계가 데이터에 가치를 더하는지 그렇지 않은지를 식별하는 일이다

새로운 기술을 사용하면서 기존의 검증된 과정을 따라야 한다

새로운 기술과 검증된 기술 사이의 압박감 때문에 초창기 팀은 애플리케이션 목표를 평가하는 중요한 과정을 너무 빨리 끝냈다

많은 그래프 프로젝트가 이런 이유로 실패하고 중지되었다

 

 

그래프 데이터 기본 사용 사례: Customer 360(C360)

전세계 기술 팀은 데이터 관리 문제를 해결하는 방법으로 그래프 데이터의 유용성을 깨닫고 있다

이러한 유형의 문제에서 기존 솔루션과 현재 솔루션의 차이점은 데이터 내의 관계를 모델링, 저장, 검색하는 유용성에 있다

데이터의 관계에 중점을 두는 애플리케이션은 초기에 관계형 시스템에 저장된 데이터를 변환, 통합하는 데 문제를 겪는다

기존에 개체를 정리했던 방식을 이제는 관계를 정리하는 방식으로 사고와 과정을 바꿔야 한다

다양한 그래프 기술을 한데 적용한 이러한 유형의 앱을 Customer 360, 줄여서 C360 애플리케이션이라 부른다

C360 프로젝트의 목표는 비즈니스의 주요 개체 간의 관계를 중심으로 애플리케이션을 엔지니어링 하는 것이다

C360 애플리케이션의 목표는 고객이 중심 객체이며 고객은 다른 데이터 조각과 관계를 맺는다

이러한 데이터 조각은 비즈니스 도메인과 가장 관련이 깊다

일반적으로 팀은 고객의 가족, 지불 방법 또는 중요한 식별 사항부터 시작한다

금융 서비스를 제공하는 이 애플리케이션은 고객과 관련된 다음 질문에 답할 수 있도록 설계된다

 

 

관계형 시스템으로 C360 애플리케이션 구현하기

C360 데이터를 저장하기 위해 관계형 시스템을 구축하는 방법을 간단히 설명한다

목표는 C360 애플리케이션에 관계형 시스템을 사용하는 것이 얼마나 복잡한지를 이해하는 것이다

 

 

데이터 모델

보통 개체-관계 다이어그램(ERD)를 만든다

ERD는 데이터 모델을 논리적으로 표현한 것이며 관계형 데이터베이스 설계는 보통 ERD로 시작한다

사각형은 개체를 의미하며 관계형 데이터베이스는 테이블로 구현된다

각 사각형 안에 개체의 속성 또는 설명 프로퍼티를 나열한다

데이터에서 이미 살펴본 것처럼 각 개체는 고유 식별자를 갖는다

고객은 customer_id로 계좌는 acct_id 등으로 식별한다

여기서 고객은 이름을 갖지만, 대규모 애플리케이션에서는 더 많은 속성을 갖는다

개체 사이의 다이아몬드 모양은 개체 간의 관계를 의미한다 다이아몬드 모양의 왼쪽, 오른쪽 또는 위, 아래에 연결 카디널리티를 표시한다

이 데이터에서는 일대다 그리고 다대다 두 가지 유형의 관계를 확인할 수 있다

 

 

그래프 시스템으로 C360 애플리케이션 구현하기

지금까지 관계형 구현을 살펴봤으니 이번엔 에제 데이터를 그래프 데이터베이스로 구현하는 방법을 살펴본다

이 예제에서는 그래프 질의 언어 중 가장 널리 구현된 그렘린 질의 언어와 데이터스택스 그래프 스키마 API를 사용한다

그렘린은 그래프 데이터베이스 커뮤니티에서 가장 널리 채택되고 있으며 오픈 소스를 기반으로 한다

이 책의 주요 목표는 분산, 파티셔닝된 환경에서 그래프를 구현하는 것이다

이 목표를 위해 데이터스택스 그래프 스키마 API를 이용해 분산 그래프를 만든다

 

 

데이터 모델

개념적 모델을 그래프 데이터 모델로 바꿀 때는 관계형 모델에 비해 큰 변화가 필요하지 않다

이는 평소 데이터를 표현하는 자연적인 방식과 비슷한 그래피 데이터베이스 구현의 장점이다

예제 데이터의 프로퍼티 그래프 모델의 주목해야 할 첫 번째 이점은 개념적 데이터를 그래프 구현을 위한 논리적 데이터 모델로 쉽게 바꿀 수 있음을 확인할 수 있다

네 개의 정점 레이블(Customer, Account, CreditCard, Loan)을 포함한다

데이터 모델 개체에서 정점 레이블은 굵은 글씨로 표시한다

세 개의 간선 레이블(owes, owns, uses)이 있다

데이터 모델에서 관계를 나타내는 간선 레이블도 굵은 글씨로 표시한다

마지막으로 프로퍼티를 살펴보자

Customer 정점은 customer_id, name 두 개의 프로퍼티를 갖는다

프로퍼티는 정점 레이블 아래에 목록으로 나열된다

또한 owns 간선 레이블은 role을 포함한다

그래프 구현

그래프 데이터베이스에서는 먼저 그래프의 스키마를 추가할 수 있도록 그래프를 만들어야 한다

스키마를 설정하고 나면 데이터베이스에 데이터를 삽입할 수 있다

 

 

 

관계형을 이용하지 않는 이유

관계형은 테이블 데이터에 유용하지만 복잡한 데이터에는 그래프가 더 좋다

이 점을 제외하면 둘은 거의 비슷하다

결론적으로 데이터가 얼마나 복잡하며 데이터에서 어떤 가치를 원하는지에 따라 결정이 달라진다

비즈니스가 시간(맞춤형 솔루션을 만드는 데 소비하는 시간과 질의 결과를 기다리는 시간)을 어떻게 평가하느냐에 달렸다

특히 비즈니스가 더 심층적이고 계획되지 않은 질의가 필요할 때는 답변이 명확하다

관계형 시스템은 아키텍처를 바꿔야하며 테이블을 추가하고, 질의 언어를 직접 만들어야 한다

그래프 시스템에서는 스키마를 손보고 데이터를 추가로 삽입할 뿐이다

그래프 기술은 복잡한 데이터를 쉽게 처리할 수 있지만 관계형 기술은 단순한 데이터(테이블)을 처리한다

프로젝트에 어떤 깊이와 복잡성이 필요한지에 따라 선택이 명확해진다

 

 

C360 애플리케이션에 적합한 기술 선택하기

관계형, 그래프 기술 중 하나를 선택하는 일은 결국 애플리케이션 전체 영역을 살펴본 다음 결정할 수 있다

경험상 분산된 데이터 소스를 통합하는 것이 목표라면 관계형 시스템을 적절히 튜닝함으로써 최적의 결과를 얻을 수 있다

애플리케이션의 한 기능에 집중하기 때문에 개발 리소스를 절약할 수 있고 제품 시스템을 더 빠르게 전달할 수 있다

반면 데이터 관리 솔루션 또는 C360 애플리케이션이 데이터 아키텍처의 시작점이라면 그래프 데이터베이스의 가파른 학습곡선이 장기적으로 더 많은 혜택을 가져다줄 수 있다

그래프 기술은 데이터 내에 존재하는 관계를 더 직관적으로 추론할 수 있게 만든다

관계에서 통찰력을 요구하는 비즈니스 목표를 달성하려면 그래프 기술이 적합하다

조금 더 현실적이고 정교한 예제를 사용하면 RDBMS에 부담을 주기 시작한다

현실 데이터는 그 안에 정교한 관계를 포함한다

비즈니스가 이런 관계를 필요로 한다면 그래프 기술을 사용해야 한다

 

 

팀이 그래프 기술로 전환하는 단계에서 기초를 다지고 확장해야 하는 상황이라면 주의하자

C360 애플리케이션을 기초로 삼고 여기서부터 개발을 시작해야 그래프 기술을 아키텍처에 성공적으로 통합할 수 있다

비즈니스는 C360 애플리케이션을 기초로 삼아 그래프를 더 깊이 탐색해 데이터에 내재된 더 가치 있는 통찰력을 얻을 수 있다

다음 장에서는 단순한 C360 애플리케이션을 더 완벽한 시나리오로 확장해본다

이 과정에서 사용 편의성과 출시 속도 측면에서 그래프 기술과 RDBMS를 비교한다

 

 

최종 제품 구현

c360 예제 스키마에 구체화 뷰를 추가하고 데이터스택스 벌크 로더로 데이터를 로드하는 방법을 설명한다

마지막으로 최적화된 결과물을 활용하도록 그렘린 질의를 갱신한다

 

 

두 가지 제품 스키마 기법을 확인해보자

먼저 역정규화를 적용해 질의를 최적화할 수 있다

현재는 Transaction 정점에만 시간을 저장한다

타임스탬프 프로퍼티를 역정규화해서 charge 간선에도 시간을 저장하면 탐색에 필요한 간선 수를 줄일 수 있다

charge 간선의 반대 방향으로 탐색하는 질의를 살펴봤다 이는 간선 레이블에 또 다른 구체화 뷰가 불필요함을 가리킨다

 

이 방식을 이용해 역정규화로 질의를 최적화할 수 있는 세 개의 간선 레이블을 찾을 수 있다

이 최적화 방식을 적용하면 디스크의 간선이 정렬되므로 데이터 탐색 시간이 줄어든다

특히 withdraw_from, deposit_to, charge 간선 레이블에 타임스탬프 프로퍼티를 추가함으로써 탐색에 필요한 데이터 양이 줄어든다

 

 

트리 사용 개발

C360 애플리케이션은 현재 분산 그래프 기술에서 가장 흔히 사용하는 기법이다

C360 예제는 분산 시스템, 그래프 이론, 함수형 질의 언어등 수많은 개념을 효과적으로 소개한다

6, 7장에서는 이웃 데이터 이해를 넘어 계층 데이터(의존성을 중첩 구조로 조직한 데이터)에 그래프 씽킹을 적용하는 단계로 나아간다

트리 탐색 계층 데이터, 순환

6장은 크게 다섯 가지 주요 부분으로 구성된다

첫 번째 부분에서는 실생활 시나리오에서 찾을 수 있는 다양한 계층 데이터 예를 살펴본다

계층 데이터라는 새로운 유형의 데이터를 확인하면서 새로운 용어도 접하게 된다

두 번째 부분에서는 다양한 예제를 통해 새로운 용어를 소개한다

세 번째 부분에서는 예제에서 사용할 문제와 데이터, 스키마를 소개한다

계층 데이터에서는 크게 두 가지 유형의 질의를 사용한다

네 번째 부분에서는 계층의 바닥에서 부터 시작해 꼭대기 방향으로 탐색하는 첫 번째 질의 패턴을 소개한다

그다음에는 계층의 꼭대기에서부터 바닥으로 탐색하는 두 번째 질의 패턴을 소개한다

마지막 질의 최종 질의 패턴은 제품 애플리케이션에서 깊게 중첩된 데이터를 탐색할 때 발생하는 가장 어려운 면을 보여준다

6장에서는 무엇이 잘못 될 수 있는지 보여주며 이어지는 7장에서 문제 발생 이유와 제품화 단계에서 문제를 해결하는 방법을 설명한다

 

 

세 가지 예제로 살펴보는 계층, 중첩 데이터

공공연하게 우리는 일상에서 그래프를 사용하고 있다

제품 구조, 버전 관리 시스템, 심지어 사람 데이터에서 계층 구조가 자주 발견된다

이 세가지 예제를 하나씩 살펴보면서 그래프로 중첩 데이터를 추론하는 방법을 확인해보자

1. BOM의 계층 데이터

BOM(자재 명세서) 애플리케이션은 파이프라인에서 제품을 만드는 데 필요한 원자재, 조립품, 부품의 수량을 중첩 의존성으로 연결해 제품 구조를 설명한다

BOM에서 계층을 얘기할 때는 전체 물건을 구성하는 부품에 필요한 총 나사 수를 세는 것과 같이 대상을 분해해야 한다

보통 제조 공장, 조립 라인, 수많은 공업 엔지니어링 분야에 이런 유형의 데이터 계층이 존재한다

2. 버전 관리 시스템의 계층 데이터

깃의 버전 관리 시스템은 계층 데이터를 포함한다

버전 관리 시스템은 작업 디렉터리, 인덱스, 헤드 세 가지 트리 구조를 포함한다

각 트리는 쓰기, 스테이징, 커밋 변경이라는 세 가지 기능을 제공한다

프로젝트의 의존성 그래프로 각 변경 상태를 확인하는 법을 보여준다

깃을 체인으로 생각할 수 있다

버전 관리 시스템은 포크로 의존성 체인을 만든다

깃의 버전 관리 시스템은 중첩된 계층 형태로 데이터를 저장한다

3. 자체 구성 네트워크와 게층 데이터

가족 계층과 관계를 그래프 자료구조로 표현하려면 가족 전체를 고려해야 한다

할아버지의 할아버지의 할아버지까지 최대한 멀리 관계를 넓히는 것이 좋다

가족의 혈통을 추적할 수 있도록 자료를 수집하다 보면 수많은 부모, 자식 계층을 발견할 수 있다

가족내의 부모, 자식 의존성은 주변에서 찾을 수 있는 게층 데이터의 가장 좋은 예다

회사의 조직도는 가계도와 비슷하다

관리자와 임직원의 관계는 가계도의 부모, 자식 관계와 비슷하다

사람은 그룹에서 일하며 스스로를 비슷한 구조로 조직한다

예를 들어 CEO는 부사장 팀을 관리하며, 부사장은 이사 팀을 관리하고, 이사는 개발자들을 관리한다

 

 

계층 데이터에 그래프 기술을 사용하는 이유

그래프 기술을 이요하면 데이터 내의 중첩 관계를 더 자연스럽게 표현할 수 있다

데이터를 자연스럽게 표현할수록 코드가 단순해지므로 유지 보수가 쉬워지고 개발 팀의 생산성은 향상된다

지금까지 전 세계의 그래프 사용자가 나눴던 다양한 대화 중에 HBase 기반의 150행의 질의를 20행의 그렘린 질의로 변환했다는 얼리 어답터의 애기가 기억난다

이는 왜 많은 엔지니어링 팀이 그래프 기술을 이용해 게층 구조 데이터를 모델링, 저장, 질의하는지 잘 보여준다

단순한 코드, 개발자 생산성 향상은 항상 대화에서 빠지지 않는 주제였다

덕분에 더 많은 팀이 분산 그래프 기술로 모델링하고 추론 과정과 게층 구조를 통해 복잡한 문제를 해결하려 시도한다

그렇다면 회사구조, 버전 관리, 제품 구조의 공통점은 뭘까?

이들의 데이터는 중첩 또는 계층을 포함한다

그래프 기술에서는 이 계층을 트리라 부른다

데이터의 숲에서 나무(트리)를 보는 방법을 배우는 데 필요한 새로운 그래프 용어를 살펴보자

 

 

데이터를 접하고 다루는 직업을 가진사람들이라면 대부분 관계형 테이블 구조에 친숙하고 모든 데이터의 기준을 관계형 테이블 구조 기준으로 잡는 일이 다반사 이다

NoSQL이 등장한지도 꽤 많은 시간이 지났지만 아직까지 NoSQL보다는 관계형 테이블 구조를 훨씬 더 많이 활용하고 있으며

NoSQL의 개념과 활용에 대해서도 의문점을 품는 사람들이 많다

이 책은 그런 고정관념을 깨고 데이터의 관계를 추론하고 사고하는 과정인 그래프 씽킹을 하는 구체적인 방법에 대해서 기술적으로 직접 실습해보면서 친숙해질 수 있게 해주는 책이다

세상의 데이터는 매우 복잡하고 관계형 데이터베이스 구조로 단정짓기 힘든 데이터 구조가 많이 있다

그래프 씽킹은 복잡한 문제를 해결하는 새로운 방식과 이 사고를 정형화하는 새로운 이론 체계, 실용적인 해결책을 개발하는 데 필요한 새로운 기술과 기법을 적용하여 시스템을 보다 단순하게 구성하고 운영할 수 있도록 한다

이 책에서는 그래프 씽킹을 처음 문제에 적용하기 시작한다면 개발을 먼저 완료한 다음 제품화를 진행하기를 권장한다

그래프로 데이터를 탐색하고 적합한 그래프 기법을 적용, 정제한 다음, 제품에 적합한 기술로 튜닝하고

가장 흔히 볼 수 있는 연결된 데이터 문제(이웃 탐색, 트리의 분기, 경로 찾기, 협업 필터링, 개체 해석)에 이러한 방식으로 그래프 씽킹을 적용해 나간다

이 책을 통해 데이터와 관련된 질문과 추론 과정을 통해 그래프 씽킹, 그래프 사고방식을 배우고 가장 흔히 발생하는 복잡한 그래프 문제를 해결하는 방법을 터득할 수 있다

복잡한 데이터 관계구조를 개선하기 위해 고민하고 있는 사람이 있다면 이 책을 통해 문제를 해결할 수 있는 방법을 찾을 수도 있을 것이다

정말 혁신적인 데이터 구조 설계를 경험해보고 싶다면 이 책을 통해 그래프 데이터베이스에 입문해보는 것을 강력히 추천하는 바이다

※한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

r******1 2022.05.15. 신고 공감 0 댓글 0
리뷰 총점 종이책
실무자를 위한 그래프 데이터 활용법
"실무자를 위한 그래프 데이터 활용법" 내용보기
2022년 5월에 출간된 따끈따끈한 책 <실무자를 위한 그래프 데이터 활용법>을 소개합니다. 이 책의 부제는 '그래프 싱킹으로 시작하는 그래프 데이터베이스'입니다. 이 책의 저자는 데이터 스택스의 최고 데이터 책임자인 데니즈 고즈넬(Danise Gosnell)과 최고 기술 책임자인 마티아스 브뢰헬러(Matthias Broecheler)입니다. 이 책의 번역은 자바 8 인 액션을 번역하신 우정은 님으로
"실무자를 위한 그래프 데이터 활용법" 내용보기

2022년 5월에 출간된 따끈따끈한 책 <실무자를 위한 그래프 데이터 활용법>을 소개합니다. 이 책의 부제는 '그래프 싱킹으로 시작하는 그래프 데이터베이스'입니다. 이 책의 저자는 데이터 스택스의 최고 데이터 책임자인 데니즈 고즈넬(Danise Gosnell)과 최고 기술 책임자인 마티아스 브뢰헬러(Matthias Broecheler)입니다. 이 책의 번역은 자바 8 인 액션을 번역하신 우정은 님으로 번역 품질은 좋습니다.

이 책의 원서는 아마존 리뷰에서 우수한 점수(4.5점, 5점 만점)를 받았습니다. 그래프 데이터와 데이터베이스에 관심 있는 독자라면 매력적으로 느끼실 것 같습니다. 단순히 그래프 데이터베이스의 활용법이 아닌 '그래프 싱킹'이라는 개념을 소개하며 그래프를 실무에 적용하는 방법을 소개하는데 제게는 매우 신선하고 흥미롭게 다가왔습니다. 

<실무자를 위한 그래프 데이터 활용법>은 약 450페이지로 구성되어 있어 휴대하면서 읽기에 크게 부담스럽지 않습니다. 전자책으로도 출간되어 있으므로, 전자책 뷰어가 있으시다면 전자책으로 만나보는 것도 좋을 것 같습니다. 구매 가격도 더 저렴합니다. 

한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다. 

 

이 책의 매력은?

<실무자를 위한 그래프 데이터 활용법은 13장으로 구성되어 있습니다. 이 책은 그래프 데이터베이스의 사용법을 소개하는 것이 아니라, 그래프 데이터의 특성과 활용하는 방법을 안내하는 부분이 매력적입니다. 또한 기존 RDBMS 사용자가 그래프 데이터와 마주했을 때 어떻게 접근해야 하는지 소개하는 부분이 좋았습니다. 

이 책은 실습을 위한 그래프 데이터베이스로 Cassandra를 활용하고 있습니다. 아마도 이 책의 저자들이 근무하는 회사의 제품(링크)을 활용하다 보니 그런 것 같은데, 대표적으로 알려진 그래프 데이터베이스인 Neo4j나 OrientDB 등으로 접근했으면 더 좋았을 것 같습니다. 하지만 이 책으로 그래프 데이터에 대한 개념을 이해하고 직접 시도해보는 것도 나쁘지 않습니다.

그래프 데이터와 그래프 데이터베이스는 익숙한 데이터 저장구조는 아닙니다. 하지만 이 책을 따라가며 조금씩 애플리케이션을 개선하다 보면 그래프 데이터의 매력에 빠져들 것으로 생각합니다. 기존 RDBMS에 익숙한 제게는 그래프 싱킹이 신선하게 다가왔고, 학습할 계기를 주었습니다. 

<실무자를 위한 그래프 데이터 활용법 단순히 따라 하면서 체험하는 책이 아니라, 그래프 데이터에 대한 생각을 정립하는 책입니다. 그래서 저는 좋은 느낌이었지만, 국내 독자들에게는 익숙한 접근 방법(따라 하기)이 아닐 수도 있을 것 같습니다. 

 

마치면서

RDBMS와 NoSQL 등에 대한 지식이 부족하면 이 책은 어렵게 느껴지실 것 같습니다. 지식이 있으신 분이라면 그래프 싱킹을 이해하는 데 도움이 되며, 빠르게 감을 잡을 수 있을 것으로 생각합니다. 사실 예전에 그래프 데이터베이스를 조금 경험해서 그런지 이 책에서 소개하는 내용들이 필자에게는 더 공감되고 크게 다가왔습니다. 기술적인 부분을 내재화한 후 간단한 응용에 도입해보고 싶습니다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

h******g 2022.05.30. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 실무자를 위한 그래프 데이터 활용법
"[리뷰] 실무자를 위한 그래프 데이터 활용법" 내용보기
이 책은 읽으면서 그래프 씽킹이라는것이 어떤 것인지를 고민하게 해주는 책이다. 관계형 데이터를 그래프로 보고 싶다는 생각을 가지고 있었을 때 우연한 기회로 읽을 기회가 생긴 책이었다.   아무런 개념없이 책을 읽기 시작했음에도 불구하고 이해하는데 어려움이 없을 정도로 쉽게 설명이 되어 있는 책이다.   책을 읽다보니 이런 사람들에게 추천해주고 싶다는 생각을
"[리뷰] 실무자를 위한 그래프 데이터 활용법" 내용보기

 

이 책은 읽으면서 그래프 씽킹이라는것이 어떤 것인지를 고민하게 해주는 책이다. 관계형 데이터를 그래프로 보고 싶다는 생각을 가지고 있었을 때 우연한 기회로 읽을 기회가 생긴 책이었다.

 

아무런 개념없이 책을 읽기 시작했음에도 불구하고 이해하는데 어려움이 없을 정도로 쉽게 설명이 되어 있는 책이다.

 

책을 읽다보니 이런 사람들에게 추천해주고 싶다는 생각을 했다. 관계형 DB에만 익숙해 그래프 관점으로 데이터를 바라보고 싶은 사람과 그래프로 데이터를 구성하더라도 여러가지 문제(최신경로, 관계 설정) 에 대해서 어떤 방식으로 문제를 해결할 수 있을지 인사이트를 얻고 싶은 사람들에게 추천한다.

 

개인적으로 이 책의 그림체와 글씨체가 너무나 마음에 들었다. 설명자체도 친절한데 그림으로 설명해주고 있기 때문에 문제를 이해하는데 어려움이 없었다. 그림과 실습을 통해 다양한 문제에 대해서 대리 경험을 해볼 수 있다.

 

개인적으로 아쉬웠던 부분은 해당 책의 예제는 파이썬으로 구성되어 있다. 그렇다보니 파이썬에 대한 기본적인 지식이 필요하다. 또한 클러스터(아파치 카산드라)를 구성하는 부분에 있어서는 별다른 예제나 설정을 제공하지 않는다. 클러스터가 있다는 가정하에 예제를 제공하고 있다보니 기본적인 지식이 필요하다는 부분이 책을 선택할 때 한 번쯤 생각해 볼 필요가 있다는 생각이 들었다. 

 

그렇다고 하더라도 책을 통해 그래프 씽킹을 간접경험 할 수 있는 부분은 너무나도 좋았다. 추천을 위해 그래프 DB를 구성해볼 수 있지 않을까라는 생각을 갖게 해준 책이다.

k*********0 2022.05.27. 신고 공감 0 댓글 0
리뷰 총점 종이책
그래프 데이터는 어떻게 그려야 하는가? 여기에 있다!
"그래프 데이터는 어떻게 그려야 하는가? 여기에 있다!" 내용보기
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 제목 : 실무자를 위한 그래프 데이터 활용법 리뷰 요약 RDB만 써왔거나, 딱히 새로운 기술을 몰랐던 사람이라면, DB에 대한 새로운 기술, 새로운 방식에 대해 알고 싶거나, 그간 DB를 써오며 '이런 방식이 있었으면 좋겠다'고 한번 쯤 생각해 보았다면 읽을만한 그래프 데이터 활용 서적.
"그래프 데이터는 어떻게 그려야 하는가? 여기에 있다!" 내용보기

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

제목 : 실무자를 위한 그래프 데이터 활용법


리뷰 요약

RDB만 써왔거나, 딱히 새로운 기술을 몰랐던 사람이라면,

DB에 대한 새로운 기술, 새로운 방식에 대해 알고 싶거나,

그간 DB를 써오며 '이런 방식이 있었으면 좋겠다'고

한번 쯤 생각해 보았다면

읽을만한 그래프 데이터 활용 서적.

 

 

이 서적의 핵심

 

1. 그래프 데이터뿐 아니라 DB의 역사 전반에 대한 흐름과

그 흐름 뒤에 새로운 패러다임으로 그래프 데이터가 생겨나고

사용되는 이유에 대한 설명

 

음... 뭔가 20년에 맞춘 느낌이 강하긴 하지만...

- '그래프 데이터 킹왕짱이에요!' 라며 장점만 늘여놓기보단,

어떤 필요에 의해 그래프 데이터를 사용하게 되었는가를 서술하고

기존에 가장 많이 쓰이던 RDB등과 비교를 하며 설명.

 

 

2. 어떤 방식을 사용해야 그래프 데이터를

효율적으로 구축할 수 있는지에 대한 내용으로 구성

 

- 실무에서 사용되는(사용 될법한?) 내용의 예제들로

어떻게 그래프 데이터가 활용되고 활용해야 하는지를 설명하기 때문에

'막상 이론은 이런데 실무에선?'이라는 의문은 갖지 않아도 될 듯하다.

 

 

3. 가장 많이 사용되는 방식인 RDB와 비교, 대조하며

그래프 데이터를 구현해보기 때문에 비교하며 분석할 수 있음

 

좌: RDB 테이블, 우: 그래프 데이터

- 익숙한 테이블과 RDB 구조를 만들고 이것을 기준으로

그래프 데이터를 어떻게 만들어야 할 지

단계별로 설명하기 때문에 설명이 조금 길지만,

비교하며 진행할 수 있음.

 

 

4. 핵심적인 '이것을 왜 써야 하는가?' 에 대해 지속적으로 언급함.

- RDB를 가장 많이 쓰고있고, 앞으로도 많이 쓸 것이라 생각하기 때문인지

보면서도 이해가 잘 안가고 이해를 잘 안하려고 하는 것 같은 기분이 들었다.

 

위의 밑줄 친 부분이 딱 나의 마음이었는데, '그래프를 써야해!'라는 확신이 없다면

딱히 쓰지 않아도 된다는 뉘앙스를 풍기지만,

확실히 특정 분야에서는 그래프 데이터로 표현하는것이 훨씬 유용하다고 언급하기 때문에

나중에 필요한 일이 생기면 가장 먼저 생각나지 않을까 싶음.


마무리

 

이 책은 '어떻게 만드냐'를 핵심으로 내용을 꾸며간다고 생각한다.

예제들도 한권의 책에 다 담아낼 순 없었을테고

부족한것도 많았을거라고 본다.

하지만 이 책은 직접 따라해보고 실전에 사용하는 코드 등을 제공하는 서적이 아닌

'어떻게 만드냐'는 생각을 통해 '그래프 데이터는 이런식으로 생각하고 꾸민다.'는

설계 중심적인 서적이 아니었나 생각한다.

 

솔직히, 최근 본 서적중에 제일 재미가 없었다.

위에서도 언급했지만

'필요에 의한 것'이 아닌게 가장 큰 문제가 아니었나 싶다.

 

처음 이 책의 '그래프 데이터 활용법'이라는 제목을 보고,

'마인드맵'같은 분석과 '구글 애널리스틱' 활용 같은 마케팅 관련 내용이 아닐까 싶었고,

'실무'라는 말이 써있었기 때문에 '문서 작성에 필요한 능력에 대한 이야기인가?'

라는 생각을 했지만 지금 읽은 바로는 아닌것 같다.

 

100쪽까지 읽어가는 과정이 너무 힘들었다.

읽고 또 읽고... 이게 무슨말이지...? 하면서 다시 보았지만 잘 이해가 안갔다.

분명 한빛 난이도에선 '초중급'이라고 나와있는데,

나는 아직 멀었나보다...!

 

아무튼, 책 내용에서도 나오듯이

지금 RDB등의 데이터를 활용하는것에 무리가 없고 불만이 없다면

딱히 지금 당장 배워야 될 기술은 아니지 않나 싶다.

 

얼마 전 지인에게

'주변에서 새로운 것들이 너무 많이 나와서 나도 배워야 할 것 같은 조급함이 든다'

라고 말했더니,

'당장 필요한 기술이 아님에도 시간을 들여 지금 사용하고 있는것에 소홀해 하지마라'

라는 말을 들었다(뭔가 새로운 전자기기 살 때 느낌이랑 비슷한거 같은데...).

 

딱 이 책이 그런 느낌인것 같다.

필요성을 못느끼지만 '새로운 기술'이기 때문에

먼 훗날을 위해 한번쯤은 봐두면 좋은..?

 

물론, 그래프 데이터가 필요한 분야에 있는 분들이 읽는다면

최고의 책이 될 수도 있다고 생각한다(나중에 나에게 최고가 될지도?).

 

많은 개발자들이 '새로운 것'을 추구하는것을 안다.

나 역시도 새로운 것에 '흥미'는 매우 많으니까...

필요에 의해 생기는 것들이지만, 지금 사용하고 있는 기술들도

그 과정을 거쳐 탄탄해지고 살아남은 것들이니

과거의 기술들을 너무 미워하지는 말자.


 

s*******y 2022.05.28. 신고 공감 0 댓글 0
리뷰 총점 종이책
그래프
"그래프" 내용보기
https://blog.naver.com/jhc9639/222740097879   기본적인 그래프 내용은 알 수 있다. 정리가 잘 되어있는 부분은 다음과 같다. 그래프모델링 TIP - 역정규화를 통해 질의에서 처리할 요소 수를 줄인다. - 제품 질의에 필요한 간선과 인덱스만 유지한다. * 아 근데 필요하지 않은 부분 참조로 해야 되는 것 아닌가..   이 책을 보면 실무자용인지 입문자용인지도 헷갈린다. 그 이
"그래프" 내용보기

https://blog.naver.com/jhc9639/222740097879

 

기본적인 그래프 내용은 알 수 있다. 정리가 잘 되어있는 부분은 다음과 같다.

그래프모델링 TIP

- 역정규화를 통해 질의에서 처리할 요소 수를 줄인다.

- 제품 질의에 필요한 간선과 인덱스만 유지한다.

* 아 근데 필요하지 않은 부분 참조로 해야 되는 것 아닌가..

 

이 책을 보면 실무자용인지 입문자용인지도 헷갈린다. 그 이유는 기본적인 내용은 정말 자세히 설명하는 것같으면서도 실무적인 프로젝트 내용으로 가서는 갑자기 힘이 빠지면서 설명이 부족한 부분이 너무나도 많다.

초반 그래프의 기본에 대해 설명하는 것. 그래프 형식의 데이타 타입을 구축하는 것까지는 좋은데 코드 설명이나 프로젝트를 따라하는데 너무나도 어렵고 설명또한 부족한 부분이 너무나 많다. 하나 예를 들자면 협업필터링을 설명하는 부분인데 협업필터링은 반드시 이러한게 나와야 한다.

유저 기반인지 아이템 기반인지...

또한 지름길 간선 미리 계산하기가 나오는데 이 경우 경우의 수를 모두 다 구해놓고 그 간선으로 하는건데 이러한 부분에 대한 프로젝트를 실제로 내가 해봐서 아는데 이 때 경우의 수가 너무 많으면 메모리문제가 무조건 나오기 마련인데 이부분에 대해 어떠한 설명도 없다. 미니배치로 해야 하던가 해당 부분을 좀 줄여서 하던가, 네트워크 플로우를 간소화 하던가 등의 이런 핵심적인 설명이 빠져있다.

w*******e 2022.05.20. 신고 공감 0 댓글 0