
💡 RestController는 Spring Framework에서 제공되는 어노테이션 중 하나로, 주로 RESTful 웹 서비스를 개발할 때 사용됩니다. 해당 클래스가 REST 엔드포인트를 처리하는 컨트롤러임을 나타냅니다.
또한 주로 웹 서비스에서 JSON또는 XML 형식의 데이터를 반환하는데 사용됩니다.
@Controller
public class MyController {
@GetMapping("/hello")
public String sayHello() {
return "hello"; // 뷰 이름으로 해석
}
}
위 코드와 같이 Controller는 /hello 라는 요청이 오면 return에 있는 "hello"라는 뷰를 반환합니다. 이는 스프링에서 뷰 리졸버(View Resolver)를 통해 실제 뷰 파일(hello.html)을 연결시킵니다.
@RestController
public class MyRestController {
@GetMapping("/hello")
public String sayHello() {
return "hello"; // 직접 HTTP 응답 본문으로 반환
}
}
Controller와 달리 RestController는 /hello 라는 요청이 오면 hello 라는 데이터 값을 그대로 반환합니다.
시간이 지나다 보니, 사실 MVC 패턴으로 Controller를 접하는 경우가 많습니다. 그러다 보니 RestController가 데이터를 그대로 반환한다,라는 말이 와닿지 않을 수 있을 거 같은데요,Controller는 뷰(html)를 반환한다, 보여준다. 반면에 RestController는 데이터만을 전달한다, 던져준다.라고 생각하시면 될 거 같습니다.