TL;DR
코사인 유사도만으로는 서로 다른 서비스에서 반복되는 공통 장애 원인을 찾기 어렵습니다. 작성자는 Postgres와 Qdrant에 해결된 incident를 저장하고 Hindsight의 `recall()`로 semantic·keyword·temporal 신호를 결합해 메모리를 모은 뒤, `reflect()`로 여러 기록의 패턴을 도출했습니다. 단일 메모리에서 reflection을 실행하면 비용과 잡음이 커져 `len(memories) >= 2` 조건을 추가했고, 그 결과 반복되는 pool-exhaustion 원인을 더 유용하게 포착했습니다.
실용적 조언
- 장애 기록을 벡터 유사도만으로 순위화하지 말고 semantic, keyword, temporal 신호를 함께 사용해 후보 메모리를 모으는 구조를 고려할 수 있습니다. 여러 기록이 확보된 뒤에만 reflection 단계를 실행하도록 `len(memories) >= 2` 같은 최소 입력 조건을 두면 단일 사례에서 발생하는 잡음과 불필요한 비용을 줄일 수 있습니다. `recall()`은 관련 기록 수집에, `reflect()`는 수집된 기록 사이의 반복 원인과 상위 패턴 도출에 나누어 사용하는 방식입니다.
섹션별 상세
용어 해설
- 코사인 유사도(Cosine Similarity)
- — 벡터 사이의 각도를 이용해 두 데이터가 얼마나 비슷한지 계산하는 지표입니다. 값이 높으면 의미적으로 유사하다고 판단하지만, 서로 다른 사건에 반복되는 공통 원인이나 시간적 연관성까지 직접 포착하지는 못합니다.
- 벡터 검색(Vector Search)
- — 텍스트나 사건을 임베딩 벡터로 변환한 뒤 가까운 벡터를 찾아 관련 기록을 검색하는 방식입니다. 의미가 비슷한 항목을 빠르게 찾는 데 유용하지만 키워드와 발생 시점, 여러 기록 사이의 패턴을 함께 판단하려면 추가 처리가 필요합니다.
- 시맨틱 검색(Semantic Search)
- — 단어가 정확히 일치하지 않아도 문장의 의미를 벡터로 비교해 관련 기록을 찾는 검색 방식입니다. 이 사례에서는 의미 기반 신호가 키워드와 시간 신호와 함께 사용되어 단순한 벡터 거리보다 넓은 회수 범위를 구성합니다.
- 풀 고갈(Pool Exhaustion)
- — 서비스가 사용하는 연결이나 작업 풀의 자원을 모두 소진해 요청 처리가 막히는 장애 원인입니다. 글에서는 여러 서비스에서 반복된 풀 고갈 사건을 개별 티켓의 유사도보다 상위 수준의 공통 패턴으로 찾아내는 사례에 등장합니다.
언급된 도구
해결된 incident를 메모리로 저장하는 데이터베이스
해결된 incident 메모리를 저장하고 검색하는 벡터 데이터베이스
`recall()`과 `reflect()`를 통해 메모리 회수와 패턴 도출을 수행하는 도구
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.