Skip to content

[Feat] 질문 임베딩 + search_queries 저장 #44

Description

@kangcheolung

📌 Description

질문 텍스트를 벡터로 변환하고(F-SEARCH-01/02), 검색 요청 자체를 로그로 남긴다(F-SEARCH-03). 임베딩 직후 PROCESSING 상태로 기록하고, 이후 성공/실패 여부에 따라 상태를 갱신한다. 벡터화된 값을 바로 저장까지 이어가는 흐름이라 하나의 이슈로 묶는다.
✅ To-do

F-SEARCH-01/02 — active 모델 조회 + 질문 임베딩

A의 EmbeddingModelRepository/서비스 import하여 active 모델 조회 재사용
active 모델 0건 → 500 INTERNAL_ERROR 처리
QueryEmbeddingService — RestClient 기반 /embed 호출 (baseUrl은 application.yml, timeout 3~5s)
dimension 불일치 → 500 INTERNAL_ERROR
서버 무응답/타임아웃 → 커스텀 예외 → 503 SERVICE_UNAVAILABLE
빈 문자열 질문 → 400 VALIDATION_ERROR
단위 테스트 (정상 / dimension 불일치 / 타임아웃)

F-SEARCH-03 — search_queries 저장

SearchQueryRepository + insert 로직 (PROCESSING)
성공 시 SUCCESS + latency_ms 갱신
실패 시 FAILED + error_message 갱신 (임베딩 서버 장애 포함)
search_type='VECTOR' 고정 (MVP)
저장 검증 테스트 (성공/실패 케이스 모두 로그 남는지)

📒 기타

패키지: domain/embedding (QueryEmbeddingService), domain/search (SearchQueryRepository)
503이어도 Spring 본체가 죽으면 안 됨 (격리 원칙)
search_queries.query_id가 이후 search_results와 RAG 블록의 부모 키
latency_ms는 통합 테스트 때 포트폴리오 성능 증빙으로 활용

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions