๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Spring ์Šคํ”„๋ง (32)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Spring Data JDBC, JPA] @Embeded๋ž€?, @Embeded ์‚ฌ์šฉํ•˜๊ธฐ

@Embeded ์—ฐ๊ด€ ์žˆ๋Š” ์ปฌ๋Ÿผ๋“ค์„ ๋ฌถ๋˜ ํ…Œ์ด๋ธ”์„ ์ƒˆ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ , @Embeded๋ฅผ ์‚ฌ์šฉํ•ด ๋งˆ์น˜ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค!! [JPA] @Embeded, ์ž„๋ฒ ๋””๋“œ ํƒ€์ž… https://velog.io/@conatuseus/JPA-%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C-%ED%83%80%EC%9E%85embedded-type-8ak3ygq8wo ์— ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์–ด ์š”์•ฝ ์ •๋ฆฌ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ™‡‍โ™€๏ธ JPA์—์„œ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…(๋ณตํ•ฉ ๊ฐ’ ํƒ€์ž…)์ด๋ž€ ์ƒˆ๋กœ์šด ๊ฐ’ ํƒ€์ž…์„ ์ง์ ‘ ์ •์˜ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ž„๋ฒ ๋””๋“œ ํƒ€์ž… ์—ญ์‹œ int, String์ฒ˜๋Ÿผ ๊ฐ’ ํƒ€์ž…์ด๋‹ค. โ“ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…์„ ์“ฐ๋Š” ์ด์œ  โ— ์ƒ์„ธํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ด€๋ จ ์žˆ๋Š” ํƒ€์ž…์œผ๋กœ ๋ฌถ์–ด ๊ฐ์ฒด์ง€ํ–ฅ์ ์ด๊ณ  ์‘์ง‘๋ ฅ ๋†’๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„..

@RequestMapping ์œผ๋กœ ์ค‘๋ณตURL ์ œ๊ฑฐํ•˜๊ธฐ

