MyBatis 설정은 application.yml을 통해 스프링 부트 환경에 맞게 구성하며, 기존 XML 중심의 공식 매뉴얼과의 간극을 메우는 데 중점을 둡니다. 🌉
mybatis.mapper-locations는 SQL 쿼리가 담긴 XML 파일의 위치를 지정하는 핵심 설정으로, 일반적으로 classpath*:/mapper/**/*.xml 패턴을 사용합니다. 🗺️
mybatis.configuration.settings는 마이바티스의 다양한 동작 옵션을 제어하며, 특히 map-underscore-to-camel-case는 데이터베이스의 스네이크 케이스 컬럼명을 자바 객체의 카멜 케이스 필드에 자동으로 매핑하여 개발 편의성을 크게 높여줍니다. 🐍➡️🐪
jdbc-type-for-null 옵션은 JDBC NULL 값을 처리하는 방식을 정의하지만, PostgreSQL 테스트 결과 VARCHAR, NULL, OTHER 모두 자바에서 null로 인식되어 대부분의 RDB에서는 필수적이지 않을 수 있습니다. 🤷
mybatis.configuration.type-aliases-package는 엔티티 클래스가 위치한 패키지를 지정하여 resultType에 전체 경로 대신 클래스명만으로 타입을 명시할 수 있게 해주며, 마이바티스는 내부적으로 소문자로 처리하지만 대소문자 모두 허용됩니다. 🏷️
mybatis.configuration.type-handlers-package는 JDBC 타입과 자바 타입 간의 변환을 담당하는 타입 핸들러의 패키지를 지정합니다. 마이바티스는 대부분의 기본 변환을 제공하며, 필요시 BaseTypeHandler를 확장하여 커스텀 핸들러를 구현할 수 있습니다. 🔄
결론적으로, 스프링 부트에서 마이바티스 설정을 할 때 가장 유용하고 필수적인 옵션은 mapper-locations, map-underscore-to-camel-case, 그리고 type-aliases-package입니다. ✨