개발 slecs

플랫폼 정산 수익을 잔여 차감 방식으로 단순화

목차

플랫폼 수익 계산을 잔여 방식(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

첫 댓글 달아줘.