프로젝트 소개

스톰은 Kotlin 2.0 이상과 Java 21을 대상으로 하며 타입 안전성과 SQL 친화성을 강조하는 현대적인 ORM입니다. 엔티티는 기본 키와 외래 키를 위한 애너테이션이 적용된 간단한 Kotlin 데이터 클래스나 Java 레코드로 구성됩니다. 컴파일 타임 메타모델 생성기는 안전한 쿼리 DSL을 생성하여 개발자가 SQL과 동일한 구조의 타입 검사된 쿼리를 작성할 수 있도록 지원합니다. 이 설계는 전통적인 ORM의 문제점을 피하도록 설계되었습니다: 프록시 객체가 없고, N+1 지연 로딩이 없으며, 영속성 컨텍스트도 없고, 불변 레코드가 상태 관리를 단순화합니다. 스톰은 방언 모듈을 통해 여러 데이터베이스를 지원하며 JSON 컬럼, 트랜잭션, 배치 작업을 지원하고 Spring Boot, Ktor, 테스트 프레임워크와 통합됩니다. 이 프로젝트는 설정을 위한 Gradle 플러그인, 광범위한 문서, 예제 애플리케이션을 제공합니다. 또한 AI 기반 개발 도구와 스키마 생성을 위한 CLI도 제공합니다. 스톰의 철학은 객체 모델을 데이터베이스 모델과 일치시키는 것으로, 필요한 경우 사용자 정의 매핑을 허용하면서도 설정보다 규약을 우선하는 방식을 제공합니다.