{"title":"버그 리포트와 기능 개발 요청","version":"5.1","locale":"ko","docname":"internals/contributing/bugs-and-features","url":"/ko/5.1/internals/contributing/bugs-and-features/","canonical":"https://djangodocs.dev/ko/5.1/internals/contributing/bugs-and-features/","summary":"중요 보안 관련 이슈는 “반드시” security @ djangoproject . com . 에만 연락 주시기 바랍니다. 이는 쟝고 개발자들 중에서도 최고 수준 개발자들에게만 오랫동안 열려 있는 비공개 목록이며, 이에 대한 내용은 대중에 공개되지 않습니다. 좀 더 상세한 정보들은 :doc:`…","html":"<h1>버그 리포트와 기능 개발 요청<a class=\"heading-anchor\" href=\"#reporting-bugs-and-requesting-features\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<aside class=\"admonition admonition-important\">\n<p class=\"admonition-title\">중요</p>\n<p>보안 관련 이슈는 “반드시” <a class=\"reference external\" href=\"mailto:security&#37;&#52;&#48;djangoproject&#46;com\">security<span>&#64;</span>djangoproject<span>&#46;</span>com</a>. 에만 연락 주시기 바랍니다. 이는 쟝고 개발자들 중에서도 최고 수준 개발자들에게만 오랫동안 열려 있는 비공개 목록이며, 이에 대한 내용은 대중에 공개되지 않습니다. 좀 더 상세한 정보들은  :doc:` 우리의 보안 정책 &lt;/internals/security&gt;` 문서를 참조하시기 바랍니다.</p>\n</aside>\n<p>그렇지 않으면,  <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>ticket tracker &lt;<a class=\"reference external\" href=\"https://code.djangoproject.com/\">https://code.djangoproject.com/</a>&gt;`_에 버그를 보고하거나 새로운 기능을 요청할 때, 다음과 같은 사항을 고려해주시기 바랍니다.</p>\n<ul class=\"simple\">\n<li><p>누군가 이미 버그나 기능요청을 티켓 트래커에  <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>searching`_나 진행중인 <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>custom queries`_로 제출하지 않았는지를 확인합니다.</p></li>\n<li><p>Don’t use the ticket system to ask support questions. Use the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>\nor the <a class=\"reference external\" href=\"https://chat.djangoproject.com\">Django Discord server</a> for that.</p></li>\n<li><p>Don’t reopen issues that have been marked “wontfix” without finding consensus\nto do so on the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>.</p></li>\n<li><p>Don’t use the ticket tracker for lengthy discussions, because they’re\nlikely to get lost. If a particular ticket is controversial, please move the\ndiscussion to the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>.</p></li>\n</ul>\n<section id=\"reporting-bugs\">\n<span id=\"id1\"></span><h2>버그 리포팅<a class=\"heading-anchor\" href=\"#reporting-bugs\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>잘 쓰여진 버그 리포트들은 <em>믿을수없을 정도로</em> 유용합니다. 그러나 어떠한 버그 트래킹 시스템 작업들을 사용하는것들도 일정량의 오버헤드가 수반되므로 티켓 트래커를 최대한 유용하게 보관해 주시기 바랍니다</p>\n<ul class=\"simple\">\n<li><p>당신의 이슈가 잘 알려진 문제인지 보고싶다면  <span class=\"xref std std-doc\">FAQ 1</span> 를 <em>꼭</em> 읽어주세요</p></li>\n<li><p><strong>Do</strong> ask on <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> or the <a class=\"reference external\" href=\"https://chat.djangoproject.com\">Django Discord server</a> <em>first</em> if\nyou’re not sure if what you’re seeing is a bug.</p></li>\n<li><p>완전하고, 재현가능하고, 특정한 버그 리포트를 <em>꼭</em> 쓰시오. 문제에 대한 명확하고 간결한 설명과 문제를 재현하기 위한 지시사항을 포함해야 합니다. 코드 스니펫, 테스트 사례, 예외 백트레이스, 스크린샷 등과 같은 디버그 정보를 최대한 많이 추가세요. 작고 멋진 테스트 케이스는 버그를 신속하게 확인할 수 있는 유용한 방법을 제공하기 때문에 버그를 보고하는 가장 좋은 방법입니다.</p></li>\n<li><p><strong>Don’t</strong> post to <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> only to announce that you have filed a\nbug report. All the tickets are mailed to another list, <a class=\"reference internal\" href=\"/ko/5.1/internals/mailing-lists/#django-updates-mailing-list\"><span class=\"std std-ref\">django-updates</span></a>,\nwhich is tracked by developers and interested community members; we see them\nas they are filed.</p></li>\n</ul>\n<p>작성하신 티켓의 라이프사이클을 확인하시려면 다음 문서를 참조해 주세요 <a class=\"reference internal\" href=\"/ko/5.1/internals/contributing/triaging-tickets/\"><span class=\"doc\">티켓 분류</span></a>.</p>\n</section>\n<section id=\"reporting-user-interface-bugs-and-features\">\n<h2>사용자 인터페이스 와 기능 버그 리포팅<a class=\"heading-anchor\" href=\"#reporting-user-interface-bugs-and-features\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>버그나 기능 요청이 시각적인 성질을 건드리는 경우 따라야 할 몇 가지 추가 지침이 있습니다.</p>\n<ul class=\"simple\">\n<li><p>Include screenshots in your ticket which are the visual equivalent of a\nminimal test case. Show off the issue, not the crazy customizations\nyou’ve made to your browser.</p></li>\n<li><p>스틸컷을 이용해 문제를 보이기가 어려울경우,  <em>간단한</em> 스크린 캐스트를 캡처하는것을 고려하십시오. 소프트웨어에서 허용하는 경우 화면의 관련 영역만 캡처합니다.</p></li>\n<li><p>If you’re offering a patch that changes the look or behavior of Django’s\nUI, you <strong>must</strong> attach before <em>and</em> after screenshots/screencasts.\nTickets lacking these are difficult for triagers to assess quickly.</p></li>\n<li><p>스크린샷이 리포팅에 필요한 다른 양식들을 면제해주지는 않습니다.  스크린샷에 보이는 행위를 재현하는 방법에 대한 URL, 코드 조각 및 단계적 지시들을 포함해야 합니다.</p></li>\n<li><p>관심 있는 사람들이 티켓을 찾을 수 있도록 티켓에 UI/UX 플래그를 설정해야 합니다.</p></li>\n</ul>\n</section>\n<section id=\"requesting-features\">\n<h2>기능 요청<a class=\"heading-anchor\" href=\"#requesting-features\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>우리는 항상 Django를 더 좋게 만들기 위해 노력하고 있고, 이 부분에 있어 당신의 기능 요청은 매우 중요합니다. 다음은 요청을 가장 효과적으로 기능을 요청하는 방법에 대한 몇 가지 팁입니다</p>\n<ul class=\"simple\">\n<li><p>기능을 사용하려면 장고의 코어 변경이 필요한 경우를 확실히 하십시오.  예를 들어, 다른 데이터베이스 엔진을 지원하려는 경우처럼 아이디어를 독립적인 애플리케이션이나 모듈로 개발할 수 있다면, 독자적으로 개발할 것을 제안할 것입니다. 그리고 난 후 당신의 프로젝트가 커뮤니티의 충분한 지지를 받는다면, 우리는 그것을 장고에 포함시키는 것을 고려할 수 있습니다.</p></li>\n<li><p>First request the feature on the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>, not in the ticket tracker.\nIt’ll get read more closely and reach a larger audience. This is even more\nimportant for large-scale feature requests. We like to discuss any big\nchanges to Django’s core before actually working on them.</p></li>\n<li><p>누락된 기능이 무엇인지, 그리고 어떻게 구현하고 싶은지 명확하고 간결하게 설명하십시오. 가능한 경우 예제 코드(함수형태가 아니어도 괜찮음)를 포함하십시오.</p></li>\n<li><p>이 기능을 원하는 <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">*</span></a>이유*에 대해 설명합니다. 최소한의 사용 경우를 설명하면 다른 사람이 해당 사용 사례가 어디에 적합한지, 그리고 동일한 사용 사례를 달성하는 다른 방법이 이미 있는지 이해하는 데 도움이 될 것입니다.</p></li>\n</ul>\n<p>If there’s a consensus agreement on the feature, then it’s appropriate to\ncreate a ticket. Include a link to the discussion in the ticket description.</p>\n<p>대부분의 오픈소스 프로젝트와 마찬가지로 코드 토크도 있습니다. 기능에 대한 코드를 직접 작성할 의향이 있거나, 이미 작성한 경우 훨씬 더 받아들여질 가능성이 높습니다. GitHub에서 Django를 포크하고 기능 브랜치를 생성한 다음 당신의 작품을 보여주세요!</p>\n<p>이곳도 확인하세요: <a class=\"reference internal\" href=\"/ko/5.1/internals/contributing/writing-documentation/#documenting-new-features\"><span class=\"std std-ref\">새로운 기능을 문서화합니다.</span></a>.</p>\n</section>\n<section id=\"requesting-performance-optimizations\">\n<h2>Requesting performance optimizations<a class=\"heading-anchor\" href=\"#requesting-performance-optimizations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Reports of a performance regression, or suggested performance optimizations,\nshould provide benchmarks and commands for the ticket triager to reproduce.</p>\n<p>See the <a class=\"reference internal\" href=\"/ko/5.1/internals/contributing/writing-code/submitting-patches/#django-asv-benchmarks\"><span class=\"std std-ref\">django-asv benchmarks</span></a> for more details of Django’s existing\nbenchmarks.</p>\n</section>\n<section id=\"how-we-make-decisions\">\n<span id=\"id2\"></span><h2>의사 결정 방법<a class=\"heading-anchor\" href=\"#how-we-make-decisions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Whenever possible, we strive for a rough consensus. To that end, we’ll often\nhave informal votes on the Django Forum about a feature. In these votes we\nfollow the voting style invented by Apache and used on Python itself, where\nvotes are given as +1, +0, -0, or -1.\nRoughly translated, these votes mean:</p>\n<ul class=\"simple\">\n<li><p>+1:  “저는 그 아이디어를 매우 좋아하고 그것에 강하게 전념하고 있습니다.”</p></li>\n<li><p>+0: “괜찮을 것 같네요.”</p></li>\n<li><p>-0: “저는 흥미롭진 않지만, 반대하지는 않을 것입니다.”</p></li>\n<li><p>: “저는 그 생각이 현실로 바뀌는 것을 보는 것에 강하게 반대하며 매우 불행할 것입니다.”</p></li>\n</ul>\n<p>Although these votes are informal, they’ll be taken very seriously. After a\nsuitable voting period, if an obvious consensus arises we’ll follow the votes.</p>\n<p>However, consensus is not always possible. If consensus cannot be reached, or\nif the discussion toward a consensus fizzles out without a concrete decision,\nthe decision may be deferred to the <a class=\"reference internal\" href=\"/ko/5.1/internals/organization/#steering-council\"><span class=\"std std-ref\">steering council</span></a>.</p>\n<p>Internally, the steering council will use the same voting mechanism. A\nproposition will be considered carried if:</p>\n<ul class=\"simple\">\n<li><p>There are at least three “+1” votes from members of the steering council.</p></li>\n<li><p>There is no “-1” vote from any member of the steering council.</p></li>\n</ul>\n<p>투표는 일주일 이내에 제출해야 합니다.</p>\n<p>Since this process allows any steering council member to veto a proposal, a\n“-1” vote should be accompanied by an explanation of what it would take to\nconvert that “-1” into at least a “+0”.</p>\n<p>Votes on technical matters should be announced and held in public on the\n<a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>.</p>\n</section>","rootId":"reporting-bugs-and-requesting-features","toc":[{"title":"버그 리포팅","anchor":"reporting-bugs","children":[]},{"title":"사용자 인터페이스 와 기능 버그 리포팅","anchor":"reporting-user-interface-bugs-and-features","children":[]},{"title":"기능 요청","anchor":"requesting-features","children":[]},{"title":"Requesting performance optimizations","anchor":"requesting-performance-optimizations","children":[]},{"title":"의사 결정 방법","anchor":"how-we-make-decisions","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Django internals","url":"/ko/5.1/internals/"},{"docname":"internals/contributing/index","title":"장고에 기여하기","url":"/ko/5.1/internals/contributing/"}],"prev":{"docname":"internals/contributing/localizing","title":"장고 현지화","url":"/ko/5.1/internals/contributing/localizing/"},"next":{"docname":"internals/contributing/triaging-tickets","title":"티켓 분류","url":"/ko/5.1/internals/contributing/triaging-tickets/"},"formats":{"html":"/ko/5.1/internals/contributing/bugs-and-features/","markdown":"/ko/5.1/internals/contributing/bugs-and-features.md","json":"/ko/5.1/internals/contributing/bugs-and-features.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/internals/contributing/bugs-and-features.txt","official":"https://docs.djangoproject.com/ko/5.1/internals/contributing/bugs-and-features/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}