TL;DR
작성자는 Cosine similarity가 87% 유사하다고 판정한 두 장애조차 세 번째 장애와 공유한 근본 원인을 놓친 사례를 제시했습니다. Postgres와 Qdrant에 해결된 장애를 memory로 저장한 뒤 Hindsight의 recall()로 semantic·keyword·temporal 신호를 결합해 기억을 회수하고, reflect()로 여러 서비스에 걸친 반복 패턴을 찾았습니다. 단일 memory에서 reflect()를 실행하면 잡음과 비용이 커져 len(memories) >= 2 조건을 둔 뒤 결과가 더 유용해졌습니다.
실용적 조언
- 장애 기록을 Cosine similarity 하나로만 순위화하지 말고 semantic, keyword, temporal 신호를 함께 사용해 후보 memory를 회수해야 합니다. 이렇게 하면 표현은 다르지만 발생 시점이나 핵심 용어가 겹치는 사건을 함께 비교할 수 있습니다. 다만 이 글은 세 신호의 가중치나 정량적 성능 비교까지는 제공하지 않습니다.
- reflect()처럼 여러 기억 사이의 패턴을 찾는 연산은 비교 대상이 2개 이상일 때만 실행하도록 조건을 둘 수 있습니다. 단일 memory에서 패턴 추론을 시작하면 잡음에서 의미를 만들 가능성이 커지고 연산 비용도 증가하기 때문입니다. 글에서 사용한 구체적인 조건은 len(memories) >= 2입니다.
섹션별 상세
용어 해설
- 코사인 유사도(Cosine Similarity)
- — 두 벡터의 방향이 얼마나 가까운지 측정하는 검색 지표입니다. 장애 기록을 임베딩 벡터로 바꾼 뒤 각도 기반 유사도를 계산해 비슷한 사건을 찾지만, 표현이 다른 공통 원인까지 포착하지 못할 수 있습니다.
- 벡터 검색(Vector Search)
- — 텍스트를 벡터로 변환한 뒤 데이터베이스에서 의미적으로 가까운 항목을 찾는 방식입니다. 장애 대응에서는 과거 티켓을 검색하는 데 쓰이지만, 키워드와 발생 시점 같은 신호를 함께 반영하지 않으면 관련 사건의 연결 고리를 놓칠 수 있습니다.
- 시맨틱 검색(Semantic Search)
- — 단어가 정확히 일치하지 않아도 문장의 의미적 유사성을 기준으로 관련 기록을 찾는 검색 방식입니다. 이 글의 recall()은 시맨틱 신호를 키워드와 시간 신호에 결합해 단일 유사도 순위보다 넓은 장애 후보를 회수합니다.
- 근본 원인 분석(Root Cause Analysis)
- — 서로 달라 보이는 여러 장애가 같은 원인에서 발생했는지 추적하는 분석 과정입니다. 장애 기록을 개별 유사도 점수로 나열하는 대신 여러 기억 사이의 반복 패턴을 찾으면 서비스가 달라도 공통 원인을 파악할 수 있습니다.
언급된 도구
해결된 incident를 memory로 저장하는 데이터베이스
저장된 incident memory를 벡터 검색하는 데이터베이스
incident memory에 recall()과 reflect()를 적용해 관련 기록과 반복 패턴을 찾는 도구
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.