Firefox 부가 기능을 전에 사용한 적이 있다면, 부가 기능이 매우 심도높은 기능을 구현할 수 있다는 것을 알고 있을겁니다. — 웹사이트의 기본 구조를 분석하는 것부터 사진과 동영상으로 이루어진 3차원 벽을 만들어내는 것 까지 구현해 냈죠. 하지만 대다수의 인기 부가 기능은 자바스크립트, XUL, CSS 같은 쉬운 언어만 배운 탓에 Firefox에 약간의 변화밖에는 주질 못하고 있어요. 자신의 첫 부가 기능으로 구현하고 싶은 아이디어가 있다면, 아래의 간단한 절차를 통해 확장 기능이 Firefox에서 어떻게 패키징되고 구현되는지의 기본을 배울 수 있으니까 한번 시작해봅시다.

  1. 1

    기본 익히기

    가장 쉬운 방법은 Firefox 부가 기능 개발자 가이드를 따라서 해보는겁니다. 이 가이드는 확장 기능에 사용되는 기술에 대해 자세히 설명해줄 뿐만 아니라 여러가지 기본적인 확장 기능의 제작도 따라해 볼 수 있어요.

    바로 제작에 뛰어들고 싶다면, How-to 도서관시작하기 항목에 있는 여러가지 튜토리얼들을 소개해야겠네요. 여기선 바로 코딩작업으로 넘어가죠. 그리고 시간을 좀 더 낼 수 있다면, 기초적인 확장 기능 개발을 따라하는 동영상을 먼저 보는게 좋겠네요: 확장 기능 훈련소: 0에서 Hello World 까지 45분만에 완성하기!

  2. %2$s
  3. 2

    부가 기능 만들기

    확장 기능 개발 환경에 익숙해졌다면, 첫 부가 기능을 만들 때가 온겁니다. 예전엔 부가 기능을 만들려면 설치 선언 파일을 복사하려고 먼저 그에 꼭 맞는 템플릿을 찾아야만 했는데, 이건 마치 눈덮힌 언덕을 넘는 것과 같았죠. 다행히 이젠 부가 기능 개발자 허브(바로 여기요!)에서 확장 기능 패키징의 스노우모빌이라 할만한 것을 소개하고 있어요: 바로 부가 기능 제작기라고 하는거죠!

    순서에 따라 부가 기능의 이름, 버전 넘버, 지원 애플리케이션, 그밖의 사항 등을 입력하고 나면 부가 기능 제작기가 부가 기능을 다운받을 수 있는 형태로 확장 기능 패키지를 만들게 될겁니다. 이녀석은 설치 선언 파일만 생성할 수 있는게 아니라 일반 인터페이스 구성 요소도 선택해서 넣을수가 있어요. 툴바, 사이드바, 팝업 메뉴등으로 확장 기능의 뼈대를 만들 수 있죠. 우리가 당신을 대신해 확장 기능을 만들어주고 있는거나 마찬가지에요!

  4. 3

    몇가지 기능 더 추가하기

    제작기가 만들어놓은 빈 사이드바보다 더 많은 기능을 구현하고 싶다면, 다양한 방법을 통해 기능을 더 추가하는 법을 배울 수 있어요. 가장 일반적인 방법으론 다른 확장 기능이 이미 구현해놓은 것을 참고하는거죠. 단, 해당 확장 기능의 라이센스가 소스의 복제를 허용하지 않을 경우 이 방법은 쓸 수 없다는 것을 알아두세요.

    허브에 있는 다음의 두가지 메뉴도 도움이 될거에요: 먼저 API & 언어 참고문서 페이지가 있는데 자바스크립트, XUL, XPCOM, FUEL 같은 확장 기능의 언어 및 API의 공식 문서자료의 링크로 이루어져 있죠. 두번째로 How-to 도서관이 있는데, 확장 기능 개발과 최선의 관행 분야에 두각을 나타낸 사람들이 쓴 튜토리얼, 따라하기, 동영상, 기타 여러 글들로 채워져 있어요.

    어떤 자료를 찾을지 알고 있다면, 한번 직접 검색해보세요! 잊고 있던 인터페이스나 일반적인 문제점을 찾아낼 수 있도록 최적의 부가 기능 자원을 검색 엔진이 추려낼겁니다. 검색 엔진이 추려내지 못한다면, 포럼에 도움을 요청하세요.

  5. 4

    부가 기능 테스트하기

    곤충학자라도 자신의 소프트웨어에 있는 버그는 좋아하지 않겠죠? 그래서 일반에 공개하기 전에 부가 기능을 철저히 검사하는 것이 중요합니다. 적어도 지원하기로 한 플랫폼과 애플리케이션에서 완전히 작동하는지는 확인해야겠죠.

    패키징 및 보안 분야에서 일반적인 문제점을 찾는걸 돕고싶다면, 부가 기능 검사기 도구를 실행하고 파일을 넣기만 하면 됩니다. 이 검사기는 부가 기능의 맞춤법 검사기 같은것으로, 부가 기능은 제출시 자동으로 검사를 거치긴 하지만 그 전에 미리 검사를 해보고 싶을 때 씁니다. 거기에 검사가 무사히 통과되면 기분도 좋고 일석이조겠네요.

  6. %3$s
  7. 5

    세상 사람들과 부가 기능 공유하기

    우와, 벌써 부가 기능을 완성했나요? 그정도 자질이라면 Mozilla Labs에서 사람을 구하고 있으니 여기에 지원해 보는것도 좋겠네요. 자 이제, 부가 기능을 테스트했고 아무 문제가 없다면 Mozilla 부가 기능에 부가 기능을 제출할 차례가 된겁니다. 15억개가 넘는 부가 기능 다운로드 기록을 가지고 있는, 오늘 새로 창조한 생명이 살기엔 더할나위 없이 좋은 장소죠. 제출하기에 앞서 몇가지 점검할 사항을 알아보죠.

    Mozilla는 사용자 경험과 보안에 역량의 상당 부분을 할애하고 있어요. 자원 봉사자로 이루어진 편집자 팀을 보유하는 것도 그런 이유죠. 이분들은 사이트에 제출된 부가 기능을 공개로 허용하기에 앞서 심사를 하는 분들이시죠. 저희는 부가 기능 개발자에게 기부금 등의 이유로 몇가지 정책을 따라줄 것을 요구하고 있는데, 부가 기능을 처음 제출한다면 먼저 다음의 정책을 읽어보셔야 확실하게 승인이 될 수 있을겁니다.

    모든 절차를 잘 따랐나요? 대단하군요. 이제 해야 할 일이 딱 한개 남았군요...

    축하합니다!

얘기하는걸 좋아한다면, 확장 기능을 만들면서 어떤 일이 있었는지 같은 피드백을 보내주세요. 신인 개발자가 고생한 것을 듣는건 다음 세대의 부가 기능 발명가들에게 보다 나은 경험을 제공하는 데 도움이 되거든요. 플랫폼, 문서 자료, 웹사이트, 그 외 촌평하고 싶은 어떤 것이든 우린 경청할거에요. Mozilla가 개설되면서, 직접 버그를 고칠수 있게 되었다던지 부족한 문서자료를 직접 채워넣을 수 있게된 것 등 여러모로 점차 환경이 개선되고 있거든요! 마치 살아있는 생명과도 같죠.