# 끼리 (KKIRI) — 시나리오별 질문 · 선택 · 결과 맵

작성: 페이블 · 2026-09-05
기준: 2026-09-05 검토 반영 뒤 목업 `OUTBOX/KKIRI/mockup/engine.js`(질문·후보·최저 우선 정렬·거부권)와 `app.js`(화면 전환·마감·재확인). 아래 수치는 `.scratch/kkiri-sim.mjs`를 다시 실행해 얻었다. 이전 0.5 가중합 기준 문서의 수치는 더 이상 현재 엔진 기준이 아니다.

![끼리 한 장 구성도](diagrams/KKIRI_OVERVIEW.svg)

---

## 0. 한 장으로 이해하기

끼리는 **질문 → 지우기 → 점수 → 결과 → 재확인** 다섯 칸이다.

| 칸 | 누가 | 무엇을 고르나 | 그 선택이 바꾸는 것 |
|---|---|---|---|
| ① 질문 | 참가자 각자 | 6문항 (원하는 것 + 절대 안 되는 것) | 후보의 생사와 점수 |
| ② 지우기 | 시스템 | 없음 (자동) | 상한·금지 조건에 한 명이라도 걸린 후보는 탈락 |
| ③ 순위 | 시스템 | 없음 (자동) | 남은 후보를 `최저 만족도 → 평균 → 낮은 비용 → 짧은 일정`으로 줄 세움 |
| ④ 결과 | 전원 / 본인 | 공개 결과 vs 내 리포트 | 공통 이유와 선호 차이만 공개, 개인 조건은 본인만 |
| ⑤ 재확인 | 참가자 각자 → 방장 | 동의 / 조건부 / 재조율(1회) | 실행 조건 메모, 재계산 1회, 방장 확정 |

질문 6개는 결과를 바꾸는 힘이 세 등급으로 다르다.

| 힘 | 질문 | 어떻게 작용하나 |
|---|---|---|
| 🔴 후보를 지운다 | Q2 시간 **상한 ON**, Q5 예산 **상한 ON**, Q6 피하고 싶은 것 | 한 명만 걸려도 그 후보는 탈락. 결과가 즉시 바뀌거나 후보가 0개가 된다 |
| 🔵 순위를 뒤집는다 | Q3 목적 1·2순위 | 100점 중 40점(1순위)·20점(2순위). 한 사람의 1순위만 바뀌어도 1위가 바뀔 수 있다 |
| ⚪ 만족도를 움직인다 | Q1 방식(25점), Q4 지역(20점), Q2 시간(15점), Q5 예산 선호(최대 -10점) | 상한이 아니어도 후보별 개인 만족도와 순위에 반영된다 |

---

## 1. 시나리오 ① 방장이 방을 만든다 (S0 → S2)

| 화면 | 방장이 고르는 것 | 선택지 | 무엇이 달라지나 |
|---|---|---|---|
| S0 랜딩 | 결정 주제 | 팀 워크숍 (여행·회식은 준비 중) | 목업은 워크숍만 동작. 질문 6문항과 후보 5개가 워크숍 기준으로 고정 |
| S1 인원 | 참여 인원 | 3 ~ 8명 (스테퍼) | 3명 미만·8명 초과는 버튼이 비활성. 인원은 마감 시 자동 시작 조건(답변 ≥ 3명)의 분모가 된다 |
| S1 마감 | 답변 마감 | 3시간 / 자정 / 24시간(기본) / 48시간 | 리마인드 자동 발송 시각(남은 시간 절반, 마감 1시간 전)과 마감 도달 시 분기가 이 값에서 계산된다 |
| S1 초대 방식 | 공용 링크 + 6자리 코드 / 이름별 개인 링크 | 2택 | 공용: 정원 차면 닫힘, 리마인드는 방 전체 / 개인: 이름별 링크·중복 입장 불가·미응답자에게만 리마인드 |
| S1 이름 | 방장 이름 | 자유 입력 | 참여 현황에 방장으로 표시. 답변 원문에는 이름이 붙지 않는다 |
| S2 초대 | 공유 채널 | 카톡 · 슬랙 · 문자/메일 · QR · 복사 · 캘린더 | 목업에서는 실제 발송 없이 공유 시트만 뜬다 |

---

## 2. 시나리오 ② 참가자가 6문항에 답한다 (S3 → S4)

### 2-1. 질문마다 무엇을 고르고, 점수는 어떻게 붙나

만족도는 사람 × 후보마다 0~100점이다. 네 항목 점수에서 예산 선호 초과 페널티를 뺀다.

