[업무일지] 빈 문자열이 통과시킨 계좌 검증
예금주명 비교가 계속 틀려서 파보다가 더 위험한 걸 봤습니다. 접두어를 지운 결과가 빈 문자열이면 contains 가 항상 참이라 검증이 조용히 통과했습니다.
예금주명 비교가 계속 틀려서 파보다가 더 위험한 걸 봤습니다. 접두어를 지운 결과가 빈 문자열이면 contains 가 항상 참이라 검증이 조용히 통과했습니다.
운영 중인 평문 컬럼을 암호화하려고 평문·암호문을 함께 쓰는 이중쓰기로 1단계를 잡은 기록입니다. 정작 발목을 잡은 건 암호화가 아니라 MariaDB DDL 절 순서와 CI 환경의 스키마 설정이었습니다.
호출부마다 빼먹어 조용히 비던 변경 이력을 JPA 엔티티 리스너로 옮겨 원천 차단한 기록입니다. 리스너를 스프링 빈으로 못 쓰는 대가와, 벌크 업데이트엔 리스너가 안 붙는다는 경계도 함께 적었습니다.
외부 대행사가 넣어주는 입금 데이터를 우리 지갑 모델에 앉혔습니다. 조회 키 둘 중 하나가 비어서 그 자리에 매직 넘버를 넣었고, 그 값을 알아야 하는 코드가 네 곳으로 늘었습니다.
유니크 키에 컬럼을 더하는 건 조건을 까다롭게 하는 게 아니라 느슨하게 하는 겁니다. 제약이 지켜주는 범위와 시점을 각각 잘못 읽고 외부 시스템에 중복 등록을 낸 기록입니다.
레거시 배치의 상태체크 항목을 새 배치 서버로 하나씩 옮기다가, 검사 함수에 딸린 조치를 빼먹고 다음 날 되돌린 기록입니다. 이관 단위는 코드 한 줄이 아니었습니다.