Firefox 부가 기능을 사용해 봤다면 부가 기능으로 매우 놀라운 기능도 구현할 수 있다는 사실을 잘 알고 있을거에요. 웹 사이트의 최하위 프레임워크를 조사하거나 사진과 동영상으로 이루어진 3차원 스크롤 벽을 구현하는 등의 기능 말이죠. 그러나 대부분의 인기 부가 기능들은 자바스크립트나 XUL, CSS같은 배우기 쉬운 언어만 사용해서 만들기 때문에 Firefox를 조금 바꾸는 선에서 그치고 말죠. 부가 기능을 만들어 볼 생각이 있다면 확장 기능을 패키징하는 기본 방법이나 Firefox와의 상호 작용 방법 같은 간단한 것부터 실습해 보면서 시작합시다.

  1. 1

    기초 배우기

    가장 쉬운 방법으로는 Firefox 부가 기능 개발자 가이드에 나와있는 걸 그대로 따라해보는 겁니다. 여기엔 확장 기능에서 쓰이는 기술에 관한 내용과 여러가지 기본적인 확장 기능 제작법이 자세히 나와있어요.

    바로 실전에 뛰어드는 쪽이 낫다고 생각한다면 How-to 도서관시작하기 항목에 있는 여러가지 튜토리얼에서 코드를 바로 볼 수 있어요. 시간 여유가 좀 더 있다면 확장 기능 기초 따라하기 동영상을 보는 것도 좋죠: 확장 기능 훈련소: 0에서 Hello World 까지! 45분만에 완성하기

  2. 2

    부가 기능을 만들어 봅시다

    확장 기능 개발 환경에 익숙해지고 나면, 이제 첫 부가 기능을 만들어 볼 시간이 된겁니다. 부가 기능의 설치 선언 파일이 복사할 만한 적절한 템플릿을 찾는 작업은 옛날로 말하자면 눈덮힌 언덕을 오르는 것과 맞먹는 난이도라 할 수 있겠네요. 다행히 부가 기능 개발자 허브 (바로 여깁니다!)에서 확장 기능 패키지 작업의 스노모빌이라 할 수 있는 도구를 제공하고 있습니다: 부가 기능 패키징 프로그램 참고.

    순서에 따라 부가 기능 이름, 버전 넘버, 지원할 애플리케이션, 그밖의 사항을 입력하고 나면 제작기가 확장 기능 패키지를 제작해주고 다운로드를 할 수 있습니다. 설치 선언 파일을 생성하는 것 말고도 도구 모음, 사이드바, 팝업 메뉴 같은 일반적인 인터페이스 자원을 선택해서 실제 작동하는 확장 기능 뼈대를 만들 수도 있어요. 실제 쓸 수 있는 확장 기능을 하나 만드는 거죠!

  3. 3

    약간의 재능만 더해주세요

    패키져가 생성한 비어있는 사이드 바 보다 더 많은 기능을 부가 기능에 넣고 싶다면 다양한 경로를 통해 기능을 추가하는 방법을 배울 수 있습니다. 가장 흔한 방법이라면 역시 다른 확장 기능이 이미 구현해 놓은 것들을 그대로 따라서 해보는 것이겠지요. 단, 참고할 확장기능의 라이선스가 소스 복제를 허용하지 않을 시에는 따라해선 안됩니다.

    허브 내의 두가지 구역에서도 이러한 분들을 돕고 있습니다: API 및 언어 참고문서 페이지엔 자바스크립트, XUL, XPCOM, FUEL과 같은 확장 기능 언어와 API에 관한 공식 문서 링크가 있죠. 그리고 How-to 도서관에도 튜토리얼, 따라하기, 동영상, 문서 등이 있어요. 확장 기능 개발에 모범을 보이고 있는 유능한 개발자들이 제작한 것들이죠.

    찾고자 하는 자료가 있다면 그냥 검색만 하면 나옵니다! 검색 엔진이 최고의 부가 기능 자원을 샅샅이 찾아내기 때문에 찾고 있던 인터페이스나 일반적인 문제 해결법 등은 그냥 나오죠. 검색 엔진이 찾지 못하는게 있으면 부담갖지 마시고 포럼에 도움을 요청해 보세요.

  4. 4

    부가 기능 검사하기

    곤충학자라 할 지라도 자신의 소프트웨어에 있는 버그를 좋아하진 않겠죠. 그래서 일반에 공개할 준비를 하기에 앞서 부가 기능을 검사해 보는것이 중요합니다. 적어도 지원하기로 한 플랫폼과 애플리케이션 상에서 부가 기능이 작동하는지 정도는 확인해 주세요.

    패키징이나 보안에 관련해서 발생하는 대표적인 버그를 찾아내고 싶다면 부가 기능 검사기 도구를 실행해서 파일을 넣어보세요. 이 검사기는 부가 기능의 맞춤법 검사기 쯤 됩니다. 등록 과정에서 자동으로 해당 검사를 거치긴 하지만 그 전에 미리 검사를 해보고 싶을 수도 있으니까요. 게다가 검사가 무사히 통과되면 기분도 좋아지지 않을까요?

  5. 5

    전 세계에 부가 기능을 공유해 보세요

    우와, 부가 기능을 벌써 다 만들었나요? Mozilla Labs에서 사람을 구하고 있다는거 아시죠? 한번 지원해 보는건 어떨까요? 좋습니다. 부가 기능을 검사해봤고 아무 문제가 없다면 Mozilla 부가 기능에 올릴 때가 됐군요. 15억회 이상의 부가 기능 다운로드 수를 자랑하는 곳으로, 이 피조물이 살기엔 최적의 장소라 할 수 있어요. 올리기 전에 몇가지 점검할 사항이 있습니다.

    Mozilla는 사용자 경험과 보안에 상당히 많은 공을 들이고 있습니다. 그런 이유로 자원 봉사직인 편집자 팀을 보유하고 있으며 이 분들은 사이트에 올라온 부가 기능이 자유롭게 유통되기 전에 심사를 하는 역할을 담당하고 있습니다. 또한 저희에겐 몇가지 따라야 하는 정책이 있는데, 부가 기능 개발자 및 기타 개발에 기여하는 분들이라면 이 정책을 따라야 저희 사이트에서 활동하실 수 있습니다. 부가 기능을 올리기 전에 정책을 먼저 읽어보시는 편이 처음 제작하신 부가 기능이 성공적으로 승인되는데 많은 도움이 될거에요.

    안내하신 사항대로 전부 다 하셨나요? 훌륭합니다. 이제 남은건 하나 뿐이네요…

    축하합니다!

자기 얘기 하는걸 좋아하는 분이라면 확장 기능을 만들면서 어떤 일이 있었는지 같은 경험에 관한 내용을 올려주세요. 저희는 피드백 듣는것을 좋아하니까요. 신인 개발자의 고군분투를 듣고나면 다음 세대의 부가 기능 발명가들에게 보다 나은 경험을 만들어 줄 수 있습니다. 플랫폼, 문서 자료, 웹사이트 등 어느 곳이든 올리고 싶은 곳에 올려주시면 저희가 경청하겠습니다. Mozilla가 창설된 이후 개발자 스스로 버그를 고치거나 부실한 문서자료를 보완할 수 있게 되었죠! 마치 생명이 순환하는 것 같다고나 할까요.