그래프 탐색기 (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 버튼을 클릭합니다.
- 최근 실행한 쿼리 목록에서 원하는 쿼리를 선택합니다.
- 자주 사용하는 쿼리는 즐겨찾기에 추가할 수 있습니다.
