실제 DB를 띄워보고 브라우저 + 고언어 드라이버를 이용해 쿼리를 날려보자.
Neo4j Aura 에 들어가 계정을 생성하자. 위에서 살펴봤듯이 제공되는 클라우드 서비스이다. Free를 사용하기에 비용 부담은 없다.
Free를 선택해주자.
이와 같은 창이 뜬다. 모달창을 끄지말자.
username, password가 나오는데 이를 꼭 기억해두자.
다운로드할 수도 있다.
몇 분 지나면 인스턴스가 생성된다. 참고로 굳이 aura를 이용해서 인스턴스를 만들지 않더라도 도커나 쿠버네티스를 활용할 수도 있다.
(만들어진 모습)
Open 버튼을 눌러 위와같은 모달창으로 이동한다.
비밀번호만 잘 입력해주면 접속할 수 있다.
상단의 커맨드를 비롯해 접속된 것을 확인할 수 있다.
CREATE (p:Person {name: "khal", age: 42}),
(v:Person {name: "neria", age: 25}),
(h:Person {name: "huchi", age: 17})
보이는 커맨드창에 위와같은 싸이퍼 쿼리를 날렸다.
MATCH (p:Person) RETURN p;
이후 위와 같은 쿼리를 날린다면
그래프가 조회되는 것을 확인할 수 있다.
테이블로써도 확인이 가능하다.
Build applications with Neo4j and Go - Neo4j Go Driver Manual 링크를 참조하자.
간단한 App을 만들고,
package main
import (
"context" "github.com/neo4j/neo4j-go-driver/v5/neo4j")
func main() {
ctx := context.Background() // URI examples: "neo4j://localhost", "neo4j+s://xxx.databases.neo4j.io" dbUri := "<URI for Neo4j database>" dbUser := "<Username>" dbPassword := "<Password>" driver, err := neo4j.NewDriverWithContext( dbUri, neo4j.BasicAuth(dbUser, dbPassword, "")) defer driver.Close(ctx)
err = driver.VerifyConnectivity(ctx) if err != nil { panic(err) }}
에 복사해두었던 정보들(uri, user, pw)를 입력하면 된다.
실행해보면 에러가 안나는 것을 확인할 수 있다.
이전에 만들었던 데이터들을 조회해보자.
// Get the name of all 42 year-olds
result, _ := neo4j.ExecuteQuery(ctx, driver,
"MATCH (p:Person {age: $age}) RETURN p.name AS name", map[string]any{ "age": 42, //예제에는 "42", 여기는 42 }, neo4j.EagerResultTransformer, neo4j.ExecuteQueryWithDatabase("neo4j"))
// Loop through results and do something with them
for _, record := range result.Records {
fmt.Println(record.AsMap())}
// Summary information
fmt.Printf("The query `%v` returned %v records in %+v.\n",
result.Summary.Query().Text(), len(result.Records), result.Summary.ResultAvailableAfter())
기본 예제에 있던 코드를 조금 수정한 위 코드를 실행하면
map[name:khal]
The query `MATCH (p:Person {age: $age}) RETURN p.name AS name` returned 1 records in 4ms.
라는 출력 결과가 나타남을 확인할 수 있다.