| 순서 | 질문 | 선택지 | 점수 규칙 (사람 1명 × 후보 1개) | 거부권 |
|---|---|---|---|---|
| Q1 | 어떤 방식이 편한가요? | 실내 중심 / 야외 활동 / 반반 | 정확히 같으면 **25**, 한쪽이 반반이면 **12.5**, 다르면 0 | 없음 |
| Q2 | 얼마나 시간을 낼 수 있나요? | 반나절 / 하루 / 1박 2일 + 「이 이상은 어려워요」 | 같으면 **15**, 후보가 더 짧으면 **9**, 더 길면 0 | 상한 ON: 내 선택보다 **긴** 후보 탈락 |
| Q3 | 가장 중요한 목적은? | 팀워크 / 재충전 / 아이디어 발굴 중 1순위 → 2순위 | 후보가 1순위를 담으면 **40**, 2순위만 담으면 **20**, 둘 다 없으면 0 | 없음 |
| Q4 | 선호 지역은? | 서울 도심 / 수도권 근교 / 지역 무관 | 같거나 「지역 무관」이면 **20**, 다르면 0 | 없음 |
| Q5 | 1인 예산은 어느 정도가 편한가요? | 3만 / 5만 / 10만 / 상관없음 + 「이 금액을 넘으면 어려워요」 | 선호 초과가 1.5배 이내면 **-5**, 더 크면 **-10** | 상한 ON: 내 금액보다 **비싼** 후보 탈락 |
| Q6 | 이것만은 피하고 싶어요 | 자유서술 또는 건너뛰기 | 점수 없음 | 구조화된 조건(운전·술·숙박·격한 야외·장거리·날음식·이른 출발)에 걸린 후보 탈락 |

Q6 자유서술은 제출 전에 「이렇게 이해했어요」 확인 카드가 뜬다. 7종 키워드에 하나도 안 걸리면 **다음 버튼이 비활성**이고 건너뛰기만 가능하다(목업은 키워드 규칙, 실제 서비스는 LLM 자리).

### 2-2. 후보 5개는 이렇게 생겼다

| 후보 | 방식 | 시간 | 지역 | 1인 비용 | 담은 목적 | 걸리는 금지 조건 |
|---|---|---|---|---|---|---|
| 양평 리트릿 워크숍 | 반반 | 하루 | 근교 | 4만 | 재충전·아이디어 | 없음 (전세버스) |
| 성수 팀 미션 데이 | 실내 | 반나절 | 서울 | 3만 | 팀워크·아이디어 | 이른 출발 (09:00 집결) |
| 가평 1박 팀빌딩 | 야외 | 1박 | 근교 | 9만 | 팀워크·재충전 | 운전·숙박·술·격한 야외·장거리 |
| 강남 회의실 아이디어톤 | 실내 | 하루 | 서울 | 2만 | 아이디어 | 없음 |
| 파주 실내 워크숍 | 실내 | 하루 | 근교 | 4.5만 | 재충전·팀워크 | 장거리 |

### 2-3. 기본 4인 방의 답변과 만족도 (시나리오 A)

목업 자동 채움값. 서연만 예산 5만 상한 ON, 방장은 「운전은 안 하고 싶어요」, 서연은 「술자리 중심은 피하고 싶어요」.

| 사람 | Q1 방식 | Q2 시간 | Q3 목적 | Q4 지역 | Q5 예산 | Q6 피할 것 |
|---|---|---|---|---|---|---|
| 방장 | 반반 | 하루 | 재충전 > 아이디어 | 근교 | 5만 | 운전 |
| 지영 | 실내 | 하루 | 아이디어 > 팀워크 | 서울 | 5만 | — |
| 태호 | 야외 | 1박 | 팀워크 > 재충전 | 무관 | 10만 | — |
| 서연 | 실내 | 하루 | 재충전 > 아이디어 | 서울 | **5만 상한** | 술 |

| 후보 | 방장 | 지영 | 태호 | 서연 | 최저 | 평균 | 결과 |
|---|---|---|---|---|---|---|---|
| 양평 | 100 | 67.5 | 61.5 | 67.5 | **61.5** | **74.1** | 1위 |
| 파주 | 87.5 | 60 | 69 | 80 | 60 | 74.1 | 2위 |
| 성수 | 41.5 | 94 | 69 | 74 | 41.5 | 69.6 | 3위 |
| 강남 | 47.5 | 100 | 29 | 80 | 29 | 64.1 | 4위 |
| 가평 | 62.5 | 10 | 100 | 30 | — | — | 탈락: 운전(방장) · 예산(서연) · 술(서연) |

공개 결과에 뜨는 이유는 「재충전 1순위 2명 · 하루 일정 전원 가능 · 4만원으로 상한 아래」, 선호 차이 집계는 「실내 선호 2명 · 결과는 반반 / 서울 선호 2명 · 결과는 근교 / 단독 선호 차이 2건은 본인 리포트에서만」이다.

