Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

발전하는 개발자가 되자

Mybatis 와 JPA 비교 본문

개발공부/Spring

Mybatis 와 JPA 비교

백경훈 2019. 4. 12. 17:58

Mybatis 와 JPA

  • Mybatis 특징
  • JPA 특징

Mybatis

JDBC 를 좀더 편하게 사용할 수 있도록 객체를 SQL 이나 저장 프로시저와 매핑 해주는 퍼시스턴스 프레임워크 SQL 구문을 java 메소드와 매핑해준다.

장점

  • 다른 프레임워크에 비해 간단하다.
  • 소스 코드와 SQL 의 분리 (생산성, DBA와의 협업)
  • SQL을 직접 다뤄 복잡한 쿼리 작성, SQL 함수나 저장 프로시저를 자유롭게 이용가능

단점

  • 반복적인 코드와 CRUD SQL 작업
  • SQL과 데이터베이스 벤더에 대한 종속성(오라클에서 mySQL 로 바꾸면 함수들을 바꿔줘야한다.)

ORM(JPA)

자바 객체를 데이터테이블과 매핑시킨다.
ORM : 데이터베이스 객체를 자바 객체로 매핑하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성
JPA : 자바 진영의 ORM 표준 기술

장점

  • 생산성 CRUD 같은 간단한 쿼리는 자동으로 된다.
  • entity 에 추가 속성이 생기면 Mybatis 의 경우 쿼리에 각각 다 추가해줘야하지만 JPA는 Entity에 속성만 추가 시켜주면 된다.
  • 데이터 접근 추상화 벤더 독립성
  • SQL 중심적인 개발에서 객체 중심으로 개발가능

단점

  • 상대적으로 높은 학습 곡선
  • 복잡한 쿼리작성의 어려움
    • JPQL을 통해 해결가능
    • Native SQL로 직접 작성가능
    • mybatis 와 혼용가능

결론

JPA를 사용하면 mybatis 를 사용할 때 보다 아래 그림과 같이 중복을 제거할 수 있다.


그리고 더 나은 객체지향적 설계가 가능하다.
하지만 학습비용이 높다. 그러므로 아직은 mybatis와 JPA를 혼용 하면서 좀더 나은 코드로 발전시키면 될 것 같다.

참고

https://www.youtube.com/watch?v=XQZY0yN9gz0

Comments