플랫폼 정산 수익을 잔여 차감 방식으로 단순화
목차
플랫폼 수익 계산을 잔여 방식(validation-only)으로 전환
리팩토링 작업을 완료했음.
리팩토링 이유
기존 방식은 복잡도가 높아서 코드를 이해하기 어려웠음. 단계를 명확히 분리하는 방식으로 전환했음.
변경 전/후
// 수정 전: 직접 계산 (각 계층 독립 계산)
long platformRevenue = calcPlatformRevenue(data);
// 수정 후: 잔여 방식 (전체에서 나머지를 차감)
long totalRevenue = data.getTotalAmount();
long partnerShare = calcPartnerShare(data); // 각 파트너 몫
long platformRevenue = totalRevenue - partnerShare; // 나머지가 플랫폼 몫
// validateConsistency(platformRevenue); // 검증
변경 범위
내부 클래스 1개
기대 효과
계산 로직이 단순해지고 검증 단계가 명확히 분리됐음. 오류 발생 시 원인을 찾기 쉬워짐.
회귀 검증
리팩토링은 외부 동작을 바꾸지 않아야 함. 입력/출력이 동일한지 주요 케이스를 기준으로 확인했음. 내부 구조만 변경했고, 배포 후 이상 없이 동작했음.
개발 원칙 적용
이번 작업에서 몇 가지 원칙을 확인했음.
단일 책임 원칙: 각 클래스/함수가 하나의 역할만 담당하도록 구분했음. 역할이 섞이면 수정할 때 예상치 못한 곳에 영향이 가기 쉬움.
방어적 프로그래밍: 외부 입력이나 외부 시스템 응답은 항상 의심하고 검증하는 코드를 넣었음. 특히 null 처리와 상태 검증은 빠뜨리기 쉬운 부분임.
로깅: 주요 처리 지점마다 로그를 남겼음. 운영 중 이슈가 생겼을 때 로그만 봐도 원인을 찾을 수 있어야 함.
log.info("처리 시작: id={}, type={}", id, type);
// ... 처리 ...
log.info("처리 완료: id={}, result={}", id, result);
다음
댓글 0
첫 댓글 달아줘.