๐Ÿฆ๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 11๊ธฐ/๋ฐฑ์—”๋“œ ์ •๊ธฐ์„ธ์…˜ ์ถ”๊ฐ€ํ•™์Šต

[TIL] SESSION 6 _ JPA

1son 2023. 3. 31. 21:50

1. JPA๋ž€?

2. JPA์˜ ์žฅ๋‹จ์ 

3. JPA ๋™์ž‘๋ฐฉ์‹

4. ํŒŒ์ผ ๊ตฌ์กฐ

5. ์‹ค์Šต

 

1. JPA 

์ž๋ฐ”์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค

 

..์ƒ๋žต

 

3. JPA ๋™์ž‘๋ฐฉ์‹

์—”ํ‹ฐํ‹ฐ

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋Œ€์‘ํ•˜๋Š” ํด๋ž˜์Šค

@Entity ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํด๋ž˜์Šค๋Š” JPA์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์—”ํ‹ฐํ‹ฐ๋ผ๊ณ  ํ•จ

 

์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ํŒฉํ† ๋ฆฌ 

: ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ € ์ธ์Šคํ„ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์ฒด๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์‹œ ํ•œ ๊ฐœ๋งŒ ๋งŒ๋“ค์–ด์ง

-> ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ์˜ค๋ฉด ์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ์ƒ์„ฑํ•จ

 

์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €

: *์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ ‘๊ทผํ•ด ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ œ๊ณตํ•จ 

๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ปค๋„ฅ์…˜์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•จ

 

(๋Œ€ํ‘œ์ ์ธ ๋ฉ”์„œ๋“œ

-> find()

-> persist() : ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅ

-> remove()

-> flush()

 

*์˜์†์„ฑ ์ปจํ…์ŠคํŠธ
: ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•˜๋Š” ํ™˜๊ฒฝ
์—”ํ‹ฐํ‹ฐ ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ ‘๊ทผํ•จ

 

4. ํŒŒ์ผ ๊ตฌ์กฐ

์ปจํŠธ๋กค๋Ÿฌ : ์›น MVC์˜ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• 

์„œ๋น„์Šค : ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„

๋ฆฌํฌ์ง€ํ† ๋ฆฌ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ, ๋„๋ฉ”์ธ ๊ฐ์ฒด๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌ 

๋„๋ฉ”์ธ : ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ๊ฐ์ฒด

 

 

5. ์‹ค์Šต

dto, entity, repository

๋ชฉํ‘œ : ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์š”์†Œ๋“ค์„ ์„ค๊ณ„ํ•ด ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ž .

 

1. ํšŒ์›๊ฐ€์ž…์‹œ ํ™”๋ฉด์—์„œ ๋„˜์–ด์˜ค๋Š” ์ •๋ณด๋ฅผ ๋ฐ›์„ MemebrFormDto ์ƒ์„ฑ

2. MemberFormDto๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ๋„˜๊ฒจ๋ฐ›์„ Member ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ

3. Member ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ MemberRepository ์ƒ์„ฑ

4. ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ 

 

 

MemberFormDto ์„ค๊ณ„

Dto : ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด 

: ๋กœ์ง์„ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ˆœ์ˆ˜ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด (getter & setter ๋งŒ ๊ฐ€์ง„ ํด๋ž˜์Šค)

(entity๋กœ ๋ฐ”๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ ์™œ Dto๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๋ƒ ? : ํ™”๋ฉด์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฑฐ๋ž‘ ์—”ํ‹ฐํ‹ฐ ๊ตฌ์„ฑ์ด๋ž‘ ๋‹ค๋ฅผ ์ˆ˜ ๋„์žˆ์ž–์•„!)

 

 

: ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด์œผ๋กœ๋ถ€ํ„ฐ ๋„˜์–ด์˜ค๋Š” ๊ฐ€์ž…์ •๋ณด๋ฅผ ๋‹ด์€ MemberFormDto๋ฅผ ๋จผ์ € ์„ค๊ณ„ํ•ด๋ด…์‹œ๋‹ค. 

ํšŒ์›์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค ์ƒ๊ฐํ•ด๋ณด๊ธฐ 

 

 

 

Member ์—”ํ‹ฐํ‹ฐ ์„ค๊ณ„ 

 

- Member ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ ๋ฉ”์†Œ๋“œ ๋งŒ๋“ค๊ธฐ 

ํšŒ์›์„ ์ƒ์„ฑํ•˜๋А ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌ 

-> ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํ•œ๊ตฐ๋ฐ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋จ

 

MemberRepository

1. repository ํŒจํ‚ค์ง€ ์ƒ์„ฑ

2. MemberRepository ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ

3. *JpaRepository ์ƒ์†๋ฐ›๊ธฐ 

*JpaRepository๋Š” 2๊ฐœ์˜ ์ œ๋„ค๋ฆญ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

<์—”ํ‹ฐํ‹ฐ ํƒ€์ž… ํด๋ž˜์Šค, ๊ธฐ๋ณธํ‚ค ํƒ€์ž…> ํ˜•ํƒœ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. 

 

 

MemberRepositoryTest

์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ? 

์„ค์ •์— ๋“ค์–ด๊ฐ€์„œ 

gradle-> intellij ๋กœ ๋ฐ”๊ฟ”๋ณด์‹œ๊ธธ 

 

 

ํ…Œ์ŠคํŠธ ์„ฑ๊ณต์ ,