이번 주는 저번주에 비해 쉬웠다. 스프링에 있는 기능들을 활용해서 과제를 진행했기 때문이다. 스프링을 써왔지만 이렇게 까지 스프링이 왜 생겨났는지 그리고 스프링의 필요성에 대해 피부로 와닿은 적은 처음이다.
@CrossOrigin
을 클래스 레벨에 사용하였다. @ExceptionHandler
에 해당 컨트롤러에서 처리하고 싶은 예외를 지정해주면 이 애노테이션이 붙은 메서드를 호출한다.@ExceptionHandler({FileSystemException.class, RemoteException.class})
public ResponseEntity<String> handle(IOException ex) {
// FileSystemException, RemoteException을 포함한 자식 예외가 발생하면 이 메서드를 호출한다.
}
@ExceptionHandler
를 해당 컨트롤러뿐만 아니라 다른 컨트롤러에서도 사용하기 위해 사용하는 애노테이션이다.@ControllerAdvice
와 @RestControllerAdvice
두 종류가 있는데, 현재 애플리케이션은 @RestController
이므로 @RestControllerAdvice
를 사용하였다.TaskNotFoundException::new
: () -> new TaskNotFoundException()
를 좀 더 간결하게 표현한 문법이다. 이번 주는 모든 API 테스트와 E2E 테스트를 통과했다. 💯 테스트를 실행하기 위한 환경설정들을 맞추는데 애를 좀 먹었지만 모두 통과된 결과를 보니 참 뿌듯하다. 갑자기 회사일이 많아져서 체력 분배와 시간 분배 조절이 필요해보인다.