
프론트엔드
스플래시 화면을 활용한 홈화면 백화현상 개선하기
두줄요약
스플래시 화면으로 홈 화면 로딩 중 빈 화면 노출을 줄이고 백화현상을 개선했습니다. 또한 온보딩 플로우를 단순화해 첫 진입 경험을 더 자연스럽게 만들었습니다.
문제 상황
- 홈 화면 진입 전 서버 응답 지연으로 빈 화면이 노출되는 백화현상
- Server Driven UI 구조에서 네트워크 상태에 따라 초기 렌더링 지연이 심해지는 문제
- 기존 온보딩 흐름의 권한 안내, 스와이프, 로그인 단계로 인한 진입 복잡도
원인 분석
- 홈 화면 데이터가 viewDidLoad 시점의 API 응답에 의존하는 구조
- Launch Screen은 정적 화면이라 초기 로딩 작업을 직접 처리할 수 없는 제약
- 여러 API 응답을 모두 기다리면 느린 응답 하나가 전체 화면 전환을 지연시키는 구조
해결 방법
- Launch Screen 이후 별도 스플래시 화면과 InitializeViewController로 초기 작업 분리
- 홈 화면 위에 스플래시를 덮어 사용자는 로딩 중에도 빈 화면을 보지 않도록 처리
- delegate, Notification, RxSwift 조합으로 응답 완료를 전달하고 최소 노출 시간을 제어
주의할 점
- 홈 화면 API를 외부에서 직접 관리하면 책임 분리와 유지보수 부담이 커질 수 있음
- zip으로 모든 API를 묶으면 일부 지연이 전체 스플래시 유지 시간으로 이어질 수 있음
- 핵심 UI와 부가 UI를 분리해 화면 전환 기준을 정하는 설계 필요
적용해볼 점
- 초기 진입 화면에서 핵심 데이터만 먼저 확보해 빈 화면 구간 최소화
- 스플래시 노출 시간과 데이터 준비 완료 시점을 함께 고려한 전환 로직 설계
- 온보딩 단계 단순화로 첫 진입 경험 개선
