> **상위 Plan**: [WS2 — Engineering](../plans/WS2_Engineering.md) | [WS6 — Logistics](../plans/WS6_Logistics.md) | [Dashboard](../../00_START_HERE.md)

# FLOWS — mydamii 핵심 플로우 다이어그램

> 결제·배송·통관·의사결정 플로우 Mermaid 시각화
> GitHub/Notion/VS Code에서 바로 렌더링 가능

---

## 1. 전체 비즈니스 모델

```mermaid
flowchart LR
    Customer[해외 소비자]
    Site[mydamii.com<br/>한국 사이트]
    Komoju[KOMOJU<br/>일본]
    Stripe[Stripe<br/>미국·영국·기타]
    Warehouse[한국 창고]
    Customs[해외 세관]
    Home[소비자 자택]

    Customer -->|1 주문| Site
    Site -->|2a 일본 결제| Komoju
    Site -->|2b 해외 결제| Stripe
    Komoju -->|3a 결제 완료| Site
    Stripe -->|3b 결제 완료| Site
    Site -->|4 출고 지시| Warehouse
    Warehouse -->|5 EMS 또는 DHL| Customs
    Customs -->|6 통관 - 수입자는 소비자 본인| Home
```

---

## 2. 국가 → PG 라우팅

```mermaid
flowchart TD
    Start[결제 시작] --> Detect{사용자 국가 감지}

    Detect -->|IP 언어 수동| JP{일본?}
    JP -->|Yes| KomojuFlow[KOMOJU 결제 플로우]
    JP -->|No| US{미국?}
    US -->|Yes| StripeUS[Stripe USD]
    US -->|No| UK{영국?}
    UK -->|Yes| StripeUK[Stripe GBP]
    UK -->|No| Other[Stripe USD<br/>카드만 지원]

    KomojuFlow --> Options1{결제 수단 선택}
    Options1 --> Card1[카드 Visa MC JCB]
    Options1 --> Konbini[Konbini<br/>7-Eleven FamilyMart Lawson]
    Options1 --> PayPay[PayPay]
    Options1 --> Bank[은행 송금]

    StripeUS --> Options2{결제 수단 선택}
    Options2 --> Card2[카드]
    Options2 --> ApplePay[Apple Pay]
    Options2 --> Klarna[Klarna]
    Options2 --> Afterpay[Afterpay]
    Options2 --> PayPal[PayPal]
```

---

## 3. 결제 추상화 레이어

```mermaid
flowchart TB
    Frontend[Frontend Next.js]

    subgraph Backend[Backend Spring Boot]
        PaymentService[PaymentService<br/>인터페이스]
        Router[Router<br/>국가 기반 PG 선택]
        KomojuAdapter[KomojuAdapter]
        StripeAdapter[StripeAdapter]
        Future1[2C2PAdapter<br/>future]
        Future2[CheckoutComAdapter<br/>future]
        Webhook[Webhook Handler<br/>통합]
        OrderService[OrderService]
    end

    Frontend -->|POST payments| PaymentService
    PaymentService --> Router
    Router --> KomojuAdapter
    Router --> StripeAdapter
    Router -.-> Future1
    Router -.-> Future2

    KomojuAdapter -->|API| KomojuAPI[(KOMOJU)]
    StripeAdapter -->|API| StripeAPI[(Stripe)]

    KomojuAPI -->|webhook| Webhook
    StripeAPI -->|webhook| Webhook
    Webhook --> OrderService
```

---

## 4. 주문 처리 플로우 (일본 예시)

```mermaid
sequenceDiagram
    participant User as 일본 소비자
    participant Site as mydamii.com
    participant Check as 수량 체크
    participant DDP as EasyShip DDP
    participant Komoju as KOMOJU
    participant Warehouse as 한국 창고
    participant EMS as EMS Korea

    User->>Site: 장바구니에 상품 담기
    Site->>Check: 24개 한도 체크
    Check-->>Site: OK 24개 이하
    Site->>DDP: landed cost 계산
    DDP-->>Site: 관세 소비세 표시
    User->>Site: 결제 진행
    Site->>Komoju: 결제 요청 Konbini 카드 PayPay
    Komoju-->>User: 결제 수단 선택 UI
    User->>Komoju: 결제 완료
    Komoju->>Site: webhook payment succeeded
    Site->>Warehouse: 출고 지시
    Warehouse->>EMS: 픽업 요청
    EMS->>User: 3~5일 후 배송 완료
    Site->>User: 단계별 이메일 알림
```

---

## 5. 통관 모델 결정 (DDP vs DDU)

```mermaid
flowchart TD
    Order[주문 들어옴] --> Country{배송 국가}

    Country -->|일본| JP{주문액 1만엔 초과?}
    JP -->|No| DDU_JP[DDU<br/>면세 적용]
    JP -->|Yes| DDP_JP[DDP<br/>관세 소비세 사전 청구]

    Country -->|미국| DDP_US[DDP<br/>2025년 8월 면세 폐지]

    Country -->|영국| DDP_UK[DDP + IOSS<br/>VAT 20퍼센트 사전 청구]

    Country -->|기타| DDP_Other[DDP 기본]

    DDU_JP --> Ship[출고]
    DDP_JP --> Ship
    DDP_US --> Ship
    DDP_UK --> Ship
    DDP_Other --> Ship
```

---

## 6. 배송 캐리어 라우팅

