inflearn logo
강의

講義

知識共有

[改訂版2023-11-27] Spring Boot 3.xを利用したRESTful Web Servicesの開発

Spring AOPを利用した Exception Handling

@RestControllerAdvice를 사용하지 않은 이유?

1

nick

投稿した質問数 40

0

안녕하세요. 강의 잘 듣고 있습니다.

강의를 듣다 궁금하게 생긴 점이 있는데 @ControllerAdvice,@RestControllerAdvice 둘 다 보통 컨트롤러에서 공통적으로 적용할 어노테이션으로 알고 있습니다. 차이점으로는 @ResponseBody가 붙은 것으로 알고 있는데, 지금 강의에서는 뷰처리를 하지 않고, ResponseEntity 객체를 사용하기 때문에 어차피 JSON 형태로 응답을 해주지만 그래도 코드로 표현하기에는 @RestContollerAdvice가 적절하지 않나 생각했는데, @ControllerAdvice를 사용하신 이유가 있으신지 궁금합니다.

rest-api spring-boot

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. nick님, 질문 주셔서 감사합니다.

@ControllerAdvice@RestControllerAdvice는 모두 컨트롤러에서 발생하는 예외를 전역적으로 처리하기 위해 사용됩니다. @RestControllerAdvice@ControllerAdvice와 유사하지만, @ResponseBody가 추가되어 있어, 예외 처리 메소드가 반환하는 객체가 자동으로 JSON 형식으로 변환됩니다. 그래서 주로 JSON 응답이 필요한 RESTful 웹 서비스에서 사용됩니다.

강의에서 @ControllerAdvice를 사용한 것은 전통적인 방식으로 예외를 처리하기 위한 것일 수 있습니다. 하지만, 실제로 JSON 응답을 반환하면서 @ResponseBody의 기능이 필요하다면, @RestControllerAdvice를 사용하는 것이 더 명확할 수 있습니다. 두 어노테이션은 기능적으로 큰 차이가 없으므로 실무에서는 상황에 맞게 적절하게 선택할 수 있습니다.

이와 관련된 질문 링크를 참고하시면 더 깊은 이해를 얻으실 수 있습니다:

이 포스트에서는 @RestController@Controller의 차이점 및 예외 처리 방법에 대해 다루고 있습니다. 또한, 서로 다른 상황에 맞게 어떻게 사용될 수 있는지를 설명합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

JPA

0

77

1

jpa dependency를 추가하고 SecurityConfig클래스에서 오류가 납니다.

0

91

1

웹 브라우저 400 bad request

0

102

1

@Size는 되는데 @Past는 안 됩니다.

0

84

1

pdf 자료는 없나요?

0

104

2

locale 정보가 null 이면 무조건 messages_ko.properties이 호출 되는 문제

0

128

2

Swagger 강의, Unable to infer base url 이거 뜨시는 분들 도움되시라고

0

149

1

강의에서나온 화면 피피티

0

176

1

HelloWorldBean 관련 에러

0

200

2

Swagger API 3.x 오류..

0

247

1

java: variable message not initialized in the default constructor 에러는 어찌하면 좋을까요?

1

305

1

현재 GIT에 올리신 소스를 실행해봤습니다.

0

216

2

고양이 소리가 귀엽네요 !!

0

160

2

git에서 소스받고 실습중인데

0

138

1

post가 안되요

0

130

1

한국어 같은 경우 언어코드인 messages_ko.properties 로 생성하는게 더 좋지 않나요?

0

179

2

리턴타입으로서 EntityModel<User> 와 ResponseEntity질문

0

120

1

예외처리쪽 관련 질문있습니다.

0

172

2

엔티티가 바로 응답으로 나가도 되나요??

0

247

2

안녕하세여 Cannot invoke "co.kr.joneconsulting.resfulservice.repository.PostRepository.save(Object)" because "this.postRepository" is null

0

161

2

사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.

0

152

2

ApplictionContext 질문

0

203

2

롬북이 안먹히는것같아요

0

164

1

인텔리제이에서스프링부트 파일 실행하면

0

250

1