> [!note] > 해당 issue 본문은 AI Agent가 작성한 내용입니다. 충분히 검토 후 시작해야합니다. # [Feature] 유저 맞춤 서비스 추천 시스템 도입 및 피드 최적화 ## 개요 현재 `codelog`의 피드는 단순히 최신순 또는 고정된 리스트를 보여주고 있습니다. 유저의 활동 데이터(좋아요, 북마크, 태그)를 분석하여 개인화된 콘텐츠를 추천함으로써 서비스 체류 시간과 사용자 경험을 개선하고자 합니다. ## 단계별 구현 계획 ### Phase 1: 기반 데이터 활용 추천 (Rule-based) - **대상:** 유저의 관심 태그 게시물 - **로직:** - 유저가 최근 `좋아요` 또는 `북마크`한 게시물들에서 가장 빈도가 높은 태그 5개를 선정. - 해당 태그를 포함하는 게시물 중 아직 유저가 보지 않은 게시물을 추천 점수(`score`) 순으로 정렬. - 추천 점수 계산: [(조회수 * 0.2) + (좋아요수 * 0.5) + (북마크수 * 0.3)](cci:2://file:///home/parkblo/repo/codelog/src/types/database.types.ts:0:0-6:10) - **기술 스택:** Supabase SQL Query, Postgrest ### Phase 2: 협업 필터링 (Collaborative Filtering) - **대상:** 취향이 비슷한 유저의 인기 게시물 - **로직:** - `A` 유저와 공통적으로 많은 게시물에 좋아요를 누른 `B` 유저 그룹을 식별. - `B` 그룹은 좋아하지만 `A` 유저는 아직 보지 않은 게시물을 추출하여 피드 상단에 배치. ### Phase 3: AI 기반 임베딩 추천 (Embedding Selection) - **대상:** 문맥적 유사도 기반 게시물 - **로직:** - OpenAI API를 이용해 게시물의 본문을 벡터(Vector) 데이터로 변환. - Supabase의 `pgvector` 확장을 사용하여 유저가 선호하는 글과 벡터 거리가 가까운 게시물 탐색. ## 개발 체크리스트 - [ ] 유저의 관심 태그 통계를 산출하는 `get_user_interest_tags` RPC 함수 작성 - [ ] 산출된 태그를 기반으로 평점을 매겨 게시물을 가져오는 `get_recommended_posts` 서비스 로직 구현 - [ ] 피드 페이지 상단에 "추천 서비스" 섹션 UI 컴포넌트 추가 - [ ] 성능 최적화를 위한 추천 API 캐싱 처리 (React Query 또는 server-side cache) ## 기대 효과 - 유저 개인의 관심사에 특화된 콘텐츠 노출로 서비스 만족도 향상 - 데이터 기반의 동적인 피드 구성을 통한 재방문율 증대
Note
해당 issue 본문은 AI Agent가 작성한 내용입니다. 충분히 검토 후 시작해야합니다.
[Feature] 유저 맞춤 서비스 추천 시스템 도입 및 피드 최적화
개요
현재
codelog의 피드는 단순히 최신순 또는 고정된 리스트를 보여주고 있습니다. 유저의 활동 데이터(좋아요, 북마크, 태그)를 분석하여 개인화된 콘텐츠를 추천함으로써 서비스 체류 시간과 사용자 경험을 개선하고자 합니다.단계별 구현 계획
Phase 1: 기반 데이터 활용 추천 (Rule-based)
좋아요또는북마크한 게시물들에서 가장 빈도가 높은 태그 5개를 선정.score) 순으로 정렬.Phase 2: 협업 필터링 (Collaborative Filtering)
A유저와 공통적으로 많은 게시물에 좋아요를 누른B유저 그룹을 식별.B그룹은 좋아하지만A유저는 아직 보지 않은 게시물을 추출하여 피드 상단에 배치.Phase 3: AI 기반 임베딩 추천 (Embedding Selection)
pgvector확장을 사용하여 유저가 선호하는 글과 벡터 거리가 가까운 게시물 탐색.개발 체크리스트
get_user_interest_tagsRPC 함수 작성get_recommended_posts서비스 로직 구현기대 효과