Spring MVC에서 DispatcherServlet과 ViewResolver가 어떻게 View를 결정하는지 이해하면, JSP 렌더링을 넘어 바이너리 응답까지 자유롭게 제어할 수 있다. 이 글에서는 BeanNameViewResolver와 커스텀 AbstractView 구현을 통해 그 흐름을 끝까지 따라가본다. 평범해 보이는 리턴값, 그 뒤에서 무슨 일이 벌어지는가Spring MVC 컨트롤러를 처음 배울 때 가장 당연하게 받아들이는 패턴이 있다.@GetMapping("/upload")public String uploadForm() { return "uploadForm"; // 그냥 JSP 이름이겠지?}리턴한 문자열이 JSP 파일 이름으로 연결된다는 건 알겠다. 그런데 이런 코드를 보면 어떻게 생각하..