서버 부하가 많이 걸리는 방식인가요? 제작 의뢰를 해볼 참인데..
1. 읽어야 할 글 : 기능은 아래 xe 공홈 참조
https://xe1.xpressengine.com/devlog/22969908
2. 해시태그 추천기능 : 기존에 사용한 해시태그들 중에서 찾아서 비슷한걸 추천해주는 기능
3. 닉네임 완성기능 : 단순 닉네임 검색기능 말고... @ki 이렇게 치다보면 사이트에 가입된 회원 닉네임중에서 찾아서
@kijin 이렇게 완성되는 기능. (github에 이 기능이 있죠?)
완전히 이런 기능들은 제작자 능력에 따라 다른건지 아니면 그런 걱정 없이 보편적으로
그냥 의뢰하고 운명에 맞겨도 되는건지
제작 의뢰에 앞서서 여쭤 봅니다.
1번은 비교적 간단한 기능입니다. 최근에 읽은 시각보다 해당 글의 last_update가 더 나중이고, 작성자나 last_updater가 내가 아닌 경우 표시해 주면 되니까요.
2번은 무엇을 기준으로 어떤 해시태그를 추천해 주는지가 관건입니다. 사이트에서 한 번이라도 해시태그로 사용된 적이 있는 단어가 본문에 포함되어 있으면 추천해 주는 건가요? 예를 들어 위의 글에서는 #제작자, #비슷한걸, #맞겨도 (오타ㅋㅋ) 등의 해시태그가 추천되는 걸까요?
3번은 키보드 입력을 할 때마다 실시간으로 닉네임 목록을 불러와야 하기 때문에 다른 기능들보다 난이도가 높습니다. 매번 ajax로 DB를 쿼리한다면 렉과 서버 부하를 감당하기 어려울 수도 있어요.
다른 두 가지도 대강 개발하면 성능이 엉망으로 나올 수 있습니다. 링크하신 공지에서도 1번 기능에 캐시를 적용했다고 하네요. 글의 last_update는 이미 불러온 상태이니 최근에 읽은 시각을 캐시 처리했다는 뜻이겠죠? 이 부분을 대강 만들면 목록 화면의 글 수만큼 쿼리를 해야 하는 참사가 발생합니다. 실제로 많이 쓰이는 애드온들 중 목록 화면의 글 수만큼 쿼리를 하는 무시무시한 것들이 여러 개 있어요. 그런 애드온 3개만 설치하면 무려 60개의 쿼리가 발생합니다 ㄷㄷㄷ 2번은 해시태그 갯수가 많은 경우 어떻게 불러와서 어떻게 검색하느냐가 문제고요.