본문 바로가기

Exception3

Spring - @Retryable 을 이용한 재수행 로직 처리하기 들어가며 서비스를 개발하거나 어떤 로직을 구현할 때 실패에 따른 재수행 로직을 추가하고 싶을 때가 있다. 따로 코드로 구현할 수 있겠지만 스프링을 사용한다면 스프링에서 제공하는 @Retryable 어노테이션을 통해서 간편하게 재수행 로직을 구현할 수 있다. Spring - @Retryable 을 이용한 재수행 로직 처리하기 @Retryable 사용 방법 먼저 @Retryable을 사용하기 위해서는 다음 두가지 작업을 해줘야 한다. 1. 의존성 추가 implementation("org.springframework.retry:spring-retry") implementation("org.springframework:spring-aspects") 2. @EnableRetry 어노테이션 추가 다음 두가지 작업이.. 2023. 4. 2.
@RestControllerAdvice를 활용한 예외처리 예외를 처리할때 각각의 메서드에서 try-catch를 이용해서 처리하게 되면 코드의 라인이 길어지고 더불어 가독성도 떨어지게된다. 이렇게 되면 같이 협업하는 동료 입장에서도 업무 효율이 떨어지게 된다. 이럴때 사용할 수 있는 것이 공통 예외 핸들러를 통해서 관리하는 방법이다. @RestControllerAdvice를 활용한 예외처리 @ControllerAdvice 먼저 @ControllerAdvice는 @ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들에 AOP를 적용하여 컨트롤러단에 적용하기 위해 고안된 어노테이션이다. 해당 어노테이션을 통해 모든 @Controller에 대해서 전역적으로 발생할 수 있는 예외를 잡아서 처리할 수 있다. @RestCo.. 2022. 9. 6.
@NotFound 어노테이션 들어가며 해당 어노테이션은 연관관계에서 조인한 대상의 값이 존재하지 않는 경우에 발생하는 EntityNotFoundException의 발생을 무시할 수 있는 어노테이션 옵션을 가지고 있다. 설계가 조인 대상의 값이 없더라도 진행되도록 하기위해서는 @NotFound 어노테이션의 IGNORE 옵션을 사용하면 된다. @NotFound 옵션별 설명 및 예외발생 @NotFound(action = NotFoundAction.IGNORE) 와 @NotFound(action = NotFoundAction.EXCEPTION) 이렇게 두가지가 있다. 먼저 IGNORE 옵션은 아래 설명에도 나와 있듯이 존재하지 않더라도 무시하는 것이고 EXCEPTION 옵션은 EntityNotFoundException을 발생시킨다. EXC.. 2022. 8. 3.