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

๐Ÿ’Š Java & Kotlin & Spring/- spring framework +43

[Spring & Springboot-JPA] JPA๋ฅผ ์ด์šฉํ•œ CRUD ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ - 2 (create ๋ฉ”์„œ๋“œ๋กœ ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ) ํ•ด๋‹น ํฌ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ํ•˜๋‚˜์˜ ๊ฐœ๋…์„ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•œ ํ•™์Šต๊ณผ ์ดํ•ด๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ํฌ์ŠคํŠธ๋„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :) 1 Jpa์˜ Entity ์„ค์ • ๋ฐ Repository ์„ค์ • 2 create๋ฉ”์„œ๋“œ๋กœ ํšŒ์›๊ฐ€์ž… ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ-๊ผญ ํ™•์ธํ•˜์…”์•ผํ•ด์š”!! 3 read ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ๊ฒ€์ƒ‰ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 4 update ๋ฉ”์„œ๋“œ๋กœ ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ • ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ 5 delete ๋ฉ”์„œ๋“œ๋กœ ํšŒ์› ํƒˆํ‡ด ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ ์ „ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” CRUD๋ฅผ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์„ค์ •์„ ํ•˜์˜€๋‹ค. ์ด์ œ ์‹ค์ œ Controller์„ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž! ํ•™์Šต์€ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ์ˆœ์„œ๋กœ ์ด๋ฃจ์–ด์งˆ ์˜ˆ์ •์ด๋‹ค. CRUD๋ฅผ ์œ„ํ•œ Controller์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•ด๋ณด์ž. ์ „์— User์— ๋Œ€ํ•œ Entity์™€ Repo.. 2020. 1. 27.
[Spring & Springboot-JPA] JPA๋ฅผ ์ด์šฉํ•œ CRUD ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•˜๊ธฐ - 1 (Entity ์„ค์ • ๋ฐ Repository ์„ค์ •) ํ•ด๋‹น ๊ธ€์€ 1ํ™” 2ํ™”(https://wonit.tistory.com/128?category=738059)๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ํ•™์Šต์„ ์œ„ํ•ด ๋ชจ๋‘ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ ค์š” :) CRUD๋ž€? CRUD๋Š” ์กด์žฌํ•˜๋Š” ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ๋œปํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ๋งŒ ์„ค๋ช…ํ•˜๋ฉด ๋ง์ด ๋„ˆ๋ฌด ์–ด๋ ค์šฐ๋ฏ€๋กœ ์‰ฝ๊ฒŒ ๋ง ํ•ด์„œ ๋กœ๊ทธ์ธํ•˜๊ณ , ๊ธ€์„ ์˜ฌ๋ฆฌ๊ณ , ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉฐ, ๋‚ด๊ฐ€ ์ฐœํ•œ ๋ชฉ๋ก์„ ์‚ญ์ œํ•˜๋Š” ๋“ฑ ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ฒ˜๋ฆฌ์˜ ๊ฐ€์žฅ ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ์ดˆ์„์„ ๋œปํ•œ๋‹ค. C Create ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ ๋˜๋Š” ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. SQL์˜ insert์— ํ•ด๋‹นํ•œ๋‹ค. R Read ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. SQL์˜ select์— ํ•ด๋‹นํ•œ๋‹ค. U Update ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์ƒˆ๋กญ๊ฒŒ ๊ฐฑ์‹ ์‹œํ‚ค๋Š” .. 2020. 1. 27.
[Spring & Springboot ๊ณตํ†ต] HTTP Method - POST ๋ฐ”๋กœ ์ „ ํฌ์ŠคํŠธ์—์„œ ์šฐ๋ฆฌ๋Š” HTTP Method-GET์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ, Get ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด๋Š” ๋…์ž๋ผ๋ฉด ํ•œ ๋ฒˆ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. HTTP - POST Post ๋ฉ”์„œ๋“œ๋Š” Form์„ ์ด์šฉํ•˜์—ฌ ์ •๋ณด๋ฅผ ๋ฐ›์„ ๋•Œ๋‚˜ ํ˜น์€ ajax์˜ ๋น„๋™๊ธฐํ™”๋ฅผ ํ•  ๋•Œ, ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰์— ์‚ฌ์šฉ๋œ๋‹ค. ์‚ฌ์‹ค Post๋กœ ๋ฐ›๋˜ Get์œผ๋กœ ๋ฐ›๋˜ ๋™์ผํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Get๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์กด์žฌํ•˜๊ณ  ๋˜ Post๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์กด์žฌํ•˜๋Š”๋ฐ, ํฐ ํŠน์ง•์ด๋ผ๊ณ  ํ•จ์€ Post๋ฐฉ์‹์€ URL์— ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ณ  RequestBody์— ๊ฐ์‹ธ์ ธ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ๋‹ค. Post Method๊ฐ€ ์ฃผ๋กœ ํ•˜๋Š” ์ผ์€? Post๋‚˜ Get์ด๋‚˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„˜๊ธฐ๋Š” ๊ฒƒ์€ ๋˜‘๊ฐ™์€๋ฐ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ ์ด ๊ฒƒ.. 2020. 1. 24.
[Spring & SpringBoot ๊ณตํ†ต] HTTP Method - GET ์›น์—์„œ ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ HTTP Method๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์˜ค๋Š˜์€ GET ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. HTTP - GET GET ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ์ •๋ณด ๋˜๋Š” ์ž์›์„ ์กฐํšŒํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, ์กฐ๊ธˆ ๋” ์ง๊ด€์ ์œผ๋กœ ํ‘œํ˜„ํ•ด๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ˜ธํ…” ์˜ˆ์•ฝ ์„œ๋น„์Šค ๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ GET ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•ด๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์˜ˆ์•ฝ ๊ฐ€๋Šฅ ํ˜ธํ…” ๊ฒ€์ƒ‰ ํ˜ธํ…” ์ •๋ณด ๊ฒ€์ƒ‰ ๋‚˜์˜ ์˜ˆ์•ฝ ์ •๋ณด ์œ„์—์„œ ๋ง ํ–ˆ๋“ฏ์ด GET ๋ฉ”์„œ๋“œ๋Š” ์ •๋ณด ๋ฐ ์ž์›์„ ์กฐํšŒํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ € ์„ธ๊ฐ€์ง€๊ฐ€ ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž HTTP GET์˜ ํ˜•ํƒœ๋Š” ์ฃผ์†Œ์ฐฝ์— ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ํŠน์ง•์ด ์žˆ๋Š”๋ฐ ์ด๋Š” ๋ฌด์Šจ ๋ง์ด๋‚˜๋ฉด https://wonit.tistory.com/49?category=738834 ์ด.. 2020. 1. 19.
[Spring & Springboot-JPA] 1) Springboot์—์„œ Mysql์„ JPA ์™€ ์—ฐ๋™ํ•˜๊ธฐ. JPA๋ž€? JPA๋ฅผ intelliJ์—์„œ ์—ฐ๋™ํ•˜๊ธฐ ์ „์— ๊ฐ„๋‹จํ•˜๊ฒŒ JPA์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ณ  ๊นŠ์€ ์„ค๋ช…์„ ์›ํ•˜๋Š” ์‚ฌ๋žŒ์€ Heee's DEV ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค! JPA๋Š” Java ์ง„์˜ ORM(Object-Relational-Mapping) ํ‘œ์ค€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜๋กœ, ๊ธฐ์กด์— ์ฟผ๋ฆฌ๋ฌธ์„ ์ง์ ‘ ๋‚ ๋ฆฌ๋ฉด์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ SQL๋ฌธ๋ฒ•์œผ๋กœ ๊ณ ์ƒ์„ ํ–ˆ๋˜ ๊ณผ๊ฑฐ ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ SQL๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด ๋˜ํ•œ ๊ฐ์ฑ„ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์กฐ๊ธˆ ๋” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ORM-Library์ด๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฟผ๋ฆฌ๋ฌธ์„ ๋‚ ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๊ณ ? ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์— ์กฐ๊ธˆ ๋” ์‹ ๊ฒฝ์“ฐ๋ฉด ๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด ๋ง์€ ์šฐ๋ฆฌ๋Š” ๋” ์ด์ƒ JDBC๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์†Œ๋ฆฌ.. 2019. 11. 23.
02 Lombok Lombok ์ด๋ž€? Getter/Setter ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑ์ž๋“ค์„ Annotation์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒ์‚ฐ์„ฑ์„ ๋†’ํ˜€์ฃผ๋Š” ๋„๊ตฌ gradle์— dependencise ์— Lombok์„ ์ถ”๊ฐ€์‹œ์ผœ์•ผ ํ•œ๋‹ค. dependencies{ compile('org.projectlombok:lombok) // lombok ์ถ”๊ฐ€ implementation 'org.springframework.boot:spring-boot-starter-web' textImplementation 'org.springframework.boot:spring-boot-starter-web' } public class SearchParam { private String name; priva.. 2019. 11. 23.