ISSUE 04 · OPERATIONS DESIGN
  Editorial Stay    Cycle · Timeline · Migration
VOL · 2026.05.18

다섯 손,
하나의 흐름.

예약은 결제로, 결제는 청소로, 청소는 검수로 이어집니다. 어떤 흐름도 멈추지 않습니다. 운영 사이클·한 예약의 데이터 흐름·기존 DB의 안전한 이관까지 — 운영 설계 전체를 이 한 챕터에 담았습니다.

01 The Operating Cycle

한 예약의 사이클,
다섯 손이 잇는 한 흐름.

게스트의 첫 클릭이 호스트의 수락으로, 키퍼의 손길이 청소관리자의 검수로, 어드민의 정산이 다시 다음 사이클로 — 다섯 역할이 끊김 없이 맞물립니다.

다음 사이클 · 재예약 예약 발생 → 수락 · 청소 배정 현장 · 사진 보고 검수 · 정산 심사 No. 01 B2C · GUEST 게스트 처음으로 검색 · 예약 · 결제 No. 02 B2B · HOST 호스트 한 손으로 No. 03 B2B · KEEPER 키퍼 빈틈없이 No. 04 SUPERVISOR 청소관리자 한눈에 No. 05 B2B · ADMIN 어드민 하나로 정산 · 권한 · 분석

다섯 카드를 단순히 나열한 그림이 아닙니다. 각 화살표 위의 라벨은 운영 시스템 안에서 발동되는 실제 이벤트이며, 마지막 어드민의 정산이 닫히는 순간 다시 게스트의 다음 예약으로 이어지는 닫힌 사이클을 그립니다.

02 One Booking · Full Timeline

한 예약이 흘러가는 길,
열세 단계의 데이터 결.

게스트의 첫 결제부터 호스트의 최종 정산까지, 한 건의 예약이 시스템 안에서 어떤 프로토콜로 어떤 역할에 닿는지를 단계별로 그렸습니다. 어드민은 모든 단계를 한 화면에서 관제합니다.

PHASE 01 예약 · 결제
01
GUEST · 게스트

예약 생성

앱·웹에서 객실·일정·인원을 선택하고 예약 요청을 전송합니다.

REST POST /v1/reservations
02
SYSTEM · PG 결제

PG 결제 승인

결제 SDK를 통해 카드·간편결제 승인을 받고, 예약 상태가 PENDING → CONFIRMED로 전환됩니다.

PG SDK Webhook · payment.approved
03
HOST · 호스트

호스트 알림 수신

결제 확정과 동시에 호스트 모바일·콘솔로 푸시 알림이 발송됩니다.

FCM notification/reservation.new
04
HOST · 호스트

예약 수락

호스트가 콘솔에서 수락 처리. 이 순간 청소 작업 큐에 자동으로 항목이 등록됩니다.

REST PATCH /v1/reservations/:id
PHASE 02 청소 · 검수
05
SUPERVISOR · 청소관리자

청소관리자 알림

신규 작업이 운영 보드에 실시간으로 표시됩니다.

WebSocket ws/board/cleanings
06
SUPERVISOR · 청소관리자

키퍼 배정

가용 키퍼 중 거리·일정·평점을 종합해 배정. 키퍼에게 푸시가 발송됩니다.

REST + FCM assignment/created
07
KEEPER · 키퍼

현장 도착 · QR 체크인

객실 입구 QR을 스캔. 위치·시각이 함께 기록되어 도착이 검증됩니다.

QR + GPS checkin.location.verified
08
KEEPER · 키퍼

7단계 체크리스트

정해진 순서대로 침구·욕실·주방·소모품 등을 점검·정돈합니다.

REST PATCH /v1/cleanings/:id/steps
09
KEEPER · 키퍼

완료 사진 업로드

완료 사진이 S3로 업로드. 청소관리자 보드에 즉시 노출됩니다.

S3 · Presigned photo.uploaded
10
SUPERVISOR · 청소관리자

검수 · 통과 또는 재작업

사진과 체크리스트를 대조해 검수. 통과 시 객실이 PUBLISHED로 전환됩니다.

REST POST /v1/inspections
PHASE 03 체크인 · 리뷰 · 정산
11
GUEST · 게스트

게스트 체크인

예약 시각이 가까워지면 도어락 코드가 SMS로 발송됩니다.

SMS checkin.code.sent
12
GUEST · 게스트

체크아웃 후 리뷰

체크아웃 다음 날 리뷰 작성 메일이 발송됩니다.

Email review.request
13
SYSTEM · 정산 배치

호스트 정산

월 단위 배치로 수수료·청소비를 차감한 정산금이 호스트 계좌에 입금됩니다.

Batch settlement.completed
03 Data Migration · Zero Loss

어떤 데이터도
사라지지 않습니다.

기존 DB의 회원·예약·결제·리뷰 네 도메인을 신규 스키마로 안전하게 옮깁니다. 매핑 → ETL 4단계 → 정합성 검증 → 모의 이관 → 본 이관 순서로, 각 단계마다 데이터 유실 0건을 보장합니다.

A

테이블 매핑 · 기존 → 신규

기존 DB 변환 규칙 신규 DB users 12,480 row PK · UUID 변환 권한 분리 → accounts + profiles accounts profiles bookings 38,902 row 1 : 1 매핑 날짜·상태 enum 정규화 reservations payments 38,902 row 결제 · 정산 분리 이중기입(Double-entry) 도입 transactions ledger_entries reviews 21,154 row 미디어 분리 텍스트 · 이미지 자산 분리 저장 reviews review_assets
B

ETL · 네 단계

  1. 01
    Extract
    추출

    기존 DB 스냅샷 + 변경 분기록(CDC) 동시 채취. 운영 중단 없음.

  2. 02
    Transform
    변환

    정규화 · UUID 변환 · 권한 분리 · 이중기입 적용.

  3. 03
    Load
    적재

    신규 DB로 트랜잭션 단위 적재. 실패 시 자동 롤백.

  4. 04
    Validate
    검증

    건수 · 키 · 외래키 · 샘플 진본 비교까지 자동 점검.

C

정합성 검증 · 체크리스트

  • 데이터 건수 일치

    구·신 DB 각 테이블의 row count 자동 비교. 차이 0 보장.

  • 키 무결성

    Primary Key UUID 변환의 유일성 · 중복 0 검증.

  • 외래키 매핑

    예약 ↔ 회원, 결제 ↔ 예약 등 모든 FK 관계 보존 확인.

  • 모의 이관 테스트

    스테이징 환경에서 3회 사전 리허설. 본 이관 전 차이 0 확인.

  • 롤백 시나리오

    본 이관 중 실패 시 4단계 롤백 절차 자동 발동. RTO 30분 이내.

모의 이관은 본 이관 이전에 세 차례 반복합니다. 매 회차마다 데이터 건수·키 무결성·외래키 매핑이 자동 비교되며, 단 한 건의 불일치라도 발견되면 본 이관은 시작되지 않습니다. 그 사이 운영 중단은 0분입니다.

한 사람도 멈추지 않고,
어떤 데이터도 사라지지 않습니다.

이 모든 흐름은 한 화면에서 관제됩니다 어드민 콘솔