[Flutter & Firestore] full text search 구현하기 - 1
미리 써놓는 강의글.. 이번주에서 다음주, 아마 3월 중후반 까지는 시간 분배가 어려울 것 같아서 이 기능 구현을 잠시 내려놓을 것이지만,,
그래도 꼭 구현할 것이기에 미리 써놓는 첫 번째 게시글.
소규모 프로젝트를 시작할 때 서버를 사용하면 고정적인 비용이 나가기에 Firestore를 많이 쓰는데, Firestore의 크나큰 단점이라면 역시
풀 텍스트 검색이 안된다는 점이다. prefix나 suffix 검색만 지원이 되기에 플랫폼성 앱을 만들 때는 외부 서드 파티 서비스를 이용해야 한다..!
그 중에서도 Firestore가 공식적으로 권장하고 있는 방법은 크게 3가지가 있는데
- Elastic Search
- Algolia
- Typesense
Elastic Search는 옛날에는 월 고정비용이 16달러였지만, 현재(2024년 3월 12일)를 기준으로 월 95$(약 10만원) 의 고정 비용이 지출된다. 이럴 바엔 AWS 서버를 만들고 말지..
Typesense의 경우에도 마찬가지로 고정 비용이 나가고, 다른 라이브러리들에 비해 지원이 매우 떨어진다.
이는 Flutter의 Typesense library의 지원만 봐도 알 수 있다.
Typesense의 또 하나의 단점을 뽑자면.. Firestore에서 full text 검색을 위해 이렇게 하고 있는 과정이 결국엔
요청 -> cloud functions 을 거쳐서 서칭 서비스로 이동하여 여기서 데이터를 저장하고 인덱싱하게 되는데,
처음부터 도입한다면 상관없지만, 도중에 도입할 경우 기존의 데이터들을 쌓아놓을 수가 없는 어이없는 단점이 있다.
따라서 이번 프로젝트에는 Algolia를 도입할 예정 !!
Algolia의 가장 큰 장점이라고 생각하는건.. 역시나 Pay as you go
나같은 개인에게는 정말 빛과도 같은 존재..!
아무튼 이 구현을 앞으로 글로 다뤄보겠습니다. 당분간은 못 하겠지만..!
조만간을 기약하며 이거 쓰고 이제 자야겠다.