๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ’Š Java & Kotlin & Spring53

[Spring & SpringBoot-JPA] JPA Query Method - JPA ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ์•„๋ณด๊ณ  ์‚ฌ์šฉํ•˜์ž. Hibernate์˜ QueryMethod ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ ์˜ˆ์ œ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ€๋ณ๊ฒŒ ๋ด๋ณด์ž. Test ์ฝ”๋“œ์ด๋˜ ์–ด๋–ค ์„œ๋น„์Šค์ด๋˜ ๋ชจ๋‘ findById() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ id ๊ฐ’์œผ๋กœ ๊ฒ€์ƒ‰์„ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํšŒ์› ๊ฒ€์ƒ‰์„ ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํšŒ์› account ์ •๋ณด๋ฅผ ํ†ตํ•ด์„œ ๊ฒ€์ƒ‰์„ ํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ DB๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋‹ˆ id ์นผ๋Ÿผ์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ง€, ์‹ค์ œ ์„œ๋น„์Šค์—์„œ id๋ฅผ ์™ธ์šฐ๊ธฐ๋ž€ ์ •๋ง ์–ด๋ ค์šด ์ผ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ์ ์„ QueryMethod๋ฅผ ํ†ตํ•ด์„œ ํšŒ์›์˜ account๋กœ ๊ฒ€์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. findById๋Š” select๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” findById() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ id ๊ฐ’์œผ๋กœ ๊ฒ€์ƒ‰์„ ํ–ˆ๋Š”๋ฐ ์ด๋Š” ์ •ํ™•ํžˆ ๋ง ํ•˜๋ฉด findBy๋ผ๋Š” ๋ฌธ๋ฒ•์„ ๋ณด๋ฉด JPA๊ฐ€ ์ž๋™์œผ๋กœ se.. 2020. 2. 17.
[Spring & SpringBoot-JPA] DB ์—ฐ๊ด€๊ด€๊ณ„ ํ…Œ์ด๋ธ”์„ Spring JPA๋ฅผ ์ด์šฉํ•˜์—ฌ CRUD ํ•˜๊ธฐ. ์ง€๋‚œ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” DB ์—ฐ๊ด€๊ด€๊ณ„ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊นŒ์ง€ ์ง„ํ–‰์„ ํ•˜์˜€๋‹ค. ์—ฐ๊ด€๊ด€๊ณ„ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉฐ 1:N ๊ณผ N:1์˜ ์—ฐ๊ด€๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•˜์˜€๊ณ  ์ด์ œ๋Š” Spring์—์„œ ์‹ค์ œ๋กœ ๊ด€๊ณ„๋ฅผ ํ†ตํ•œ Data ํ˜ธ์ถœ์„ ํ•™์Šตํ•ด๋ณด์ž. ํ˜„์žฌ ํ…Œ์ด๋ธ”์˜ ์—ฐ๊ด€ ๊ด€๊ณ„ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ํ’€์–ด๋ณด์ž๋ฉด user๊ณผ item์˜ ๊ด€๊ณ„ : ์„œ๋กœ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ๊ด€๊ณ„๋„ ๋งบ์ง€ ์•Š๊ณ  ์žˆ๋‹ค. user๊ณผ order_list์˜ ๊ด€๊ณ„ : order_list๊ฐ€ ํ˜„์žฌ user์˜ id๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— (orderList)n:1(user)์˜ ๊ด€๊ณ„ ์ด๋‹ค. item๊ณผ order_list์˜ ๊ด€๊ณ„ : order_list๊ฐ€ ํ˜„์žฌ item์˜ id๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— (orderList)n:1(item)์˜ ๊ด€๊ณ„ ์ด๋‹ค. .. 2020. 2. 16.
[Spring & SpringBoot-JPA] DB ์—ฐ๊ด€๊ด€๊ณ„ ํ…Œ์ด๋ธ” ์ƒ์„ฑ JPA๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ๋Š” ๋‹น์—ฐํžˆ๋„ DB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. ๊ทธ๋Ÿผ DB๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ SoftWare ๊ณตํ•™์ ์ธ ์ ‘๊ทผ์œผ๋กœ DB ์—ฐ๊ด€ ๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผ ํ•œ๋‹ค. software ๊ณตํ•™์€ CS์˜ ๊ธฐ๋ณธ ์†Œ์–‘์ด๋ฏ€๋กœ ํ˜น์‹œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์„ ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ software ๊ณตํ•™ ์ •๋ณตํ•˜๊ธฐ ํฌ์ŠคํŒ… ์—์„œ ํฌ์ŠคํŒ…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฝ๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. DB ์—ฐ๊ด€๊ด€๊ณ„๋ž€? ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์‚ฌ์šฉ์ž๊ฐ€ item์„ ๊ตฌ๋งคํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋‹ค์Œ์„ ๋งŒ์กฑ์‹œ์ผœ ๋ณด์ž. ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์•„์ดํ…œ์„ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•ด๋‹น ์•„์ดํ…œ์€ ๋ช‡ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๋ฌธํ–ˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์ด์šฉํ•œ๋‹ค. ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด user์˜ id๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ๊ฐ–๊ณ  item์˜ id.. 2020. 2. 2.
[Spring & Springboot-JPA] JPA๋ฅผ ์ด์šฉํ•œ CRUD ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ - 5 (delete๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ) ํ•ด๋‹น ํฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ํ•˜๋‚˜์˜ ๊ฐœ๋…์„ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ํ•™์Šต๊ณผ ์ดํ•ด๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ํฌ์ŠคํŠธ๋„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :) 1 Jpa์˜ Entity ์„ค์ • ๋ฐ Repository ์„ค์ • 2 create๋ฉ”์„œ๋“œ๋กœ ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ-๊ผญ ํ™•์ธํ•˜์…”์•ผํ•ด์š”!! 3 read ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ๊ฒ€์ƒ‰ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 4 update ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ • ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 5 delete ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ ์ „์— ์šฐ๋ฆฌ๋Š” update() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ํšŒ์› ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•ด ๋ณด์•˜๋‹ค. ์ด๋ฒˆ์—๋Š” delete()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ๋Š˜ ๊ทธ๋ ‡๋“ฏ controller ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜์ž. ๊ฒฝ๋กœ ๋˜ํ•œ ๋Š˜ ๊ทธ๋Ÿฌํ•œ ์žฅ์†Œ์—.. ๋งˆ๋ จํ•œ๋‹ค. delete ๋ฉ”์„œ๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋‚˜์—ดํ•˜๋ฉด.. 2020. 1. 27.
[Spring & Springboot-JPA] JPA๋ฅผ ์ด์šฉํ•œ CRUD ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ - 4 (update ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ • ๋งŒ๋“ค๊ธฐ) ํ•ด๋‹น ํฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ํ•˜๋‚˜์˜ ๊ฐœ๋…์„ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ํ•™์Šต๊ณผ ์ดํ•ด๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ํฌ์ŠคํŠธ๋„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :) 1 Jpa์˜ Entity ์„ค์ • ๋ฐ Repository ์„ค์ • 2 create๋ฉ”์„œ๋“œ๋กœ ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ-๊ผญ ํ™•์ธํ•˜์…”์•ผํ•ด์š”!! 3 read ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ๊ฒ€์ƒ‰ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 4 update ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ • ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 5 delete ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ ์ „์— ์šฐ๋ฆฌ๋Š” read ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ Get ๋ฐฉ์‹์œผ๋กœ DB์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹ค์Šต์„ ํ•˜์˜€๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” update๋กœ ๊ฐœ์ธ ์ •๋ณด ์ˆ˜์ • ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์‹ค์Šต์„ ํ•ด๋ณด์ž. ์ด๋ฒˆ๋„ ์—ญ์‹œ Controller Test๋ฅผ ๋จผ์ € ์ค€๋น„ํ•˜์ž. ๊ฒฝ๋กœ๋Š” ์ €๋ฒˆ์— read()ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋˜ test/java/repos.. 2020. 1. 27.
[Spring & Springboot-JPA] JPA๋ฅผ ์ด์šฉํ•œ CRUD ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ - 3 (read ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ๊ฒ€์ƒ‰ ๋งŒ๋“ค๊ธฐ) ํ•ด๋‹น ํฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ํ•˜๋‚˜์˜ ๊ฐœ๋…์„ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ํ•™์Šต๊ณผ ์ดํ•ด๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ํฌ์ŠคํŠธ๋„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :) 1 Jpa์˜ Entity ์„ค์ • ๋ฐ Repository ์„ค์ • 2 create๋ฉ”์„œ๋“œ๋กœ ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ-๊ผญ ํ™•์ธํ•˜์…”์•ผํ•ด์š”!! 3 read ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ๊ฒ€์ƒ‰ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 4 update ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ • ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 5 delete ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ ์ „ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” create๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ POST๋ฐฉ์‹์œผ๋กœ ํšŒ์›๊ฐ€์ž… ์ •๋ณด๋ฅผ ์„œ๋ฒ„์—๊ฒŒ Requestํ•˜์˜€๋‹ค. ์ด๋ฒˆ์€ CRUD์˜ Read๋ฅผ ํ•™์Šตํ•ด๋ณด์ž. ํ•™์Šต์€ ์–ด์ œ์™€ ๋™์ผํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ , ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์งˆ ์˜ˆ์ •์ด๋‹ค. ์ €๋ฒˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CRUD๋ฅผ ์œ„ํ•ด Controller์™€ .. 2020. 1. 27.