SpringBoot

@RestController 애너테이션

초코너무조코 2025. 3. 4. 16:53
728x90

@RestController 애너테이션은 Spring Framework에서 RESTful 웹 서비스를 쉽게 개발하기 위해 제공되는 애너테이션입니다. 

1. RESTful 웹 서비스 개발에 최적화

@RestController는 @Controller와 @ResponseBody를 결합한 형태로, 메서드의 반환값이 HTTP 응답 본문으로 직접 전달됩니다. 즉, JSON이나 XML 같은 데이터 형식으로 응답을 반환하는 RESTful API를 개발할 때 매우 간편하게 사용할 수 있습니다

2. 간소화된 코드

  • @ResponseBody를 메서드마다 붙일 필요가 없습니다. @RestController를 클래스 레벨에 선언하면 해당 클래스의 모든 메서드가 자동으로 HTTP 응답 본문에 데이터를 반환하도록 설정됩니다
  • 데이터 객체를 반환하면 Spring이 이를 자동으로 JSON 또는 XML로 직렬화하여 클라이언트에게 전달합니다.

3. HTML 뷰 대신 데이터 반환

  • @Controller는 주로 HTML 뷰를 반환하기 위해 사용되며, 뷰 리졸버(View Resolver)를 통해 렌더링된 페이지를 클라이언트에게 제공합니다.
  • 반면, @RestController는 HTML 뷰 대신 데이터(주로 JSON)를 반환합니다. 이는 RESTful API에서 클라이언트와 서버 간 데이터 교환을 위해 설계된 방식입니다.

4. REST 아키텍처 스타일 지원

REST(Representational State Transfer)는 자원을 중심으로 설계된 아키텍처 스타일입니다. @RestController는 이러한 RESTful 웹 서비스의 컨트롤러로 사용되며, 클라이언트 요청에 따라 자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하는 데 적합합니다.

사용 예시

 
@RestController public class MyRestController { @GetMapping("/api/hello") public String hello() { return "Hello, World!"; } }

위 코드에서 /api/hello 요청은 단순한 텍스트 응답("Hello, World!")을 JSON 형식으로 반환합니다.

결론

@RestController는 RESTful API 개발을 단순화하고 직관적으로 만들어주는 강력한 도구입니다. 데이터를 주고받는 API를 설계할 때 @RestController를 사용하면 코드가 간결해지고 유지보수가 쉬워집니다.

728x90

'SpringBoot' 카테고리의 다른 글

@Bean의 의미와 사용 방법  (0) 2025.03.05
@Configuration과 ApplicationContext  (0) 2025.03.05
Thymeleaf  (2) 2025.03.04
SpringBoot에서 사용할만한 모니터링 도구 비교  (0) 2025.03.04