[업무일지] 빈 문자열이 통과시킨 계좌 검증
예금주명 비교가 계속 틀려서 파보다가 더 위험한 걸 봤습니다. 접두어를 지운 결과가 빈 문자열이면 contains 가 항상 참이라 검증이 조용히 통과했습니다.
예금주명 비교가 계속 틀려서 파보다가 더 위험한 걸 봤습니다. 접두어를 지운 결과가 빈 문자열이면 contains 가 항상 참이라 검증이 조용히 통과했습니다.
운영 중인 평문 컬럼을 암호화하려고 평문·암호문을 함께 쓰는 이중쓰기로 1단계를 잡은 기록입니다. 정작 발목을 잡은 건 암호화가 아니라 MariaDB DDL 절 순서와 CI 환경의 스키마 설정이었습니다.
오탐 시 멀쩡한 셀러의 정산금이 묶이는 배치를, 대상 구간과 실행 핸들러 두 축으로 나눠 6주에 걸쳐 단계적으로 넓힌 기록입니다. 핵심 검사는 처음부터 전 대상에 두었습니다.
호출부마다 빼먹어 조용히 비던 변경 이력을 JPA 엔티티 리스너로 옮겨 원천 차단한 기록입니다. 리스너를 스프링 빈으로 못 쓰는 대가와, 벌크 업데이트엔 리스너가 안 붙는다는 경계도 함께 적었습니다.
서비스마다 자체 UUID로 로그를 묶던 걸 OpenTelemetry trace_id로 바꿔 요청을 서비스 너머로 따라가게 하고, 로그는 OTel로 보내지 않고 공유 traceId로만 트레이스와 이은 기록입니다.
외부 대행사가 넣어주는 입금 데이터를 우리 지갑 모델에 앉혔습니다. 조회 키 둘 중 하나가 비어서 그 자리에 매직 넘버를 넣었고, 그 값을 알아야 하는 코드가 네 곳으로 늘었습니다.