Vidding PRD
1. 프로젝트 배경
1.1 서비스 개요
Vidding은 돈이 아니라 사연으로 입찰하는 경매 플랫폼이다.
가장 높은 금액을 부른 사람이 아니라, 가장 공감받은 이야기를 쓴 사람이 낙찰받는다.
| 구분 | 일반 경매 | Vidding |
|---|---|---|
| 입찰 수단 | 금액 | 사연(스토리) |
| 낙찰 기준 | 최고가 | 사연이 받은 공감(좋아요) |
| 참여 경험 | 가격 경쟁 | 이야기 공유·공감 |
1.2 기존 서비스 현황
기존 서비스는 MVP 개발을 마치고 배포까지 완료된 상태다.
- 핵심 플로우 동작 확인 — 경매 등록 → 사연 작성(입찰) → 좋아요를 통한 가치 부여 → 낙찰
- 기술 구성 — Next.js, Supabase(DB·인증)
- 부가 기능 — 1:1 채팅, 포인트 내역, 찜하기, 알림
즉 이번 프로젝트는 0에서 시작하는 신규 서비스가 아니라, 동작하는 서비스를 개선하는 프로젝트다.
1.3 고도화 배경
기존 서비스는 사용자를 경매진행자와 입찰참여자 두 유형으로 나누고, 헤더의 토글 스위치로 전환하는 구조였다.
두 유형은 기능뿐 아니라 화면 색상까지 완전히 달랐다.
| 사용자 유형 | 테마 | 강조 색상 |
|---|---|---|
| 입찰참여자 | 라이트 모드 | 블루 |
| 경매진행자 | 다크 모드 | 레드 |
이 구조를 점검하는 과정에서, 서비스 내부에 남아 있는 안내 문구가 문제를 그대로 드러냈다.
"입찰 참여자로 변경해주세요." "경매 판매자로 변경해주세요."
같은 사용자인데도 토글을 먼저 바꿔야 버튼이 눌리는 상태였다. 자기가 등록한 경매인데도 모드가 입찰참여자면 수정조차 할 수 없었다.
1.4 프로젝트 성격
따라서 이번 프로젝트는 기능 추가가 아니라 구조 정리에 가깝다.
| 계승 | 변경 |
|---|---|
| 서비스 정체성과 기능 범위 | 사용자 유형 구분 → 단일 사용자 모델 |
| 화면 구성과 핵심 플로우 | 역할별 2벌 테마 → 블루 단일 테마 |
구현은 새로 시작한다. 기존 서비스의 기획과 디자인을 참고 자료로 삼되, 레포지토리·데이터베이스·인증 설정을 모두 새로 구축한다. 기존 서비스는 그대로 둔다.
디자인은 기본 골격을 계승하되, 이번 기획 변경에 맞춰 필요한 화면은 수정한다.
2. 문제 정의
기존 서비스의 문제는 개별 기능의 결함이 아니라, 사용자를 두 유형으로 나눈 구조 자체에서 나온다.
2.1 문제 1 — 한 사람이 두 신분으로 쪼개져 있다
Vidding은 누구나 경매를 열고, 누구나 사연을 쓰는 서비스다. 그런데 구조는 사용자를 '경매진행자'와 '입찰참여자'로 갈라놓고, 한 번에 하나만 될 수 있게 했다.
실제로 막히는 상황
| 사용자가 하려는 일 | 결과 |
|---|---|
| 경매를 등록한 뒤, 다른 사람 경매에 사연 쓰기 | 사연 작성 버튼이 보이지 않음 |
| 사연을 쓰던 중 내 경매를 수정하기 | 수정 버튼이 보이지 않음 |
| 경매진행자 상태에서 마음에 드는 경매 찜하기 | 찜하기가 동작하지 않음 |
| 주소창으로 경매 등록 페이지 직접 진입 | 마이페이지로 튕겨남 |
모두 헤더 토글을 먼저 바꿔야 해결된다. 서비스가 사용자에게 "지금 당신이 누구인지 먼저 선언하라"고 요구하고 있는 것이다.
이 마찰은 서비스 내부 안내 문구에 그대로 드러나 있다.
"입찰 참여자로 변경해주세요." "경매 판매자로 변경해주세요."
기능을 막는 안내가 아니라, 구조의 한계를 사용자에게 떠넘기는 안내다.
2.2 문제 2 — 역할이 소유권을 대신하고 있다
"이 경매를 수정할 수 있는가"에 필요한 판단은 하나뿐이다.
이 경매를 내가 등록했는가?
그런데 기존 구조는 여기에 조건을 하나 더 얹었다.
이 경매를 내가 등록했는가? 그리고 지금 경매진행자 모드인가?
두 번째 조건은 아무것도 지켜주지 않는다. 남의 경매를 수정하는 걸 막는 건 첫 번째 조건이다. 두 번째 조건이 막는 건 자기 경매를 수정하려는 정당한 소유자뿐이다.
같은 오용이 서비스 전반에 반복된다. 점검 결과 역할에 따라 화면이나 기능이 갈리는 지점은 11곳이며, 그중 대부분은 역할이 아니라 소유 관계만으로 판단할 수 있다.
2.3 문제 3 — 색이 신분을 표시하는 데 쓰이고 있다
기존 서비스에서 색은 사용자가 어떤 모드인지를 알리는 용도로 쓰였다.
| 사용자 유형 | 테마 | 강조 색상 |
|---|---|---|
| 입찰참여자 | 라이트 | 블루 |
| 경매진행자 | 다크 | 레드 |
이 선택이 두 가지 부작용을 낳는다.
① 같은 서비스가 두 서비스처럼 보인다 토글 하나로 화면 전체가 라이트↔다크로 뒤집힌다. 사용자 입장에서는 다른 앱으로 이동한 듯한 이질감이 생기고, 서비스 정체성이 흐려진다.
② 레드가 두 가지 의미를 동시에 진다 레드는 이미 마감 임박, 오류, 필수 입력 표시에 쓰이고 있다. 여기에 '경매진행자'라는 신분 의미까지 겹치면서, 경고 색이 경고로 읽히지 않는다.
여기에 라이트/다크 두 벌을 계속 맞춰야 하는 유지 비용이 더해진다. 역할 구분 하나를 위해 디자인 시스템 전체를 이중으로 관리하는 셈이다.
2.4 근본 원인
세 문제는 하나의 원인에서 갈라져 나온다.
서비스가 "이 사람은 누구인가"(신분) 를 먼저 정하고, 그 답으로 모든 화면과 기능을 결정하고 있다.
하지만 실제로 필요한 판단은 신분이 아니다.
"이 사람과 지금 보고 있는 이 경매는 어떤 관계인가"
내가 연 경매인지, 내가 사연을 쓴 경매인지, 아직 참여하지 않은 경매인지. 이 관계는 화면에 들어서는 순간 데이터로 이미 정해져 있다. 사용자가 미리 선언할 이유가 없다.
3. 서비스 목표
3.1 핵심 목표
신분이 아니라 관계로 동작하는 서비스로 재구성한다.
사용자가 자신이 누구인지 미리 선언하지 않아도, 지금 보고 있는 경매와의 관계에 따라 필요한 기능이 자연스럽게 나타나는 서비스를 만든다.
3.2 세부 목표
| # | 목표 | 대응 문제 |
|---|---|---|
| G1 | 모드 전환 없이 모든 기능에 도달한다 | 2.1 |
| G2 | 권한은 소유 관계만으로 판단한다 | 2.2 |
| G3 | 하나의 시각 언어로 통일한다 | 2.3 |
G1 — 모드 전환 없이 모든 기능에 도달한다 헤더 토글을 없앤다. 한 계정으로 경매 등록과 사연 작성을 오가는 데 어떤 사전 설정도 필요하지 않게 한다. 사용자에게 상태 변경을 요구하는 안내 문구를 서비스에서 없앤다.
G2 — 권한은 소유 관계만으로 판단한다 "내가 등록한 경매인가", "내가 사연을 쓴 경매인가"만으로 화면과 기능을 결정한다. 사용자 유형(role) 개념을 데이터 모델에서 제거한다.
G3 — 하나의 시각 언어로 통일한다 라이트/다크 2벌 테마를 블루 단일 테마로 통합한다. 레드는 신분 표시에서 회수해 마감 임박·오류·필수 입력 등 경고 의미로만 사용한다.
여기에 포인트 차감 하나를 더 허용한다. 원장에서 금액이 오간 방향을 숫자를 읽기 전에 알아채게 하는 자리다. B3 가 막으려는 것은 레드가 신분을 뜻하는 것이지 금액 방향이 아니다. 이 넷 밖으로는 쓰지 않는다.
3.3 성공 기준
목표 달성 여부를 다음 기준으로 판단한다.
| 항목 | 현재 | 목표 |
|---|---|---|
| 사용자 유형 구분 | 2종 (경매진행자/입찰참여자) | 1종 (통합) |
users.role 컬럼 | 존재 (NOT NULL) | 스키마에 없음 |
| 모드 전환 UI | 헤더 토글 1개 | 0개 |
| 상태 변경 요구 안내 문구 | 존재 | 0건 |
| 역할에 따라 갈리는 기능 지점 | 11곳 | 0곳 |
| 테마 | 2벌 (라이트/다크) | 1벌 (블루) |
| 레드 색상의 의미 | 신분 + 경고 (2중) | 경고 전용 (1중) |
사용자 관점 검증
한 계정으로 경매를 등록한 직후, 다른 사람의 경매에 사연을 작성하는 흐름이 어떤 설정 변경도 없이 끊김 없이 이어지는가?
현재는 헤더 토글 조작 없이는 불가능하다. 이 흐름이 그대로 동작하면 목표가 달성된 것으로 본다.
3.4 유지해야 할 것
이번 프로젝트는 구조 정리이며, 서비스의 정체성과 기존 사용 경험은 그대로 계승한다.
- 사연으로 입찰하고 공감으로 낙찰되는 핵심 가치
- 기존 화면 구성과 기능 범위 (기획 변경이 요구하는 부분만 수정)
- 경매 등록 → 사연 작성 → 좋아요 → 낙찰의 핵심 플로우
4. 대상 사용자
4.1 사용자 정의
Vidding의 사용자는 한 종류다.
이야기로 참여하는 사람 물건의 값보다 그 물건이 누구에게 가는지를 더 중요하게 여기는 사람
기존 구조가 나눴던 '경매진행자'와 '입찰참여자'는 서로 다른 사람이 아니었다. 같은 사람이 처한 서로 다른 상황이었을 뿐이다.
4.2 신분이 아니라 상황
한 사용자는 상황에 따라 다르게 행동한다. 이 상황들은 배타적이지 않으며, 한 사람이 같은 날 모두 겪을 수 있다.
| 상황 | 사용자의 마음 | 하는 일 |
|---|---|---|
| 주최 | "이걸 정말 필요한 사람에게 주고 싶다" | 경매를 연다 |
| 참여 | "이건 나에게 이런 의미가 있다" | 사연을 써서 입찰한다 |
| 관람 | "다른 사람들은 어떤 이야기를 썼을까" | 읽고 공감(좋아요)한다 |
서비스는 사용자에게 어떤 상황인지 묻지 않는다. 사용자가 어떤 화면에 들어섰는지를 보고, 그 상황에 필요한 것을 내어놓는다.
4.3 페르소나
이서연 · 27세 · 직장인 · 서울
성향
- 중고거래 경험은 있지만, "얼마에 팔지" 정하는 과정이 늘 부담스럽다
- 안 쓰는 물건을 버리기는 아깝고, 필요한 사람에게 갔으면 한다
- SNS 사연 이벤트에 종종 참여한다. 당첨 여부보다 남의 사연을 읽는 재미로 본다
한 문장
"가격을 흥정하는 것보다, 이 물건이 왜 필요한지 듣는 게 더 재밌어요."
이번 주 이서연의 행동
- 안 쓰는 캠핑 의자를 경매로 올렸다 → 주최
- 올라온 사연들을 읽으며 마음에 드는 글에 좋아요를 눌렀다 → 관람
- 다른 사람이 올린 필름 카메라를 발견하고, 왜 갖고 싶은지 사연을 썼다 → 참여
세 가지 모두 같은 주에, 같은 계정으로 일어난다. 기존 구조에서는 이 흐름 중간에 최소 두 번 모드를 바꿔야 했다.
4.4 사용자 니즈와 기존 구조의 충돌
| 사용자 니즈 | 기존 구조에서 겪은 문제 |
|---|---|
| 물건을 내놓는 것과 참여하는 것을 자유롭게 오가고 싶다 | 오갈 때마다 헤더 토글을 바꿔야 했다 |
| 내가 올린 경매를 언제든 확인·수정하고 싶다 | 모드가 맞지 않으면 수정 버튼이 사라졌다 |
| 마음에 드는 경매를 저장해두고 싶다 | 특정 모드에서만 찜이 가능했다 |
| 내 활동을 한곳에서 보고 싶다 | 모드에 따라 마이페이지 메뉴가 나타났다 사라졌다 했다 |
4.5 비대상 사용자
다음 목적을 가진 사용자는 이 서비스의 대상이 아니다. 가격 경쟁을 전제하지 않기 때문이다.
- 물건을 빠르게 현금화하려는 사용자
- 최저가 구매가 목적인 사용자
- 즉시 거래·정산 속도가 중요한 사용자
5. 핵심 기능
5.1 기능 설계 원칙 — 관계
모든 기능은 사용자와 경매 1건 사이의 관계로 결정된다.
| 관계 | 조건 | 설명 |
|---|---|---|
| 주최자 | 내가 등록한 경매 | 이 경매를 연 사람 |
| 참여자 | 내가 사연을 쓴 경매 | 사연으로 입찰 중인 사람 |
| 방문자 | 로그인했지만 위 둘 다 아님 | 아직 참여하지 않은 사람 |
| 비회원 | 미로그인 | 열람만 가능 |
중요 — 이것은 계정의 속성이 아니다. 관계는 경매마다 따로 정해진다. 같은 사용자가 경매 A에서는 주최자, 경매 B에서는 참여자, 경매 C에서는 방문자일 수 있다. 사용자는 이 관계를 선택하지 않는다. 화면에 들어서는 순간 이미 정해져 있다.
5.2 핵심 기능 목록
| # | 기능 | 설명 |
|---|---|---|
| F1 | 경매 등록 | 나눌 물건과 마감 시점을 정해 경매를 연다 |
| F2 | 경매 탐색 | 마감 임박·인기·최신순으로 경매를 찾는다 |
| F3 | 사연 입찰 | 왜 이 물건이 필요한지 이야기를 써서 입찰한다 |
| F4 | 공감(좋아요) | 마음에 드는 사연에 공감해 그 사연의 가치를 올린다 |
| F5 | 낙찰 | 마감 시점에 가장 많은 공감을 모은 사연이 낙찰된다 |
| F6 | 1:1 채팅 | 낙찰 이후 주최자와 낙찰자가 전달 방법을 논의한다 |
| F7 | 찜하기 | 관심 있는 경매를 저장한다 |
| F8 | 마이페이지 | 내 경매·내 사연·찜을 탭으로 오간다 |
| F9 | 알림 | 마감 임박, 낙찰 결과 등을 서비스 안에서 확인한다 |
F3·F4가 이 서비스를 다른 경매와 구분 짓는 핵심 기능이다.
기반 기능
핵심 기능을 뒷받침하는 기능이다.
| # | 기능 | 설명 |
|---|---|---|
| F10 | 인증 | 소셜 로그인으로 시작한다. 가입 시 사용자 유형을 묻지 않는다 |
| F11 | 온보딩 | 사연으로 입찰하는 방식과 낙찰 규칙을 안내한다 |
| F12 | 배송지 관리 | 낙찰된 물건을 전달하기 위한 배송지를 등록한다 |
F10이 이번 프로젝트의 핵심 변경이 착지하는 지점이다. 기존에는 가입 시 모든 계정에 '입찰참여자' 기본값이 부여됐다. 이 처리를 제거한다.
범위 밖 — 1:1 문의는 기존 서비스에서 메뉴가 비활성 상태이며, 현재 외부 폼으로 대체되어 있다. 비활성 기능을 되살리지 않는다.
5.3 기능 상세
F1. 경매 등록
| 항목 | 내용 |
|---|---|
| 누가 | 로그인한 모든 사용자 |
| 조건 | 배송지가 등록되어 있어야 한다 |
| 수정·삭제 | 내가 등록한 경매만 (주최자) |
변경점 — 기존에는 '경매진행자' 모드일 때만 등록 버튼이 보였고, 모드가 맞지 않으면 자기 경매도 수정할 수 없었다. 이제 등록 버튼은 항상 보이고, 수정·삭제는 소유 여부만으로 판단한다. 배송지 요건은 유지한다. 이는 신분이 아니라 경매를 여는 행위 자체의 요건이기 때문이다.
F2. 경매 탐색
- 홈: 마감 임박 / 공감을 많이 받은 / 최신 경매를 큐레이션해 보여준다
- 경매 현황: 전체 목록을 마감순·인기순·최신순으로 정렬, 키워드 검색
- 열람은 비회원 포함 전원 가능하다
F3. 사연 입찰 — 핵심
사용자는 왜 이 물건이 자신에게 필요한지를 글로 쓰고, 보유 포인트를 걸어 입찰한다.
| 항목 | 내용 |
|---|---|
| 누가 | 방문자 (아직 참여하지 않은 사용자) |
| 제한 | 한 경매에 사연 1개 |
| 걸 수 있는 포인트 | 1,000 P부터 +500 단위, 상한 3,000 P (전 서비스 공통 고정) |
| 주최자 | 자기 경매에는 사연을 쓸 수 없다 |
주최자를 제외하는 이유 — 자기 경매에 자기가 낙찰되는 것은 의미가 없고, 주최자의 공감이 큰 가중치를 갖기 때문에(F4) 자기 사연에 자기가 가점을 주는 자기거래가 성립한다.
F4. 공감(좋아요) — 핵심
사연에 눌린 공감은 그 사연의 입찰 포인트를 올린다. 이것이 Vidding의 낙찰 방식이다.
| 누가 공감했는가 | 오르는 포인트 |
|---|---|
| 주최자 | +50p |
| 그 외 사용자 | +10p |
- 주최자의 공감에 큰 가중치를 두어, 물건을 내놓은 사람의 마음이 결과에 반영되도록 한다
- 자기가 쓴 사연에는 공감할 수 없다
- 주최자가 결과에 개입하는 수단은 공감 하나뿐이다
변경점 — 기존에는 주최자가 사연에 직접 포인트를 얹는 '가점 입찰' 기능이 별도로 있었다. 공감 가중치와 목적이 겹치고 규칙을 복잡하게 만들어 제거한다. 주최자의 개입 수단을 공감으로 일원화한다.
F5. 낙찰
- 마감 시점에 입찰 포인트(건 포인트 + 받은 공감)가 가장 높은 사연이 낙찰된다
- 결과는 주최자와 참여자 전원에게 알림으로 전달된다
F6. 1:1 채팅
- 주최자 ↔ 참여자 간 1:1 대화
- 낙찰 이후 물건 전달 방법을 논의하는 용도
- 이미 소유 관계로 동작하고 있어 기능 변경 없음
F7. 찜하기
| 항목 | 내용 |
|---|---|
| 누가 | 주최자를 제외한 로그인 사용자 전원 |
변경점 — 기존에는 '입찰참여자' 모드에서만 찜이 가능했다. 찜은 단순 북마크이므로 참여 여부와 무관하게 개방한다.
F8. 마이페이지
내 활동 전체를 한곳에서 본다. 모드에 따라 메뉴가 사라지지 않는다.
프로필 영역 + 탭 3개가 전부다. 별도 메뉴 페이지를 두지 않는다.
| 영역 | 내용 |
|---|---|
| 프로필 | 닉네임 · 보유 포인트 · 배송지 상태 |
| 탭 | 내 경매 · 내 사연 · 찜 |
변경점 — 기존에는 '내 경매'와 '내 사연'이 모드에 따라 번갈아 나타났다. 이제 탭 하나로 즉시 전환한다. 이 화면이 곧 유형 통합의 결과다.
5.4 관계별 기능 접근 요약
경매 상세 화면 기준. O 가능 · - 불가
| 기능 | 비회원 | 주최자 | 참여자 | 방문자 |
|---|---|---|---|---|
| 경매·사연 열람 | O | O | O | O |
| 경매 수정·삭제 | - | O | - | - |
| 사연 작성 | - | - | - | O |
| 공감(좋아요) | - | O +50p | O +10p | O +10p |
| 찜하기 | - | - | O | O |
| 1:1 채팅 | - | △ | △ | - |
△ 낙찰 확정 이후 주최자와 낙찰자에게만 열린다.
이 표에 '사용자 유형' 열은 없다. 모든 판단이 관계만으로 이루어진다.
5.5 사라지는 것
| 대상 | 사유 |
|---|---|
| 헤더 역할 전환 토글 | 관계가 자동 판정되므로 불필요 |
| 주최자 가점 입찰 | 공감 가중치로 일원화 (F4) |
| 역할별 테마(다크/레드) | 블루 단일 테마로 통합 |
상세 범위는 7. MVP 범위에서 다룬다.
6. 사용자 시나리오
4.3의 페르소나 이서연이 한 주 동안 서비스를 사용하는 흐름이다. 각 단계마다 기존 구조에서는 어떻게 막혔는지를 나란히 적어 개선 효과를 확인한다.
6.1 메인 시나리오 — 이서연의 한 주
1일차 · 경매를 연다 〔관계: 주최자〕
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 1 | 안 쓰는 캠핑 의자를 정리하다 앱을 연다 | 홈에 마감 임박 경매들이 보인다 |
| 2 | 우측 하단 + 버튼을 누른다 | 경매 등록 화면으로 이동 |
| 3 | 사진·제목·사연 요청글·마감일을 입력한다 | 경매 등록 완료 |
배송지를 묻지 않는다. 택배로 보낼지 직접 만날지는 낙찰 뒤 채팅에서 정한다 (F1 3.2 · F6 2).
기존 구조에서는 — 2번에서 막힌다. + 버튼은 '경매진행자' 모드에서만 보였다. 이서연은 먼저 헤더 토글을 바꿔야 했다. 〔모드 전환 1회〕 이때 화면 전체가 다크 모드로 뒤집히며 방금까지 보던 화면과 다른 앱처럼 보인다.
3일차 · 사연을 읽고 공감한다 〔관계: 주최자〕
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 5 | "새 사연이 등록되었어요" 알림을 확인한다 | 내 경매 상세로 이동 |
| 6 | 올라온 사연 3개를 읽는다 | 사연 목록과 현재 입찰 순위가 보인다 |
| 7 | 가장 마음에 드는 사연에 공감을 누른다 | 해당 사연의 입찰 포인트 +50p |
| 8 | 사연 요청글에 오타를 발견해 수정한다 | 경매 수정 화면으로 이동 |
기존 구조에서는 — 8번에서 막힐 수 있다. 자기가 등록한 경매인데도 모드가 '입찰참여자'면 수정 버튼이 보이지 않았다.
5일차 · 다른 경매에 참여한다 〔관계: 방문자 → 참여자〕
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 9 | 홈에서 필름 카메라 경매를 발견한다 | 경매 상세 진입 |
| 10 | 찜하기를 눌러 저장한다 | 찜 목록에 추가 |
| 11 | 주최자의 사연 요청글을 읽는다 | "왜 이 카메라가 필요한지 들려주세요" |
| 12 | 사연 작성하기를 누른다 | 사연 작성 화면으로 이동 |
| 13 | 필름 카메라를 갖고 싶은 이유를 쓰고, 포인트를 걸어 입찰한다 | 입찰 완료 |
| 14 | 경매 상세로 돌아온다 | 버튼이 '사연 작성 완료'로 바뀌어 있다 〔참여자로 전이〕 |
기존 구조에서는 — 10번과 12번에서 모두 막힌다. 1일차에 '경매진행자'로 바꿔둔 상태라 찜하기가 동작하지 않고, 사연 작성 버튼 자체가 보이지 않았다. 다시 '입찰참여자'로 토글해야 했다. 〔모드 전환 2회〕
6일차 · 내 활동을 확인한다
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 15 | 마이페이지에 들어간다 | 내 경매와 내 사연 탭이 나란히 보인다 |
| 16 | 캠핑 의자 경매의 현재 순위를 확인한다 | 사연 5개, 1위 사연 확인 |
기존 구조에서는 — 15번에서 막힌다. 모드에 따라 '내 경매'와 '내 사연' 중 하나만 노출됐다. 둘 다 보려면 또 토글해야 했다. 〔모드 전환 3회〕
7일차 · 낙찰
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 17 | 캠핑 의자 경매 마감 | 최고 포인트 사연 낙찰, 전원에게 알림 |
| 18 | 낙찰자와 1:1 채팅을 시작한다 | 전달 방법 논의 |
| 19 | 필름 카메라 경매 결과 알림을 확인한다 | 참여자로서 결과 확인 |
6.2 시나리오 결과
| 항목 | 기존 구조 | 개선 후 |
|---|---|---|
| 모드 전환 횟수 | 3회 | 0회 |
| 기능이 막힌 지점 | 4곳 (2·8·10·12번) | 없음 |
| 테마 전환 | 라이트↔다크 반복 | 블루 단일 유지 |
이서연은 한 주 동안 주최자·참여자·방문자 세 관계를 모두 경험했지만, 자신이 어떤 유형인지 한 번도 선언하지 않았다.
6.3 보조 시나리오 — 처음 방문한 사용자
| 단계 | 사용자 행동 | 서비스 반응 |
|---|---|---|
| 1 | 링크로 특정 경매에 진입 (비회원) | 경매 정보와 사연을 열람할 수 있다 |
| 2 | 사연들을 읽다가 참여하고 싶어진다 | '사연 작성하기' 클릭 시 로그인 유도 |
| 3 | 소셜 로그인 (Google / Kakao) | 유형 선택 단계 없이 가입 완료 |
| 4 | 바로 사연을 작성한다 | 입찰 완료 |
기존 구조에서는 — 가입 직후 사용자는 기본값 '입찰참여자'로 시작했다. 경매를 열고 싶어진 시점에 자신이 무엇을 바꿔야 하는지 스스로 알아내야 했다. 개선 후에는 가입 단계에서 유형을 묻지 않고, 경매 등록 진입점이 처음부터 열려 있다.
7. MVP 범위
7.1 MVP 판단 기준
이번 MVP는 새 기능을 더하는 것이 아니라, 신분 구조를 걷어내는 것이다. 따라서 포함 여부는 다음 한 가지 질문으로 판단한다.
"이것이 없으면 사용자가 여전히 자신의 유형을 선언해야 하는가?"
Yes면 포함, No면 제외한다.
7.2 포함할 기능
A. 관계 기반으로 재구성 — 이번 프로젝트의 본체
| # | 항목 | 내용 |
|---|---|---|
| A1 | 사용자 유형 제거 | users.role 컬럼을 처음부터 만들지 않는다. 값을 무시하는 것이 아니라 스키마에 존재하지 않는다 |
| A2 | 헤더 역할 전환 토글 제거 | 모드 전환 UI 삭제 |
| A3 | 경매 등록 개방 | 등록 버튼을 로그인 사용자 전원에게 노출. 배송지 요건은 유지 |
| A4 | 경매 수정·삭제 판정 변경 | 역할 조건 제거, 소유 여부만으로 판단 |
| A5 | 사연 작성 판정 변경 | 역할 조건 제거. 주최자·기참여자만 제외 |
| A6 | 찜하기 개방 | 주최자를 제외한 로그인 사용자 전원 허용 |
| A7 | 마이페이지 탭 통합 | 메뉴 페이지를 없애고 내 경매·내 사연·찜 탭으로. 빈 상태 안내 신규 작성 |
| A8 | 상태 변경 요구 안내 제거 | "~로 변경해주세요" 문구 전량 삭제 |
| A9 | 주최자 가점 입찰 제거 | 공감 가중치로 일원화 |
B. 디자인 통합
| # | 항목 | 내용 |
|---|---|---|
| B1 | 역할별 다크 모드 제거 | 라이트 단일로 통합 |
| B2 | 블루 단일 테마 적용 | 기존 블루 팔레트 값 유지 |
| B3 | 레드 의미 회수 | 신분 표시에서 분리, 마감 임박·오류·필수 입력·포인트 차감 으로 한정 |
| B4 | 역할 뱃지 제거 | 프로필의 유형 표시 삭제 |
C. 문구 정리
| # | 항목 | 내용 |
|---|---|---|
| C1 | 온보딩 문구 수정 | "일반 유저 + 판매자 좋아요 = 총점" → 관계 용어로 교체 |
| C2 | 용어 통일 | 판매자·구매자 → 주최자·참여자 (사용자 대면 문구 전체) |
D. 그대로 계승 — 변경 없음
| 기능 | 사유 |
|---|---|
| 경매 탐색 (홈·목록·검색·정렬) | 역할과 무관하게 동작 |
| 사연 작성·수정·삭제 | 작성자 판정으로 이미 동작 |
| 공감(좋아요) 가중치 50p / 10p | 이미 소유 관계로 판정 중, 용어만 정리 |
| 낙찰 로직 | 역할과 무관 |
| 1:1 채팅 | 낙찰 이후 주최자–낙찰자 간 대화. 경매 1건당 방 1개 |
| 포인트 내역·배송지 관리 | 역할과 무관 |
| 알림 | 역할과 무관 |
7.3 제외할 기능
| # | 제외 항목 | 사유 |
|---|---|---|
| E1 | 신규 기능 일체 (댓글·팔로우·카테고리·실시간 입찰 현황 등) | 이번 목표는 구조 정리다. 기능을 더하면 개선 효과를 측정할 수 없다 |
| E2 | 사용자 선택형 다크 모드 | 다크 모드를 없애는 것이 목표다. 선택 기능으로 되살리면 다시 2벌 관리가 된다. 단일 시각 언어 확립 후 별도 과제로 검토 |
| E3 | 블루 팔레트 톤 재조정 | 기존 값 유지. 톤 개선은 역할 컬러 제거가 끝난 뒤 판단해야 효과를 분리해 볼 수 있다 |
| E4 | 참여 전 문의 채널 | 채팅을 낙찰 이후 전달 논의로 한정한다. 주최자는 사연 요청 설명에 필요한 정보를 충분히 담는다 |
| E5 | '주최자' 표시 뱃지 신설 | 수정 버튼이 보이는 것으로 관계가 이미 드러난다. 불필요한 신분 표시의 재도입이 될 수 있다 |
| E6 | 푸시 알림 | Service Worker·구독 관리·만료 처리 비용에 비해 실효가 낮다. 서비스 내 알림 목록과 헤더 배지로 대체한다 |
| E7 | 배송지 다중 관리 | 배송지는 경매를 열기 위한 요건일 뿐이다. 1개만 두고 목록·기본 지정 개념을 없앤다 |
| E8 | 홈 큐레이션 다중 섹션 | 데이터 0건으로 시작하므로 섹션이 많으면 빈 상태만 여러 번 보인다. 마감 임박 + 전체 목록으로 통합한다 |
| E9 | 기존 데이터 이관 | 레포지토리·데이터베이스·인증을 모두 새로 구축한다. 기존 서비스는 그대로 두고 데이터를 옮기지 않는다 |
E2·E5는 특히 주의가 필요하다. 둘 다 "없애기로 한 것을 다른 형태로 되살리는" 항목이라, 범위에 들어오면 이번 프로젝트의 목적 자체가 흐려진다.
7.4 릴리즈 우선순위
| 순위 | 범위 | 완료 기준 |
|---|---|---|
| 1 | A1·A2 — 유형 제거, 토글 제거 | 모드 전환 UI가 서비스에 존재하지 않는다 |
| 2 | A3~A6 — 기능 판정을 관계 기반으로 전환 | 6.1 시나리오가 모드 전환 0회로 완주된다 |
| 3 | A7~A9 — 마이페이지 통합, 안내 문구·가점 입찰 제거 | "~로 변경해주세요" 문구가 0건이다 |
| 4 | B1~B4 — 디자인 통합 | 테마가 1벌이고, 레드가 경고 의미로만 쓰인다 |
| 5 | C1·C2 — 문구 정리 | 사용자 대면 문구에 판매자·구매자 표현이 없다 |
1~2순위가 완료되면 이 프로젝트의 핵심 가치는 이미 전달된다. 3~5순위는 그 위의 완성도 작업이다.
7.5 MVP 완료 판정
한 계정으로 경매를 등록한 직후, 다른 사람의 경매에 사연을 작성하는 흐름이 어떤 설정 변경도 없이 끊김 없이 이어지면 MVP는 완료된 것으로 본다.
세부 지표는 3.3 성공 기준 표를 따른다.