- Cypher & GQL
- News
정말 기쁜 소식이에요! 새로운 Spring Data Neo4j 6.0을 발표합니다.
Spring Data Neo4j 버전 6(줄여서 SDN 6)은 이미 출시된 SDN/RX를 기반으로 만들어졌는데요, 올해 초에 공개되었죠. SDN 5(Neo4j-OGM 포함) 및 RX의 후속 버전이라고 할 수 있어요.
Spring Data 모듈은 꽤 오랜 역사를 가지고 있고, 몇 가지 중요한 변화를 겪어왔어요. 약 4년 동안 Spring Data JPA의 원칙, 즉 Spring Data를 얇은 계층으로 사용해서 기본 객체 매퍼를 조정하는 방식을 따랐죠.
Neo4j-OGM은 매우 유연하지만, 그만큼 감수해야 할 부분도 있었어요. 객체 매퍼처럼 쿼리 언어를 추상화할 뿐만 아니라, 전송 방식까지 추상화하니까요.
새로운 Spring Data Neo4j 6.0 주요 릴리스에서는 이 모든 점을 개선했어요. Spring Data 팀에서 Spring Data JDBC를 위해 진행한 훌륭한 작업에서 많은 영감을 얻어서, 2019년 3월경부터 이 노력을 시작했답니다.
SDN 6은 SDN/RX라는 사이드 프로젝트로 시작되었어요. SDN/RX로 활동하면서 고객과 얼리 어답터(JHipster 사용자 포함)로부터 피드백을 받았죠. 결국 SDN 6이 되었고, Spring One 2020에서 발표하게 되었답니다.
당신을 위한 것
전폭적인 지원, 매핑 계층에서 데이터베이스까지(Neo4j 4.x 필요)
광범위한 Neo4j Java 드라이버 포함: 버전 4.0부터 4.2 및 향후 버전까지, 따라서 Neo4j 3.5부터 4.2까지 지원합니다.
Spring Framework 및 Spring Data에 따른 JDK 8 기준이지만 다음을 사용하는 것을 포함하여 JDK 15에서도 훌륭하게 실행됩니다.도메인 클래스로.
레코드에 대해 말하자면: 매핑은 레코드 지향이므로 파이프라인 및 매핑된 데이터를 검색할 수 있습니다.. 이는 Kotlin 데이터 클래스, Java 15 레코드 및 수동으로 생성되거나 Lombok을 통해 "withers"가 있는 Java "데이터" 클래스에 적용됩니다.
Spring Data Neo4j를 사용하여 처음으로:findByExample 지원기반 방법.
우리의 소개새로운 Cypher-DSL. 우리는 이것을 내부적으로 사용하지만 이를 사용하여 사용자 정의 쿼리를 만들 수도 있습니다.
한 가지 더: 실험적인 Spring 네이티브 프로젝트 지원: Spring Data Neo4j, Cypher-DSL 및 Neo4j Java 드라이버는 다음과 같습니다.GraalVM 기본 이미지와 완벽하게 호환됨.
Neo4j 템플릿의 귀환
잘 정의된추상화 수준: SDN 6은 더 이상 데이터베이스 연결 생성을 담당하지 않습니다. 또한 내장된 데이터베이스 인스턴스를 불러올 책임도 없습니다.
SDN 빌딩 블록
드라이버를 직접 제공하거나 Spring Boot가 알아서 처리하게 할 수도 있어요. 드라이버는 원하는 대로, 트랜잭션은 필요한 방식으로 관리하면 되죠.
SDN 6은 씬 클라이언트를 드라이버 위에 제공하는데, 이 클라이언트가 매핑에 유용한 후크를 제공하길 바라요. 적어도 저희는 만족하면서 내부적으로 사용하고 있답니다. 클라이언트는 Spring의 트랜잭션 관리자와 통합되어 있어요.
클라이언트 위에는 Neo4jTemplate이 있어요. 템플릿 인스턴스는 도메인 모델에 대해 알고 있고, 를 제공하죠.
스프링 부트
더 커진 SDN용 스타터 업데이트와 함께, 순수 Neo4j Java 드라이버에 대한 구성 지원을 Spring Boot에 추가했어요. 이제 Neo4j Java Driver 종속성을 선언하고 구성해서 자체 관리되는 Driver Bean을 만들 수 있어요. spring.neo4j.* 파라미터와 함께 application.properties 파일에서 설정하면 되죠. 또한 더 나은 health endpoint 정보도 제공하고, 곧 멋진 Micrometer 메트릭 지원도 제공할 예정이에요.
임베디드에 대해 이야기해 봅시다
Neo4j 임베디드 지원에 대해 이야기해볼까요?
Neo4j-OGM은 내장된 인스턴스를 시작할 수 있을 뿐만 아니라 Graph Database API를 직접 사용할 수도 있지만, 이 방법은 권장하지 않아요. 객체 매핑 계층에서 데이터베이스를 시작하면 문제 투성이의 세상이 열리거든요.
데이터베이스가 애플리케이션에 가져오는 엄청난 양의 종속성에서 시작해서, 동일한 서비스의 여러 인스턴스 동기화를 계속하고, 종료 타이밍 문제로 끝날 수도 있어요. 특히 Kubernetes에서 뭔가 실행될 때는 작업이 빨리 종료되는 경향이 있거든요.
이러한 단점을 알고 있다면, 임베디드 Neo4j를 불러올 수 있어요. 이 내장된 인스턴스는 로컬 Bolt 연결을 열어서 SDN 6에서 사용할 수 있게 되죠.
SDN 6을 사용하려면 어떻게 해야 할까요?
되었어요. OGM 어노테이션이 Spring Data Neo4j 어노테이션으로 대체된 내용은 전용 페이지에서 확인할 수 있어요.
매핑은 좀 더 독단적이라서, 도메인 모델을 몇 군데 수정해야 할 수도 있어요.
저희는 앞으로 몇 년 동안 안정적인 프레임워크를 위한 기반을 마련했다고 생각하고, 여러분의 피드백을 기대하고 있어요.
새로운 기능과 마이그레이션에 대한 자세한 내용은 스프링 데이터 Neo4j 문서와 Spring Boot의 Neo4j 섹션에서 확인할 수 있어요. 질문이 있다면 Neo4j 커뮤니티에 문의해주세요.
Mark Paluch(Spring Data 팀 리더), Sergei Egorov(Project Reactor), Stéphane Nicoll(Spring Boot 팀)과 께 항상 피드백과 아이디어를 주셔서 감사드려요. ❤
- Cypher-DSL
- 임베디드 Neo4j
- Neo4j Java Drivers
- Reactive Programming
- Spring Data Neo4j
에이치시스템즈의 LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.
'Neo4j' 카테고리의 다른 글
| 2020 Neo4j Graphie 어워드 수상자를 발표합니다! (0) | 2026.09.17 |
|---|---|
| 공식 Neo4j GraphQL 라이브러리 1.0.0 정식 버전 출시! (0) | 2026.09.17 |
| Spring Data Neo4j 4.0 출시 발표! (0) | 2026.09.16 |
| NODES 2019 글로벌 GraphHack 개최 발표 (0) | 2026.09.16 |
| Neo4j 4.x 온라인 입문 교육 과정, 드디어 공개! (0) | 2026.09.16 |
