인증·결제·약관·해지 단계 명확화 + 상태 정합성 설계 경험으로 설명
수업 프로젝트에서 구독형 멤버십 서비스의 가입 플로를 처음 설계했습니다. 처음에는 회원가입처럼 단순하게 만들었는데, 결제 실패 시 구독 상태가 어떻게 되는지 정의하지 않아서 미결제 활성 구독이 생기는 문제가 발생했습니다. 이후 인증→결제→약관동의→활성화 순서로 단계를 명확히 정의하고 결제가 실패하면 구독이 활성화되지 않도록 트랜잭션으로 묶었습니다. 약관 동의는 버전 정보를 함께 저장해서 약관이 바뀌었을 때 재동의 대상을 파악할 수 있게 했습니다. 해지 플로에서는 즉시 해지와 기간 만료 후 해지를 분리해서 사용자가 남은 혜택을 잃는 케이스를 명확히 안내하는 방식을 설계했습니다. 재시도 결제 로직에서는 중복 청구가 생기지 않도록 멱등성 처리도 함께 설계했습니다.
멤버십 가입 플로는 결제·계약·상태 관리가 동시에 맞물리는 자리라는 걸 그때 배웠습니다.