핵심 요약
여기어때는 SwiftUI 기반 Date·인원 선택 UI를 Calendar Core + ScrollableCalendarView로 재설계해 도메인 정책은 유지하되 재사용성과 유지보수를 크게 개선했습니다.
구현 방법
- Calendar Core로 월 단위 데이터와 42칸 DateViewData를 미리 생성하는 공통 로직 도입
- ScrollableCalendarView는 UI 렌더링에 집중하고 변경된 셀만 재렌더링하도록 최적화
- DateTravelerSelector에서 정책 주입으로 도메인별 차이를 공통 컴포넌트로 재사용
주요 결과
- iOS 16의 LazyVGrid 버그 회피와 7열 Grid로 안정성 확보
- 초기 렌더링 시 데이터 캐싱으로 렌더링 비용 감소
- 정책 확장은 Calendar Core가 아닌 DateTravelerSelector에 한해 가능