🔍

검색 및 필터 기능

Created
2023/11/27 01:51
담당자
섬네일
ezgif.com-crop (3).gif

화면

배경

사용자가 검색을 할 때, 보다 편하고 원하는 결과를 출력할 수 있도록 검색 기능을 제공하고 싶었습니다.

구현한 기능

BE
Querydsl을 사용한 검색 기능 처음엔 순수 JPA를 사용하여 여러 검색 조건들에 맞게 함수를 작성하여 검색 기능을 제공했지만, 조건이 하나씩 늘어날 때마다 조건문과 함수가 2배씩 증가하여 코드도 복잡해지고 좋지 못했습니다. 그로 인하여 여러 방법을 모색하다가 jpa를 사용할 때 보다 보기 좋고 jpql보다 안전한 방법이라 생각하여 querydsl을 선택했습니다.
FE
키워드 검색 시 서버에 과도한 api 요청이 전송되는 것을 막기 위해 사용자가 키워드 입력을 마쳤을 때 검색이 진행되도록 했습니다.
키워드 필터 검색 시 사용자가 선택한 필터를 input창에 입력해주어 사용자 편의성을 높였습니다.
사용자 접근성을 고려해, 음성 검색을 추가하였습니다. 음성 검색 결과를 input창에 입력해주어 사용자 편의성을 높였습니다.
최신순, 인기순, 내림차순, 오름차순으로 정렬이 가능하도록 했습니다.

추가적으로 구현하고 싶은 기능

querydsl contains를 사용한 검색 기능을 elastic search을 사용하고 싶습니다.
현재는 querydsl contains를 사용하여 검색 기능을 구현했지만, 실무에서 더 많이 사용한다는 elastic search를 구현하여 좀 더 정확한 검색 기능을 제공하고 싶습니다.