본문 바로가기
Spring/- [시리즈] Spring 프로젝트 되살리기

Spring 프로젝트 되살리기 2 - ArgumentResolver 이슈 해결

by 정구정구 2026. 7. 24.

이전 이야기

https://record47584.tistory.com/86

 

Spring 프로젝트 되살리기 1 - 빌드 에러 해결

시나리오 1누군가가 git에 올린 프로젝트를 가져왔다. 근데 빌드부터가 안되네?이 프로젝트.... 내가 집도한다. 트러블 슈팅 일단 빌드가 안 된다... 에러 코드를 찾아보자.Unable to start embedded Tomcat/

record47584.tistory.com

 

시나리오 2

application.properties 추가 후, 빌드에는 성공했다. 이제 구동 테스트를 해볼까 ...

서버에서 에러가 발생한다!!

 

 

트러블 슈팅

 

디버깅으로 추적을 해보니까, JWT 인증 후, 인증 정보를 저장하는 객체에 데이터가 들어있지 않다.

클라이언트 요청
    ↓
Filter
    ↓
DispatcherServlet (요청을 받아서 처리할 Controller를 찾음)
    ↓
Interceptor (preHandle)
    ↓
ArgumentResolver (Controller 파라미터 값 채우기)
    ↓
Controller

 

유저의 요청은 위와 같은 루트로 Controller까지 전달된다. 

 

일단 프로젝트에 구현된 JwtFilterAuthUserArgumentResolver에 중단점을 걸고 데이터를 확인해봤다.

 

JwtFilter의 request 데이터는 아무 이상 없이 통과하는 것을 확인 했다.

 

하지만 AuthUserArgumentResolver에 걸어둔 중단점은 작동하지 않았다.

 

즉, 구현한 AuthUserArgumentResolver를 거치지 않아서 authUser 객체 내부가 비어있는 것이었다.

 

그렇다면 AuthUserArgumentResolverArgumentResolver로 등록되어 있지 않은 걸까?

 

ArgumentResolver로 등록을 담당하는 WebConfig 파일을 찾아봤다. 

 

또 없었다.

 

@Configuration
@RequiredArgsConstructor
public class WebConfig implements WebMvcConfigurer {

    private final AuthUserArgumentResolver authUserArgumentResolver;

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
        resolvers.add(authUserArgumentResolver);
    }
}

 

config 패키지에 WebConfig 파일을 추가해서 AuthUserArgumentResolver를 등록했다.

 

 

트러블 슈팅 후 확인

다시 요청을 보내봤다.

 

AuthUserArgumentResolver 내부를 거쳐가는 것을 확인 할 수 있었고,

 

CotrollerauthUser 객체 내부 데이터도 확인할 수 있다.

 

요청에 대한 응답이 정상적으로 들어온 것을 확인 할 수 있다.