기타/프로그래밍

[그래프 데이터베이스][무작정해보기] [1/30] 그래프 DB 시작: 그래프 DB란? -> Neo4j Desktop 설치

코드아키택트 2020. 12. 24. 21:08
반응형

나는 왜 Graph DB를 시작하였나.

 사실 이걸 시작한 이유는 단 하나 입니다. 핫하다. 지난 5.5달간의 컴퓨터 교육후 백앤드라는 것이 궁금해 지기도 했고, 옛날부터 정보의 관계망을 만들어보면 좋겠다고 생각했습니다. 예를 들면, 한글의 동의어 사진이라던지 영어의 동의어 사전 같은 것이 있을 수 있고, 주식을 한다면 어떤 뉴스가 생겼을 떄 해당하는 주식의 가격이 어떻게 변하는 지 등등 이러 저러 짱구를 굴려보고 있었습니다. 교육때문에 바쁘다는 핑계로 시작하지 못했지만 이제 시작해보려 합니다.


시작하기 앞서..

Algorithms: Practical Examples in Apache Spark and Neo4j:

By Mark Needham & Amy Hodler

Published by O'Reilly Media

위 책으로 제 여행을 시작할 것입니다. neo4j.com/graph-algorithms-book/ 에서 다운 받을 수 있으며, 2020년 오늘 현재, 3rd edition으로 진행하려 합니다. 그러므로, 진행하시는 시점에 따라 내용이 다를 수 있습니다. 또한 이론적인 내용들은 최대한 건너 띄고(왜냐 나도 모르니까..) 기술적인 부분을 해보겠습니다.


무작정 시작하기: 그래프가 뭔데?

왼쪽은 그래프, 오른쪽은 그래프 아님.

 그래프는 노드 또는 vertices(꼭지점)으로 이루어져 있으며 그들 사이의 연결을 관계라고 칭한다. 라고 합니다. 한마디로 노드들의 관계망을 만든 것을 그래프라고 보시면 됩니다. 그래서 우리가 알고있든 엑셀 그래프는 여기서 그래프라 칭하지 않습니다. 왜냐면 각 노드의 연결관계를 보여주는게 아니기 때문이죠. 말이 개떡같다고요? 그럼 위의 그래프를 항상 참고 하도록 합시다.

 위의 사람과 자동차의 관계를 문장으로 표현하면 다음과 같습니다.

  • AB결혼했다(MarriedTo).
  • A자동차운전한다.
  • B자동차소유한다.

 즉 구조를 보면, "ABverb한다"라는 정보를 그래프로 표현한 것을 볼 수 있습니다. 그래서 ~가 에 해당하는 곳에서 화살표가 시작하고 ~를 에 해당하는 곳에서 화살표가 끝납니다. 이러한 관계가 쌓이고 쌓인다면 많은 것들을 밝혀낼 수 있겠죠. 예를 들면 이 코시국엔 확진자와 접촉자간의 밀접도를 숫자화 해서 분석하는 것도 가능할 것입니다. 이런 관계를 모델링 또는 기입 한 후엔 분석을 해야겠죠. 분석을 하는 부분을 graph algorithms라고 칭합니다.


그래프 알고리즘과 분석이란?

그래프 알고리즘은 그래프 분석을 위한 도구들의 부분집합이다.

그래프 분석이란 우리가 하는 무언가를 칭하며, 연결된 데이터를 분석하기 위해 그래프 기반 방법을 쓰는 것을 칭합니다. 다양한 사용법이 있는데

  • 그래프 데이터 추출
  • 기본 통계
  • 그래프 시각적 탐색
  • 머신러닝에 포함

이 책에선 좀더 반복적으로 사용할 수 있고 범용성 있는 분석을 위한 컴퓨테이션러 분석 과 데이터과학적 사용을 그래프 알고리즘이라 칭합니다.

 

그래프 알고리즘 사용 예

 그래프 분석 우왕 굳 이런 느낌의 이야기들이네요.

어쩃든 그렇답니다. 일일이 다 읽고 쓰기엔 어려울거 같네요. 본론으로 러쉬 합시다.


 

플랫폼 선택

Apache spark vs neo4j

 원래 목표는 두가지 다 사용하는 것이었습니다. 하지만 아파치를 쓰려면 하둡이 설치되어 있어야 하는 것 같습니다. 지난 교육동안 하둡 설치 방법을 배웠는데, 왠지 윈도우에 깔 물건은 아닌거 같아 추후에 Ubuntu + Windows 세트로 만든뒤, Ubuntu위에서 Apache를 돌리도록 하겠습니다.


 

Neo4j 설치하기

자 이제 본격적으로 시작해보겠습니다. 사실 저도 허접 찌끄레기라 여러가지 문제가 생길 수 있습니다. 다 같이 해결하면서 그렇게 크는거죠 뭐.

 

준비물

 

Neo4j Desktop Download - Launch and Manage Neo4j Databases

Create and manage local Neo4j databases and connect to remote graphs. Includes Neo4j Enterprise features, APOC, Neo4j Bloom, Graph Data Science, GraphQL.

neo4j.com

 

Archived OpenJDK GA Releases

Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he

