Skip to content

feat: 마이페이지 프로필 하단 디자인 변경#888

Open
devfeijoa wants to merge 10 commits into
developfrom
feat/887
Open

feat: 마이페이지 프로필 하단 디자인 변경#888
devfeijoa wants to merge 10 commits into
developfrom
feat/887

Conversation

@devfeijoa
Copy link
Copy Markdown
Contributor

@devfeijoa devfeijoa commented May 28, 2026

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 마이프로필 하단 통계 배경색 변경 및 구분선 제거
  • 통계 수치 텍스트 색상을 검정색에서 보라색(primary_100_6A5DFD)으로 변경
  • 기타 레이아웃 속성 정렬 및 정리

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

Screenshot_20260528_172826

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

devfeijoa added 10 commits May 26, 2026 13:04
- 작품 연결이 되어있지 않는 글을 뜨지 않게 하기 위해 null 허용으로 전환
- 지금 뜨는 글 피드 슬롯 구성을 3개에서 2개로 변경
- 피드 상세 정보(제목, 썸네일, 장르) 표시를 위한 UI 레이아웃 대폭 수정
- `HomeViewModel`에서 피드 상세 정보를 함께 조회하도록 데이터 가공 로직 추가
- `PopularFeedsViewHolder`에서 썸네일(Coil 사용) 및 제목 생략 처리 등 바인딩 로직 고도화
- `FeedRepository`에 단일 피드 조회(`fetchFeed`) 메서드 추가
- `PopularFeedsAdapter`의 리스트 비교(`DiffUtil`) 로직 수정
- `HomeViewModel`에 있던 인기 피드 가공 로직(`toHomePopularFeeds`)을 `FeedRepository`의 `fetchHomePopularFeeds` 메서드로 이관
- `FeedRepository`에서 인기 피드 목록 조회 시 각 피드의 상세 정보를 병렬로 호출하여 데이터(내용, 스포일러 여부, 작품 정보 등)를 보충하도록 수정
- 공개 상태이며 작품 제목과 이미지가 유효한 피드만 필터링하고 페이지 사이즈(2개)에 맞춰 청킹(Chunk) 처리하는 로직 추가
- `HomeViewModel`의 데이터 로딩 로직을 `runCatching`과 `async/await`을 활용해 예외 처리 및 가독성 개선
- 공통 에러 핸들링을 위한 `handleFailureState` 메서드 추출 및 적용
- `FeedRepository`의 `fetchHomePopularFeeds` 메서드명을 `fetchPopularFeedsWithDetails`로 변경
- `HomeViewModel`에서 변경된 메서드명을 참조하도록 수정 및 반영
- `FeedRepository`에서 수행하던 인기 피드 리스트 chunk(페이징) 처리를 `HomeViewModel`로 이동
- `FeedRepository.fetchPopularFeedsWithDetails`의 반환 타입을 `List<List<...>>`에서 `List<...>`로 변경
- `HomeViewModel`에 `HOME_POPULAR_FEED_PAGE_SIZE` 상수 추가 및 UI 상태 업데이트 시 데이터 가공 로직 반영
- `FeedMapper`에서 `isPublic` 필드의 기본값을 `true`에서 `false`로 변경
- 인기 피드 슬롯의 높이를 고정값(122dp)에서 `0dp`로 변경하여 영역을 가변적으로 차지하도록 수정
- 구분선(divider)을 중앙에 배치하고, 이를 기준으로 슬롯 1과 2가 상하로 균등하게 배치되도록 제약 조건 조정
- `HomeViewModel`에서 인기 작품 및 인기 피드 데이터 로드 성공 시 `error` 상태를 `false`로 변경하도록 수정
- 내 서재 통계 배경색 변경 및 틴트 적용 (`primary_20_F5F7FF`)
- 통계 수치 텍스트 색상을 검정색에서 보라색(`primary_100_6A5DFD`)으로 변경
- 통계 항목 간의 구분선(`View`) 제거
- 기타 레이아웃 속성 정렬 및 정리
@devfeijoa devfeijoa requested review from Sadturtleman, m6z1 and s9hn May 28, 2026 08:26
@devfeijoa devfeijoa self-assigned this May 28, 2026
@devfeijoa devfeijoa added 🍯 [FEAT] 새로운 기능을 개발합니다. [👸 공주 은영] labels May 28, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Walkthrough

