여기어때
️여기어때 Date·인원 선택 UI 만들기-SwiftUI Calendar Core & DateTravelerSelector 구조 재설계

여기어때는 SwiftUI 기반 날짜·인원 선택 UI를 Calendar Core와 Traveler Selector로 분리하여 도메인별 정책 차이에 유연하게 대응하고 성능을 최적화했습니다.
날짜·인원 선택 UI 재설계 문제점
- 여기어때 앱의 날짜·인원 선택 UI는 도메인별(패키지, 국내/해외 숙소 등) 정책 차이가 커 통합 UI 구현이 어려웠습니다.
LazyVGrid사용 시 iOS 16에서 성능 저하 및 버그가 발생하여 Grid 구조 재설계가 필요했습니다.
Calendar Core 기반 날짜 선택 재설계
- Calendar Core는 날짜 계산, 렌더링 데이터 생성 등 공통 로직을 담당하고, ScrollableCalendarView는 UI 렌더링만 수행하도록 분리했습니다.
- 월별 DateViewData를 미리 계산하고 캐싱하여 초기 렌더링을 최적화하고,
diff기반 업데이트로 성능을 개선했습니다. - CalendarRenderContext로 도메인 정책을 캡슐화하여 UI와 비즈니스 로직을 명확히 분리했습니다.
Traveler Selector 및 통합 구조
- TravelerView는 공통 UI 컴포넌트로, 도메인별 인원 정책은
TravelerViewData를 통해 외부에서 주입받습니다. - 최종 DateTravelerSelector 화면은
ScrollableCalendarView와 를 조립하여 높은 과 을 확보했습니다.
Next Feeds

OpenTelemetry와 Kafka를 활용한 안정적인 Observability 구축기
'여기어때'가 OpenTelemetry와 Kafka를 활용하여 MSA 환경에서 안정적이고 확장 가능한 Observability 아키텍처를 구축한 경험을 공유합니다.
MongoDB 8.0 업그레이드 해야하는 12가지 이유
MongoDB 8.0은 장기 지원, 쓰기/쿼리 성능, 샤딩 유연성, 검색 기능 통합 등 전반적인 안정성과 운영 효율을 크게 개선했습니다.

Claude Code를 활용한 예측 가능한 바이브 코딩 전략
Claude Code를 활용한 바이브 코딩 전략으로, LLM의 인지적 한계를 시스템적 도구와 효과적인 프롬프트 작성으로 극복하는 방법을 제시한다.

Running Elasticsearch on Kubernetes the Easy Way, Part 2 — Data Node Warm-Up
Karrot은 Elasticsearch의 Kubernetes 롤링 재시작 중 발생하는 지연 시간 문제를 search-coordinator 프록시 기반 웜업 시스템으로 해결하여 안정적인 배포를 가능하게 했다.

Amazon Bedrock AgentCore Observability로 프로덕션 수준의 AI 에이전트 구축하기
Amazon Bedrock AgentCore Observability는 OpenTelemetry 기반으로 AI 에이전트의 개발부터 프로덕션까지 엔드투엔드 관찰성을 제공하여 비용 최적화 및 디버깅을 돕습니다.

고객은 절대 기다려주지 않는다: 빠른 데이터 서빙으로 고객 만족도를 수직 상승 시키는 법
토스페이먼츠가 폭증하는 데이터를 안정적이고 빠르게 서빙하기 위해 Elasticsearch, Druid, StarRocks를 활용한 아키텍처 진화 과정과 최적화 전략을 설명합니다.