pile·
백엔드·스포카spoqa·

Querydsl에서 Kotlin JDSL 으로

문제Querydsl이 kapt 의존성과 느린 빌드, 장기 유지보수 부재로 코틀린 코드베이스에서 부담이 되어 새로운 쿼리 빌더가 필요해졌다.

접근Exposed, Ktorm, JOOQ, JPA Criteria API를 비교한 뒤 Kotlin JDSL을 채택한다. Custom Repository 패턴으로 서비스 계층을 건드리지 않고 점진 마이그레이션하며, Helper 클래스와 Custom DSL로 반복 코드를 정리하고 페이징·잠금·fetch join 이슈를 풀어 나간다.

결과컴파일 시간이 82초에서 34초로 약 50% 줄었고 kapt를 제거해 향후 Kotlin 버전 호환 부담을 덜었다. 메타모델 없는 직관적 DSL과 JPQL 호환성 덕에 안정적으로 전환을 마쳤다.

스포카
스포카 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·네이버페이네이버페이·

    Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록

    문제Spring Data JDBC 의 Composite ID 적용을 위해 Spring Boot 3.5 → 4.0.1 업그레이드 시 Spring Batch, Kotlin, Jackson 등 전체 스택 메이저 전환 필요.

    접근Spring Boot 4 / Spring Batch 6 / Spring Framework 7 / Kotlin 2.3 / Jackson 3 / Kotest 6 / Gradle 9 / ojdbc11 순차 업그레이드. Composite ID 는 Persistable 인터페이스로 구현, JdbcDefaultBatchConfiguration 상속으로 메타데이터 저장.

    결과기술 부채 해결 + 장기 유지보수성 개선. 운영 DB 접근 정책 충돌을 사전 식별해 안정적 배포 달성.

    #kotlin#spring#spring-boot+3