쿼리를 열심히 짜고 보니 5 / 10어떤 집계 개수 / 총 개수 이런 로직이 있고 ROUND( 5 / 10 , 1) 이렇게 소수점 한 자리까지 가공하는 SQL이 존재했다. 테스트 데이터를 모두 지우고 운영에 반영하려고 할 때 문제가 발생했다. 1 / 0 , 0 / 0 -> 모두 Sql에서 에러가 튀어나왔다... 0으로 나눌 수 없다는 에러였다. 대충 어떤 쿼리인지 설명을 해보자면 SELECT NVL(COUNT(ABC), 0) / NVL(COUNT(TOTAL), 0)FROM TEST_TABLEGROUP BY ~~; 나름 NULL의 경우를 커버한다고 설정해두었지만, 저 경우에는 NULL로 나눠야 해결이 가능한 문제였다. 0으로 나눌 수 없고, NULL로는 나눌 수 있다. NULLIF를 사용해서 해결하였다..
전체 글
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fufnba%2FbtsJn71pghO%2FUB97ddDt1GJnsMyizFD8p0%2Fimg.png)
2024-08-31T15:23:38.935+09:00 INFO 19976 --- [common] [ main] c.l.feign.KakaoClientIntegrationTest : Started KakaoClientIntegrationTest in 6.552 seconds (process running for 9.803) OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended com.library.ApiException at com.library.feign.KakaoErrorDecoder.decode(KakaoErrorDecode..
@RequiredArgsConstructor@Componentpublic class ApplicationRunner implements CommandLineRunner { private final DailyStatRepository dailyStatRepository; @Override public void run(String... args) throws Exception { DailyStat stat1 = new DailyStat("HTTP", LocalDateTime.now()); DailyStat stat2 = new DailyStat("HTTP", LocalDateTime.now()); DailyStat stat3 = new DailyStat(..
MethodArgumentTypeMismatchException 파라미터의 Type(형식)이 제대로 넘어오지 않았을 때. LocalDate 타입으로 넘어와야하는데 String이나 int로 넘어온 경우 @ExceptionHandler(MethodArgumentTypeMismatchException.class) public ResponseEntity handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e) { log.error("MethodArgumentTypeMismatch Exception occurred. message={}", e.getMessage()); return Resp..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsilG6%2FbtsJmADv7Sy%2FrNj1w4aaAMLozSIh9KxUU1%2Fimg.png)
MissingServletRequestParameterException 필수 파라미터가 아예 빠져있을 때 발생 @ExceptionHandler(MissingServletRequestParameterException.class) public ResponseEntity handleMissingServletRequestParameterException(MissingServletRequestParameterException e) { log.error("MissingServletRequestParameter Exception occurred. parameterName={} message={}, className={}", e.getParameterName(), e.getMessage(), ..
URL 매핑이 잘못되어 있을 때, 못 찾을 때 예외 처리 방법올바른 URL: http://localhost:8080/v1/books/stats/ranking올바르지 않은 URL : http://localhost:8080/v1/books/stats/rankings이런 케이스에서 발생@Getterpublic enum ErrorType { EXTERNAL_API_ERROR("와부 API 호출 에러 입니다."), UNKNOWN("알 수 없는 에러입니다."), INVALID_PARAMETER("잘못된 요청값입니다."), NO_RESOURCE("존재하지 않는 리소스입니다."); ErrorType(String description) { this.description = desc..