```mermaid
flowchart TD
    ShipStart[출고 요청] --> Country{배송 국가}

    Country -->|일본| JP_Choice{주문 가치}
    JP_Choice -->|50달러 이하| EMS_JP[EMS Korea Post<br/>3~5일]
    JP_Choice -->|50달러 이상| DHL_JP[DHL Express<br/>1~3일]

    Country -->|미국| US_Choice{재고 위치}
    US_Choice -->|한국| DHL_US[DHL Express<br/>2~5일]
    US_Choice -->|ShipBob 3PL| Domestic[미국 내 1~3일]

    Country -->|영국| DHL_UK[DHL Express<br/>3~5일]

    Country -->|UAE| Aramex[Aramex<br/>4~6일]

    EMS_JP --> Track[추적 번호 발급]
    DHL_JP --> Track
    DHL_US --> Track
    Domestic --> Track
    DHL_UK --> Track
    Aramex --> Track
```

---

## 7. 규제 체크포인트 (일본)

```mermaid
flowchart TD
    Start[제품 런칭 준비] --> Category{카테고리 분류}

    Category -->|일반 화장품| Cosmetic[Cosmetic]
    Category -->|미백 SPF 주름개선| QuasiDrug[Quasi-drug<br/>의약부외품]

    Cosmetic --> PersonalImport[개인수입 가능]
    QuasiDrug --> Warning[통관 리스크<br/>효능 표현 금지]

    PersonalImport --> CopyCheck[마케팅 카피 검수]
    Warning --> CopyCheck

    CopyCheck --> Forbidden{금지 표현?}
    Forbidden -->|있음| Reject[수정 요청]
    Forbidden -->|없음| QtyCheck[1주문 24개 한도 체크]

    QtyCheck --> Label[사이트에 개인수입 고지문]
    Label --> OK[런칭 가능]
```

---

## 8. 아젠다 해결 사이클 (주간 회의)

```mermaid
flowchart LR
    Backlog[AGENDA BACKLOG<br/>미해결 질문]

    Backlog -->|회의 전 P0 선택| Agenda[금주 아젠다]
    Agenda -->|회의| Discussion[논의 결정]
    Discussion -->|회의 후| DecLog[DECISION LOG<br/>결정 기록]
    Discussion -->|영향받는 내용| Overview[PROJECT OVERVIEW<br/>업데이트]
    Discussion -->|새로 나온 질문| Backlog

    DecLog -->|향후 참조| Backlog
```

---

## 9. 개발 단계 로드맵 (간트 차트)

```mermaid
gantt
    title mydamii Phase 1 로드맵 6개월
    dateFormat YYYY-MM-DD
    axisFormat %m-%d

    section 규제
    FDA 시설 등록             :a1, 2026-04-15, 14d
    US Agent 계약             :a2, 2026-04-15, 14d
    일본 약기법 컨설팅        :a3, 2026-04-15, 30d
    마케팅 카피 검수          :a4, after a3, 14d

    section 결제
    KOMOJU 계약               :b1, 2026-04-15, 14d
    Stripe 계약               :b2, 2026-04-15, 14d
    결제 추상화 개발          :b3, 2026-05-01, 30d
    결제 테스트               :b4, after b3, 14d

    section 배송
    EMS DHL 계약              :c1, 2026-04-15, 14d
    Shipandco 연동            :c2, 2026-05-01, 21d
    EasyShip 연동             :c3, 2026-05-01, 21d

    section 개발
    DB 스키마                 :d1, 2026-04-15, 14d
    백엔드 기본 구조          :d2, after d1, 30d
    프론트엔드 기본 구조      :d3, after d1, 30d
    i18n 통합                 :d4, after d3, 14d
    결제 UI                   :d5, after b3, 21d

    section 런칭
    내부 테스트               :e1, 2026-09-01, 14d
    일본 미국 소프트 런칭     :e2, after e1, 14d
    정식 런칭                 :milestone, after e2, 0d
```

---

## 10. 리스크 매트릭스

```mermaid
quadrantChart
    title 리스크 영향도 vs 발생 가능성
    x-axis 낮은 가능성 --> 높은 가능성
    y-axis 낮은 영향 --> 높은 영향
    quadrant-1 즉시 대응
    quadrant-2 모니터링
    quadrant-3 수용
    quadrant-4 예방
    FDA 의약품 표현 거부: [0.8, 0.9]
    일본 24개 한도 초과: [0.3, 0.8]
    PG 수수료 증가: [0.5, 0.4]
    DHL 배송 지연: [0.4, 0.5]
    환율 급변: [0.6, 0.6]
    AWS 비용 초과: [0.5, 0.3]
    러시아 제재 확대: [0.7, 0.2]
    한국 OEM 공장 FDA 등록 거부: [0.6, 0.9]
    일본 약기법 마케팅 위반: [0.5, 0.9]
    Chargeback 급증: [0.3, 0.5]
```

---

## Mermaid 렌더링 가이드

- **VS Code**: Markdown Preview Mermaid Support 확장 설치
- **GitHub**: 저장소에 push하면 자동 렌더링
- **Notion**: `/mermaid` 코드 블록으로 붙여넣기
- **로컬 확인**: https://mermaid.live/ 에 코드 붙여넣기

### Mermaid 작성 시 주의사항
- 노드 레이블에 `()`, `{}`, `[]`, `/`, `$`, `&`, `:` 등 특수문자 사용 지양
- 이모지는 파서에 따라 렌더 실패 가능 → 되도록 텍스트로 표현
- quadrantChart의 x-axis, y-axis, quadrant 레이블에는 따옴표 사용 금지
- gantt task 이름에 `&`, `/` 같은 기호 사용 시 파싱 오류
- flowchart에서 subgraph 자체를 화살표 타겟으로 사용 불가 (내부 노드를 사용)

---

## 추가할 다이어그램 후보

- [ ] 환불 플로우
- [ ] 재고 관리 플로우
- [ ] 장애 대응 플로우 (PG 장애, 배송 지연 등)
- [ ] 사용자 온보딩 플로우
- [ ] 어드민 주문 처리 플로우
