<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>돌담</title>
        <description>개발, 머신러닝 관련 블로그입니다 :)</description>
        <link>https://doldam0.github.io/</link>
        <atom:link href="https://doldam0.github.io/feed.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Mon, 21 Mar 2022 12:20:23 +0000</pubDate>
        <lastBuildDate>Mon, 21 Mar 2022 12:20:23 +0000</lastBuildDate>
        <generator>Jekyll v3.9.0</generator>
        
            <item>
                <title>코드 질문 할 때 써먹을 수 있는 MRE 형식 예제 코드</title>
                <description>&lt;p&gt;이 문서는 다음 문서의 번역본입니다: &lt;a href=&quot;https://stackoverflow.com/help/minimal-reproducible-example&quot;&gt;https://stackoverflow.com/help/minimal-reproducible-example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;코드 관련 질문을 할 때 그 질문의 이해를 도우면서 문제를 해결할 때 도움을 줄 수 있는 예제 코드를 첨부한다면 더 나은 답변을 얻을 수 있을 겁니다.
이러한 예제 코드들은 &lt;em&gt;최소 재현 가능(minimal &lt;strong&gt;repr&lt;/strong&gt;oducible &lt;strong&gt;ex&lt;/strong&gt;ample; &lt;strong&gt;reprex&lt;/strong&gt;)&lt;/em&gt;, 또는 &lt;em&gt;최소 완전 검증 가능(&lt;strong&gt;m&lt;/strong&gt;inimal &lt;strong&gt;c&lt;/strong&gt;omplete and &lt;strong&gt;v&lt;/strong&gt;erifiable &lt;strong&gt;e&lt;/strong&gt;xample; &lt;strong&gt;mcve&lt;/strong&gt;)&lt;/em&gt;, &lt;em&gt;최소 실행 가능(&lt;strong&gt;m&lt;/strong&gt;inimal &lt;strong&gt;w&lt;/strong&gt;orkable &lt;strong&gt;e&lt;/strong&gt;xample; &lt;strong&gt;mwe&lt;/strong&gt;)&lt;/em&gt; 이라고 부릅니다.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;최소 재현 가능한 예제 코드를 작성하기 위해서는 예제 코드가 다음 원칙을 따르는지 확인해야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;최소성&lt;/strong&gt; - 해당 문제가 발생하는 코드를 최소한으로 줄여야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;완전성&lt;/strong&gt; - 다른 누군가가 해당 문제를 재현할 수 있게 모든 코드 조각을 제공해야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;재현 가능성&lt;/strong&gt; - 예제 코드가 해당 문제를 확실히 뱉어내는지 테스트해야 합니다.&lt;/p&gt;

&lt;p&gt;지금부터 최소 재현 가능한 예제 코드를 작성하는 가이드라인에 대해 자세히 말씀드리겠습니다.&lt;/p&gt;

&lt;h3 id=&quot;최소성&quot;&gt;최소성&lt;/h3&gt;

&lt;p&gt;예제 코드의 길이가 길면 길수록 다른 사람이 문제 원인을 찾을 확률은 극히 낮아집니다. 다음 중 하나의 방법을 통해 예제 코드를 간소화할 수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;스크래치에서 시작하기.&lt;/strong&gt; 새 프로그램을 만들고, 해당 문제를 발생시킬 수 있을만한 최소한의 것들을 추가하세요. 함수명과 변수명으로 간단하고 어떤 역할을 하는지 유추할 수 있을만한 이름을 사용합니다. &lt;em&gt;여러분의 코드에 있는 이름을 사용하지 마세요.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;분할 정복.&lt;/strong&gt; 어디서 에러가 나는지 모르겠다면 코드 몇 개를 제거해서 계속 에러가 나는지 확인하세요. 만약 어떤 코드를 제거했는데 에러가 나지 않는다면 그 코드를 다시 추가합니다.&lt;/p&gt;

&lt;h4 id=&quot;최소한의-가독성&quot;&gt;최소한의 가독성&lt;/h4&gt;

&lt;p&gt;간결함을 위해 명확성을 희생하면 안 됩니다. 일관된 명명 규칙과 들여쓰기 규칙을 사용하고, 필요하다면 주석을 달아 예제 코드의 이해를 높입니다. 코드를 재정렬하기 위해 코드 에디터의 단축키를 사용합니다(Visual Studio Code의 경우 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Alt + Shift + F&lt;/code&gt; 또는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⌥ + ⇧ + F&lt;/code&gt;). 탭 대신 스페이스 바를 사용하세요. 스택오버플로우에서 탭을 이용한 들여쓰기가 적용이 잘 안 될 수도 있습니다.&lt;/p&gt;

&lt;h3 id=&quot;완전성&quot;&gt;완전성&lt;/h3&gt;

&lt;p&gt;문제를 재현하기 위한 모든 정보가 질문에 포함되어 있는지 확인하세요.&lt;/p&gt;

