Stack Overflow, 개발자의 성장과 경험 포인트

개발자라면 한 번쯤은 방문해봤을 스택오버플로(StackOverflow) 커뮤니티를 통해 얻을 수 있는 성장과 경험 포인트

#motivation #stackoverflow #community

개발을 하다가 한 번쯤은 방문해보셨을 커뮤니티가 있습니다 바로 스택오버플로(https://stackoverflow.com) 인데요.

개인적으로 올해 다짐한 개발 공부 관련 버킷리스트 중 하나인 스택오버플로 커뮤니티 제대로 활용해보기를 하면서 여러 가지 느꼈던 점들을 이야기해보려고 합니다.



스택오버플로에 대해서

스택오버플로는 어떤 커뮤니티일까?

우리가 잘 알고 있는 것처럼 프로그래밍의 다양한 주제에 대한 질문과 답변을 할 수 있는 곳입니다. 단순히 질의응답만 하는 곳이 아니라 여러가지 활동도 할 수 있는데요. 이러한 활동은 명성(Reputation) 이라는 점수 시스템을 기반으로 운영됩니다. 스택오버플로에서는 이 명성을 “커뮤니티가 당신을 얼마나 신뢰하는가?” 라고 정의할만큼 스택오버플로 커뮤니티 내에서 꽤 중요하게 작용합니다.

그렇기 때문에 유익한 활동을 하면 명성 점수를 얻을 수도 있고 반대인 경우에는 점수를 잃을 수 있습니다. 물론 명성이 없더라도 게시글을 읽거나 답변을 작성할 수 있고요.

언제 점수를 획득하는가?

  • 내가 다른 사용자의 질문을 채택한 경우: +2점
  • 내 질문이 다른 사용자의 찬성 투표를 받으면: +5점
  • 내 답변이 다른 사용자의 찬성 투표를 받으면: +10점
  • 내 답변을 질문자가 채택한 경우: +15점

언제 점수를 잃는가?

  • 내가 다른 사용자의 답변에 반대 투표를 하면: -1점
  • 내 질문이 다른 사용자의 반대 투표를 받으면: -2점
  • 내 답변이 다른 사용자의 반대 투표를 받으면: -2점

그리고 이 체계에 따라서 커뮤니티 내의 특권(Privilege) 을 가질 수 있습니다. 특권 단계에 따라서 다른 사람의 질문이나 답변을 수정할 수 있고, 심지어는 다른 사람이 올린 게시글의 삭제를 건의하는 투표를 할 수도 있습니다.

stackoverflow privilege

특권 외에도 배지, 랭킹과 같은 다양한 요소를 통해 개발자들의 활발한 커뮤니티 활동을 유도하고 있습니다.



스택오버플로의 신뢰를 위한 장치들

스택오버플로에는 질문과 답변의 퀄리티를 유지하기 위한 몇가지 장치들이 있습니다.

작성한 질문이나 답변도 내 마음대로 삭제할 수 없을 때가 있으며, 댓글도 일정 기간 이후에만 수정이 가능합니다. 심지어 간단한 댓글을 남기는 것조차 특권이 있는 사용자에게만 허용됩니다.

또한 본인의 질문에 직접 답변을 달 수 있지만, 일정 기간 이후에만 가능하며 그에 따른 보상 또한 얻지 못합니다. 그리고 비정상적인 보상을 지속적으로 얻게 되면 어뷰징으로 판단되어 감점이 되기도 합니다.

처음에는 이러한 제한사항이 커뮤니티 활동을 할 때마다 불편함으로 다가올 수 있지만 이러한 장치들은 스택오버플로를 조금 더 신뢰할 수 있게 하는 밑거름이 됩니다.



활용 후기

스택오버플로를 활용하면서 느낀 개발자의 성장과 경험 포인트

올해 “스택오버플로 커뮤니티 제대로 활용해보기”를 시작한 것은 잘한 점이라고 생각합니다. 계획했던 것보다 많은 활동을 못해서 아쉬움도 남고 “조금 더 빨리 시작해볼걸” 하는 생각도 들고요. 그래도 퇴근 이후의 적은 개인 시간으로 보다 빠른 효과를 볼 수 있었던 것 같아서 좋았습니다.

스택오버플로를 활용하면서 개인적으로 얻을 수 있었던 장점을 정리해보면,

첫 번째로 “문제 해결/디버깅 능력 향상” 입니다.

코드를 리뷰하는 일은 어렵습니다. 리뷰를 해야 하는 코드가 다른 사람의 코드인 경우에는 더욱 어렵고요. 스택오버플로에는 전 세계 개발자들이 겪고 있는 다양한 이슈들을 살펴볼 수 있고 코드도 살펴볼 수 있는 기회가 있습니다. 이 경험들은 현업에서 동료의 코드를 볼 때의 어려움과 부담감을 조금이나마 줄여주었던 것 같습니다. 더 나은 방법을 찾기 위해 이것저것 찾다가 저도 모르고 있던 새로운 방식과 라이브러리에 대해서 알게 된 것도 있었고요.

한편, 현업을 하다가 막히는 부분이 있어서 JAXB 이벤트 핸들러 사용에 대한 이슈(아래 링크 참고)가 있어 직접 질문도 올려보았는데요. 문제 해결을 위한 힌트뿐만 아니라 여러 개발자들과 같이 논의할 수 있는 기회를 얻을 수 있어 좋았습니다.

두 번째로 “영어 학습 효과” 입니다.

새로운 개발 기술을 공부할 때, 책에 있는 코드를 읽기만 하는 것보다는 직접 코드를 작성하며 실행해봐야 더 빠르게 실력이 향상된다고 생각합니다. 이러한 맥락에서 영어도 마찬가지라고 생각하고요. 스택오버플로는 내가 하고 있는 개발 관련 영어 문장 작성을 연습할 수 있는 좋은 장소가 될 수 있습니다.

심지어 질문이나 답변에 잘못된 문법이 있는 경우에는 다른 사용자가 직접 수정 의견을 남겨줍니다. 즉, 무료로 영어 첨삭 가이드를 받을 수 있는 셈입니다. 틀렸다고 창피해하지 않아도 됩니다. 개인적으로 실수와 연습으로부터 배우는 것은 좋은 방법이라고 생각합니다. 처음부터 잘 할 수는 없으니까요! (그리고 우리에게는 파파고와 구글 번역기가 있어요!)

마지막으로 “동기 부여” 입니다.

지나고 보니 동기 부여를 해준 요소라고 생각합니다. 제가 작성한 질문이나 답변이 누군가에게 도움이 되거나 특권이 생기는 것을 볼 때마다 오랜만에 느낀 성취감과 자극으로 다가왔던 것 같습니다. 자극이 계속되어 꾸준히 활동하다 보니 2019년 명성 획득 순위 4% 를 달성한 후에는 더 뿌듯함을 느꼈고요. (누적 순위와 다르게 획득 순위는 내년에 다시 초기화됩니다…)

stackoverflow yearly ranking

사실 올해 목표는 명성점수 천 점을 달성해서 Established User 특권을 갖게 되는 것이긴 했습니다. 점수를 달성하다 보니 매월, 매 분기마다 프로필에 표기되더라고요. 꽤 뿌듯했습니다.



맺으며

개발자에게 좋은 점은 정말 많다. 그런데 꼭 스택오버플로는 아니다.

물론 모두가 관심사가 다르기 때문에 이 같은 활동에 전혀 흥미가 없을 수 있습니다. 오프라인으로 직접 알려주는 것에 더 가치를 느낄 수도 있고 개발 외적인 활동이 동기 부여를 해주는 자극 요소가 될 수 있습니다. 심지어 동기 부여라는 자극 자체가 필요 없을 수 있고요.

저도 요즘은 오히려 개인 시간에 휴식과 같은 개발 외적인 활동을 하는 것이 더 동기 부여가 되는 것 같아요. 최근에 시작한 게임이 하나 있는데 리그 오브 레전드라고 새벽까지 하다 보니까 오히려 더 업무에 집중하는 효과가..? (실력이 형편없어서 이길 때까지 하다 보면 새벽이 되더라고요.)

비록 올해는 자바 영역을 목표로 활동을 했지만, 향후에는 스프링이나 vuejs와 같은 영역에도 도전해보려고 합니다.