삽질 기록

테스트 짜다가 코드를 고치기

지난 시간 지난 시간에 캐시 히트 테스트를 짜봤습니다. 통과했는데 아무것도 안 지키고 있었고, 이리저리 코드를 박살내고 나서야 무언가 잘못된걸 알았습니다. 이번에는 반대쪽인 캐시 미스를 볼 차례입니다. 근데 이거 짜다가 결국 QueryVectorService 코드를 고치게 됐습니다. 그 얘기까지 해보겠습니다. 캐시 미스 getVector의 el...

테스트는 통과했는데 통과가 아니다?

지난 시간 지난 시간에 벡터를 재활용 하려고, DB에 캐시로 활용 할 수 있게 저장을 했죠. 원래라면 메모리 캐시를 얹을 차례이긴한데, 저번에 코사인 유사도 테스트를 짜봤는데 익숙하지가 않아서 테스트를 좀 연습해볼 겸 정리해볼까 합니다. 그래서 테스트를 왜함? 테스트를 왜 할까요? 어차피 그냥 서버 키고 localhost에서 할 수 있는데, 굳이...

벡터 재활용

지난 시간 저번 시간에 벡터를 재사용한다고 했었죠. 우리가 매번 “경제”를 검색할때 마다, API를 호출해서, 요청 보내고, 받고 하면 느리겠죠? 실제로 측정에서도 API 호출 시간이 제일 길었고요. 이유는 간단합니다. 일단 api를 호출안해도 되고, 또 호출 안하니깐 돈이 안들죠. 그러면 어떻게? 일단 2가지 방법을 고려해봤습니다. 첫번째는 램...

코사인 유사도와 벡터 검색

임베딩 활용한 검색기 만드는 중 임베딩으로 검색하는 걸 만들어 보고 있습니다. 예를 들어 “코스피 하락”이라고 검색했는데, 그 단어가 없지만, 연관성이 깊은 단어를 찾아주는거요. 예를들어, “레버리지 규제”, “반도체 하락 마감” 이런것들이요. 이게 왜 필요하냐면, 그냥 검색은 글자가 똑같아야 찾아주거든요. “코스피 하락”로 검색하면 “사이드 카 ...