회사에서 iBatis, MyBatis만 사용해봐서 JPA를 다뤄보고 싶었다. 그래서 알아보다가 JPA를 다루기 위해선 ORM부터 뭔지 알아야겠다 싶었다. 그래서 정리하러왔다 하하
먼저, JPA(Java Persistence API)는 Persistence라는 단어가 포함돼있다.
Persistence부터 알아보자
데이터를 생성하는 프로그램이 있다고 치자.(파일시스템, DB ...)
이 프로그램을 껐을 때 데이터도 같이 날라가면 대형사고다.
데이터를 생성한 프로그램을 종료해도 데이터가 사라지지 않도록 하는 특성을 영속성이라고 한다.
데이터에 영속성을 부여하는 방법은 여러가지가 있다. 파일시스템, DB 등등..
나는 여기서 DB에 관해서 적어보려 한다.
데이터를 DB에 저장하는 방법엔 3가지가 있다.
1. JDBC
2. Spring JDBC
3. Persistence Framework
DB에 데이터를 저장할 때 JDBC만을 사용하는 방법은 학교다닐 때 프로젝트 하면서 해봤다. 스크립틀릿이 난무하고 꽤나 복잡했던 기억이 있다.
JDBC는 Java DataBase Connectivity의 약어이다.
말 그대로 자바에서 DB에 접근할 수 있도록 하는 자바API이다.
오로지 JDBC만 가지고 DB 연결을 구현하기엔 다소 복잡하다. 그래서 더 편한 개발을 위해 JDBC에 무언가를 끼워넣는다.
Persistence Framework도 내부적으로 JDBC API를 사용한다.
출처: https://o-jing.tistory.com/28
Web Application(DAO)에서 JDBC API를 통해 JDBC 인터페이스인 Spring JDBC에 전달되고, 구현체인 JDBC Driver가 DBMS에 접근하여 데이터를 가져온다.
Persistence Framework는 2가지로 분류된다.
1) SQL Mapper
2) ORM
1) SQL Mapper
2) ORM (Object-Relational Mapper)
= 객체-관계 매퍼 (객체와 RDBMS의 데이터를 자동으로 매핑해주는 것)
다음엔 JPA에 대해 알아보자.