22.4 스택 오버플로
스택 오버플로에서 필요한 답을 찾은 경험이 이미 있을 겁니다.
스택 오버플로는 2008년 등장하자마자 온라인 질문과 답변 사이트를 평정했습니다.
자바스크립트는 물론이고 이 책에서 언급한 다른 기술에 대해서도 의문이 생긴다면 스택 오버플로에서 답을 찾을 수 있습니다.
스택 오버플로는 커뮤니티에서 관리하며 명성을 통해 운영되는 사이트입니다.
스택 오버플로가 훌륭하게 유지되는 비밀은 바로 이 ‘명성’ 모델에 있다고 해도 과언이 아닙니다.
사용자는 자신의 질문이나 답변이 ‘추천’을 받거나, 답변이 채택될 때마다 명성을 얻습니다.
물론 명성이 전혀 없어도 질문할 수 있고, 사이트에 등록하는 것도 무료입니다.
무작정 질문하기보다는 요령 있게 질문을 해야 답변을 받을 확률이 높아집니다.
이 섹션에서는 스택 오버플로에 질문하는 요령에 대해 알아보겠습니다.
명성은 스택 오버플로의 화폐라고 할 수 있습니다.
대가 없이 당신을 기꺼이 도와줄 사람도 많이 있지만, 좋은 답변을 통해 명성을 얻는다는 것도 강력한 동기 부여 수단이 됩니다.
스택 오버플로에는 정말 똑똑한 사람들이 많이 드나들고, 그들은 첫 번째로 가장 좋은 정확한 답을 올리기 위해 경쟁합니다(다행히, 엉뚱한 답을 빨리 달기만 하는 사람에게는 강력한 불이익이 가해집니다).
다음을 잘 읽고 지키면 스택 오버플로에서 원하는 답을 얻을 가능성이 커집니다.
- 로마에선 로마법에 따라야 합니다.
SO 투어를 읽어보고, 좋은 질문을 올리는 요령에 관한 글도 읽어보십시오.
원한다면 도움말 문서를 모두 읽는 것도 괜찮습니다.
도움말 문서를 다 읽으면 캐릭터를 장식할 배지도 줍니다. - 이미 답이 있는 질문을 다시 올리지 마십시오.
누군가 스택 오버플로에서 쉽게 답을 찾을 수 있는 질문을 올리면, 그 질문은 곧 중복으로 분류되어 닫힙니다.
그리고 중복된 질문을 비추천하는 사람들도 많이 있는데, 비추천을 받으면 명성에도 좋지 않은 영향이 있습니다. - 코드를 대신 작성해달라고 하지 마십시오.
무턱대고 ‘이거 어떻게 해요?’하는 식의 질문을 올리면 곧 비추천을 받고 질문이 닫히게 됩니다.
스택 오버플로에서는 당신이 질문하기 전에 스스로 해결하기 위해 노력하길 원합니다.
질문할 때는 어떤 시도를 해봤는지, 왜 그게 안됐는지 설명해야 합니다. - 한 번에 질문 하나만 하십시오.
필자는 스택 오버플로에 답변을 많이 하는 편이지만, 서너 페이지에 달하는 코드를 들이미는 질문은 읽지도 않고 넘어가곤 합니다(때로는 그보다 더 긴 코드를 볼 때도 있습니다).
5000 행짜리 파일을 질문란에 붙여넣고 답변을 바란다는 건 아무래도 상식적이지 않습니다(그런데도 이렇게 하는 사람이 정말 많습니다).
상식적이지도 않고, 무책임하고, 답변도 없습니다.
무턱대고 들이밀지 말고, 코드를 읽어보면서 ‘여기는 문제가 없어’하는 부분을 잘라내는 시도부터 해보십시오.
그러다 보면 질문하기도 전에 문제가 해결될 때가 많습니다.
이런 소거법을 연습하다 보면 디버깅 요령도 늘어나고, 사고력이 좋아지고, 스택 오버플로에서 환영받는 사용자가 됩니다. - 마크다운을 익히십시오.
스택 오버플로에서는 마크다운(Markdown)을 통해 질문과 답을 작성합니다.
질문이 보기 좋게 잘 정리되어 있으면 그만큼 답을 얻을 확률도 올라갑니다.
마크다운은 스택 오버플로 외에도 많이 사용되고 점점 더 인기를 얻고 있으니, 시간을 내서 마크다운을 익히길 권합니다. - 답변을 채택하고 추천하십시오.
누군가가 당신의 질문에 만족스러운 답을 올렸다면 그 답변을 채택하고 추천하십시오.
답을 올린 사람은 그를 통해 명성을 얻고, 명성은 스택 오버플로가 유지되는 원동력입니다.
여러 사람이 괜찮은 답을 제시했다면, 그중 최고라고 생각되는 것을 골라서 채택하십시오.
추천은 모든 답에 다 할 수 있습니다. - 자문자답이라도 상관없습니다. 먼저 알아냈다면, 답을 다십시오.
스택 오버플로는 커뮤니티입니다.
당신이 뭔가 질문할 것이 생겼다면, 다른 사람이 똑같은 질문을 할 확률도 잇습니다.
스스로 알아냈다면 당신의 질문에 답을 달아도 됩니다.
누군가가 그 답을 보고 도움을 받을 수 있을 겁니다.
다른 사람을 돕기를 즐긴다면 질문에 답변을 달아 보십시오.
다른 사람의 질문에 대답하는 것은 유쾌한 일이고, 명성도 얻을 수 있습니다.
질문을 올렸는데 이틀이 지나도 유용한 답이 올라오지 않으면, 당신의 명성을 걸고 답을 현상수배 할 수 있습니다.
현상금으로 건 명성은 계정에서 즉시 빠져나가고 취소할 수 없습니다.
누군가가 당신의 질문에 만족스러운 답을 올려서 당신이 그 답변을 채택한다면 현상금으로 건 명성을 그 사람이 가져가게 됩니다.
당연한 일이지만, 현상수배를 하려면 우선 명성이 있어야 합니다.
최소한의 현상금은 명성 50입니다.
좋은 질문을 올려도 명성을 얻을 수 있지만, 좋은 답을 올리면 더 빨리 명성을 얻을 수 있습니다.
다른 사람들의 질문에 대답하다 보면 자신도 배울 것이 많습니다.
필자 역시, 필자가 올린 질문에 대한 답을 볼 때보다, 오히려 다른 사람에게 대답하면서 더많은 것을 배운다고 느낄 때가 많습니다.
어떤 기술을 정말로 마스터하고 싶다면, 우선 기초를 배운 다음 스택 오버플로에서 다른 사람과 답변 경쟁을 해 보십시오.
처음에는 전문가들에게 연전연패 하겠지만, 머지않아 당신 스스로가 전문가 반열에 올라 있다고 느끼게 될 겁니다.
마지막으로, 명성은 꼭 스택 오버플로 안에서만 쓰인느 것은 아닙니다.
명성이 높다면 이력서에 적어 보십시오.
최소한 필자는 이력서에 명성을 적어서 성공한 케이스에 속합니다.
그리고 이제 필자는 다른 개발자의 면접을 보곤 하는데, 명성이 높은 지원자에게는 항상 좋은 인상을 받습니다(개인적으로는 3000이 넘으면 좋다고 보고, 1만 이상이라면 아주 훌륭하다고 판답합니다).
명성이 높다는 것은, 그가 자신의 분야에서 경쟁력 있는 사람임은 물론, 소통에 능하고 다른 사람을 돕는 좋은 마음가짐을 가졌다는 증거입니다.