피드로 돌아가기
CVR Tracking by Competitor Comparison Page: StatelessWidget StatefulWidget + unawaited() Pattern
Dev.toDev.to
Frontend

unawaited() 패턴과 StatefulWidget 전환을 통한 CVR 추적 정밀화

CVR Tracking by Competitor Comparison Page: StatelessWidget StatefulWidget + unawaited() Pattern

kanta13jp12026년 4월 17일3intermediate

Context

StatelessWidget 구조로 인해 페이지 진입 시점의 라이프사이클 훅 활용이 불가능했던 아키텍처의 한계 발생. 이로 인해 21개의 경쟁사 비교 페이지별 개별 전환율(CVR)을 측정할 수 없는 데이터 공백 상태 직면.

Technical Solution

  • initState 내 이벤트 기록을 위해 StatelessWidget에서 StatefulWidget으로 셸 구조 변경
  • UI 렌더링 블로킹 방지 및 분석 데이터 전송을 위한 unawaited() 기반의 Fire-and-forget 패턴 적용
  • route params의 대소문자 정규화를 통한 competitorKey 데이터 일관성 확보
  • State 클래스 내 getter 도입을 통해 widget 참조로 인한 코드 수정 범위 최소화
  • Last-touch 기반의 attribution 모델 설계를 통한 경쟁사별 가입 전환 기여도 산출 구조 구축

- 분석 이벤트 전송 시 UI 스레드 차단 방지를 위해 unawaited() 사용 여부 검토 - 단순 뷰에서 라이프사이클 제어가 필요한 시점의 StatefulWidget 전환 전략 수립 - 데이터 분석을 위한 식별자(Key) 생성 시 toLowerCase() 등 정규화 로직 필수 적용 - State 클래스 내 Getter를 활용한 Widget 필드 접근 최적화 적용

원문 읽기