Language & Framework/Spring2023. 3. 4. 08:48[์Šคํ”„๋ง MVC] API ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. API ์˜ˆ์™ธ ์ฒ˜๋ฆฌ HTML ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ ๊ทธ์— ๋งž๋Š” ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋งŒ ์žˆ์œผ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, API์˜ ๊ฒฝ์šฐ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ ์ด ๋” ๋งŽ๋‹ค. ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋Š” ๋‹จ์ˆœํžˆ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์˜ค๋ฅ˜ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ณ  ๋์ด์ง€๋งŒ, API๋Š” ๊ฐ ์˜ค๋ฅ˜ ์ƒํ™ฉ์— ๋งž๋Š” ์˜ค๋ฅ˜ ์‘๋‹ต ์ŠคํŽ™์„ ์ •ํ•˜๊ณ  JSON์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด์•ผ ํ•œ๋‹ค. @RequestMapping ์• ๋…ธํ…Œ์ด์…˜์˜ produces ์˜ต์…˜์„ MediaType.APPLICATION_JSON_VALUE์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, HTTP ํ—ค๋”์˜ Accept ๊ฐ’์ด application/json์ผ ๋•Œ๋งŒ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ ๊ธฐ๋ณธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์˜ค๋ฅ˜ ๋ฐฉ์‹(BasicErrorController..

Language & Framework/Spring2023. 3. 3. 22:11[์Šคํ”„๋ง MVC] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์˜ค๋ฅ˜ ํŽ˜์ด์ง€

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ - ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์Šคํ”„๋ง์ด ์•„๋‹Œ ์ˆœ์ˆ˜ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค. 1. Exception(์˜ˆ์™ธ) 1-1. ์ž๋ฐ”์˜ ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์‹คํ–‰ ๋„์ค‘์— ์˜ˆ์™ธ๋ฅผ ์žก์ง€ ๋ชปํ•˜๊ณ  ์ฒ˜์Œ ์‹คํ–‰ํ•œ ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ๋„˜์–ด์„œ ์˜ˆ์™ธ๊ฐ€ ๋˜์ ธ์ง€๋ฉด, ์˜ˆ์™ธ ์ •๋ณด๋ฅผ ๋‚จ๊ธฐ๊ณ  ํ•ด๋‹น ์“ฐ๋ ˆ๋“œ๋Š” ์ข…๋ฃŒ๋œ๋‹ค. 1-2. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‚ฌ์šฉ์ž ์š”์ฒญ ๋ณ„๋กœ ๋ณ„๋„์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ• ๋‹น๋˜๊ณ , ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‹คํ–‰๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ์˜ˆ์™ธ๋ฅผ ์žก์ง€ ๋ชปํ•˜๊ณ  ์„œ๋ธ”๋ฆฟ ๋ฐ–์œผ๋กœ๊นŒ์ง€ ์˜ˆ์™ธ๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด WAS๊นŒ์ง€ ์˜ˆ์™ธ๊ฐ€ ์ „๋‹ฌ๋˜๊ณ , WAS๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์˜ค๋ฅ˜ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ์ด ๊ฒฝ์šฐ HTTP ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ 500์„ ..

Language & Framework/Spring2023. 3. 3. 03:35[์Šคํ”„๋ง MVC] ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ(2) - ํ•„ํ„ฐ, ์ธํ„ฐ์…‰ํ„ฐ

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๊ณตํ†ต ๊ด€์‹ฌ ์‚ฌํ•ญ '๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ(1) - ์ฟ ํ‚ค, ์„ธ์…˜'์—์„œ ์ •์˜ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ฅด๋ฉด ๋กœ๊ทธ์ธ์„ ํ•œ ์‚ฌ์šฉ์ž๋งŒ ์ƒํ’ˆ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ƒํ’ˆ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์˜ URL์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋„ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์กด์žฌํ•œ๋‹ค. ์ƒํ’ˆ ๊ด€๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๋Š” ๋กœ์ง์„ ์ผ์ผ์ด ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ/์กฐํšŒ ๋“ฑ ๋ชจ๋“  ์ปจํŠธ๋กค๋Ÿฌ ๋กœ์ง์— ๊ณตํ†ต์œผ๋กœ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋ฉฐ ๋กœ๊ทธ์ธ๊ณผ ๊ด€๋ จ๋œ ๋กœ์ง์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ž‘์„ฑํ•œ ๋ชจ๋“  ๋กœ์ง์„ ๋‹ค ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฌ๋Ÿฌ ๋กœ์ง์—์„œ ๊ณตํ†ต์œผ๋กœ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ถ€๋ถ„์„ '๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ'๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ์ƒํ™ฉ์—์„œ์˜ ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋Š” '์ธ์ฆ'์ด..

Language & Framework/Spring2023. 3. 2. 12:41[์Šคํ”„๋ง MVC] ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ(1) - ์ฟ ํ‚ค, ์„ธ์…˜

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์š”๊ตฌ์‚ฌํ•ญ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ ํŒŒํŠธ ํ•™์Šต์€ ์•„๋ž˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. 1. ๋กœ๊ทธ์ธ ์ „ ํ™ˆ ํ™”๋ฉด์—๋Š” ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ์กด์žฌํ•œ๋‹ค. 2. ๋กœ๊ทธ์ธ ํ›„ ํ™ˆ ํ™”๋ฉด์—๋Š” ํšŒ์› ์ด๋ฆ„, ์ƒํ’ˆ ๊ด€๋ฆฌ ๋ฒ„ํŠผ, ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ์ด ์กด์žฌํ•œ๋‹ค. 3. ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๋งŒ ์ƒํ’ˆ์— ์ ‘๊ทผํ•˜๊ณ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ’ˆ ๊ด€๋ฆฌ์— ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ๊ธฐ๋ณธ ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ ๋กœ๊ทธ์ธ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋น„์Šค ๋กœ์ง์„ ํ˜ธ์ถœํ•˜์—ฌ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด ํ™ˆ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ณ , ๋กœ๊ทธ์ธ์— ์‹คํŒจํ•˜๋ฉด BindingResult์˜ reject() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ObjectError๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋„๋ก ๋กœ๊ทธ์ธ ํผ์„ ๋ทฐ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์‚ฌ์šฉํ•˜..

Language & Framework/Spring2023. 2. 21. 19:11[์Šคํ”„๋ง MVC] ๊ฒ€์ฆ(2) - Bean Validation

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. Bean Validation์ด๋ž€ ๊ฒ€์ฆ ์• ๋…ธํ…Œ์ด์…˜๊ณผ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ชจ์€ ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ, ๊ฐ’์˜ ๋น„์–ด์žˆ๋Š” ์—ฌ๋ถ€๋‚˜ ๋ฒ”์œ„๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ผ๋ฐ˜์ ์ธ ๋กœ์ง์„ ๊ฒ€์ฆํ•  ๋•Œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ณตํ†ตํ™”ํ•˜๊ณ  ํ‘œ์ค€ํ™”ํ•œ ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” build.gradle์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜์กด๊ด€๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. implementation 'org.springframework.boot:spring-boot-starter-validation' ๊ฒ€์ฆ ์• ๋…ธํ…Œ์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. @NotBlank ๋นˆ ๊ฐ’์ธ ๊ฒฝ์šฐ ํ˜น์€ ๊ณต๋ฐฑ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. @NotNull null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. @Range(min = 10,..

Language & Framework/Spring2023. 2. 12. 01:58[์Šคํ”„๋ง MVC] ๊ฒ€์ฆ(1) - Validation

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๊ฒ€์ฆ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ค‘์š”ํ•œ ์—ญํ•  ์ค‘ ํ•˜๋‚˜๋Š” HTTP ์š”์ฒญ์ด ์ •์ƒ์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ ๊ฒ€์ฆ๋งŒ์œผ๋กœ๋Š” ์กฐ์ž‘์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๊ณ , ์„œ๋ฒ„๋งŒ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ฉด ์ฆ‰๊ฐ์ ์ธ ๊ณ ๊ฐ ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋‘˜์„ ์ ์ ˆํžˆ ์„ž์–ด ์‚ฌ์šฉํ•˜๋˜ ์ตœ์ข…์ ์œผ๋กœ ์„œ๋ฒ„ ๊ฒ€์ฆ์„ ๊ฑฐ์น˜๋„๋ก ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค. ๊ฒ€์ฆ ์ง์ ‘ ์ฒ˜๋ฆฌ ๋กœ์ง 1. Map errors = new HashMap();์„ ์„ ์–ธํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ด€ํ•  ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๊ณ  ๊ฒ€์ฆ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ•„๋“œ๋ช…์„ key๋กœ, ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ value๋กœ ์ €์žฅํ•œ๋‹ค.(์˜ค๋ฅ˜ ์›์ธ์ด ํŠน์ • ํ•„๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•„๋“œ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„œ๋Š” ์˜ค๋ฅ˜๋ผ๋ฉด globalError๋ฅผ key๋กœ ์‚ฌ์šฉํ•œ๋‹ค.) ์ดํ›„ ๋ทฐ์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ..

Language & Framework/Spring2023. 2. 11. 07:18[์Šคํ”„๋ง MVC] ๋ฉ”์‹œ์ง€, ๊ตญ์ œํ™”

์Šคํ”„๋ง MVC 2ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ / ๊ตญ์ œํ™” ๋ฉ”์‹œ์ง€ ๊ธฐ๋Šฅ์€ ๋‹ค์–‘ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ผ์ปซ๋Š”๋‹ค. ์—ฌ๋Ÿฌ ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ ๋“ฑ์„ ์ผ์ผ์ด ํ•˜๋“œ์ฝ”๋”ฉํ•œ ์ƒํ™ฉ์—์„œ ์ดํ›„์— ๋‹จ์–ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๊ด€๋ จ๋œ ํŒŒ์ผ์„ ์ „๋ถ€ ๊ณ ์ณ์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋Œ€์‹  ๋ฉ”์‹œ์ง€ ๊ด€๋ฆฌ์šฉ ํŒŒ์ผ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•œ๋‹ค๋ฉด ๊ด€๋ฆฌ ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€ ํŒŒ์ผ์„ ๊ฐ ๋‚˜๋ผ์˜ ์–ธ์–ด๋ณ„๋กœ ๊ด€๋ฆฌํ•˜๋ฉด ์„œ๋น„์Šค๋ฅผ ๊ตญ์ œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. HTTP accept-language ํ—ค๋” ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๋Š” ๋“ฑ ์ ‘๊ทผ ๊ตญ๊ฐ€๋ฅผ ์ธ์‹ํ•˜์—ฌ ํ•ด๋‹น ๊ตญ๊ฐ€์˜ ์–ธ์–ด๋กœ ์ œ๊ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์Šคํ”„๋ง ๋ฉ”์‹œ์ง€ ์†Œ์Šค ์„ค์ • spring.messages.basename=..

Language & Framework/Spring2023. 2. 5. 02:59[์Šคํ”„๋ง MVC] ๊ธฐ๋ณธ ๊ธฐ๋Šฅ

์Šคํ”„๋ง MVC 1ํŽธ์˜ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ์š”์ฒญ ๋งคํ•‘ ๋งคํ•‘ ์ •๋ณด ํด๋ž˜์Šค์— @Controller๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ ๊ฐ’์ด String์ด๋ฉด ๋ทฐ ์ด๋ฆ„์œผ๋กœ ์ธ์‹๋˜๋Š” ๋ฐ˜๋ฉด, @RestController์˜ ๊ฒฝ์šฐ ๋ทฐ ์ด๋ฆ„์ด ์•„๋‹Œ ํ•ด๋‹น ๋ฌธ์ž์—ด์„ HTTP ๋ฐ”๋””์— ๋ฐ”๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค. ๋”๋ถˆ์–ด @RequestMapping์„ ์ด์šฉํ•จ์œผ๋กœ์จ ํŠน์ • URL๊ณผ ๋งคํ•‘์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ URL์„ ๋ฐฐ์—ด๋กœ ๋“ฑ๋กํ•จ์œผ๋กœ์จ ๋‹ค์ค‘ ์„ค์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. HTTP ๋ฉ”์„œ๋“œ @RequestMapping์— ๋ฉ”์„œ๋“œ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”์„œ๋“œ์— ๊ด€๊ณ„์—†์ด ํ˜ธ์ถœ๋˜์ง€๋งŒ, @RequestMapping(value = "/mapping-get", method = RequestMethod.GET)์™€ ๊ฐ™์ด ์†์„ฑ์„ ์ง€์ •ํ•  ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ 40..

image