Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚡️ perf: 피드 삽입 정렬 기능 제거 & 피드 뷰 구현 #311

Merged
merged 5 commits into from
Dec 31, 2024

Conversation

Jo-Minseok
Copy link
Collaborator

@Jo-Minseok Jo-Minseok commented Dec 30, 2024

🔨 테스크

Issue

피드 삽입시 정렬의 필요성 여부

  • 피드 삽입할 때, 정렬을 필수적으로 해야 하는 불필요한 행위가 존재했다. 이유: 최신 글 순으로 무한 스크롤 페이지네이션을 구현해야 했기 때문.
  • '데이터를 정렬해서 DB에 넣는 것이 올바른 것일까?' 싶었다. 사용하는 곳에서 가공을 하면 된다.
  • 미리 가공하는 곳을 DB에서 뷰로 가지고 있으면 되고, JOIN 또한 미리 해두면 개발할 때 편의성을 챙길 수 있을 것이라 생각했다.
  • RSS 승인시 기존에 올려놨던 게시글을 가져오는 부분도 미리 설계한 후 RSS-Notifier를 개선했다.
  • 추후에 할 방법으로는 lastId -> order_id 조회 -> feed ID 들을 찾는 방식으로 페이지네이션 알고리즘을 변경할 계획이다.
  • 이 방식으로 구현할 경우 RSS가 새롭게 추가됨으로 인해 과거 데이터(피드)가 들어오더라도 무한 스크롤에서 서비스에 등록되어 있는 피드들이 클라이언트에게 순차적으로 제공될 수 있었으며, 반복적으로 제공되는 문제를 해결할 수 있다.

📋 작업 내용

  • Feed 뷰 생성
  • 피드 삽입시 정렬 제거
  • Rss-Notifier -> Feed-Crawler로 명칭 변경

📷 스크린 샷(선택 사항)

  • 개선 전

개선전

  • 개선 후
    개선

  • 뷰 테이블
    image

  • 변경된 ERD
    Denamu (2)

@Jo-Minseok Jo-Minseok added the ⚡ Performance 성능 개선 label Dec 30, 2024
@Jo-Minseok Jo-Minseok requested a review from asn6878 December 30, 2024 14:02
@Jo-Minseok Jo-Minseok self-assigned this Dec 30, 2024
Copy link
Member

@asn6878 asn6878 left a comment

Choose a reason for hiding this comment

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

고생 많으셨습니다! 👍

몇가지 추가적으로 이야기 해보고 싶은 것들을 남겨놨어요!
덕분에 TypeORM으로 뷰쓰는 방법도 알고 갑니다. 😄

feed-crawler/src/common/db-access.ts Show resolved Hide resolved
feed-crawler/src/feed-crawler.ts Show resolved Hide resolved
server/src/feed/feed.entity.ts Show resolved Hide resolved
Copy link
Collaborator

@CodeVac513 CodeVac513 left a comment

Choose a reason for hiding this comment

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

큰 피드백은 성윤님께서 다 해주셨네요.
ViewEntity 데코레이터에 대해서도 알아가고 무엇보다 View에 대해 다시 공부하게 된 계기가 되었네요.
고칠 게 많았는데 정말 수고 많으셨어요! (__)

Copy link
Member

@asn6878 asn6878 left a comment

Choose a reason for hiding this comment

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

질문사항 확인 감사드립니다 :)

@Jo-Minseok Jo-Minseok merged commit 38a43c8 into main Dec 31, 2024
1 check passed
@Jo-Minseok Jo-Minseok deleted the refactor/rss-notifier branch December 31, 2024 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚡ Performance 성능 개선
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 피드 크롤러 성능을 개선
3 participants