본문 바로가기

백엔드 개발/플젝 리팩토링

02. [Mybatis에서 JPA로] 내가 Mybatis를 쓴 이유

내가 개발한 프로젝트마다 Mybatis가 쓰였던 이유?

 

내가 개발한 프로젝트는 교육기관에서 팀원들과 함께 개발한 웹 어플리케이션, 전자정부프레임워크를 활용한 공공 SI 프로젝트정도였다. 공통점이 한 가지 있는데, 세 개의 프로젝트 다 Mybatis를 사용했다는 것이다. Mybatis를 왜 주로 썼던걸까? 사실 생각해보면 그냥 "마이바티스 쓰자~" , "세팅은 마이바티스로 하신다는데요?" 해서 썼던 기억이 난다.

다시 돌아보니 개발하는 데에 있어서 하나하나 왜 이걸 쓰게됐고, 이걸 사용함에 따라 어떠한 제약이 있었고, 그로 인해서 어떠한 것을 깨달았는지가 매우 중요하다는 걸 알게 되었다. 그리고 다년간 우리나라에서 Mybatis가 수요되어 온 어떠한 구체적인 사유도 있을 것 같아서 그 이유를 알아보고 싶어졌다.

 

 

Mybatis란?

JDBC를 조금 더 편하게 사용할 수 있도록 객체를 sql이나 저장 프로시저와 매핑해주는 퍼시스턴스 프레임워크이다. 한마디로 SQL mapper인 것이다. 

 

- ORM과의 비교 : ORM은 java 객체를 관계형 데이터베이스(ERD)와 매핑하는 것

이에 반해, Mybatis는 SQL 구문과 java 메서드를 매핑한다. 그래서 Mybatis의 경우에는 SQL 구문을 직접 작성할 줄 알아야 한다.

 

Mybatis의 장점

  • 다른 프레임워크들에 비해 간단하다
  • 소스 코드와 SQL의 분리 (생산성, 작업 분배 가능)
  • SQL을 직접 다룰 수 있다 (특징이자 장점 / 조금 더 심화가 필요한 쿼리, 함수, 저장 프로시저 등)

아니 그러면 왜? 왜? JPA로 점점 옮겨가야하는 걸까?