Java/Spring

스프링 스터디(RestAPI의 다양한 기능 추가(Exception, Response..)

SeungbeomKim 2022. 7. 25. 18:46
반응형

4주차

Custom Respose 만들기 (기존 포스트맨 결과와 비교)

 

예외처리 사용 및 필요성

  • Exception 작성
  • Advice 생성 및 사용

README.md 파일 만들기

 

Response을 커스텀해서 사용하는 이유는 ResponseEntity 클래스를 통해 리턴을 해주면 데이터의 형식을 수정할 수가 없게 된다. 즉 형식을 유동적으로 수정해주기 위해 Response를 사용한다.

 

ResponseEntity로 데이터를 반환할 경우

Response로 데이터를 반환할 경우

Response로 데이터를 반환했을 때, ResponseEntity로 데이터를 반환했을 때 보다 더욱 

다양한 틀에 감싸져 있음을 확인할 수 있다. 이렇게 사용하는게 더욱 편리한 이유는 프론트엔드

개발자의 편의를 위함과 더불어, 데이터의 형식을 쉽게 구분시켜주기 때문이다.

 

예외처리 

예외처리를 하는 이유는 사용자가 요청을 보냈을 때, 에러가 난 경우를 대비하기 위함이다. 3주차 때 배운 get() 함수는 오류마저도 받아드리는 역할을 함으로써, 어떤 문제점이 발생했는지 알 수 없었다. 그러나 예외처리를 배움으로써, 어떤 에러가 발생했는지 알 수 있기 때문에 예외처리를 사용한다.

 

예외처리 개념

  • Advice : Exception을 관리하기 위한 통제소 
  • Exception : 예외처리를 위해 커스텀으로 만든 Exception
  • @RestControllerAdvice : 예외처리가 발생한 것을 관리해줌 // @RestController + @Advice
  • @ExceptionHandler(예외.class) : 어노테이션이 적용된 예외처리메소드 실행
  • @ResponseStatus : http의 상태코드 반환(ex)404 not found)
  • ExceptionAdvice에 의해서 예외처리를 한 후, failure 메소드에 의해 오류를 리턴해준다.

예외상황을 만들기 위해서 작성해야 할 클래스

ex) BoardNotFoundException => 게시글이 안 보일 때

ex) WriterNotFoundException => 작성자가 안 보일 때 

+ RuntimeException을 상속 받아야함

예외처리 기능을 추가하면, 다음과 같이 실패 메세지와 에러코드 및 데이터 반환이 실패했다는 false값이 출력된다.

반응형