스프링 이전에는 servlet이라는 클래스를 사용하여 서버를 만들었다.
새로운 기술이 만들어지고 만들어진 기술이 많이 사용되는 이유는 대게 이전의 기술의 불편한 점을 개선해서 새로운 기술이 개선되서 나오기 때문이다.
그럼 서블릿의 불편한 점은 어떤 점이였을까?
쉽게 그림으로 보면 클라이언트에서 사용하는 언어는 javaScript이다. 서버에서 사용하는 언어는 Java이다. javaScript와 Java가 통신하기 위해서는 번역을 해야하는데 이 번역을 해주는 역할이 Json이다.
클라이언트에서 javascript를 번역해 Json형식으로 서버에 요청을 보내면
서버는 요청받은 Json형식을 다시 Java로 번역하고 처리된 결과물을 다시 Java에서 Json으로 번역한 뒤에 클라이언트에게 응답해준다.
서블릿에서는 이 번역하고 해설하는 작업을 일일이 지정해줬다. 또한 이게 get인지 post인지도 세세하게 설정을 해주고 세팅을 해줘야 됬다.
이러한 귀찮은 작업들을 개선하고자 Spring이 등장하였다.
스프링은 Json의 번역을 직접 세팅해주지 않아도 알아서 자동으로 세팅이 되고 get인지 post인지도 입력만 해주면 알아서 자동으로 세팅이된다.
ObjectMapper objectMapper = new ObjectMapper();
String productJson = objectMapper.writeValueAsString(product);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(productJson);
out.flush();
이렇게 복잡한 코드를 spring에서는
return product
이렇게 한줄로 해결이 가능하다.
가장위에 이 코드가 @RestController이다 라고 선언만 해주면 알아서 자동으로 처리해준다.
또한 post면 '@PostMapping' 라는 키워드 한개로 나머지 세세한 부분이 자동으로 세팅이 되기 때문에 Spring을 사용하지 않을 이유가 없다.