개발을 하다보면 그지같은 경험을 한 번씩 한다.
대체 뭐가 문제인지 모르겠지만 안돌아간다
구글링을 한다
내가 원하는 답을 알려주는 글이 없다
(주변에 조언을 구할만한 개발자가 없어서) 다시 구글링을 한다
저녁 11시에 시작했는데 시계를 보니 새벽 3~4시
자고 일어나면 그나마 지금까지 해결한 부분도 까먹을까봐 다시 구글링 시작
여기저기 흩어져있는 해결법을 드래곤볼마냥 모아서 해결한다
그것도 안되면 못하는 영어로 StackOverflow에 글을 남긴다
진짜 너무너무 싫은 일이지만 신기하게도 문제를 해결하면 실력이 올라간 것이 느껴진다.
만화에서 주인공이 죽다 살아나면 엄청 강해지던데 그게 이런 느낌이지 않나 싶다.
그래서 이런 생각이 들었다.
죽을것 같을 때 빨리 잘 살아나고 싶다
구글링으로 질문을 잘 하는 법을 찾아봤는데, 스택오버플로우에 그 방법을 적은 글을 발견했다.
구글링 잘하는 방법은 아니고 질문 글을 잘 쓰는 방법이다.
괜찮은 내용인것 같아서 오역, 의역을 포함하여 번역해보았다.
그리고 찾던 것을 계속 타고 들어라. 쓸 만한 답변을 찾지 못하더라도 나의 질문이 다른 질문들과 어떻게 다른지 이해하는 데 도움을 줄 것이다.
제목은 답변자가 가장 먼저 보게될 부분이고, 만약 제목이 흥미롭지 않다면 읽지 않을 것이다. 따라서 다음과 같이 생각하며 질문하라.
바쁜 동료와 이야기 한다고 여기고 전체 질문을 요약하는 한 문장으로 요약하라. 누군가가 당신의 문제를 알아 듣고 해결하는데 어떠한 내용을 담아야 하는가? 나의 질문이 이미 사이트에 있는 유사한 질문과 다르게 만들기 위해 Error Message, key APIs, 또는 일반적이지 않은 상황들을 설명할 수 있게 만들어라.
Spelling, 문법, 문장부호는 중요하다. 제목은 다른사람들이 가장 먼저 확인하게 될 부분이란 것을 명심한다면 답변자들에게 좋은 인상을 주고 싶을 것이다. 만약 영어가 서툴다면 영어를 잘하는 친구에게 부탁하라.
요약하는데 문제가 있다면, 제목을 가장 마지막에 작성하라. 가끔은 질문 먼저 적는 것이 문제를 설명하는데 도움이 된다.
제목 내용을 더 자세하게 쓰는 것으로 본문을 시작하라. 어떤 문제가 생겼고 그것을 해결하려 했으나 어떤 어려움에 부딪혔는지에 대해 설명하라.
질문의 첫 번째 단락은 대부분의 사람들이 읽게 될 부분이기 때문에 가능한 시선을 사로잡으면서 정보를 줄 수 있게 만들어라.
모든 질문들이 코드를 포함할 필요는 없다. 하지만 내가 작성한 코드에 문제가 있다면 코드를 적을 필요가 있다. 그렇다고 모든 코드를 적지는 마라. 회사의 코드를 올리면 문제가 생길 것이고, 답변자들이 문제를 구현할 때 무시해야할 것들도 포함할 것이기 때문이다. 따라서 이를 막기 위한 가이드라인은 다음과 같다.
문제 구현에 필요한 코드만을 올려라. 이에 대해선 다음 링크를 참고하라.
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 등의 이미지를 올리지 마라. 질문에 텍스트를 직접 입력하거나 복사해서 적어라. 이미지는 텍스트를 통해 정확하게 설명할 수 없는 도표 또는 렌더링 버그에 대한 이미지를 올릴 때 써라.
질문과 관련된 언어, 라이브러리 및 특정 API에 대한 태그를 적어라. tags field에 입력하기 시작하면 시스템에서 입력한 내용과 관련 있는 내용을 추천할 것이다. 태그 내용이 질문과 관련 있는지 없는지 확인하기 위해 다음 문서를 읽어봐라.
What are tags, and how should I use them?
이제 질문할 준비가 됐으니, 심호흡을 하고 처음부터 끝까지 읽어라. 마치 처음보는 것처럼. 질문한 내용이 말이 되는가? 새로운 환경에서 문제를 다시 구현해보고 내가 적은 정보만으로 질문을 해결할 수 있는지 확인하라. 실수로 빼먹은 내용을 추가하라. 이 때가 제목이 나의 문제를 잘 설명하고 있는지 확인할 좋은 때이다.
질문을 올리고, 잠시 브라우저에서 질문을 열어두고 누군가 댓글을 달지 않는지 기다려라. 만약 꼭 필요한 정보를 놓친 경우 질문을 수정하고 응답할 준비를 하라. 만약 누군가 답변을 올리면, 답변을 시험해 볼 준비를 하고 피드백을 줘라.
모든 노력에도 불구하고, 나의 질문들이 나쁜 평가를 받을 수도 있다. 실망하지 마라. 좋은 질문을 하는 법을 배우는 것은 가치 있는 일이고, 하룻밤만에 잘 할 수 있는 일이 아니다. 추가적으로 다음의 링크를 보면 도움이 될 것이다.
위 글대로 모르는 것을 찾아보면서 실력이 늘 수 있고,
질문하면서 내가 뭘 모르는지 정리가 되어 실력이 상승할 것이다.
질문을 잘 했으면 답변도 잘 받을 것이고...
생각해보면 다른 사람한테 질문하는 와중에 깨닫는 경우도 많았다.
질문을 잘 해보자!
개인적으로 문제를 올리는것보다 문제를 찾는게 훨 좋다고 봐요. 왠만한 문제는 구글링하면 다 있기에.. 그리고 기본 언어적인 신택스 문제는 stak of flow에, import한 라이브러리에 관한 에러는 거의 다 git library community에 포진 되어 있고, 영어 문서는 영어를 잘하더라도 피로도가 계속 누적되어서 한번 구글로 한영 번역해서 스캐닝한다음 맞다 아니다만 거르고 맞을거 같으면 천천히 reading하면 좋은거 같아요
올