[Mybatis] 개념

혜쿰·2023년 8월 31일
0
post-thumbnail

📌 개념

Mybatis는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.
자바는 jdbc api를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재하고, 한 파일에 java와 sql 두가지 언어가 사용되어 재사용성이 떨어지는 단점이 있다.
Mybatis는 jdbc의 이러한 점을 보안해서 개발자가 작성한 SQL 명령어와 자바 객체를 매핑해 주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용할 수 있다.

📕 장단점

장점

1️⃣ 쉬운 접근성과 코드의 간결함
  • jdbc의 모든기능을 Mybatis가 지원하기 때문에 jdbc의 복잡한 코드를 걷어내고 깔끔한 소스코드를 유지할 수 있다.
  • 배우기 쉽다.

2️⃣ 성능과 생산성

  • jdbc에 비해 62% 정도 코드가 줄어들고 설정도 간단하다.
  • sql에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일할 필요가 없다.
  • 데이터 접근 속도를 높여주는 Join 매핑(구조적 강점) , SQL를 직접작성하므로 최적화된 쿼리 구현이 가능하다.
  • 엔터티에 종속받지 않고 다양한 테이블을 조합할 수 있다.
  • 관심사를 분리해서 유지보수성을 향상시킬 수 있고 리소스를 관리하여 계층화를 지원한다.
  • 작업의 분배가 용이하여 팀을 세분화하는 것을 도울 수 있다.

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

  • java,c#,net,ruby 등 어떤 프로그래밍 언어로도 구현 가능하다. 이를 이식성이라고 한다.

4️⃣ 오픈소스이며 무료

단점

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

2️⃣ 어플리케이션과 데이터베이스간의 설계에 대한 부분을 수정해야하는 경우 많은 설정이 바뀌어야 한다.

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

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

Mybatis를 사용하는 데이터 엑세스 계층 흐름도

참고 자료
https://mybatis.org/mybatis-3/ko/index.html https://data-study-clip.tistory.com/172 https://shlee0882.tistory.com/205 https://typeorm.io/active-record-data-mapper#what-is-the-active-record-pattern

1개의 댓글

comment-user-thumbnail
2023년 9월 3일

와 정리 잘되어있네요, 잘 보고 갑니다

답글 달기