### 2-4. 선택 하나를 바꾸면 결과가 어떻게 달라지나 (엔진 실행 결과 18건)

전부 시나리오 A에서 표시한 답 **하나만** 바꾼 것이다.

**🔵 목적(Q3)을 바꾸면 — 1위가 뒤집힌다**

| # | 바꾼 선택 | 후보 변화 | 결과 |
|---|---|---|---|
| B | 방장 1순위 재충전 → 팀워크 | 성수·양평 최저 61.5 동률, 평균 74.6 > 69.1 | **성수 팀 미션 데이** |
| R | 지영 1순위 아이디어 → 재충전 | 파주 최저 69 > 양평 61.5 | **파주 실내 워크숍** |

**🔴 상한·금지(Q2·Q5·Q6)를 켜면 — 후보가 사라진다**

| # | 바꾼 선택 | 후보 변화 | 결과 |
|---|---|---|---|
| C | 서연 예산 3만 + 상한 ON | 양평(4만)·파주(4.5만) 탈락, 성수·강남만 생존 | **성수** (최저 41.5) |
| P | 방장 예산 3만 + 상한 ON | C와 동일 | **성수** (최저 41.5) |
| E | 방장 반나절 + 상한 ON | 하루·1박 후보 4개 전부 탈락 | **성수만 생존** (최저 47.5, 「조건만으로 결정」 배지) |
| F | E + 「새벽 출발은 싫어요」 | 성수도 09:00 집결에 걸림 | **합의 가능한 후보 0개** → 상한 완화 요청 또는 방 닫기 |
| Q | 방장 「멀리 이동은 힘들어요」 추가 | 파주 탈락 (2위 사라짐) | **양평** 유지, 차선이 성수로 바뀜 |
| I | 방장 「운전」 조건 삭제 | 가평은 여전히 서연 예산·술로 탈락 | **양평** 유지 — 조건 하나 빼도 결과 불변 |
| J | 방장 운전 + 서연 술 조건 모두 삭제 | 가평은 서연 예산 상한(9만 > 5만)으로 여전히 탈락 | **양평** 유지 |
| M | 태호 1박 + 상한 ON | 1박이 최장이라 상한이 추가 후보를 막지 않음 | **양평** 유지. UI는 이 조합에서 상한 토글을 숨김 |

**⚪ 방식·지역·시간 선호(Q1·Q4·Q2 OFF)를 바꾸면 — 만족도 순위가 움직인다**

| # | 바꾼 선택 | 후보 변화 | 결과 |
|---|---|---|---|
| K | 방장 방식 반반 → 실내 | 파주 평균은 77.3으로 오르지만 최저 60, 양평 최저 61.5 | **양평** 유지 — 평균만 높아서는 역전하지 않음 |
| H | 방장 지역 근교 → 무관 | 성수·양평 최저 61.5 동률, 평균 74.6 > 74.1 | **성수** — 동률 때 평균으로 결정 |
| G | 4명 전원 지역 서울 | 성수 최저 61.5, 양평 41.5 | **성수** |
| D | 방장 시간 반나절, 상한 OFF | 하루 후보는 살고 양평 평균만 74.1 → 70.4 | **양평** 유지 |
| L | 방장 시간 1박, 상한 OFF | 양평 최저 61.5, 평균 72.6 | **양평** 유지 |

**인원이 달라지면**

| # | 방 | 후보 변화 | 결과 |
|---|---|---|---|
| O | 3명 (방장·지영·태호) | 가평은 방장 운전으로만 탈락. 이유 문구가 2줄뿐 | **양평** (최저 61.5 · 평균 76.3) |
| N | 8명 (7 페르소나 전원) | 성수 탈락(하늘 「새벽 출발」), 파주 탈락(보라 「장거리」), 가평 탈락 | **양평** (최저 52.5 · 평균 76.4), 차선 강남 |

### 2-5. 검토 뒤 반영한 규칙

| 검토 지적 | 반영 |
|---|---|
| 예산 선호가 상한 OFF면 무시됨 | 선호 초과 후보에 -5/-10을 적용하고, 상한 ON일 때만 탈락시킴 |
| 1박·상관없음에서 상한 토글이 무의미 | 해당 선택에서는 토글을 숨기고 기존 상한 값도 해제 |
| 가중합이 소수 보호를 보장하지 않음 | 최저 만족도 우선 정렬로 교체. 동률 순서도 평균 → 비용 → 일정 → ID로 고정 |
| 3인 방에서 개인 발언·단독 조건이 재식별됨 | 사람 단위 로그를 삭제하고 공개 진행은 응답·거부권·후보 **건수만** 표시 |

---

## 3. 시나리오 ③ 조율이 시작된다 (S5 → S6)

