์คํ๋ง ๋ฐ์ดํฐ JPA ๋ ํผ๋ฐ์ค
์คํ๋ง ๋ฐ์ดํฐ JPA ๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ฒ์๋ ์ฒ์๋ถํฐ 3.2์ฅ๊น์ง ์ดํด๋ดค์ต๋๋ค.
https://docs.spring.io/spring-data/jpa/docs/2.0.7.RELEASE/reference/html/
์์กด์ฑ ๊ด๋ฆฌ๋ ์คํ๋ง ๋ถํธ๋ฅผ ์ฐ๋ ๋ฐฉ๋ฒ๊ณผ ์คํ๋ง ๋ฐ์ดํฐ์ ๋ฆด๋ฆฌ์ฆ ํธ๋ ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ์ฌ์ค์ ์คํ๋ง ๋ถํธ๋ ์คํ๋ง ๋ฐ์ดํฐ์ ๋ฆด๋ฆฌ์ฆ ํธ๋ ์ธ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ชจ๋ก ์คํ๋ง ๋ถํธ์์ ๋ฐ์ดํฐ ๋ฒ์ ์ปค์คํฐ๋ง์ด์ง ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ ธ์ต๋๋ค.
์ค์ํ ๋ด์ฉ์ JpaRepository - PagingAndSortingRepository - CrudRepository - Repository ์ด๋ฌํ ์์ ๊ตฌ์กฐ์ ๊ฐ ์ธํฐํ์ด์ค์ ์ญํ ์ ์ดํดํ๋ ๊ฒ์ธ๋ฐ์.
์ ค ๋ฐ๋จ์ ์๋ ์์ํ ๊ธฐ์ ์ ํนํ๋ JpaRepository๋ฅผ ๋นผ๋ฉด ๋๋จธ์ง ๋ค๋ฅธ ์์ํ ๊ธฐ์ ์ฉ ๋ฆฌํ์งํ ๋ฆฌ์์๋ ์ฌ์ฌ์ฉํ๋ ๊ณต์ฉ ์ธํฐํ์ด์ค๋ค ์ ๋๋ค. ๊ทธ ์ธํฐํ์ด์ค๋ค์ ์์ธํ ์ดํด๋ณด๋ฉด์ ์ค๋ช ํด ๋๋ ธ์ต๋๋ค.
๊ฐ๋จํ ์์ ๋ก Book์ด๋ผ๋ ์ํฐํฐ ์ถ๊ฐํ๊ณ findByIsbn์ด๋ผ๋ ์ฟผ๋ฆฌ ๋ฉ์๋ ์ฟผ๋ฆฌ ๋ง๋๋ ๊ฒ์ ๋ณด์ฌ๋๋ ธ์ต๋๋ค.
์คํ๋ง ๋ฐ์ดํฐ JPA ๋ ํผ๋ฐ์ค 2.3์ ์ดํด๋ดค์ต๋๋ค.
Repository ์ธํฐํ์ด์ค๋ฅผ ์์ํด์ ๋ง๋๋ ๋ฐฉ๋ฒ ๋ง๊ณ , ์ ๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ์๋๋ฐ.. ๊ฐ๋ฅ์ ํ์ง๋ง ์ฌ์ค์ ๋์์ฑ ์ ๋ชฉ์๋ ์ฐ๋ผ๊ณ ๋ง๋ค์ด ๋ ๊ธฐ๋ฅ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋ค์.
๊ทธ๋ณด๋ค ์ฌ์ค ํจ์ฌ ์ค์ํ ๋ด์ฉ์ ์คํ๋ง ํ๋ ์์ํฌ 5์ ๋์ ๋ ๋ ์ฒ๋ฆฌ ๊ด๋ จ ์ ๋ ธํ ์ด์ ๋ค์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ๋๋ค.
https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/core.html#null-safety
๋ ํผ๋ฐ์ค์ ์ค๋ช ์ด ์ฝ๊ฐ ์ค๋ฌํ๋ฉด์ ์ด์ํ ๋ถ๋ถ์ด ์์ด์ ์ฝ๋ฉ์ผ๋ก ํ์ธํด ๋ดค๋๋ฐ ์๋๋ ๋ค๋ฅผ๊น... ์์ ํ๋ ๋๋ก ๋์ํ๊ตฌ์.
๋ง์ง๋ง์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ์์ํ ๊ธฐ์ ์ ์ฌ์ฉํ ๋, ์ฆ, JPA๋ ์ฐ๊ณ ๋ชฝ๊ณ DB๋ ์ฐ๋ ๊ฒฝ์ฐ์ ํด๋น ๊ธฐ์ ์ ํนํ๋ ์ธํฐํ์ด์ค์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์์ ๋ฐ์ผ์๋๊ฒ ์ข์ต๋๋ค. ์๋๋ฉด ๋งจ ๋ง์ง๋ง์ ๋์จ ์ฝ๋ ์์ ์ฒ๋ผ ํด๋น ๊ธฐ์ ์ ๋ฒ ์ด์ค ํจํค์ง๋ฅผ ๊ฐ๊ธฐ ๋ค๋ฅธ ํจํค์ง๋ก ์ง์ ํด ์ฃผ๊ฑฐ๋์.. (์ด๊ฑด ๋ค์ ์๊ฐ์ ์ฝ๋ฉ์ผ๋ก ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.)
์คํ๋ง ๋ฐ์ดํฐ JPA ๋ ํผ๋ฐ์ค 2.4๋ฅผ ๋ณด๊ธฐ ์์ํ์ต๋๋ค.
๋ฉ์๋๋ฅผ ๋ณด๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด ํฌ๊ฒ ๋๊ฐ์ง ์์ต๋๋ค. ๋ฉ์๋ ์ด๋ฆ์ ๋ณด๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ, ๋ฉ์๋์ ์๋ ์ด๋ ํ ์ ๋ณด๋ฅผ (๋ณดํต ์ ๋ ธํ ์ด์ ์ด๊ฒ ์ฃ ?) ๋ฐํ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ์ํ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ.
๊ทธ๋ผ ๊ทธ ๋๊ฐ์ง ๋ฐฉ๋ฒ ์ค์ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ ธ์์ผ ํ๋์ง.. ๊ทธ๊ฒ ์ด์ ์คํ ๋ฆฌ์ง ๋ง๋ค ๋ฌ๋ผ ์ง ์ ์๋๋ฐ, ์ธ๊ฐ์ง ์ ๋ต๊ณผ ๊ทธ ์ค์ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ๋์ด์๋ ์ ๋ต์ ๋ฌด์์ธ์ง ๋ ์ด๋ป๊ฒ ๊ทธ ์ ๋ต์ ๋ฐ๊ฟ ์ ์๋์ง ์ดํด๋ดค์ต๋๋ค.


