DB (4) 썸네일형 리스트형 Supabase 보안 대변화 완전 가이드 — 4월 28일부터 테이블 자동 노출 비활성화 Lovable, Claude Code, Cursor로 만든 테이블이 5월 30일부터 Data API에서 자동으로 사라집니다. 미리 대응하지 않으면 프로덕션이 조용히 터집니다.[핵심 요약]→ 변경: public 스키마 테이블의 Data API/GraphQL 자동 노출 비활성화→ 시작: 2026년 4월 28일 (옵트인 가능)→ 신규 프로젝트 기본값: 2026년 5월 30일→ 기존 프로젝트 적용: 2026년 10월 30일→ 영향: supabase-js, REST API, GraphQL API 전부→ 증상: PostgREST 403 에러 → "no permissions exist for anon/authenticated"→ 해결: 명시적 GRANT 추가 (테이블 생성 시 필수)→ RLS는 그대로: Grant와 .. Elasticsearch로 한국어 RAG 만드는 법 — Dense Vector KNN + BM25 + Nori 완전 정리 Elasticsearch로 RAG 시스템을 만들다 보면 이런 상황이 생겨요."의미 기반 벡터 검색도 하고 싶고, 정확한 키워드 검색도 하고 싶은데 어떻게 같이 써?"그리고 한국어 데이터를 다루면 또 이런 문제가 생겨요."형태소 분석 없이 BM25 하면 '검색엔진'으로 검색할 때 '검색'만 들어간 문서가 안 나오네."이번 글에서는 Dense Vector KNN으로 의미 검색을 하고, Nori 형태소 분석기 기반 BM25로 키워드 검색을 하고, 두 개를 하이브리드로 결합하는 방법을 처음부터 끝까지 정리해 드릴게요.전체 구조 먼저사용자 쿼리 │ ├─ 임베딩 변환 → Dense Vector KNN (의미 기반 검색) └─ 텍스트 그대로 → BM25 + Nori (키워드 기반 검색) │ .. RAG 시스템에 맞는 벡터 DB는 뭔가 — ChromaDB vs Qdrant vs Pinecone vs Elasticsearch 완전 비교 RAG 시스템을 만들 때 이런 고민이 생깁니다."벡터 DB가 이렇게 많은데 뭘 써야 하지? 다들 자기가 제일 빠르다고 하는데."벤더 벤치마크는 전부 자기한테 유리하게 나와 있어요. 이번 글에서는 ChromaDB, Qdrant, Pinecone, Elasticsearch 네 가지를 실전 관점에서 비교해 드릴게요.벡터 DB가 왜 필요한가일반 DB는 정확한 값으로 검색해요. "이름 = 홍길동"처럼요. 벡터 DB는 의미적으로 유사한 것을 찾아요. "강아지"를 검색하면 "멍멍이", "반려견", "puppy"도 찾아주는 거예요.RAG 시스템에서 "사용자 질문과 관련된 문서를 찾아서 LLM에 넘기는" 과정이 바로 벡터 검색이에요. 이 검색이 빠르고 정확해야 RAG 전체 품질이 올라갑니다.4개 한눈에 비교구분 Chro.. 검색 결과 순서가 바뀌는 원리 — TF-IDF, BM25, 쿼리 튜닝 한 번에 정리 (Elasticsearch) Elasticsearch 검색 점수의 비밀 — TF-IDF부터 BM25 튜닝까지 한 번에 정리했습니다Elasticsearch로 검색 기능을 만들다 보면 이런 의문이 생기실 거예요."왜 이 문서가 1등이지? 검색 점수는 도대체 어떻게 계산되는 거야?"이번 글에서는 Elasticsearch 검색 점수의 핵심 알고리즘인 TF-IDF와 BM25, 그리고 실무에서 쓰는 튜닝 방법까지 한 번에 정리해 드릴게요.1. 핵심 원리 — TF-IDF와 BM25는 뭘 보는가두 알고리즘의 평가 기준은 같습니다."문서 안에서 자주 등장하지만(TF 높음), 전체 문서에서는 희귀한 단어(IDF 높음)일수록 그 문서를 대표하는 핵심 키워드다."쉽게 말하면 "엘라스틱서치"라는 단어가 전체 문서 중 딱 몇 개에만 나오는데, 그 문서 안에.. 이전 1 다음