2.2 Spring Data JPA๋ฅผ ์ด์ฉํ๋ ํ๋ก์ ํธ์ ์์ฑ

ํ๋ก์ ํธ ์์ฑํ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฐ์
์ฐธ๊ณ ๋ก ์์ฑ์ gradle-grooby ์ ํ
https://velog.io/@kokojihye/Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1
Spring Boot: ํ๋ก์ ํธ ์์ฑ
์น์ 1.ํ๋ก์ ํธ ํ๊ฒฝ์ค์ : ํ๋ก์ ํธ ์์ฑ
velog.io
Build Successful ๋ด๋ค.
2.2.1 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ ์คํ๋ง ๋ถํธ ์ค์

์ด๊ฑด ๋ ๋ญ์
Intellij - error: invalid source release: 17 ์ค๋ฅ
Java 17์ด LTS๋ก ๊ณต๊ฐ๋์๊ณ , Spring boot๋ 2.5.5 ๋ฒ์ ์์ ์ง์ํ๊ณ ์์ด ์๋ก์ด ํ๋ก์ ํธ์ Java 17์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. ๊ทธ๋์ start.spring.io์์ Java 17/Boot 2.5.5๋ก ๋ง๋ค์ด์ intellij์์ ๋ฐ๋ก Run ํ๋๋ฐ,
binux.tistory.com
์ ๋ง ๊ตฌ๊ธ๋ง์ ์ฐ์์ด๋ค.

๊ต์ฌ์ ๊ฐ์ ์ค๋ฅ ๋ด๋ค.
-> Spring data JPA๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ๊ฐ๋์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ด์ ๊ด๋ จ๋ ์ค์ ์ ์ถ๊ฐ๋์์ผ๋
๊ตฌ์ฒด์ ์ธ ๊ฐ์ด ์ง์ ๋์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋๋ค.
์ ์์ ์ธ ์คํ์ด ๋๋ค์

์๋์ผ๋ก ์ค์ ๋๋ ๋ถ๋ถ
2.3 Spring Data JPA์ ์๊ฐ
ํ๋ก์ ํธ ์์ฑ ์ ์ ์ถ๊ฐํ Spring data JPA ๋ผ๋ ๊ฒ์ ๋ํด ์์๋ณด๊ณ , ์ด๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
JPA๋ java์ธ์ด๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์์ ๊ณ์ธต์ ์ฒ๋ฆฌํ๊ณ ์ํ๋ ์คํ์ ๋๋ค.
JPA๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ ์ ORM(Object-Relational Mapping)์ด๋ผ๋ ๊ธฐ์ ์ ๋ํด์ ๋จผ์ ์ค๋ช ํด์ผํฉ๋๋ค.
2.3.1 ORM์ JPA
ORM๋ ๋จ์ด์์ ๋ณด๋ฏ์ด ๊ฐ์ฒด์งํฅ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
ORM์ ๊ฐ๋จํ ๋งํ๋ฉด '๊ฐ์ฒด์งํฅ ํ๋ฌ๋ค์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด์กดํ๋ ๊ธฐ์ '์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
'๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ๊ด๊ณํ ํจ๋ฌ๋ค์์ผ๋ก ๋งคํ ํด์ฃผ๋ ๊ฐ๋ '์ด๋ผ๊ณ ๋ ๋ณผ ์ ์์
ORM์ ์์์ ์์ฃผ๋จ์ํด์ '๊ฐ์ฒด์งํฅ'์ ๊ตฌ์กฐ๊ฐ '๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค'์ ์ ์ฌํ๋ค๋ ์ ์์ ์์ํฉ๋๋ค.
๊ด๊ณํ ๋ฐํฐ์ด ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๋ ์ ์ฅ์์๋ ํด๋์ค๋ ์๋์ง๋ง 'ํ ์ด๋ธ'์ ์ค๊ณํฉ๋๋ค. ์๋ก์ด ํ ์ด๋ธ์๋ ์นผ๋ผ์ ์ ์ํ๊ณ ์นผ๋ผ์ ๋ง๋ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ํ์ผ ๋ง๋ ๋ค๋ ์๋ฏธ์์ ํด๋์ค์์๋นํ ์ ์ฌํฉ๋๋ค.
'์ธ์คํด์ค'์ 'Row'๋ ์๋นํ ์ ์ฌ
'๊ด๊ณ'์ '์ฐธ์กฐ'๋ผ๋ ์๋ฏธ๋ ๋งค์ฐ ์ ์ฌ
์์ ๊ฐ์ด ๊ฐ์ฒด์งํฅ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ฌํ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๋ฐ ํน์ง์ ๊ธฐ์ดํด์ '๊ฐํ ์งํฅ์ ์๋์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง๊ฒ ' ์ฒ๋ฆฌํด์ฃผใ กใด ๊ธฐ๋ฒ์ ๋ํด์ ์์ด๋์ด๋ฅผ ๋ด๊ธฐ ์์ํ๊ณ , ๊ทธ๊ฒ์ด ORM์ ์์์ด์์ต๋๋ค.
JPA๋ ORM์ java ์ธ์ด์ ๋ง๊ฒ ์ฌ์ฉํ๋ ์คํ์ ๋๋ค.
ORM์ด ๋ ์์๊ฐ๋ ์ด ๋๊ณ , JPA๋ java๋ผ๋ ์ธ์ด์ ๊ตญํ๋ ๊ฐ๋ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
JPA๋ ๋จ์ํ ์คํ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ์คํ์ ๊ตฌํํ๋ ๊ตฌํ์ฒด๋ง๋ค ํ์ฌ์ ์ด๋ฆ์ด๋ ํ๋ ์์ํฌ์์ด๋ฆ์ด ๋ค๋ฅด๊ฒ ๋ฉ๋๋ค. ์ฌ๋ฌ ํ๋ ์ ์ํฌ๊ฐ ์์ง๋ง ๊ทธ ์ค์์ ๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ 'Hibernate'์ ๋๋ค.
2.3.2 Spring Data JPA์ JPA
์คํ๋ง ๋ถํธ๋ JPA์๊ตฌํ์ฒด ์ค์์ 'Hibernate'๋ผ๋ ๊ตฌํ์ฒด๋ฅผ ์ด์ฉํฉ๋๋ค.
ํ๋ก์ ํธ ์์ฑ ์์ ์ถ๊ฐํ 'Spring Data JPA'๋
Hibernate๋ฅผ ์คํ๋ง ๋ถํธ์์ ์ฝ๊ฒ ์ฌ์ฉํ ์์๋ ์ถ๊ฐ์ ์ธ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
'Spring > ๐ฅ[spring]์ฝ๋๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ๋ถํธ ์น ํ๋ก์ ํธ_๊ตฌ๋ฉ๊ฐ๊ฒ ์ฝ๋ฉ๋จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 2.6.2 @Query ์ด๋ ธํ ์ด์ (0) | 2023.01.31 |
|---|---|
| 2.6 ์ฟผ๋ฆฌ ๋ฉ์๋(Query Methods)๊ธฐ๋ฅ๊ณผ @Query (0) | 2023.01.30 |
| 2.5 ํ์ด์ง/ ์ ๋ ฌ ์ฒ๋ฆฌํ๊ธฐ (0) | 2023.01.29 |
| 2.4.3 JpaRepository ์ธํฐํ์ด์ค (0) | 2023.01.29 |
| 2.4 ์ํฐํฐ ํด๋์ค์ JpaRepository ~ (0) | 2023.01.28 |