Study/Spring

ํŠธ๋žœ์žญ์…˜ ์ปค๋„ฅ์…˜ ๋งบ๋Š” ๊ณผ์ • ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๊ณ  ์ปค๋„ฅ์…˜์„ ๋งบ๊ฒŒ ๋œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์„ธ์…˜์„ ๋งŒ๋“ ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปค๋„ฅ์…˜์„ ํ†ตํ•œ ๋ชจ๋“  ์š”์ฒญ์€ ์ด ์„ธ์…˜์„ ํ†ตํ•ด ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ์„ธ์…˜์€ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ , ์ปค๋ฐ‹ ๋˜๋Š” ๋กค๋ฐฑ์„ ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋„ฅ์…˜์„ ๋‹ซ๊ฑฐ๋‚˜ DBA๊ฐ€ ์„ธ์…˜์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๋ฉด ์„ธ์…˜์ด ์ข…๋ฃŒ๋œ๋‹ค. ์ฐธ๊ณ  DataSource์˜ getConnection์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜จ ์ปค๋„ฅ์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ autoCommit ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•œ๋‹ค. ํ•˜์ง€๋งŒ autoCommit ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•˜๋ฉด ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ์‹คํ–‰ํ• ๋•Œ๋งˆ๋‹ค ๋ฐ”๋กœ ๋ฐ”๋กœ ์ปค๋ฐ‹์ด ๋˜์–ด ๋ฒ„๋ ค ํŠธ๋žœ์žญ์…˜์ด ์‚ฌ์‹ค์ƒ ์—†๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฐ”์—์„œ๋Š” ์ž๋™ ์ปค๋ฐ‹ ๋ชจ๋“œ์—์„œ ์ˆ˜๋™ ์ปค๋ฐ‹ ..
์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํƒ„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ redirect ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๐Ÿง โœ… ์ธํ„ฐ์…‰ํ„ฐ ํ๋ฆ„ preHandle -> ์ปจํŠธ๋กค๋Ÿฌ -> postHandle -> afterCompletion ๊ณ ๋ฏผ URL /test1๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์ด ์–ด๋Š ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํƒ€๊ฒŒ ๋œ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋  ๊ฒƒ์ด๋‹ค. ์ผ๋‹จ preHandle๋ฅผ ํƒ„๋‹ค. ๊ทธ ๋‹ค์Œ /A๋ฅผ RequestMappingํ•œ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋กœ์ง์„ ํƒ€๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ /test2๋กœ redirect๋ฅผ ์‹œํ‚จ๋‹ค๋ฉด..? postHandle ๋ฉ”์„œ๋“œ๋ฅผ ํƒ€๊ฒŒ ๋ ๊นŒ? ๊ฒฐ๋ก  ๊ฒฐ๋ก ์€ postHandle๋„ ํƒ„๋‹ค. afterCompletion๊นŒ์ง€ ๋ชจ๋‘ ํƒ„๋‹ค. [uri : /test1] preHandle [uri : /test1] controller , redirect [uri : /te..
Bean Validation ์ด๋ž€? ๋จผ์ € Bean Validation์€ ํŠน์ •ํ•œ ๊ตฌํ˜„์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ Bean Validation 2.0(JSR-380)์ด๋ผ๋Š” ๊ธฐ์ˆ  ํ‘œ์ค€์ด๋‹ค. ์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐํ•ด์„œ ๊ฒ€์ฆ ์• ๋…ธํ…Œ์ด์…˜๊ณผ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค. Bean Validation์„ ๊ตฌํ˜„ํ•œ ๊ธฐ์ˆ ์ค‘์— ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌํ˜„์ฒด๋Š” ํ•˜์ด๋ฒ„๋„ค์ดํŠธ Validator์ด๋‹ค. ๊ณต์‹ ์‚ฌ์ดํŠธ: http://hibernate.org/validator/ ๊ณต์‹ ๋ฉ”๋‰ด์–ผ: https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/html_single/ ๊ฒ€์ฆ ์• ๋…ธํ…Œ์ด์…˜ ๋ชจ์Œ: https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/ html_s..
๋ฉ”์„ธ์ง€ ๋ฉ”์„ธ์ง€๋ฅผ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ(messages.properties ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌ) ๋ฌธ์ž์—ด์„ ํ•˜๋“œ์ฝ”๋”ฉํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ์–ด์™€์„œ ๋ณด์—ฌ์ค€๋‹ค. item=์ƒํ’ˆ item.id=์ƒํ’ˆ ID item.itemName=์ƒํ’ˆ๋ช… item.price=๊ฐ€๊ฒฉ item.quantity=์ˆ˜๋Ÿ‰ ๊ตญ์ œํ™” ๋‚˜๋ผ๋ณ„๋กœ ๋ฉ”์„ธ์ง€ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•ด์„œ ๊ฐ ์–ธ์–ด์— ๋งž๋Š” ๋ฉ”์„ธ์ง€ ํŒŒ์ผ์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ. ์œ ์ €๊ฐ€ ์ ‘๊ทผํ•œ ๋‚˜๋ผ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ HTTP accept-language ํ—ค๋” ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜๊ณ  ์ฟ ํ‚ค ๊ฐ’์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. -> LocaleResolver ์‚ฌ์šฉ Locale์ด en_US ์˜ ๊ฒฝ์šฐ messages_en_US -> messages_en -> messages ์ˆœ์„œ๋กœ ์ฐพ๋Š”๋‹ค. ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ๊ตฌ..
Spring @RestController ์‘๋‹ต ์‹œ, ์ •์˜ ๋˜์ง€ ์•Š์€ ๊ฐ’๋„ ๊ฐ™์ด ์‘๋‹ต๋˜๋Š” ์ด์œ  @Getter @Setter public class UserDomain { private String name; private int age; public boolean isTwenties() { if (this.age >= 20 && this.age < 30){ return true; } return false; } } ์œ„์™€ ๊ฐ™์ด, ๋„๋ฉ”์ธ ๊ฐ์ฒด ์•ˆ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ํฌํ•จ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์ž. isTwenties() ๋Š” ํ˜„์žฌ User์˜ ๋‚˜์ด๋ฅผ ํŒ๋‹จํ•˜์—ฌ 20๋Œ€์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. @RestController public class UserController { @GetMapping("/u..
YURI๐Ÿ•๐Ÿ“๐Ÿถ
'Study/Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก