본문 바로가기
끼리KKIRI함께 결정하는 방법을 설계합니다
문서 둘러보기
목업 체험
기획 자료설계 다이어그램

USE CASE DIAGRAMS · 시나리오 ①~⑥ + 확장

시나리오별 유즈케이스 다이어그램

누가 끼리에 무엇을 요구하고, 그 요구는 어떤 하위 기능을 반드시·조건부로 끌어오나?

설계 다이어그램 · 시나리오별 유즈케이스 (2026-09-06)

누가 끼리에 무엇을 요구하고, 그 요구는 어떤 하위 기능을 반드시·조건부로 끌어오나?

누가 읽나: 민수 · UI/UX 기획자 · 개발자(백로그·테스트 케이스는 UC 번호로)

← 요구사항·정책 정의서 · 시나리오 맵유저 플로우 · 디자인 스타일 보드 →

원본: KKIRI_USE_CASE_DIAGRAMS.md · 다이어그램 8장은 빌드 때 Mermaid에서 정적 SVG로 렌더했다 (각 그림 아래 원본 보기).

작성: 페이블 · 2026-09-06
기준: 요구사항·정책 정의서(FR-01~23 · P-01~20), 시나리오 맵(①~⑤), 화면 시나리오(S0~S9) 및 쏠 A안 화면설계서(27개 화면, §10), AI 설계서(LLM ①②), 목업 mockup/engine.js · app.js. 각 유즈케이스의 「근거」 열이 어느 문서·코드에서 왔는지 가리킨다.
목적: 쏠이 그리는 A안 화면설계서·플로차트와 짝을 이루는 기능 단위 정의. 플로차트가 「어떤 순서로 지나가나」라면, 이 문서는 「누가 시스템에 무엇을 요구하고, 그 요구가 어떤 하위 기능을 반드시(include)·조건부로(extend) 끌어오나」를 고정한다. 개발 백로그와 테스트 케이스는 여기의 UC 번호를 그대로 쓴다.


0. 읽는 법

액터 7종

액터종류역할근거
방장주 액터 (사람)주제·인원·마감·초대 방식을 정하고, 조기 시작·연장·닫기·재조율·확정을 결정한다. 참가자를 일반화한다 — 방장도 참가자로서 답하고 재확인한다. 남의 답변은 못 보고 대신 답하지 못한다요구사항 §1, FR-07, P-05
참가자주 액터 (사람)링크로 입장해 이름을 넣고 6문항에 답한다. 결과·본인 리포트를 보고 재확인에 응답한다FR-03, FR-04, FR-15, FR-16
규칙 엔진보조 액터 (내부, 결정적)거부권 필터 → 만족도 → 최저 우선 정렬 → 공개/비공개 경계. LLM이 아니다AI 설계서 §1·§6, P-11~P-14
LLM보조 액터 (내부)① 자유서술 → 조건 태그 구조화, ② 집계 사실 → 설명 문장. 결정하지 않는다AI 설계서 §4·§5, FR-05, FR-14
스케줄러·알림보조 액터 (시간 트리거)리마인드 2회, 답변 마감·재확인 마감 도달 시 상태 전이, 링크 만료P-06, P-08, P-09, FR-08, FR-09
외부 메신저보조 액터 (외부 시스템)카카오톡·슬랙·문자/메일·QR로 초대·결과를 나른다. 목업은 공유 시트만시나리오 맵 §1 S2
캘린더보조 액터 (외부 시스템)확정 뒤 .ics 초대FR-18, 시나리오 맵 §5

표기

UML 유즈케이스 다이어그램을 Mermaid 플로차트로 그렸다(Mermaid에 유즈케이스 전용 문법이 없다). 규칙은 UML과 같다.

표기뜻
사각형(보라 바탕)사람 액터. 청록 바탕은 내부 보조 액터, 앰버 바탕은 외부 시스템
둥근 상자 UC-nn유즈케이스 하나. 번호는 문서 전체에서 유일하다
큰 테두리 상자시스템 경계(끼리). 안에 있는 것만 우리가 만든다
실선액터가 그 유즈케이스를 시작하거나 참여한다
점선 «include», 기본 → 포함기본 유즈케이스가 항상 끌어오는 하위 기능
점선 «extend», 확장 → 기본조건이 맞을 때만 덧붙는 기능. 조건은 표의 「대안·예외」에 있다
점선 «일반화»방장은 참가자의 모든 유즈케이스를 물려받는다

상태 표시: [현재] 목업에 구현 · [제품] 서버·인증이 필요한 후속 구현 · [미결] 민수 결정 대기 · [NEXT] 이번 범위 밖(W).


1. 전체 유즈케이스 다이어그램 — 한 장

여섯 묶음(①~⑥)이 시스템 경계 안에 있고, 사람 액터 둘과 보조 액터 다섯이 바깥에서 붙는다. 각 묶음은 아래 §2~§7에서 유즈케이스 단위로 펼친다.

