Skip to content

Conversation

@MTtankkeo
Copy link
Member

간단한 설명

피드 상세 페이지에서 변경된 피드 상세 정보(예: 좋아요, 조회수)를 ID 별로 수신하여 변경되면 관련 UI를 업데이트하도록 수정합니다용.

@gemini-code-assist
Copy link

Summary of Changes

Hello @MTtankkeo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 피드 상세 페이지에서 좋아요 수나 조회수와 같이 변경될 수 있는 피드 데이터를 실시간으로 UI에 반영하기 위한 아키텍처를 도입합니다. 새로운 NotifierUtil을 통해 특정 피드 ID에 대한 변경 사항을 효율적으로 알리고, 관련 UI 컴포넌트가 이를 구독하여 즉시 업데이트되도록 함으로써 사용자 경험을 향상시킵니다.

Highlights

  • 새로운 NotifierUtil 도입: ID 기반으로 특정 객체의 변경 사항을 구독하고 알림을 보낼 수 있는 범용 Notifier 유틸리티가 추가되었습니다.
  • 피드 데이터 변경 알림: FeedMixin에서 피드 데이터가 업데이트될 때마다 NotifierUtil.feed를 통해 변경 사항을 알리도록 수정되었습니다.
  • UI 실시간 업데이트: GrimityImageFeed 위젯이 StatefulWidget으로 변경되었고, NotifierUtil.feed를 구독하여 해당 피드의 데이터가 변경될 때마다 UI를 자동으로 업데이트하도록 구현되었습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 피드 상세 정보가 변경되었을 때 관련 UI를 업데이트하는 기능을 추가했습니다. 전반적으로 좋은 구현이지만, 몇 가지 개선점을 제안합니다. NotifierUtil에서 리스너 목록을 순회할 때 발생할 수 있는 동시성 문제를 해결하고, FeedMixin의 타입 안정성을 높이기 위해 제네릭 제약 조건을 추가했습니다. 또한, GrimityImageFeed 위젯이 새로운 feed 데이터로 업데이트될 때 리스너를 올바르게 관리하도록 didUpdateWidget 생명주기 메서드를 추가하는 것을 제안합니다. 이러한 변경 사항들은 코드의 안정성과 유지보수성을 향상시킬 것입니다.

@wonyong-park wonyong-park deleted the sync-feed branch December 29, 2025 06:06
@wonyong-park wonyong-park restored the sync-feed branch December 29, 2025 06:07
@wonyong-park wonyong-park reopened this Dec 29, 2025
@wonyong-park
Copy link
Member

@MTtankkeo
올려주신 PR 확인하면서 몇 가지 같이 체크할 부분 정리하여 내용 남깁니다.

  1. 팔로잉 페이지 동기화 미처리
  • 팔로잉 페이지에서 사용하는 위젯이 FollowingFeedCard인데,
    현재 GrimityImageFeed에서 처리한 것과 동일한 동기화 로직이 필요한 것으로 보입니다.
  1. View Count 동기화 처리
  • 현재 ViewCount는
    Feed 상세 페이지 진입 → 데이터 로드 성공 → view 증가 usecase 비동기 호출
    흐름으로 처리되고 있습니다.
  • 이 방식의 경우 동일한 Feed 게시글을 반복 진입할 때,
    두 번째 진입부터 ViewCount 값이 실제와 어긋날 수 있는 케이스가 발생합니다.
  1. 게시글(Post) 처리
  • Feed뿐만아니라 Post 관련 처리도 반영되어야 한다고 생각합니다.

위 3가지 관련하여 의견 주시면 감사하겠습니다 !

@MTtankkeo
Copy link
Member Author

@wonyong-park 2번의 경우는 어떻게 해야할지 잘 모르겠습니다용. 따로 좋은 방법이 없을까용?

@wonyong-park
Copy link
Member

@wonyong-park 2번의 경우는 어떻게 해야할지 잘 모르겠습니다용. 따로 좋은 방법이 없을까용?

현재구조에서 어떻게할지 딱 정답이 안나오는거같은데 고민좀해보겠습니다 !

@MTtankkeo
Copy link
Member Author

