aboutsummaryrefslogtreecommitdiff
path: root/files/ko/hacking_firefox/index.html
blob: 6933186a58607ee1bfbdf44d43ab420c4b0cc1ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
---
title: Hacking Firefox
slug: Hacking_Firefox
tags:
  - Developing Mozilla
---
<p>만일 여러분이 `C++ 의 신` 정도의 능력이 있으시다면, 이 부분을 보실 필요가 없을 것입니다. 심지어 (좀 심하게 말하자면) front-end를 해킹하는 것은 여러분이 봐야할 적당한 페이지가 아닙니다만, 우리는 항상 더 많은 사람들이 리뷰하고, 코드를 작성하는 것을 도와줄 것이 필요합니다 <a class="external" href="http://www.mozilla.org/contribute/hacking/first-bugs/">building up the platform</a>. Front-end를 해킹하는 것은 코딩 기술 뿐만 아니라 사용자 인터페이스에 대한 직감과 더불어 비판에 잘 견딜 수 있어야 합니다. 여하튼, front-end를 찔러보는 건 상대적으로 쉬운 일입니다. C++/<a href="/ko/JavaScript" title="ko/JavaScript">JavaScript</a>/<a href="/ko/XML" title="ko/XML">XML</a> 에 대한 기본을 충분히 알고 있다면, <a href="/ko/XPCOM" title="ko/XPCOM">XPCOM</a>이나 그 관련된 것에 대하여 샅샅히 알고 있지 않더라도 시작하는데는 충분합니다. 자! 이제, 중요한 것부터 시작합니다.</p>
<p> </p>
<h3 id=".EA.B8.B0.EB.B3.B8.EC.97.90.EC.84.9C.EB.B6.80.ED.84.B0_.EC.8B.9C.EC.9E.91.ED.95.98.EA.B8.B0">기본에서부터 시작하기</h3>
<p>해킹을 시작하기 전에 우선 <a class="link-https" href="https://bugzilla.mozilla.org/">Bugzilla</a>에 대하여 알아야 할 필요가 있습니다. 다른 사람에게 "나는 firefox를 해킹하고 싶다"고 이야기하는 것 이전에 선별/<a href="/ko/QA" title="ko/QA">QA</a>/버그찾기를 위하여 몇주 혹은 그 이상의 기간을 보낼줄 아는 것은 최소한 할수 있어야 합니다. 프로젝트가 어떻게 수행되는지 알아보는 것, 어떤 것에 대하여 선별하는지 배우는 것, 그리고 이 과정에서 배운 것들을 초기 선별 과정에 적용시키는 것은 검토와 체크인을 통하여 여러분의 방법을 찾는데 크게 도움을 줍니다. 여러분께서 닥치는대로 어떤 부분을 선택하여 작업을 시작하는 것은 일반적으로 최선의 선택은 아닐 것입니다. 어떤 부분이 잘 갖추어져 있는지, 어떤 부분이 추가적으로 필요한지 잘 살펴보시는 것이 해킹을 시작하는데 있어서 좋은 시작이 될 것입니다.</p>
<h3 id="Fox_.EB.B9.8C.EB.93.9C.ED.95.98.EA.B8.B0">Fox 빌드하기</h3>
<p>기존에 잘 쓰여진 것을 개작할 수도 있겠지만, 그것보다는 일반적인 절차<a href="/ko/Build_Documentation" title="ko/Build_Documentation">here</a>를 따라 CVS trunk를 사용하고, 새로운 빌드를 받는 것에서 부터 시작하십시요. 다음 단계를 시도하기 전에 이러한 작업은 할 수 있어야 합니다. 물론, Mozilla CVS에서 어떤것을 빌드하는 것이 아주 녹녹하지만은 않지만, 도움을 받아도 이러한 일을 해결할 수 없다면 아직 준비가 덜 되었다는 뜻이겠지요. "아무것도 컴파일하지 않음"에서부터 "Win32에서의 빌드"까지 한시간 정도면 끝낼수 있습니다.</p>
<h3 id=".EC.86.8C.EC.8A.A4_.EC.BD.94.EB.93.9C.EC.9D.98_.EA.B5.AC.EC.A1.B0">소스 코드의 구조</h3>
<p>자! 다음 질문은 "어디에 프로그램과 front-end 코드가 있나요?" 입니다. Firefox의 관련 코드는 <a class="external" href="http://lxr.mozilla.org/mozilla/source/browser/">여기</a>에 있으며, 일반적인 front-end toolkit은 <a class="external" href="http://lxr.mozilla.org/mozilla/source/toolkit/">여기</a>에 있습니다. (여러분의 CVS tree에서 이것은 각각 <code>mozilla/browser</code><code>mozilla/toolkit</code> 입니다.)</p>
<h3 id="Text_file_format">문서 파일 형식</h3>
<p>어떤 프로그래머들은 UTF-8 Byte Order Marker (BOM)를 기본적으로 파일 앞부분에 삽입합니다. 이 UTF-8 문자(0xEF 0xBB 0xBF)는 모질라 프로제특에 사용되는 다양한 도구에 영향을 끼칠 수 있습니다. 따라서 BOM이 파일에 저장되지 않도록 주의해주십시오.</p>
<p>만약 파일에 이미 BOM 문자가 들어가있다면 그것을 제거해야합니다. 제거 작업은 문서 편집기나 다음과 같은 스크립트를 사용할 수 있습니다.</p>
<pre class="eval"># nukebom.pl
$INC{ "bytes.pm" }++ if $] &lt; 5.006;
use bytes;