사람 액터내부 보조 액터외부 시스템다른 장에 있는 기본 유즈케이스
끼리 (KKIRI) 시스템 경계«일반화»방장참가자규칙 엔진LLM구조화 · 설명스케줄러 · 알림외부 메신저카톡 · 슬랙 · 문자캘린더① 방 만들기 · 초대UC-01 ~ UC-07② 참가 · 비공개 답변UC-10 ~ UC-19③ 마감 · 조율UC-20 ~ UC-30④ 결과 · 내 리포트UC-31 ~ UC-35⑤ 재확인 · 확정UC-36 ~ UC-44⑥ 예외 처리UC-40 · UC-46 ~ UC-49
다이어그램 1 · Mermaid 원본 보기
묶음화면주 액터끝나는 조건
① 방 만들기 · 초대S0 → S2방장초대 링크가 만들어지고 참여 현황 화면이 열린다
② 참가 · 비공개 답변S3 → S5참가자(방장 포함)본인의 대리인(구조화된 조건 객체)이 제출된다
③ 마감 · 조율S5 → S6방장 · 스케줄러 · 규칙 엔진합의안 1개 + 차선 2개, 또는 후보 0개 처리로 넘어간다
④ 결과 · 내 리포트S7 → S8전원 · 본인공개 결과와 본인 리포트를 각각 봤다
⑤ 재확인 · 확정S8 → S9참가자 → 방장방장이 확정하고 공유·캘린더 초대가 나간다
⑥ 예외 처리곳곳시스템 → 방장후보 0개·마감 미달·LLM 실패 등이 막다른 길 없이 다음 선택으로 이어진다

2. 시나리오 ① 방장이 방을 만들고 초대한다 (S0 → S2)

끼리 — ① 방 만들기 · 초대«extend»«include»«include»«extend»방장스케줄러 · 알림외부 메신저UC-01 결정 주제 고르기UC-01a 준비 중 주제 안내 보기(여행 · 회식 NEXT)UC-02 방 설정하기인원 3~8 · 마감 · 초대 방식 · 이름UC-03 초대 링크 · 코드 만들기공용 링크+6자리 / 이름별 개인 링크UC-04 초대 보내기카톡 · 슬랙 · 문자 · QR · 복사UC-05 참여 현황 보기누가 답했는지만UC-06 수동 리마인드 보내기쿨다운 30분UC-07 자동 리마인드 보내기남은 시간 절반 · 마감 1시간 전
다이어그램 2 · Mermaid 원본 보기
UC이름주 액터사전조건기본 흐름대안 · 예외사후조건상태 · 근거
UC-01결정 주제 고르기방장랜딩(S0) 진입주제 카드 중 「팀 워크숍」 선택 → S1여행·회식 카드는 비활성. 누르면 UC-01a 안내만주제가 방에 고정, 질문 6문항·후보 5개가 그 주제로 결정[현재] FR-01, FR-21(W)
UC-02방 설정하기방장UC-01 완료인원(스테퍼 3~8) → 마감(3h/자정/24h 기본/48h) → 초대 방식(공용/개인) → 방장 이름 → 「초대방 만들기」3 미만·8 초과는 버튼 비활성. 이름 1~12자방 생성. 리마인드 시각(UC-07)과 마감 분기(UC-22)가 이 값으로 계산됨[현재] FR-01, P-01, P-02, P-06. 초대 기본값 공용+코드 (P-07 확정 2026-09-06)
UC-03초대 링크 · 코드 만들기시스템UC-02의 초대 방식공용: 링크 + 6자리 입장 코드, 정원 차면 닫힘. 개인: 이름별 링크, 중복 입장 불가링크 만료 = 답변 마감 시각(P-08)링크·코드가 저장되고 S2에 표시[현재·시뮬레이션] FR-02, P-07, P-08, NF-03
UC-04초대 보내기방장UC-03 완료공유 시트에서 채널 선택 → 외부 메신저로 링크 전달목업은 실제 발송 없이 시트만. QR·복사·캘린더 초안 포함참가자가 UC-10으로 입장 가능[현재·시뮬레이션] 시나리오 맵 §1 S2
UC-05참여 현황 보기방장방 생성슬롯별 「답변 완료 / 작성 중 / 미접속」과 마감까지 남은 시간답변 내용은 절대 표시하지 않음(FR-07). 아직 아무도 없으면 빈 상태 문구—[현재] FR-07, P-12, 화면 시나리오 S2
UC-06수동 리마인드 보내기방장미응답자 존재, 마지막 리마인드 뒤 30분 경과「다시 알리기」 → 미응답자에게만 발송쿨다운 중이면 버튼 비활성과 남은 시간 표시. 공용 링크 방은 방 전체에미응답자에게 알림[현재·시뮬레이션] FR-08, P-06, REMIND_COOLDOWN
UC-07자동 리마인드 보내기스케줄러마감 미도달, 미응답자 존재남은 시간 절반 지점과 마감 1시간 전에 미응답자에게만 발송개인 링크 방은 사람별, 공용 링크 방은 방 전체—[현재·시뮬레이션] FR-08, P-06, advance()

3. 시나리오 ② 참가자가 입장해 6문항에 답한다 (S3 → S5)

방장도 이 시나리오를 참가자로서 그대로 수행한다(«일반화»).