| 상황 | 누가 고르나 | 선택지 | 결과 |
|---|---|---|---|
| 전원 답변 완료 | 아무도 | — | 3초 뒤 자동으로 조율 화면 |
| 일부 미답변, 마감 전 | 방장 | 「지금 협상 시작」 / 기다림 | 시작 시 확인 모달 → 미응답자 조건 미반영, 결과에 「미응답 N명」 배너 |
| 마감 도달, 답변 ≥ 3명 | 시스템 | — | 자동 시작 + 미응답 배너 |
| 마감 도달, 답변 < 3명 | 방장 | 「24시간 연장」(최대 2회) / 「방 닫기」 | 연장 시 미응답자에게 리마인드, 3회째는 닫기만 가능 |
| 조율 중 LLM 설명 30초 초과 | 시스템 | — | 규칙 기반 설명으로 폴백, 결과에 「규칙 설명」 배지 |
| 거부권 통과 후보 0개 | 시스템 → 방장 | 「상한 완화 익명 동의 요청」 / 「방 닫기」 | 어떤 조건이 몇 개 후보를 지웠는지 주제만 표시 (누구 조건인지는 비공개) |

조율 화면은 대리인 A~H 발언을 없앴다. 공개되는 것은 `응답 N건 구조화 → 거부권 N건 적용, 후보 5→M → 최저 만족도 우선 비교 → 공통 이유 생성` 네 줄뿐이다. 개인 조건·정확한 값·선호 조합은 공개하지 않는다.

---

## 4. 시나리오 ④ 결과를 본다 (S7 → S8)

| 보는 사람 | 화면 | 보이는 것 | 안 보이는 것 |
|---|---|---|---|
| 전원 | S7 합의 결과 | 최종안 · 공통 이유 · 선호 차이 집계 · 공정성(최저·평균) · 차선 2개 · 지켜진 조건 개수 | 개인 조건과 정확한 상한, 단독 선호 내용 |
| 본인만 | S8 내 대리인 리포트 | 내가 낸 상한·금지가 지켜졌는지 · 내 선호와 다른 항목 · 내 1순위 반영 여부 · 내 만족도 | 다른 사람 리포트 |

시나리오 A 방장 리포트: 지켜진 조건 「운전 없는 동선」, 선호 차이 없음, 「재충전 1순위 → 반영됨」, 만족도 100. 태호 리포트: 선호 차이 「야외 → 반반 · 1박 → 하루」, 「팀워크 1순위는 못 넣고 재충전 2순위 반영」, 만족도 61.5.

---

## 5. 시나리오 ⑤ 최종 재확인 (ratify → done)

| 참가자 선택 | 입력 | 집계에 미치는 영향 | 그 다음 |
|---|---|---|---|
| 동의 | 없음 | 동의 +1 | 전원 응답 또는 24시간 마감이면 방장이 확정 가능 |
| 조건부 동의 | 실행 조건 한 줄 (예: 시작 오후 1시 이후) | 조건부 +1, 조건 문구가 결과·확정 카드의 「실행 조건」에 표시 | 방장 실행 체크리스트에 반영 |
| 다시 조율해야 해요 | 새 금지 조건 자유서술 | 재조율 +1, 요청자는 비공개 | 방장이 「다시 조율하기(1회)」 → 새 조건을 넣고 재계산 → 결과에 「재조율 1회 반영」 배너. 두 번째부터 버튼 비활성 |
| 24시간 동안 미응답 | — | 기권으로 집계 | 재조율 요청이 없으면 방장 확정 가능 |

확정(S9)에는 최종안 카드 · 공유 · .ics · 방장 실행 체크(장소 예약 · 일정 공유 · 실행 조건 N건)가 뜬다.

---

## 6. 직접 바꿔보기

아래 위젯은 목업의 `engine.js`를 그대로 불러와 계산한다. 누구의 답이든 바꾸면 후보의 생사·최저·평균·1위가 즉시 다시 계산된다.

<!-- whatif -->

---

## 7. 검증 근거

- 점수·거부권·후보: `OUTBOX/KKIRI/mockup/engine.js` — `satisfaction()`, `vetoes()`, `negotiate()`
- 화면 전환·마감·재확인: `OUTBOX/KKIRI/mockup/app.js` — `advance()`, `renderRatify()`, `renegotiate()`
- 18건 실행 로그: `.scratch/kkiri-sim.mjs` (node로 재실행, 2026-09-05)
- 회귀 테스트: `OUTBOX/KKIRI/mockup/tests/engine.test.mjs`
- 쏠 정리본: `OUTBOX/KKIRI/KKIRI_SCENARIO_QUESTIONS_AND_OUTCOMES.md` — 시나리오 A~G 수치 일치 확인
- 유저 플로우 다이어그램: https://kkiri-plan.pages.dev/docs/user-flow
