소소한 팁/알쓸잇(IT)잡

Stackoverflow 사용방법 - MRE

너l모 2022. 9. 8. 16:58
반응형

※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!


 ο 목차

     


    ※ 코드 보는 방법 참고

    ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력

    ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력

    ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력

    ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력


    안녕하세요, 네모입니다. 

     

    Stackoverflow는 유용한 사이트이지만 아무것도 모르는 초보 개발자분들은 질문부터 제대로 된 답변을 얻는 것부터가 쉽지 않은 곳입니다... (기본적으로 외국 사이트라 죄다 영어여서 진입장벽이 높음ㅠ)

     

    다른 개발자분들께도 도움이 될까 싶어 제가 질문글 올리면서 느꼈던 그곳의 소소한 규칙들과 제대로 질문하는 법, 그리고 제대로 된 답변 얻는 꿀팁들을 공유하고자 합니다.

     

    우선 제대로 질문하려면 MRE에 대해서 알고 제대로 사용할 줄 알아야 합니다.

    Stackoverflow는 돈을 내고 강의를 받는 곳도 아니고, 단순히 개발자이 모인 개발자들을 위한 커뮤니티입니다. 제대로 된 답변을 얻으려면 제대로 된 질문을 해야 하는 곳이죠. MRE를 모르면 제대로 된 답변을 받지 못할 뿐만 아니라 잘못하면 시니어 개발자의 짜증 섞인 질책을 받을 수도 있습니다.

     

    아래 내용이 도움이 되시길 바랍니당

     

    1. MRE(Minimal, Reproducible Example)란?

    * 참고 사이트

    https://stackoverflow.com/help/minimal-reproducible-example

     

    How to create a Minimal, Reproducible Example - Help Center

    Stack Overflow | The World’s Largest Online Community for Developers

    stackoverflow.com

    - Stackoverflow에서 말하는 MRE는 아래의 조건을 만족하는 재현 가능한 예제(reprex), 최소의 완전하고 검증 가능한 예제(mcve), 최소한의 실행 가능한 예제(mwe)를 의미

    1) 최소성 : 동일한 문제를 생성하는 최소의 코드만 사용

    2) 완전성 : 다른 사람이 코드를 통해 문제를 재현해 볼 수 있도록 필요한 코드를 모두 제공

    3) 재현 가능성 : 문제 재현이 가능한 코드 제공

     

    2. MRE 방법

    (1) 최소성을 만족시키는 방법 

    1) 처음부터 다시 시작하기

    - 문제를 보는데 필요한 것만 추가하여 프로그램 새로 만들기

    - 함수와 변수의 이름을 간단하고 설명적인 이름으로 변경하기(기존 코드와 동일한 이름을 따오는 것은 지양할 것)

     

    2) 코드 나눠서 테스트하기

    - 문제의 원인이 되는 코드를 파악할 수 있을 때까지 문제와 상관없는 코드를 지워가면서 테스트

    - 문제가 되는 코드와 필수적인 코드 몇 부분을 제외하고 다른 부분은 제거하기

     

    (2) 완전성을 만족시키는 방법

    1) 모든 코드 포함하기

    - 문제 재현을 위해 필요한 모든 코드를 각 코드 블럭으로 나누어 제공

    - 각 코드 블록에 대한 설명 필요

    - 코드를 텍스트가 아닌 이미지 파일로 제공하는 것을 지양

     

    (3) 재현 가능성을 만족시키는 방법

    1) 문제 설명

    - 제목은 간결한 요약으로 적되 본문 내용에 어떤 부분에서 오류가 발생하고, 어떤 오류가 발생하는지 구체적으로 명시

    2) 기타 문제일 가능성 제거

    - 질문하지 않은 기타 다른 문제로 인한 오류가 아닌지 점검 필요

    - 컴파일러 오류, 혹은 컴파일 시간 오류 등 질문하지 않는 기타 문제로 인한 문제일 가능성 제거

    3) 질문한 예제로 문제가 재현가능한지 점검

    - 질문에 사용된 코드를 통해 문제를 재현할 수 있는지 확인 필요


    ※ MRE 작성시 주의사항

    1) 명확하게 작성하기

    - 코드 최소성을 만족시키되 필요하다면 주석을 추가하고 변수 이름이 일관되는지 확인 필요

    2) 탭으로 들여쓰기 사용 지양

    - 탭 대신 일정수의 공백을 사용하여 들여쓰기하기

      (Stackoverflow에서 탭 형식이 올바르게 지정이 안 되는 경우가 있을 수 있음)


    초보 개발자분들께는 조금 까다로울 수 있지만 MRE를 하면서 문제를 다시 한번 파악할 수 있게 되고, MRE가 잘 된 질문은 문제 해결 방법에 대한 명확한 답변을 그 어디보다도 빠르게 받을 수 있습니다. 

    (ㅠㅠ 어느 정도 격식 갖춘 영어는 기본입니다,, 무례한 어투로 질문하지 않도록 기본 영어 공부도 꼭 하시길 바래요!)

     

    이외에도 MRE를 습관처럼 하다보면 본인의 스킬도 더 빨리 느는 등 여러가지 장점이 있습니다ㅎㅎ

    혹시 stackoverflow 사용에 대해서 기타 궁금한점 있으시면 댓글 남겨주세요


    ※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다. 

     

     

    반응형