끼리 — ② 참가 · 비공개 답변«일반화»«include»«extend»«extend»«extend»«extend»«extend»«include»«extend»«include»«extend»«include»«extend»참가자방장LLM ① 구조화UC-10 방에 입장하기UC-11 입장 코드 확인하기공용 링크UC-11b 개인 링크 검증하기이름별 링크UC-12 비공개 약속 읽고 이름 넣기1~12자, 중복은 숫자 부여UC-46 정원 초과 · 만료 안내「정원이 찼어요」UC-13 6문항 답하기방식 · 시간 · 목적 1·2순위 · 지역 ·예산UC-14 상한(거부권) 켜기Q2 시간 · Q5 예산UC-15 피하고 싶은 것 적기Q6 자유서술 또는 건너뛰기UC-16 구조화 결과 확인하기「이렇게 이해했어요」UC-16a 목록에서 직접 고르기구조화 실패 시UC-17 대리인 보내기 (제출)UC-17a 임시 저장 · 복원새로고침 · 오프라인UC-19 대기실에서 현황 보기내 조건 요약은 본인만UC-18 답변 고치기협상 시작 전까지
다이어그램 3 · Mermaid 원본 보기
UC이름주 액터사전조건기본 흐름대안 · 예외사후조건상태 · 근거
UC-10방에 입장하기참가자초대 링크 수신, 마감 전링크 열기 → 방 정보 카드(주제·방장·마감) → UC-12공용 링크면 UC-11, 개인 링크면 UC-11b가 붙는다. 정원 초과·만료면 UC-46참가자 슬롯 점유, 방장 현황에 「작성 중」[현재] FR-02, FR-03, P-07, P-08
UC-11입장 코드 확인하기참가자공용 링크 방6자리 코드 입력 → 일치 시 통과불일치 → 오류 문구, 재입력—[현재·시뮬레이션] NF-03, 요구사항 §5
UC-11b개인 링크 검증하기시스템개인 링크 방링크의 이름 슬롯이 비어 있으면 통과이미 쓴 링크 → 중복 입장 불가 안내—[현재·시뮬레이션] P-07
UC-12비공개 약속 읽고 이름 넣기참가자UC-10「답변은 다른 참가자와 방장에게 공개되지 않아요」 확인 → 이름 1~12자 → 「질문 시작하기」같은 방 중복 이름은 뒤에 숫자 자동 부여. 입력 전 버튼 비활성이름이 현황·결과에만 표시. 답변 원문에는 안 붙음[현재] FR-03, 화면 시나리오 S3
UC-136문항 답하기참가자UC-12Q1 방식 → Q2 시간 → Q3 목적 1·2순위 → Q4 지역 → Q5 예산 → Q6 → UC-17선택 전 「다음」 비활성. 「이전」으로 돌아가도 선택 유지선호 4항목 + 목적 가중치가 대리인 조건 객체에 담김[현재] FR-04, P-13, QUESTIONS
UC-14상한(거부권) 켜기참가자Q2 또는 Q5「이 이상은 어려워요」 / 「이 금액을 넘으면 어려워요」 토글 ON1박 2일·「상관없음」 선택 시 토글이 숨겨지고 기존 상한 해제(무의미하므로)그 값보다 긴·비싼 후보가 UC-27에서 탈락[현재] P-14, 시나리오 맵 §2-5
UC-15피하고 싶은 것 적기참가자Q6한 줄 자유서술 → UC-16「건너뛰기」 가능. 제출 전 UC-16 확인이 필수금지 태그가 조건 객체에 담김[현재] FR-05, P-15
UC-16구조화 결과 확인하기참가자 · LLM ①UC-15 원문 있음LLM ①(목업은 키워드 7종)이 태그로 바꾸고 「이렇게 이해했어요」 카드 → 확인·수정태그 0개 또는 신뢰도 0.6 미만 → UC-16a. 원문은 다른 사람 답변과 절대 함께 보내지 않음닫힌 어휘 태그만 저장. 원문은 만료 시각과 함께 별도 보관[현재] 키워드 / [제품] LLM. FR-05, AI 설계서 §4, NF-04
UC-16a목록에서 직접 고르기참가자UC-16 실패태그 7종 목록에서 선택 또는 건너뛰기「다음」은 목록 선택·건너뛰기 뒤에만 활성—[현재] AC-07
UC-17대리인 보내기참가자Q1~Q5 답 완료「내 대리인 보내기」 → 조건 객체 저장 → UC-19제출 실패(오프라인) → UC-17a방장 현황이 「답변 완료」로. 답변 ≥ 3명이면 UC-20 버튼 활성[현재] 화면 시나리오 S4
UC-17a임시 저장 · 복원시스템답변 중브라우저 새로고침 시 복원, 제출 실패 시 로컬 보관 + 재시도——[현재] 부분 / [제품] 서버 저장
UC-18답변 고치기참가자제출 완료, 협상 시작 전대기실 「답변 고치기」 → UC-13으로 복귀 → 재제출협상 시작 뒤에는 버튼 없음조건 객체 교체[현재] FR-06
UC-19대기실에서 현황 보기참가자UC-17「N / M 답변 완료」, 남은 시간, 본인에게만 내 조건 요약전원 완료 시 3초 뒤 자동으로 UC-30. 방장에게는 UC-20 버튼—[현재] 화면 시나리오 S5

4. 시나리오 ③ 마감이 오거나 방장이 시작해 조율한다 (S5 → S6)

