๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅDEV/Java || Spring

๋„๋ฉ”์ธ ๋กœ์ง์ด ํ•ญ์ƒ ์ข‹์„๊นŒ?

by bdd 2022. 9. 19.

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ JPA๋ฅผ ํ™œ์šฉํ•œ ๋„๋ฉ”์ธ ๋กœ์ง์ด ํ•ญ์ƒ ์ข‹์„๊นŒ? ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ–ˆ๋˜ ๋‚ด์šฉ์ธ๋ฐ์š” ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. **์ฝ”๋“œ์—๋Š” ์ •๋‹ต์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ด€์ ์ด๋ผ๊ณ  ๋ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋‹จ์ˆœ ์ฟผ๋ฆฌ(SQL)๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๋„๋ฉ”์ธ ๋กœ์ง๋ณด๋‹ค ๋” ์ข‹์„๋•Œ๋„ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด join์œผ๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์— ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

    - ๋„๋ฉ”์ธ ๋กœ์ง(JPA) ์œผ๋กœ ์ข‹์•„์š”๋ฅผ ๊ตฌํ˜„ํ–ˆ์„ ๊ฒฝ์šฐ

    - ๊ฐœ์„  ๋ฐ ๋„๋ฉ”์ธ ๋กœ์ง์ด ์•ˆ์ข‹์„๋•Œ

    - Conclusion

 

 

 

 

 

1. ์ข‹์•„์š” ๋ˆŒ๋ €๋Š”์ง€๋ฅผ JPA์กฐ์ธ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๊ฒฝ์šฐ


๋„๋ฉ”์ธ ๋กœ์ง์„ ํ™œ์šฉํ•ด (๊ฒŒ์‹œ๊ธ€์—) ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์•„์š”๋ฅผ ํ•œ ๋ฒˆ๋„ ์•ˆ ๋ˆŒ๋ €๋‹ค๋ฉด ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ด๋ฏธ ๋ˆŒ๋ €๋‹ค๋ฉด ๋ˆŒ๋ €๋˜ ์ข‹์•„์š”๊ฐ€ ์ทจ์†Œ๋˜๋Š” ๋กœ์ง์ž…๋‹ˆ๋‹ค. 

 

 

 

 

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. contains( ) ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‚ด๋ถ€์— ์–ด๋–ค ๊ฐ’์ด ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JPA์—์„œ ์ด ๊ฐ’๋“ค์„ join + in์ฟผ๋ฆฌ๋กœ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค. ์ฆ‰, ๋„๋ฉ”์ธ ๋กœ์ง์„ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์กฐํšŒํ•ด์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

๊ทธ๋Ÿฐ๋ฐ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅธ ์‚ฌ๋žŒ์ด 999๋ช…์ด ๋„˜์–ด๊ฐ„๋‹ค๋ฉด? ์„œ๋น„์Šค๊ฐ€ ์ž˜๋๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์„œ 10๋งŒ๋ช…์ด ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋ €๋‹ค๋ฉด, ๊ฒŒ์‹œ๊ธ€์— ๋‹ฌ๋ฆฐ 10๋งŒ๊ฐœ์˜ ์ข‹์•„์š” ๊ฐ’๋“ค์„ ๋ชจ๋‘ ์กฐ์ธ + in์ ˆ๋กœ ์ฐพ์•„์˜ค๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”? ์ƒ๊ฐ์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” JPA๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŽ˜์น˜์กฐ์ธ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ ๋ˆŒ๋ €๋Š”์ง€๋ฅผ ์งˆ์˜ํ•˜๊ณ  ๋ˆ„๋ฅธ ์ ์ด ์—†๋‹ค๋ฉด ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€, ๋ˆ„๋ฅธ์ ์ด ์žˆ๋‹ค๋ฉด ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ฐ’์ด ์žˆ๋Š”์ง€๋งŒ ์ฒดํฌํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ์š”. 

 

 

 

 

 

 

