[javascript] Clipboard.js를 사용하여 웹페이지에서 복사한 내용을 해시값으로 변환하기

소개

본 문서에서는 Clipboard.js를 사용하여 웹페이지에서 복사한 내용을 가져와 해시값으로 변환하는 방법을 소개합니다. Clipboard.js는 클립보드 작업을 쉽게 처리할 수 있도록 도와주는 자바스크립트 라이브러리입니다. 이를 활용하여 웹페이지에서 복사한 내용을 해시값으로 변환할 수 있습니다.

설치

Clipboard.js는 NPM을 통해 설치할 수 있습니다. 아래 명령어를 사용하여 설치합니다.

npm install clipboard --save

사용법

  1. 먼저, Clipboard.js를 가져옵니다.
import ClipboardJS from 'clipboard';
  1. 클릭 이벤트를 처리할 HTML 요소를 생성합니다. 이 요소는 복사 버튼 역할을 하게 됩니다.
<button class="copy-btn">복사</button>
  1. JavaScript에서 ClipboardJS를 초기화하고 복사 버튼을 클릭할 때 동작할 코드를 작성합니다. 이 경우, 클릭 이벤트가 발생하면 클립보드에 텍스트를 복사한 뒤, 해당 내용을 해시값으로 변환하고 콘솔에 출력하는 예제를 작성합니다.
const copyButton = document.querySelector('.copy-btn');
const clipboard = new ClipboardJS(copyButton);

clipboard.on('success', function(e) {
  const copiedText = e.text;
  const hashedText = hashCode(copiedText);

  console.log('복사된 텍스트:', copiedText);
  console.log('해시값:', hashedText);
});

function hashCode(str) {
  let hash = 0;

  if (str.length === 0) {
    return hash;
  }

  for (let i = 0; i < str.length; i++) {
    const char = str.charCodeAt(i);
    hash = ((hash << 5) - hash) + char;
    hash = hash & hash;
  }

  return hash.toString(16);
}

위 코드에서는 클릭 이벤트가 발생하면 success 이벤트가 발생하도록 설정하였습니다. 이 이벤트 핸들러에서 클립보드에 복사된 텍스트를 얻어와 hashCode() 함수를 호출하여 해당 텍스트를 해시값으로 변환합니다.

결론

이제 Clipboard.js를 사용하여 웹페이지에서 복사한 내용을 해시값으로 변환하는 방법을 알게 되었습니다. 이를 활용하여 사용자의 텍스트를 안전하게 저장하거나 디지털 지문으로 활용할 수 있습니다. 다른 목적으로 활용할 때에는 사용자의 개인정보보호에 유의해야 합니다.

참고 문서