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 |