hashcode 사이트에 hashtag(#)에 대해 질문해 봅니다.

조회수 6007회

해시태그 자체에 대한 이해와, 구현방법에 대해 혼동이 생겨서 질문드립니다.

여러 웹 상에서 보면 해시태그를 사용하여 글에 첨부하고, 해당 해시태그를 사용하여 연관된 것들을 검색하는 기능이 있는데요.

예를들면 #분류1 #분류3 #분류5 처럼 되어있고 해당 태그를 누르면 같은 태그를 가진 글들을 검색하여 보여주죠.

그런데 이 해시태그는 어떤식으로 구현하는건가요?

처음에 사용자가 해시태그를 사용하여 글에 태그를 걸면 우선 해당하는 태그들을 추출하고, 해당 태그들을 값으로 갖는 해시태그 테이블에 넣어주면 되는걸까요?

그러면, 이 해시태그 테이블에는 사용자가 어떤 값을 입력하더라도 해당 테이블에 없는 태그라면 전부 넣어줘야 하는 건가요? 예를들면

#오늘 #이 #질문은 #제발 #답변 #해주세요

이런 의미없는 태그들에 대해서도 하나하나 테이블에 넣어줘야 하는지요?

그리고 테이블에는 해당 태그를 갖는 글의 주소?를 저장해서 태그를 검색할 경우 해당 테이블에 있는 태그가 갖고 있는 글들의 주소를 뿌려주는지, 아니면 해당 태그를 검색할 경우 일반적인 검색으로 해당 태그를 검색해서 검색 결과를 전부 뿌려주는지 궁금합니다. 그리고 후자의 경우 #태그 라는 태그가 있고, 글 중

이 태그를 사용하면...

이 #태그를 사용하면...

와 같이 두개의 글이 있다면 일반 검색으로 "태그"를 검색했을 때와 해시태그를 이용한 검색으로 "#태그"를 검색하는 것과 나오는 결과가 달라야 하는건지요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 웹 상에서 구현하고 있으며 사용하는 언어는 (html, css, javascript, php, mysql ..)입니다 알 수 없는 사용자 2016.6.17 17:15

1 답변

  • 사이트마다 해시태그의 사용방법, 구현방법도 달라서 추상적인것을 알려드리자면

    이미지

    대충 만들어보면

    해시코드들이 있는 테이블을 따로만들고 거기엔 이제 해시태그인

    (#)django (#)rails (#)hello ....

    이렇게 저장이되고 글같은곳에서 FK를 걸거나

    아니면 해시태그가 저장된 컬럼 넘버를 지정하는거죠

    그런데 이렇게 만들게되면 정해진 태그만 존재하고 그외에 태그는 관리자라던지 나머지 사람이 일일히 넣어줘야합니다

    질문에 있는말대로 일일히 넣게된다면 낭비가 되죠.

    그래서 고정된 태그가아닌 유저가 막넣는걸로 한다면

    그냥 태그란엔 VARCHAR 형식으로 저장하고 게시글 검색할때

    VARCHAR형으로 된 태그를 검색만 하면 됩니다

    물론 문제가 없는건 아닌데 관리/통합이 어렵죠

    마지막 질문또한 어떻게 설계하느냐에 따라 달라집니다

    해시태그 포함해서 검색하게 둘수도있고 아니면 제외할수도 있습니다

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)