유지상

신규 금융 전송의 상태 경계

신규 대량 금융 전송에서 상태 선점·중복 이력·불확실 응답 처리 규칙을 팀에서 합의하고, 코드와 회귀 테스트를 구현·검토해 운영 환경에 배포했습니다.

Java, Spring Transaction, MyBatis, JUnit, Mockito

외부 전송 전에 처리 주체부터 정했습니다

신규 대량 금융 전송 기능에서는 조회와 외부 전송 사이에 다른 실행이 끼어들 수 있었습니다. 이미 전송한 이력이 있는 데이터를 다시 보내거나, 성공 여부가 불확실한 응답을 실패로 단정하면 중복 전송과 결과 유실로 이어질 수 있었습니다.

실패 조건을 상태 경계로 바꾸기

위험구현한 경계
두 실행이 같은 데이터를 조회한 뒤 모두 전송외부 호출 전에 조건부로 상태를 선점하고, 다른 실행이 먼저 선점하면 전송 중단
기존 전송 이력이 있는 데이터의 재실행전송 이력을 확인해 재전송 차단
외부 응답의 성공 여부가 불확실성공·불확실·미전송 응답을 나눠 후속 처리

이 요구사항은 팀 회의에서 합의했습니다. 프로덕션 코드와 회귀 테스트를 구현하고 운영 배포 전에 직접 검토했습니다.

외부 의존성 없이 실패 경로 검증

실제 금융정보를 사용하지 않고 mock과 합성 응답으로 호출 순서, 경쟁 시 전송 차단, 중복 이력, 성공·불확실·미전송 응답을 반복 검증했습니다. 검증 범위와 경계 조건은 테스트 커버리지 기준과 고위험 기능 테스트 시나리오에 함께 기록했습니다.

운영 환경에 배포

사고가 난 뒤 보완한 기능이 아니라, 기능을 처음 만들 때 경쟁·중복 이력·응답 불확실성을 상태 경계로 정했습니다. 구현 코드와 회귀 테스트는 해당 기능을 사용하는 운영 환경에 배포했습니다.

소속 경력