작성
·
401
0
ArgumentResolver가 Interceptor를 대체할 수 있을까요??
프로젝트가 커지면 커질 수록 제외할 패턴이나 인증이 필요한 라우터 패턴을 webconfig에 입력해줘서 관리를 계속 해줘야하는데
관련 DTO를 만들어서 해당 dto가 붙어있으면 인증이 필요한 메소드라는 것을 나타내면 인터셉터가 없이 ArgumentResolver로 대체가 가능하지 않을까하는 생각이 들어서요
그래서 이런 인증 수행을 인터셉터가 아니라 리졸버 안에서 해도 무방하지 않을까 생각하는데 ArgumentResolver와 Interceptor가 지향하는 것이 다르기 때문에 그렇게 하면 안되는 것이가 궁금해서 질문드립니다.
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
dudrhkd5713님, ArgumentResolver
와 Interceptor
간의 차이점과 관련하여 각각의 역할을 이해하는 것은 스프링 MVC 백엔드 웹 개발시 중요한 부분입니다.
우선 ArgumentResolver
는 컨트롤러의 메서드가 호출될 때 메서드에 필요한 파라미터를 제공하는 역할을 담당합니다. 특정 조건이나 상태에 따라 파라미터를 조작하거나 추가하는 등의 기능을 수행할 수 있습니다.
반면 Interceptor
는 요청이 컨트롤러에 도착하기 전과 후의 처리를 담당합니다. 일반적으로 인증, 로깅, 권한 체크 등 전처리와 후처리의 공통 로직을 구성할 때 사용됩니다.
이와 관련하여 인프런 질문&답변 게시판에서 과거에 비슷한 질문이 나왔으며, 해당 질문에 대한 답변이 제공되었습니다. 해당 답변은 ArgumentResolver
와 Interceptor
의 역할과 상황에 따른 사용을 설명하고 있습니다.
다음 링크의 내용이 질문자님이 궁금해하시는 내용과 연관이 있을 수 있습니다.
위 링크에서는 ArgumentResolver
와 Interceptor
각각의 역할과 적용 상황에 대해서 자세히 설명하고 있으며, 어떤 상황에서 각각을 사용해야 할지에 대한 이해를 돕는 답변을 찾아볼 수 있습니다.
ArgumentResolver
로 인증과 같은 처리를 구현하는 것도 가능할 수는 있으나, Interceptor
는 요청의 전처리와 후처리를 위한 보다 일반적인 용도로 사용됩니다. 따라서, 한 쪽으로 완전히 대체하기보다는 각각을 적절하게 사용하는 것이 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.