@RequestMapping ์‚ฌ์šฉ๋ฒ• ๊ณต๋ถ€ํ•ด์„œ ์ค‘๋ณตURL ์ œ๊ฑฐํ•˜์ž. ์ฐธ๊ณ  : ๋ธ”๋กœ๊ทธ. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! @RequestMapping ์–ด๋…ธํ…Œ์ด์…˜์€ HTTP request๋กœ ๋“ค์–ด์˜ค๋Š” URL์„ ํŠน์ • ์ปจํŠธ๋กค๋Ÿฌ์˜ ํด๋ž˜์Šค ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. (์ปจํŠธ๋กค๋Ÿฌ์˜ ํด๋ž˜์Šค ๋ฐ ํŠน์ • ๋ฉ”์†Œ๋“œ ๋ชจ๋‘ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค) ์‚ฌ์‹ค์€ URL ๋ฟ ์•„๋‹ˆ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ, ํ—ค๋” ๋“ฑ ์—ฌ๋Ÿฌ ๋ฒ”์œ„์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด ๋‚˜์ค‘์— ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค. @RequestMapping ๋ฅผ ํด๋ž˜์Šค์— ์„ ์–ธํ•˜๋ฉด ์ค‘๋ณตURL์„ ์ œ๊ฑฐํ•  ๋•Œ ์ข‹๋‹ค. ์•„๋ž˜๋Š” ์˜ˆ์ œ. @Controller @RequestMapping("/home") public class TestController { @RequestMapping("/") String getName(){ retur..

[Spring, H2 database] ์Šคํ”„๋ง ์•ฑ๊ณผ H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐํ•˜๊ธฐ

์‚ฌ์‹ค์ƒ ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•œ ๊ฒƒ์ด์ง€๋งŒ... ๊ทธ๋™์•ˆ ์ธ๊ฐ•, ์ˆ˜์—…, ๋ฏธ์…˜ ํ•˜๋ฉฐ ๋ฐฐ์šด ๊ฑธ ์ˆœ์„œ๋Œ€๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค. (H2๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์Šคํ”„๋ง ๋ถ€ํŠธ, gradle, JPA ์‚ฌ์šฉ) 0. H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜ H2๋Š” ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ, ๊ต์œก ์šฉ๋„์˜ DB์ด๋‹ค. ํ™ˆํŽ˜์ด์ง€ ๊ฐ€๋ณ๊ณ (์šฉ๋Ÿ‰์ด ์ž‘๋‹ค) ํŽธ๋ฆฌํ•˜๋‹ค ์›น ํ™”๋ฉด์„ ์ œ๊ณตํ•ด ์ค€๋‹ค. ์œ„ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜ ํ›„ h2.shํŒŒ์ผ์„ ์‹คํ–‰ํ•œ๋‹ค. (๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ™ˆ(~)์— ์„ค์น˜๋œ๋‹ค) H2 - bin - h2.sh ์‹คํ–‰ git bash๋ฅผ ์ด์šฉํ•˜๋ฉด ํŽธํ•˜๋‹ค. cd ~/H2 - cd bin - ./h2.bat ์œˆ๋„์šฐ๋Š” h2.bat (๊นƒ๋ฐฐ์‹œ์—์„œ๋Š” ./h2.bat) ์‹คํ–‰ ๋งฅ์€ ./h2.sh ์‹คํ–‰ ์ฐธ๊ณ  : ์ข…๋ฃŒ๋Š” Ctrl + c ๋กœ ์ข…๋ฃŒ. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ '์›น ์ฝ˜์†”&#39..

Heroku๋กœ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌํ•˜๊ธฐ

Heroku๋กœ ์Šคํ”„๋ง ์•ฑ ๋ฐฐํฌํ•˜๊ธฐ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•, ๋กœ์น˜์˜ ๋…ธ์…˜, main์™ธ์˜ ๋ธŒ๋žœ์น˜๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ• master๊ฐ€ ์•„๋‹Œ forkํ•œ ๋ธŒ๋žœ์น˜๋ช…์œผ๋กœ ๋ฐฐํฌํ•ด์•ผ ํ–ˆ๋Š”๋ฐ ๋ช…๋ น์–ด๊ฐ€ ์กฐ๊ธˆ ๋‹ฌ๋ผ์„œ ์•ˆ ๋๋˜ ๊ฑฐ์˜€๋‹ค!! ๋„์›€ ์ฃผ์‹  ๊ทธ๋ฃน์› coco, sky ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ™‡‍โ™€๏ธ๐Ÿ™‡‍โ™€๏ธ ๋จผ์ € Heroku ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ  Heroku CLI๋ฅผ ๋‹ค์šด๋กœ๋“œ, ์„ค์น˜ํ•œ๋‹ค. (https://devcenter.heroku.com/articles/deploying-spring-boot-apps-to-heroku) ํ„ฐ๋ฏธ๋„์—์„œ heroku login์„ ์ž…๋ ฅํ•˜๊ณ  ๋งŒ๋“  ํ—ค๋กœ์ฟ  ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•œ๋‹ค. heroku keys๋ฅผ ์ž…๋ ฅํ•ด SSH ํ‚ค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด heroku keys:add๋กœ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ฐฐํฌํ•  ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ..

ํšŒ์›๊ฐ€์ž… ๋ฐ ํšŒ์›์กฐํšŒ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ - <form>, GET/POST, ๋ฆฌ๋‹ค์ด๋ ‰์…˜

ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์—์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„ ์ถœ๋ ฅํ•œ๋‹ค. ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์†์„ฑ action : ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์–ด๋–ค URL๋กœ ๋ณด๋‚ผ์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ. : ํ•ด๋‹น form์œผ๋กœ๋ถ€ํ„ฐ /create๋กœ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ„ URL์ด ์ถ”๊ฐ€๋˜๋ฉด ํ•ญ์ƒ ์ƒ์‘ํ•˜๋Š” Controller ๋ฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. formํƒœ๊ทธ์— ์•„๋ฌด ์†์„ฑ์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ GET๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ํ•œ๋‹ค. index.mustache ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ œ์ถœ ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์ œ์ถœํ–ˆ์„ ๋•Œ์˜ URL : http://localhost:8080/create?userid=&password=&username=&useremail= UserController...