[javascript] Fuse.js를 이용한 실시간 경매 정보 검색 기능 구현 방법

이 블로그 포스트에서는 Fuse.js를 사용하여 실시간 경매 정보 검색 기능을 구현하는 방법에 대해 알아보겠습니다.

Fuse.js란?

Fuse.js는 JavaScript로 작성된 가벼운 검색 라이브러리입니다. 이 라이브러리는 다양한 검색 기능을 제공하며, 실시간 응용 프로그램에서 자주 사용됩니다. Fuse.js는 텍스트 기반의 데이터를 검색하고 정렬하기 위한 다양한 알고리즘을 제공합니다.

이제 Fuse.js를 사용하여 실시간 경매 정보 검색 기능을 구현해보겠습니다.

설치

먼저, Fuse.js를 설치해야 합니다. 프로젝트의 루트 디렉토리에서 아래 명령어를 실행하여 Fuse.js를 설치합니다.

npm install fuse.js

사용 방법

  1. 데이터 구조 설정

Fuse.js를 사용하기 위해 우선 데이터 구조를 설정해야 합니다. 예를 들어, 다음과 같이 경매 아이템의 배열을 만듭니다.

const auctionItems = [
  { id: 1, title: '아트워크', price: 1000 },
  { id: 2, title: '가구', price: 2000 },
  { id: 3, title: '보석', price: 3000 },
  { id: 4, title: '전자제품', price: 4000 },
  // ...
];
  1. Fuse 객체 생성

다음으로, Fuse 객체를 생성하여 검색 기능을 설정합니다.

const options = {
  keys: ['title'],
};
const fuse = new Fuse(auctionItems, options);

위 코드에서 keys는 검색할 속성을 지정합니다. 위 예제에서는 title 속성만을 검색 대상으로 설정하였습니다. 원하는 속성을 선택하여 설정할 수 있습니다.

  1. 검색 기능 실행

이제 검색 기능을 실행할 수 있습니다. 예를 들어, 사용자가 입력한 검색어를 기반으로 경매 아이템을 검색하는 함수를 작성해보겠습니다.

function searchAuctionItems(query) {
  const result = fuse.search(query);
  return result.map(({ item }) => item);
}

위 함수는 query라는 검색어를 입력받아 해당 검색어와 일치하는 경매 아이템을 반환합니다.

  1. 실시간 검색

실시간으로 검색 기능을 제공하기 위해, 키보드 입력 이벤트를 사용하여 검색어를 업데이트하고 검색 결과를 출력합니다.

const searchInput = document.querySelector('input');

searchInput.addEventListener('input', (e) => {
  const query = e.target.value;
  const searchResult = searchAuctionItems(query);
  // 검색결과를 출력하는 로직 작성
});

위 코드에서 searchInput은 사용자가 입력한 검색어를 받는 입력 필드를 가리킵니다. input 이벤트 리스너를 등록하여 사용자가 검색어를 입력할 때마다 실시간으로 검색하여 결과를 가져옵니다.

이제 Fuse.js를 사용하여 실시간 경매 정보 검색 기능을 구현하는 방법에 대해 알아보았습니다. Fuse.js는 강력한 검색 기능을 제공하므로, 다양한 실시간 응용 프로그램에서 유용하게 사용할 수 있습니다.

더 많은 정보를 원하시면 Fuse.js 공식 문서를 참조하시기 바랍니다.