끼리 — ③ 마감 · 조율«include»«include»«extend»«extend»«extend»«include»«include»«include»«include»«extend»«extend»«include»방장전원스케줄러규칙 엔진LLM ② 설명UC-20 지금 협상 시작하기답변 ≥ 3명UC-21 미응답 제외 확인하기확인 모달 1회UC-22 답변 마감 처리하기UC-23 자동 시작하기응답 ≥ 3명UC-24 마감 연장하기24시간 · 최대 2회UC-25 방 닫기UC-26 조율 실행하기UC-27 거부권 필터 적용상한 · 금지 태그, 한 명만 걸려도탈락UC-28 만족도 계산 · 순위 정렬최저 → 평균 → 비용 → 일정UC-29 공개 이유 · 설명 만들기2명 이상 공통만UC-29a 템플릿으로 대체하기30초 초과UC-40 후보 0개 처리하기→ §7UC-30 조율 진행 4단계 보기사람 단위 발언 없음
다이어그램 4 · Mermaid 원본 보기
UC이름주 액터사전조건기본 흐름대안 · 예외사후조건상태 · 근거
UC-20지금 협상 시작하기방장답변 ≥ 3명, 마감 전버튼 → UC-21 모달 → 확인 → UC-26전원 완료면 모달 없이 3초 뒤 자동. 답변 < 3명이면 버튼 비활성협상 시작. 이후 UC-18(답변 고치기) 불가[현재] FR-10
UC-21미응답 제외 확인하기방장UC-20, 미응답자 존재「미응답자의 조건은 이번 계산과 재확인에서 제외됩니다」 확인취소 → 대기실 유지. 방장이 대신 답하는 선택지는 없다미응답자는 계산·리포트·재확인 제외, 결과에 「미응답 N명」 배너[현재] P-05, eligibleParticipants
UC-22답변 마감 처리하기스케줄러마감 시각 도달, 협상 미시작응답 수를 세어 분기≥ 3명 → UC-23. < 3명 → 방장에게 UC-24 / UC-25 선택 요청링크 만료(P-08)[현재] FR-09, P-03, advance()
UC-23자동 시작하기시스템UC-22, 응답 ≥ 3UC-21과 같은 제외 규칙으로 UC-26 실행—결과에 미응답 배너[현재] AC-01
UC-24마감 연장하기방장UC-22, 응답 < 3, 연장 횟수 < 2「24시간 연장」 → 미응답자에게 리마인드(UC-07)3회째는 UC-25만 가능마감 시각 +24h, 연장 횟수 +1[현재] P-04, MAX_EXTENSIONS
UC-25방 닫기방장UC-22 미달 또는 UC-40확인 → 방 종료—방 상태 「닫힘」, 원문 삭제(UC-44)[현재] P-04
UC-26조율 실행하기규칙 엔진유효 응답 ≥ 3UC-27 → UC-28 → UC-29 → UC-30. 같은 입력이면 같은 결과생존 후보 0개 → UC-40. 생존 1개 → 결과에 「조건만으로 결정」 배지합의안 1 + 차선 2, 탈락 후보와 사유 주제[현재] FR-11, NF-05, negotiate()
UC-27거부권 필터 적용규칙 엔진UC-26시간 상한·예산 상한·금지 태그를 후보마다 대조. 한 명만 걸려도 탈락—후보 5 → M[현재] P-14, vetoes()
UC-28만족도 계산 · 순위 정렬규칙 엔진UC-27 생존 ≥ 1사람 × 후보 0~100(목적 40·방식 25·지역 20·시간 15, 예산 초과 −5/−10) → 최저 → 평균 → 비용 ↑ → 일정 짧은 순 → ID동점·근소한 차 배지는 UC-49 (P-21 확정 2026-09-06)순위 확정[현재] P-11, P-13, satisfaction(), compareRows()
UC-29공개 이유 · 설명 만들기LLM ② (목업은 템플릿)UC-28집계 사실만 입력(개인 답변·단독 조건 제외) → 공개 이유 ≤ 3문장 + 탈락 사유 1문장/후보 → 숫자·명사 대조 검증30초 초과 또는 검증 실패 → UC-29a. 계산 참여자 3명이면 공개 이유·탈락 사유 주제·집계 수치를 만들지 않고 일반 설명만 (P-19 확정)2명 이상 공통 조건만 구체화, 단독은 건수만[현재] 템플릿 / [제품] LLM. FR-13, FR-14, P-12, AI 설계서 §5
UC-29a템플릿으로 대체하기시스템UC-29 실패reasons() · concessions() 템플릿 문장—결과에 「설명은 간략하게 제공돼요」 배지[현재] P-16, LLM_TIMEOUT_MS
UC-30조율 진행 4단계 보기전원UC-26 진행 중「응답 N건 구조화 → 거부권 N건 적용, 후보 5→M → 최저 만족도 우선 비교 → 공통 이유 생성」끝나면 자동으로 UC-31—[현재] FR-12, AC-03, makeLog()

5. 시나리오 ④ 결과와 내 리포트를 본다 (S7 → S8)

끼리 — ④ 결과 · 내 리포트«include»«extend»«extend»«include»전원본인외부 메신저UC-31 합의 결과 보기최종안 · 공통 이유 · 선호 차이 집계 ·공정성UC-31a 배너 · 배지 보기미응답 N명 · 규칙 설명 · 조건만으로결정 · 재조율 1회UC-35 차선 · 탈락 후보 보기차선 2개 · 탈락 사유 주제UC-34 결과 공유하기UC-32 내 대리인 리포트 보기지켜진 조건 · 선호 차이 · 1순위 반영· 내 만족도UC-33 개인 토큰으로 인증하기URL만 아는 타인 차단
다이어그램 5 · Mermaid 원본 보기
UC이름주 액터사전조건기본 흐름대안 · 예외사후조건상태 · 근거
UC-31합의 결과 보기전원UC-26 완료최종안 카드 · 공통 이유 · 선호와 다른 지점(2명 이상 집계) · 지켜진 조건 건수 · 공정성(최저/평균) → UC-35개인 조건·정확한 상한·단독 선호 내용은 표시하지 않음. 단독은 「그 외 단독 선호 차이 N건」. 계산 참여자 3명이면 공통 이유·조건별 인원수·단독 건수·최저/평균 수치 숨김 (P-19 확정)재확인(UC-36) 진입 가능[현재] FR-13, P-12, AC-04
UC-31a배너 · 배지 보기시스템해당 조건「미응답 N명 조건 미반영」 · 「규칙 설명」 · 「조건만으로 결정」 · 「재조율 1회 반영」조건 없으면 표시 없음—[현재] P-05, P-16, 시나리오 맵 §3
UC-35차선 · 탈락 후보 보기전원UC-31차선 2개(최저·평균 포함), 탈락 후보마다 사유 주제(예산 상한 1건 · 술자리 제외 1건)누구의 조건인지는 비공개—[현재] FR-13, dead
UC-34결과 공유하기참가자UC-31공유 시트 → 외부 메신저공유 내용은 공개 결과만. 리포트 링크는 포함되지 않음—[현재·시뮬레이션] FR-18
UC-32내 대리인 리포트 보기본인UC-33 통과내 상한·금지가 지켜졌는지 · 내 선호와 다른 항목 · 내 1순위 반영 여부 · 내 만족도미응답자에게는 리포트 없음(P-05). 다른 사람 리포트는 어떤 경로로도 볼 수 없음—[현재] FR-15, AC-05, receipt()
UC-33개인 토큰으로 인증하기시스템리포트 요청개인 토큰(/p/{token}) 검증 → 본인 리포트만토큰 없음·불일치 → 접근 거부. 목업은 참가자 전환 패널로 시뮬레이션—[제품] FR-19, NF-03

