AutoColor for Calendar — 서비스 이용약관
본 문서는 운영자가 self-publish 하는 서비스 이용약관의 publish-ready 본문이며, 2026-05-05 자 Legal Reviewer Round 1 redline + Round 2 self-publish 보완이 반영되어 있다. 본 약관은 코드 / 아키텍처 ground truth (E2E 백엔드 의존, halt-on-failure, 색상 ownership marker, LLM quota, retry/DLQ 정책) 에 기반한 사실 기술 위에, 한국 「약관의 규제에 관한 법률」(약관규제법), 「전자상거래 등에서의 소비자보호에 관한 법률」, 「전자문서 및 전자거래 기본법」 등의 표준 약관 형식을 충족 한다. 본 약관은 외부 변호사 검토를 받지 않은 sub-agent self-review 산출물이며, 운영자가 publish 전 §12 표의 식별 정보 (사업자 등록 정보, 대표자명, 주소) 만 본인 정보로 교체하면 된다.
0. 목적 및 정의 (Purpose & Definitions)
0.1 목적
본 약관(이하 "본 약관")은 AutoColor for Calendar(이하 "서비스") 의 운영자 (이하 "회사") 와 회원(이하 "이용자") 사이의 서비스 이용에 관한 권리·의무 및 책임사항, 기타 필요한 사항을 규정함을 목적으로 한다. 본 약관 시행일 현재 회사는 개인 운영자(자연인) 형태로 서비스를 운영하며, 사업자 등록 완료 시 §12 의 사업자 정보를 갱신하고 §9 의 절차에 따라 통지한다.
0.2 정의
본 약관에서 사용하는 용어의 정의는 다음과 같다.
- **"서비스"**란 회사가 Google Workspace Add-on 으로 제공하는 Google Calendar 자동 색상 분류 서비스 일체를 말한다.
- **"이용자"**란 본 약관에 동의하고 회사가 제공하는 서비스를 이용하는 회원을 말한다.
- **"카테고리"**란 이용자가 직접 정의한 색상 분류 규칙(이름·키워드· 색상의 묶음)을 말한다.
- **"AI 분류 / LLM 분류"**란 규칙 기반 매칭이 실패한 이벤트에 대해 OpenAI
의
gpt-5.4-nano모델을 호출해 카테고리를 추정하는 보조 기능을 말한다.
0.3 약관의 효력 및 변경
본 약관은 서비스 이용을 신청한 자가 회사의 안내 절차에 따라 본 약관에 동의 하고, 회사가 정한 절차에 따라 회원가입을 완료한 시점에 효력을 발생한다. 본 약관의 변경 및 통지 절차는 §9 에 따른다.
1. 서비스 정의
본 서비스는 Google Workspace Add-on으로 동작하며, Google Calendar 이벤트에
사용자 정의 규칙(키워드 매칭) 또는 AI(LLM) 분류로 자동 색상을 부여한다.
Cloudflare Workers 기반 백엔드와 Supabase PostgreSQL을 사용하며, AI 단계는
선택적 OpenAI gpt-5.4-nano 호출로 수행된다 (docs/project-overview.md).
2. 이용자격 및 회원가입
2.1 이용자격
다음 요건을 모두 충족하는 자는 본 서비스를 이용할 수 있다.
- 유효한 Google 계정을 보유한 자.
- 본 약관 및 개인정보처리방침에 동의하고 Google Workspace Add-on 설치를 완료한 자.
- 만 14세 이상인 자(한국 「개인정보 보호법」 제22조의2 — 만 14세 미만 아동의 가입은 차단되며, EU 거주자는 만 16세 이상, 미국 거주자는 COPPA 에 따라 만 13세 이상 — 자세한 내용은 개인정보처리방침 §9 참조).
2.2 회원가입의 거절·해지
회사는 다음의 경우 회원가입을 거절하거나 사후 회원자격을 해지할 수 있다.
- 가입 신청자가 만 14세 미만임이 확인된 경우.
- 가입 신청자가 본 약관 위반으로 과거에 회원자격을 상실한 자인 경우(다만, 회원자격 상실 후 1년이 경과한 자로서 회사의 회원 재가입 승낙을 받은 경우 는 예외).
- 허위 정보를 기재하거나 타인의 명의를 도용한 경우.
- 기타 회원으로 등록하는 것이 본 서비스의 기술상 현저히 지장이 있다고 판단되는 경우.
2.3 회사의 가입 거절·해지 통지
회사는 위 §2.2 사유로 가입을 거절하거나 회원자격을 해지하는 경우 그 사유 를 명시하여 이용자에게 통지한다(약관규제법 §3 ②항).
3. 권한 (Scope)
서비스는 다음 OAuth scope을 요청한다 (src/config/constants.ts /
gas/appsscript.json):
openid— OpenID Connect 인증.email— 사용자 이메일.https://www.googleapis.com/auth/calendar— 캘린더 읽기.https://www.googleapis.com/auth/calendar.events— 이벤트 색상 변경.
각 권한이 왜 필요한지에 대한 사용자용 설명은 docs/assets/marketplace/scope-justifications.md에 정리되어 있다.
서비스는 본 목록 외의 scope을 opportunistic하게 요청하지 않는다 (Principle
3 — Scope Minimization, docs/security-principles.md).
4. 사용자 의무
- 본인 Google 계정으로만 접근.
- 자동화 도구 / 스크립트로 본 서비스의 API를 우회 호출하지 않는다.
- 다른 사용자 / 본 서비스 운영을 방해하는 행위 금지.
- 색상 분류 규칙(카테고리 / 키워드)은 본인이 등록·관리하며, 분류 결과의 업무적 정확성은 사용자가 검토한다 (서비스는 분류 결과를 보장하지 않는다 — §5 참조).
5. 서비스의 한계 및 회사의 책임
5.1 E2E 백엔드 의존
본 서비스는 Cloudflare Workers 백엔드 + Supabase 에 전적으로 의존한다. 백엔
드 통신 실패 시 해당 이벤트의 색상 처리는 silent skip 자동으로 보류
되며, 다음 동기화 주기에 재시도된다. 본 서비스는 이용자 단말 측의 로컬
fallback 을 제공하지 않으며, 이는 PII 가 우회 경로로 처리되지 않도록 하기
위한 보안상 설계이다(docs/architecture-guidelines.md "Halt on Failure").
OAuth invalid_grant(refresh token 회수) 사유 발생 시에만 예외적으로 이용
자에게 재로그인 안내가 표시된다.
5.2 수동 색상 변경의 보존
이용자가 캘린더에서 직접 변경한 이벤트 색상은 본 서비스가 덮어쓰지 않는다
(docs/architecture-guidelines.md §5.4 / src/CLAUDE.md "Color ownership
marker (§5.4)"). 색상 소유권은 extendedProperties.private 에 저장된 3-key
marker 로 판별된다.
5.3 LLM 일일 quota
LLM 분류는 이용자별 일일 호출 한도(기본 200회/일, 운영상 변경 가능)에 의해
제한된다(src/services/llmClassifier.ts). 한도 초과 시 해당 이벤트는 색상
변경 없이 다음 동기화 주기까지 대기하며, 회사는 이 한도 내에서 합리적
서비스 수준을 유지한다.
5.4 재시도 / DLQ
일시적 오류(네트워크 / API 5xx / 429) 는 자동 재시도되며(Exponential
backoff), 영구 실패는 Dead Letter Queue 로 이송되어 운영자 진단 대상이
된다(src/services/calendarSync.ts). 이용자 측 처리는 다음 동기화 시점에
자동 재개된다.
5.5 책임 제한 (Limitation of Liability)
5.5.1 회사의 책임 범위
회사는 본 서비스의 제공과 관련하여 회사의 고의 또는 중과실로 인한 손해 에 대해서는 「민법」 및 관련 법령에 따라 책임을 진다. 다만, 회사의 경과실 로 인해 발생한 손해 및 다음 사유로 발생한 손해에 대해서는 회사가 그 책임을 부담하지 아니한다(약관규제법 §7 의 무효 사유에 해당하지 않도록 한정).
- 천재지변·전쟁·테러·정전 등 불가항력으로 인한 서비스 중단.
- 이용자의 귀책사유로 인한 서비스 이용 장애.
- 제3자(Google Calendar API / OAuth IdP / OpenAI / Cloudflare / Supabase 등) 의 시스템 장애·정책 변경·서비스 중단으로 인한 서비스 이용 불능.
- LLM 분류 결과의 부정확성 — 회사는 분류 결과의 업무적 정확성을 보장하지 아니하며, 이용자가 분류 결과를 검토할 것을 권고한다.
- 이용자 또는 제3자가 본 서비스를 이용해 게시·전송한 자료에 의한 손해.
- 이용자의 컴퓨터·단말기 환경 또는 네트워크 환경에서 발생한 문제로 인한 손해.
5.5.2 손해배상의 범위 및 한도
본 서비스는 본 약관 시행일 현재 무료로 제공된다. 회사가 이용자에게 부담 하는 손해배상의 범위는 회사의 고의 또는 중과실이 인정되는 경우에 한하여 민법 §393 ①항의 통상의 손해로 한정하며, 동조 ②항의 특별한 사정으로 인한 손해는 회사가 그 사정을 알았거나 알 수 있었던 경우에 한해 배상한다. 본 조항은 「약관의 규제에 관한 법률」 §7 의 무효 사유에 해당하지 않는 범위 내에서만 효력을 갖는다(고의·중과실 면책은 절대 무효).
본 서비스가 향후 유료로 전환되는 경우 회사는 §9 의 약관 개정 절차에 따라 별도의 정량적 손해배상 한도(예: 직전 12개월 이용자가 회사에 결제한 금액 또는 통상의 손해 중 적은 금액) 를 도입할 수 있으며, 무료 서비스 단계에 서는 정량적 cap 을 미리 도입하지 아니한다.
5.5.3 외부 서비스 종속 리스크의 면책 범위
회사는 본 서비스가 Google Calendar API, OAuth IdP, Workspace Marketplace 정책, Cloudflare, Supabase, OpenAI 등 제3자 서비스에 의존함을 사전에 명시 적으로 고지한다(약관규제법 §3 ②항). 해당 제3자 서비스의 가용성·정책 변경· 서비스 중단은 본 서비스의 통제 범위를 벗어나는 사유이며, 이로 인한 일시적 서비스 중단·기능 제한·데이터 처리 지연에 대해서는 회사가 책임을 부담하지 아니한다. 다만, 회사는 합리적 범위 내에서 신속한 복구 또는 대체 수단 마련 을 위해 노력한다.
6. 데이터 처리
데이터 수집 / 처리 / 저장 / 삭제 정책은 docs/legal/privacy-policy.md
"개인정보처리방침"으로 위임한다. 본 약관과 충돌하면 개인정보처리방침이
우선한다.
7. 서비스의 가용성 및 점검
7.1 운영 단계
본 서비스는 베타 / MVP 단계 정식 출시 후 운영되며, 회사는 안정적
서비스 제공을 위해 합리적 노력을 다한다.
7.2 정기 점검·장애·서비스 중단
회사는 시스템 점검, 보수, 교체 등을 위해 서비스 제공을 일시적으로 중단할 수 있으며, 이러한 사정을 사전에 GAS Add-on 공지사항 또는 본 약관 게시 페이지를 통해 이용자에게 통지한다. 다만, 긴급한 보안 패치·시스템 장애 복구 등 사전 통지가 곤란한 부득이한 사유가 있는 경우에는 사후 통지로 갈음 할 수 있다.
회사는 합리적 노력에도 불구하고 발생한 서비스 중단으로 인한 이용자의 손해 에 대해서는 §5.5 의 책임 범위 내에서만 책임을 부담한다.
7.3 정식 SLA의 부재
본 서비스는 현재 정량적 가용성 SLA(예: 99.9% uptime) 를 별도로 보장하지 않으며, 정식 SLA 도입 시 본 약관 개정 절차(§9) 에 따라 별도 조항으로 추가 한다.
8. 이용계약의 해지·종료
8.1 이용자에 의한 해지 (자유 해지)
이용자는 언제든지 다음 방법으로 본 서비스 이용계약을 해지할 수 있다.
- GAS Add-on 제거 → Google 측 OAuth 권한 자동 회수.
POST /api/account/delete호출 또는 사이드바 "계정 삭제" 메뉴 → 9개 사용자 스코프 테이블 cascade 삭제 + Google refresh token revoke + 활성 watch 채널 stop(src/CLAUDE.md"Account deletion (§3 row 179)" / 개인정보처리방침 §6.2). 본 작업은 즉시·완전 삭제이며 복구 불가하다.
8.2 회사에 의한 해지 (이용제한·해지)
회사는 다음 각 호에 해당하는 명백한 사유가 있는 경우에 한해 이용자에게 사전 통지(또는 즉시 통지가 곤란한 경우 사후 통지) 후 이용계약을 해지하거 나 서비스 이용을 제한할 수 있다.
- 이용자가 §4 의 의무를 중대하게 위반한 경우.
- 이용자가 본 서비스를 이용하여 자신 또는 제3자에게 위법·위해 행위를 하거나 이를 시도한 경우.
- 이용자가 본 서비스의 안정적 운영을 의도적으로 방해한 경우(자동화 우회, 다중 계정 quota 우회, API 남용 등).
- 「개인정보 보호법」, 「정보통신망 이용촉진 및 정보보호 등에 관한 법 률」 등 관계 법령을 위반한 경우.
- 회원 자격 부정 취득(허위 정보·도용)이 사후 확인된 경우.
회사는 위 사유로 이용계약을 해지하는 경우 그 사유를 이용자에게 통지하며, 이용자가 사전에 이의제기할 수 있는 합리적 기간(통상 7일 이상)을 부여한다. 다만, 다음의 경우에는 사전 통지 또는 이의제기 절차 없이 즉시 해지할 수 있다.
- 위 §8.2 ②호(위법·위해 행위) 또는 ③호(자동화 우회·API 남용) 의 사유 로 즉시 조치하지 아니하면 서비스의 안정성·다른 이용자의 권익에 회복하기 어려운 손해가 발생할 우려가 있는 경우.
- 「전자상거래 등에서의 소비자보호에 관한 법률」 등 관계 법령에서 즉시 해지를 인정하는 경우.
해지 시점에 §8.1 과 동일한 cascade 삭제가 수행된다.
8.3 해지 시 데이터 처리
이용자가 §8.1·§8.2 어느 사유로 해지되더라도 개인정보처리방침 §6.2 의 절차 에 따라 모든 개인정보가 즉시 파기된다(법령에 따라 보존이 의무인 동의 이력 제외).
9. 약관의 개정 및 통지
9.1 통지 절차
회사는 본 약관을 개정할 수 있으며, 개정 시 다음 절차로 이용자에게 통지한다.
- 일반 변경: 시행일 7일 전부터 GAS Add-on 공지사항 및 본 약관 게시
페이지(
https://legal.autocolorcal.app/terms) 에 게시. - 이용자에게 불리한 변경 또는 중대한 변경: 시행일 30일 전부터 위 채널 공지 + 이용자가 등록한 이메일 주소로 별도 통지.
9.2 동의 간주 / 명시 동의
이용자가 변경 약관 시행일 이후에도 서비스를 계속 이용하는 경우, 다음 각 호의 요건이 모두 충족된 경우에 한해 변경된 약관에 동의한 것으로 본다(약관 규제법 §3 ③항·정보통신망법 §22의2 절충안).
- 회사가 §9.1 의 사전 통지 기간(일반 변경 7일·중대 변경 30일) 을 준수 하여 통지하였을 것.
- 통지 시점에 회사가 변경의 주요 내용·시행일·이용자에게 미치는 영향을 명시적으로 표시하였을 것.
- 통지에 "이용자가 변경 약관에 동의하지 않을 경우 §8.1 의 자유 해지로 회원탈퇴할 수 있으며, 시행일 이후의 서비스 계속 이용은 변경 약관에 대한 동의로 간주된다" 는 안내가 포함되었을 것.
이용자에게 불리한 변경의 경우에는 위 §9.1 의 사전 통지 기간(30일) 내에 명시적 거부의사를 표시할 수 있는 절차(이메일·in-app 거부 옵션·support 이메일) 를 마련하며, 이용자가 거부의사를 표시한 경우 회사는 변경 전 약관을 해당 이용자에 대해 합리적 기간 동안 유지하거나 §8.1 의 자유 해지 옵션을 안내한다. 다만 회사가 변경 전 약관 유지가 기술적·법령상 불가능 하다고 판단하는 경우에는 §8.1 의 자유 해지로 갈음할 수 있다.
10. 지식재산권 (Intellectual Property)
10.1 회사의 권리
본 서비스의 코드, 디자인, 상표, 로고, UI/UX, 도메인(autocolorcal.app) 등
서비스에 관한 일체의 지식재산권은 회사 또는 그 정당한 권리자에게 귀속된
다. 이용자는 회사가 제공한 본 서비스를 이용하기 위한 비독점적·양도불가한
사용권만을 갖는다.
10.2 이용자의 권리
이용자가 본 서비스에 입력하는 카테고리 이름·키워드·색상 등의 콘텐츠에 관한 지식재산권은 이용자에게 귀속된다. 회사는 본 서비스의 제공·운영· 개선·서비스 안전성 확보 목적의 범위에 한하여 해당 콘텐츠를 사용할 수 있는 비독점적·로열티 무료 라이선스를 보유한다.
10.3 캘린더 이벤트 콘텐츠
이용자의 Google Calendar 이벤트 콘텐츠(제목·설명·장소·참석자 등)에 관한 일체의 권리는 이용자(또는 해당 콘텐츠의 권리자)에게 그대로 귀속되며, 회사 는 분류 처리 목적의 in-transit 처리에 필요한 범위 내에서만 일시적으로 이용한다(개인정보처리방침 §2.1·§5).
11. 분쟁의 해결 및 관할법
11.1 준거법
본 약관에 명시되지 않거나 본 약관의 해석에 대하여 회사와 이용자 간 의견 차이가 있을 경우 대한민국 법령을 준거법으로 한다. 다만, 이용자가 한국 외 국가에 거주하는 경우 해당 국가의 강행 소비자보호 법령(EU 소비자보호법, 캘리포니아 CCPA/CPRA 등)이 본 약관에 우선하는 한도 내에서 그 법령이 적용 된다.
11.2 분쟁해결 절차
회사와 이용자 간 발생한 분쟁은 우선 양 당사자의 협의로 해결한다. 협의 가 이루어지지 아니한 경우 다음 외부 기관을 통해 분쟁 해결을 도모할 수 있다.
- 한국 거주 이용자: 「개인정보 분쟁조정위원회」, 「전자거래분쟁조정위원 회」, 「소비자분쟁조정위원회」 (한국소비자원).
- EU 거주 이용자: 거주 회원국의 ODR(Online Dispute Resolution) 플랫폼.
11.3 관할법원
본 약관과 관련된 소송은 민사소송법 상의 관할 규정에 따른다. 이용자 와 회사 간 발생한 소송은 제소 당시 이용자의 주소를 관할하는 법원을 전속 관할법원으로 하며, 주소가 없는 경우 거소를 관할하는 법원이 전속관할로 한다(민사소송법 §2, §3, §8 — 소비자에게 유리한 관할 우선 적용).
11.4 집단소송·중재
본 약관 시행일 현재 회사는 다음의 보수적 입장을 취한다.
- 집단소송 포기(class-action waiver) 미도입: 회사는 본 약관에 집단 소송 포기 조항을 두지 아니한다. 한국 약관규제법 §14 는 "고객에게 부당 하게 불리한 소제기 금지 조항" 을 무효 사유로 두고 있어, 본 서비스의 주된 준거법인 한국법 환경에서는 집단소송 포기 조항이 효력을 갖지 못할 가능성이 높다.
- 강제 중재(arbitration clause) 미도입: 회사는 본 약관에 미국 연방 중재법(FAA) 등에 근거한 강제 중재 조항을 두지 아니한다. 미국 거주 이용자와의 분쟁도 §11.1·§11.3 의 한국법 + 민사소송법 일반 관할 + 거주 국 강행 소비자보호 법령의 우선 적용 원칙으로 해결한다.
이용자가 자발적으로 중재 절차를 택하기를 희망하는 경우에는 회사는 한국 상사중재원(KCAB) 또는 거주국의 적절한 대체적 분쟁해결(ADR) 기관을 통한 중재에 합의할 수 있다. 본 약관은 이용자의 그러한 자발적 선택을 강제하지 아니한다.
본 §11.4 의 정책은 본 서비스의 유료화·미국 시장 본격 진출·EU 회원국별 별도 영업 거점 확보 등 사업 환경의 중대한 변경 시 §9 의 절차에 따라 갱신 될 수 있다.
12. 연락처
본 약관 시행일 현재 회사는 개인 운영자(자연인) 형태로 운영되며, 사업자 등록 완료 시 본 표를 갱신한다. 「전자상거래 등에서의 소비자보호에 관한 법률」 §13 의 사업자 정보 표시 의무는 본 표의 publish 시점 갱신으로 충족 한다.
| 구분 | 정보 |
|---|---|
| 회사 | 개인 운영자 |
| 대표자 | 임우현 |
| 사업자 등록번호 | 미해당 — 자연인 운영자 |
| 이메일 (이용 문의) | [email protected] |
| 서비스 도메인 | https://autocolorcal.app |
13. 부칙
13.1 시행일
본 약관은 publish 일자([YYYY-MM-DD]) 부터 시행된다.
13.2 경과조치
본 약관 시행일 이전에 가입한 이용자에게도 본 약관이 적용된다. 다만, 본 약관의 개정 시점에 이용자에게 불리한 변경이 있는 경우에는 §9.1 의 통지 절차에 따른다.
13.3 분리 가능성 (Severability)
본 약관의 어느 조항이 관계 법령에 의해 무효 또는 집행 불가능하다고 판단되 는 경우에도 그 조항을 제외한 나머지 조항의 효력에는 영향을 미치지 아니한다.
시행일: 2026-05-05. 최종 개정일: 2026-05-05. 버전: v1.0 (Round 2 self-publish).
Cross-references
- 본 약관 본문이 인용한 코드 ground truth 위치:
src/config/constants.ts/gas/appsscript.json— OAuth scopesrc/services/llmClassifier.ts— LLM quota /OPENAI_API_KEYgatingsrc/services/calendarSync.ts— retry / DLQ / sync 흐름src/CLAUDE.md"Color ownership marker (§5.4)" — 수동 색상 보존src/CLAUDE.md"Account deletion (§3 row 179)" — 종료 절차docs/architecture-guidelines.md"Halt on Failure" / "E2E Backend Mandatory" / "Hybrid Classification Engine"docs/security-principles.mdPrinciple 3 — Scope Minimization
- 동반 문서:
docs/legal/privacy-policy.md— 개인정보처리 방침 (초안)docs/assets/marketplace/scope-justifications.md— scope별 정당화 (정본)
운영자 publish 체크리스트
본 약관은 외부 변호사 검토 없이 sub-agent self-review 만 거친 publish-ready 본문이다. 운영자는 publish 직전 다음 식별 정보 placeholder 만 본인 정보 로 교체한다(법적 결정사항은 모두 본문에 박혀 있어 추가 자문 불필요).
- 본 약관 도입부의 "회사 형태" 표기 — 사업자 등록 후 상호·등록번호로 갱신.
- §12 표의 회사·대표자·사업자 등록번호·주소 — publish 시점에 운영자 본인 정보로 직접 기재.
- 본 약관 말미 "시행일" —
[YYYY-MM-DD]를 실제 publish 일자로 교체.
식별 정보 외의 모든 법적 판단(준거법, 분쟁해결 절차, 책임 한도 한정, 약관 변경 통지·동의 간주 절차, 집단소송 포기·강제 중재 미도입 정책, 가용성 SLA 부재, 외부 서비스 종속 면책 등) 은 본 약관 본문에 결정문 형태로 반영되어 있다.