HTTP 요청 데이터, 과연 어떤 것들이 올까? @Controller + @RequestMapping으로 만들어지는 @RequestMappingController는 다양한 파라미터를 지원해준다. 이런 파라미터들은 Adapater 단에 있는 ArgsResolver 및 HttpMessageConverter를 통해서 실제로 Handler에 공급되기도 한다. 여기서는 HTTP 요청 데이터들이 어떤 것이 오는지를 확인해본다. @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletResponse response, HttpMethod httpMethod, Locale locale, @RequestHeader Mu..
Spring MVC의 요청매핑이란? 요청 매핑이라는 것은 요청이 왔을 때, 어떤 컨트롤러가 호출되어야 하는지를 정해주는 과정이다. 단순하게 URL만 매핑하는 방법도 있지만, 이외에도 여러가지를 맵핑하는 방법이 있다. 이번 포스팅에서는 Spring MVC의 요청매핑의 다양한 쓰임새를 알아보려고 한다. 들어가기 전 @Controller는 String으로 반환 시, 이것을 ViewName으로 이해하고 ViewResolver를 호출한다. @RestController(@Controller + @ResponseBody)는 String으로 반환 시, HTTP 메시지 바디에 바로 값을 입력한다. @RequestMapping 단순 맵핑 @RequestMapping은 해당 URL이 들어왔을 때, 해당 메서드가 실행될 수 ..
로그 남기기 로그 남기기는 개발 단계에서는 반드시 필요한 작업이다. 에러가 발생했을 때, 에러의 발생 지점을 Trace하는데 굉장히 유용한 도움을 주기 때문이다. 기본적으로 로그 남기는 라이브러리에 대해서 잘 모르는 상황이라면 System.out.println()을 적재적소에 넣으면서 사용했을 것이다. 그렇지만 앞으로는 로그 라이브러리를 사용해서 로깅하는 것을 해야한다. SLF4J는 로그 라이브러리의 인터페이스라고 볼 수 있다. SLF4J를 구현한 여러 구현체가 있는데, 주로 사용하는 구현체는 LogBack이 된다. 이번 포스팅에서는 LogBack을 사용해서 로깅하는 방법을 함께 찾아보려고 한다. 로그를 사용하기 위해서? 1. 로거 만들기 public class LogTestController { pri..
@RequestMapping과 @Controller @Controller가 하는 일 1. @Controller안에는 @Component가 있어, 내부적으로 스프링 빈으로 등록해준다. 2. @Controller가 붙으면 어노테이션 기반의 컨트롤러라는 것으로 내부적으로 인식하게 된다. 3. @Contoller가 붙으면 RequestMappingHandler로 이해를 한다. @RequestMapping 어노테이션이 하는 일 1. 해당 클래스 또는 URL을 컨트롤러에 맵핑 시켜준다. 이 때, URL 기준으로 맵핑되기 때문에 메서드 이름은 아무 상관이 없다. 2. RequestMapping이 붙으면 RequestHandlerAdapater, RequestMappingHandlerMapping으로 사용된다. 이 때..
이 게시글은 인프런의 김영한님 강의를 듣고 개인적으로 정리한 글입니다. @Component + Controller 인터페이스 구현(BeanNameUrlHandlerMapping) 가장 원초적인 컨트롤러는 @Component + Controller 인터페이스를 구현하는 것으로 사용할 수 있다. 코드부터 보면 아래와 같다. @Component("/springmvc/old-controller") public class OldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System..