AOP3 [Spring Boot] AOP๋ฅผ ํ์ฉํ ์ปค์คํ ์ ๋ ธํ ์ด์ ๋ง๋ค๊ธฐ 2024.11.17 - [BE/๐ Spring] - [Spring Boot] AOP ๊ฐ๋ ์ ๋ฆฌ2024.11.18 - [BE/๐ Spring] - [Spring Boot] AOP ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์์์ฝ๋ ํ์ฌ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์ ์ผ๋ถ API์์ ์์ฒญ/์๋ต ๋ฐ์ดํฐ๋ฅผ End-to-End ์ํธํ ํด์ ํต์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ Controller ํน์ ์๋ณตํธํ์ ๊ด๋ จ ์๋ ๋ก์ง์ ์ํธํ ๊ด๋ จ ์ฝ๋๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค. ์๋ณตํธํ๋ฅผ ์ํํ๋ static object๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ์ ํด์์๋๋ฐ, AOP๋ฅผ ์ด์ฉํด์ ์ด๋ฅผ ๊ฐ์ ํด ๋ณด๋ฉด ์ด๋จ๊น ์ถ์์ต๋๋ค. ์์ฒญ ๊ฐ์ฒด ์์ฒด๋ฅผ ๊ฐ๋ก์ฑ ๋ณตํธํ ํด์ ํ๋ฌธ๊ฐ์ ๋ฐ๋ก Controller์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ณ , ์๋ต์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๊ธฐ ์ ์ ์๋ต ๊ฐ์ .. 2024. 11. 19. [Spring Boot] AOP ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์์์ฝ๋ ์์กด์ฑ ์ถ๊ฐdependencies { implementation 'org.springframework.boot:spring-boot-starter-aop'} ์ฌ์ฉ ๋ฐฉ์Aspect ์ ์ : @Aspect ์ ๋ํ ์ด์ ์ ์ฌ์ฉํด์ Aspect ํด๋์ค๋ฅผ ์ ์ํ๋คAdvice ์ ์ฉ : @Before, @After, @Around ๋ฑ ๋ค์ํ Advice๋ฅผ ๋ฉ์๋์ ์ ์ฉํ๋ค. ํน์ ์์ ์ ์ด๋ค ์คํ ๋ก์ง์ ์คํํ ์ง ์ ์ํ๋ค.Pointcut ์ค์ : execution ํํ์ ๋ฑ์ ํตํด ํน์ ๋ฉ์๋, ํจํค์ง ๋ฑ์๋ง Aspect๊ฐ ์ ์ฉ๋๋๋ก ์ค์ ํ๋คAOP ํ์ฑํ : @EnableAspectJAuotProxy ์ ๋ํ ์ด์ ์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ํด๋์ค์ ์ถ๊ฐํด AOP๋ฅผ ํ์ฑํ ํ๋ค @EnableAspectJA.. 2024. 11. 18. [Spring Boot] AOP ๊ฐ๋ ์ ๋ฆฌ ์์ ์ฝ๋์ ์์ธํ ์ฌ์ฉ๋ฒ์ ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃน๋๋ค. AOP๋Aspect-Orineted Programing, ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋์์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํน์ ๊ด์ฌ์ฌ(๊ธฐ๋ฅ)์ ๋ถ๋ฆฌํ ํ์ฌ ์บก์ํ๋ชจ๋ํ ํฅ์cross-cutting concerns (ํก๋จ ๊ด์ฌ์ฌ) ์ฒ๋ฆฌ์ ์ ์ฉ๋ก๊น , ํธ๋์ญ์ ๊ด๋ฆฌ, ์ธ์ฆ/๊ถํ ๋ถ์ฌ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๊ตฌํ๊ณผ ๊ฐ์ ํน์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ์ ์ฌ์ฉ๋ ์ ์์ AOP๋ ์ ํ์ํ ๊น?๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํน์ ๊ธฐ๋ฅ์ธ ํก๋จ ๊ด์ฌ์ฌ๋ฅผ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ํด์คํก๋จ ๊ด์ฌ์ฌํต์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ ๊ด์ฌ์ฌํก๋จ ๊ด์ฌ์ฌ๋ฅผ ๋ฉ์๋ ๋ง๋ค ์ถ๊ฐํ๊ฒ ๋๋ฉด ๋ฐ๋ณต๋๋ ์ฝ๋๋ก ์ธํด ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง๊ณ , ๋ณ๊ฒฝ์ ์ฌ๋ฌ ๊ณณ์ ๋ณ๊ฒฝํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ง๋ณด์.. 2024. 11. 17. ์ด์ 1 ๋ค์