Mybatis를 왜사용하는걸까? Mybatis 장단점 정리

Mybatis

Mybaits는 자바 Object와 SQL 사이를 자동으로 매핑해주는 기능을 지원하는 영속성(Persistence) 프레임워크이다.

 

Mybatis의 장점

1. 쉬운 접근성과 코드의 간결함

- jdbc의 모든기능을 Mybattis가 제공하고 있기에 복잡한 jdbc코드를 걷어내고 깔끔한 소스코드를 유지할 수 있다.

- 간단한 persistence framwork. 배우기가 쉽다.

- 생산성 : 62%정도 줄어드는 코드, 간단한 설정

 

2. 성능과 생산성

- sql에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일할 필요가 없다.

- 성능 : 데이터 접근 속도를 높여주는 Join 매핑(구조적 강점) , SQL를 직접작성하므로 최적화된 쿼리 구현가능

- 엔터티에 종속받지 않고 다양한 테이블을 조합할 수 있음.
- 관심사의 분리 : 설계를 향상 (유지보수성) 리소스를 관리하여 계층화를 지원
(Connection, PreparedStatement, ResultSet)

- 작업의 분배 : 팀을 세분화하는 것을 도움

 

3. 다양한 프로그래밍언어로 구현가능

- 이식성 : Java, C#, .Net, Ruby 등 어떤 프로그래밍 언어로도 구현 가능

 

4. 오픈소스이며 무료

 

 

MyBatis의 단점

  Mybatis는 SQL을 별도의 XML파일로 분리해서 관리하며 개발자가 Native SQL 코드를 작성하고 그 결과를 객체와 매핑하는 것까지 직접처리해준다. 이 작업이 완벽하게 이루어져야 그나마 작업하기가 수월해진다.

하지만

 

1.  테이블이 변경되고 DTO가 변경될 때마다 매핑에 대한 부분을 다시 수정해야하는 번거로움이 존재한다.

 

2.  1과 같은 이유로 어플리케이션과 데이터베이스간의 설계에 대한 부분을 수정해야하는 경우

      많은 설정이 바뀌어야 한다.

 

3. 런타임을 해야 오류를 확인할 수 있다.

 

4. 데이터베이스 변경시 로직도 함께 수정해야한다.