사용자 화면 · 마켓 / 판매등록

판매등록 - 간편 업로드(보증서 업로드)

MKT-004 · 2026. 03. 19

화면 이름 판매등록 - 간편 업로드(보증서 업로드)
화면 위치 마켓 > 판매 등록 > 간편업로드 > 보증서 업로드
화면 ID MKT-004
작성일 2026. 03. 19
MKT-004 MKT-004 MKT-004
Description
0 화면 접근 조건
  • MKT-003(판매등록 – 업로드 방식 선택) 화면에서 [간편 업로드] 버튼 선택 시 진입
  • 로그인 사용자만 접근 가능
  • 비로그인 사용자는 접근 불가
1-1 헤더
  • 구성
    • 좌측: 뒤로가기 버튼
    • 중앙: 화면 타이틀 판매 등록
    • 우측: 취소 텍스트 버튼
    • 뒤로가기 버튼 클릭 시
      • 판매 등록 플로우 내 이전 단계 화면으로 이동
      • 기본적으로 별도의 안내 모달 없이 즉시 이동
      • 단, 업로드 방식 선택 화면(MKT-003)으로 이동하는 경우이며
 보증서 업로드 또는 OCR 처리 등 입력 이력이 존재할 경우
        • 진행 중인 내용 초기화 안내 모달 노출 (MKT-012)
        • 모달 확인 시 이전 단계로 이동, 취소 시 현재 화면 유지
        • 화면 ID 나중에 작성
      • 판매 등록 플로우 중단 확인 모달 노출 (MKT-012)
        • 화면 ID 나중에 작성
      • 취소 시 현재 화면 유지
1-2 보증서 업로드 버튼 및 안내 문구
  • 구성
    • 보증서 업로드 버튼
    • 안내 문구
      • 보증서는 제 3자에게 공개되지 않습니다
      • pdf, jpeg, png, bmp 파일만 업로드 가능합니다
    • 보증서 업로드 버튼 클릭 시
      • 디바이스 파일 선택 UI 호출
      • 파일 1개만 업로드 가능
      • 보증서 파일 정보 확인 영역(2) 상태로 전환 가능
1-3 이전/다음 버튼
  • 구성
    • 좌측 버튼: 이전
    • 우측 버튼: 다음
    • 이전 버튼 클릭 시
 → MKT-003(업로드 방식 선택 화면)으로 이동
    • 다음 버튼
      • 보증서 파일 업로드 전: 비활성화 (비활성화 버튼 반영)
      • 보증서 파일 업로드 후: 활성화
      • 클릭 시 → 보증서 OCR 분석 시작
2 보증서 파일 제목 확인 및 삭제 버튼, 안내문구
  • 구성
    • 업로드된 보증서 파일명 + 파일 확장자 표시
    • 삭제 텍스트 버튼
    • 보증서 안내 문구 동일 유지
    • 삭제 버튼 클릭 시
      • 업로드된 보증서 파일 삭제
      • 화면은 보증서 업로드 전 상태(1-2) 로 전환
      • 다음 버튼 비활성화
3 보증서 읽기 로딩 화면
  • 구성
    • OCR 분석 로딩 아이콘
    • 안내 문구
      • 잠시만 기다려주시겠어요
      • 보증서를 분석해서 입력중이에요
    • OCR 분석 진행 중 사용자 인터랙션 불가
    • 분석 완료 시
      • 다음 화면 ID(보증서 기반 정보 확인/수정 화면)로 자동 이동
      • 토스트 메시지 노출 후 보증서 업로드 완료 상태로 복귀
4 토스트 메시지 정의
  • 지원하지 않는 파일 업로드 시
    • 지원하지 않는 파일 형식입니다
    • 파일 업로드에 실패했어요. 다시 시도해 주세요
  • OCR 분석 실패 시
    • 보증서를 인식하지 못했어요. 다시 업로드해 주세요
5 공통 규칙
  • 본 화면은 간편 업로드 Step 1 (보증서 업로드 단계) 화면
  • 보증서는 내부 검증 및 정보 추출 목적이며 외부에 공개 X
  • OCR 분석 결과는 자동 입력 보조 수단이며, 다음 화면에서 사용자 수정 가능
  • 동일 판매 등록 플로우 내 보증서는 1개만 업로드 가능
  • 화면 이탈(뒤로가기, 취소) 시
    • 업로드된 보증서 파일 및 분석 상태는 초기화됨
    • 헤더 취소 버튼 클릭 시 확인 모달 노출 (MKT-012)
    • 모달 선택 분기
      • 계속 작성하기 선택 시: 모달 닫기
      • 작성 취소 선택 시:
        • 판매 등록 플로우 종료
        • 마켓 메인 화면(MKT-001)으로 이동

Design Output

UI 디자인 산출물

위 스토리보드 기획을 CHAART OS 디자인 토큰으로 변환한 결과물. 실제 구현 시 참조할 최종 디자인.

9:41
마켓 - 판매 등록 취소

보증서

보증서 업로드

보증서는 제 3자에게 공개되지 않습니다

