개발 slecs

헤더 전역 검색으로 회원·정산·쿠폰·주문 한 번에 조회

목차

헤더 전역 검색 추가 (메뉴 + 하위파트너/회원/정산/쿠폰/주문)

헤더 전역 검색 추가 (메뉴 + 하위파트너/회원/정산/쿠폰/주문) 기능을 구현했음.

배경

관리 항목이 늘어날수록 메뉴 탐색만으로 원하는 데이터를 찾기 어려워짐. 헤더 검색창에서 메뉴, 채널 사용자, 정산, 쿠폰, 주문 등을 동시에 검색할 수 있으면 운영 효율이 올라감.

구현 방식

SQL UNION ALL로 여러 소스를 한 번에 조회하고, 프론트에서 타입별로 그룹화해서 표시했음. 타이핑 300ms 후 debounce로 요청을 보내서 불필요한 서버 부하를 줄였음.

코드 예시

-- 헤더 전역 검색 쿼리
SELECT 'menu' as type, menu_name as label, menu_url as url, NULL as id
FROM 내부테이블
WHERE menu_name LIKE CONCAT('%', #{keyword}, '%')
UNION ALL
SELECT 'user' as type, user_name as label, '/user/' || id as url, id
FROM 내부테이블
WHERE user_name LIKE CONCAT('%', #{keyword}, '%')
  OR email LIKE CONCAT('%', #{keyword}, '%')
LIMIT 20;

검토 포인트

성능 관점에서 LIKE 검색은 인덱스를 타지 않음. 검색량이 늘어나면 전문 검색 인덱스(FULLTEXT INDEX) 도입을 고려해야 함. 현재는 내부 운영 도구이므로 트래픽이 많지 않아 LIKE로 충분했음.

정리

전역 검색 하나로 여러 관리 화면을 빠르게 이동할 수 있게 됐음. 특히 사용자 찾기, 정산 내역 조회 작업에서 체감 개선이 컸음.

다음

댓글 0

첫 댓글 달아줘.