Spring/팀스파르타

7. 데이터를 Client에 반환하는 방법

열심히 해 2024. 10. 26. 10:08

https://tes1194.tistory.com/89

 

에 이어서....

 

 

서버는 요청을 받아 html/css/js 파일을 반환해주는게 주 업무일까요? 

 

최근에는 서버가 직접 뷰(html/css/js)를 반환하기 보다는 요청에 맞는 특정한 정보만 반환하는 것을 조금 더 선호합니다.

 

` 특정한 정보 ` 의 형태: Json 

 

 

 

  • JSON 데이터 반환하는 방법
    • 템플릿 엔진이 적용된 SpringBoot에서는 Controller에서 문자열을 반환하면 templates 폴더에서 해당 문자열의 .html 파일을 찾아서 반환해줍니다.
    • 따라서 html 파일이 아닌 JSON 데이터를 브라우저에 반환하고 싶다면 해당 메서드에 @ResponseBody 애너테이션을 추가해줘야합니다.
  • @RestController  = @Controller + @ResponseBody
    • @RestController를 사용하면 해당 클래스의 모든 메서드에 @ResponseBody 애너테이션이 추가되는 효과를 부여할 수 있습니다.

 

@GetMapping("/response/json/string")
@ResponseBody
public String helloStringJson() {
    return "{\"name\":\"Robbie\",\"age\":95}";
}

 

  • Java는 JSON 타입을 지원하지 않기 때문에 JSON 형태의 String 타입으로 변환해서 사용해야 합니다.

 

 

@GetMapping("/response/json/class")
@ResponseBody
public Star helloClassJson() {
    return new Star("Robbie", 95);
}
  • "자바 객체 → JSON 으로 변환"
  • Spring에서 자동으로 Java의 객체를 JSON으로 변환해줍니다.