기능 deep dive

Search - 검색

기꺼이 2023. 6. 5. 17:38

1. 검색

1) 기능

  • 검색을 통해 사용자는 빠르게 콘텐츠를 찾을 수 있음
  • 검색을 통해 텍스트 필드에 검색어를 입력하고, 관련 결과를 볼 수 있음

2) 일반적인 검색 UI 특징

  • 수정 가능한 텍스트 필드
  • 검색 버튼, 지우기 버튼, (선택적 : 플레이스홀더* 텍스트)
  • 과거 검색어 제안, 검색어 자동 완성, 음성 입력 등

3) 일반적인 검색 이용 과정

검색 기능 선택 > 메인 화면 진입 > 검색어 입력 > 검색 결과 확인 > 결과 정렬/필터

  • 검색 메인 화면 진입 : 인기 검색어나 주요 카테고리, 추천 콘텐츠 등 확인 수도 있음
  • 검색 입력 박스(input field) 확인 : 에서 검색 가능한 범위와 대상 파악
  • 검색어 입력
    • 입력하는 과정에서 대상이 존재하는지 안내(자동완성이나 연관 키워드 등)
    • 음성, 이미지, 위치 기반 등을 통한 검색 등 다양한 편의 기능 제공
    • 검색어 삭제, 검색 취소
  • 검색 기록 확인 : 최근 검색어 확인/삭제/전체삭제, 검색어 자동저장 켜기/끄기 등
  • 검색 결과 확인
    • 있는 경우 : 갯수, 유사한 검색 결과를 확인할 수 있는 방법, 필터나 정렬, 연관 키워드 등
    • 없는 경우 : 명확한 피드백 + 가능한 추가 조치 제안
  • (옵션 : 인기, 추천 검색어 노출)

4) 검색 기능 제공에서 고려해야 하는 요소(w/주요 pain point)

  • 검색이 막막한/어려운 경우
    • 콘텐츠 카테고리를 검색창 하단에 노출 : 콘텐츠 범위에 대한 정보 제공, 추가 탐색의 가능성
    • 추천/인기 검색어 노출
    • 최근 검색 내역 노출 : 내가 과거에 입력했던 값을 통한 검색 보조
    • 플레이스 홀더 : 검색 인풋 필드에 힌트 제공, 구체적인 예시를 안내하여 검색 방향성에 대한 정보 제공(가이드 문구)
    • 개인화 : 사용자 맞춤형 키워드 제공
  • 검색어 입력(과정)이 불편한 경우
    • 이미지/QR/바코드/음성/태그를 통한 검색 제공(필요한 서비스의 경우)
    • 실시간 피드백 제공 : 연관 키워드를 검색창 아래에 제공 > 입력과 동시에 결과 알 수 있음(하이라이트 등도 참고)
    • 입력 키워드가 포함된 내용 안내
  • 검색 결과가 많은 경우(검색 결과 내에서 원하는 대상을 찾기 힘든 경우)
    • = 관련 없는 결과가 너무 많이 표시되는 경우
    • 검색 결과를 갯수로도 표현
    • 탭이나 필터, 정렬, 특정 기준 제외 등 제공으로 세분화/정리가 가능하도록
  • 검색 결과가 없는 경우
    • 검색 결과가 없는 상태를 적절한 텍스트로 안내
    • 명확한 피드백 제공 : 다른 검색어나 구체적 행동과 같이 기타 해결 방법 제시 등
    • 서비스 특성을 고려하여 필요에 따라 직접 등록 요청이나 키워드 알림 등을 검토할 수 있음

5) 검색 기능 표시에 따른 분류

  • persistent search
    • 서비스/앱의 중심이 검색일 경우
    • 툴바에 열려있는 검색 텍스트 상자를 통해 검색 시작
    • 텍스트 필드 아래에 과거 검색 제안을 표시할 수 있음
  • expandable search
    • 검색이 주요한 초점이 아닌 경우
    • 검색 아이콘을 통해 검색창에 유입

 

2. 권장 사항

  • 검색을 안내하는 데 도움이 되는 힌트 제공하는 것 고려(유용한 정보를 제공하는 텍스트일 경우)
  • 검색 필드 근처에 유용한 바로 가기 및 기타 콘텐츠 제공
  • 지우기 버튼 포함
  • 개인정보 보호 고려 : 검색 결과의 범위를 빠르게 좁힐 수 있는 범위 표시줄 제공하는 것 고려
  • 검색 시작 시점
    • 입력을 시작하자마자 검색 시작 : 지속적으로 정제된 결과 제공
    • 사용자가 return 또는 enter를 선택할 때까지 기다리기 : 사용자가 입력하는 동안 최근 검색어 또는 제안한 용어 중에서 선택할 수 있는 메뉴 표시하는 것이 좋음
  • 목적 검색 : 능동적으로 정보를 탐색
    비목적 검색 : 수동적으로 소비하는 행위

 

3. 검색 기능의 구조

  • 검색기 : 크롤러, 엔진, 형태소 분석기(형태소 사전)로 이루어짐
  • 목표 : 사용자가 요구하는 바에 가장 적합한 데이터를 제공
    키워드에 대한 요구도를 분석하는 알고리즘 개발, 튜닝을 통해 정확도를 개선 > 꾸준히 향상시키는 부분
  • 검색엔진의 구성에서 검색 DB와 검색 결과를 보여주는 화면 UI가 큰 영향을 미친다.
    > 결과물을 어떻게 보여줄 것인가?
    • 검색 결과 안내 : 검색 데이터가 몇개 나왔는가?
    • 겸색 메뉴 : 탭/필터와 같은 sorting 기능, 해당한 scope에 대한 결과물만 노출
    • 인기 검색어
    • 검색결과 페이지 : 한 화면에 몇 개씩 노출할 것인가? 물론 검색 데이터에 따라 다름
  • 서비스 마다 검색 기능의 중요성/필수 정도가 달라질 수 있다. 서비스 특성과 사용자의 이용 행태 등을 고려해야 함
    ex. 실시간성이 중요한 컨텐츠 소비 vs 과거 데이터 활용이 더 빈번한 경우 등

 

 

 

 

*플레이스홀더 placeholder : 입력 필드에 힌트처럼 입력 예시를 표시해놓은 것

 

참고 자료 :

 

 

개인적인 메모 :

  • 서비스에 검색 기능을 도입한다면 그 이유는?
  • 문제 : 대상의 위치가 예측이나 파악이 안됨, 찾을 수 없음
  • 목적 : 이용하고자 하는 대상 찾기, 정확히/빨리 찾기 위함
  • 원인 : 탐색 과정에서의 불 충분함
  • 해결 : 반드시 검색 정확도를 높이기만 하는 것이 최적의 해결책은 아닐 수 있음
  • 서비스 마다 사용자가 검색을 하게 되는 동기가 조금씩 차이가 있을 수 있음 > 서비스의 scale이나 방향이 달라짐
    특히 웹/앱에서의 검색은 차이가 있음. web에서는 보다 고차원의 검색 process를 시도해볼 수 있다고 생각함(마우스 키보드로 정교한 조작이 가능/화면이 넓음), app에서는 좀 더 간단한 action으로 목표에 도달해야 하는 제약이 있음
    ex) 메뉴 찾기 어려워서, 정보 찾기 어려워서, 포털과 같이 서비스 주요 목적이 검색인 경우 등등 
  • 검색서비스의 방향성은? 목표의 우선순위 설정
    정확성, 개인 맞춤형, 속도, ....
  • 검색 기능 개선과 그 효과를 어떻게 측정할 수 있을까?