Skip to content

Latest commit

ย 

History

History
49 lines (25 loc) ยท 3.81 KB

File metadata and controls

49 lines (25 loc) ยท 3.81 KB

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ๋ ˆํผ๋Ÿฐ์Šค ์ฝ”๋”ฉ

์ฐธ๊ณ 

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ๋ ˆํผ๋Ÿฐ์Šค

์œ ํˆฝ ์ธ๋ฑ์Šค

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA Day 1. ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA Day 1. ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ 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 Day 2. ์ƒ์† ์—†์ด๋„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA Day 2. ์ƒ์† ์—†์ด๋„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ 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 Day 3. ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA Day 3. ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ

์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA ๋ ˆํผ๋Ÿฐ์Šค 2.4๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ๋ฅผ ๋ณด๊ณ  ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๋ณด๊ณ  ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ, ๋ฉ”์„œ๋“œ์— ์žˆ๋Š” ์–ด๋– ํ•œ ์ •๋ณด๋ฅผ (๋ณดํ†ต ์• ๋…ธํ…Œ์ด์…˜์ด๊ฒ ์ฃ ?) ๋ฐ”ํƒ•์œผ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ •์˜ํ•œ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•.

๊ทธ๋Ÿผ ๊ทธ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘์— ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š”์ง€.. ๊ทธ๊ฒŒ ์ด์ œ ์Šคํ† ๋ฆฌ์ง€ ๋งˆ๋‹ค ๋‹ฌ๋ผ ์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์„ธ๊ฐ€์ง€ ์ „๋žต๊ณผ ๊ทธ ์ค‘์— ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š” ์ „๋žต์€ ๋ฌด์—‡์ธ์ง€ ๋˜ ์–ด๋–ป๊ฒŒ ๊ทธ ์ „๋žต์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค.