본문 바로가기
  • Let's study
BackEnd/Spring

[Spring] @Controller와 @RestController

by 코딩고수이고파 2026. 8. 12.

일반적인 Spring MVC에서는 @Controller를 사용한다.

@Controller
public class PostController {

    @GetMapping("/posts")
    @ResponseBody
    public List<Post> list() {
        return postService.findAll();
    }
}

@Controller에서 객체나 리스트를 HTTP 응답 본문으로 반환하려면 @ResponseBody가 필요하다.

REST API에서는 대부분 데이터를 JSON으로 반환하기 때문에 @RestController를 사용하는 것이 편리하다.

@RestController
public class PostController {

    @GetMapping("/posts")
    public List<Post> list() {
        return postService.findAll();
    }
}

@RestController@Controller@ResponseBody를 합쳐놓은 것이라고 이해하면 된다.

따라서 REST API를 구현할 때는 매번 @ResponseBody를 붙이지 않아도 반환값이 HTTP 응답 본문으로 처리된다.

댓글