선물 경로 정산 후처리 누락 버그 수정
목차
선물 경로에서 ledger txn_ref_sn 갱신 누락 수정
선물 경로에서 ledger txn_ref_sn 갱신 누락 수정 버그를 수정했음.
원인 분석
새로운 처리 경로를 추가할 때 기존 경로의 공통 처리를 빠뜨렸음.
재현 조건
특정 경로로 처리된 건에서 후처리가 실행되지 않음.
수정 내용
// 수정 전: 분기별 처리, 일부 누락
if (conditionA) {
processA();
doCommon(); // A에만 있음
} else {
processB();
// doCommon() 누락
}
// 수정 후: 공통 처리를 분기 밖으로
if (conditionA) {
processA();
} else {
processB();
}
doCommon(); // 항상 실행
검증
각 분기를 모두 실행해서 공통 처리가 수행되는지 확인했음.
재발 방지
공통 후처리가 필요한 로직은 분기 밖에 두는 패턴을 기본으로 사용하기로 했음.
개발 원칙 적용
이번 작업에서 몇 가지 원칙을 확인했음.
단일 책임 원칙: 각 클래스/함수가 하나의 역할만 담당하도록 구분했음. 역할이 섞이면 수정할 때 예상치 못한 곳에 영향이 가기 쉬움.
방어적 프로그래밍: 외부 입력이나 외부 시스템 응답은 항상 의심하고 검증하는 코드를 넣었음. 특히 null 처리와 상태 검증은 빠뜨리기 쉬운 부분임.
로깅: 주요 처리 지점마다 로그를 남겼음. 운영 중 이슈가 생겼을 때 로그만 봐도 원인을 찾을 수 있어야 함.
log.info("처리 시작: id={}, type={}", id, type);
// ... 처리 ...
log.info("처리 완료: id={}, result={}", id, result);
다음
댓글 0
첫 댓글 달아줘.