프로젝트 개요

첫 번째 글 참조

프로젝트 목표

2차 도메인(이하 개인 도메인)을 사용 중인 티스토리 사용자의 블로그에서, 티스토리 계정으로 수정되지 않는 문제는 해결되었다. 하지만 아직도 문제가 남아 있다.

사실 문제라고 하기는 좀 뭣하고,

임시로 URL을 *.tistory.com 형식으로 이동하게끔 하다보니, URL 복사 또는 공유하기 버튼이 원하지 않는대로 동작하는 것이다.

원하지 않는대로라고 하면, 무슨 말인가.

나는 내 개인 도메인을 활성시키고 싶은데, 이러한 플러그인으로 인해 의도치 않게 *.tistory.com 도메인의 주소로 공유가 되는 점이다.

이 문제를 해결하는 것이 이번의 목표이다.

접근법

  1. 개발자 도구 활용
    우선은 개발자 도구를 열어서 이벤트의 흐름을 체크해 보아야 한다.
    그래서 URL 복사 버튼을 눌러 보았다.

    그런데

    Uncaught ReferenceError: lt is not defined

    운 좋게도 오류를 만났다. 이 녀석이 아니었으면 찾기 힘들었을 것 같다.

    isShortContents 함수의 코드를 살펴보았다.

    function isShortContents () {
       return window.getSelection().toString().length < 30;
    }

    < 니가 여기서 왜 나와?
    아무튼 저 함수가 오류 없이 수행되는 경우 아래와 같은 형태로 링크가 공유된다.

    출처: https://[블로그 주소] [[블로그명]:티스토리]
  2. 버그 픽스
    의도치 않게 두 번째 차례가 버그 픽스가 되어버렸다.

    티스토리 개발자 분, 고쳐주세요.

    이 부분은 즉시 실행 함수(IIFE) 내부에 정의되어 있다.
    그래서 재정의해서 사용할 방법도 없다.

    IIFE(IIFE, Immediately Invoked Function Expression)란?
    JavaScript의 주요 패턴 중 하나이다. 함수의 선언과 함께 즉시 실행되도록 하기 위한 것.

    주요 목적은 번수의 스코프를 제한하고, 전역 네임스페이스를 오염시키지 않기 위함이다.
    따라서 이 내부에 정의된 변수 또는 함수의 경우 외부에서 접근할 수 없다.

    IIFE의 예시

     // 매개 변수가 필요 없는 함수
     (function() {
       // 변수, 함수 등의 코드
     })();
    
     // 매개 변수가 필요한 함수
     (function(param) {
       console.log(param);
     })('Hello World'); // "Hello World" 출력

    이 부분은 티스토리 이용자로서 필요에 의해 버그에 대한 임시조치를 취하는 것이니만큼, 자세한 코드는 블로그에 기재하진 않겠다.

결과

그렇게 댓글 요정은 진화했다.

  1. 포스트의 공유시 개인 도메인으로 지정되는 것이 기본 값이 된다.
    개인 도메인이 없을 경우, 기본 도메인으로 세팅될 것이다.
  2. 티스토리 자체의 버그를 임시로 우회할 수 있게 되었다.
  3. 공유 텍스트의 자유도를 주는 방법은 고려중이다.
    이 부분은 기술적인 불가능보다는, 블로그를 이용하는 사람들이 악용할 가능성이 있지 않을까 우려가 되는 부분도 있으며, 티스토리의 어떠한 의도를 벗어나는 행위라고 생각한다.
    사실 (1)도 의도를 벗어난 것 같지만 지나가자.

다음 목표에 대해 고민해 보아야겠다.

profile
사무실 노가다꾼

0개의 댓글