[업무일지] JPA 엔티티 리스너를 활용한 히스토리 누락 최소화
호출부마다 빼먹어 조용히 비던 변경 이력을 JPA 엔티티 리스너로 옮겨 원천 차단한 기록입니다. 리스너를 스프링 빈으로 못 쓰는 대가와, 벌크 업데이트엔 리스너가 안 붙는다는 경계도 함께 적었습니다.
호출부마다 빼먹어 조용히 비던 변경 이력을 JPA 엔티티 리스너로 옮겨 원천 차단한 기록입니다. 리스너를 스프링 빈으로 못 쓰는 대가와, 벌크 업데이트엔 리스너가 안 붙는다는 경계도 함께 적었습니다.
서비스마다 자체 UUID로 로그를 묶던 걸 OpenTelemetry trace_id로 바꿔 요청을 서비스 너머로 따라가게 하고, 로그는 OTel로 보내지 않고 공유 traceId로만 트레이스와 이은 기록입니다.
외부 대행사가 넣어주는 입금 데이터를 우리 지갑 모델에 앉혔습니다. 조회 키 둘 중 하나가 비어서 그 자리에 매직 넘버를 넣었고, 그 값을 알아야 하는 코드가 네 곳으로 늘었습니다.
유니크 키에 컬럼을 더하는 건 조건을 까다롭게 하는 게 아니라 느슨하게 하는 겁니다. 제약이 지켜주는 범위와 시점을 각각 잘못 읽고 외부 시스템에 중복 등록을 낸 기록입니다.
레거시 배치의 상태체크 항목을 새 배치 서버로 하나씩 옮기다가, 검사 함수에 딸린 조치를 빼먹고 다음 날 되돌린 기록입니다. 이관 단위는 코드 한 줄이 아니었습니다.
캐시를 붙이려고 응답 DTO 에 Serializable 을 달았습니다. 그게 이상해서 파보니 기본 캐시 설정이 JDK 직렬화였고, TTL 도 없었습니다.