2024/04 2

[Spring Boot] Spring AOP๋ฅผ ํ™œ์šฉํ•œ Logging

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜ ์‹œ์ž‘ ์ „, ์ข…๋ฃŒ ํ›„, ์—๋Ÿฌ ๋ฐœ์ƒ ํ›„ ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ž๋™์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก Aspect๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. execution() ์•ˆ์—์„œ ๋กœ๊ทธ๋ฅผ ์ž๋™์œผ๋กœ ๋‚จ๊ธธ ๋ฒ”์œ„๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊น…์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜๋“ค์€ @NoLogging ์–ด๋…ธํ…Œ์ด์…˜์„ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜ ๋กœ๊น…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ๋“ฑ) Advice ์‹คํ–‰ ์‹œ์  ์„ค๋ช… @Before ํ•จ์ˆ˜ ์‹œ์ž‘ ์ „ ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค ์ด๋ฆ„, ํ•จ์ˆ˜ ์ด๋ฆ„, ํ•จ์ˆ˜๋กœ ๋“ค์–ด์˜จ ํŒŒ๋ผ๋ฏธํ„ฐ(args) ๋“ฑ์„ ๋กœ๊ทธ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค. @AfterReturning ํ•จ์ˆ˜ ์‹œ์ž‘ ํ›„ ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค ์ด๋ฆ„, ํ•จ์ˆ˜ ์ด๋ฆ„, ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’(result) ๋“ฑ์„ ๋กœ๊ทธ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค. @AfterThrowing ์—๋Ÿฌ ๋ฐœ์ƒ ํ›„ ํ•จ์ˆ˜๊ฐ€ ์†..

[Spring Boot] ์ž์ฃผ ์“ฐ์ด๋Š” Spring Boot Annotation (Controller, Service, Model)

๐Ÿš€ Controller Annotation Annotation ์˜์—ญ Description @RestController Class Spring์˜ ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋Œ€์ƒ์ด ๋˜๋„๋ก ํ•˜๊ณ  HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ž๋™์œผ๋กœ ๋งคํ•‘๋˜๋„๋ก ํ•˜๋Š” ๋“ฑ Spring์—์„œ Controller๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘์„ ๋‹ด๊ณ ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. @Controller์™€ @RequestBody๊ฐ€ ํ•ฉ์ณ์ง„ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ RESTful ์›น ์„œ๋น„์Šค์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. @RequiredArgsConstructor Class Spring 4.3๋ถ€ํ„ฐ๋Š” @Autowired๋ฅผ ํ†ตํ•œ ์˜์กด์„ฑ ์ฃผ์ž…๋ณด๋‹ค ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @RequiredArgsConstructor๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ์ž ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ์ ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ..

๋ฐ˜์‘ํ˜•