@wonyong-park 기존 NotifierUtil -> SyncUtil 으로 이름이 변경되었고 2번은 해결한 거 같습니다용, 시간 날 때 확인 바랍니다용.

@wonyong-park
Copy link
Member

@wonyong-park 기존 NotifierUtil -> SyncUtil 으로 이름이 변경되었고 2번은 해결한 거 같습니다용, 시간 날 때 확인 바랍니다용.

확인해봤는데 이슈가 있는 것 같습니다.

  1. Feed ViewCount 조회수 관련
  • 위에 코멘트에 남긴 2번이슈는 해결된 것 같은데, 실제로 조회수가 -1로 표시되는 형태인 것 같습니다.
  • 데이터 로드 > 로드한 데이터 조회수 + 1 > 증가함수 호출 > 증가된 데이터로 데이터 동기화 이런식으로해야하지 않을까 싶어요
  1. Post 데이터 관련
  • 목록에서 불러오는 Post 데이터 content상세 페이지에서 불러오는 Post 데이터 content 데이터 차이가 있어 상세페이지 진입 후 이슈가 있습니다.
  • 목록에서 불러오는 Post 데이터 content : html 태그가 제거된 데이터
  • 상세 페이지에서 불러오는 Post 데이터 content: html 태그가 제거된 데이터
  • 때문에 동기화 후 목록에서 html 태그가 포함된 데이터가 표시되고 있어 문제가될 것 같습니다.
  • 추가로 데이터 동기화 이후 목록 새로고침 시 데이터가 바뀌지 않고 html 태그가 그대로 보여지고있네용..
  1. FeedMixin, PostMixin 데이터 타입
  • 제너릭으로 되어있는데 Feed,Post 말고, Feeds,Posts 도 가져올 수 있어 해당 부분에서 오류가 납니다.
  • assert(state.value is Post); assert(state.value is Feed);

@wonyong-park
Copy link
Member

@wonyong-park 기존 NotifierUtil -> SyncUtil 으로 이름이 변경되었고 2번은 해결한 거 같습니다용, 시간 날 때 확인 바랍니다용.

확인해봤는데 이슈가 있는 것 같습니다.

  1. Feed ViewCount 조회수 관련
  • 위에 코멘트에 남긴 2번이슈는 해결된 것 같은데, 실제로 조회수가 -1로 표시되는 형태인 것 같습니다.
  • 데이터 로드 > 로드한 데이터 조회수 + 1 > 증가함수 호출 > 증가된 데이터로 데이터 동기화 이런식으로해야하지 않을까 싶어요
  1. Post 데이터 관련
  • 목록에서 불러오는 Post 데이터 content상세 페이지에서 불러오는 Post 데이터 content 데이터 차이가 있어 상세페이지 진입 후 이슈가 있습니다.
  • 목록에서 불러오는 Post 데이터 content : html 태그가 제거된 데이터
  • 상세 페이지에서 불러오는 Post 데이터 content: html 태그가 제거된 데이터
  • 때문에 동기화 후 목록에서 html 태그가 포함된 데이터가 표시되고 있어 문제가될 것 같습니다.
  • 추가로 데이터 동기화 이후 목록 새로고침 시 데이터가 바뀌지 않고 html 태그가 그대로 보여지고있네용..
  1. FeedMixin, PostMixin 데이터 타입
  • 제너릭으로 되어있는데 Feed,Post 말고, Feeds,Posts 도 가져올 수 있어 해당 부분에서 오류가 납니다.
  • assert(state.value is Post); assert(state.value is Feed);

@MTtankkeo
해당 이슈를 해결하여 푸쉬하였습니다. 확인 부탁드립니다.

참고사항

  • GrimityPostCardSave 아이콘의 범위가 달라 해당 페이지내에서는 Save를 취소하면 없애는 화면에서 표시 제외하는 방식으로 변경.
  • Post 목록/상세에서 content 데이터가 달라 content 데이터를 제외하고 동기화 시키도록 변경.

@wonyong-park wonyong-park merged commit 0cf312f into main Dec 31, 2025
1 check passed
@wonyong-park wonyong-park deleted the sync-feed branch December 31, 2025 14:26
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.

3 participants