본문 바로가기
Programming/개발 공부

MyBatis와 JPA 차이 및 JPA 사용 이유

by 오늘 하루s 2024. 6. 18.
728x90

MyBatis

  • 특징
    • SQL을 직접 작성하여 데이터베이스와 상호 작용
    • SQL 매핑 파일(XML)을 사용하여 SQL 쿼리와 자바 메서드를 매핑
  • 장점
    • SQL을 직접 작성하기 때문에 개발자가 데이터베이스 작업에 대한 세부적인 제어를 할 수 있음
    • 복잡한 쿼리나 데이터베이스 작업이 많은 경우 성능을 튜닝하기 용이
  • 단점
    • SQL을 직접 작성하고 매핑하기 때문에 개발자가 많은 코드를 작성해야 함
    • 객체-관계 매핑(ORM)을 사용하지 않기 때문에 데이터베이스와 객체 간의 매핑 작업이 번거로움

 

JPA (Java Persistence API)

  • 특징
    • 객체와 관계형 데이터베이스 간의 매핑을 처리하는 ORM 프레임워크
    • 개발자가 직접 SQL을 작성할 필요가 없으며, 엔티티 클래스와 어노테이션을 사용하여 데이터베이스를 매핑
  • 장점
    • SQL을 직접 작성하지 않고 객체 중심으로 프로그래밍 할 수 있어 개발 생산성을 높임
    • 객체와 데이터베이스 간의 매핑이 자동으로 처리되므로 데이터베이스 변경에 대한 유연성이 높아짐
    • JPQL을 사용하여 객체 지향적인 방식으로 쿼리를 작성할 수 있음
  • 단점
    • 복잡한 쿼리나 성능 튜닝이 필요한 경우에는 MyBatis보다 유연성이 떨어질 수 있음
    • ORM이 제공하는 기능에 의해 성능 저하가 발생할 수 있음
  • JPA 사용 이유
    • 객체 중심 프로그래밍 : 객체와 데이터베이스 간의 매핑을 처리하므로 객체 중심 프로그래밍 가능
    • 높은 생산성 : SQL을 직접 작성하지 않아도 되므로 개발 생산성 향상
    • 유지보수성 향상 : 데이터베이스 변경 시 매핑 설정만 업데이트하면 되므로 유지 보수 간편
    • 코드 재사용 : 많은 부분을 자동으로 처리하므로 코드 재사용 가능
728x90

'Programming > 개발 공부' 카테고리의 다른 글

[Localtunnel] local 서버 외부 공유하기  (0) 2024.07.25
[ngrok] local 서버 외부 공유하기  (0) 2024.07.23
Http Only Cookies  (0) 2024.06.12
Https 개발 환경 세팅  (0) 2024.06.10
REST API  (1) 2023.12.30