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

[REFACTOR] 인기글 배너 개선 #900

Open
jminkkk opened this issue Nov 7, 2024 · 4 comments
Open

[REFACTOR] 인기글 배너 개선 #900

jminkkk opened this issue Nov 7, 2024 · 4 comments
Assignees
Labels
refactor 요구사항이 바뀌지 않은 변경사항

Comments

@jminkkk
Copy link
Contributor

jminkkk commented Nov 7, 2024

📌 어떤 기능을 리팩터링 하나요?

인기 태그별 목록 조회 (배너)를 개선한다.

배너 캐싱 및 API 분리

AS-IS

  1. 고정 태그
  2. 매번 태그별 템플릿 목록 조회

TO-BE

  1. 최근 인기있는 태그
  2. 캐시에 미리 저장해놓고 조회

🔍 참고할만한 자료(선택)

@jminkkk jminkkk added the refactor 요구사항이 바뀌지 않은 변경사항 label Nov 7, 2024
@jminkkk jminkkk added this to the 7차 스프린트 💭 milestone Nov 7, 2024
@jminkkk jminkkk self-assigned this Nov 7, 2024
@jminkkk
Copy link
Contributor Author

jminkkk commented Nov 15, 2024

인기글 배너 정책 다시 정하기 디스커션

현재처럼 고정 태그 유지 vs 인기 태그로 조회

실제 인기 태그를 조회하자

배너 목록 조회 시에 사진이 함께 보이도록 태그의 이미지를 추가할 것인가?

이미지를 삽입하지 않고 기존 배너에서 글과 색상만 남기도록 한다.

겹치는 태그들을 어떻게 처리할 것인가?

문제가 발생할 경우에 처리한다.

배너 클릭 시 정렬을 최근순 등록순 vs 좋아요 순

정렬은 현재 최근순으로 유지한다.

인기 태그 정책 결정

"지금 인기있는 태그"

7일 동안 생성된 템플릿 목록 중에서 가장 많이 연결된 태그를 조회한다.
태그는 5개씩 조회한다.
7일 동안의 태그가 5개 이하인 경우 기간은 연장될 수 있다.

@jminkkk
Copy link
Contributor Author

jminkkk commented Dec 27, 2024

태그 정책 구체화

"지금 인기있는 태그" 정책

  • 7일 동안 생성된 템플릿 목록 중에서 가장 많이 연결된 태그를 조회한다.
  • 7일 동안의 태그가 지정된 개수 이하인 경우 기간은 연장될 수 있다.

기간 연장을 어떻게 할 것인가?

  1. 7일 전의 기간을 더 늘린다.
  2. 태그가 지정된 사이즈만큼 될때까지만 기간을 늘린다.

1. 7일 전의 기간을 더 늘린다.

문제점

  • 늘려도 없을 가능성이 있고, +7일 하는 쿼리가 계속해서 발생할 수 있다. -> 30일 최대치를 둔다

장점

  • 특정 기간에 대한 기준은 항상 있기 때문에 순위 카운팅이 가능하다.

2. 태그가 지정된 사이즈만큼 될때까지만 기간을 늘린다.

문제점

  • 데이터 충족 후 쿼리 종료하기 때문에 불필요한 연산이 적다

장점

  • 순위 카운팅이 불가능하다
  • ex. 8일 차에 A 태그가 1개, 9일차에 B 태그가 100개 생성되어 있었어도 A를 인기로 반환

결정

"2. 태그가 지정된 사이즈만큼 될때까지만 기간을 늘린다."

  • "지금 or 최신 인기" 이기 때문에 2번의 단점이 크게 어색하지 않을 것 같다.
  • 실시간 집계가 아니고, 순위 카운팅이 필요없다.

@zeus6768
Copy link
Contributor

zeus6768 commented Dec 29, 2024

문제점

  • 데이터 충족 후 쿼리 종료하기 때문에 불필요한 연산이 적다

장점

  • 순위 카운팅이 불가능하다
  • ex. 8일 차에 A 태그가 1개, 9일차에 B 태그가 100개 생성되어 있었어도 A를 인기로 반환

문제점과 장점이 반대로 된거 맞나여??

@jminkkk
Copy link
Contributor Author

jminkkk commented Dec 30, 2024

앗 그러네요...ㅎㅎ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor 요구사항이 바뀌지 않은 변경사항
Projects
Status: Todo
Development

No branches or pull requests

3 participants