길고 긴 방황을 끝내고 회사에 첫 출근을 했다.

앉아서 팀장님과 커피챗을 나누고 있는데, 마이바티스에 대한 이야기가 나왔다.

"저는 프로젝트 할 때 ORM으로 마이바티스 대신 JPA를 써서요" 라고 했더니 돌아오는 답변

"마이바티스는 ORM이 아닌데?"

"?????"

백엔드 공부를 얼마 하지 않은 입장에서 [프레임워크 + 프로젝트 관리 도구 + ORM]의 한 세트를

'Spring + Maven + MyBatis'와 'Spring Boot + Gradle + JPA'로 이해하고 있었다.

 

글을 읽는 사람도, 나도 하도 많이 들어서 다음 3가지는 알고 있을 것이다.

- JPA는 자바 진영의 ORM 표준이고, 이를 구현한 것이 Hibernate이다.

- ORM은 OOP를 지향하는 언어와 DB의 relation을 맺어주는 기법이다.

- Gradle은 Maven보다 현저히 빌드 속도가 빠르고 스크립트가 짧다.

 

이렇게 현대의 김영한님 강의를 듣고 자란 사람들이나 국비교육이 아닌 사비 부트캠프를 다닌 사람은 보통 jpa, gradle, spring boot에 대해서는 이해도가 높지만, 반대로 maven+mybatis를 이해하는 경우는 잘 없다.

 

일단 mybatis는 ORM이 아니다. myBatis는 SQL 매핑 프레임워크다.

JPA와 비슷하지만, 객체를 매핑해준다기보다 SQL안에 객체의 프로퍼티들을 잘 넣을 수 있게 한다.

JPA도 동적 쿼리를 지원하지만, myBatis는 조금 더 세밀한 쿼리 튜닝을 가능하게 한다.

 

다음에는 myBatis를 이용한 쿼리튜닝을 포스팅을 해야겠다.

 

 

'DB' 카테고리의 다른 글

DOCKER로 MySQL 다루기  (0) 2023.08.24
POSTGRESQL - RDB  (0) 2023.08.19
POSTGRESQL - 분노의 설치  (0) 2023.08.19

+ Recent posts