개발 slecs

선물 경로 정산 후처리 누락 버그 수정

목차

선물 경로에서 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

첫 댓글 달아줘.