Skip to content
← 작업으로
Product · PO

임시중단 예약

  • State Transitions
  • Proration Rules

Summary

당일에 계약 상태를 바꿔 처리하던 임시중단을 미리 예약할 수 있도록 기획했습니다. 현재 상태와 미래 중단 일정을 분리하고, 같은 중단 기간이 수거와 청구, 재계약과 갱신에 이어지도록 정책과 처리 흐름을 설계했습니다.

Role
Product Owner (기획 주도, 정책 정의, 화면과 처리 흐름 설계)
Outcome
임시중단 사전 예약 도입, 수거와 청구의 기간 기준 정리, 재계약과 갱신의 중단 설정 유지

문제 정의

중단 날짜를 알아도 당일에 다시 처리해야 했던 업무

임시중단은 계약을 일정 기간 멈췄다가 재개하는 기능입니다. 기존에는 계약 상태를 "임시중단"으로 바꾸면 즉시 중단됐고, 시작일도 당일로만 지정할 수 있었습니다. 중단 날짜를 미리 알아도 담당자가 그날 다시 상태를 바꿔야 했습니다. 주말부터 중단하는 계약이라면 주말에도 직접 처리해야 했습니다.

중단일을 미리 입력하는 것만으로는 이 업무를 예약으로 옮길 수 없었습니다. 계약 상태는 CX팀의 계약 운영뿐 아니라 운영팀의 수거 일정과 회계팀의 청구에도 영향을 줍니다. 예약 전까지 수거를 유지할 기준과 실제 중단 기간을 청구에 반영할 기준을 함께 정해야 했습니다.

이 과제는 제가 직접 기획하고 주도했습니다. 회계팀, CX팀, 운영팀과 필요한 조건을 확인하고, 계약 상태와 청구 금액, 드라이버 앱의 작업 노출, 재계약에 미치는 영향을 정리했습니다. 이를 예약 입력과 상태 전환의 정책으로 구체화하고, 디자이너 및 개발자와 함께 화면과 처리 흐름을 설계했습니다.

설계 방향

미래의 중단을 예약하면서 오늘의 수거는 유지

예약을 위해 먼저 현재 계약 상태와 앞으로 적용할 중단 일정을 분리했습니다. 기존에는 계약 상태를 "임시중단"으로 바꿔야 기간 입력란이 나타났습니다. 이 구조에서 시작일만 미래로 선택하게 하면 다음 주의 중단을 예약하는 순간 당일 수거 작업도 중단되기 때문입니다.

계약 상태는 그대로 두고 별도 설정에서 중단 기간과 미납 여부, 사유를 입력하도록 했습니다. 미래 날짜를 예약하면 그전까지 수거를 계속하고, 예약 시작일에 배치가 계약 상태를 전환합니다. 화면에서도 현재 상태와 예약한 기간을 구분해 보여주도록 했습니다.

개선 전 계약 수정 화면의 메뉴와 현재 위치, 계약 상태와 임시중단 기간, 주변 계약 설정을 함께 보여주는 화면. 시작일은 당일로 고정돼 수정할 수 없고 계정과 중단 사유, 식별 정보는 흐림 처리했습니다.
개선 전: 계약 상태를 바꿔 당일 중단 처리
개선 후 계약 수정 화면의 메뉴와 현재 위치, 활성 상태와 별도로 설정한 임시중단 사용 여부와 미래 기간. 미납 여부와 종료일 미정도 선택할 수 있습니다. 계정과 중단 사유, 식별 정보는 흐림 처리했고 예시 입력은 저장하지 않았습니다.
개선 후: 현재 상태와 별도로 미래 기간 설정

드라이버 앱의 스케줄도 이 기간을 따르도록 정했습니다. 중단 시작 전의 스케줄은 정상적으로 수행하고, 중단 기간에 속한 스케줄은 노출하지 않으며 수행할 수 없도록 했습니다. 예약을 입력한 날과 수거를 멈추는 날을 구분해, 지금 수행해야 할 수거를 유지했습니다.

종료일은 중단에 포함되는 마지막 날짜입니다. 10월 10일까지 중단한다면 그날까지 수거를 멈추고, 다음 날 배치에서 해제해 10월 11일부터 재개합니다. 종료일이 없으면 중단 상태를 유지합니다. 중단과 재개를 반복할 때는 각각의 이력을 남겨 청구에 적용할 실제 중단 기간을 확인할 수 있도록 했습니다.

정책과 예외

