어제 발견된 중복 건에 대한 처리를 개발 완료하였습니다.
전송 내역은 api에서 조회하고 처리 후 소각 내역은 DB 에 저장하다 보니 정확하게 매칭할 수 있는 방법을 찾는데 조금 애를 먹었습니다.
처리한 방법은 SVC를 전송한 내역을 시간 순으로 정렬한 이후에 보팅을 했고 소각을 한 건에 대해서 다음과 같은 체크 로직을 추가했습니다.
memo가 동일하고 txid(트랜잭션 아이디)가 앞선 거래 내역이 있으면 현재의 건을 중복 건으로 인식하는 것입니다.
let duplicate = svclist.filter(data => data.memo == memo);
duplicate = duplicate.filter(data => data.txid < svc.txid);
이후에 실제로 반환한 내역을 조사하고 반환한 개수와 소각한 개수의 차에서 반환하지 않은 양을 전송하는 것으로 개발을 하였습니다.
이때 문제가 될 수도 있겠다고 생각되는 부분이 있어서 아직 적용은 하지 않고 기존의 중복 건에 대한 테스트만 한 상태입니다.
기존 중복 건에 대한 처리는 다음과 같이 완료가 되었습니다.
중복 건을 처리할때 중복이 2건 이상 발생했을때도 정상적으로 되는지 테스트를 거친 후에 실제 적용을 해야겠습니다.
전송내역을 DB넣고 이것을 소각을 했느냐 반환을 했느냐로 처리하였으면 좀 더 편할 것 같기는 한데 실제로 SCT의 공식적인 서비스가 아니라서 기존에 있던 것들을 최대한 활용을 할려다 보니 손을 좀 더 거치게 되었습니다.
이번주 내로 테스트 완료하여 적용하여 손이 가지 않도록 잘 만들어야겠습니다.
12월의 첫 출근날!!
즐겁고 활기찬 하루 되세요!!