🎮60분
스키마가 살아있는지 확인한다
Neo4j 시작하기
스키마가 살아있는지 확인한다
Neo4j 시작하기 > Neo4j 시작하기
학습 목표
- 최소 패턴을 넣어 스키마·타입·관계를 검증한다
- 지연 계산 질의로 설계가 CQ 에 답하는지 확인한다
Interactive Simulator
스키마가 살아있는지 확인한다
클릭하여 시뮬레이터를 실행하세요
스모크 테스트
빈 그래프에 손으로 최소 패턴을 넣어 스키마가 살아있는지 확인합니다. 코스 3의 대량 적재 전 예행연습입니다.
// 기항 허브 패턴 1건 생성
CREATE (v:Vessel {imoNumber:"9999999", name:"한바다호", vesselType:"ContainerShip"})
CREATE (p:Port {unLocode:"KRPUS", name:"부산항",
position: point({latitude:35.1, longitude:129.04})})
CREATE (b:Berth {berthCode:"PNC-B2", length:350, position: point({latitude:35.08, longitude:128.83})})
CREATE (pc:PortCall {callId:"urn:mrn-compat:portkg:call:2026-0813-001", status:"BERTHED"})
CREATE (be:BerthingEvent {plannedTime: datetime("2026-08-13T04:35+09:00"),
actualTime: datetime("2026-08-13T14:05+09:00"),
timeBasis:"berth", source:"PORTMIS"})
CREATE (v)-[:MAKES_CALL]->(pc)-[:AT_PORT]->(p)
CREATE (pc)-[:ALLOCATED_TO]->(b)
CREATE (be)-[:PART_OF_CALL]->(pc)
CREATE (be)-[:AT_BERTH]->(b);
이제 AN-01의 축소판 — 접안 지연을 계산합니다.
MATCH (v:Vessel)-[:MAKES_CALL]->(pc:PortCall)<-[:PART_OF_CALL]-(be:BerthingEvent)
RETURN v.name,
duration.between(be.plannedTime, be.actualTime).hours AS delayHours,
be.source;
// 기대 결과: 한바다호, 9(시간대 반올림에 따라 9~10), "PORTMIS"
계획 04:35, 실제 14:05 — 9.5시간 지연이 계산되어 나오면 스키마·타입·관계가 모두 정상입니다.
이 축소판이 코스 4에서 CQ 정식 구현으로, 그리고 자연어 질의 "한바다호 접안이 왜 늦었나"의 답변 재료로 성장합니다.
확인할 것
source속성이 결과에 함께 나오는지 — 앞 모듈에서 "전 이벤트 필수"라고 한 이유가 여기서 보입니다. 답에 근거가 붙습니다.- 유일성 제약이 실제로 작동하는지 — 같은 imoNumber로 두 번째 Vessel을 만들어 보고 거부되는지 확인하세요.
- 존재성 제약이 없다는 것 — actualTime 없는 BerthingEvent를 만들어 보세요. 막히지 않습니다. 이것이 앞 과제에서 L2로 이관한 제약의 실제 모습입니다.
이 모듈의 신규 용어
| 용어 | 뜻 |
|---|---|
| LPG (Labeled Property Graph) | 라벨 노드 + 타입 관계 + 속성의 그래프 모델. Neo4j의 모델 |
| 라벨(Label) / 다중 라벨 | 노드의 분류 태그. 한 노드에 여러 개 가능 — 클래스 계층의 LPG 구현 수단 |
| bolt | Neo4j의 바이너리 접속 프로토콜(7687 포트). 드라이버가 사용 |
| APOC | Neo4j 유틸리티 함수 확장 플러그인 (Awesome Procedures On Cypher) |
| GDS | Graph Data Science 플러그인. 중심성·커뮤니티 탐지 등 그래프 알고리즘 |
| neosemantics (n10s) | LPG↔RDF 변환 플러그인. 링크드데이터 연동 경로 |
| PROFILE | Cypher 실행 계획·비용 분석 명령. 인덱스 튜닝의 증거 |
| 스모크 테스트 | 본격 가동 전 "연기만 안 나면 통과" 수준의 기본 동작 확인 |