WIPIVERSE

북마클릿

북마클릿(bookmarklet)은 웹 브라우저에 저장된 북마크로, 브라우저에 새로운 기능을 추가하는 자바스크립트 명령어를 포함하는 것을 말한다. 일반적인 북마크가 특정 웹사이트의 주소(URL)를 저장하는 것과 달리, 북마클릿은 실행 가능한 자바스크립트 코드를 URL 형태로 저장한다는 점에서 차이가 있다. 북마클릿은 웹 브라우저의 북마크 URL 또는 웹 페이지의 하이퍼링크로 저장되며, 사용자가 클릭하면 해당 코드가 실행되어 다양한 작업을 수행한다.

어원

북마클릿이라는 용어는 '북마크(bookmark)'와 '애플릿(applet)'의 합성어이다. bookmarklets.com의 스티브 캉가스(Steve Kangas)가 넷스케이프(Netscape)의 자바스크립트 가이드의 제안을 바탕으로 짧은 스크립트를 만들기 시작하면서 이 단어를 만들었다. 그 이전에는 탄텍 첼릭(Tantek Çelik)이 이 스크립트들을 '페이블릿(favlet)'이라고 불렀다. 북마클릿의 또 다른 이름으로는 '페이블릿' 또는 '파블릿'이 있다.

역사

자바스크립트의 창시자인 브렌던 아이크(Brendan Eich)는 1995년에 자바스크립트와 함께 javascript: URL을 발명했으며, 이 URL이 북마크 가능한 다른 종류의 URL처럼 사용될 수 있도록 의도했다. 특히 현재 문서의 DOM(Document Object Model)에 대해 임의의 스크립트를 실행할 수 있도록 설계되었다. 넷스케이프 2가 출시되기 전에 void 연산자를 추가하여 javascript: URL에서 정의되지 않은 값 이외의 값을 쉽게 버릴 수 있도록 한 것도 이와 관련이 있다.

개념과 작동 원리

웹 브라우저는 <a> 태그의 href 속성과 북마크에 URI를 사용한다. http나 ftp와 같은 URI 스키마는 일반적으로 프로토콜을 지정하지만, 브라우저는 javascript: 스키마를 인식하면 나머지 문자열을 자바스크립트 프로그램으로 처리하여 실행한다. 실행 스크립트는 현재 페이지에 접근하여 검사하고 변경할 수 있다. 스크립트가 정의되지 않은 유형(예: 문자열이 아닌 값)을 반환하면 브라우저는 새 페이지를 로드하지 않으며, 그 결과 스크립트는 현재 페이지 내용에 대해 간단히 실행된다. 이를 통해 페이지를 다시 로드하지 않고도 글꼴 크기 및 색상 변경과 같은 변경이 가능하다.

주요 용도

북마클릿은 일반 북마크처럼 저장되고 사용되며, 브라우저에 기능을 추가하는 간단한 '원클릭' 도구로 활용된다. 주요 용도는 다음과 같다.

  • 브라우저 내에서 웹 페이지의 모양 변경(글꼴 크기, 배경색 등)
  • 웹 페이지에서 데이터 추출(하이퍼링크, 영상, 텍스트 등)
  • 검색 결과에서 리다이렉션을 제거하여 실제 대상 URL 표시
  • 현재 페이지를 블로그 서비스, 링크 단축 서비스, 북마크 서비스에 제출
  • 강조 표시된 텍스트를 검색 엔진이나 온라인 백과사전에 쿼리
  • 현재 페이지를 링크 유효성 검사 서비스 또는 번역 서비스에 제출
  • HTML5 오디오 및 비디오 재생 매개변수 제어(속도, 위치, 반복 등)

설치 방법

북마클릿 설치는 일반 북마크를 추가하는 것과 동일한 과정을 따른다. 유일한 차이점은 URL 대상 필드에 javascript:가 앞에 오는 자바스크립트 코드가 들어간다는 것이다. 일단 생성된 북마클릿은 클릭하여 실행할 수 있다.

한계와 논의

2013년부터 2015년 사이에 웹사이트에서 콘텐츠 보안 정책(CSP)의 구현이 증가하면서 북마클릿의 실행 및 사용에 문제가 발생했다. 일부에서는 이것이 북마클릿의 종말을 예고한다고 주장하기도 했다. 그러나 그리스몽키(Greasemonkey) 사용자 스크립트와 북마클릿-사용자 스크립트 통신 프로토콜을 사용하여 이 문제에 대한 해결책이 제시되기도 했다. 다만 브라우저가 CSP를 사용하여 인라인 스크립트 실행을 비활성화하는 것을 지원하고, 웹사이트가 해당 기능을 구현하기 시작하면 이러한 해결책도 깨질 수 있다는 지적이 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기