티스토리 뷰

BackEnd/Spring In Action

Chap3. 데이터로 작업하기

영지는 달리는중 2020. 8. 22. 20:28

영속성(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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함