@RestControllerAdvice를 사용하지 않은 이유?
1
작성한 질문수 40
안녕하세요. 강의 잘 듣고 있습니다.
강의를 듣다 궁금하게 생긴 점이 있는데 @ControllerAdvice,@RestControllerAdvice 둘 다 보통 컨트롤러에서 공통적으로 적용할 어노테이션으로 알고 있습니다. 차이점으로는 @ResponseBody가 붙은 것으로 알고 있는데, 지금 강의에서는 뷰처리를 하지 않고, ResponseEntity 객체를 사용하기 때문에 어차피 JSON 형태로 응답을 해주지만 그래도 코드로 표현하기에는 @RestContollerAdvice가 적절하지 않나 생각했는데, @ControllerAdvice를 사용하신 이유가 있으신지 궁금합니다.
답변 1
0
안녕하세요, 인프런 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





