좋은 질문을 하는 방법

Posted by Seongkyun Yu on 2020-04-12
Estimated Reading Time 4 Minutes
Words 645 In Total
Viewed Times

# 생산성과 좋은 질문

IT기술은 빠르게 변화하고 개발자는 변화를 따라가야 생산성을 유지할 수 있다. 때문에 개발자는 항상 공부해야 한다.

공부는 모르는 것을 배우는 것이다. 따라서 내가 모르는 것을 효과적으로 질문하는 것은 생산성과 연결된다고 생각한다.

좋은 질문을 하는 방법에 대해 고민하던중 stackoverflow에 관련 글이 있어 공부하는 김에 번역해 보았다.

How do I ask a good question?




1. 찾아보고, 조사하라

그리고 찾던 것을 계속 타고 들어가 찾아봐라. 내가 쓸 만한 답변을 찾지 못하더라도 나의 질문이 다른 질문들과 어떻게 다른지 이해하는 데 도움을 줄 것이다.


2. 특정 문제를 요약하는 제목을 써라

제목은 답변자가 가장 먼저 보게될 부분이고, 만약 제목이 흥미롭지 않다면 읽지 않을 것이다. 따라서 다음과 같이 생각하며 질문하라.

  • 바쁜 동료와 이야기 한다고 여기고 전체 질문을 요약하는 한 문장으로 요약하라. 누군가가 당신의 문제를 알아 듣고 해결하는데 어떠한 내용을 담아야 하는가? 나의 질문이 이미 사이트에 있는 유사한 질문과 다르게 만들기 위해 Error Message, key APIs, 또는 일반적이지 않은 상황들을 설명할 수 있게 만들어라.

  • Spelling, 문법, 문장부호는 중요하다. 제목은 다른사람들이 가장 먼저 확인하게 될 부분이란 것을 명심한다면 답변자들에게 좋은 인상을 주고 싶을 것이다. 만약 영어가 서툴다면 영어를 잘하는 친구에게 부탁하라.

  • 요약하는데 문제가 있다면, 제목을 가장 마지막에 작성하라. 가끔은 질문 먼저 적는 것이 문제를 설명하는데 도움이 된다.


예시:
  • Bad: C# Math Confusion
  • Good: Why does using float instead of int give me different results when all of my inputs are integers?

  • Bad: php session doubt
  • Good: How can I redirect users to different pages based on session data in PHP?

  • Bad: android if else problems
  • Good: Why does str == “value” evaluate to false when str is set to “value”?


3. 코드를 올리기 전에 문제에 대한 설명부터 하라

제목 내용을 더 자세하게 쓰는 것으로 본문을 시작하라. 어떤 문제가 생겼고 그것을 해결하려 했으나 어떤 어려움에 부딪혔는지에 대해 설명하라.

질문의 첫 번째 단락은 대부분의 사람들이 읽게 될 부분이기 때문에 가능한 시선을 사로잡으면서 정보를 줄 수 있게 만들어라.



4. 다른 사람들이 문제를 구현해 볼 수 있게끔 도와라

모든 질문들이 코드를 포함할 필요는 없다. 하지만 내가 작성한 코드에 문제가 있다면 코드를 적을 필요가 있다. 그렇다고 모든 코드를 적지는 마라. 회사의 코드를 올리면 문제가 생길 것이고, 답변자들이 문제를 구현할 때 무시해야할 것들도 포함할 것이기 때문이다. 따라서 이를 막기 위한 가이드라인은 다음과 같다.

  • 문제 구현에 필요한 코드만을 올려라. 이에 대해선 다음 링크를 참고하라.
    How to create a Minimal, Complete, and Verifiable example.

  • 만약 live example을 만들 수 있는 경우(http://sqlfiddle.com/ or http://jsbin.com/) 만들어라. 단 본문에도 그 코드를 써라. 모든 사람들이 외부 사이트에 접속할 수 있는 것은 아니다. 또한 시간이 지나면 링크가 깨질 수 있다. Stack Snippets를 이용하여 JavaScript / HTML / CSS의 live demo를 만들어라.

  • 코드, 데이터, Error message 등의 이미지를 올리지 마라. 질문에 텍스트를 직접 입력하거나 복사해서 적어라. 이미지는 텍스트를 통해 정확하게 설명할 수 없는 도표 또는 렌더링 버그에 대한 이미지를 올릴 때 써라.


5. 관련 있는 모든 태그를 적어라

질문과 관련된 언어, 라이브러리 및 특정 API에 대한 태그를 적어라. tags field에 입력하기 시작하면 시스템에서 입력한 내용과 관련 있는 내용을 추천할 것이다. 태그 내용이 질문과 관련 있는지 없는지 확인하기 위해 다음 문서를 읽어봐라.
What are tags, and how should I use them?


6. 질문을 올리기 전에 다시 한번 읽어보고 올려라

이제 질문할 준비가 됐으니, 심호흡을 하고 처음부터 끝까지 읽어라. 마치 처음보는 것처럼. 질문한 내용이 말이 되는가? 새로운 환경에서 문제를 다시 구현해보고 내가 적은 정보만으로 질문을 해결할 수 있는지 확인하라. 실수로 빼먹은 내용을 추가하라. 이 때가 제목이 나의 문제를 잘 설명하고 있는지 확인할 좋은 때이다.


7. 질문을 올리고 피드백에 답변하라

질문을 올리고, 잠시 브라우저에서 질문을 열어두고 누군가 댓글을 달지 않는지 기다려라. 만약 꼭 필요한 정보를 놓친 경우 질문을 수정하고 응답할 준비를 하라. 만약 누군가 답변을 올리면, 답변을 시험해 볼 준비를 하고 피드백을 줘라.


8. 도움을 구하기 위해 도움말을 찾아 보아라

모든 노력에도 불구하고, 나의 질문들이 나쁜 평가를 받을 수도 있다. 실망하지 마라. 좋은 질문을 하는 법을 배우는 것은 가치 있는 일이고, 하룻밤만에 잘 할 수 있는 일이 아니다. 추가적으로 다음의 링크를 보면 도움이 될 것이다.


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !