Repository navigation
[NM-427] 알약 분석 대기시간 계측, limit_source 제거 - #158
Merged
Merged
Conversation
pill_identify_started 를 추가하고 pill_identify_result 에 analysis_ms · analysis_bucket 을 실어 "사진 확정 → 결과"까지 사용자가 기다린 시간을 잰다. - pill_identify_started: 로딩 화면엔 나갈 방법이 없어(back 숨김) 대기 중 이탈은 강제 종료뿐인데, 그 순간엔 전송이 보장되지 않아 이탈 시점에 직접 찍을 수 없다. 대신 분모를 남겨 started − result 로 뺀다. 성공률의 분모도 이쪽이 맞다. - analysis_ms 는 온디바이스 세그멘테이션 + 서버 왕복을 포함하며 실패에도 붙는다. "얼마나 빨리 실패하는가"를 함께 보기 위해서다. - analysis_bucket 은 Int 가 GA4 측정항목으로만 등록되어 분류 축에서 (not set) 이 되는 문제 때문에 짝으로 보낸다. 앞구간을 촘촘히(3·5·10초) 나눈 건 대기 이탈이 앞쪽에서 갈리기 때문이고, 30초를 넘기면 이미 한 덩어리라 두 칸으로 닫았다. pill_limit_reached 의 limit_source 는 제거했다. NM-426 이후 값이 exhausted 하나뿐이라 상수 축이 되고, 상수 축은 이벤트 수를 세는 것과 같은 정보를 되풀이할 뿐이다. 아직 출시 전이라 구버전 앱이 없어 옛 값(gate·server)과 구분할 필요도 없다. GA4 맞춤 측정기준도 dev·prod 양쪽에서 보관 처리했다. 실측(2026-09-02, 시뮬레이터): 로그 간격 12.870초 vs analysis_ms 12869 — 1ms 차이. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qc4S5fQbGW3fnZMh7bPb8
6 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
관련 이슈
변경 요약
사진 확정부터 분석 결과까지 사용자가 기다린 시간을 계측하고, 로딩 중 이탈을 셀 수 있게 분모 이벤트를 추가한다. 함께 의미가 없어진
limit_source를 제거한다.변경 내용
분석 대기시간
pill_identify_started신규 — 사진을 확정해 분석에 들어간 순간.pill_identify_result에analysis_ms(Int) ·analysis_bucket(String) 추가.analysis_ms는 온디바이스 세그멘테이션 + 서버 왕복을 포함한다.outcome과 무관하게 실패에도 붙인다 — "얼마나 빨리 실패하는가"도 봐야 하기 때문.왜 시작 이벤트가 필요한가
로딩 화면(
PillLoadingVC)은 back 버튼을 숨겨 나갈 방법이 없다. 그래서 대기 중 이탈은 앱 강제 종료뿐인데, 그 순간엔 이벤트 전송이 보장되지 않아 이탈 시점에 직접 찍을 수가 없다. 분모를 남겨 빼는 방식이 유일하다.성공률의 분모도 원래 이쪽이 맞다.
pill_identify_result는 결과가 나와야 찍히므로 이탈한 시도가 빠져 있다.왜 버킷을 함께 보내는가
Int 는 GA4 측정항목으로만 등록되어 평균은 보이지만 분류 축으로 쓰면 전부
(not set)이 된다. 분포를 보려면 문자열 구간이 필요하다.앞구간을 촘촘히 나눈 건 대기 이탈이 앞쪽에서 갈리기 때문이다 — 3초와 5초의 차이는 체감이 크지만 40초와 50초는 이미 "너무 느림" 한 덩어리다. 라벨이
mm:ss고정자리인 이유는 GA4가 문자열을 사전순 정렬해서, 단위를 섞으면(30초-1분·1-2분) 정렬이 시간순과 어긋나기 때문.limit_source제거NM-426 이후 이 파라미터가 가질 수 있는 값은
exhausted하나뿐이다. 상수 축은 이벤트 수를 세는 것과 같은 정보를 되풀이할 뿐이라 맞춤 정의 슬롯만 먹는다.옛 값(
gate·server)과 구분해야 한다면 남길 이유가 있었지만, 아직 출시 전이라 구버전 앱이 없다. 전환기 자체가 존재하지 않는다.GA4
한도 도달 지점맞춤 측정기준도 dev·prod 양쪽에서 보관 처리했다. QA 기간에 쌓인gate·server값은 이걸로 버려졌다(팀 합의).테스트
tuist build AppBuild Succeeded)실측 (2026-09-02, 시뮬레이터)
로그 간격 12.870초 vs
analysis_ms12.869초 — 1ms 차이.pill_limit_reached는 파라미터 없이 나가는 것을 os_log 로 확인했다.체크리스트
[NM-XXX] 요약형식<type>/NM-XXX-요약형식[NM-XXX] type: 요약형식