스프링 데이터(Spring Data) 2026.0.0-M1 출시: 타입 안전 속성 경로 지원!
스프링 데이터(Spring Data) 2026.0.0 릴리즈의 첫 번째 마일스톤(Milestone) 버전 출시
타입 안전 속성 경로(Type-Safe Property Paths) 지원으로 문자열 기반 프로그래밍(Stringly-typed Programming) 감소
스프링 데이터 커먼즈(Spring Data Commons) 4.1 M1 및 여러 모듈에서 타입 안전 속성 경로 사용 가능
향상된 기능, 버그 수정, 의존성 업데이트(Dependency Upgrades) 포함
타입 안전 속성 경로(Type-Safe Property Paths)의 도입 배경
스프링 데이터(Spring Data) 2026.0.0-M1은 타입 안전 속성 경로(Type-Safe Property Paths) 지원을 통해 기존 문자열 기반 속성 참조의 문제점을 해결한다. 기존 방식은 오타(Typo) 발생 시 컴파일 타임(Compile Time)에 오류를 감지할 수 없어 런타임(Runtime)에서 예외가 발생했다.
유지보수성(Maintainability) 향상: 리팩토링(Refactoring) 시 컴파일러(Compiler)가 속성 변경을 감지하여 안전하게 코드 변경 가능
생산성 증대: IDE 자동 완성(Auto-completion) 지원으로 개발 생산성 향상
오류 감소: 런타임 오류(Runtime Error)를 컴파일 타임(Compile Time)에 발견하여 안정성 확보
타입 안전 속성 경로(Type-Safe Property Paths) 사용법
스프링 데이터(Spring Data)는 자바(Java)와 코틀린(Kotlin)에서 타입 안전 속성 경로(Type-Safe Property Paths)를 지원하며, 람다 표현식(Lambda Expression)을 활용하여 속성을 참조한다.
자바(Java) 예시: `PropertyPath.of(Person::getName)`
코틀린(Kotlin) 예시: `PropertyReference.of(Secret::secret)`
중첩된 속성(Nested Properties) 접근: `Person::getAddress / Address::city`와 같이 중첩된 속성도 안전하게 참조 가능
정렬(Sorting) 기능: `Sort.by(Person::getFirstName, Person::getLastName)`과 같이 정렬 시에도 타입 안전하게 속성 지정
이러한 방식을 통해 개발자는 타입 안정성(Type Safety)을 확보하면서도 가독성(Readability)을 높일 수 있다.
스프링 데이터(Spring Data) 모듈별 지원 현황
스프링 데이터(Spring Data)는 다양한 모듈에서 타입 안전 속성 경로(Type-Safe Property Paths)를 지원하며, 쿼리(Query) 및 업데이트(Update) API에서 활용 가능하다.
스프링 데이터 카산드라(Spring Data Cassandra): 쿼리(Query), Criteria, Update API
스프링 데이터 JDBC 및 R2DBC: Criteria, Update API
스프링 데이터 JPA: Expressions 유틸리티(Utility)를 통한 CriteriaBuilder API 개선
스프링 데이터 몽고DB(Spring Data MongoDB): 쿼리(Query), Criteria, Update API
각 모듈은 타입 안전 쿼리(Type-Safe Query) 구축을 지원하여 개발 생산성을 향상시킨다.