backend 7

Supabase 사용해보기 (5) | Edge Function으로 약품 정보 검색하기

4편에서 Voyage AI로 임베딩을 생성하고 Supabase에 벡터 데이터를 적재했습니다. 이번 편에서는 적재된 데이터를 실제로 검색하는 search Edge Function을 구현하고, RAG 파이프라인을 완성하는 과정을 다룹니다.이번 편에서 다루는 내용search Edge Function 구현similarity 임계값 설정 원리Claude API로 최종 답변 생성RAG 검색 품질 테스트1. 검색 아키텍처3편에서 등록한 search_medicines, search_medicines_hybrid 함수를 활용해 아래 흐름으로 검색합니다.사용자 질문 │ ▼[Voyage AI] → query 임베딩 생성 (input_type: "query") │ ▼[search_medicines] → ..

AI 2026.03.08

Supabase 사용해보기 (4) | Edge Function으로 데이터 적재하기

개요1편에서 Supabase 테이블과 검색 함수를 구성했습니다. 이번 편에서는 Supabase Edge Functions를 활용해 실제 약품 데이터를 벡터 DB에 적재하는 과정을 다룹니다.이번 편에서 다루는 내용Supabase Edge Function 작성 (ingest)Voyage AI로 임베딩 생성로컬 JSON 파일을 Edge Function으로 전송하는 Python 스크립트1. Supabase 새 API 키 체계 이해Edge Function을 작성하기 전에 Supabase의 새 API 키 체계를 이해해야 합니다.Supabase는 기존의 JWT 기반 키(anon, service_role)에서 새로운 키 형식으로 전환 중입니다.구분 기존 신규공개 키anon (JWT)sb_publishable_...비밀..

AI 2026.03.08

Supabase 사용해보기 (3) | Supabase Vector DB 구성하기

저번 포스팅에선 Supabase를 회원가입한 뒤 키를 발급 받았고 간단한 테이블을 생성하여 CRUD를 했습니다.이번 포스팅에선 RAG 관련한 간단한 테스트 진행을 위해 새 프로젝트를 추가하고 벡터 DB를 생성하는 포스팅을 해보겠습니다.이번 시리즈에서는 공공 약품 데이터를 활용해 자연어로 질문하면 관련 약품 정보를 찾아주는 RAG(Retrieval-Augmented Generation) 시스템을 구축합니다.예를 들어 "임신 중에 먹으면 안 되는 약은?", "아스피린 부작용이 뭐야?" 처럼 자연어로 질문하면 관련 약품 정보를 검색하고 Claude가 답변을 생성해주는 시스템입니다.전체 스택Supabase (pgvector) — 벡터 DB 및 APIVoyage AI — 임베딩 모델 (Anthropic 공식 권장..

AI 2026.01.31

Supabase 사용해보기 (2) | Supabase 구성하기

이전 포스팅에선 Supabase가 뭔지 대략 찍어먹어봤습니다. 이번 포스팅에선 Supabase를 회원가입하고 Vector DB를 만들어보기 전간단한 테이블을 만들고 CRUD를 해볼까해요. 1. Supabase 회원가입하기https://supabase.com/ 에 접속하여 Sign In 클릭 후 GitHub로 로그인을 합니다. (이메일 인증도 같이)GitHub로 가입하면 나중에 프로젝트와 연동할 때 편리합니다. Edge Functions나 GitHub Actions를 쓸 계획이라면 GitHub 가입을 추천해요. 가입이 완료되면 Organization, proejct를 설정합니다. 이제 프로젝트가 생성되었습니다! 2. API 키 확인 및 저장프로젝트 생성 후 좌측 사이드바에서 Project Setting..

AI 2026.01.12

DB 통신 속도 증가 Cacheable CacheEvict redis 활용

무작정 Cache를 사용하게 되면 오히려 성능 저하가 올 수 있다. 따라서 자신이 가지고 있는 비즈니스로직에 정말 필요하다면 활용하길 바란다. @Cacheable, redis, @CacheEvict, redisConfig(lettuce) IDE : Intellij DB : Redis 글에서는 토큰 관리를 위해Redis, Cacheable, CacheEvict를 활용하였다. 하루 한 번 토큰을 갱신하는데계속 DB에 접근하기에는 성능이 저하가 우려되어 Cache 용도로 Redis를 활용하게 되었다. 흐름은 아래와 같다. RedisConfig 설정 @Configuration @EnableCaching public class RedisConfig { @Value("${spring.redis.host}") pri..

SpringBoot 2021.12.21

springboot로 Rest api 만들기(2) HelloWorld

전체 소스코드 https://github.com/GHGHGHKO/Springboot/tree/main/pepega_chapter_2 GitHub - GHGHGHKO/Springboot: 블로그에 업로드 된 소스코드 블로그에 업로드 된 소스코드. Contribute to GHGHGHKO/Springboot development by creating an account on GitHub. github.com 이전 포스팅에서는 ​ http://start.spring.io/ 위 웹사이트에서 프로젝트를 만들고 실행해보는 실습을 했다. ​ localhost:8080으로 접속하여 서버가 작동하는지 테스트했다. ​ 이번 포스팅에서는 HelloWorld를 만들어보려고 한다. ​ java는 src/main/java 하위에..

SpringBoot 2021.10.21

SpringBoot로 Rest api 만들기(1) Intellij community, start.spring.io

완성된 소스코드 https://github.com/GHGHGHKO/Springboot/tree/main/pepega_chapter_1 GitHub - GHGHGHKO/Springboot: 블로그에 업로드 된 소스코드 블로그에 업로드 된 소스코드. Contribute to GHGHGHKO/Springboot development by creating an account on GitHub. github.com 최근 springboot를 활용하여 백엔드 프로젝트를 진행하게 됐다. ​ 처음부터 학습할겸 프로젝트도 진행할 겸 조금 길 수도 있는 포스팅을 도전하고자 한다. ​ Intellij에서 Springboot2를 실습 프로젝트를 포스팅 할 예정이다. ​ 사전에 로컬 혹은 서버에 java 11 버전이 설치되어있..

SpringBoot 2021.10.21