▶️25

[영상] Neo4j 그래프 데이터베이스 튜토리얼

Neo4j & Cypher

학습 목표

Neo4j가 RDBMS 와 다른 점 (조인 폭발 없음, 인접성 자유 탐색) 을 설명할 수 있다 Docker / Aura Cloud 두 가지 설치 경로의 장단점을 비교한다 Cypher 의 MATCH-WHERE-RETURN 패턴으로 가장 단순한 질의를 작성한다 Neo4j Browser 의 시각화 UI 가 디버깅에서 왜 강력한지 체감한다

영상 핵심 정리 — Neo4j 첫 만남

이 영상은 "Neo4j 가 왜 그래프DB 사실상 표준이 됐는가" 를 설치 → 첫 쿼리 → 시각화 흐름으로 보여준다.


1. Neo4j 가 RDBMS 보다 빠른 이유

[RDBMS: 5-hop 친구의 친구 찾기]
SELECT ... FROM users u1
JOIN friends f1 ON u1.id = f1.user_id
JOIN friends f2 ON f1.friend_id = f2.user_id
JOIN friends f3 ON f2.friend_id = f3.user_id
JOIN friends f4 ON f3.friend_id = f4.user_id
...
→ JOIN 폭발, 100만 사용자에서 분 단위 응답

[Neo4j: 같은 질의]
MATCH (me)-[:KNOWS*5]->(target)
→ '인접성' 그대로 탐색, 밀리초 단위

핵심 차이: 그래프DB 는 한 노드에서 인접 노드로 가는 비용이 O(1) 이다. RDBMS 는 매 JOIN 마다 인덱스 풀스캔이 든다.

Index-free Adjacency 비유: RDB 는 매번 책 뒤 색인을 뒤지지만, Neo4j 는 페이지에 다음 페이지 링크가 박혀 있다. 그래서 데이터가 수억 건으로 늘어도 한 홉 비용은 동일하다 — 다중 hop 이 많은 GraphRAG/사기탐지/추천에서 압도적인 이유.


2. 설치 — 어떤 걸 쓸까

방식설치지속성비용추천
Sandbox0 (브라우저)임시 (며칠 후 만료)무료첫날 맛보기 — 설치 실패율 0
Docker (로컬)docker run -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/test neo4j:5영구무료학습/실습 본격
Aura Cloud Free가입만영구무료 (500MB)협업/포트폴리오
Aura Professional가입만영구월 $65~프로덕션

선택 가이드 한 줄: 일단 만져보고 싶다 → Sandbox. 본격 학습 → Docker. 보안/오프라인 필수 (방산/공공) → Desktop 로컬. 협업/포트폴리오 → Aura Free 로 이관. 첫날부터 로컬 설치로 시작하면 환경 문제로 절반이 막힌다 — 1교시는 Sandbox 권장.


3. Cypher 첫 다섯 줄

// 노드 생성
CREATE (:Equipment {id: 'CNC-001', model: 'DMU 50', installed: 2022})

// 노드 + 관계
MATCH (e:Equipment {id: 'CNC-001'})
CREATE (e)-[:HAS_PART]->(:Part {name: '스핀들'})

// 조회
MATCH (e:Equipment)-[:HAS_PART]->(p:Part)
WHERE e.id = 'CNC-001'
RETURN e.model, p.name

// 1-hop 이웃 모두 가져오기 (디버깅 필수)
MATCH (e:Equipment {id: 'CNC-001'})--(neighbor)
RETURN neighbor

// 노드 개수 빠른 점검
MATCH (e:Equipment) RETURN count(e)

이 다섯 줄이면 작은 KG 한 개를 만들고 검증할 수 있다. 다음 reading 에서 더 깊이 들어간다.


4. Neo4j Browser — 왜 다른 도구로 못 가는가

대부분의 그래프DB 가 Browser 같은 시각 UI 가 약하다. Neo4j Browser 는:

  • 쿼리 결과를 즉시 그래프 시각화 (관계 누락 한눈에 보임)
  • 노드 더블클릭으로 확장 탐색 ("이 부품은 어디서 쓰이지?" 인터랙티브하게)
  • 빌트인 :play movie-graph 등 학습 데이터셋

→ 학습 곡선의 절반을 Browser 가 흡수한다.


5. 가장 흔한 함정 (지금 알아두기)

  1. 라벨 대소문자 혼용: :equipment vs :Equipment 둘 다 다른 라벨로 취급됨. PascalCase 통일
  2. 관계 타입 형식: :HAS_PART (대문자 + 언더스코어) 가 컨벤션
  3. MERGE 남용: MERGE 는 비싸다. 신규 데이터 적재 시 CREATE, 멱등성 필요할 때만 MERGE

다음 task 와의 연결

다음 reading 에서 Docker + Aura 설치를 직접 진행한다. 이 영상을 보고 "왜 Neo4j 인가" 가 머리에 들어왔다면, 다음 페이지에서 손가락이 가야 한다.

AI로 학습하기 — 꿀팁
🤖Cypher 쿼리 초안 생성 요청AI 학습 팁

AI 에이전트에게 제조 설비-부품-공정 관계를 Neo4j Label Property Graph 모델로 설계하고 Cypher 쿼리를 작성하게 하세요.

Neo4j를 사용해 스마트팩토리 설비 온톨로지를 설계해줘. Equipment, Part, Process, Fault 노드와 HAS_PART, RUNS_ON, CAUSES 관계를 Cypher로 생성하는 CREATE 문과, 'CNC-001 설비와 연결된 모든 부품 및 최근 고장 이력'을 조회하는 MATCH 쿼리를 작성해줘. Docker로 Neo4j를 로컬 실행하는 명령어도 포함해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • Neo4j 는 노드-관계-속성(Label Property Graph) 모델 — RDF 보다 실무 친화적
  • 로컬 학습은 Docker 1줄(`docker run neo4j`), 협업/배포는 Aura Free 500MB 추천
  • Cypher 는 '그래프를 그리듯' 쓰는 선언형 — `(:Equipment {id:'CNC-001'})-[:HAS_PART]->(:Part)`
  • 초보의 가장 큰 함정: 노드 라벨/관계 타입 명명 일관성 — 한 번 어긋나면 쿼리 전체가 무력화