예약 이후의 계약 변경과 진행 중인 수거를 반영한 전환 기준

예약할 때의 계약 상태가 중단일까지 유지된다고 볼 수는 없습니다. 날짜가 도래했을 때의 계약 상태와 이미 진행 중인 수거를 함께 확인하도록 전환 조건을 정했습니다.

임시중단 기간 · 사유 · 유형 설정: 현재 상태와 예약 정보를 분리해 저장. 종료 계약은 설정 불가 · 수행 중 스케줄이 있으면 즉시 중단과 해제 제한. 시작일이 오늘 (바로 중단해야 하는 경우) → 즉시 중단 반영, 즉시 전환 제한 조건을 확인한 뒤 적용, 임시중단. 시작일이 미래 (서비스를 유지하다 지정한 날부터 중단할 경우) → 현재 계약 상태 유지, 중단 전 스케줄은 정상 수행, 임시중단 예정 → 예약 시작일 도래, 배치로 중단 반영, 담당자가 당일 다시 처리하지 않아도 상태 전환, 임시중단
활성 계약의 즉시 중단과 미래 예약

일반적인 신규 설정과 시작일 수정은 오늘을 포함한 이후 날짜만 허용했습니다. 다만 가계약은 아직 서비스를 시작하지 않은 계약이므로, 예약 시작일이 와도 가계약 상태를 유지하고 실제 활성 전환 시점에 중단 여부를 판단하도록 했습니다. 이미 종료된 계약은 중단했다 재개할 대상이 아니어서 설정에서 제외했습니다.

수거가 진행 중인 계약은 상태 전환으로 기존 작업이 끊기지 않아야 했습니다. 기획 당시 수행 중인 스케줄이 있으면 즉시 중단하거나 해제할 수 없도록 제한했습니다. 예약 가능 여부와 지금 상태를 바꿀 수 있는 조건을 나눠, 미래 일정을 등록하면서도 진행 중인 작업을 보호하도록 정했습니다.

조건동작
일반적인 신규 설정과 시작일 수정오늘을 포함한 이후 날짜 선택 · 종료일은 시작일 이상 또는 미정
활성 계약의 시작일 도래즉시 임시중단으로 전환
시작일이 미래계약 상태 유지 + "임시중단 예정" 플래그 → 개시일에 자동 전환
가계약의 시작일 도래가계약 상태 유지 · 활성 전환 시 임시중단 여부 판단
종료일 다음 날배치로 임시중단 자동 해제 및 수거 재개
종료일 미지정무기한 중단
수행 중 스케줄이 있는 계약즉시 임시중단과 해제 불가 (진행 중 작업 보호)

청구 기준

실제 중단한 날짜로 계산하고 발행된 청구의 기준은 보호

수거에 적용할 날짜를 정한 뒤에는 같은 기간이 청구에 어떻게 반영돼야 하는지 정리했습니다. 실제 업무에서는 중단 기간을 청구하지 않았지만, 화면에는 "정산 진행" 선택지가 남아 있어 선택에 따라 금액이 달라질 수 있었습니다.

10월 청구서 생성 · 집계 기간 31일: 정책 예시: 중단 기간 10/01–10/10, 10/27–11/10 (종료일 포함), 10/11 수거 재개. 기존 · 정산 진행을 잘못 선택 (실제 운영에 필요하지 않은 선택지가 남아 있던 경우) → 중단 기간까지 청구, 실제 중단한 15일이 차감되지 않는 오청구, 31일 기준 · 오류. 개선 · 미납 / 미납 외 공통 (사유는 구분하되 중단 기간은 모두 청구에서 제외) → 집계 기간과 겹친 15일 제외, 10/01–10/10의 10일 + 10/27–10/31의 5일, 운영일수 16일 / 31일
임시중단 청구 적용 및 일할 계산 적용

회계팀에는 미납으로 인한 중단을 구분해 채권을 관리할 정보가 필요했습니다. 청구 여부를 고르는 선택지는 제거하고 미납 여부를 별도 정보로 남긴 이유입니다. 구독형 요금제처럼 기본 요금이 있는 경우에는 중단 사유와 관계없이 중단 기간을 제외한 운영일수로 기본 요금을 일할 계산하도록 개선했습니다.

이때 제외할 날짜는 각 청구 기간과 겹치는 중단일로 한정했습니다. 두 달에 걸친 중단 기간을 한 청구서에서 전부 차감하면 그 청구 기간 밖의 날짜까지 빠져 과소 청구가 되기 때문입니다. 여러 번 중단하거나 월 경계를 넘더라도 해당 청구 기간 안에서 실제로 중단한 날짜를 기준으로 계산하도록 했습니다.

