원본: SOL_SCREEN_SCENARIO.md

끼리(KKIRI) 화면 시나리오

작성일: 2026-09-04
기준: 모바일 우선, 팀 워크숍 MVP
표기: 현재는 배포된 데모, 목표는 제안하는 실제 MVP

1. 설계 원칙

  1. 결정 전에 프라이버시 계약을 먼저 보여준다. “비공개”를 하단 문구가 아니라 입력 전 약속으로 만든다.
  2. 한 화면에는 한 판단만 둔다. 선택, 제출, 동의가 섞이지 않게 한다.
  3. 협상 연출보다 계산 근거가 먼저다. 로딩 애니메이션 뒤에는 실제 충돌 조건과 선택 규칙이 있어야 한다.
  4. 합의는 추천 생성으로 끝나지 않는다. 참가자의 재확인을 받아야 완료다.
  5. 공개 화면과 개인 화면을 나눈다. 집단은 결론과 공통 이유를 보고, 개인은 자기 조건의 반영·양보 내역을 본다.

2. 정보구조

/                         주제 선택
/rooms/new                방 만들기
/r/:roomId/invite         초대·참여 현황
/r/:roomId/join           닉네임·프라이버시 약속
/r/:roomId/preferences    비공개 조건 입력
/r/:roomId/waiting        제출 대기
/r/:roomId/negotiating    합의 계산 진행
/r/:roomId/result         집단 합의안
/r/:roomId/my-receipt     개인 합의 영수증
/r/:roomId/ratify         최종 재확인
/r/:roomId/done           결정 완료

방장만 방 설정을 바꿀 수 있다. 참가자는 자기 입력과 자기 합의 영수증만 볼 수 있다. 집단 결과에는 개인 이름과 원문 답변을 넣지 않는다.

3. 전체 화면 목록

ID 화면 주 사용자 화면의 단일 질문 성공 신호
S00 주제 선택 방장 무엇을 정할 것인가? 팀 워크숍 선택
S01 방 만들기 방장 결정의 경계는 무엇인가? 방 생성
S02 초대·참여 현황 방장 필요한 사람이 모두 들어왔나? 참가 인원 충족
S03 닉네임·프라이버시 참가자 무엇이 공개되고 숨겨지는가? 약속 확인 후 시작
S04 비공개 조건 입력 참가자 절대 조건과 양보 조건은 무엇인가? 제출 완료
S05 제출 대기 모두 누가 답을 마쳤나? 전원 제출 또는 방장 마감
S06 합의 계산 모두 무엇을 비교하고 있나? 후보안 생성
S07 집단 합의안 모두 무엇을, 왜 골랐나? 결과 이해
S08 개인 합의 영수증 참가자 내 조건은 어떻게 반영됐나? 개인 검토 완료
S09 최종 재확인 모두 이 안으로 진행해도 되는가? 전원 응답
S10 완료·실행 인계 방장 누가 무엇을 실행할 것인가? 결정 기록 저장

4. 상세 시나리오

S00. 주제 선택 /

목적: 처음 5초 안에 “속마음은 숨기고 결정은 함께한다”는 가치를 이해시키고, 지원 주제만 선택하게 한다.

구성

현재와의 차이: 현재는 여행·워크숍·회식 3개가 모두 활성이다. 목표 MVP에서는 워크숍만 실제 다자간 방을 만들게 한다.

예외

S01. 방 만들기 /rooms/new

목적: 합의 엔진이 비교할 수 있는 최소 경계를 방장이 정한다.

입력

행동

검증

S02. 초대·참여 현황 /r/:roomId/invite

목적: 링크 공유와 참가 상태 확인을 같은 화면에서 끝낸다.

구성

프라이버시 카피

방장은 누가 제출했는지만 봅니다. 누구의 답인지, 무엇을 골랐는지는 볼 수 없습니다.

예외

S03. 닉네임·프라이버시 약속 /r/:roomId/join

목적: 답을 받기 전에 공개 범위와 삭제 시점을 이해시키고 명시적 동의를 받는다.

화면 카피

보관 기간은 서버 정책이 정해진 뒤 숫자를 넣는다. 지금 임의의 기간을 약속하지 않는다.

입력: 닉네임 1개. 실명은 요구하지 않는다.
CTA: 약속을 확인하고 시작하기

S04. 비공개 조건 입력 /r/:roomId/preferences

한 화면에 한 질문만 보여준다. 진행률은 2 / 7처럼 현재 위치를 표시한다. 질문 수 7개는 ※ 가정 기반 — 확인 필요이며 파일럿에서 이탈률을 보고 줄인다.

질문 구조

  1. 참여할 수 없는 날짜·시간
  2. 이동 가능 범위
  3. 1인 예산 상한
  4. 피해야 하는 활동 또는 환경
  5. 가장 중요한 목적
  6. 선호 활동 유형
  7. 내가 양보할 수 있는 것

응답 수준

