Mybatis/MyBatis 소개 및 환경 설정

MyBatis란 무엇인가?

DEVLIB 2025. 4. 16. 16:38
728x90

MyBatis란 무엇인가?

개념 정의

MyBatis는 자바 애플리케이션에서 SQL을 직접 작성하면서도, 객체 지향적으로 데이터베이스와 연동할 수 있도록 도와주는 **퍼시스턴스 프레임워크(Persistence Framework)**입니다.

즉, JDBC보다 더 편하고, JPA보다 더 직관적인 SQL 중심의 데이터 액세스 프레임워크라고 볼 수 있습니다.


주요 특징

특징
설명
SQL을 직접 제어 개발자가 SQL을 직접 작성하므로, 쿼리 최적화나 복잡한 SQL 작성이 용이합니다.
Mapper 기반 구조 XML 또는 어노테이션 기반의 Mapper 인터페이스를 통해 SQL을 매핑합니다.
ORM 아님 JPA나 Hibernate처럼 완전한 ORM은 아니지만, 객체 매핑 기능은 일부 제공합니다.
경량 프레임워크 설정이 간단하고, 필요한 기능만 최소한으로 제공합니다.
Spring과 잘 통합됨 Spring Boot와 쉽게 연동할 수 있으며, 설정이 간편합니다.

MyBatis가 필요한 이유

JDBC의 문제점

  • 매번 Connection, PreparedStatement, ResultSet을 직접 작성해야 함
  • 코드 반복이 많고 가독성이 떨어짐
  • SQL과 자바 코드가 혼합되어 유지보수 어려움

MyBatis의 장점

  • SQL을 외부 파일(XML) 또는 어노테이션으로 분리해 관리
  • 객체 자동 매핑 (resultType, resultMap)
  • 재사용 가능한 SQL 블록(sql 태그) 지원
  • 깔끔한 구조로 유지보수 편리

간단 예제

Mapper XML 예시:

<select id="selectUser" resultType="User">
  SELECT * FROM users WHERE id = #{id}
</select>

 

Java 인터페이스:

public interface UserMapper {
  User selectUser(int id);
}

 

사용 예시:

User user = userMapper.selectUser(1);

언제 사용하면 좋을까?

  • SQL 튜닝이 중요한 대규모 시스템
  • 복잡한 쿼리가 많고 SQL을 직접 관리하고 싶을 때
  • JPA의 자동 쿼리 생성 방식이 불편하거나 느릴 때

 

LIST