pdf / jpeg / png / bmp 파일만 업로드 가능합니다

이전
다음
9:41
마켓 - 판매 등록 취소

보증서

보증서 파일 제목.pdf
삭제

보증서는 제 3자에게 공개되지 않습니다

pdf / jpeg / png / bmp 파일만 업로드 가능합니다

이전
다음
9:41

잠시만 기다려주세요

보증서를 분석해서 입력중이에요

개발 구현 가이드 — MKT-004 판매등록 간편 업로드(보증서 업로드)

Update History

2026.03.17구현 가이드 ↔ 디자인 산출물 불일치 수정
2026.03.17PM Description 최신 반영 + 구현 가이드 포맷 통일 (뒤로가기 MKT-012 모달 분기, 취소 공통 규칙, 토스트 메시지 원문 교정)
2026.03.16구현 가이드 8섹션 표준 포맷 재작성 (치수·토큰값·모션·여백 보강)
2026.03.11구현 가이드 추가 (7섹션: 화면구조, 레이어구조, 헤더, 업로드영역, 이전다음버튼, OCR로딩화면, 에러처리)
2026.03.04초기 디자인 작성
Implementation Specification

1. 화면 구조 개요

  • 화면 유형: 전체 화면 단계형 플로우 (393 x 852px), 3개 상태 전환
  • 간편 업로드 Step 1 — 보증서 파일 업로드 화면
  • State 1: 업로드 전 (CTA 버튼만 노출)
  • State 2: 업로드 후 (파일명 + 삭제 버튼 표시, "다음" 활성화)
  • State 3: OCR 분석 로딩 (풀스크린 로딩 UI)
  • 진입 경로: MKT-003 간편 업로드 선택 → MKT-004
  • 다음 화면: OCR 분석 완료 시 자동으로 MKT-005 진입
  • 탭바 없음 — 헤더 "취소" 텍스트 버튼으로 등록 취소 (MKT-012 확인 모달)

2. 레이어 구조 + 치수

# 영역 높이 / 위치 세부 스펙
1상태바top:0 / 44pxiOS 시스템 영역
2헤더48px--bg #FAFAF8 bg / chevron 10x18 좌측 / 타이틀 "마켓 - 판매 등록" 중앙 / "취소" 우측
3섹션 라벨 "보증서"padding-top 32px--sans 13px/600, --charcoal #1A1A1A, ls:-0.01em, mb:16px
4보증서 업로드 CTA (State 1)48px--charcoal bg, #fff text, R=0, gap:8px, upload SVG 18px stroke:#fff square/miter
5파일 정보 행 (State 2)48pxbg rgba(26,26,26,0.04), border 1px rgba(26,26,26,0.07), 파일아이콘 16px + 파일명 13px + "삭제" 12px/500
6안내 문구가변 (2줄)--sans 12px, --text-muted #888888, line-height:1.6, ls:-0.005em
7이전/다음 버튼bottom:34px / 50pxflex row, gap:12px, 각 flex:1, R=0, padding:0 24px
8OCR 로딩 (State 3)풀스크린--bg bg, 검색 아이콘 48px --red-brand stroke, 중앙 정렬
9홈 인디케이터bottom:0 / 34pxiOS 기본

3. 핵심 인터랙션

  • 뒤로가기 chevron: 10x18px SVG, stroke --charcoal #1A1A1A, stroke-width:1.5, linecap:square, linejoin:miter → 이전 단계 이동. 단, MKT-003으로 이동 시 보증서 업로드/OCR 입력 이력이 존재하면 초기화 안내 모달(MKT-012) 선행
  • 타이틀: "마켓 - 판매 등록" — --sans Pretendard 17px/700, --charcoal #1A1A1A, ls:-0.02em, 중앙 정렬
  • 취소: --sans 13px/500, --charcoal, ls:-0.01em → MKT-012 확인 모달 노출 (확인 시 MKT-001 이동, 취소 시 현재 유지)
  • 업로드 CTA 클릭: 네이티브 파일 선택 다이얼로그 호출 (pdf/jpeg/png/bmp)
  • 업로드 완료: CTA → 파일 정보 행으로 교체 (파일 아이콘 16px + "보증서 파일 제목.pdf" 13px + "삭제" 12px/500 --text-muted)
  • 파일 삭제: "삭제" 텍스트 클릭 → 업로드 초기화, CTA 버튼 복원, "다음" 비활성화
  • 다음 클릭 (활성 시): OCR 분석 로딩 화면(State 3) 진입 → 완료 시 MKT-005 자동 이동

