아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
여기어때 favicon여기어때

SwiftUI로 Date·인원 선택 UI를 유연하게!

by DD
2025-12-16
7개월 전
조회수 11

도메인별 정책 차이로 인해 단일 UI 컴포넌트 적용에 어려움이 있었음

Calendar Core와 ScrollableCalendarView 분리를 통해 UI 재사용성 확보

LazyVGrid 문제 해결을 위해 Grid 구조 재설계 및 Precompute & Cache 전략 도입

Calendar Core 아키텍처 설계

Calendar Core는 Month 리스트 생성, 날짜 셀(DateViewData) 생성, 상태 갱신을 담당한다. 구체적으로 buildDateViewData 함수를 통해 각 셀의 상태를 결정하고, CalendarRenderContext를 활용하여 도메인별 정책을 캡슐화한다. 따라서 UI 재사용성과 유지보수성을 동시에 확보했다.

LazyVGrid 문제 해결 전략

iOS 16에서 LazyVGrid의 성능 문제를 해결하기 위해 Grid 구조를 직접 구현했다. GeometryReader 사용을 최소화하고, Precompute & Cache 전략을 통해 초기 렌더링 속도를 개선했다. 반면, 이러한 최적화는 개발 복잡도를 증가시키지만, 결과적으로 UI 안정성과 성능 향상을 달성했다.

TravelerView를 활용한 인원 선택 UI

TravelerView는 TravelerViewData를 통해 도메인별 정책을 주입받아 렌더링한다. 따라서 UI 컴포넌트는 단순하게 유지하면서, 다양한 도메인에서 공통 UI를 재사용할 수 있다. 결과적으로 코드 중복 감소와 유지보수 용이성을 확보했다.

️여기어때 Date·인원 선택 UI 만들기-SwiftUI Calendar Core & DateTravelerSelector 구조 재설계
중급
아키텍처
SwiftUI
iOS
Swift
Frontend
Mobile
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

올리브영 iOS 개발자가 말하는 개발자 모드 구축 비법!

올리브영 로고

Skip, Swift/SwiftUI 기반 크로스 플랫폼 개발 도구, 오픈 소스 전환!

해커뉴스 로고

iOS 검색 홈, SwiftUI로 부드럽고 유연하게!

여기어때 로고

iOS 모듈화, 컴포넌트 분리부터 QA 자동화까지

카카오스타일 로고

iOS 개발, 이제 Claude Code에 맡기세요!

딜라이트룸 로고

뱅크샐러드 iOS, 모듈 구조 개선으로 개발 효율 UP!

뱅크샐러드 로고
여기어때 favicon여기어때
중급
아키텍처
SwiftUI
iOS
Swift
Frontend
Mobile

관련 추천 글

올리브영 iOS 개발자가 말하는 개발자 모드 구축 비법!

올리브영 로고

Skip, Swift/SwiftUI 기반 크로스 플랫폼 개발 도구, 오픈 소스 전환!

해커뉴스 로고

iOS 검색 홈, SwiftUI로 부드럽고 유연하게!

여기어때 로고