Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유효성검사
- JPA
- 데이터베이스 연동
- 엔티티 설계
- 백엔드공부
- 백엔드스쿨
- 스프링 부트 핵심 가이드
- 인텔리제이
- 스프링부트실전가이드
- 개발자
- validated
- Java
- 리포지토리 인터페이스
- ORM
- 백엔드
- 프로젝트 생성
- MariaDB
- Swagger
- auditing
- DAO 설계
- #devops #terraform #state
- 제로베이스 #백엔드 #Java #Spring #개발자 #백엔드공부 #백엔드 스쿨
- 제로베이스
- DAO 연동 컨트롤러 서비스 설계
- spring
Archives
- Today
- Total
JeongJin's Blog
06. 데이터베이스 연동 (3) 본문
6.3 JPA
- Java Persistence API 의 약자로써 자바 진영의 ORM 기술 표준으로 채택된 인터페이스의 모음이다.
- JPA 역할이 ORM의 역할로써 JDBC를 사용하며 엔티티와 테이터 베이스 테이블을 자동 매핑하는 역할을 한다.
- JPA 구현체로는 이클립스 링크(EclipseLink), 데이터 뉴클리어스(DataNucleus), 하이버네이트(가장 많이 사용)가 있다.
6.4 하이버네이트
- 자바의 ORM 프레임워크로, JPA가 정의하는 인터페이스를 구현하고 있는 JPA 구현체 중 하나이다.
6.4.1 Spring Data JPA
- JPA를 편리하게 사용할 수 있도록 지원하는 스프링 하위 프로젝트 중 하나로써 CRUD 처리에 필요한 인터페이스를 제공하며, 하이버네이트의 엔티티 매니저를 직접 다루지 않고 리포지토리를 정의해서 사용하여 스프링이 적합한 쿼리를 동적으로 생성하는 방식으로 데이터베이스를 조작한다.
6.5 영속성 컨텍스트
- 애플리케이션과 데이터베이스 사이에서 엔티티와 레코드의 괴리를 해소하는 기능과 객체를 보관하는 기능을 수행한다.
- 엔티티 객체가 영속성 컨텍스트에 들어오면 JPA는 엔티티 객체의 매핑 정보를 데이터베이스에 반영하는 작업을 수행한다.
- 영속성 컨텍스는 세션 단위의 생명주기를 가진다.
- 데이테베이스에 접근하기 위한 세션이 생성되면 영속성 컨텍스트가 만들어지고, 세션이 종료되면 영속성 컨텍스트도 없어진다.
- 엔티디 매니저는 이러한 일련의 과정에서 영속성 컨텍스트에 접근하기 위한 수단으로 사용한다.
6.5.1 엔티티 매니저
- 엔티티를 관리하는 객체로써 데이터베이스에 접근해서 CRUD 작업을 수행한다.
- Spring Data JPA 를 사용하면 리포지토리를 사용해서 데이터베이스에 접근하는데, 실제 내부 구현체인 SimpleJpaRepository 가 레포지토리에서 엔티티 매니저를 사용한다.
- Spring Data JPA 내부에 구현되어 있다.
6.5.2 엔티티의 생명주기
- 비영속(New)
- 영속성 컨텍스트에 추가되지 않은 엔티티 객체의 상태를 의미한다.
- 영속(Managed)
- 영속성 컨텍스트에 엔티티 객체가 관리되는 상태입니다.
- 준영속(Detached)
- 영속성 컨텍스트에 관리되던 엔티티 객체가 컨텍스트와 분리된 상태입니다.
- 삭제(Removed)
- 데이터베이스에서 레코드를 삭제하기 위해 영속성 컨텍스트에 삭제 요청을 한 상태입니다.
'Book Study > 스프링 부트 핵심 가이드' 카테고리의 다른 글
06. 데이터베이스 연동 (5) (0) | 2023.11.02 |
---|---|
06. 데이터베이스 연동 (4) (0) | 2023.10.30 |
06. 데이터 베이스 연동 (2) (0) | 2023.10.30 |
06. 데이터베이스 연동 (1) (0) | 2023.10.30 |
05. API를 작성하는 다양한 방법 (4) (0) | 2023.10.23 |