Skip to content

docs(search): explore facets·sort 백엔드 계약 (#842)#869

Draft
thxforall wants to merge 1 commit into
devfrom
feat/842-explore-contract
Draft

docs(search): explore facets·sort 백엔드 계약 (#842)#869
thxforall wants to merge 1 commit into
devfrom
feat/842-explore-contract

Conversation

@thxforall

@thxforall thxforall commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

무엇 / 왜

#842 (계약·설계 슬라이스)의 산출물 — explore facets + sort 백엔드 계약을 실제 코드 현황에 근거해 문서화. docs/architecture/explore-facets-sort-contract.md 신규.

Part of #842 · PRD #825 · map #789 · #851 관계 = FE 스캐폴딩을 고정 shape에 대고 착수 가능(단, #851 AC 통과는 서버 구현 랜딩 후)

⚠️ 제안(proposal) — 계약 shape 합의(AC-a)와 faceting 설정 확정(AC-b)은 philippe(Rust/infra 소유) 비준 필요. 그래서 이 PR은 #842를 close하지 않음 (OPEN 유지). philippe 리뷰용 Draft.

Load-bearing 발견 (스코프 재조정)

"meili faceting 프로젝트"가 아님 — 인덱스는 이미 구성돼 있음:

  • index_config.rs: POSTS_SORTABLEsolution_count 有, POSTS_FILTERABLE에 facet 축(category_codes/context/media_type) 有
  • solution_count 정렬은 이미 /search에서 동작 (search/service.rs:66)
  • facet 갭 = 배선 2줄: advanced_searchwith_facets 미호출 + service.rs:153-159Facets를 None 하드코딩

문서 구성

  • Part A — FE-facing 응답 계약 (backend-무관, 지금 확정 가능): sort vocab(solution_count 승격), facets shape 고정, facet count = post-filter 시맨틱 픽스
  • Part B — browse(DB) 그리드 구현 옵션: ① meili 통합 vs ② DB 집계 vs ③ 하이브리드 (tradeoff + 권장) — philippe 결정
  • Part C 관련 — 저비용 착지: search facet 배선(인덱스 변경 0)
  • §4익스플로어 필터 graduated (서버 facet/sort) #851 세 번째 AC(style_tags 서버 필터)는 미색인 + Style DNA 택소노미 SSOT + 9무드 탭 + T10 drift CI #849(Style DNA SSOT) 의존 → 별도 처리 플래그

AC 매핑 (#842)

  • (a) 계약 shape 합의 — 제안, philippe 비준 대기 ✋
  • (b) faceting 설정 확정 — 제안, philippe 비준 대기 ✋
  • (c) facets 응답 계약 문서화 — ✅ 완료 (Part A)

#851 영향 (정확히)

이 계약은 #851의 FE 스캐폴딩을 고정된 응답 shape에 대고 시작하게 해줌. 단 #851의 3개 AC(서버 facet distribution 반영·solution_count 서버 정렬·style_tags 서버 필터)는 모두 아직 없는 백엔드를 요구하며 philippe 구현 랜딩 후에야 통과 가능. 즉 #851은 "착수 가능"이지 "실행 준비 완료"가 아님.

검증

  • 문서 전용 (bump:none). 코드 변경 없음 → 빌드/테스트 무관.
  • 모든 파일·라인 참조는 dev HEAD 기준 실제 코드에서 grounded.

philippe 확인 질문

  1. browse facet: meili 통합 vs DB 집계?
  2. facet count = post-filter 확정?
  3. browse solution_count 정렬 소스(집계 컬럼 vs 조인)?
  4. style_tags 필터는 익스플로어 필터 graduated (서버 facet/sort) #851 포함 vs Style DNA 택소노미 SSOT + 9무드 탭 + T10 drift CI #849 이후 별도?

🤖 Generated with Claude Code

meili posts 인덱스는 이미 solution_count sortable + facet 축 filterable로
구성됨(index_config.rs). 진짜 갭은 advanced_search의 with_facets 배선 +
service.rs의 Facets None 하드코딩 제거. FE 응답 계약(facets shape·sort
vocab·post-filter count)은 backend-무관이라 지금 확정 → #851 언블록.
browse(DB) facet/정렬 구현 옵션(meili 통합 vs DB 집계)은 philippe 비준
대기 → #842 OPEN 유지.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@vercel

vercel Bot commented Jul 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
decoded-app Ready Ready Preview, Comment Jul 9, 2026 1:37pm

@thxforall thxforall moved this from Todo to In Progress in decoded-monorepo Jul 9, 2026
@thxforall thxforall added the bump:none Docs / CI / tests only label Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump:none Docs / CI / tests only

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant