피드로 돌아가기
Dev.toBackend
원문 읽기
Timezone 불일치로 인한 UI Glitch 해결 및 Blast Radius 최소화 설계
His Today Was Yesterday: a timezone bug, a blast radius, and what AI missed
AI 요약
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 기준의 시간 정의를 명확히 했는가?