본문 바로가기

Dev.BackEnd/Spring & Spring Boot

[스프링부트] 클라이언트와 서버와의 통신(@RequestBody, @ResponseBody, Jackson라이브러리)

클라이언트와 서버간의 어떻게 통신할까?

  • http를 통해 통신이 된다
  • 클라이언트는 http를 통해 서버로 데이터를 보내는데  json문자열로 보내야만 한다.
  • http로 요청할 때 body부분에서는 문자열로만 전송할 수 있기 때문이다. 즉 json.stringfy()를 이용해 json객체를 문자열로 만들어 보내야한다.

그럼 서버는?


서버에서 보통 게시판을 예로 들어 VO 객체를 return으로 응답을 하는데, 여기서 spring이 vo객체를 json문자열 형식
으로 변환하여 응답한다. 

 

이 때 스프링에서 사용되는것이 jackson 라이브러리이다. 그리고 http응답에 포함시켜 클라이언트에 요청을 보낼 때는 반드시 @Responsebody를 해줘야 http응답에 포함이 된다. 

그렇지 않을 경우 jsp페이지, 템플릿을 랜더링할 것 이다.

 

그럼 @Requestbody는 뭘까?


이건 클라이언트가 json문자열로 보내는데, 그걸 서버쪽에서 java객체로 변환시키라고 spring에게 명령을 시키는 녀석이다. 스프링이 명령을 받으면 Jackson라이브러리에게 명령을 내려 Jackson라이브러리가 실제로 수행이 된다.

jackson라이브러리는 자바객체를 json문자열로 바꾸거나, 클라이언트에서 날라온 json문자열을 자바객체로 바꾸는 역할을 한다.

그리고 클라이언트는 데이터를 서버로 보낼 때는 문자열로 만들기 위해 json.stringfy를 사용하고, 서버에서 날라온 json문자열 객체를 자바스크립트 객체로 만들기 위해 json.parse를 사용한다.