6. 시나리오 ⑤ 최종 재확인과 확정 (S8 → S9)

끼리 — ⑤ 재확인 · 확정«일반화»«extend»«extend»«extend»«include»«include»«include»«include»«extend»«extend»«include»참가자방장스케줄러LLM ① 구조화캘린더외부 메신저UC-36 최종 재확인 응답하기UC-36a 동의하기UC-36b 조건부 동의하기실행 조건 한 줄 필수UC-36c 다시 조율 요청하기새 금지 조건 · 요청자 비공개UC-16 구조화 결과 확인하기UC-37 재확인 마감 처리하기24시간 · 미응답 = 기권UC-38 다시 조율하기방당 1회UC-26 조율 실행하기UC-39 결정 확정하기UC-39a 방장 이탈 시 미확정 종료24시간 유예 · 자동 확정 없음UC-41 확정 카드 · 공유UC-42 캘린더 초대 만들기 (.ics)UC-43 실행 체크리스트 보기예약 · 일정 공유 · 실행 조건 N건UC-44 원문 삭제하기확정·종료 시 즉시
다이어그램 6 · Mermaid 원본 보기
UC이름주 액터사전조건기본 흐름대안 · 예외사후조건상태 · 근거
UC-36최종 재확인 응답하기참가자(유효 응답자만)UC-31 결과 있음, 재확인 마감 전리포트 아래 3택 라디오 카드 중 하나 → 제출미응답자(P-05)는 재확인 대상 아님. 24시간 미응답 → 기권(UC-37)집계 +1 (동의/조건부/재조율)[현재] FR-16, validateRatify
UC-36a동의하기참가자UC-36입력 없음—동의 +1[현재]
UC-36b조건부 동의하기참가자UC-36실행 조건 한 줄(예: 시작 오후 1시 이후) → 제출빈 값 → 「실행 조건을 적어주세요」 차단조건부 +1, 문구가 결과·확정 카드 「실행 조건」과 UC-43에 표시[현재] AC-06
UC-36c다시 조율 요청하기참가자UC-36, 방의 재조율 미사용새 금지 조건 자유서술 → UC-16 구조화 확인 → 제출빈 값·구조화 실패 → 제출 불가(권한은 유지). 방이 이미 1회 썼으면 버튼 비활성 「방당 한 번만」재조율 +1, 요청자 비공개. 방장에게 UC-38 버튼 활성[현재] P-10, AC-06
UC-37재확인 마감 처리하기스케줄러결과 후 24시간미응답을 기권으로 집계미처리 재조율 요청이 있으면 UC-38 먼저 처리해야 하며 그 상태로 UC-39 불가(결정서 §2, 2026-09-06 정정). 방장이 24시간 안에 확정하지 않으면 UC-39aUC-39 가능(요청 0건일 때)[현재] FR-17, P-09, RATIFY_HOURS
UC-38다시 조율하기방장재조율 요청 ≥ 1, 방당 미사용요청자 조건에만 새 태그 추가 → UC-26 재실행 → 새 결과, 재확인 집계 초기화두 번째부터 버튼 비활성결과에 「재조율 1회 반영」 배너[현재] P-10, renegotiate()
UC-39결정 확정하기방장전원 응답 또는 UC-37 마감, 미처리 재조율 요청 없음「확정하기」 → UC-41 · UC-42 · UC-44전원 명시 동의가 확인된 경우에만 청록 「전원 동의」 상태. 그 외는 중립 「방장 확정 · 전원 동의 미확인」(통합 스타일 보드 규칙). 방장이 24시간 안에 확정하지 않으면 UC-39a 미확정 종료 (P-22 확정)방 상태 「완료」. 종료 후 7일(168h) 읽기 전용, 이후 삭제·토큰 폐기 (P-18 확정)[현재] FR-17, FR-18, 스타일 보드 §1 #4~6
UC-39a방장 이탈 시 미확정 종료스케줄러UC-37 마감 후 방장 확정 유예 24시간 경과, 또는 생성 후 7일(168h) 수명 상한 도달방을 「미확정 종료」로 닫고 UC-44 실행. 자동 확정은 하지 않는다—미확정 종료는 완료·동의 지표에 넣지 않음. 읽기 전용 7일(P-18)[제품] P-22 (확정 2026-09-06)
UC-41확정 카드 · 공유방장UC-39최종안 카드 + 실행 조건 N건 → 외부 메신저 공유——[현재] FR-18
UC-42캘린더 초대 만들기시스템UC-39.ics 생성 → 캘린더——[현재·시뮬레이션] FR-18
UC-43실행 체크리스트 보기방장UC-39장소 예약 · 일정 공유 · 실행 조건 N건 체크예약 연결은 [NEXT] FR-22—[현재] 시나리오 맵 §5
UC-44원문 삭제하기스케줄러결정 완료 또는 방 닫힘확정 또는 방 종료 시 원문(피할 것·재조율 사유·조건부 동의 문장) 즉시 삭제, 구조화 태그만 보관미완료 방은 생성 후 7일(168h)에 미확정 종료와 함께 삭제. 종료 후 7일에 결과·구조화 조건·리포트·이벤트도 삭제하고 토큰 폐기(P-18)로그·저장소·캐시·복구본에 원문 없음(출시 전 검증)[제품] P-17 · P-18 (확정 2026-09-06), NF-04

