본문 바로가기
인프런 강의/실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA vs MyBatis

by 해삼2 2024. 1. 10.
728x90
반응형
JPA
JPA란

 

ORM(Object-Relational Mapping) 기술: 

JPA는 객체와 관계형 데이터베이스 간의 매핑을 지원합니다. 

이는 객체지향 프로그래밍과 관계형 데이터베이스 간의 불일치를 해결하고 객체 지향적인 코드 작성을 

용이하게 합니다.


표준화된 인터페이스: 

JPA는 자바 진영에서 표준으로 채택된 기술이며, Java Persistence API 표준 명세를 따르고 있습니다. 

이는 여러 JPA 구현체에서 동일한 코드를 사용할 수 있도록 합니다.


자동 생성된 쿼리: 

JPA는 쿼리를 작성하지 않고도 객체와 데이터베이스 간의 매핑을 통해 쿼리를 자동으로 생성할 수 있습니다.

 

MyBatis란

 

SQL 매핑 기반: 

MyBatis는 SQL 쿼리를 직접 작성하고 매핑하는 방식을 채택합니다. 

SQL을 직접 작성하므로 개발자가 직접 쿼리를 최적화하거나 튜닝할 수 있습니다.


유연한 쿼리 작성: 

MyBatis를 사용하면 복잡한 쿼리를 더 쉽게 작성할 수 있습니다. 

동적인 쿼리를 효과적으로 다룰 수 있습니다.


경량 프레임워크: 

MyBatis는 경량 프레임워크로서 설정이 간단하고 학습 곡선이 낮습니다.

 


어떤 기술을 선택할지는 프로젝트의 특성과 개발자의 선호도에 따라 다릅니다. 

JPA는 객체지향적인 코드를 선호하고 자동화된 기능을 활용하고자 하는 경우에 적합하며,

MyBatis는 SQL 쿼리를 직접 작성하고 최적화하고자 하는 경우에 적합합니다.

 

JPA 프레임워크
Hibernate

객체-관계 매핑(Object-Relational Mapping): 

Hibernate는 자바 객체와 데이터베이스 테이블 간의 매핑을 자동으로 처리해줍니다. 

이를 통해 개발자는 SQL을 직접 다루지 않고도 객체 지향 코드로 데이터베이스를 다룰 수 있습니다.

데이터베이스 독립성: 

Hibernate는 다양한 데이터베이스 시스템에 대한 독립성을 제공합니다. 

개발자가 특정 데이터베이스에 의존하는 SQL을 작성하지 않아도 되며, 

Hibernate가 데이터베이스와의 상호 작용을 추상화하여 다양한 데이터베이스를 지원합니다.

자동 쿼리 생성 및 최적화: 

Hibernate는 객체를 데이터베이스에 저장하거나 조회할 때 필요한 쿼리를 자동으로 생성하고 

최적화합니다. 

이를 통해 개발자는 쿼리 작성에 대한 부담을 줄일 수 있습니다.

 

Hibernate는 JPA를 사용하기 위한 프레임워크입니다. 


ORM이란

 

ORM은 Object-Relational Mapping의 약자로, 객체와 관계형 데이터베이스 간의 매핑을 지원하는

프로그래밍 기술입니다.

이는 객체 지향 프로그래밍 언어에서 사용되는 객체 모델과 관계형 데이터베이스에서 사용되는

테이블 모델 간의 불일치를 해결하기 위해 도입되었습니다.

관계형 데이터베이스는 테이블, 행, 열로 이루어진 구조를 가지며, 객체 지향 프로그래밍은 클래스, 객체,

상속 등의 개념을 사용합니다.

이러한 두 모델 간의 차이로 인해 객체를 데이터베이스에 저장하거나 데이터베이스에서 객체를 가져오는

일이 복잡해질 수 있습니다.

여기서 ORM이 개입하여 이러한 복잡성을 줄여줍니다.

 

 

*바쁜 사람을 위한 정리

orm이란 것은 데이터베이스와 객체간의 매핑을 지원해주는것이며 여기서 JPA는 알아서 쿼리 생성해주어서
객체만 수정하는 효과가 있고MYBATIS는 우리가 쿼리를 직접 사용해서 조절하는 차이로 이해하면 될거 같습니다.
또한 JPA는 Hibernate를 이용해 데이터베이스와 자바 객체 간의 매핑을 쉽게 설정 해줄수 있습니다.


 

728x90
반응형