마이크로카피

에러 예방

S05. 제출 대기 /r/:roomId/waiting

목적: 답변 내용 없이 진행 상태만 공유한다.

구성

마감 규칙

S06. 합의 계산 /r/:roomId/negotiating

목적: 3초가 넘는 계산은 무엇을 하고 있는지 단계로 설명한다.

단계

  1. 개인 조건을 익명 구조로 바꾸는 중
  2. 하드 제약을 어기는 후보를 제외하는 중
  3. 가장 불리한 사람의 만족도를 비교하는 중
  4. 공개 가능한 이유를 만드는 중

현재 데모의 고정 2.2초 애니메이션은 단계 연출일 뿐이다. 목표 MVP에서는 실제 작업 상태와 연결한다.

실패

S07. 집단 합의안 /r/:roomId/result

목적: 결론, 근거, 제외된 대안의 차이를 공개하되 개인은 특정하지 않는다.

구성 순서

  1. 결과 배지 합의 제안 · 아직 확정 전
  2. 안의 제목, 시간, 장소, 예산 범위
  3. 지킨 조건 — 하드 제약 집단 요약
  4. 왜 이 안인가 — 최저 만족도와 평균 만족도를 이용한 비교 설명
  5. 가장 가까운 대안 — 무엇이 달랐는지 한 줄
  6. CTA 내 조건 반영 확인하기

금지 카피: AI가 최적의 답을 찾았습니다.
권장 카피: 하드 제약을 모두 지킨 후보 중, 가장 불리한 사람의 만족도가 가장 높은 안입니다.

S08. 개인 합의 영수증 /r/:roomId/my-receipt

목적: 다른 사람의 답을 보지 않고도 “내 말이 반영됐다”는 근거를 준다.

구성

이 화면은 참가자별 인증 토큰으로 보호한다. URL만 아는 다른 참가자가 접근할 수 없어야 한다.

S09. 최종 재확인 /r/:roomId/ratify

선택지

선택은 제출 전 바꿀 수 있다. 제출 뒤에는 집단 화면에 이름이 아닌 상태 합계만 보인다. 전원이 동의 또는 조건부 동의이면 완료된다.

S10. 완료·실행 인계 /r/:roomId/done

목적: 합의를 실제 실행으로 넘긴다.

구성

외부 예약·결제 버튼은 MVP에 넣지 않는다. 합의와 거래를 섞으면 사용자 동의와 책임 범위가 흐려진다.

5. 인터랙션 상태 매트릭스

상태 공통 처리 대표 화면
Default 현재 해야 할 한 가지 행동만 강조 전 화면
Loading 스켈레톤 또는 실제 계산 단계 표시 S02, S06, S07
Empty 원인과 다음 CTA를 함께 표시 S02 참가자 0명, S07 후보 0개
Error 실패 지점과 재시도 범위를 구체적으로 표시 S01 방 생성, S04 제출, S06 계산
Success 토스트와 상태 변경을 함께 표시 링크 복사, 답 제출, 재확인
Partial 완료된 데이터는 유지하고 빠진 것만 알림 S02, S05
Forbidden 방장/참가자 권한 차이를 설명 S08 다른 사람 접근, 방 설정
Offline 임시 저장 여부와 연결 뒤 행동을 명시 S04 응답 작성

6. 권한과 공개 범위

데이터 본인 다른 참가자 방장 합의 엔진
원문 답변 보기·수정 불가 불가 처리 가능
구조화한 개인 조건 보기·확인 불가 불가 처리 가능
제출 상태 보기 보기 보기 보기
집단 합의 이유 보기 보기 보기 생성
개인 합의 영수증 보기 불가 불가 생성
최종 재확인 합계 보기 보기 보기 집계

7. 분석 이벤트

개인 답변 원문은 분석 이벤트에 넣지 않는다.

이벤트 시점 최소 속성
room_created 방 생성 room_id, participant_target
participant_joined 입장 room_id, anonymous_participant_id
preference_submitted 조건 제출 room_id, question_version
consensus_ready 계산 완료 room_id, candidate_count, hard_constraint_conflicts
receipt_viewed 개인 영수증 확인 room_id
ratification_submitted 최종 의견 제출 room_id, decision_type
decision_completed 전원 확인 room_id, revision_count
renegotiation_requested 재조정 room_id, reason_category

8. 인수 조건

9. 현재 데모를 발표에 쓸 때의 화면 수정 우선순위

  1. 결과 배지를 합의 완료가 아니라 합의 제안 · 규칙 기반 데모로 바꾼다.
  2. 협상 화면에 4단계 계산 문구를 넣는다.
  3. 결과 뒤에 내 조건 반영 확인최종 동의 화면을 추가한다.
  4. 초대 화면에서 실제 동기화가 없다는 문구를 유지한다.
  5. 발표자는 “현재는 흐름 검증용 시뮬레이션”이라고 먼저 밝힌다.

10. 근거