피드로 돌아가기
Ujorm3: New Lightweight ORM for JavaBeans and Records, Final Version
Dev.toDev.to
Database

Runtime Bytecode 생성과 Typed Key Pattern 기반의 초경량 ORM 구현

Ujorm3: New Lightweight ORM for JavaBeans and Records, Final Version

Pavel Ponec2026년 5월 18일7advanced

Context

기존 ORM의 과도한 의존성과 무거운 런타임 오버헤드로 인한 성능 저하 및 복잡성 증가 문제 발생. 특히 Reflection 기반의 데이터 접근으로 인한 런타임 비용과 타입 안정성 결여가 주요 병목 지점으로 식별됨.

Technical Solution

  • Runtime Bytecode 컴파일 기술을 통한 Handwritten code 수준의 데이터 조작 성능 확보
  • Typed Key Pattern 및 Typesafe Heterogeneous Container 구조를 적용한 Getter/Setter 대체 및 타입 안정성 강화
  • APT(Annotation Processing Tool) 기반의 Metamodel 자동 생성을 통한 Compile-time 타입 체크 구현
  • EntityManager, SelectQuery, SqlQuery로 이어지는 계층적 추상화 모델을 통해 단순 CRUD부터 복잡한 Native SQL까지 유연하게 대응
  • Binary-modified class를 배제하고 Modified attribute 리스트 기반의 Partial Update 구조를 설계하여 메모리 효율성 증대
  • M:1 관계로 한정한 Relationship 매핑 및 Lazy-loading 제거를 통한 라이브러리 풋프린트 최소화

1. Reflection 비용을 줄이기 위해 Runtime Bytecode 생성이 대안이 될 수 있는지 검토

2. 타입 안정성과 유연한 속성 접근을 위해 Typed Key Pattern 도입 고려

3. 라이브러리 설계 시 '최소한의 기능 세트'를 정의하여 복잡성을 제거하고 유지보수 수명 연장 전략 수립

4. APT를 활용한 Metamodel 생성으로 런타임 에러를 컴파일 타임으로 전이시키는 구조 설계

원문 읽기