feat. 쉽지 않습니다만... 최선을 다해보겠습니다.
아마도 초기 mvp를 포함하여 거의 모든 서비스에 있는 기능이 바로 [검색] 일것이다.
별생각 없이 하루에도 수십 번씩 사용해서 간단한 기능처럼 느껴지지만 검색 기능만큼 어려운 것도 없을 것이다. 사실 나도 잘 몰랐다. 이렇게나 예외사항이 많고 어려울 줄은...
그래서! 검색 기획 시에 고려했던 사항들을 정리해보았다.
(오류가 있다면 알려주시길!)
아마 이렇게 이야기한다면 개발자분들에게 엄청난 질문을 받을 것이다. (예전의 나처럼..��♂️) 실시간 검색인지, 띄어쓰기를 포함해야 하는지 등... 그렇다면 어떤 식으로 전달해야 할까?
우선 검색 기획에는 크게 두 가지로 구성했다.
1. 검색 전에 들어가야 하는 것들
2. 검색 후에 들어가야 하는 것들
우선 검색어 입력 전 화면이 필요하다. 가장 단순하게는 검색창에 [검색어를 입력해주세요.]라는 안내 문구를 넣어주는 것이다. 하지만 유저에게 가장 먼저 인지되는 것은 빈 화면. 그래서 두 번째 예시와 같이 빈 화면에 크게 텍스트를 넣어준다. 빈 화면으로 놔두지 않고 검색 페이지라는 것을 인지시켜줄 수 있다.
여기까지는 개발에 크게 관계없이 쉽게 진행할 수 있지만 마지막 [추천 / 인기 검색어] 리스트 같은 경우는 개발을 고려해야 한다. [추천 검색어]의 경우 관리자 페이지에서 설정, 서비스에서 홍보하고 싶거나 유저에게 보여주고 싶은 단어들과 몇 개까지 보여줄 것인지 설정하면 된다. [인기 검색어]의 경우에는 유저가 해당 서비스 내에서 가장 많이 검색한 단어를 보여주면 된다.
검색하는 방법에는
1. 검색어를 입력 후 검색 버튼 클릭
2. 실시간 검색어 반영
두 가지가 있다. 1번의 경우에는 입력을 완료하고 데이터를 가져오는 방식이라 해당 단어가 포함된 부분이 있다면 그것을 어떻게 보여줄지만 정하면 된다.
2번의 경우 우리가 잘 알고 있는 구글 / 네이버에서 볼 수 있는 실시간 검색이다. 검색어를 다 입력하지 않아도 관련 있는 검색어를 실시간으로 보여준다. 해당 경우를 가장 많이 클라이언트들이 원하는데 초기 단계에서 구현하기 어렵고 비용도 많이 들어간다. 한 단어씩 입력할 때마다 하나의 쿼리가 날아가는데 수십, 수백 명의 유저가 동시에 검색한다고 가정하면 서버에 오류가 생길 수 도 있다. 그래서 차선책으로는 검색어 입력을 완료하고 하단에 [관련 검색어]를 추가하는 방법을 사용했었다.
해당 예시 화면에는 [제목 / 유저의 이름 / 내용 / 태그]가 포함된 검색 결과이다. 이처럼 검색어가 중복되는 콘텐츠가 많은 경우 1차적으로는 유저가 검색한 단어를 명확히 보여주기 위하여 컬러로 검색어를 인지시켜준다. 그다음에는 어떤 순서대로 검색어가 걸리게 되는지 정해준다. [제목 / 유저의 이름 / 내용 / 태그] 4가지의 내용이 모두 검색어에 포함되어있을 때 우선적으로 보이거나 4가지의 내용 중 우선적으로 보여야 하는 것을 설정한다. 다른 3가지의 경우는 상관없지만 [내용]의 경우 첫 문단이 아닌 중간에 검색어가 포함되어있을 때는 해당 단어가 포함된 문장을 보여주거나 검색어가 보이지 않아도 첫 문단만 가져오는 경우도 있다.
또한 보여주는 리스트는 최신 등록 순으로 진행할지 인기 순으로 진행할지 등 작은 화면에서도 고려해야 할 부분들이 많다.
사실 기획에서 고려해야 하는 사항들보다 DB, 백앤드 개발자들이 고려해야 하는 사항들이 더 많다. 그렇기에 처음에 검색을 기획할 때는 처음부터 개발자와 함께 진행하는 것이 가장 좋다. 난 개발을 모르니까 편한 방식으로 해주세요-보다는 질문하고 공부하면서 배워나가면 추후에는 개발 시 고려해야 할 부분들까지 정리해서 개발자에게 전달 줄 수 있기 때문이다.
이번 글은 검색기획 시 고려했던 부분들을 정리해보았다. 다음 글은 검색어를 잘 걸리게 하는 법, 검색 결과 종류를 공부해서 포스팅할 예정!