Conversation
테스트 커버리지 리포트
Generated by CI on 2026-09-13 01:53 KST |
home/general_search/seek/home_today_ranking/home_hot_feedlist/ home_prefer_novellist/home_to_prefer_btn 7종. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
search/general_search/seek/search_result/click_search_result/ contact_novel_search/soso_pick/seek_result/click_seek_result/ seek_info_genre/state/rating 및 KeywordFeature 임베드 구간 (seek_keyword_universe/topic/character/relation/mood, contact_keyword — arch-lint feature-exclusivity 제약으로 App(SearchAssembly)에서 raw string 브리징). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
onboding_man/woman/age, onboding_prefer_R/RF/F/HF/MH/BL/D/M/LN 12종 (전부 V1 백로그 — 실제 배포된 적 없음). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
novel_info/contact_error/direct_novel/novel_feed/novel_write_btn/ novel_write_floating_btn/novel_feed_like/rate_love/rate_delete 9종. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
rate/rate_novel/rate_ing/ed/stop/rate_rating/rate_date/ rate_universe/topic/character/relation/mood 12종 및 평가 키워드 시트 (rate_keyword_universe/topic/character/relation/mood — arch-lint feature-exclusivity 제약으로 App(NovelReviewAssembly)에서 raw string 브리징). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
feed_all/feed_write_floating_btn/feed_like/feed_detail/feed_detail_like/ write/write_spoiler_on/off/write_connect_noevel/contact_novel_connect/ write_feed/write_comment/alert_feed_spoiler/abuse/alert_comment_spoiler/abuse 16종. 감사 중 발견한 SosoFeedViewModel.reportFeed 누락(FeedDetailViewModel과 동일 이벤트인데 목록 신고 경로에서만 빠져있던 것)도 이 커밋에서 함께 채움. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
mypage/other_mypage/other_block/logout/withdraw/mypage_man/woman/age 8종. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
collection_list/collection_create_btn/collection_write/collection_save/ collection_detail/collection_like/collection_delete 7종. V1에 없던 V2 전용 기능이라 새 이벤트명을 정의했다(#249 CSV 관례를 따른 snake_case). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
novel_notification_view/_completion_on/off/_hiatus_on/off 5종. V1에 없던 V2 전용 기능(#188/189)이라 새 이벤트명을 정의해 기존 NovelDetailAnalyticsEvent 카탈로그에 얹었다. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
setting_notification_on/off 2종. V1에 없던 기능이라 새 이벤트명을 정의해 기존 SettingAnalyticsEvent 카탈로그에 얹었다. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
notification_list/notification_select/notification_detail 3종. V1에 없던 기능이라 새 이벤트명을 정의했다. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
library_view/library_register_btn/library_empty_search_btn/ library_notification_btn/library_interest_filter/library_filter_apply/ library_sort/library_novel_select/user_library_view/user_library_sort/ user_library_novel_select 11종. LibraryFeature는 V1 CSV에도 없고 이번 작업 범위에도 없던 완전 미배선 상태였던 것을 재감사로 발견해 추가했다. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
wss-pr-reviewer·wss-feature-reviewer 지적 반영. - 재진입(push 복귀)마다 재발화하던 화면진입 이벤트(novel_info, other_mypage, feed_detail, search, seek_result)를 최초 1회로 좁힘 — VM에 가드가 있으면 그 안으로, 없으면 View에 hasTrackedXxx 플래그 신설(FeedDetailView). - 같은 이유로 home/mypage/feed_all도 통일(재조회 자체는 최초 1회 가드 없이 유지, 트래킹만 별도로 가드). - GenreSelectionViewModel/DetailSearchFilterViewModel의 토글류가 해제 방향에서도 '선택' 이벤트를 잘못 발화하던 것을 선택 방향에서만 쏘도록 수정. - FeedAnalyticsEvent의 rawValue 오타 수정(write_connect_noevel → _novel). - 전 VM의 track() pass-through에 // MARK: - Analytics 헤더 추가, Feature CLAUDE.md에 handle() 우회 예외 명시. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vh2tUU4oU5dx9Mw1uFxZcQ
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012QcyBwFPQvJ1Mz5k5zAVMS
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.
💡 Issue
💭 Summary
#249에서 만든
AnalyticsTracker인프라를 실제 화면에 배선하는 작업이에요.13개 Feature 모듈(홈·탐색·온보딩·작품상세·작품평가·수다·마이페이지·설정·컬렉션·알림등록시트·전역알림설정·알림함·서재)에 총 137개 Amplitude 이벤트를 연결했어요.
원래 CSV에 있던 V1 이벤트뿐 아니라, V1엔 없었지만 V2에 새로 생긴 기능(컬렉션·작품 알림·서재)의 이벤트, 그리고 후속 감사로 찾아낸 누락 이벤트까지 새로 정의해서 같이 넣었어요.
🔑 Key Changes
모듈별 이벤트 배선 (Factory → ViewModel → View,
logger와 동일한 옵셔널 주입 패턴)XxxAnalyticsEventenum(이벤트 이름 카탈로그)을 신설했어요.analyticsTracker: AnalyticsTracker? = nil의존성 +track(_:properties:)pass-through 메서드를 추가했어요.track(.xxx)호출을 심었어요.dependencies.analyticsTracker를 전달해 전체 체인을 이었어요.V1에 없던 신규 이벤트도 함께 정의
감사 + 버그 수정
SosoFeedViewModel.reportFeed(피드 목록 신고)에서 누락된 트래킹 1건을 발견해 같이 고쳤어요.wss-pr-reviewer+wss-feature-reviewer)에서 나온 지적도 전부 반영했어요:🔄 후속 업데이트 — 남은 갭 전수 조사 + 추가 배선
처음엔 "이벤트명이 아직 없거나 흐름이 비슷한 다른 화면과 겹친다"는 이유로 몇 군데를 의도적으로 비워뒀었는데, 다시 검토해서 의도적으로 뺐던 곳 + 감사에서 새로 찾은 갭을 전부 채웠어요. 새로 추가된 이벤트는 30종이에요(기존 28종 + 이번 30종 = V2 신규 총 58종).
원래 의도적으로 비워뒀던 4곳
seek_info_platform)write_image_add/write_image_remove)feed_tab_select, 전체글↔추천글feed_soso_option_select)CollectionSearchNovelViewModel/CollectionMyLibrarySelectViewModel이 이번에 처음analyticsTracker를 받았어요.전수 조사로 새로 찾은 갭
FeedFeature엔 이미 있는 이벤트지만 Feature 간 직접 의존이 안 돼 이 모듈 전용 이름을 새로 지었어요.새 이벤트명은 전부 각 모듈이 기존에 쓰던 명명 패턴(
seek_info_*/write_*/collection_*/feed_*/novel_*/other_*)을 그대로 따라 지었어요 — 기획팀 확정 이름이 아니니 나중에 실제 스프레드시트 이름과 갈리면 이 부분부터 확인해주세요. 기획팀 공유용 CSV도 이번 30종을 반영해 업데이트했어요.📱 Simulation
UI 변경은 없고(트래킹 호출만 추가) 눈에 보이는 화면 변화는 없어요. 스크린샷은 생략할게요.
🧑🧒🧒 To Reviewer
KeywordFeature에 임베드된 이벤트(seek_keyword_*,rate_keyword_*,contact_keyword)는 arch-lintfeature-exclusivity제약 때문에 App 레이어(SearchAssembly/NovelReviewAssembly)에서 raw string으로 직접 트래킹해요 — 컴파일러가 동기화를 못 잡아주니, 이 이벤트명을 바꿀 땐 양쪽 다 같이 고쳐야 해요.FeedFeature의CreateFeedConnectNovelSheet문의 버튼은 이번 작업 범위 밖에서 발견한 기존 죽은 버튼(트래킹만 얹고 URL 연결은 안 고침)이에요 — 모듈CLAUDE.md에 남겨뒀어요.※ Reference
해당 없음