날짜를 수정할 수 있는 범위도 청구와 맞춰야 했습니다. 청구서 발행 후 중단 날짜가 바뀌면 운영일수는 달라져도 이미 발행된 금액은 그대로 남습니다. 처음에는 이를 막기 위해 청구 집계 기간과 겹치는 중단 이력 전체를 수정하지 못하도록 정했습니다.

그런데 이 제한은 청구에 영향을 주지 않는 미래 일정까지 막았습니다. 12월 청구서가 발행됐고 중단 기간이 12월 15일부터 3월 31일까지라면, 종료일을 1월 19일로 앞당겨도 12월의 중단 날짜는 그대로입니다. 반면 시작일을 12월 20일로 미루면 12월 15일부터 19일까지의 청구 기준이 달라집니다.

이에 따라 이력 전체가 아니라 이미 청구에 반영된 날짜를 보호하도록 정책을 보완했습니다. 수정 전후에 각 청구 기간 안의 중단 날짜가 달라지는지 비교해 발행된 청구에 영향을 주는 변경은 막고, 그 밖의 기간은 조정할 수 있도록 했습니다. 같은 기준을 예약과 수정, 해제에 적용하도록 정리했습니다.

계약 전환

새 계약에서도 중단은 이어가고 과거 이력은 분리

중단 기간은 재계약과 갱신 뒤에도 수거와 청구에 이어져야 했습니다. 새 계약에서 중단 설정이 빠지면 아직 중단 중인데도 수거가 다시 시작될 수 있기 때문입니다.

재계약에서는 이전 계약의 임시중단 설정 값을 복사하고, 중단 이력은 새 계약에서 따로 생성하도록 정했습니다. 과거 이력까지 복사하면 이전 계약의 기간이 새 계약의 정산에 섞입니다. 계속 적용할 설정은 이어받되, 어느 계약에서 발생한 이력인지는 구분하도록 했습니다.

진행 중인 중단을 이어받으면 시작일은 과거일 수 있습니다. 신규 설정에서 과거 날짜를 입력하는 것과 기존 중단을 유지하는 것은 다른 상황이므로, 재계약과 갱신에서는 진행 중인 중단의 기존 시작일을 가져올 수 있도록 예외를 뒀습니다.

갱신계약은 활성으로 전환되는 시점에 중단 여부를 판단하고 새 이력을 생성하도록 했습니다. 재계약이나 갱신계약에 중단 설정이 포함되면 경고 팝업으로 사용자 확인도 받도록 했습니다. 계약이 바뀌는 시점에 담당자가 중단의 지속 여부를 확인할 수 있게 한 것입니다.

결과와 배운 점

당일 상태 변경에서 미리 준비하는 중단 예약으로

중단을 신청하는 날과 실제 중단되는 날을 분리하면서 주말이나 공휴일에 시작할 중단도 평일에 미리 준비할 수 있게 됐습니다. 예약 전까지 수거를 유지하고 중단 기간을 CX팀의 계약 관리, 운영팀의 수거 일정, 회계팀의 청구에 연결했습니다. 재계약과 갱신에서도 이 설정을 이어가도록 했습니다.

주말과 공휴일에 발생한 임시중단 변경은 월간 활성 계약 1,000건당 약 3.09건에서 0.74건으로 76.2% 줄었습니다. 전체 임시중단 변경 이력 중 휴일 변경 비중은 16.00%에서 1.75%로 89.1% 감소했습니다. 계약 규모를 기준으로 한 월간 빈도와 전체 변경에서 차지하는 비중이 함께 낮아졌습니다.

이 과제에서는 같은 중단 기간도 계약 상태와 수거, 청구에서 서로 다른 판단 기준으로 쓰인다는 점을 확인했습니다. 현재 상태와 미래 예약을 나누고, 이미 청구한 날짜와 조정할 수 있는 날짜를 구분하며, 새 계약에 필요한 설정과 이전 이력을 분리했습니다. 각 업무가 같은 날짜를 일관되게 적용하도록 기준을 연결하는 것이 기획의 핵심이었습니다.

지표2025년2026년감소율
휴일 중 임시중단 변경율 (1,000건 당)약 3.09건약 0.74건76.2%
휴일 중 임시중단 변경율 (변경 이력당)16.00%1.75%89.1%