WWDC 2010에서 공개된 Safari 5는 더 빨라진 JavaScript 엔진과 확장된 HTML5 지원으로 많은 주목을 받고 있지만, 개발자들과 사용자들 모두 반기는 기능으로 단연 Safari Extensions을 빼놓을 수 없다. 이는 과거 타 브라우저들에 비해 빈약한 확장 기능 제공의 약점을 단숨에 해결해 줄 것으로 기대되기 때문이다.
이런 기대에 부흥해서, 올 여름 Apple에서 제공할 Safari Extensions Gallery에 앞서, 이미 Safari extensions을 소개하는 사이트가 생겨나면서 여기에 등록되는 extension의 수가 봇물 터지듯 계속 늘어나고 있는 중이다. (역으로 과거 Safari의 Plug-in을 소개하던 사이트는 이제 작별을 고한 상태.)
특히나 웹 개발자들에게 반가운 소식은 이 extensons 개발은 모두 HTML, CSS 그리고 JavaScript를 사용한다는 점이다. 브라우저와 웹 컨텐트를 직접 다루고 만지는 일은 함께 제공되는 JavaScript API로 가능하다. 더 자세한 Safari Extensions 개발에 관한 문서는 Safari Dev Center에서 확인 할 수 있음.
기본적으로, 과거 plug-in들은 특정 media types을 대신 도맡아서 뿌려주는 기능으로 구현되어 왔는데, 이는 도구막대나 contexual 메뉴의 접근이 거의 불가능했었다. 하지만, 이번 extensions는 웹페이지의 형태를 바꾸어서 쉽사리 특정 사이트나 원하지 않는 내용을 차단할 수 있고 도구막대와 윈도우의 접근이 더 자유롭다는 이점이 있다.
Safari의 extensions 구조는 비교적 단순한데, 참고로 compile 된 Safari extensions의 확장자는 safariextz로 되어 있으며, 이 놈은 실제 xar 파일로 터미널에서 다음과 같이 압축을 해제할 수 있다.
xar -x -f ExampleExtension.safariextz
이렇게 해 놓으면, 홈 디렉토리에 압축이 풀린 extension의 대략적인 구조와 내용을 확일할 수 있다.
이렇게 보니, Firefox의 Jetpack 그리고 Google Chrome의 Extensions와 더불어서 미래 브라우저들의 확장자 개발은 모두 익숙한 웹 기술들로 대치되는 추세인 듯.