20230830

최현우·2023년 8월 30일

업무/개발일지

목록 보기
124/134
post-thumbnail

오늘의 일

  • 배치 실패 원인 파악 및 수정

  • 테스트 데이터 웹 등록 및 aws기동

저번에 만든 배치에서 에러가 일어났다. 로그문을 안남겨놔서 어디가 원인인지 파악하지 못하여 오류가 일어난 데이터들을 모두 긁어와서 돌려봤다. 원인은 select문에서 일어나서 의아했다. 나는insert문이나 update에서 컬럼값에 ,나 ’와 같은 문자가 들어있을거라 생각했다.

원인은 select의 where문에서 in을 사용하여서 괄호안에 strings.join한 값을 집어넣는데 이때 공백인 경우에 에러가 일어난다. 공백인 경우를 생각 안하고 당연히 값이 들어오는 줄알고 코딩한 내 잘못이다. 그 부분을 고치고 추가로 각 sql처리에 예외처리안에 테이블의 키를 구성하는 값들을 로그에 띄웠다. 하는김에 비슷한 처리를 하는 배치도 있어서 해도 되냐고 물어보고 같이 적용시켰다.

다음과 같은 메서드를 만들어 메시지 안의 {i}값을 집어넣어 원하는 에러 메시지를 출력하게 했다. 이때 파라미터 값들이 sql에서는 concat이나 계산한 식들도 있어서 가져오는데 고민했다.
로그에 필요한 값을 위해 대상테이블의 dto는 건들고 싶지는 않고... 결국 substring으로 값을 다 나누어 넣고 에러를 일으켜 테스트 한 후 commit!

profile
세상에서 가장 귀여운건 == 윤호 ? True : False 언제나 True❤️

1개의 댓글

comment-user-thumbnail
2023년 9월 4일

당연한건없어!!!!
공백으로 들어오기도한다구 ( ͡° ͜ʖ ͡°)

답글 달기