Spring ํ™œ์šฉ ์›น ๊ฐœ๋ฐœ

2023. 3. 13. 14:50ใ†Spring

Spring.io

4.15.1 ๋ฒ„์ „ 2๋ฒˆ์งธ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

SpringToolSuite4 ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์—ด์–ด์„œ ์•„๋ž˜ ์ˆซ์ž ๋ฐ”๊ฟ”์คŒ

-Xms2048m

-Xmx4096m

 

Spring ์ด์šฉ์‹œ ์ฃผ์˜ : ๋„์›Œ์“ฐ๊ธฐ๋„ ๋‹ค ๋ฌธ์ž์—ด๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•  ๊ฒƒ.

 

Spring ์ด์šฉํ•˜์—ฌ page ์ด๋™

Controller class๋กœ ์ƒ์„ฑ

๊ธฐ๋ณธ package์ธ com.study.test ์•ˆ์— ๋‹ค๋ฅธ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด์•ผ ์ž‘๋™ ๋จ!!

(๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ถ€์—์„œ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” ๊ฒƒ๋“ค์ด ๋งŽ์•„์„œ)

 

 

Spring ํŽ˜์ด์ง€ ์ด๋™

 

Controller class์— ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ @Controller ์ ์–ด์ฃผ๊ธฐ!

@Controller : ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค์ž„์„ ์ง€์ •

์ดํด๋ฆฝ์Šค ์›น ๊ฐœ๋ฐœ์—์„œ Controller์—์„œ if๋ฌธ์œผ๋กœ ์‹คํ–‰๋ฌธ ์ž‘์„ฑํ–ˆ๋˜ ๊ฒƒ๋“ค์„ ๋ฉ”์†Œ๋“œ๋กœ ๋Œ€์ฒดํ•จ.

@GetMapping("/test") : if๋ฌธ์—์„œ ์กฐ๊ฑด command.equals("/") ์˜ ์—ญํ•  ํ•ด์ฃผ๋Š” ๊ฒƒ.

return : "๋ฉ”์†Œ๋“œ ์‹คํ–‰ ํ›„ ์ฐพ์•„๊ฐˆ ํŽ˜์ด์ง€" : ํŽ˜์ด์ง€ ์ด๋™ (ํ™•์žฅ์ž ์“ฐ์ง€ ๋ง๊ธฐ)

์ด๋™ ํŽ˜์ด์ง€๋Š” template ์•ˆ์˜ html ํŒŒ์ผ์„ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ.

 

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ›„ ์ฒซ run์€ TestApplication ํŽ˜์ด์ง€์—์„œ ํ•  ๊ฒƒ (TestApplication์— ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ ์žˆ๊ธฐ ๋•Œ๋ฌธ)

์‹คํ–‰ ํ›„ ์ž๋™์œผ๋กœ ์ธํ„ฐ๋„ท ์ฐฝ ์‹คํ–‰ ์•ˆ ๋จ.

์ˆ˜๋™์œผ๋กœ ์ธํ„ฐ๋„ท ์ฃผ์†Œ์ฐฝ์— localhost:8080/test 

> ์ดํด๋ฆฝ์Šค์˜ ํ†ฐ์บฃ 8080์œผ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œ๋จ

application.properties์— ์•„๋ž˜ ๋‚ด์šฉ ์ถ”๊ฐ€

Spring์—์„œ๋Š” ์‚ฌ์šฉํ•˜๋Š” port 8081๋กœ ๋ฐ”๊ฟ”์คŒ

์ˆ˜๋™์œผ๋กœ ์ธํ„ฐ๋„ท ์ฃผ์†Œ์ฐฝ์— localhost:8081/test

test ์˜๋ฏธcontroller์— ์žˆ๋Š” @GetMapping("/test")์˜ test

 

thymeleaf : ๋ณด์—ฌ์งˆ ํ™”๋ฉด ๊ทธ๋ฆผ (์ดํด๋ฆฝ์Šค jsp ์—ญํ• )

