mvc,api
🔹1. 내용(Content)
✅ 첫 번째 메서드
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
이건 MVC(Model-View-Controller) 방식이야.
클라이언트가
/hello-mvc?name=spring
으로 요청하면,Model
에 데이터를 담고,"hello-template"
이라는 뷰(HTML 템플릿)를 반환함.즉, Thymeleaf 같은 템플릿 엔진을 통해 HTML을 렌더링해서 브라우저에 보여줌.
✅ 두 번째 메서드
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam(value = "name") String name){
return "hello" + name;
}
이건 API 방식이야.
클라이언트가
/hello-string?name=spring
으로 요청하면, 그냥"hello spring"
이라는 순수 문자열을 HTTP 응답 바디에 직접 내려보냄.@ResponseBody
가 붙었기 때문에 템플릿을 찾지 않고, 바로 응답을 문자열로 반환함.
🔹2. 이유(Reason)
| 항목 | helloMvc | helloString |
|------------|----------------------------------------------|------------------------------------------|
| 응답 방식 | HTML 템플릿 렌더링 (뷰 이름 리턴) | 순수 문자열 응답 (바디 리턴) |
| 목적 | 사용자에게 웹 페이지 보여주기 | API 응답 (프론트/앱 등과 통신) |
| 사용 기술 | Thymeleaf 같은 템플릿 엔진 | @ResponseBody, REST 스타일 |
| 응답 예시 | 렌더된 HTML 페이지 | "hello spring" 텍스트 그대로 |
🔹3. 요약(Summary)
helloMvc
: 웹 페이지(HTML)를 보여주기 위한 컨트롤러. 뷰 엔진을 통해 동적으로 페이지 생성.
helloString: 문자열(API 응답)을 직접 반환하는 컨트롤러. JSON이나 단순 텍스트 응답에 적합.