콘텐츠로 이동
Graph 문서0.5

시작하기

최신 안정판 Graph 0.5.1 릴리스 기준

개별 graph 모듈이나 bluetape4k-graph-bom에 독립 버전을 붙이지 않는다. 소비자가 관리할 값은 bluetape4k-dependencies 버전이다.

dependencies {
implementation(platform("io.github.bluetape4k:bluetape4k-dependencies:<ecosystem-version>"))
implementation("io.github.bluetape4k:bluetape4k-graph-tinkerpop")
}

모듈 좌표에 버전이 없는 이유는 graph와 공통 Bluetape 라이브러리를 생태계 BOM이 함께 맞추기 때문이다. 릴리스 모듈 선언은 graph-tinkerpop/build.gradle.kts에서 확인할 수 있다.

TinkerGraphOperations().use { ops ->
val alice = ops.createVertex("Person", mapOf("name" to "Alice"))
val bob = ops.createVertex("Person", mapOf("name" to "Bob"))
ops.createEdge(alice.id, bob.id, "KNOWS")
check(ops.neighbors(alice.id).single().id == bob.id)
}

실행 뒤에는 생성된 ID와 간선 방향을 본다. ID를 숫자로 가정하면 안 된다. 이웃이 비어 있으면 백엔드를 의심하기 전에 방향, 간선 레이블 조건, maxDepth를 확인한다. 공통 조합은 GraphOperations.kt, 구현과 검증은 TinkerGraphOperations.ktTinkerGraphOperationsTest.kt에 있다.

트랜잭션 확장이 UnsupportedOperationException을 던지면 선택한 구현에 그 capability가 없는 것이다. 자동 커밋으로 조용히 바꾸지 않는다. 다음으로 동기·코루틴 API를 읽는다.