7. 시나리오 ⑥ 예외 — 막다른 길이 없어야 한다

정상 흐름의 기본 유즈케이스에 «extend»로 붙는 예외를 한 장에 모았다. 각 예외는 반드시 다음 선택지로 이어진다.

끼리 — ⑥ 예외 처리«extend»«extend»«extend»«extend»«extend»«extend»«extend»«extend»«extend»«extend»«extend»방장참가자규칙 엔진UC-40 후보 0개 처리하기탈락 사유 주제 집계UC-40a 상한 완화 익명 동의요청하기누구 조건인지 비공개UC-25 방 닫기UC-24 마감 연장하기3회째는 닫기만UC-46 정원 초과 · 만료 안내UC-16a 목록에서 직접 고르기UC-29a 템플릿으로 대체하기UC-47 재조율 2회째 차단「방당 한 번만」UC-48 조건부 빈 값 차단「실행 조건을 적어주세요」UC-49 동점 · 근소한 차 표시dMin·dMean 기준UC-26 조율 실행UC-22 답변 마감UC-10 방 입장UC-16 구조화 확인UC-29 설명 생성UC-36c 재조율 요청UC-36b 조건부 동의UC-28 순위 정렬
다이어그램 7 · Mermaid 원본 보기
UC예외붙는 곳발생 조건시스템이 하는 일다음 선택지상태 · 근거
UC-40후보 0개 처리하기UC-26거부권 필터 뒤 생존 후보 0어떤 조건 주제가 몇 개 후보를 지웠는지 집계해 표시(누구 조건인지 비공개)UC-40a 또는 UC-25[현재] FR-20, negotiate() ok:false
UC-40a상한 완화 익명 동의 요청하기UC-40방장이 요청해당 상한을 낸 사람에게만 완화 여부를 익명으로 묻고, 동의 시 UC-26 재실행동의 없음 → UC-25[현재] 안내 UI / [제품] 요청 흐름. 대리인 완화 라운드는 [NEXT] FR-23
UC-24마감 연장하기UC-22마감 시 응답 < 3+24h, 리마인드연장 2회 뒤에도 미달 → UC-25만[현재] P-04
UC-46정원 초과 · 만료 안내UC-10공용 링크 정원 초과 / 마감 지남 / 개인 링크 재사용「정원이 찼어요」 · 「이 방은 마감됐어요」마감 지남이면 결과 화면 또는 「새 결정 시작하기」[현재] 문구 / [제품] 검증. 요구사항 §5
UC-16a목록에서 직접 고르기UC-16태그 0개 · 신뢰도 < 0.6「이해하지 못했어요 — 목록에서 골라주세요」목록 선택 또는 건너뛰기[현재] AC-07
UC-29a템플릿으로 대체하기UC-2930초 초과 · 검증 실패템플릿 문장 + 배지결과는 그대로 진행[현재] P-16
UC-47재조율 2회째 차단UC-36c방의 재조율 1회 사용됨버튼 비활성 + 「방당 한 번만」동의 / 조건부 동의[현재] P-10, AC-06
UC-48조건부 빈 값 차단UC-36b실행 조건 빈 값제출 차단 + 문구조건 입력 또는 동의 선택[현재] AC-06
UC-49동점 · 근소한 차 표시UC-28거부권 통과 후보 ≥ 2dMin·dMean(엔진 정렬 값) 둘 다 0 → 「만족도 동점」, 둘 다 1 미만(동점 제외) → 「근소한 차」 배지. 정렬은 P-11 그대로생존 후보 1개면 표시 없음[제품] P-21 (확정 2026-09-06)

8. 주제 확장 시나리오 — NEXT 범위의 확장점

여행·회식·모임·선물은 현재 범위 밖(FR-21 W)이다. 다섯 활용 시나리오(쏠, docs/use-cases)가 본서비스에 들어올 때 기존 유즈케이스의 어디에 «extend»로 붙는지만 표시한다. 결정 규칙(UC-27·UC-28)은 주제가 바뀌어도 그대로다.

끼리 — 주제 확장 (NEXT)«extend»«extend»«extend»«extend»«extend»방장LLM ③ 후보 생성 · ④ 완화 라운드예약 · 일정 서비스UC-01 결정 주제 고르기UC-13 6문항 답하기UC-26 조율 실행UC-40 후보 0개 처리UC-43 실행 체크리스트UC-50 주제 고르기 — 여행 · 회식 ·모임 · 선물UC-51 주제별 문항 세트 답하기AI 초안 → 방장 검토 뒤 사용UC-52 후보안 생성하기고정 5개 대신UC-53 대리인 완화 제안 라운드UC-54 예약 · 일정 등록 연결하기
다이어그램 8 · Mermaid 원본 보기
UC확장붙는 곳무엇이 달라지나변하지 않는 것상태 · 근거
UC-50주제 고르기(여행·회식·모임·선물)UC-01랜딩 카드 활성화, 주제별 아이콘 타일 색방 설정(UC-02)·초대(UC-03)[NEXT] FR-21, 스타일 보드 #14
UC-51주제별 문항 세트UC-13문항 수·선택지·상한 항목이 주제별로. AI가 초안을 내고 방장이 검토한 뒤 사용선호/상한/금지의 3분류, UC-16 구조화 확인[NEXT] 요구사항 §1, 쏠 가이드 AI 질문 UX
UC-52후보안 생성UC-26고정 5개 대신 LLM ③이 후보를 만들고 태그를 붙임. 태그 어휘는 UC-16과 동일해야 함UC-27·UC-28 결정 규칙[NEXT] AI 설계서 §7, P-15
UC-53대리인 완화 제안 라운드UC-40후보 0개일 때 LLM ④가 각 상한에 「한 단계 완화」를 제안, 본인 동의 뒤 재계산익명·본인 동의 필수[NEXT] FR-23
UC-54예약·일정 등록 연결UC-43확정 뒤 예약·캘린더 서비스로 바로 연결UC-42 .ics는 유지[NEXT] FR-22

