@RestController
ㅡ> @Controller + @ResponseBody의 조합
@ResponseBody
ㅡ> 컨트롤러 메서드의 반환값을 HTTP 응답 Body에 그대로 넣어서 클라이언트에게 보내주는 역할
ㅡ> 즉, 뷰(JSP, HTML)를 반환하지 않고, JSON 또는 문자열 등 "데이터 자체"를 반환
예시
📌 @Controller
기본적으로 @Controller는 메서드에서 문자열을 반환하면,
그걸 뷰 이름으로 간주하고 JSP 같은 뷰를 찾으려 해요.
@Controller
public class PageController {
@GetMapping("/home")
public String home() {
return "home"; // → /templates/home.html 같은 뷰를 찾아서 렌더링
}
}
📌 @Controller + @ResponseBody
💡 그런데 데이터를 직접 보내고 싶을 땐?
@Controller
public class ApiController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello"; // → 뷰 말고, "Hello"라는 텍스트 그대로 응답 Body에 전송
}
}
@ResponseBody → "이건 데이터야. 뷰 찾지 말고 이걸 바로 응답해!" 라는 뜻
📌 @RestController (추천 방식)
@RestController
public class ApiController {
@GetMapping("/hello")
public String hello() {
return "Hello"; // → `@ResponseBody` 없이도 바로 "Hello" 반환됨
}
}
✨ 결론 요약
✔ @RestController는 화면이 아닌 데이터 자체를 주고받는 컨트롤러입니다.
✔ 그래서 JSON 응답을 만드는 REST API 서버에서 기본처럼 쓰입니다.
'프레임워크 > Spring' 카테고리의 다른 글
Spring Context: Defining Beans (0) | 2025.05.01 |
---|---|
Spring in the Real World (0) | 2025.05.01 |
REST API (0) | 2025.03.26 |
의존, 의존성 주입(DI) (0) | 2025.03.25 |
Spring Framework 개념 구조화 (0) | 2025.03.23 |