s/^\xEF\xBB\xBF//s;
</pre>
<p>이 스크립트를 다음과 같이 실행하면 됩니다: <code>perl -pi nukebom.pl <em>파일명</em></code>.</p>
<h3 id=".EC.9E.91.EC.97.85.ED.95.A0_.EB.B2.84.EA.B7.B8.EB.93.A4.EC.9D.84_.EC.84.A0.ED.83.9D.ED.95.98.EA.B8.B0">작업할 버그들을 선택하기</h3>
<p>어떤일을 할 것을 할 것인지는 일종의 선택의 문제입니다. 종종 아주 단순한 것에서 버그가 발견될 수도 있으며, 만일 쉽게 해결할 수 있는 문제라면 그것을 먼저하십시요. 대부분의 경우에 처음으로 버그를 잡으시려고 할때는 "good first bug(새로운 개발자가 수정하기 용이한 버그들)"라고 적혀 있는 버그들 부터 선택하시는 것이 좋습니다. 물론, 여러분을 짜증나게 하는 버그가 있다면 그것부터 시작하는 것도 좋습니다. 개인적인 만족감을 많이 얻을 수 있을테니까요.</p>
<h3 id=".EB.8F.84.EC.9B.80.EC.9D.84_.EC.96.BB.EC.9D.84_.EC.88.98_.EC.9E.88.EB.8A.94_.EA.B3.B3">도움을 얻을 수 있는 곳</h3>
<p>많은 <span>개발자들</span>이 있는 <a class="link-irc" href="irc://irc.mozilla.org">Mozilla IRC server</a>는 여러분께서 어떤 문제를 풀어내지 못할때 조언을 받을 수 있는 좋은 장소입니다. 하지만, 다른 사람을 귀찮게 하기전에 우선 다른 좋은 장소들(lxr/bonsai/Google (그리고, 이 위키페이지))에서 답을 얻기 위해서 최선을 다하십시요. 만일 "UI가 어떤식으로 보이나요?"와 같은 질문이라면 Mike Connor나 <a class="external" href="http://www.mozilla.org/projects/firefox/review.html">Firefox peer</a>에 물어보는 것이 가장 좋을 것이며, 이건 여러분의 사례를 같이 논의할 준비가 되었다는 것이겠습니다.</p>
<h3 id=".EC.82.AC.EC.9A.A9.EC.9E.90_.EA.B2.BD.ED.97.98.EC.9D.84_.EB.B3.80.EA.B2.BD.ED.95.98.EA.B8.B0">사용자 경험을 변경하기</h3>
<p>만일 여러분이 개선 요청이 있는 기능을 구현하려고 하거나, 사용자들에게 영향을 마칠만한 동작을 바꾸려고 할때, 이를 시작하기 전에 여기에 대한 피드백을 받아보는 것이 모든 이해 관계자들에게 있어서 가장 좋을 것입니다. Ben Goodger, Mike Connor, 또는 <a class="external" href="http://www.mozilla.org/projects/firefox/review.html">Firefox peers</a>의 누군가에게 여기에 대하여 말하고, 응답 또는 조정을 받도록 하십시요. 만일 그들이 여러분이 작업할 부분에 대한 허가를 하지 않는다면, (예전에 <em>리뷰-</em>에 대한 보여야 하는 적절한 반응을 따르지 않았던 사람들에 비추어 보았을때) 여러분은 많은 스트레스와 울분으로부터 구원받은 것입니다.</p>