본문으로 건너뛰기

그래프 탐색기 (Graph Explorer)

Graph Explorer는 구축된 온톨로지 데이터를 시각적으로 탐색하고 분석하는 도구입니다. Neo4j 그래프 데이터베이스에 적재된 데이터를 Cypher 쿼리로 조회하고 시각화합니다.

화면 구성

[Screenshot] 그래프 탐색기

그래프 탐색기

1. 메타데이터 패널 (Metadata Panel)

왼쪽 패널에서는 현재 선택된 컬렉션의 그래프 스키마 정보를 보여줍니다.

  • Labels (Nodes): 정의된 엔티티 라벨 목록 (예: Person, Company)
    • 각 라벨 옆에 노드 개수가 표시됩니다.
  • Relationship Types: 정의된 관계 타입 목록 (예: BOUGHT, MANAGED)
    • 각 타입 옆에 관계 개수가 표시됩니다.
  • Property Keys: 사용 중인 속성 키 목록
  • 항목을 클릭하면 해당 타입의 모든 데이터를 조회하는 쿼리가 자동 실행됩니다.

2. 시각화 영역 (Visualization)

중앙 화면은 조회된 데이터를 그래프(노드와 링크) 형태로 보여줍니다.

  • 인터랙션: 노드를 드래그하거나 확대/축소할 수 있습니다.
  • 상세 정보: 노드나 링크를 클릭하면 해당 요소의 속성(Property) 정보가 표시됩니다.
  • 확장 탐색: 노드를 더블클릭하면 연결된 이웃 노드들을 추가로 조회합니다.
  • 레이아웃: Force-directed 레이아웃으로 자동 배치되며, 수동으로 조정할 수 있습니다.

3. 쿼리 에디터 (Query Editor)

하단 패널에서는 Cypher 쿼리를 직접 작성하고 실행할 수 있습니다.

  • 쿼리 입력: Neo4j의 표준 쿼리 언어인 Cypher를 지원합니다.
  • 실행 (Run): 쿼리를 실행하고 결과를 시각화 영역에 반영합니다.
  • 결과 뷰: 그래프, 테이블, 텍스트 형식으로 결과를 확인할 수 있습니다.

Cypher 쿼리 가이드

기본 패턴 매칭

-- 모든 Person 노드 조회
MATCH (p:Person)
RETURN p
LIMIT 100

-- 특정 관계로 연결된 노드 조회
MATCH (p:Person)-[:BOUGHT]->(product:Product)
RETURN p, product
LIMIT 50

-- 조건 필터링
MATCH (p:Person)-[:BOUGHT]->(product)
WHERE p.age > 30 AND product.price > 10000
RETURN p, product

집계 쿼리

-- 라벨별 노드 개수
MATCH (n)
RETURN labels(n) as label, count(*) as count
ORDER BY count DESC

-- 관계별 통계
MATCH ()-[r]->()
RETURN type(r) as relationship, count(*) as count
ORDER BY count DESC

-- 가장 많은 구매를 한 고객
MATCH (p:Person)-[:BOUGHT]->(product)
RETURN p.name, count(product) as purchase_count
ORDER BY purchase_count DESC
LIMIT 10

경로 탐색

-- 두 노드 간 최단 경로
MATCH path = shortestPath(
(a:Person {name: "Alice"})-[*]-(b:Person {name: "Bob"})
)
RETURN path

-- N-hop 이웃 조회
MATCH (p:Person {name: "Alice"})-[*1..3]-(neighbor)
RETURN DISTINCT neighbor
LIMIT 50

유용한 Cypher 함수

함수설명예시
count()개수 세기count(n)
collect()리스트로 수집collect(n.name)
labels()노드 라벨 조회labels(n)
type()관계 타입 조회type(r)
properties()모든 속성 조회properties(n)
size()리스트 크기size(collect(n))
coalesce()NULL 대체값coalesce(n.name, "Unknown")

결과 뷰 모드

그래프 뷰

  • 노드와 관계를 시각적으로 표시합니다.
  • 노드 색상은 라벨별로 자동 지정됩니다.
  • 노드 크기를 속성 값에 따라 조정할 수 있습니다.

테이블 뷰

  • 쿼리 결과를 표 형태로 표시합니다.
  • 컬럼 정렬 및 필터링이 가능합니다.
  • CSV로 내보내기를 지원합니다.

텍스트 뷰

  • 원시 JSON 형태의 결과를 확인합니다.
  • 디버깅이나 상세 데이터 확인에 유용합니다.

데이터 탐색 팁

  • 특정 라벨의 노드만 보려면 메타데이터 패널에서 해당 라벨을 클릭합니다.
  • 복잡한 패턴을 찾으려면 쿼리 에디터에서 직접 MATCH 문을 작성합니다.
  • 노드가 너무 많아 복잡하다면 LIMIT 절을 사용하여 조회 개수를 제한하는 것이 좋습니다.
  • 성능을 위해 가능하면 인덱스가 설정된 속성으로 필터링합니다.

쿼리 히스토리

이전에 실행한 쿼리는 히스토리에 저장되어 다시 실행할 수 있습니다.

  • 쿼리 에디터 상단의 History 버튼을 클릭합니다.
  • 최근 실행한 쿼리 목록에서 원하는 쿼리를 선택합니다.
  • 자주 사용하는 쿼리는 즐겨찾기에 추가할 수 있습니다.