관심쟁이 영호

[#17] Spring Bootㅣ 코드 분해하기 ㅣ Entity클래스? JPA? 본문

Bank-End/인프런- Spring 공부

[#17] Spring Bootㅣ 코드 분해하기 ㅣ Entity클래스? JPA?

관심쟁이 영호 2021. 4. 30. 01:22
반응형

이전 시간에는 웹사이트에서 요청했을때, 어떤방식으로 인식하고 넘어가는지 살펴보았다.

 

그럼 이번시간에는 회원가입을 했을때, 데이터가 어떻게 넘어가고 어떻게 내부에서 움직이는지 살펴보자.

 

  1. Spring이 시작이 되면, 테이블을 생성한다.
  • 어디에서 테이블을 생성하라는 코드가 있을까?

이것을 알기 위해서는 먼저 JPA에 대한 지식이 있어야 한다.

JPA에 대한 지식은 다른 글에 있다.

 

https://bestkingit.tistory.com/106

 

Spring Boot ㅣ JPA, ORM에 관해서

ORM? ORM은 Object Relational Mapping이다. 데이터베이스에 저장된 테이블 형식의 데이터를 모델링하여 자바에서 사용할 수 있도록 클래스로 바꿔주는 것이다!! 거꾸로도 가능하다! ]ORM를 알아보기 전에,

bestkingit.tistory.com

 

프로젝트를 시작할 때, 우리는 spring web, hibernate 등등의 라이브러리를 다운로드 받아주었다.

이렇게 하면, 자동으로 의존성이 추가된 상태로 프로젝트가 만들어지고

필요한 라이브러리가 다운로드 된다.

 

이 때, 설치된 것 중 하나가 Spring JPA Pakage가 있다. 그리고 이것을 사용하기 위해서는 구현체가 필요하다.

그것이 바로 hibernate이다.

 

그럼 어디서 그러한 설정이 되어있는지 살펴보자.

- gradle로 가보자.

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

여기서 jpa를 설치한 것이 보인다.

 

- hibernate는 어디에?

외부 라이브러리에 설치되어 있는 것을 볼 수 있다.

 

  • JPA는 어떻게 테이블을 생성할까?

프로젝트를 Run하게 되면, JPA는 @Entity들을 스캔해서 영속성 컨텍스트에 담게 된다.

영속성 컨텍스트에 대해서는 다른 포스팅에 있다!

 

여기서의 Entity는 자바에서 1개의 클래스이다.

그리고 해당하는 클래스는 데이터베이스에 테이블에 매칭된다.

 

아래의 그림을 보자

 

이렇게하면 테이블은 아래와 같이 만들어진다.

(현실성 있게 하다가, 나의 개인정보가 있어서.. 지웠다.)

 

※ 각각 테이블의 필드가 되었다. 그래고 어노테이션을 지정해준 것에 따라서 Primary Key가 되고, Foriegn Key가 되었다.

 

다음 시간에는, 웹에서 회원가입을 했을 때, 데이터들이 어떻게 움직이는 지, 살펴보자.

300x250
Comments