이전글 : https://sumjo.tistory.com/6
스프링 부트 Controller, DTO
Servlet은 간단히 말하자면 CGI를 개선해서 동적 페이지를 생성해주기 위한 서버 프로그램, 자바 클래스이다. 추후에 다룰 예정이다. 클라이언트에서 요청은 Dispatcher Servlet이 먼저 처리한다. 프론
sumjo.tistory.com
ORM(Object-Relational Mapping)
우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면된다.
라고 한다.
간단히 말하자면 객체(클래스)와 데이터베이스를 맵핑시켜준다는 뜻이다. 예시를 들어보겠다.
데이터베이스를 맵핑시켜주기 위해서는 데이터 베이스 칼럼과 대응되는 Entity 객체가 필요하다.
@Entity(name="user")
@Table(name="user")
public class UserEntity {
@Id
private String email;
private String password;
private String nickname;
private String telNumber;
private String address;
private String addressDetail;
private String profileImage;
private boolean agreedPersonal;
}
user table과 대응되는 Entity 객체의 일부이다.
데이터베이스의 칼럼을 다 가지고 있는 객체이다. 즉 한 테이블에 대응되는 객체인 셈이다.
변수명을 바탕으로 대응시키는데, telNumber -> tel_number로 변환돼서 대응이 되기 때문에 데이터베이스 칼럼명을 옳바르게 작성해야 한다.
JPA
기본적으로 ORM 표준 명세이다.
JPA는 라이브러리가 아니고 관계형 데이터베이스의 사용 방식을 정의한 인터페이스 모음이다.
때문에 실제로 구현한 구현체가 필요하고 Spring에서 Hibernate가 JPA구현체의 표준처럼 사용된다.
Hibernate
JPA가 인터페이스, Hibernate가 인터페이스를 구현한 Class 의 관계라고 볼 수 있겠다.
위에 말했듯이 JPA구현체의 표준처럼 사용되고 있다.
Spring Data Jpa
공식 문서에 따르면 JPA 기반 API를 더 사용하기 쉽게 만들어주는 기술이라고 나와있다.
즉 Spring Data JPA 또한 인터페이스 이고, JPA 사용을 더 쉽게 한번 더 감싸 준 것이다. Repository를 제공하여 데이터베이스 접근을 편하게 만들어준다.
예시를 보자.
데이터베이스 접근 순서도이다.
Spring Data JPA 에서 제공하는 Repository를 통해 CRUD메소드를 호출하면
메소드를 구현한 Hibernate가 데이터베이스와 통신한다.
JDBC는 DB CONNECTION과 같은 기본적인 API를 제공하는 인터페이스다.
'Spring Boot' 카테고리의 다른 글
[블로그 프로젝트] Spring Boot Validation (0) | 2024.03.06 |
---|---|
Mapping을 인식하지 못할 때(Java VScode Clean) (0) | 2024.01.17 |
[블로그 프로젝트] Response Entity (0) | 2024.01.15 |
스프링 부트 Controller, DTO (0) | 2024.01.12 |
[블로그 프로젝트] 스프링 프로젝트 생성 (0) | 2024.01.12 |