βœ… Spring AOP, Interceptor, FilterλŠ” λͺ¨λ‘ 관점 μ§€ν–₯적인 역할을 ν•˜μ§€λ§Œ, AOP의 일쒅은 μ•„λ‹ˆλ‹€.

πŸ”Έ 이듀은 κ³΅ν†΅μ μœΌλ‘œ β€œν•΅μ‹¬ 둜직 μ „ν›„μ˜ λΆ€κ°€ κΈ°λŠ₯”을 μˆ˜ν–‰ν•˜μ§€λ§Œ,

  • 기술적 κ΅¬ν˜„ 방식도 λ‹€λ₯΄κ³ ,
  • 적용 μ‹œμ λ„ λ‹€λ₯΄κ³ ,
  • 적용 λŒ€μƒλ„ λ‹€λ₯΄λ‹€.

πŸ“Œ 비ꡐ μš”μ•½

ꡬ뢄FilterInterceptorAOP (Aspect)
μ†Œμ†Servlet μŠ€νŽ™ (javax.servlet)Spring Web MVCSpring AOP
적용 λŒ€μƒHTTP μš”μ²­/응닡 μ „μ²΄μ»¨νŠΈλ‘€λŸ¬ 호좜 μ „/ν›„λ©”μ„œλ“œ μ‹€ν–‰ μ „/ν›„ (빈 λŒ€μƒ)
μ‚¬μš© λͺ©μ μΈμ¦, 인코딩, λ‘œκΉ… λ“±κΆŒν•œ 체크, μ„Έμ…˜ 검사 λ“±νŠΈλžœμž­μ…˜, λ‘œκΉ…, μ„±λŠ₯ μΈ‘μ • λ“±
μ„ μ–Έ μœ„μΉ˜@WebFilter, FilterRegistrationBeanHandlerInterceptor κ΅¬ν˜„μ²΄@Aspect + @Component
λ™μž‘ μ‹œμ DispatcherServlet 이전DispatcherServlet μ΄ν›„μ‹€μ œ λ©”μ„œλ“œ μ‹€ν–‰ 직전/직후
DI κ°€λŠ₯ μ—¬λΆ€βŒ (Bean μ£Όμž… 어렀움)β­•

πŸ” 관계 μš”μ•½

  • Filter와 **Interceptor**λŠ” μŠ€ν”„λ§ AOPκ°€ λ“±μž₯ν•˜κΈ° 이전뢀터 μ‘΄μž¬ν•œ 기술.
  • 이듀은 AOP의 κ°œλ…(관심사 뢄리)을 κ΅¬ν˜„ν•˜λŠ” λ‹€λ₯Έ 방법이지, Spring AOP μžμ²΄λŠ” μ•„λ‹˜.
  • Spring AOPλŠ” ν”„λ‘μ‹œ 기반으둜 λ™μž‘ν•˜λ©°, 주둜 Service, Repository λ“±μ˜ Bean λ©”μ„œλ“œμ— μ μš©ν•¨.

πŸ’‘ λΉ„μœ λ‘œ μ‰½κ²Œ μ •λ¦¬ν•˜μžλ©΄:

  • Filter: λŒ€λ¬Έ μ•žμ— μžˆλŠ” λ³΄μ•ˆ 게이트 (HTTP 레벨)
  • Interceptor: μ§‘ μ•ˆ ν˜„κ΄€λ¬Έμ—μ„œ λˆ„κ΅¬ μ™”λŠ”μ§€ 확인 (Controller 레벨)
  • aop: λ°© μ•ˆμ—μ„œ μ§‘μ£ΌμΈμ˜ 행동을 κ°μ‹œ (Business Logic 레벨)