Develop

MyBatis 본문

백엔드/Framework

MyBatis

230801 2024. 11. 17. 23:59

안녕하세요  .ᐟ 

처음으로 앱 프로젝트 구상중인데 MyBatis-JPA-Spring Boot로 점차 업그레이드 해보려고 합니다.

해당 프레임워크들을 알아보고 각각 어떤 장단점이 있는지, 왜 바꿔야 하는지 등을 포스팅 해보겠습니다.

MyBatis

  • JDBC를 좀 더 편하게 사용할 수 있도록 객체를 SQL이나 저장 프로시저와 매핑해주는 퍼시스턴스 프레임워크(Persistence Framework)이며, 한마디로 SQL Mapper라고 할 수 있다.
  • ORM의 경우 자바 객체를 데이터베이스 테이블과 매핑을 하는데, 마이바티스는 SQL 구문을 자바 메서드와 매핑한다.

장점

  • 다른 프레임워크들에 비해 간단하다.
  • 소스코드와 SQL의 분리되어 DBA와 협업도 가능하다.(생산성, 작업분배)
  • SQL을 직접 다룰 수 있다.(복잡한 쿼리, 함수, 저장 프로시저 등)

왜 JPA로 바꿔야 하는가?

  • 생산성 (MyBatis에서 했던 반복적인 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다.)
    • ex) Order, Items, OrderItem 테이블에서 각각 insert, update, delete 쿼리를 작성하지 않아도 된다.
  • 유지보수의 편리성
    • Item class에 category 필드가 새롭게 추가된 경우 MyBatis 이용 시 추가 된 컬럼 각각에 대해 insert, update, delete 각각 SQL문에 추가/수정된 컬럼을 일일이 수정해줘야 된다.
    • JPA를 이용 시 JPA가 관리하는 엔터티에만 수정해주면 알아서 CRUD관련된 쿼리를 작성해주기 때문에 반복작업을 하지 않아도 된다.
    • Spring Data JPA를 사용하면 interface 선언 만으로 쿼리 구현이 가능하기 때문에 관리 도구 등 에서 가볍게 사용할 수 있는 CRUD 쿼리를 손쉽게 대처할 수 있다.
  • 데이터 접근 추상화와 벤더 독립성
    • 데이터베이스 벤더(오라클, MySQL) 마다 데이터 타입이나 SQL 작성방법이 다른데, JPA를 이용하면 손쉽게 해결할 수 있다.
  • SQL 중심개발에서 객체 중심 개발로 변경 가능
    • JPA는 객체와 관계형데이터베이스 사이의 패러다임 불일치로 발생하는 문제(상속, 연관관계, 객체 그래프 탐색 등)를 해결할 수 있다.

 

출처 : NHN Cloud 유튜브, [2018] MyBatis에서 JPA로,  https://www.youtube.com/watch?v=XQZY0yN9gz0

'백엔드 > Framework' 카테고리의 다른 글

JPA  (3) 2024.11.18