대량 복사
Summary
여러 재계약을 하나씩 생성하던 업무를 줄이기 위해, 기존 계약을 불러와 바뀌는 항목만 편집하고 한 번에 생성하는 대량 복사를 기획했습니다. 플랫폼에 엑셀 UI/UX를 처음 차용해 기존 업무 방식을 유지하고, 입력 검증과 수거 작업 및 스케줄 이관을 같은 흐름에 연결했습니다.
- Role
- Product Owner (기획 주도, 정책 정의, 화면과 처리 흐름 설계)
- Outcome
- 계약 대량 생성 도입, 기존 엑셀 업무 방식 유지, 수거 작업과 스케줄 이관 연결
문제 정의
재계약 N건마다 되풀이하던 생성과 후속 이관
단가나 처리장이 바뀌면 기존 정보는 대부분 유지한 채 여러 계약을 다시 맺어야 하는 일이 잦았습니다. CX팀은 재계약 대상을 엑셀에 정리한 뒤 계약을 하나씩 생성하거나, 개발팀에 데이터를 주입해 계약을 만들어 달라고 요청했습니다. 담당자가 직접 처리하면 대상 계약 수만큼 같은 생성 절차를 반복해야 했습니다.
기존 계약 정보는 PO가 메타베이스에서 조회해 전달했고, 담당자는 수거 매뉴얼과 특이사항, 태그를 새 계약에 수기로 옮겼습니다. 올바로 배출처리계획도 함께 복사되지 않아 별도로 챙겨야 했습니다. 등록 과정에서 빠진 정보는 개발팀에 건별로 반영을 요청하고 다시 확인해야 했습니다.
계약을 만든 뒤에도 이관 업무가 남았습니다. 회계팀은 이전 계약의 미청구 수거 작업을, 운영팀은 스케줄을 변경할 작업을 동시에 정리했습니다. 두 팀은 정리한 대상을 하나씩 처리하거나 개발팀에 리스트를 전달해 데이터를 변경한 뒤 사후 검토를 했습니다. 여러 재계약을 만드는 동안 계약 생성뿐 아니라 세 팀의 자료 정리와 전달, 후속 확인도 반복되는 구조였습니다.
기획 판단
기존 엑셀 업무를 유지하며 여러 계약을 한 번에 준비
기존 계약을 대량으로 수정하는 기능보다, 기존 정보를 이어받아 여러 재계약을 만드는 대량 복사가 반복 요청에 먼저 답한다고 판단했습니다.
CX팀이 엑셀에 대상을 정리하고 계약별 변경 정보를 다루는 방식을 먼저 살폈습니다. 익숙한 업무 방식을 완전히 바꾸면 새 기능을 이해하고 업무에 적용하는 부담이 커질 것이라고 판단했습니다. 그래서 플랫폼에서 처음으로 엑셀 UI/UX를 차용해, 기존 업무 방식을 최대한 유지하면서 여러 계약을 함께 다루는 방향으로 기획했습니다.
담당자는 화면에서 기존 계약을 검색하거나 엑셀에 이전 계약 ID를 입력해 복사할 대상을 불러옵니다. 수거 매뉴얼과 특이사항, 태그도 함께 가져오므로 바뀌는 항목만 편집하면 됩니다. 대상은 배출 계약으로 한정하고, 생성된 계약은 각각 이전 계약의 후속 계약으로 연결하도록 했습니다.
디자이너, 개발자와 함께 계약을 행과 열로 비교하고 셀을 복사하거나 붙여 넣는 편집 화면을 구체화했습니다. 재계약 시작일처럼 공통으로 적용할 값은 한 번에 바꾸고, 계약마다 다른 단가는 개별적으로 조정할 수 있게 했습니다. 어느 계약의 어떤 값을 바꾸는지 구분할 수 있어야 했기 때문에, 디자인 QA에서 지적된 선택 셀의 표시 문제도 수정 대상으로 다뤘습니다.
입력 검증
편집 중의 오류를 생성 전에 찾고 수정하도록
엑셀의 자유로운 편집 방식은 유지하되, 잘못된 값이 여러 계약의 생성과 사후 수정으로 이어지지 않도록 입력 단계와 제출 단계의 검증을 나눴습니다.
필수값과 날짜 형식, 시작일과 종료일의 관계를 검사하고 잘못된 셀에 오류를 표시하도록 했습니다. 종료일을 시작일보다 이르게 입력한 경우처럼 수정이 필요한 위치를 편집 중에 찾을 수 있어야, 여러 행을 함께 다루면서도 계약을 만들기 전에 값을 고칠 수 있기 때문입니다.
담당자가 기본정보 탭으로 옮겨도 기간정보에 잘못 입력한 종료일은 그대로 남습니다. 현재 화면에서 보이지 않는 오류를 놓치지 않도록, 생성 버튼을 누를 때 모든 탭을 다시 검사하게 했습니다. 오류가 있으면 서버에 요청을 보내기 전에 생성을 차단하고, 해당 탭과 셀로 돌아가 수정한 뒤 다시 진행할 수 있도록 했습니다.
이관 정책
편집할 수 있는 정보와 자동 이관 조건을 구분
입력값이 유효하더라도 이전 수거 작업과 스케줄을 새 계약으로 옮길 수 있는지는 따로 판단해야 했습니다. 바뀐 계약 정보가 기존 작업의 처리 관계와 이후 수거 및 청구에 영향을 주기 때문입니다.
계약 이름이나 체결일과 달리, 폐기물 종류나 배출 업체 신고 정보가 바뀌면 이전 수거 작업과 올바로 인계정보가 새 계약에도 맞는지 확인해야 합니다. 화면에서 편집할 수 있는 항목이라도 자동 이관은 별도의 조건으로 검사하도록 했습니다. 정산과 계약 운영에 필요한 조건은 회계팀과 CX팀에 확인하며 구체화했습니다.
처리업체를 추가하면 기존 작업에 기록된 처리 경로를 유지할 수 있습니다. 반면 교체하거나 삭제하면 실제 작업을 처리한 곳이 새 계약에서 빠질 수 있어, 기존 업체를 유지한 채 추가하는 경우만 자동 이관 대상으로 정했습니다. 봉투배송과 다른 요금제 사이의 전환도 작업 종류와 청구 기준이 달라져 자동 이관에서 제외했습니다.
| 영역 | 변경 후 자동 이관 허용 | 조건부 허용 | 변경 시 자동 이관 제외 |
|---|---|---|---|
| 기본정보 | 계약 이름, 승인 상태, 성격, 전자계약 ID | 처리업체(추가되는 경우만) | 폐기물 종류, 배출 업체 신고 정보 |
| 기간정보 | 체결일, 기간(시작/종료), 자동갱신 여부 | - | - |
| 요금정보 | 할인, 할증 | 요금제 유형, 요금제 필드 | - |
| 청구와 정산 | 과세, 부가세 포함 여부 | - | - |
계약 전환
이관은 생성할 때 선택하고 실제 전환 시점에 처리
재계약에도 수거 작업 이관이나 스케줄 변경이 필요하지 않은 경우가 있어, 두 항목을 각각 선택하도록 했습니다.
재계약을 미리 생성한 경우에는 이관 여부를 선택해 두고, 실제 재계약 시작일이 도래해 계약이 전환될 때 처리하도록 했습니다. 미청구 작업과 스케줄의 이관에는 앞서 정한 재계약 프로세스 개선의 정책을 적용했습니다. 같은 이전 계약에서 여러 새 계약을 만들더라도 자동 이관을 받을 계약은 한 건으로 제한해, 같은 작업이 여러 계약으로 옮겨져 청구와 수거의 기준이 불명확해지지 않도록 했습니다.
할인과 할증은 새 계약 기간에 유효한 내역을 함께 가져옵니다. 올바로 배출처리계획도 이후 인계서 작성에 필요한 정보이므로 선택 여부와 관계없이 복사를 시도하도록 정했습니다. 이관 선택 항목과 함께 각 복사 항목의 적용 방식을 구분했습니다.
| 옵션 | 적용 방식 | 설명 |
|---|---|---|
| 작업량 이관 | 선택 | 미청구 작업을 새 계약으로 이관 (재계약 이관 로직과 동일) |
| 스케줄 배정 변경 | 선택 | 이전 계약의 코스와 스케줄을 새 계약으로 연결 |
| 할인, 할증 복사 | 켬 | 계약 기간에 유효한 할인, 할증 내역 이전 |
| 올바로 배출처리계획 복사 | 필수 | 새 계약에 함께 복사 (실패해도 계약 생성은 성공) |
비동기 처리와 예외
성공한 계약을 유지하고 실패한 항목만 후속 확인
최대 300건의 대량 복사는 한 건의 오류가 나머지를 막지 않아야 했습니다. 계약 생성과 배출처리계획 복사의 결과를 구분하고, 완료된 작업을 반복하지 않는 기준을 개발팀과 정했습니다.
화면의 입력 검사를 통과해도 서버에서 원본 계약을 찾지 못하거나 생성 조건에 맞지 않으면 실패할 수 있습니다. 비동기 배치에서 계약별로 독립 처리하고 실패 사유를 남겨, 문제가 없는 계약은 계속 생성하도록 했습니다. 계약 생성에 실패한 건은 배출처리계획 복사도 진행하지 않습니다.
계약이 생성된 뒤 배출처리계획 복사만 실패했다면 계약은 유지하도록 했습니다. 배출처리계획의 실패 때문에 이미 생성한 계약까지 취소하면 끝난 작업을 다시 해야 하기 때문입니다. 두 결과를 따로 확인해 복사가 안 된 내역만 후속 처리하고, 이미 생성된 계약을 중복으로 만들지 않도록 했습니다.
실행 중에는 진행 상태를, 완료 후에는 전체 요청 건수와 성공, 실패 건수를 보여주도록 했습니다. 결과 엑셀에는 이전 계약과 새 계약, 실패 사유를 담고 변경된 스케줄과 이관된 작업 내역도 함께 확인할 수 있게 했습니다. 담당자는 실제 생성 결과를 대조하고 필요한 후속 업무를 이어갈 수 있습니다.
자동 이관 조건에 맞지 않아 대상에서 제외된 경우와 실제 이관을 시도하다 오류가 난 경우도 구분했습니다. 두 경우는 다음에 확인할 내용이 다르므로, 결과에 제외 사유와 처리 오류를 각각 남기도록 했습니다.
결과와 배운 점
여러 계약의 생성에서 수거와 청구의 연결까지
엑셀에 정리한 재계약 대상을 하나씩 생성하던 업무는, 기존 계약을 한꺼번에 불러와 바뀌는 항목만 편집하고 여러 재계약을 함께 만드는 흐름으로 바뀌었습니다. 수거 매뉴얼과 특이사항, 태그를 이어받고 잘못된 입력은 생성 전에 고칠 수 있습니다. 익숙한 행과 열 편집 방식은 유지하면서, 계약마다 같은 정보를 옮기고 생성 절차를 반복하던 일을 줄였습니다.
수거 작업과 스케줄 이관은 계약을 만들 때 함께 선택하고 실제 계약 전환에 맞춰 처리하도록 연결했습니다. 세 팀이 나눠 처리하던 생성과 이관을 계약 대량 복사 흐름으로 묶었고, 재계약 프로세스 개선과 대량 복사를 함께 적용한 뒤 수기 지원 요청은 80건에서 27건으로 줄었습니다.
대량 복사 적용 후 진행한 설문에서는 기존에 4~5시간 걸리던 재계약 업무가 2~3시간으로 줄었다는 응답을 받았습니다.
| 확인 지표 | 개선 전 | 개선 후 |
|---|---|---|
| 재계약 생성 후 수기 지원 | 80건 | 27건 |
| 재계약 업무 소요 시간(설문 응답) | 4~5시간 | 2~3시간 |
이 과제에서 중요했던 것은 한 번에 만드는 계약 수뿐 아니라, 익숙한 업무 방식과 계약 전환 뒤의 수거 및 청구를 함께 살피는 일이었습니다. 입력 방식은 유지하되 이관 조건과 실행 시점, 실패 후 확인할 대상을 구분해야 여러 재계약을 하나의 업무 흐름으로 연결할 수 있었습니다.