๋ณด์—ฌ์ง„ ํ™”๋ฉด ์ƒˆ๋กœ๊ณ ์นจ ํ•˜๋ฉด ๋ฐ”๋กœ ์ ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ ์•„๋ž˜ ๋‚ด์šฉ ์ถ”๊ฐ€

Spring์—์„œ๋Š” ํ†ฐ์บฃ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์„œ ๋‹ค์‹œ runํ•  ๋•Œ

ํ”„๋กœ์ ํŠธ ๐ŸŸฅ ์ข…๋ฃŒ ํ›„, ์˜†์— โœ– ํ‘œ์‹œ๊นŒ์ง€ ํ•œ๋ฒˆ ๋” ๋ˆŒ๋Ÿฌ์ค€ ํ›„ run

 

**port๋ณ€๊ฒฝ ๋ฐ thymeleaf ๋ฐ”๋กœ ์ ์šฉ ๋‚ด์šฉ์€ ์•ž์œผ๋กœ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ application.properties์— ์ถ”๊ฐ€.

 

@RequestMapping : /board๋ผ๊ณ  ์‹œ์ž‘๋˜๋Š” ์š”์ฒญ์€ ๋‹ค ๋ฐ›์Œ

์ดํด๋ฆฝ์Šค์˜ (/*.bo)์™€ ๊ฐ™์€ ๋А๋‚Œ

a ํƒœ๊ทธ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ด๋™

form ํƒœ๊ทธ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ด๋™

form ํƒœ๊ทธ์˜ ๋ฉ”์†Œ๋“œ post์ผ ๊ฒฝ์šฐ @PostMapping  ์‚ฌ์šฉ

 

๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•

 

๋ฐฉ๋ฒ• 1.

๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ input ํƒœ๊ทธ์˜ name ์†์„ฑ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

์ดํด๋ฆฝ์Šค์™€ ๋‹ฌ๋ฆฌ ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆซ์ž์ผ ๊ฒฝ์šฐ์— ์ž๋ฃŒํ˜• ๋ณ€ํ™˜ ์ž‘์—… ์—†์ด int ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๋กœ ๋ฐ›์œผ๋ฉด ๋จ.

 

๋ฐฉ๋ฒ•2.

๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ํด๋ž˜์Šค(boardVO** - DTO์™€ ๊ฐ™์€ ์—ญํ• )๋ฅผ ๋งŒ๋“ค์–ด์„œ ํด๋ž˜์Šค ์•ˆ์˜ ๋ณ€์ˆ˜๋“ค์˜ ์ด๋ฆ„์„

html์˜ ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋‹ค ๋ฐ›์•„์˜จ๋‹ค.

๋ฐ์ดํ„ฐ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ์ฝ˜์†”์ฐฝ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
**VO์˜ ์˜๋ฏธ : Value Object

 

 

Controller์—์„œ html๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ

 

set.Attribute ๋Œ€์‹  addAttribute ์‚ฌ์šฉ

 

html์—์„œ Controller์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ ๋ฝ‘๋Š” ๋ฐฉ๋ฒ•

 

<ํƒœ๊ทธ ์•ˆ์— th:text="${๋ฐ›์„ ๋ฐ์ดํ„ฐ ์ด๋ฆ„}">         **divํƒœ๊ทธ๋งŒ ๋˜๋Š” ๊ฒƒX ์˜ˆ์‹œ์ž„.

boardVO(์ปค๋งจ๋“œ ๊ฐ์ฒด : ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง„ ๋ณ€์ˆ˜ ์ด๋ฆ„ = html ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ ์ด๋ฆ„)๋Š”

๋ฐ์ดํ„ฐ ๋„˜๊ธฐ๋Š” ์ฝ”๋“œ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ ์ž๋™์œผ๋กœ ๋„˜์–ด์˜ด.

์ปค๋งจ๋“œ ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ ์ž๋™์œผ๋กœ ๋„˜๊ฒจ์ค€๋‹ค.

๋ฐ์ดํ„ฐ ์ž๋™์œผ๋กœ ๋„˜์–ด์˜ค๋Š” ๊ฒƒ ํ™•์ธ ๊ฐ€๋Šฅ