피드로 돌아가기
Dev.toBackend
원문 읽기
PostgreSQL Full-Text Search로 구현하는 고성능 크리에이터 DB
Build a Searchable Creator Database with PostgreSQL and Node.js
AI 요약
Context
고가의 인플루언서 마케팅 플랫폼들이 제공하는 핵심 기능의 실체는 단순한 검색 가능 DB 구조. 기존 스프레드시트 방식은 데이터 증가 시 검색 및 필터링 성능 한계 발생. 복합 조건 검색과 데이터 최신성 유지를 위한 체계적인 백엔드 설계 필요.
Technical Solution
- PostgreSQL의
tsvector와GIN인덱스를 활용한 내장 Full-Text Search 구현으로 별도의 Elasticsearch 도입 없이 검색 성능 확보 - 필드별 가중치(Weight A, B, C) 설정을 통해 사용자명, 바이오, 카테고리 순의 검색 결과 관련성 랭킹 최적화
- SociaVault API를 통한 데이터 수집과 Prisma ORM 기반의 Upsert 로직을 적용하여 프로필 정보의 최신 상태 유지
- 최신 데이터 기준(7일)을 설정한 조건부 갱신 파이프라인 설계로 불필요한 API 호출 및 네트워크 비용 절감
- 플랫폼별(Instagram, TikTok) 데이터 스키마 정규화 및 인덱싱 전략을 통한 다차원 필터링 쿼리 최적화
Impact
- 복합 조건(플랫폼, 팔로워 수, 참여율, 니치) 쿼리 처리 속도 3ms 달성
Key Takeaway
복잡한 검색 엔진 도입 전 RDBMS의 내장 기능을 활용한 검색 최적화 가능성을 먼저 검토하여 아키텍처 복잡도 감소.
실천 포인트
검색 대상 필드가 많을 경우 Generated Column으로 tsvector를 통합 관리하고 GIN 인덱스를 적용하여 조회 성능을 높일 것