스프링 개발자/DB

mybatis 변천사(feat. iBATIS )

르무엘 2025. 9. 22. 19:47

MyBatis (2010년대 이후, 현재도 활발)

  • iBATIS 후속 프로젝트 (Apache → 개발자 커뮤니티 독립).
  • 철학: 여전히 “SQL은 내가 통제한다(SQL 중심)”이지만,
    • XML의 가독성 개선
    • 애노테이션 기반 Mapper 인터페이스 지원
    • CamelCase 매핑, 타입 핸들러 등 자동화 기능 강화
  • Spring과 통합이 잘 되어 있음 (MyBatis-Spring)
  • 대규모 트래픽 처리하는 전자상거래, 금융권, 공공 SI 등에서 여전히 많이 씀.

 

 

🔹 iBATIS 시대

  • iBATIS 1.x (2002~2004)
    • SQLMap 기반 단순 매핑 프레임워크.
    • Java 진영 외에도 .NET, Ruby 버전도 존재.
  • iBATIS 2.x (2004~2009)
    • XML 기반 매퍼 구조 정착.
    • 당시 국내 SI 업계에서 표준처럼 많이 사용됨.
    • 하지만 유지보수 한계 + JPA/Hibernate 부상.

🔹 MyBatis 시대 (iBATIS 후속)

  • 2010년: MyBatis 3.0 정식 출시
    • iBATIS 3.x로 계획됐으나, Apache에서 빠져나와 독립 프로젝트로 리브랜딩.
    • #{param} 문법, Mapper Interface + Annotation 지원, Spring 통합.
  • 3.1.x (2011~2012)
    • 애노테이션 매퍼 기능 강화.
    • 다양한 DB 지원 개선.
  • 3.2.x (2013~2014)
    • Java 8 호환성 강화.
    • TypeHandler 확장성 개선.
  • 3.3.x (2015~2016)
    • Stream, Lambda, Optional 같은 Java 8 기능과 궁합 맞춤.
    • Cache, Plugin API 안정화.
  • 3.4.x (2016~2018)
    • 성능 최적화, 로그 개선.
    • ResultSet 매핑 자동화 기능 확대.
  • 3.5.x (2019~2023)
    • Java 9~17 공식 지원.
    • JDK 모듈 시스템 호환.
    • MyBatis-Spring 2.x와 연동 최적화.
    • 점진적으로 버그픽스/보안패치 제공.
  • 3.6.x (2023~2024)
    • Java 21 지원 시작.
    • Kotlin, Spring Boot 3.x와 궁합 개선.
    • MyBatis Dynamic SQL, MyBatis-Kotlin 같은 서브 프로젝트 성장.
  • 3.7.x (2025 현재)
    • Java 22/23까지 호환성 대응 중.
    • Mapper XML/Annotation 혼합 사용 개선.
    • SQL 로깅/성능 모니터링 기능 강화.
    • 점점 “레거시 SI용”이 아니라, Spring Boot + JPA 보완재로 자리 잡는 중.

🔹 요약 타임라인

  • 2002~2009: iBATIS 1.x, 2.x (Apache)
  • 2010: MyBatis 3.0 (독립 프로젝트로 시작)
  • 2011~2018: 3.1 ~ 3.4 (Java 6~8 지원, 안정화 단계)
  • 2019~2023: 3.5 (Java 9~17, Spring Boot 2.x 호환)
  • 2023~2024: 3.6 (Java 21, Spring Boot 3.x 호환)
  • 2025~: 3.7 (최신 JDK 대응, 확장성 강화 중)

👉 정리하면:

  • **iBATIS → MyBatis 3.0 (2010)**에서 사실상 “새로운 프레임워크”로 거듭남.
  • 지금은 3.5.x~3.7.x 라인에서 최신 JDK + Spring Boot 3.x와 맞춰가는 게 핵심 트렌드입니다.
LIST