9. 액터 × 유즈케이스 매트릭스

● 시작한다 · ○ 참여·수신한다 · — 관여 없음. 방장 열은 참가자 열을 물려받은 것(일반화)은 빼고 방장 고유 권한만 적었다.

UC이름방장참가자규칙 엔진LLM스케줄러외부 메신저캘린더
UC-01결정 주제 고르기●——————
UC-02방 설정하기●———○——
UC-03초대 링크 · 코드 만들기○——————
UC-04초대 보내기●○———○—
UC-05참여 현황 보기●——————
UC-06수동 리마인드●○———○—
UC-07자동 리마인드—○——●○—
UC-10방에 입장하기—●—————
UC-12약속 읽고 이름 넣기—●—————
UC-136문항 답하기—●—————
UC-14상한(거부권) 켜기—●—————
UC-15피하고 싶은 것 적기—●—————
UC-16구조화 결과 확인하기—●—○ ①———
UC-17대리인 보내기—●—————
UC-18답변 고치기—●—————
UC-19대기실 현황 보기—●—————
UC-20지금 협상 시작하기●—○————
UC-22답변 마감 처리○———●——
UC-24마감 연장하기●○——○——
UC-25방 닫기●○—————
UC-26조율 실행하기——●○ ②———
UC-30조율 진행 보기—●—————
UC-31합의 결과 보기—●—————
UC-32내 리포트 보기—● 본인—————
UC-34결과 공유하기—●———○—
UC-36최종 재확인 응답—●—○ ① (재조율)———
UC-37재확인 마감 처리—○——●——
UC-38다시 조율하기●○○○ ②———
UC-39결정 확정하기●○———○○
UC-40후보 0개 처리○○●————
UC-44원문 삭제————●——

10. 화면 ↔ 유즈케이스 대응 (쏠 A안 화면설계서 27개 화면 기준)