&lt;p&gt;서버단 코드(XML 기반 설정 파일 등)가 필요한 경우 질문에 포함시켜야 합니다. 만약 HTML이나 스타일시트, JavaScript가 필요한 웹 페이지의 경우 세 가지 모두 필요합니다. 문제의 원인이 여러분께서 생각하고 계신 그 코드에 없을 수도 있기 때문이죠.&lt;/p&gt;

&lt;p&gt;아래와 같이 &lt;strong&gt;&lt;a href=&quot;https://stackoverflow.com/editing-help#code&quot;&gt;코드 블럭&lt;/a&gt;&lt;/strong&gt;을 사용해 코드 조각을 작성하세요.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;some_codes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;각 예제 코드를 작성한 목적에 대한 설명 역시 포함해야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://meta.stackoverflow.com/questions/358992/ive-been-told-to-create-a-runnable-example-with-stack-snippets-how-do-i-do&quot;&gt;Stack Snippets&lt;/a&gt;&lt;/em&gt;를 이용해 실행 가능한 HTML, JavaScript, CSS 코드를 작성하세요.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;절대로 스크린샷을 첨부하지 마세요!&lt;/em&gt;&lt;/strong&gt; 코드 텍스트를 복사한 다음에 붙여넣기한 후, 텍스트를 이쁘게 &lt;a href=&quot;https://stackoverflow.com/editing-help#code&quot;&gt;꾸며주세요&lt;/a&gt;. 다른 사람들이 여러분의 예제 코드를 쉽게 읽고 테스트하기 위해 꼭 지켜주시기 바랍니다.&lt;/p&gt;

&lt;h3 id=&quot;재현-가능성&quot;&gt;재현 가능성&lt;/h3&gt;

&lt;p&gt;문제를 효과적으로 해결하려면 아래 원칙들을 지켜야 합니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;문제에 대한 설명이 필요합니다.&lt;/strong&gt; “이거 안 되는데 해결법 아시는 분?” 같은 모호한 질문은 다른 사람이 여러분의 문제를 이해하는 데 충분하지 않습니다. 어떤 에러가 나는지 구체적으로 설명해 주세요. 에러 메시지가 무엇이고 어떤 줄에서 에러가 나는지 정확하게 알려주어야 합니다. 또 간단하지만 여러분의 문제를 대표할 수 있는 문장으로 제목을 작성하세요.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;문제와 관련 없는 이슈들은 모두 제거합니다.&lt;/strong&gt; 질문이 컴파일 에러와 관련이 없는 경우, 이 문제가 컴파일 타임에 발생한 게 아니라는 것을 확인해야 합니다. 인터프리터 언어의 경우 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pylint&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;JSLint&lt;/code&gt;같은 린터를 통해 코드를 검증하세요.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;예제 코드가 정말로 문제를 일으키는지 한번 더 확인하세요!&lt;/strong&gt; 문제를 고쳤지만 아직 테스트하지 않은 경우, 이를 명시해 주어야 합니다. 시스템을 재시작하거나 환경을 초기화해서 예제 코드를 돌려보는 것도 필요합니다.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;여러분의 프로그램을 디버깅하는 방법에 대해 자세히 알고싶다면 &lt;em&gt;Eric Lippert&lt;/em&gt;의 훌륭한 블로그 글을 참고하세요: &lt;a href=&quot;https://ericlippert.com/2014/03/05/how-to-debug-small-programs/&quot;&gt;How to debug small programs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;최소 재현 가능한 예제 코드의 의미인 &lt;em&gt;reprex&lt;/em&gt;라는 용어는 &lt;em&gt;Jenny Bryan&lt;/em&gt;이 만든 R 패키지인 &lt;a href=&quot;https://reprex.tidyverse.org/articles/learn-reprex.html&quot;&gt;reprex&lt;/a&gt;에서 차용하였습니다.&lt;/p&gt;
</description>
                <pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate>
                <link>https://doldam0.github.io/%EC%BD%94%EB%93%9C-%EC%A7%88%EB%AC%B8-%ED%95%A0-%EB%95%8C-%EC%8D%A8%EB%A8%B9%EC%9D%84-%EC%88%98-%EC%9E%88%EB%8A%94-MRE-%ED%98%95%EC%8B%9D-%EC%BD%94%EB%93%9C</link>
                <guid isPermaLink="true">https://doldam0.github.io/%EC%BD%94%EB%93%9C-%EC%A7%88%EB%AC%B8-%ED%95%A0-%EB%95%8C-%EC%8D%A8%EB%A8%B9%EC%9D%84-%EC%88%98-%EC%9E%88%EB%8A%94-MRE-%ED%98%95%EC%8B%9D-%EC%BD%94%EB%93%9C</guid>
                
                <category>개발</category>
                
                <category>협업</category>
                
                <category>팁</category>
                
                
            </item>
        
    </channel>
</rss>