4. 상태 변화

  • State 1 → State 2 (업로드 전→후):
  • - 업로드 CTA(48px --charcoal bg) → 파일 정보 행(48px, bg rgba(26,26,26,0.04), border 1px rgba(26,26,26,0.07))
  • - "다음" 비활성(bg rgba(26,26,26,0.15), text rgba(26,26,26,0.35)) → 활성(--cta-gradient bg, #fff text)
  • State 2 → State 3 (다음 클릭→OCR 로딩):
  • - 전체 화면이 OCR 로딩 UI로 전환
  • - 검색 아이콘: 48x48px, stroke --red-brand #961E23, stroke-width:1.5, linecap:square, linejoin:miter
  • - 타이틀: "잠시만 기다려주세요" — --sans 16px/700, --charcoal, ls:-0.02em
  • - 서브: "보증서를 분석해서 입력중이에요" — --sans 14px/400, --text-muted #888888, ls:-0.005em
  • State 3 → MKT-005: OCR 분석 완료 시 자동 전환

5. 네비게이션 플로우

  • 진입: MKT-003(업로드 방식 선택) → 간편 업로드 선택 시
  • 뒤로가기(chevron): MKT-003으로 복귀
  • 취소: MKT-012 확인 모달 노출 → 확인 시 등록 취소
  • 이전 버튼: MKT-003으로 이동 (항상 활성)
  • 다음 버튼: 보증서 업로드 완료 시만 활성 → OCR 분석 → MKT-005 자동 이동
  • 접근 제한: 로그인 사용자만 접근 가능 (비로그인 시 LOG-009 모달)

6. 에러/예외 처리

  • 지원 불가 파일 형식: 토스트 "지원하지 않는 파일 형식입니다"
  • 파일 업로드 실패: 토스트 "파일 업로드에 실패했어요. 다시 시도해 주세요"
  • OCR 분석 실패: 토스트 "보증서를 인식하지 못했어요. 다시 업로드해 주세요" → 업로드 완료 상태(State 2)로 복귀
  • 화면 이탈: 뒤로가기/취소 시 업로드된 보증서 파일 및 분석 상태 전부 초기화
  • 취소 공통 규칙: 헤더 취소 → MKT-012 모달 → "계속 작성하기" 시 닫기, "작성 취소" 시 MKT-001 이동

7. 모션 스펙

  • 업로드 CTA → 파일 정보 행 전환: opacity crossfade, duration 200ms, ease-out
  • "다음" 비활성→활성: background-color transition 200ms ease-out
  • State 2 → State 3 (OCR 로딩 진입): opacity 0→1, duration 300ms
  • OCR 아이콘: 검색 아이콘 pulse 또는 rotate 애니메이션 (분석 중 시각 피드백)
  • 토스트: translateY(100%)→0, duration 300ms, ease-out / 2.5초 후 자동 dismiss

8. 여백·간격 요약

  • 좌우 콘텐츠 패딩: 24px
  • 바디 상단 패딩: 32px (헤더 하단에서)
  • "보증서" 라벨 → 업로드 CTA: margin-bottom 16px
  • 업로드 CTA/파일 정보 → 안내 문구: margin-bottom 16px
  • 안내 문구 줄 간격: line-height 1.6, 문구 간 margin-bottom 4px
  • 이전/다음 버튼 gap: 12px
  • 이전/다음 → 홈 인디케이터: bottom 34px
  • 파일 정보 행 내부 패딩: 0 16px, 아이콘-텍스트 gap 8px
  • OCR 로딩 아이콘 → 타이틀: margin-bottom 24px
  • OCR 타이틀 → 서브 문구: margin-bottom 8px

9. 적용 디자인 토큰

  • 요소: 헤더 배경 → Token: --bg → 값: #FAFAF8
  • 요소: 헤더 타이틀 → Token: --sans · 17px · 700 · ls:-0.02em → 값: Pretendard Variable
  • 요소: 취소 버튼 → Token: --sans · 13px · 500 · --charcoal → 값: #1A1A1A
  • 요소: 섹션 라벨 "보증서" → Token: --sans · 13px · 600 · --charcoal → 값: #1A1A1A
  • 요소: 업로드 CTA 배경 → Token: --charcoal → 값: #1A1A1A
  • 요소: 업로드 CTA 텍스트 → Token: --sans · 14px · 600 → 값: #FFFFFF
  • 요소: 안내 문구 → Token: --sans · 12px · --text-muted → 값: #888888, lh:1.6
  • 요소: 파일 정보 행 배경 → 값: rgba(26,26,26,0.04), border 1px rgba(26,26,26,0.07)
  • 요소: 파일명 → Token: --sans · 13px · --charcoal → 값: #1A1A1A
  • 요소: 삭제 텍스트 → Token: --sans · 12px · 500 · --text-muted → 값: #888888
  • 요소: 이전 버튼 → Token: --charcoal · --sans · 14px · 600 → 값: #1A1A1A bg, #FFF text
  • 요소: 다음 버튼(활성) → Token: --cta-gradient · --sans · 14px · 600 → 값: linear-gradient bg, #FFF text
  • 요소: 다음 버튼(비활성) → 값: bg rgba(26,26,26,0.15), text rgba(26,26,26,0.35)
  • 요소: OCR 로딩 아이콘 → Token: --red-brand → 값: #961E23 stroke, 48px
  • 요소: OCR 타이틀 → Token: --sans · 16px · 700 · --charcoal → 값: #1A1A1A
  • 요소: OCR 서브 문구 → Token: --sans · 14px · --text-muted → 값: #888888
← 이전 화면: MKT-003 다음 화면: MKT-006 →