Development
Filter โ Interceptor โ AOP ??
9/11/2024

๋ช๋ช ๋ธ๋ก๊ทธ ๊ธ์์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ช ์ ๋ณด์์ต๋๋ค.
Interceptor์ Filter๋ Servlet ๋จ์์์ ์คํ๋๋ค. ์คํ์์๋ฅผ ๋ณด๋ฉด Filter๊ฐ ๊ฐ์ฅ ๋ฐ์ ์๊ณ ๊ทธ ์์ Interceptor, ๊ทธ ์์ AOP๊ฐ ์๋ ํํ์ด๋ค. ๋ฐ๋ผ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Filter โ Interceptor โ AOP โ Interceptor โ Filter ์์ผ๋ก ๊ฑฐ์น๊ฒ ๋๋ค.
์ด๊ฒ ๊ณผ์ฐ ๋ง๋ ๋ง์ผ๊น์?
AOP๋ ๋ค๋ฅธ ์ ์์ ๋ฌ์ผ
์ ๋ด์ฉ์ ์ค์ง Controller, ํน์ Controller๊ฐ ํธ์ถํ๋ ํ์ ์ปดํฌ๋ํธ ๊ฐ์ฒด์ AOP๊ฐ ์ ์ฉ๋์ด์์ ๋์๋ง ์ฌ๋ฐ๋ฅธ ๋ง์ ๋๋ค. ํ์ง๋ง ์คํ๋ง์ AOP๋ ๋น๋จ Controller ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์คํ๋ง ๋น์ ์ ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋ฌ Interceptor๋ค์ด ๊ณต์ ํด์ผํ๋ ๋ถ๊ฐ๋ก์ง์ด ์๋ค๋ฉด Interceptor๊ฐ ์ํ๋๊ธฐ ์ ์ ๊ณตํต ๋ก์ง์ ์ํํ๋ AOP๋ฅผ ๋ง๋ค์ด ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์์ฒญ์ Filter -> AOP -> Interceptor ์์ผ๋ก ์ํ๋๋ฏ๋ก ์ ์ธ์ฉ์ ํ๋ฆฐ ๋ด์ฉ์ด ๋ฉ๋๋ค.
์ด๋ฌํ ์คํด๋ AOP๊ฐ Filter, Interceptor์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด๋ ํ ๋ก์ง์ด ์ํ๋๊ธฐ ์ ์ ์ ์ด๋ฅผ ๊ฐ๋ก์ฑ์ ๋ถ๊ฐ ๋ก์ง์ ์ํํ๋ค๋ ๊ณตํต์ ์ด ์๊ธฐ์ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ AOP๊ฐ Controller ํน์ ๊ทธ ์ดํ์ ํธ์ถ๋๋ ์ปดํฌ๋ํธ๋ค์ ์ ์ฉ๋๋ ๊ฒฝ์ฐ์๋ ํ๋ฆฐ๋ง์ด ์๋๊ธฐ๋ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์ ๊ฐ์ ๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณธ๋ค๋ฉด AOP๋ฅผ ์ดํดํจ์ ์์ด ์๋ชป๋ ์ธ์์ ๊ฐ๊ฒ ๋ ์ ์์ต๋๋ค. ๋ง์ ๋ธ๋ก๊ทธ ๊ธ๋ค์ด AOP์ ๋ํด ์คํ๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์์ ์ฃผ๊ธฐ์ ํ ๊ณผ์ ์ผ๋ก ๊ธฐ์ ํฉ๋๋ค. Filter์ Interceptor๋ ์์ ์ฃผ๊ธฐ๋ก ์ดํดํด๋ ๋ฌด๋ฐฉํ์ง๋ง, AOP๊น์ง ์ฌ๊ธฐ์ ๋ฌถ์ฌ์๋ค๋ฉด AOP์ ๋ณธ์ง์ ์คํดํ๊ฒ ๋ ์ง๋ ๋ชจ๋ฆ ๋๋ค. Spring AOP๋ ์์ฒญ ํ๋ฆ๊ณผ๋ ๋ ๋ฆฝ์ ์ด๋ฉฐ, ์คํ๋ง ๋น์ด ์๋ ๊ณณ์ด๋ผ๋ฉด ์ด๋๋ ์ ์ฉ๋ ์ ์๋ ๊ธฐ์ ์ ๋๋ค.