문제
- 출장 청소·이사 짐 운반을 이용하려는 고객은 견적을 알아보는 단계부터 불편을 겪는다. 여러 업체에 전화와 메시지로 문의하며 평수, 청소 종류, 짐 양, 층수, 거리 같은 조건을 매번 다시 설명해야 한다.
- 업체마다 견적 기준이 달라 받은 견적을 비교하기 어렵고, 견적을 받기까지 시간이 오래 걸려 원하는 날짜와 시간대를 놓치는 경우가 생긴다.
- 업체를 정한 뒤에도 누가 방문하는지, 어떤 기준으로 작업하는지, 문제가 생기면 어떻게 보상받는지 알기 어려워 불안이 남고, 작업 후 결과를 확인할 방법이 없어 분쟁이 생긴다.
목표
- 조건 입력만으로 청소·이사 견적 범위(최소~최대)를 즉시 확인하고, 원하는 날짜·시간대에 예약금만 선결제로 예약할 수 있게 한다.
- 플랫폼이 기사를 직접 배정하고, 신원 인증·체크리스트·작업 전후 사진·리뷰·평점·보증·환불 정책을 한 흐름으로 묶어 방문 전 불안과 작업 후 분쟁 위험을 낮춘다.
- 성과는 월 예약 건수, 배정 완료율, 작업 완료율, 리뷰·평점 분포, 재예약률로 확인한다. 첫해 목표(사용자 제시)는 한 개 시(예: 성남시)에서 월 200건, 기사 20명이다.
출시 범위
- 포함(1순위): 자동 견적 계산기(청소·이사), 예약(날짜·시간대), 예약금 데모 결제, 관리자의 기사 배정.
- 포함(2순위): 기사용 화면(오늘 작업, 전후 사진 업로드, 체크리스트), 고객 마이페이지(진행 상태·사진 확인·리뷰).
- 포함(3순위): 정산과 리뷰 관리.
- 제외(범위 밖·다음 단계): 정기 청소 구독.
역할과 권한
- 고객: 견적 계산, 예약·예약금 결제, 마이페이지에서 진행 상태·전후 사진 확인, 리뷰 작성.
- 기사(파트너): 배정된 오늘 작업 확인, 작업 전후 사진 업로드, 체크리스트 작성.
- 관리자(운영자): 예약 목록·상세 확인, 기사 배정, 기사 신원 인증 관리, 리뷰 관리, 정산 관리.
- 관리자 화면은 고객·기사 화면의 짝으로 둔다. 예약(고객 입력)에는 예약 관리(목록·상세·배정), 기사(파트너)에는 기사 관리(등록·신원 인증), 리뷰(고객 입력)에는 리뷰 관리, 결제(예약금)에는 결제·정산 관리를 둔다.
사용자 시나리오
- 한지우(1인 가구): 청소 종류·평수·옵션을 입력해 견적 범위를 확인하고, 원하는 날짜·시간대를 골라 예약금을 결제한다. 작업 후 마이페이지에서 전후 사진을 확인하고 리뷰를 남긴다.
- 박서준(이사 예정자): 짐 양·층수·엘리베이터 유무·거리·포장 여부를 입력해 이사 견적 범위를 확인하고 예약한다. 배정된 기사가 작업 전후 사진과 체크리스트를 남긴다.
- 이수민(입주 예정자): 입주 청소 견적을 확인하고 예약한 뒤, 진행 상태를 마이페이지에서 확인한다.
- 관리자: 접수된 예약 목록에서 건별 상세를 열어 기사를 배정하고, 배정·완료 상태를 갱신하며, 리뷰와 정산을 관리한다.
핵심 기능
- 자동 견적 계산기: 청소는 평수 구간(10평 이하~40평 이상)별 기본 단가 × 청소 종류 계수(입주 1.2, 이사 1.0, 거주 0.8) + 화장실·베란다 개수 추가 + 옵션(곰팡이 제거, 새집증후군, 외부 창문). 이사는 짐 양(원룸·투룸·쓰리룸 이상) + 층수·엘리베이터 유무 + 거리(km) + 포장 여부. 주말·공휴일 10% 할증. 결과는 최소~최대 범위로 표시하고 현장 확인 후 확정 안내를 함께 노출한다.
- 예약: 날짜·시간대 선택, 예약금만 선결제(데모 결제), 예약 상태(접수·배정·작업 중·완료) 관리.
- 기사 배정: 관리자가 예약 상세에서 기사를 직접 배정하고 상태를 갱신한다.
- 신뢰 장치: 기사 신원 인증, 작업 체크리스트, 작업 전후 사진 업로드, 리뷰·평점, 보증·환불 정책 안내.
- 정산·리뷰 관리: 결제액의 15% 수수료 기준 정산과 리뷰 관리.
기술 스택과 아키텍처
- PHP 8(프레임워크 없이), MySQL/MariaDB(utf8mb4, mysqli·prepared statement), Apache, 카페24 VPS(또는 카페24 웹호스팅) 배포(플랜디 사이트 시작 소스와 같은 구조).
- 서버 렌더링 기반 화면과 폼 처리, 세션 기반 로그인, 파일 업로드(전후 사진)는 서버 디렉터리에 저장하고 경로를 DB에 기록한다.
- 견적 계산은 서버 측 계산 모듈로 두고, 단가·계수·할증 값은 설정 테이블에서 읽어 관리자가 조정할 수 있게 한다(가정).
전체 IA와 화면 흐름
- 고객 화면: 홈 → 견적 계산기(청소/이사) → 견적 결과(범위) → 예약(날짜·시간대) → 예약금 결제 → 마이페이지(진행 상태·전후 사진·리뷰).
- 기사 화면: 로그인 → 오늘 작업 목록 → 작업 상세(체크리스트·전후 사진 업로드).
- 관리자 화면: 로그인 → 예약 관리(목록·상세·기사 배정) → 기사 관리(등록·신원 인증) → 리뷰 관리 → 결제·정산 관리.
- 흐름 연결: 견적 결과에서 예약으로 이어지고, 예약 접수 후 관리자 배정 → 기사 작업(체크리스트·사진) → 고객 확인·리뷰 → 정산 순으로 상태가 이어진다.
데이터 모델
- 고객(customers): 식별자, 이름, 연락처, 로그인 정보, 생성일.
- 기사(partners): 식별자, 이름, 연락처, 신원 인증 상태, 활동 상태.
- 견적(quotes): 서비스 종류(청소/이사), 입력 조건(평수·청소 종류·옵션 / 짐 양·층수·엘리베이터·거리·포장), 계산된 최소·최대 금액, 할증 적용 여부.
- 예약(reservations): 고객, 견적, 날짜·시간대, 상태(접수·배정·작업 중·완료), 배정 기사, 예약금 결제 정보.
- 작업 기록(work_logs): 예약, 체크리스트 항목, 전후 사진 경로, 작성 시각.
- 리뷰(reviews): 예약, 평점, 내용, 작성 시각.
- 정산(settlements): 예약, 결제액, 수수료(15%), 기사 정산금, 정산 상태.
API와 외부 연동
- 내부 처리: 견적 계산, 예약 생성, 기사 배정, 상태 갱신, 리뷰 등록은 서버 측 폼 처리와 DB 접근으로 구현한다.
- 결제: 예약금 데모 결제로 구현하며, 실제 결제 연동(PG)은 확정 필요.
- 알림: 예약·배정·완료 안내는 서비스 화면 내 상태 표시로 처리하고, 문자·알림톡 등 외부 발송 연동은 확정 필요.
- 외부 연동 규격 관리 화면은 이번 출시 범위에 포함하지 않는다.
UI·UX 요구사항
- 견적 계산기는 조건 입력 단계를 짧게 나누고, 결과 화면에서 최소~최대 범위와 "현장 확인 후 확정" 안내를 함께 보여 준다.
- 예약 화면은 날짜·시간대 선택과 예약금 결제를 한 흐름으로 배치하고, 결제 전 예약금 금액과 환불 정책을 명확히 표시한다.
- 마이페이지는 진행 상태를 단계로 보여 주고, 작업 전후 사진과 리뷰 작성 진입을 같은 화면에서 제공한다.
- 관리자 화면은 예약 목록에서 상태·기사 배정을 바로 처리할 수 있게 하고, 기사·리뷰·정산 관리로 이동 동선을 단순하게 둔다.
보안과 개인정보
- 개인정보(이름·연락처·주소) 수집 시 수집·이용 동의를 받고, 마케팅 수신 동의는 별도로 받으며 수신거부 방법을 안내한다.
- 보관·파기: 수집 목적 달성 후 파기 원칙과 보관 기간을 정하고, 파기 절차를 문서화한다(보관 기간은 확정 필요).
- DB 접근은 mysqli prepared statement로 처리하고, 로그인·세션과 관리자 화면 접근 권한을 분리한다.
- 전후 사진 등 업로드 파일은 접근 권한을 제한하고, 결제 정보는 데모 결제 범위에서 실제 카드 정보를 저장하지 않는다.
비기능 요구사항
- 견적 계산 결과는 입력 완료 후 즉시(체감 지연 없이) 표시되어야 한다.
- 예약·배정·상태 갱신 데이터는 일관되게 저장되어 목록과 상세가 어긋나지 않아야 한다.
- 모바일 화면에서 견적·예약·마이페이지 흐름이 끊기지 않아야 한다.
- 관리자 화면은 예약 목록·상세·배정 처리를 한 화면 동선에서 처리할 수 있어야 한다.
구현 계획
- 1단계: 견적 계산기(청소·이사)와 견적 결과 화면, 설정 테이블(단가·계수·할증).
- 2단계: 예약(날짜·시간대)과 예약금 데모 결제, 예약 상태 관리.
- 3단계: 관리자 예약 관리와 기사 배정, 기사 관리(등록·신원 인증).
- 4단계: 기사용 화면(오늘 작업·체크리스트·전후 사진), 고객 마이페이지(진행 상태·사진·리뷰).
- 5단계: 리뷰 관리와 결제·정산 관리.
수용 기준과 QA
- 견적: 청소·이사 각 조건 입력에 대해 최소~최대 범위가 산정 규칙(계수·추가·할증)대로 계산되고, 주말·공휴일 10% 할증이 반영된다.
- 예약: 날짜·시간대 선택과 예약금 데모 결제가 완료되면 예약이 접수 상태로 저장되고 마이페이지에 표시된다.
- 배정·작업: 관리자가 기사를 배정하면 상태가 갱신되고, 기사가 체크리스트와 전후 사진을 업로드하면 고객 마이페이지에서 확인된다.
- 리뷰·정산: 작업 완료 후 리뷰가 등록되고, 결제액의 15% 수수료 기준 정산 내역이 관리자 화면에 표시된다.
배포와 운영
- 배포: PHP 8·MySQL/MariaDB·Apache 환경의 카페24 VPS(또는 카페24 웹호스팅)에 배포한다.
- 운영: 관리자가 예약 접수·기사 배정·상태 갱신·리뷰·정산을 처리하고, 기사 신원 인증과 보증·환불 정책을 운영한다.
- 지표 운영: 월 예약 건수, 배정 완료율, 작업 완료율, 리뷰·평점 분포, 재예약률을 예약·배정·완료 데이터와 리뷰·재예약 기록으로 집계한다.
- 확정 필요: 출시일, 실제 결제(PG) 연동, 알림 발송 수단, 개인정보 보관 기간, 정산 주기.