Skip to content

[Feat] #172 - MypageFeature를 UserPageFeature로 리네이밍, UserPage 화면 신설 - #173

Merged
Guryss merged 15 commits into
developfrom
Feat/#172
Aug 12, 2026
Merged

[Feat] #172 - MypageFeature를 UserPageFeature로 리네이밍, UserPage 화면 신설#173
Guryss merged 15 commits into
developfrom
Feat/#172

Conversation

@Guryss

@Guryss Guryss commented Jul 27, 2026

Copy link
Copy Markdown
Member

💡 Issue


💭 Summary

MypageFeatureUserPageFeature로 리네이밍하면서, 타 유저의 프로필을 보는 "UserPage" 화면을 새로 만들었습니다. 차단·피드 신고·전체 피드 목록(무한스크롤)·비공개 프로필 처리를 포함합니다.


🔑 Key Changes

모듈 리네이밍

  • MypageFeatureUserPageFeature로 리네이밍, 기존 화면은 MyPage로 분류
  • GenreSection/KeywordSection/LibrarySection을 MyPage/UserPage 공용 서브뷰로 분리

타 유저 프로필 화면(UserPageView) 신설

  • 통계/활동 탭 구조, 서재 통계·장르 취향·작품 취향 조회
  • 툴바 드롭다운("차단하기") → 확인 알럿 → BlockUserUseCase. 성공 시 화면 dismiss(차단 후엔 상대 프로필을 다시 볼 수 없음)
  • 피드 셀 드롭다운("스포일러 신고"/"부적절한 표현 신고") → 확인→접수완료 2단 알럿 → ReportSpoilerFeedUseCase/ReportImproperFeedUseCase
  • "활동" 탭은 미리보기 최대 5개만 표시, 6개 이상이면 "전체보기" → 전체 목록(무한스크롤) 화면(UserFeedListView)으로 push navigation
  • 스크롤에 반응하는 네비 타이틀(닉네임 페이드인), 툴바 배경 항상 표시, 상단 오버스크롤 시 배경색 처리

비공개 프로필 처리

  • 서버 비즈니스 코드 USER-015(HTTP 상태 코드로는 구분 안 됨) → RepositoryError.privateProfile 신설
  • 공용 NetworkingError.toRepositoryError()는 건드리지 않고, 이 코드가 실제로 의미 있는 ProfileData.fetchGenrePreferences/fetchNovelPreferences, FeedData.fetchUserFeeds에서만 개별 감지
  • 화면은 스티키 헤더(통계/활동 탭)는 유지한 채 콘텐츠 영역만 "비공개 프로필이에요" 안내로 대체

Domain/Data 지원 작업

  • NovelDomain에 유저 서재 통계 조회 UseCase(LoadUserRegisteredNovelStatsUseCase) 추가
  • FeedDomain의 유저 피드 조회에 nickname/profileImage 파라미터 추가(응답에 author 정보가 없어 호출 측이 채움)
  • SocialDataBlockUserQuery 쿼리 파라미터 키 오타 수정(userIDuserId)
  • (스코프 밖 발견) ProfileDataattractivePoint 매핑 오타 수정("worldView""worldview")

📱 Simulation

ScreenRecording_07-27-2026.22-33-03_1.MP4

🧑‍🧒‍🧒 To Reviewer

  • RepositoryError.privateProfile 감지는 ProfileData(장르/작품 취향)와 FeedData(피드) 세 메서드에만 있고, 같은 화면이 병렬로 부르는 서재 통계(NovelData.fetchUserRegisteredNovelStats)는 의도적으로 제외했습니다 — 서버가 그 엔드포인트엔 이 에러코드를 정의하지 않기 때문입니다(docs/CONVENTIONS.md에 규약으로 기록).
  • UserPageView/UserFeedListView 간 피드 셀+신고 드롭다운 렌더링 코드가 거의 동일하게 중복돼 있습니다 — NovelDetailFeature도 화면별 사본을 갖는 것과 같은 이유로 의도한 것입니다(공용화하지 않음).
  • WSSAlertView의 버튼은 접근성 트리에 안 잡혀 UI 자동화로 알럿 버튼 탭까지는 검증하지 못했습니다(알럿이 뜨는 것까지만 시뮬레이터로 확인).

※ Reference

해당 없음

@Guryss Guryss self-assigned this Jul 27, 2026
@Guryss Guryss changed the title [Feat] #172 - MypageFeature를 UserPageFeature로 리네이밍하고 UserPage 화면 신설 [Feat] #172 - MypageFeature를 UserPageFeature로 리네이밍, UserPage 화면 신설 Jul 27, 2026
Guryss and others added 14 commits August 12, 2026 13:11
…Page로 분류

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
WSSFeadView/FeedHeader/WSSFeedReact/WSSDropdownItem 시그니처가 바뀐 뒤 UserPageView·UserFeedListView 호출부가 갱신되지 않아 컴파일이 깨져 있었다. NovelDetailFeedTab의 정본 호출 형태에 맞춰 두 화면과 Demo 앱의 SocialDataFactory 호출을 고쳤다.
로딩은 ProgressView 대신 LoadingView, 로드 실패는 텍스트 대신 재시도 가능한
NetworkErrorView(WSSComponent)로 바꾸고, 데이터 0개(로드 성공) 케이스는
비공개 프로필 안내와 같은 톤(이미지+안내문구)으로 새로 처리했다.
@Guryss
Guryss merged commit 7df55b2 into develop Aug 12, 2026
@Guryss
Guryss deleted the Feat/#172 branch August 12, 2026 05:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 다른 유저 마이페이지 조회 화면 구현

1 participant