@RequestMapping과 객체 전달
1. @RequestMapping
@RequestMapping은 Mapping 주소를 통일시켜주는 역할을 한다. 가령 /api/v1이라는 mapping을 여러 메소드에 사용하고 싶을 때 하나하나 입력하는 것이 아닌, @RequestMapping를 통해 모든 url에 /api/v1 을 붙여주는 역할을 한다.
위와 같이 분명 url Mapping을 각각 user와 signin만 썼는데 @RequestMapping에 의해 해당 Controller내에는 무조건 /api/v1 이 다 포함되어 있게끔 설계가 되는 것이다.
이런식으로 설계시에 필요하다면 같은 url을 쓰게 될 경우 불편하게 다 입력하는 것이 아닌, 통일된 부분은 @RequestMapping을 활용해 좀 더 편리하게 사용할 수 있다.
객체 전달
위에서는 String으로 문자열의 데이터를 전달했다면 지금부터는 객체를 전달하는 방식에 대해서 알아보도록 하자.
이전에 Servlet에서는 객체를 주고받기 위해 Gson을 이용해 JSON으로 형변환을 하여 데이터를 주고 받는 형식이었다면, Spring에서는 Jackson이라는 라이브러리가 Object는 다 알아서 JSON으로 바꿔주는 역할을 해준다.
먼저 위와 같이 dto를 하나 만들어 줄건데, web패키지 아래 dto 패키지를 만든 후 TestUser에 User객체를 만들어 이를 전달하는 식으로 해볼 것이다.
위와 같이 필요한 객체를 생성 후, 아래에 Object로 return을 받는 식으로 만들어주면 된다. Builder의 경우 toString으로 해도 되긴 하지만, Builder는 순서에 제약을 받지 않기 때문에 좀 더 유연하게 사용할 수 있어서 Builder를 사용했다.
이상태로 postman에 send해보면
JSON으로 객체가 잘 전달된 것을 볼 수 있다.