목록 보기
biz-crm IndexedDAO 적용기
백엔드

biz-crm IndexedDAO 적용기

채널톡
채널톡
2026년 3월 5일

두줄요약

내부 백오피스 검색 지연 문제를 고객 사용 방식 인터뷰로 먼저 확인했습니다. IndexedDAO를 도입해 인덱스 히트를 보장하고 8초 쿼리를 200ms대로 개선했습니다.

문제 상황

  • biz-crm 내부 백오피스에서 특정 페이지 검색이 지연되거나 표시되지 않는 문제
  • 1000만 건 이상 대용량 테이블에서 범용 Expression 필터 사용 시 Full Table Scan과 타임아웃 발생

원인 분석

  • LOWER(col) 기반 대소문자 무시 검색이 기존 인덱스를 무력화
  • equalIgnoreCase, containsIgnoreCase 같은 JOOQ 메서드가 인덱스 미활용 패턴 생성
  • 실제 사용자 사용 패턴과 달리 범용 필터가 과도하게 설계된 상태

해결 방법

  • 사용자 인터뷰로 실제 조회 패턴을 확인하고 필요한 조건만 남기는 방향으로 재정의
  • 큰 테이블에 한해 IndexedDAO 패턴을 도입해 SearchRequest 단위로 검색 로직 분리
  • 기존 Expression Filter는 유지하되, 성능 중요한 조회는 인덱스 히트를 보장하는 DAO로 전환

트레이드오프

  • DB 함수 기반 인덱스는 코드 수정이 적지만, 사용하지 않는 조건까지 인덱스를 늘려야 하는 부담
  • LOWER 제거는 단순하지만 기존 범용 필터 전반에 영향이 커 사이드이펙트 위험
  • IndexedDAO는 별도 추상화 비용이 있지만 실제 사용 패턴에 맞춘 확장성과 재사용성 확보

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...