ResponseBody는 Spring Framework에서 사용되는 어노테이션으로, 컨트롤러의 반환 값을 HTTP 응답 본문(body)에 직접 담아 보내도록 설정한다.
주로 JSON이나 XML 같은 데이터를 반환할 때 사용한다.
웹 애플리케이션에서 프론트와 백엔드 간에 데이터를 주고받는 API 구현에서 자주 사용된다.
ResponseBody를 사용하면, 메서드의 반환 값을 HTTP 응답 본문에 직접 포함시킨다.List객체를 JSON으로 변환해 클라이언트에 응답한다.
@GetMapping("/api/example")
@ResponseBody
public List<String> getExampleData() {
return Arrays.asList("Spring", "Java", "Backend");
}
["Spring", "Java", "Backend"]
Chart.js와 같은 라이브러리에서 서버 데이터를 받아와 동적으로 차트를 업데이트 할 때 사용된다.@RestController 어노테이션은 @Controller와 @ResponseBody를 합친 어노테이션이다.@RestController가 사용된 컨트롤러에서는 모든 메서드에 자동으로 @ResponseBody가 적용된다.
@RestController
public class ExampleController {
@GetMapping("/api/data")
public List<String> getData() {
return Arrays.asList("Data1", "Data2", "Data3");
}
}
위처럼 @RestController를 사용하면, 메서드 반환 값이 자동으로 HTTP 응답 본문에 담긴다.
@ResponseBody를 사용하지 않아야 한다.<button id="loadDataBtn">데이터 로드</button>
<div id="result"></div>
<script>
document.getElementById('loadDataBtn').addEventListener('click', function () {
fetch('/api/example')
.then(response => response.json())
.then(data => {
document.getElementById('result').innerHTML = data.join(', ');
})
.catch(error => console.error('데이터 로드 오류:', error));
});
</script>
@GetMapping("/api/example")
@ResponseBody
public List<String> getExampleData() {
return Arrays.asList("Spring", "Java", "Backend");
}
@ResponseBody는 주로 JSON 데이터를 반환해야 할 때 사용한다.@ResponseBody를 사용하면, 백엔드와 프론트엔드 간의 데이터 통신이 효율적으로 이루어지며, RESTful API 설계에 필수적인 어노테이션이다.