분명 이해하고 넘어갔는데, 시간이 지나니 모호해지는 개념을 바로잡고자 포스팅을 남긴다.
JPA란?
Java Persistence API의 약자로 Java ORM의 표준 기술로 객체 지향 프로그래밍 언어와 관계형 데이터베이스 사이의 불일치를 해결하기 위해 만들어졌다.
여기서 잠깐! ORM은? -> Object-Relational Mapping의 약자로 클래스와 관련 DB를 매핑한다는 것
특징
1. 기본적인 CRUD 메서드 제공 -> 데이터베이스와의 관계를 표현하기 위해 별도의 SQL을 작성하지 않아도 된다.
2. DBMS(DataBase Management System)에 종속적이지 않아서 코드의 재활용이 가능해서 객체 중심 개발이 가능하다.
3. 엔티티들과 관련된 설정 정보 데이터베이스 연결 정보나 JPA 구현체 설정 정보등을 persistence.xml 파일을 통해 설정한다.
4. 기본적인 CRUD를 제공할 뿐이라, 복잡한 쿼리를 작성하기에는 한계가 있을 수 있으며 사용하려면 알아야 할 것들이 많아 난이도가 높다.
Mybatis란?
Java 언어를 사용하여 SQL 데이터베이스와 상호작용하기 위한 오픈 소스 퍼시스턴스 프레임워크이다.
Persistence : 데이터를 다른 곳에 저장하고 사용하기 때문에 프로그램을 종료해도 데이터가 사라지지 않는 영속성
특징
1. 개발자들이 직접 SQL을 작성하고 쿼리의 결과를 자바 객체로 매핑할 수 있도록 하기 때문에 최적화된 SQL문을 작성할 수 있다. 이는 프로젝트의 규모가 커지거나 복잡한 쿼리가 많을 때는 단점이 될 수도 있다.
2. 간단한 XML 설정 파일을 통해 데이터베이스 연결 및 기타 설정을 손쉽게 관리할 수 있다.
3. SQL에 직접 접근하기 때문에 복잡한 SQL문도 사용이 가능하다.
4. SQL 매핑을 통해 동일한 쿼리를 여러 곳에서 사용할 수 있어서 코드의 재사용성이 높다.
다시 한 번 정리하고 나니 확실히 더 명확해졌다. 정리만 하지말고 머릿속에도 꼭꼭 담아두고 저장...!
'Study > Back' 카테고리의 다른 글
2023.Dec.25.Mon [Java] Optional 클래스와 메서드들 (1) | 2023.12.25 |
---|---|
2023.Dec.24.Sun [Spring] Annotation 어노테이션 (2) | 2023.12.24 |
Oct.20.Fri.2023 Java 수업 34일차 sc.next(); 와 sc.nextLine(); (7) | 2023.10.20 |
Sep.21.Thu.2023 Java 수업 19일차 JUnit (20) | 2023.09.21 |
Sep.20.Wed.2023 Java 수업 18일차 Network / TCP & UDP / Server Socket (55) | 2023.09.20 |