com.byeolnaerim:reactive-mongo-dsl
MongoDB가 처음이었던 개발자의 작은 조회 helper에서 시작해, 실제 Java 프로젝트에서 필요했던 query, aggregation, lookup, 원자 업데이트, bulk, Atlas Search와 Vector Search를 하나의 작업 흐름으로 쌓아 온 라이브러리입니다.
MongoDB의 기능은 그대로, 익숙해지는 데 드는 비용은 더 작게
ReactiveMongoDsl<K>는 MongoDB를 RDBMS처럼 보이게 만들기 위한 라이브러리가 아닙니다. MongoDB와 Atlas가 제공하는 기능을 그대로 사용하되, 처음 사용하는 개발자도 동적 조건, aggregation, lookup, bulk와 원자 업데이트를 같은 흐름에서 더 빠르게 작성할 수 있도록 만든 도구입니다.
처음에는 Query, Criteria와 paging만 다루는 작은 조회 helper였습니다. 실제 프로젝트에서 필요한 기능을 하나씩 추가하면서 현재는 일반 조회부터 Atlas Search와 Vector Search까지 제가 Java 프로젝트에서 반복해서 사용하는 MongoDB 작업 대부분을 다루게 되었습니다.
익숙한 진입점
대상 entity와 template key를 선택한 뒤 조건과 실행 방식을 이어 붙입니다. MongoDB 작업마다 서로 다른 helper를 찾지 않아도 됩니다.
운영에서 추가된 기능
원자 업데이트, 업무 키 bulk upsert, lookup+count처럼 실제 프로젝트에서 반복된 문제를 중심으로 기능이 확장되었습니다.
Atlas까지 이어지는 흐름
일반 query뿐 아니라 Atlas Search와 Vector Search도 별도의 명확한 builder 흐름으로 제공합니다.
이 라이브러리가 중요하게 생각하는 것
실제 문제에서 시작합니다
미리 거대한 추상화를 설계한 것이 아니라 프로젝트에서 불편했던 작업을 해결하면서 기능이 만들어졌습니다.
MongoDB 기본 기능과 함께 사용합니다
DSL이 적합한 작업에는 DSL을 사용하고, 더 세밀한 제어가 필요하면 ReactiveMongoTemplate이나 MongoDB driver로 내려갈 수 있습니다.
팀의 생산성을 우선합니다
한 명만 익숙한 쿼리 작성 방식보다, MongoDB가 처음인 개발자도 같은 패턴으로 작업할 수 있는 흐름을 우선했습니다.