๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๊ฐœ์ธ ๊ณต๋ถ€84

@ExceptionHandler, @ControllerAdvice โœ… ExceptionHandler - ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•ธ๋“ค๋Ÿฌ - ํŠน์ • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•จ - ์ง€์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ ์•„๊ทœ๋จผํŠธ๊ฐ€ ์ผ๋ฐ˜ ํ•ธ๋“ค๋Ÿฌ๋ณด๋‹ค๋Š” ํ•œ์ •์ ์ž„ - ์˜ˆ์™ธ ๊ฐ์ฒด, ํ•ธ๋“ค๋Ÿฌ ๊ฐ์ฒด, ๋ชจ๋ธ ๋“ฑ (๊ณต์‹ ๋ฌธ์„œ ์ฐธ๊ณ ) ๋‹ค๋ฅธ ํ•ธ๋“ค๋Ÿฌ์—์„œ TestException์„ ๋˜์ง€๋ฉด, testErrorHandler๊ฐ€ ๋™์ž‘ํ•˜๊ณ  ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ - REST API์˜ ๊ฒฝ์šฐ ์ต์…‰์…˜ ํ•ธ๋“ค๋Ÿฌ ๋ฆฌํ„ด ํƒ€์ž…์œผ๋กœ ResponseEntity๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. โœ… ControllerAdvice - ํŠน์ • ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์—์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ชจ๋“  ์ปจํŠธ๋กค๋Ÿฌ์— ๊ฑธ์ณ์„œ ExceptionHandler, InitBinder, ModelAttributes ๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ - @ContrllerAdvice ์†์„ฑ์œผ๋กœ ์ ์šฉํ•  ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. @Targ.. 2024. 3. 1.
@SessionAttribute, @SessionAttriubtes โœ… ๊ฐ์ฒด๋ฅผ ์„ธ์…˜์— ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ์–ด๋–ค ์ •๋ณด๋ฅผ ์„ธ์…˜์— ๋„ฃ๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด๋ฉ”์„œ๋“œ ํ•ธ๋“ค๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ์— HttpSession์„ ๋ฐ”๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.session.setAttribute(ํ‚ค,๋ฐธ๋ฅ˜)  โœ… @SessionAttribute@SessionAttribute ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด,session.setAttribute() ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์„ธ์…˜์— ๋„ฃ์–ด์ค€๋‹ค.   โœ… @ModelAttributeModelAttribute๋Š” ์„ธ์…˜์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ์กฐํ•ฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ํผ๋ฐ์ดํ„ฐ๋กœ ์ž…๋ ฅ๋ฐ›์•˜๋˜ key, value ์Œ์„ ์„ธ์…˜์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.ํŽ˜์ด์ง€1์—์„œ id๋ฐ›๊ณ  ์„ธ์…˜์— ๋„ฃ์–ด๋‘๊ณ , ๋‹ค์Œ ํŽ˜์ด์ง€2์—์„œ pwd ๋ฐ›๊ณ  ์„ธ์…˜์— ๋„ฃ์–ด๋‘๊ณ ,๋ชจ๋ธ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์„ธ.. 2024. 3. 1.
@ModelAttribute @RequestParam์€ http์š”์ฒญ์œผ๋กœ๋ถ€ํ„ฐ ์‹ฌํ”Œ ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™”์—ˆ๋‹ค๋ฉด, @ModelAttribute๋กœ๋Š” http ์š”์ฒญ ํผ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๋ณตํ•ฉ ๊ฐ์ฒด ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿฅ ์˜ˆ์‹œ @RequestParam - ๋‹จ์ผ ํƒ€์ž… @ModelAttribute - ๋ณตํ•ฉ ํƒ€์ž… ModelAttribute๋Š” ์„ธ์…˜์— ์ €์žฅ๋œ ๋ฐธ๋ฅ˜ ์ •๋ณด๊นŒ์ง€ ์กฐํ•ฉํ•˜์—ฌ ๋ณตํ•ฉ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. โœ… BindingResult @ModelAttribute ๋ณ€์ˆ˜ ์˜ค๋ฅธ์ชฝ์— ํ•จ๊ป˜ ์จ์ฃผ๋ฉด, binding ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ๋ฐ”๋กœ ์ต์…‰์…˜ ๋˜์ง€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์—๋Ÿฌ ์ •๋ณด๋ฅผ BindingResult ์•ˆ์— ๋‹ด์•„์ค€๋‹ค. ๐Ÿฅ ์ž…๋ ฅํผ์—์„œ id๋ฅผ String์œผ๋กœ ์ค€๊ฒฝ์šฐ ์‘๋‹ต์ฝ”๋“œ๋Š” 200์ด ์˜ด ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ฒ„์—์„œ๋Š” id๊ฐ€ String์ด ์•„๋‹ˆ๋ผ Long์œผ๋กœ ์„ ์–ธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— user.. 2024. 3. 1.
[๊ฐ•์˜ ์ •๋ฆฌ] ์Šคํ”„๋ง MVC ํ™œ์šฉ ๊ฐ•์˜ ์ถœ์ฒ˜: https://www.inflearn.com/course/%EC%9B%B9-mvc ์Šคํ”„๋ง ์›น MVC ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ ์ด ๊ฐ•์˜๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Servlet) ๊ธฐ๋ฐ˜์˜ MVC ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์Šคํ”„๋ง ์›น MVC์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์›ํ• ํ•œ ํ•™์Šต์„ ์œ„ํ•ด์„œ ใ€Š์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ ใ€‹ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด์ฃผ์„ธ์š”., ์Šคํ”„๋ง ์›น MVC์˜ ํ•ต์‹ฌ ์› www.inflearn.com ๐Ÿ‘ฉ‍๐Ÿ’ป HTTP ์š”์ฒญ ๋งตํ•‘ํ•˜๊ธฐ @RequestMapping(์š”์ฒญurl) - ๋ฉ”์„œ๋“œ ์ง€์ • ์•ˆ ํ•ด์ฃผ๋ฉด ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๊ฒŒ ๋œ๋‹ค - ํŠน์ • ๋ฉ”์„œ๋“œ ์ง€์ • ํ•ด์ฃผ๋ ค๋ฉด: @RequestMapping(value={์š”์ฒญurl} , method=RequestMethod.GET) @RequestsMapping(value={์š”์ฒญurl}, method={Reque.. 2024. 2. 29.
304 NOT MODIFIED ์ •์ ์ธ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•  ๋•Œ ์„œ๋ฒ„์ธก์˜ ์ •์ ์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์บ์‹ฑ๋œ ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•˜์—ฌ ์บ์‹ฑ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ์‘๋‹ต์ฝ”๋“œ์ด๋‹ค. โœ… ์„œ๋ฒ„์ธก ์‘๋‹ต ํ—ค๋” Cache-Max-Age: ์บ์‹ฑ ์œ ์ง€์‹œ๊ฐ„ Last-Modified : ์„œ๋ฒ„์ธก ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณ€๊ฒฝ๋œ ์‹œ๊ฐ โœ… ๋ธŒ๋ผ์šฐ์ €์ธก ์š”์ฒญ ํ—ค๋” If-Modified-Since: ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์˜ Last-Modified time. ์ฒซ 200 ์‘๋‹ต ํ—ค๋”์˜ Last-Modified ๋ฐธ๋ฅ˜ Cache-Control: max-age=n : ์‘๋‹ต ๋ฐ›์€ ์‹œ๊ฐ„์œผ๋กœ๋ถ€ํ„ฐ n์ดˆ๋™์•ˆ์€, ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•ด ์žฌ์š”์ฒญํ•˜์ง€ ์•Š๊ณ  ์บ์‹ฑ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ผ๋Š” ์˜๋ฏธ ๐Ÿฅ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๊ณ  ํ•  ๋•Œ, 1๏ธโƒฃ ์บ์‹ฑ ๊ธฐ๊ฐ„ ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜์œผ๋ฉด.. 2024. 2. 28.
[๊ฐ•์˜ ์ •๋ฆฌ] ์Šคํ”„๋ง MVC ์„ค์ •(2) ๊ฐ•์˜ ์ถœ์ฒ˜: https://www.inflearn.com/course/%EC%9B%B9-mvc/dashboard ์Šคํ”„๋ง ์›น MVC ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ ์ด ๊ฐ•์˜๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Servlet) ๊ธฐ๋ฐ˜์˜ MVC ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์Šคํ”„๋ง ์›น MVC์— ๋Œ€ํ•ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์›ํ• ํ•œ ํ•™์Šต์„ ์œ„ํ•ด์„œ ใ€Š์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ํ•ต์‹ฌ ๊ธฐ์ˆ ใ€‹ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด์ฃผ์„ธ์š”., ์Šคํ”„๋ง ์›น MVC์˜ ํ•ต์‹ฌ ์› www.inflearn.com ๐Ÿ‘ฉ‍๐Ÿ’ป WebMvcConfigurer โœ… Formatter - ์–ด๋– ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ์–ด๋– ํ•œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค - Formatter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, http ์š”์ฒญ ๋ฌธ์ž์—ด์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค - Printer : Locale ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ, ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ์–ด๋–ป๊ฒŒ ์ถœ๋ ฅํ•ด ์ค„ .. 2024. 2. 21.
728x90