공개 검색 인덱스 추가

This commit is contained in:
2026-07-03 15:43:27 +09:00
parent 33c92a6f72
commit 58fbae5a03
10 changed files with 148 additions and 42 deletions

View File

@@ -1,5 +1,11 @@
# 의사결정 이력
## 2026-07-03 v1.10.28 — 공개 검색은 정규화 컬럼과 trigram 인덱스를 쓴다
게시물이 수천 개로 늘면 통합 검색 입력마다 `lower(content)`를 직접 계산하는 방식은 본문 길이에 비례해 비용이 커진다. 공개 검색은 부분 문자열 검색과 한글 검색이 중요하므로 PostgreSQL full-text search보다 `pg_trgm` 인덱스를 먼저 사용한다. 게시물과 페이지에는 업로드 경로·마크다운 이미지 토큰을 제거한 `search_text` 컬럼을 두고, DB 트리거가 저장·수정 시 자동 갱신한다.
애플리케이션 쿼리는 `search_text LIKE '%검색어%'`만 확인해 인덱스가 탈 수 있게 하고, 제목·요약 앞부분 일치 결과를 먼저 보여 준다. 이렇게 하면 공개 검색 결과의 기존 부분 일치 감각은 유지하면서 검색 모달 입력마다 본문 전체를 반복 가공하는 일을 줄일 수 있다.
## 2026-07-03 v1.10.27 — 미디어 사용처 계산은 목록 요약과 분리한다
관리자 글 목록은 성능을 위해 본문을 제외한 요약 응답을 사용한다. 하지만 미디어 사용처 계산은 게시물 본문과 페이지 본문 안의 이미지 URL을 정확히 확인해야 하므로 같은 목록 함수를 재사용하면 본문 이미지가 모두 미사용으로 분류될 수 있다. 따라서 미디어 관리는 목록 UI용 함수가 아니라 미디어 참조 필드만 따로 조회하는 전용 함수를 사용한다.