본문으로 건너뛰기
Centralby 디자인 시스템

패턴

로그인과 데이터 동의 분리

로그인은 openid·email·profile만. 데이터 접근은 3줄 범위 시트 뒤 별도 동의. 거절해도 계정은 남고, 끊기·멈추기·지우기는 서로 다른 버튼.

두 번의 동의

로그인과 데이터 접근 동의를 분리한다. 수집은 사용자가 승인한 범위와 저장 조건에서만 시작한다.

두 번의 동의
로그인데이터 접근
언제가입 /signup첫 연결 /start, 범위 시트 뒤
Google 범위openid email profile읽기 전용 Calendar(증분 동의)
거절하면가입 안 됨(이메일 가입은 가능)계정은 남는다. 홈은 not-collected + CTA 1개

묶어 두면 첫 화면에 민감 범위 동의가 뜨고, 여기서 이탈하면 계정도 남지 않는다. 탭 하나가 늘지만 거절한 사용자도 계정이 남는다.

범위 시트

  • 세 줄만: 읽는 것 / 하지 않는 것(쓰기·발송) / 기간. 네 번째 줄은 없다.
  • Google로 넘어가기 전 한 줄: Google 화면에는 위보다 넓은 권한이 표시될 수 있다.
  • 버튼은 누른 뒤 일어날 일을 말한다: “Google로 이동”. 보조는 “나중에”.
  • 시트는 불투명하고 빛이 없다. 시트·대화상자는 짧은 작업에만.

실제 컴포넌트: 실제 ConsentSheet

  • 일정의 제목과 시간만 읽어요.
  • 일정을 만들거나 바꾸지 않아요. 참석자·장소·설명은 읽지 않아요.
  • 지난 30일만 가져와요. 언제든 연결을 끊고 지울 수 있어요.

Google 화면에는 위보다 넓은 권한이 표시돼요. 가져오는 것은 위 범위뿐이에요.

Google Calendar 연결

  • 일정의 제목과 시간만 읽어요.
  • 일정을 만들거나 바꾸지 않아요. 참석자·장소·설명은 읽지 않아요.
  • 지난 30일만 가져와요. 언제든 연결을 끊고 지울 수 있어요.

Google 화면에는 위보다 넓은 권한이 표시돼요. 가져오는 것은 위 범위뿐이에요.

작성 중인 내용을 버릴까요?

지금 닫으면 입력한 내용이 저장되지 않아요.
열면 제목에 초점, Esc·“나중에”로 닫으면 “가져오기” 버튼으로 초점이 돌아온다. 네이티브 <dialog>.

거절해도 계정은 남는다

Google에서 동의 없이 돌아오면 오류가 아니다. 시트 없이 한 줄만 보여주고, 초점은 “가져오기”로 돌아온다.

실제 컴포넌트: ConsentSheet state="declined-return"

연결하지 않았어요. 계정은 그대로이고, 나중에 나 탭에서 연결할 수 있어요.

멈추기·끊기·지우기

수집 중단, 접근 철회 후 보관본 유지, 완전 삭제는 서로 다르다. 그래서 결과 문장이 붙은 세 개의 다른 버튼이고, 메뉴 한 줄로 숨기지 않는다. 센트럴바이에서 지워도 원래 메일·문서는 지워지지 않는다.

실제 컴포넌트: 실제 DataControls

데이터 관리

  • 새 기록을 읽지 않아요. 읽어 온 기록은 남아요.

  • Google Calendar 접근을 끊어요. 읽어 온 기록은 센트럴바이에 남아요.

  • 센트럴바이의 기록을 모두 지워요. 원래 메일과 문서는 지워지지 않아요.

Google Calendar 연결을 해제할까요?

Google Calendar 접근을 끊어요. 읽어 온 기록은 센트럴바이에 남아요.
  • 이렇게① 읽기 일시 중지(기록 유지, 되돌릴 수 있음) ② 연결 해제(보관본은 남음, 되돌릴 수 있음) ③ 완전 삭제(되돌릴 수 없음, 확인 대화상자는 위험 색).
  • 이렇게 하지 않기“연결 해제”를 삭제처럼 말하지 않는다. 완전 삭제가 센트럴바이의 유일한 파괴 동사다.
  • 이렇게 하지 않기외부 AI는 서버 설정, 사용자 동의, 자료 범위와 비용 조건을 모두 충족할 때만. 기본 정리는 외부 AI 없이 된다.

근거 문서: DIRECTION.md §1.1 · round-2/kenji.md §2 · round-2/wei-ting.md §3 · PRODUCT_BRIEF.md 개인정보와 AI · contracts/evidence.md ConsentSheet · DataControls