기준은 쏠의 A안 화면설계서 화면 ID 27개(S0 · S1 · S1Q · S2 · S3 · S4-1~S4-6 · S4R · S5 · S5H · S6 · S7 · S8 · S7B · S7C · S9 · E1~E5 · M1 · M2, https://kkiri-plan.pages.dev/screen-design-a/)다. 이 문서의 다이어그램 제목에 쓴 S0→S9는 화면 시나리오(KKIRI_SCREEN_SCENARIO.md)의 10개 화면 번호이므로, 셋째 열에 교차 표기했다. 「시작되는 UC」는 그 화면의 주 행동이 트리거하는 것, 「결과가 보이는 UC」는 다른 액터(엔진·스케줄러·LLM·다른 사람)가 실행한 결과가 그 화면에 나타나는 것이다.

쏠 화면역할이 문서 S 번호이 화면에서 시작되는 UC이 화면에 결과가 보이는 UC비고
S0 시작공통S0 랜딩UC-01, UC-01a—여행·회식 카드는 UC-50 [NEXT] 안내만
S1 방 만들기방장S1 설정UC-02—초대 기본값 P-07 (§11)
S1Q AI 질문 초안 검토방장 · 확장(없음)UC-51UC-50[NEXT] MVP 고정 6문항 흐름에는 없음
S2 초대하기방장S2 초대 · 현황 (앞부분)UC-04UC-03참여 현황은 S5H로 분리됨. 공유 시트는 M2와 같은 패턴
S3 초대 입장 · 비공개 안내공통S3 약속 · 이름UC-10, UC-11, UC-11b, UC-12UC-46 (→E1)
S4-1 내 답변 1 · 방식본인S4 질문 6문항UC-13UC-17a
S4-2 내 답변 2 · 시간본인S4UC-13, UC-14UC-17a선호와 상한 분리 (P-14)
S4-3 내 답변 3 · 목적본인S4UC-13UC-17a1·2순위 중복 불가
S4-4 내 답변 4 · 지역본인S4UC-13UC-17a
S4-5 내 답변 5 · 예산본인S4UC-13, UC-14UC-17a「상한 없음」은 P-20 페널티만
S4-6 내 답변 6 · 피할 것본인S4UC-15, UC-16a (목록에서 고르기)UC-17a
S4R 구조화 확인 · 제출본인S4 (제출)UC-16, UC-16a, UC-17UC-16 (LLM ① 결과)해석 실패 상태에서는 제출 불가 = UC-16a 강제
S5 모임 홈 · 대기공통S5 대기실UC-18, UC-19UC-07, UC-21 (미응답 제외 안내), UC-22, UC-23
S5H 진행 관리방장S2 초대 · 현황 (뒷부분) + S5UC-05, UC-06, UC-20, UC-21, UC-24, UC-25UC-07, UC-22이 문서 S2의 현황 부분이 여기로 옮겨진 것
S6 조율 진행공통S6 조율 중—UC-26, UC-27, UC-28, UC-29, UC-29a, UC-30, UC-40 (→E3), UC-52 [NEXT]
S7 결과 · 후보 비교공통S7 합의 결과UC-34, UC-36 (진입)UC-31, UC-31a, UC-35, UC-49재확인 중 / 전원 동의 / 방장 확정 상태 = 스타일 보드 §1 #4~6
S8 내 리포트본인S8 내 리포트 · 재확인 (앞부분)UC-32UC-33 (권한 만료 → E4)
S7B 최종 의견계산 대상 참가자S8 (뒷부분)UC-36, UC-36a, UC-36b, UC-36cUC-47, UC-48이 문서 S8의 재확인 3버튼이 여기로 분리된 것
S7C 결정 확정 확인방장S9 (앞부분)UC-38, UC-39UC-37 (집계)확정 전 확인창. 이 문서에는 S9 안에 있었음
S9 결정 완료공통S9 결정 완료UC-41, UC-42, UC-43UC-39, UC-39a, UC-44열람 기간 P-18
E1 입장할 수 없음공통(S3 예외)—UC-11 (코드 오류), UC-46
E2 인원 미달 · 마감방장(S2 · S5 예외)UC-24, UC-25UC-22
E3 후보 없음공통(S7 예외)UC-25 (방장 방 닫기), UC-40a [제품]UC-40, UC-53 [NEXT]쏠 명세대로 상한 완화 요청은 작동 버튼이 아니라 안내만
E4 본인 확인 필요공통(S8 예외)UC-33—
E5 연결 오류 · 재시도공통(공통 예외)UC-17a—새 UC 없음. UC-02·16·17·36·39의 「대안/예외」 열
M1 작성 중 이탈 확인공통———UC-02·13·15·18·36의 「대안/예외」 열
M2 공유 · 캘린더공통S9 (공유)UC-34, UC-41, UC-42UC-54 [NEXT]

덮임 확인: 유즈케이스 62개 중 이 표에 한 번 이상 나오는 것은 62개다(스크립트로 셌다). E5·M1은 화면이지만 새 UC를 만들지 않고 기존 UC의 예외 흐름으로 처리한다.

이 문서 S 번호 → 쏠 화면 (역방향)

이 문서 S 번호쏠 화면갈라진 이유
S0 랜딩S0같음
S1 설정S1 (+ S1Q 확장)S1Q는 주제 확장 때만
S2 초대 · 현황S2 + S5H쏠은 초대(공유)와 진행 관리(현황·조기 시작·연장)를 분리
S3 약속 · 이름S3 (+ E1)예외를 별도 화면으로
S4 질문 6문항S4-1 ~ S4-6 + S4R (+ M1)문항당 1화면, 구조화 확인을 별도 화면으로
S5 대기실S5 (+ S5H 방장, E2)방장 관리 동작을 S5H로
S6 조율 중S6 (+ E3, E5)후보 0개·연결 오류를 별도 화면으로
S7 합의 결과S7같음
S8 내 리포트 · 재확인S8 + S7B (+ E4)리포트 열람과 최종 의견 제출을 분리
S9 결정 완료S7C + S9 + M2확정 확인창과 공유 시트를 분리

정합성 점검에서 나온 차이 3건 (문서를 고치지 않고 표기만 맞춘 것)

  1. UC-40a(상한 완화 익명 동의 요청)는 이 문서에서 [현재] 안내 UI / [제품] 요청 흐름인데, 쏠 E3는 「작동 버튼으로 제공하지 않는다」로 더 보수적이다. 화면 기준은 쏠을 따른다: E3에는 안내만, 요청 흐름은 [제품].
  2. 쏠 S7B는 「결과 버전이 바뀌면 이전 동의 재사용 금지」를 제안한다. 이 문서 UC-38(다시 조율하기)의 사후조건에는 없다. 채택하면 UC-38 사후조건에 「기존 재확인 응답 초기화」 한 줄이 추가된다(제안, 미반영).
  3. 쏠 S1Q(AI 질문 초안 검토)는 UC-51과 같은 기능이지만 이 문서 다이어그램 8(주제 확장)에서는 방장 검토 단계를 노드로 그리지 않았다. 확장 범위이므로 그대로 둔다.

11. 세는 법 · 미결 · 근거

개수: 유즈케이스 62개 = 기본 42개(UC-01~07, UC-10~44) + 하위 변형 11개(a/b/c) + 예외 4개(UC-46~49) + 확장 5개(UC-50~54). 상태별로는 [현재] 53개(그중 UC-16·17a·29·40a·46 다섯은 LLM·서버 부분만 [제품]), [제품] 4개(UC-33, UC-44, UC-39a, UC-49), [NEXT] 5개(UC-50~54), [미결] 0개. UC-39a · UC-49 · UC-02 초대 기본값 · UC-44 보관 기간은 2026-09-06 결정(P-07 · P-17 · P-18 · P-21 · P-22)으로 값이 정해졌다. 이 숫자는 문서의 UC 번호와 명세 표 상태 열을 스크립트로 세어 얻었다.

이 문서가 새로 정한 것은 없다. 모든 UC는 요구사항 정의서의 FR/P 번호나 코드 함수에 대응한다. 새로 이름 붙인 것은 UC-11b(개인 링크 검증)·UC-17a(임시 저장)·UC-40a(상한 완화 요청)·UC-46~49(예외 이름)뿐이고, 동작 자체는 기존 문서에 있던 것이다.

결정 반영(2026-09-06): 초대 기본값(P-07) · 원문 보관(P-17, UC-44) · 종료 후 열람(P-18) · 소수 응답 보호(P-19, UC-29 · UC-31) · 동점 표시(P-21, UC-49) · 방장 이탈(P-22, UC-39a)은 민수 위임으로 쏠이 결정했다(OUTBOX/KKIRI/KKIRI_POLICY_DECISIONS_2026_09_06.md, https://kkiri-plan.pages.dev/docs/policy-decisions). 이 문서에는 값만 옮겼고 새로 정한 것은 없다. UC-37 대안 문구는 결정서와 충돌해 정정했다.

근거