티스토리 뷰
2018-12-30 ~ 2018-12-31 의 데이터가 보이지 않는다는 문의가 다수 인입됨.
DB 를 확인해보니
2018-12-30 로 저장되어야 하는 데이터가 2019-12-30
2018-12-31 로 저장되어야 하는 데이터가 2019-21-31 로 저장되어 버려서 해당일의 통계 데이터가 노출되지 않았다.
날짜가 잘못 저장된 이유.
BEFORE
private static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("YYYYMMddHHmmss");
AFTER
private static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
DateTimeFormatter.ofPattern() 메서드를 이용해서 LocalDateTime → String 로 타입을 변경하였는데
이때 패턴을 "YYYYMMddHHmmss" 를 사용하게 되면 Week year 를 사용하게 되어 해당 주의 년도를 YYYY 로 사용하게 된다.
즉, 2018-12-30 이 있는 주의 년도는 2019 이므로 2019-12-30 으로 변환/저장 된것이다.
배포하여 더 이상 발생하는것은 막았지만 이미 저장되어있는 300만건에 대해서 데이터 보정이 필요했다.
배치를 생성하여 데이터 보정완료.
데이터 보정 코드 리뷰 당시에 로직을 최소화하라는 리뷰를 해주셨다!!!!!!!!!!
복잡한 로직이 또 다른 데이터 오류를 발생시킬 수 있으므로!
'Trouble Shooting' 카테고리의 다른 글
Spring Cloud Gateway Redirect 시 호스트 변경됨 (0) | 2020.11.29 |
---|---|
갑자기 AWS 인스턴스 재부팅 됨 (Suddenly AWS instance was rebooted) (0) | 2020.04.18 |
Java AbstarctMethodError (1) | 2020.03.09 |
docker: Error response from daemon: service endpoint with name {randomName} already exists. (0) | 2019.05.29 |
Hibernate toString stackOverflowError (0) | 2019.05.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DyanomoDB
- rate limit
- mariadb-connector-j
- MariaDB
- ResultSet
- aurora
- msyql-connector-java
- referencedColumnName
- reative
- circurit breaker
- RoutePredication
- wait()
- Lazy
- N+1
- HashMap
- dynamodb
- RouteDefinition
- Seperate Chaining
- notify()
- mariada-connector
- ConcurrentHashMap
- custom config data convertion
- getBoolean
- AbstractMethodError
- GlobalFilter
- notifyAll()
- reactor
- router
- Flux
- spring cloud gateway
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함