Debug Log/삽질기

mysql-mybatis)일정기간별 검색

Greensky0026 2022. 8. 21. 15:26
반응형

1. 발단

기간별 검색 구현

 

2. 상황

between A and B 까지 하면 A~B까지 출력하겠지 라고 낙관적인 생각

 

3. 실패원인 

  1. A~B까리이지만, A가 포함인지 미포함인지, B가 포함인지 미포함인지 고려 안함
  2. 동료분이 23:59:59까지 조건으로 하면 될거같은데요~ 를 너무 쿨하게 참조만 함 (...)
  3. 쉬운 작업이라 생각하고 테스트 케이스를 너무 빈약하게 잡았음 (당일만 검색 고려  안함 + 산출값 확인 미흡)

3. 힌트

30일전부터 오늘까지의 데이터를 뽑아올 때,

between A and B and NOW() 를 사용했었음.

 

4. 처리

DATE_FORMAT(CREATE_DT, '%Y-%m-%d') <![CDATA[>=]]> #{startDt} AND DATE_FORMAT(CREATE_DT, '%Y-%m-%d') <![CDATA[<=]]> #{endDt}

DB에서 이짓까지 해가면서 출력할뻔 했다가...

DB연산은 최소화해야된단 생각에 정신줄 부여잡고 서버단에서 처리시도

 

날자 조건은 선택적 조건이므로,

startDt, endDt가 값이 있는지 확인 후, startDt + 00:00:00, endDt + 23:59:59 붙여서 쿼리 조건으로 입력

23:59:59~00:00:00의 데이터 유실 걱정 안해도 되는데, 어차피 db상 sencond까지 기록되므로 아무 문제 없음

 

5. 결과

정상적으로 시작날자의 00:00:00부터, 원하는 날의 23:59:59 데이터까지 정상적으로 출력

 

6. 느낀점

  1. 귀찮고 번거롭다고 테스트를 경시한다면  큰 사고가 터진다... 제발 조심하자
  2. 동료한테 물어봤으면 말좀 들어라!!!!!

 

 

반응형