@MappedSuperClass, @Embedded, @Embeddable
Backend/SPRING 2021. 9. 15. 23:02

Spring JPA Hibernate์—์„œ Entity์˜ ์ƒ์†์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์ด ์ƒ๊ฒจ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. @MappedSuperClass ์—ฌ๋Ÿฌ ์—”ํ‹ฐํ‹ฐ์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์—”ํ‹ฐํ‹ฐ๋“ค์ด ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ์œ„์— ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋Š” Table๊ณผ ๋งคํ•‘๋˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•  ์ผ์ด ์—†์œผ๋ฏ€๋กœ ์ถ”์ƒ ํด๋ž˜์Šค ์„ ์–ธ์ด ๊ถŒ์žฅ๋œ๋‹ค. @Embeddable (์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค! default ์ž„) ์˜ˆ๋ฅผ ๋“ค์–ด Wardrobe Entity ๋‚ด์— ํŠน์ • Writer ์ •๋ณด(String memberName, String memberId) ๊ฐ€ ๋‹ด๊ธด๋‹ค๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ memberName, memberId๋ฅผ ๋”ฐ๋กœ ๋‘๋ฉด..

[HTTP] HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€ & ์‘๋‹ต ๋ฉ”์‹œ์ง€
Backend 2020. 6. 16. 22:28

HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ž€? ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์ง€ ์›ํ™œํ•œ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ์œ„ํ•ด ์•ฝ์†๋œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ํŠน์ง• ๋ฉ”์‹œ์ง€๊ฐ€ ์ผ๋ฐ˜ ASCII ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ด๋ฃจ์–ด์ง ๊ฐ ์ค„์€ Carriage Return & Line Feed๋กœ ๊ตฌ๋ณ„๋จ ์ฒซ์ค„์€ ์š”์ฒญ๋ผ์ธ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , ์ดํ›„ ์ค„๋“ค์€ ํ—ค๋”๋ผ์ธ์ด๋ผ๊ณ  ํ•จ ํ—ค๋”๋ผ์ธ ์ดํ›„๋กœ Entity Body๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ GET์—์„œ๋Š” ๋น„์–ด์žˆ์Œ ์š”์ฒญ๋ผ์ธ Method, URL, HTTP ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ๊ฐ€์ง€ ํ•„๋“œ๋ฅผ ๊ฐ€์ง Method : HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋‚˜ํƒ€๋ƒ„ URL : ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ„ HTTP ๋ฒ„์ „ : ๋ธŒ๋ผ์šฐ์ €์˜ HTTP ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ„ ํ—ค๋”๋ผ์ธ ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•œ Header๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์Œ HTT..

[HTTP] HTTP ์ƒํƒœ ์ฝ”๋“œ
Backend 2020. 5. 22. 01:20

1xx : ์ •๋ณด ์‘๋‹ต 1xx : ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•จ 100 :์š”์ฒญ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„ ์ผ๋ถ€๊ฐ€ ๋ฐ›์•„๋“ค์—ฌ์กŒ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” ๋‚˜๋จธ์ง€๋ฅผ ๊ณ„์† ์ด์–ด์„œ ๋ณด๋‚ด์•ผ ํ•จ์„ ์˜๋ฏธ 101 :์š”์ฒญ์ž๊ฐ€ ์„œ๋ฒ„์— ํ”„๋กœํ† ์ฝœ ์ „ํ™˜์„ ์š”์ฒญํ–ˆ์œผ๋ฉฐ, ์„œ๋ฒ„์—์„œ ์ด๋ฅผ ์Šน์ธํ•˜๋Š” ์ค‘์„ ์˜๋ฏธ 102 :์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋‚˜, ์ •ํ™•ํ•œ ์‘๋‹ต์„ ์•Œ๋ ค์ค„ ์ˆ˜ ์—†์Œ์„ ์•Œ๋ ค์คŒ 2xx : ์„ฑ๊ณต ์‘๋‹ต 2xx : ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ›์•˜์œผ๋ฉฐ ์ธ์‹ํ–ˆ๊ณ  ์ˆ˜์šฉํ•˜์˜€์Œ 200 : ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Œ, ์š”์ฒญ๋œ HTTP ๋ฉ”์„œ๋“œ๋งˆ๋‹ค ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง 201 : ์–ด๋– ํ•œ ์ƒ์„ฑ ์ž‘์—…์„ ์š”์ฒญ๋ฐ›์•˜์œผ๋ฉฐ, ์„ฑ๊ณตํ•˜์˜€์Œ 202 : ์š”์ฒญ์€ ๋ฐ›์•„๋“ค์—ฌ์กŒ์œผ๋‚˜, ๊ทธ์— ์‘ํ•˜์—ฌ ํ–‰๋™ํ•  ์ˆ˜ ์—†์Œ 203 : ์š”์ฒญ์€ ์„ฑ๊ณตํ•˜์˜€์ง€๋งŒ, ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒ€์ฆ์ด ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ์˜๋ฏธ 204 ..

REST
Backend 2020. 5. 18. 00:51

REST์˜ ๊ฐœ๋… REST๋ž€? Representational State Transfer์˜ ์•ฝ์ž ์›น์˜ ๊ธฐ์กด ๊ธฐ์ˆ ๊ณผ HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ Client์™€ Server ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜ ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์„ ์˜๋ฏธ JSON ํ˜น์€ XML์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์  REST์˜ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋… HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•ด CRUD Operation์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ ์ฆ‰, ์ž์› ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ(ROA) ์„ค๊ณ„์˜ ์ค‘์‹ฌ์— Resource๊ฐ€ ์žˆ์œผ๋ฉฐ, HTTP Method๋ฅผ ํ†ตํ•ด Resource๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ์•„ํ‚คํ…์ฒ˜ CRUD Operatio..

[Spring] ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ
Backend/SPRING 2020. 1. 18. 19:41

์Šคํ”„๋ง์ด ์™œ ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ? ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋กœ๋“œ ์กด์Šจ์ด 2004๋…„์— ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „์—” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋Œ€๋ถ€๋ถ„ EJB(Enterprise Java Beans)๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์—ˆ์ฃ . ํ•˜์ง€๋งŒ EJB๋Š” ํ•™์Šต์— ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๊ณ , ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ์ , ๊ทธ๋ฆฌ๊ณ  EJB ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ WAS(Web Application Server)๊ฐ€ ๊ต‰์žฅํžˆ ๊ณ ๊ฐ€์˜ ์žฅ๋น„์˜€๊ธฐ์— ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์™ธ๋ฉด์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  EJB์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๊ธด ์‹œ๊ฐ„๋™์•ˆ ์‚ฌ์šฉ๋ฌ๊ฒ ์ฃ . ํ•˜์ง€๋งŒ EJB์˜ ๋ฌธ์ œ์ ์€ EJB ๋‹ต๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. EJB๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด EJB์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ด์ฃผ๊ณ , ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด์„ ..