Portfolio
각 사례를 누르면 문제, 해결, 결과를 담은 상세 페이지로 이동합니다.
검색 엔진 내재화 PoC
외부 AI 검색을 자체 하이브리드 검색으로 바꿔 검색 품질 약 21.1% 향상
- 외부 AI 검색의 반복된 품질 불만과 장애 시 LIKE 검색 fallback을 OpenSearch 기반 자체 하이브리드 검색 PoC로 대체
- BM25 키워드 검색과 KURE-v1 벡터 검색을 RRF로 융합하고 상위 30건을 cross-encoder로 재정렬해 골든셋 150개 NDCG@10 0.6723 → 0.8139(약 +21.1%)
- 임베딩과 재정렬이 실패하거나 1초를 넘기면 앞 단계 결과로 응답. 키워드 검색만 남아도 0.7182로 외부 서비스보다 높음
트리거 기반 증분 색인으로 상품 변경의 검색 반영 주기를 하루 → 1분으로 단축
- 다음 날 오전 9시에야 검색에 나오던 상품 변경을 1분 주기 증분 색인으로 반영
- PG 트리거로 쓰기 경로(JPA, JPQL, MyBatis, SQL)와 상관없이 바뀌거나 지워진 상품을 변경 기록 테이블에 적재
- backlog를 전환 뒤 새 인덱스에 반영해 전체 색인과 겹쳐도 변경을 놓치지 않음
큐머니 유효기간 프로젝트
적립금 원장을 Lot과 Usage 모델로 재설계해 유효기간 도입
- 거래 이력 합계로만 관리하던 잔액을 적립 건별 Lot으로 분리해 유효기간과 소멸 도입
- Usage에 차감액과 결제 당시 만료일을 남겨 부분/다회 환불의 가능액과 만료 여부 판단
- 기존 원장은 소멸이나 환불 같은 지난 증감 이력을 남기는 용도로 유지
CMS 자동이체 기반 구독 시스템
결과를 알 수 없는 출금을 미확정으로 분리하고 대사 배치로 확정해 중복 출금 차단
- 출시 전 효성 스펙 검토에서 결과를 알 수 없는 출금 응답을 발견하고 실패 대신 미확정으로 분리
- 미확정 출금이 남아 있는 동안 같은 마트의 새 출금을 막아 재시도에 의한 중복 출금 차단
- 바로 조회와 5분 주기 대사 배치로 결과를 확정하고, 1시간 넘게 남은 건은 관리자 확인 대기로 전환
등록 중 이탈로 남은 서명 대기 건과 쓰지 않는 계좌를 일일 정리 배치로 해소
- 서명 대기로 20건 넘게 쌓인 이탈 등록과 첫 출금 없이 남은 대표 결제수단을 일일 배치로 정리
- 효성CMS 서명 링크부터 닫고 DB의 등록을 만료 처리해 만료 뒤 효성CMS에만 계좌가 생기는 일 차단
- 대표 지정 후 1시간(첫 출금 시한 10분에 여유를 둔 기준)이 지나도록 첫 출금이 없으면 해제해 진행 중인 첫 출금과의 충돌 방지
이벤트메이커
지급 API 비동기 분리로 참여 응답 지연 개선 및 지급 지연 알림 구성
- 사용성 테스트에서 발견한 참여 응답 지연을 지급 비동기 분리로 개선해, 지급 서버 지연 구간에도 500~600ms → 100ms 이하 유지
- DB에 남긴 지급 이력으로 미완료 건을 재처리하고, 재시도는 같은 거래 ID로 보내 중복 지급 방지
- 통상 1시간 이내 지급을 안내하고, 5분 넘게 대기하거나 재시도가 소진된 건은 Datadog 알림으로 감지