'블렉스 이야기' 시리즈검색

2020-07-07 12:11

배진오

@baealex

소비적인 일보단 생산적인 일을 좋아합니다.

사실 짱짱 잘만들어진 구글 검색 쓰면되는데 다크모드 때문에 자체 검색으로 바꿔야만 했다. 지금은 '검색이 된다' 수준에 불과하다. 그래서 상단에 구글에서 결과를 얻을 수 있도록 링크를 배치해뒀다. (든든) 여하지간 개선할 점이 상당한데 하지만 언제나 그렇듯 문제는 내 코딩 능력이다. 호호호... 일단 내가 생각한 개선해야 할 점은 이렇다.


1.

'django'를 검색했을 때 '장고'가 들어간 결과도 나와야 한다. 그 반대의 경우도 동일해야 한다. 문제는 이걸 어떻게 매칭해주냔 말이다. 생각나는거 하나씩 DB에 넣어볼까... 머리가 나쁘면 손이라도 고생해야;;


2.

'wkdrh'를 검색했을 때 '장고'가 들어간 결과가 나와야 한다. 적어도 '장고'를 검색하려는 것 아니냐는 문구라도 띄워줘야 한다. 검색 결과가 존재하지 않을 때 알려주긴 간단하지만 검색 결과가 적을 때 알려주긴 어렵다. 검색결과가 '어느 수준'에 못미치면 내가 임의로 바꿔서 검색한 다음 결과가 많으면 알려주는 방법도 있겠다.


3.

'장고 검색'을 검색했을 때

  • 장고검색만들기
  • 장고 검색 만들기
  • django 검색 만들기
  • 검색 만드는 방법 feat. Django

위 내용들이 다 검색되야 한다. 첫번째 항목을 검사하는 방법은 간단하다 '장고 검색'을 쪼갠 다음에 두 키워드가 모두 제목에 들어있으면 된다. 두번째 글쓴이는 정직한 제목이므로 상관없겠고. 세번째 항목은 1번을 개선해야 검색할 수 있다. 네번째도 동일하겠다.


4.

내용에서 검색되는 것도 빼놓을 순 없지. 최상의 UX를 위해선 검색한 내용을 중심으로 미리보기 문장을 배치해야 할텐데 이것도 지금 생각나는대로(split, slice + split, slice) 구현하면 나중에 감당이 안될 것 같다. 구체적이고 효율적인 방안을 찾아봐야 할 듯...

그리고 무엇보다 가중치를 설정해야 한다. 제목에서 내용이 있으면 더 높게, 본문에만 있으면 좀 낮게... 이거 정렬하는 것도 다 비용인ㄷ...


5.

위 모든걸 해결하기에 가장 큰 문제는 검색을 저렇게 해버리면 걱정되는 건 DB와 서버의 부하다. 아마 누구나 떠올릴 수 있는 방법은 다른 서버를 하나 열어두고 거기서 포스트의 내용들을 적절한 타이밍에 캐싱한 다음에 검색만 처리하도록 하는 방법일거다. 다만 내 소원은 이 서비스를 가장 완벽한 형태의 모놀리틱 서비스로 만드는 것이기에... 🤣 생각을... 생각을 해보자.

'블렉스 이야기' 시리즈

블렉스는 제가 애정을 가지고 개발하는 하나의 취미이자 한명의 자식(?)이며 처음으로 서비스를 시작한 프로젝트입니다. 혼자서 풀사이클 개발을 하다보니 부족한 점이 많을 수 있지만 부족한 점은 채워나가면 된다고 생각합니다. 이곳은 블렉스의 부족한 점을 채워나가는 모습을 그려놓은 시리즈입니다.
작성된 댓글이 없습니다!
댓글을 작성하기 위해 로그인이 필요합니다.