피드로 돌아가기
His Today Was Yesterday: a timezone bug, a blast radius, and what AI missed
Dev.toDev.to
Backend

Timezone 불일치로 인한 UI Glitch 해결 및 Blast Radius 최소화 설계

His Today Was Yesterday: a timezone bug, a blast radius, and what AI missed

Maksym Lyskov2026년 6월 12일4intermediate

Context

Multi-tenant 예약 플랫폼에서 Venue의 Timezone과 사용자의 접속 지역 간 시차로 인해 발생한 데이터 정합성 문제임. 과거 날짜의 Availability를 명시적으로 제외하는 로직이 US 기반 사용자에게 적용되며 활동 리스트가 사라지는 UI Glitch 발생함.

Technical Solution

  • Past-day 조건 제거 시 발생 가능한 Side-effect를 방지하기 위해 Blast Radius를 최소화한 정밀 수정 수행
  • 과거 날짜 요청 시 활동 리스트는 유지하되 Time slot만 빈 값으로 전송하는 구조로 변경하여 UI 붕괴 방지
  • Backend Bug 재현을 위한 Red-Green Unit Test 도입을 통한 수정 사항 검증
  • Activity 목록 요청과 개별 Availability 요청을 분리하는 아키텍처 리팩토링 방향성 수립
  • 무분별한 리팩토링 방지를 위해 특정 Trigger 발생 시에만 수행하는 Deferred Refactoring 전략 채택

- 장애 수정 시 영향 범위(Blast Radius)를 정의하고 최소 단위로 격리했는가? - AI의 제안을 맹목적으로 수용하지 않고 시스템 전체 레이어의 제약 사항을 검토했는가? - 코드의 불쾌함(Disgust)이 아닌, 명확한 트리거(Trigger) 기반의 리팩토링 계획을 수립했는가? - 도메인 특성상 Timezone 처리가 필요한 경우, 서버/클라이언트/Venue 기준의 시간 정의를 명확히 했는가?

원문 읽기