[javascript] Fuse.js를 이용한 레시피 검색 기능 구현 방법

Fuse.js는 JavaScript에서 사용할 수 있는 강력한 검색 라이브러리입니다. 이 라이브러리를 사용하면 효과적인 텍스트 검색 기능을 손쉽게 구현할 수 있습니다. 이번 블로그에서는 Fuse.js를 사용하여 레시피 검색 기능을 구현하는 방법을 알아보겠습니다.

Fuse.js 설치

Fuse.js를 사용하기 위해 먼저 설치해야 합니다. NPM을 사용하여 설치할 수 있습니다.

$ npm install fuse.js

Fuse.js를 이용한 레시피 검색 구현

아래는 Fuse.js를 이용하여 레시피 검색 기능을 구현하는 예제 코드입니다. 이 코드는 레시피 데이터 배열에서 사용자의 검색어와 가장 일치하는 레시피를 찾아 반환합니다.

// Fuse.js 라이브러리 가져오기
const Fuse = require('fuse.js');

// 레시피 데이터 배열
const recipes = [
  { title: '치킨 스테이크', ingredients: '치킨 가슴살, 양파, 감자 전분, 후추' },
  { title: '스파게티 볶음밥', ingredients: '스파게티 면, 볶음밥 재료, 청양고추' },
  { title: '감자 전', ingredients: '감자, 밀가루, 식용유' },
  // ...
];

// Fuse.js 설정 객체
const options = {
  keys: ['title', 'ingredients'] // 검색 대상 필드 설정
};

// Fuse 인스턴스 생성
const fuse = new Fuse(recipes, options);

// 사용자 검색어
const searchTerm = '스파게티';

// 레시피 검색
const result = fuse.search(searchTerm);

// 검색 결과 출력
console.log(result);

위의 코드에서는 Fuse.js 라이브러리를 가져오고, 레시피 데이터 배열을 만듭니다. 그리고 Fuse.js 설정 객체를 생성하여 검색 대상 필드를 설정합니다. 이후 Fuse 인스턴스를 생성하고 사용자의 검색어를 지정합니다. 마지막으로 search 메소드를 호출하여 검색 결과를 가져옵니다.

결과 확인

위의 예제 코드를 실행하면 검색어와 가장 일치하는 레시피를 찾아 출력합니다. 예를 들어, ‘스파게티’를 검색어로 사용하면 ‘스파게티 볶음밥’이라는 레시피가 검색되는 것을 확인할 수 있습니다.

출력 결과:

[
  { title: '스파게티 볶음밥', ingredients: '스파게티 면, 볶음밥 재료, 청양고추' }
]

결론

Fuse.js는 간단하게 구현할 수 있는 레시피 검색 기능을 제공합니다. 이러한 검색 기능은 웹 응용 프로그램에서 유용하게 활용될 수 있습니다. Fuse.js의 다양한 설정 옵션을 사용하여 더욱 향상된 검색 기능을 구현할 수도 있습니다.

Fuse.js의 자세한 사용법은 공식 문서를 참고하시기 바랍니다.