인기 피드 API 응답과 데이터 모델을 확장하여 소설 메타데이터와 공개 여부를 추가합니다. 상세 조회 로직을 Repository에 구현한 뒤, ViewModel 데이터 로딩 흐름을 coroutineScope 기반으로 리팩토링하고, RecyclerView 렌더링을 개선하며 마이페이지 스타일을 갱신합니다.

Changes

인기 피드 상세 조회 및 UI 개선

Layer / File(s) Summary
API 응답 및 데이터 모델 확장
app/src/main/java/com/into/websoso/data/remote/response/PopularFeedsResponseDto.kt, app/src/main/java/com/into/websoso/data/model/PopularFeedsEntity.kt, app/src/main/java/com/into/websoso/data/mapper/FeedMapper.kt
PopularFeedResponseDto의 응답 필드를 확장(feedContent nullable화, isPublic 및 소설 정보 필드 추가)하고, PopularFeedEntity 데이터 모델에 해당 필드를 추가한 후 FeedMapper에서 null 값을 기본값 또는 대체 필드로 처리합니다.
인기 피드 상세 조회 로직
app/src/main/java/com/into/websoso/data/repository/FeedRepository.kt
새 suspend 메서드 fetchPopularFeedsWithDetails()를 추가하여 기본 목록을 가져온 뒤 각 항목의 상세정보를 async로 병렬 조회하고, 실패 항목을 제외 후 공개 및 소설 정보 필터링을 적용합니다.
ViewModel 데이터 로딩 리팩토링
app/src/main/java/com/into/websoso/ui/main/home/HomeViewModel.kt
fetchUserHomeData()fetchGuestData()를 suspend 함수로 변경하고, coroutineScope 기반 병렬 처리로 구성합니다. 새 헬퍼 handleFailureState()를 추가하고 HOME_POPULAR_FEED_PAGE_SIZE=2 상수로 chunking을 통일하며, fetchPopularFeedsWithDetails() 호출을 통합합니다.
RecyclerView 어댑터 및 ViewHolder 갱신
app/src/main/java/com/into/websoso/ui/main/home/adpater/PopularFeedsAdapter.kt, app/src/main/java/com/into/websoso/ui/main/home/adpater/PopularFeedsViewHolder.kt
PopularFeedsAdapter의 DiffUtil을 전체 feedId 시퀀스 비교로 변경하고, PopularFeedsViewHolder.bind()에서 슬롯별 가시성/데이터 바인딩, 제목 말줄임, 스포일러 조건부 표시, Coil 이미지 로딩(rounded corners, 에러 처리), SVG 장르 이미지 렌더링을 구현합니다.
인기 피드 및 홈 화면 레이아웃
app/src/main/res/layout/fragment_home.xml, app/src/main/res/layout/item_popular_feed.xml, app/src/main/res/layout/item_popular_feed_slot.xml
fragment_home.xml의 ViewPager2 높이를 고정값(244dp)으로 변경합니다. item_popular_feed.xml에서 3개 슬롯을 2개로 재구성하여 제약을 정리합니다. item_popular_feed_slot.xml을 match_parent 높이로 변경하고 제목/썸네일 영역을 추가하며 좋아요/댓글 카운트를 제거합니다.
마이페이지 스타일 개선
app/src/main/res/layout/fragment_my_page.xml
라이브러리 통계 텍스트 색상을 primary 컬러로 변경하고, 배경 틴트를 추가한 후 흥미/시청 구분선을 제거 및 unknown preference 섹션의 속성 순서를 정렬합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Team-WSS/WSS-Android#871: 홈 화면 데이터 로딩 흐름 수정과 coroutine 사용 패턴 변경이 연관됩니다.
  • Team-WSS/WSS-Android#769: 피드 모듈 분리로 도입된 FeedApi.getFeed() API와 DTO 구조가 상세 조회 로직의 기반입니다.

