Spring MVC 응답 정적 리소스 웹 브라우저에 정적인 HTML, CSS, JS를 제공할 때 사용(파일을 그대로 전달) 뷰 템플릿 사용 웹 브라우저에 동적인 HTML을 제공. 뷰 템플릿을 사용(SSR) HTTP 메세지 사용 HTTP API를 제공하는 경우, HTML이 아닌 데이터를 전달한다. 주로, HTTP 메세지 바디에 JSON 같은 형식으로 데이터를 제공한다. Spring MVC에서 응답을 만드는 방법은 위 3가지다. 정적 리소스 제공 Spring은 아래 디렉토리에 있는 정적 리소스를 제공한다 /static /public /resources /META-INF/resources /src/main/webapp/WEB-INF (이 경우 외부에서 직접 접근 불가능) /static에 넣어둔 HTML은 스프..
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으로 사용된다. 이 때..