일회성 온라인 워크숍 예약 — 개발·QA 전달안 적용 범위: 해외 참가자가 있는 60분 온라인 행사. 반복 일정·종일 일정·오프라인 장소 예약은 제외. 결정: 확정 전에는 주최자가 고른 현지 날짜·시간과 시간대로 의미를 정한다. 확정 후에는 저장한 UTC 시각을 약속으로 유지한다. 기준 예제: 2026-10-15 15:00, Asia/Seoul, UTC+09:00 → 2026-10-15T06:00:00Z. 종료는 07:00Z. 뉴욕 시작은 10월15일02:00, 로스앤젤레스는 10월14일23:00. 입력: 날짜, 시각, 행사 기준 시간대를 각각 표시한다. 브라우저 시간대는 추천만 하고 주최자가 확인한다. 언어 선택은 시간을 바꾸지 않는다. 확정 전: 서버가 지원 시간대인지 검사하고 실제 시각 후보를 계산한다. 0개면 존재하지 않는 시간 안내, 2개면 각각의 UTC 차이와 구분 설명을 제시하고 선택받는다. 임의 보정·자동 첫 번째 선택 금지. 최종 확인: 행사 기준 날짜·시각·지역·UTC 차이, 내 시간대의 날짜·시각, 60분 소요를 함께 보여준다. 서버가 입력과 규칙을 재검증하고 미리보기 버전을 비교한다. 바뀌면 새 결과를 보여주고 다시 확인받는다. 보관: 입력 원본 현지 날짜·시각, 행사 시간대, 선택한 UTC 차이, 확정 UTC 시작·종료, 확정 시각, 사용한 시간대 규칙 버전, 일정 버전과 변경 사유. 표시용 시간과 원본을 구분한다. 확정 후: 기기 시간대 변경은 표시만 변경한다. 시간대 규칙 업데이트로 표시가 달라져도 UTC 시각을 자동 이동하지 않는다. 변경 안내와 현재 일정을 함께 보여준다. 일정 변경: 주최자가 변경안을 확인하고 확정하면 일정 버전을 올린다. 이전 값과 변경 사유를 남긴다. 알림은 새 버전으로 연결하며 전송 실패는 재전송 대상으로 남긴다. 이미 확정된 일정을 되돌리지 않는다. 책임: 기획은 시간 약속과 변경 범위 결정, 개발은 서버 판정·버전 충돌·변환 검증, 디자인은 두 날짜와 오류 안내, 운영은 변경 대상·전송 실패 확인, QA는 아래 경계값 대조. 검수: 한국/뉴욕/LA 표시, 잘못된 시간대, 미선택 시간대, DST 공백 0개, 겹침 2개, 겹침 선택 후 재검증, 기기 변경, 언어 변경, 오래된 미리보기, 규칙 변경, 알림 실패를 확인한다. 운영 인계: 최초 적용 전 지원 시간대 목록·규칙 업데이트 담당·알림 재처리 책임자를 정한다. 경계값 검증 실패 시 새 예약 확정을 막고 원인을 고친다. 기존 확정 예약의 저장 시각은 보존한다. 확인 범위: 글의 숫자는 Python zoneinfo로 왕복 변환해 확인했다. 실제 예약 서비스나 알림 연동을 구현·시험한 결과는 아니다. 재확인 조건을 더 정확하게 정할게. 최종 확인 요청에서 원래 입력, 선택한 겹침 시각, 시간대 규칙 버전 중 하나라도 미리보기와 다르면 기존 확인을 만료시켜. 규칙 버전만 바뀌고 계산된 UTC 시점이 같더라도 새 미리보기를 보여주고 다시 확인받아.