티스토리 뷰
영속성(Persistence)
- 애플리케이션이 종료되더라도 사라지지 않는 데이터의 특성
- 영속성을 가지지 않는 데이터는 애플리케이션 메모리에만 존재하기 때문에 애플리케이션을 종료하면 사라진다. 이러한 문제를 해결하기 위해 관계형 데이터베이스, 객체 데이터베이스 등을 활용하여 데이터를 영구적으로 저장하여 데이터에 영속성을 부여한다.
Persistence FrameWork
- JDBC 프로그래밍의 복잡함없이 간단한 작업으로 데이터베이스와 애플리케이션을 연동할 수 있는 프레임워크
- 기준을 SQL Mapper 와 ORM으로 나눌 수 있다
- 모든 Persistences FrameWork는 내부적으로 자바가 지원하는 JDBC API를 이용한다
SQL Mapper 와 ORM 차이
- ORM은 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해주지만 SQL Mapper은 SQL을 직접 명시하여야 한다
- ORM은 객체 지향적인 관계에 포커스 , SQL Mapper은 필드들의 매핑에 포커스
SQL Mapper 종류
- Mybatis , JDBCTemplets
ORM 종류
- JPA(Java Persistent API) : ORM을 사용하기 위한 표준 인터페이스를 모아둔 것 / 사용자가 원하는 JPA 구현체를 선택해서 사용할 수 있다 - Hibernate, EclipesLink, DataNucleus, OpenJpa 등 ...
- ORM의 기술을 사용하기 위한 ORM 프레임워크들은 Hibernate, EclipesLink 등 여러가지가 있고 이 모든 것을 표준 인터페이스로 모아둔 것이 JPA이다.
- Hibernate : JPA 구현체 중 하나 / 메소드 내부에서 JDBC API가 동작함 개발자는 신경쓸 필요 없음
JDBCTemplete
- 이전에는 연결, 클린업, 예외(try- catch)처리 등이 있었지만 JDBCTemplet을 사용하게 되면 이러한 코드 작성이 필요없어지므로써 개발자에게 부담이 줄어든다
- 스프링에서 제공하는 JDBCTemplete 객체를 주입 받아
- .query / .queryForObject / .update 등의 메소드를 사용하여 데이터 조작이 가능하다
- RowMapper 인터페이스를 구현 혹은 익명 클래스를 사용하여 데이터 객체를 반환받을 수 있다
JPA
- 도메인 객체를 JPA 개체로 매핑시키고 레퍼지토리를 생성하여 데이터 관리를 한다
- 도메인과 JPA 개체의 매핑은 클래스에 아래의 어노테이션을 추가하므로써 이루어진다
- @Entity - 매핑대상이라는 것을 알림
- @Id - 고유 속성 추가
- @NoArgsConstructor - JPA에서는 개체가 인자 없는 생성자를 가져야 하므로 추가시켜준다 / 이는 기본 생성자를 자동으로 만들어주는 Lombook 어노테이션이다
'BackEnd > Spring In Action' 카테고리의 다른 글
Chap5. 구성 속성 사용하기 (0) | 2020.08.23 |
---|---|
Chap2. 웹 애플리케이션 개발하기 (0) | 2020.08.22 |
Chap1. 스프링 시작하기 (0) | 2020.08.22 |