๐ฃ ์ํฉ
๊ด๋ฆฌ์ํ์ด์ง์์ ์ธ์ ์ด ๋ง๋ฃ๋ ํ, ํ์ด์ง์์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, 500์๋ฌ๊ฐ ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ์์๋ค.
๋ณดํต์ด๋ผ๋ฉด ์ธ์ ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ, ํ๊ฒจ์ ์ฒ์ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๊ฐ์ผํ๋๋ฐ...
ํ์ธํด๋ณด๋๊น api๋ฅผ ํธ์ถํ ๋, ์ธ์ ์์ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ ํ๋๋ฅผ ๋งคํํ๋๊ฒ ์๋๋ฐ, ์ธ์ ์ด ๋ง๋ฃ๋๋ ์ ๋ณด๊ฐ null๋ก ๋จ์ด์ ธ์์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์๋ ๊ฒ์ด๋ค. ์ด ์ธ์ ์ฒดํฌ๋ฅผ ์ด๋์ ํด์ผ๋ ๊น ๊ณ ๋ฏผ์ ํ๋ค๊ฐ interceptor ์ชฝ์ ์ถ๊ฐ๋ฅผ ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค๋ผ๊ณ ์๊ฐ์ ํ๊ณ , ์ด ๋ด์ฉ์ผ๋ก ์์ ํ, ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
โ Interceptor ๋?
Spring์์ ์ฌ์ฉํ๋ Interceptor๋ ํน์ URL ์์ฒญ ์, Controller๋ก ๊ฐ๋ ์์ฒญ์ ์ค๊ฐ์์ ๊ฐ๋ก์ฑ๋ ์ญํ ์ ํ๋ค.
๋ญ ์๋ฅผ ๋ค์๋ฉด, API๋ฅผ ํธ์ถํ ๋ ๋ง๋ค ์์ฒญ URL ๊ฒ์ฆ ๋ก์ง์ด๋ผ๋์ง, Controller ์ํ ์ ์ธ์
์ด ์ ํจํ์ง ๊ฒ์ฆ์ ํ๋ค๋์ง...
Spring์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ ์ต์์ Interceptor ์ธํฐํ์ด์ค๋ HandlerInterceptor์ด๋ค.
public interface HandlerInterceptor {
default boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler
) throws Exception {
return true;
}
default void postHandle(...) {}
default void afterCompletion(...) {}
}
๊ฐ๊ฐ ๋ฉ์๋๋ฅผ ์ค๋ช ํด๋ณด์๋ฉด,
1๏ธโฃ preHandle → Controller ํธ์ถ ์ | ์์ฒญ ์ฐจ๋จ ๋ฐ ๊ฒ์ฌ
2๏ธโฃ postHandle → Controller ์คํ ํ, View ๋ ๋๋ง ์ | ์๋ต ๋ฐ์ดํฐ ๊ฐ
3๏ธโฃ afterCompletion → ์๋ต ์๋ฃ ํ | ๋ฆฌ์์ค ์ ๋ฆฌ/๋ก๊ทธ
โ๏ธ interceptor์ ์ ํ๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
๋ถ๋ช ๋ก์ง์ ์์ฑํ๋ค ๋ณด๋ฉด, interceptor ์ฒ๋ฆฌ๋ฅผ ์๋ตํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ด๋ค.
์ด ๋๋ WebMvcConfigurer์ ์์๋ฐ๋ Config ํด๋์ค์์ ์ธํฐ์ ํฐ ์์ฑ์์ ์๋ ๋ก์ง์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
.excludePathPatterns(
"/login/**",
"/css/**",
"/js/**",
"/error"
)
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Spring] HandlerMethod ? (0) | 2026.04.23 |
|---|