2023. 1. 27. 16:58ㆍSpring
https://thefif19wlsvy.tistory.com/249
JDBC, JPA, Mybatis 차이점
들어가기 앞서 영속성에 대한 이해가 필요하다. 영속성(Persistence) 1. 데이터를 생성한 프로그램이 종료되더라도 사리지지 않는 데이터의 특성을 말한다. 2. 영속성을 갖지 않는 데이터는 단지 메
thefif19wlsvy.tistory.com
먼저 영속성에 대해 알아보자
영속성은 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다.
영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버리게된다.
그래서 데이터베이스를 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다.
Persistence Layer는 프로그램의 아키텍처에서 데이터에 영속성을 부여해주는 계층이다.
JDBC를 직접 이용하여 구현이 가능하지만 Persistence Framework를 이용한 개발을 많이 한다.
Persistence Framework는 SQL Mapper와 ORM으로 나뉜다.
SQL Mapper는 직접 데이터베이스를 다룬다. SQL을 명시해줘야한다(Mybatis,jdbcTemplates)
ORM은 객체를 통해 간접적으로 데이터베이스를 다룬다, 객체과 RDBMS의 데이터를 자동으로 매핑하준다(JPA,Hibernates)
그렇다면 JDBC는 무엇인가
Java Database Connectivity의 약자로 DB에 접근할수 있도록 Java에서 제공한 API다.
Persistence Framework는 내부적으로 JDBC API를 사용한다.
JPA는 무엇인가
JPA는 ORM을 사용하기 위한 표준 인터페이스를 모아둔 것이다.
EJB에서 제공되던 엔티티빈을 대체하는 기술이다.
javax.persistence와 JPQL 메타데이터로 구성되어있다.
Mybatis는 무엇인가
개발자가 지정한 SQL 저장프로시저 그리고 몇가지 고급매핑을 지원하는 SQL Mapper이다.
JDBC로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 매핑을 대신 해준다.
데이터베이스 record원시타입과 Map인터페이스 그리고 자바 POJO를 설정해서 매핑하기 위해
xml과 Annotation을 사용할 수 있다.
SQL에 대한 모든 컨트롤을 하고자 할때 매우 적합하다. SQL쿼리들의 최적화가 잘 되어있을 떄 유용하다
.
우리 회사는 MyBatis를 사용하니까 아무래도 SQL에 대해 더 깊은 공부를 해야할 것 같다.
'Spring' 카테고리의 다른 글
Service와 ServiceImpl을 따로 두는 이유는 뭘까? (0) | 2023.02.20 |
---|---|
Maven VS Gradle (0) | 2023.02.01 |
DTO vs Model vs Entity (0) | 2023.01.27 |
Model (0) | 2023.01.27 |
model.addAttribute() 메소드 (0) | 2023.01.27 |