2. ๊ฐœ์„ 


๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ปค๋ฒ„๋ง ์ธ๋ฑ์Šค(memberId, studyId๊ฐ€ ์ธ๋ฑ์Šค)๋ฅผ ํƒœ์›Œ์„œ ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋ €๋Š”์ง€๋ฅผ ์ฐพ์•„์˜จ ํ›„ ๋ถ„๊ธฐ๋ฌธ์„ ํ†ตํ•ด ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋ผ ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

์ข‹์•„์š”๋ฅผ ๋ˆŒ๋ €๋Š”์ง€๋ฅผ ์งˆ์˜ํ•˜๊ณ  ํด๋ฆญํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์‚ญ์ œ, ํด๋ฆญํ•œ ์ ์ด ์—†๋‹ค๋ฉด ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋กœ์ง์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ข‹์•„์š” ๊ฐœ์ˆ˜๊ฐ€ ์ ๋‹ค๋ฉด ๋‹จ์ˆœ ์กฐ์ธ์œผ๋กœ ์ด๋ฅผ ํ’€์–ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์„œ๋น„์Šค๊ฐ€ ์ž˜๋์„ ๊ฒฝ์šฐ์—๋„ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฟผ๋ฆฌ(SQL)๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ํŒ”๋กœ์ž‰/ํŒ”๋กœ์›Œ๋ฅผ ๊ตฌํ˜„ํ• ๋•Œ๋„ ์žˆ์—ˆ๋Š”๋ฐ์š”, ์•„๋ž˜์™€ ๊ฐ™์ด ์ปฌ๋ ‰์…˜์—์„œ remove๋ฅผ ํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด ์‚ญ์ œ๋ฅผ ํ•˜๊ธฐ ์ „์— ์šฐ์„  ์ถ”๊ฐ€์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. in์ ˆ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ™•์ธ ํ›„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ธ๋ฐ์š”, ์ด๋•Œ in์ ˆ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ 10๋งŒ๊ฐœ ์ •๋„๋ผ๋ฉด ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ณด๋‹ค ์กฐํšŒ์— ๋” ํฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ๋ณด๋‹ค ๋ฐฐ๊ผฝ์ด ์ปค์ง€๋Š” ๊ฒƒ์ด์ฃ . **์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ์กฐํšŒ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

3. Conclusion


๊ฒฐ๋ก ์€ JPA๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ด์ (๋„๋ฉ”์ธ ๋กœ์ง ํ™œ์šฉ)์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ™œ์šฉํ•˜๋Š”๊ฒƒ๋ณด๋‹ค ๋‹จ์ˆœ ์ฟผ๋ฆฌ(SQL)๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฒŒ ๋” ๋‚˜์„๋•Œ๋„ ์žˆ๋‹ค ์ž…๋‹ˆ๋‹ค. ์“ฐ๋‹ค๋ณด๋‹ˆ JPA์˜ ๋‹จ์ ์— ๋Œ€ํ•ด ๋˜ ๋ถ€๊ฐ์ด ๋˜์—ˆ๋Š”๋ฐ์š”, ์œ„์—์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ์„œ๋น„์Šค๊ฐ€ ์ž‘๋‹ค๋ฉด ์ด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋น„์Šค๊ฐ€ ์ปค์กŒ์„ ๊ฒฝ์šฐ๋ผ๋ฉด, ์ข‹์•„์š”์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋ฉด ์ด๋ฅผ ์กฐ์ธ์œผ๋กœ ๋Œ๊ณ ์˜ค๋Š”๊ฒƒ ์ž์ฒด๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ๋„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค. ๋ผ๋Š” ๊ฒƒ์„ ๋งํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ** ์ตœ๊ทผ ์ž๊พธ JPA์˜ ๋‹จ์ ๋งŒ ์“ฐ๊ฒŒ ๋˜๋„ค์š”...

 

 

 

 

 

๋Œ“๊ธ€