jdk.java.net

    왜 JDK 11이 필요한가?
     사실 저도 몰랐죠. 하지만 오류가 나던걸요. neo4j 자체 설치는 별거 없으니 JDK 11을 깔아보도록 합시다.
    참고 사이트 : 

stackoverflow.com/questions/52511778/how-to-install-openjdk-11-on-windows

 

How to install OpenJDK 11 on Windows?

In the past, Oracle used to publish an executable installers for Windows that would: Unpack files Add registry keys indicating the installed version and path Add the JRE to the system PATH Registe...

stackoverflow.com

jum-dev.tistory.com/46

 

OpenJDK 11 설치 및 설정

Windows 10 환경에서 Java를 설치하고, 관련 환경변수 설정하는 부분에 대해 다뤄보자. 1. OpenJDK 설치 먼저, Oracle JDK의 라이센스 정책변화로 인해, "OpenJDK 설치가 필요하다." azul 사의 openJDK를 설치하도

jum-dev.tistory.com

 

Open JDK 설치하기

순서는 다음과 같습니다.

다운받기 -> 압축해제하기 -> 환경변수 설정하기 -> 잘 되었는지 확인하기.

 

1. 다운로드 받기 

사이트에 가면 11.0.2를 다운받음녀 됩니다.

우린 윈도우니까 위의 주소에서 다음을 다운 받습니다.

제대로 받으셨다면 다음과 같은 모습을 볼 수 있습니다.

파일을 확인하면 다음과 같습니다.

 

2. 압축 해제하기

압축해제는 사실 어디다 해도 상관없습니다. 다만, 관리하기 편하도록 C아래 Program에 압축 해제 합시다.

C:\Program Files\Java

 

3. 환경변수 설정하기

저같은 초보에게 가장 머리깨지는 부분입니다. 해봅시다.

시스템 -> 고급시스템 설정 -> 고급탭 -> 환경변수까지 들어가 봅시다

내 PC위치에서 우클릭 -> 속성
고급 시스템 설정 클릭
환경변수 조우
도착

 

자 이제 시작입니다.

프로그램 설치를 많이 해보셨겠지만, 압축만 해제한다고 제대로 돌아가는 프로그램이란 그리 많지 않습니다. 쉽게 비유하자면 설치되었다는 것을 등록해주어야 합니다. 여기선 여러가지 방법이 있겠지만 JAVA_HOME 위치를 변수로 선언한 후 등록하는 방법으로 해보겠습니다.

 대충 읽어보니, 이런 방식으로 했을때, 만약 JAVA 버전을 변경해야 할때, JAVA_HOME 위치만 변경함으로서 좀더 관리가 쉬울 수 있다네요.

 

시스템 변수에 JAVA_HOME 추가하기

시스템 변수 아래에 보시면 새로만들기가 있을겁니다. 거기에 다음과 같이 입력해 줍니다. 단, java를 다른곳에 압축해제 했다면 그곳으로 바꿔주셔야 합니다. 

 

Path에 등록하기

제가 원래 읽었던 글에서 가장 헷갈렸던 부분이기도 한데, 원래는 PATH라고 대문자로 쓰여야 하나 봅니다. 헌데 그냥 Path라고 쓰여있더라고요. 역할은 cmd창 같은곳에서 Java, python등을 사용할때 이 문자가 누구를 가르키고 있는지 관리해주는 부분이라고 보면 될거 같습니다. 애매하다고요? 좀더 공부해야 겠네요.

Path에서 편집을 누릅니다.
다음과 같은 창이 뜰텐데 새로만들기를 누릅니다.

%JAVA_HOME%\bin 입니다. 즉 JAVA_HOME(저희의 경우 C:\Program Files\Java\jdk-11.0.2) 아래(\) bin을 Java의 위치로 설정하겠다 로 보시면 됩니다.

%JAVA_HOME%\bin = C:\Program Files\Java\jdk-11.0.2\bin

 이 비슷한 방법은 리눅스에서도 많이 쓰이기도 합니다. 여튼 이렇게 java를 환경 변수로 설정했습니다.

 

4. 확인해보기

java -version

커멘드 창이 어색하신 분들도 있을 것입니다. 저는 속성파니까, 아주 빠르게 해보겠습니다.

 

ctrl + r -> 실행 나옴 -> cmd 입력 -> java -version 입력

 

ctrl + r -> cmd

입력합니다.

java -version

 

제대로 환경변수가 설정되었다면 다음과 같은 모습을 볼 수 있습니다.

 

그래서 neo4j는?

사실 그 친구는 설치가 어렵지 않아서... 실행하면 마주할 화면을 켜보겠습니다.

빙글빙글 실행

 실행하시면 되는데, 만약 Java가 제대로 설치되어 있지 않으면 5번째칸에서 오류가 날 것입니다. 

 

마주할 화면

성공적으로 실행하면 다음과 같은 화면을 만날 것입니다. 오른쪽엔 제가 깔짝거리던 것이고, Movie Database가 기본 예제입니다. 아 그러고보니 라이센스키 뭐시기 있었는데, 그거 그냥 잘 따라하면 되요.

반응형