시간 타임존 경계 규칙 통합
ADR-080 시간 타임존 경계 규칙 통합
1. Metadata
- ADR ID: ADR-080
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
- 서버 UTC 시간을 상태 만료 기준으로 사용한다.
- 클라이언트 표시는 로컬 타임존으로 변환한다.
- 운영시간 경계는 발행자 정책과 서버 시간으로 계산한다.
3. Product Decision
4. UX Decision
- 시간 표기 UX의 단일 SoT는
SPEC-000의 UX Rule Catalog를 따른다. - 만료 시각 로컬 표기/UTC 판정 설명/임박 강조 규칙은
UX-R-011을 참조한다.
5. Tech Decision
- 만료 계산은 UTC 기준 배치/쿼리로 처리한다.
- 표시 시간 변환은 클라이언트 레이어에서 수행한다.
- 스케줄러 지연 시 보정 실행을 허용한다.
- 서버의 단일 시간 기준은
now()(UTC)로 통일한다.
6. Ops Decision
- 시간 경계 장애 탐지 룰을 운영한다.
- 만료 오작동 시 보정 배치 절차를 사용한다.
- 타임존 이슈 공지 템플릿을 준비한다.
- 장애 복구 시 UTC 기준 재계산 결과를 최종 근거로 사용한다.
7. Implementation Contract (Optional)
7.1 API Contract
- 시간 관련 응답은
server_time_utc, expires_at_utc를 포함한다. - 클라이언트는 서버 시간을 기준으로 남은 시간을 계산한다.
7.2 Data Contract
- 만료/한도/제재 계산 필드는 UTC로 저장한다.
- 로컬 타임존은 표시 전용 파생값으로만 사용한다.
7.3 Error/Observability Contract
- 시간 계산 실패는
TIME_CALCULATION_ERROR 코드로 반환한다. - 스케줄러 지연/보정 실행 여부를 운영 이벤트로 기록한다.
7.4 Test/Acceptance Contract
- DST/타임존 경계일에도 만료 판정이 UTC 기준으로 일관되어야 한다.
- 동일 예약의 웹/앱 만료 시각 표기가 서버 기준과 일치해야 한다.
- UX 수용 기준 검증은
SPEC-000의 UX-R-011 준수 여부로 판정한다.
8. Validation