Suggested labels

🏹 궁사 명지, ♻️ [REFACTOR]

Suggested reviewers

  • s9hn
  • m6z1
  • Sadturtleman

Poem

🐰 인기피드 상세조회, 병렬로 날아다니네
슬롯마다 제목에 썸네일, 스타일을 새로 입고
coroutineScope 속에서 춤을 춘다
마이페이지 색감도 곱게 단장했으니
홈 화면이 한층 더 돋보일 거야! ✨

🚥 Pre-merge checks | ❌ 5

❌ Failed checks (5 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning PR 제목은 '마이페이지 프로필 하단 디자인 변경'으로, 실제 변경사항의 극히 일부만 다룬다. 대부분의 변경사항은 홈 화면 인기 피드 데이터 모델, 로직, UI이고 마이페이지 변경사항은 제한적이다. 마이페이지 UI 변경은 일부이며, 주요 변경사항인 홈 인기 피드 데이터 모델/로직/UI 개선을 반영하도록 제목을 수정하거나 범위를 명확히 해야 한다.
Linked Issues check ⚠️ Warning PR은 #887 '마이페이지 프로필 하단 디자인 변경' 이슈와 연결되어 있으나, 실제 변경사항의 대부분은 홈 화면 인기 피드와 관련된 내용(데이터 모델 확장, 상세 조회 로직, 필터링, UI 개선)이다. 마이페이지 변경은 레이아웃 일부만 다루고 있다. PR의 주요 변경사항이 연결된 이슈의 범위를 초과한다. 홈 화면 개선사항은 별도 이슈로 분리하거나, 이슈 #887의 범위를 확대하여 명확히 정의해야 한다.
Out of Scope Changes check ⚠️ Warning PR에는 #887 '마이페이지 프로필 하단 디자인 변경'의 범위 밖인 홈 화면 인기 피드 관련 변경사항이 상당히 포함되어 있다. 데이터 모델(PopularFeedsEntity, PopularFeedsResponseDto), 리포지토리(FeedRepository), 뷰모델(HomeViewModel), UI 컴포넌트(PopularFeedsAdapter, ViewHolder, 레이아웃) 등이 모두 변경되었다. 호� 화면 인기 피드 개선(fetchPopularFeedsWithDetails, 필터링, 데이터 모델 확장 등)은 별도 이슈로 분리하여 관리하거나, 이슈 #887을 다시 정의하여 포함 범위를 명확히 해야 한다.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning PR 설명이 템플릿 구조를 따르고 있으나, 실제 변경 내용과 상당한 불일치가 있습니다. PR 설명을 수정하여 인기 피드 데이터 모델 확장, 레포지토리 로직 추가, 뷰모델 및 어댑터 리팩터링, 레이아웃 조정 등의 실제 변경 사항을 명시하십시오.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/887

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@devfeijoa devfeijoa closed this May 28, 2026
@devfeijoa devfeijoa reopened this May 28, 2026
@devfeijoa
Copy link
Copy Markdown
Contributor Author

devfeijoa commented May 28, 2026

0bcf798
이 커밋만 작업한건데 새 브랜치 생성할때 이전 브랜치에서 새로 생성해서
이전 pr에서 작업한 커밋들이 여기 pr에 같이 커밋된 것 같습니다ㅠ ㅠ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[👸 공주 은영] 🍯 [FEAT] 새로운 기능을 개발합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 마이페이지 프로필 하단 디자인 변경

1 participant