정글에서 온 개발자

[번역] 첫 경험자만 (First Timers only) 본문

번역

[번역] 첫 경험자만 (First Timers only)

dev-diver 2025. 1. 1. 21:57
Kent C. Dodds 의 원문 포스트 First Timers Only 의 번역입니다.

저는 최근에 정말 보람 있는 일을 시작했습니다. 저는 AngularJS에서 꽤 인기 있는 폼 라이브러리인 angular-formly의 유지 관리자입니다. 저는 많은 코드를 커밋했고 현재 라이브러리에는 33명의 기여자(contributors)가 있습니다. 이 중 최소 5명의 기여자는 오픈 소스 라이브러리에 기여한 것이 처음입니다.

저는 angular-formly에 쉽게 기여할 수 있도록 정말 열심히 노력했습니다. 오픈소스 프로젝트 관리자가 하는 모든 일반적인 일을 했고, 덜 일반적인 일도 했습니다...

  • CONTRIBUTING.md 설정 (자주 무시됨)
  • 코드를 체계적으로 정리하고 필요한 곳에 주석 달기.
  • up-for-grabs 레이블 추가 (angular-formally는 이제 up-for-grabs.net에 있습니다)
  • githook 추가 (ghooks를 이용). githook은 테스트를 돌리고 eslint로 코딩 스탠다드를 체크해 사람들이 PR을 왔다갔다하느라 좌절감을 느끼지 않도록합니다.
  • npm script 사용.  사람들이 빌드 툴을 이해하거나 전역적으로 설치할 필요가 없도록 합니다.

설정하는 법을 보여주기 위해 스크린캐스트를 녹화하기도 했습니다. 하지만 여전히 뭔가 놓치고 있다는 것을 깨닫지 못했었습니다...


몇 달전, angular-formly는 Koen Weynpull request를 받았습니다. 그는 프로젝트의 IE8 호환성 문제를 해결하고 싶어했습니다. 그는 좋은 PR(pull request)를 제출했고, 우리는 약간의 반복을 거쳐서 merge했습니다. 그는 이번이 자신의 첫 Github pull request였다고 말했습니다. 정말 산뜻한 경험이였습니다. 누군가의 첫 오픈 소스 코드 기여에 참여하게 된다는 것은 멋졌습니다.

몇 달이 지나서야 아이디어를 떠올렸습니다. TDD(Test Driven Development)로 새 기능 개발을 하던 중, 저는 테스트를 끝내고 구현을 시작할 준비를 하려 했었습니다. 그리고 생각이 떠올랐습니다 : "다른 사람에게 이일을 맡기는게 어떨까? 나는 정확히 내가 뭘 하려하는지 알고 있다.  나는 오픈소스에 처음으로 기여하는 사람을 세심하게 안내하고 도와줄 수 있다."

조금 벗어난 이야기지만.. 저는 두 자녀의 행복한 아버지입니다. 제 아이들을 가르치거나 함께 놀아줄 때, 저는 가끔 제 딸에게 남동생한테 질문에 답할 기회를 주는게 어떻겠냐고 합니다. 많은 사람들은 다른 사람을 기쁘게 하고, 도와주려 합니다. 그래서 제가 아들에게 쉬운 질문을 던질 때, 딸보고 동생에게 대답을 양보하도록 하지 않으면, 그녀는 먼저 답을 말해버리고 동생은 대답하기의 만족감을 배우고/느끼기 힘듭니다. 저는 어른들도 같은 방식으로 행동할 수 있다고 생각합니다.

그래서 저는 테스트를 커밋하지만, 건너뛰게 하도록(그래서 빌드가 실패하지 않도록) (Mocha에서 `decribe.skip`을 사용해서) 결정했습니다, 이후에 push를 해서 issue에 다음 comment를 추가했습니다.

번역 추후 추가할 예정

가능하면 쉽게 만들었습니다. 코드가 어디로 가야 하는지 정확하게 말하고 좋은 접근방식을 추천했습니다.

오픈 소스를 처음 접할 때 가장 어려운 부분은 기능을 구현하는 것이 아니라 코드를 실제로 기여하는 방법을 찾는 일입니다.

그래서 이슈에 정확히 무엇을 해야 하는지 설명하고, Twitter, Gitter 그리고 Slack에 이를 알렸습니다:

https://x.com/kentcdodds/status/609354862074052608 (본문은 트위터 임베딩)

얼마 지나지 않아 세가지 매체 모두에서 여러 사람이 한 번 해볼 수 있겠냐고 물었습니다. 마침내 Stephen Bluck이 PR을 통해 그의 오픈 소스 커뮤니티에 첫발을 내디뎠습니다.

정말 어썸했습니다! 그래서 저는 좀 더 이렇게 할 기회를 찾았습니다. 이렇게 할 기회가 있었는데, 매 번 저와 기여자 모두에게 보람있는 일이였습니다. 그 프로젝트는 이제 이를 위해 first-timers-only 라벨이 생겼습니다. 이 도전에 응해준 Douglas Mason, Devan Beitel, 그리고 Brian Macheski에게 감사드립니다. 아직 기회를 얻지 못한 분들, 걱정하지 마세요, 앞으로 분명이 더 많은 기회가 있을테니까요..


자, 제가 직접 했다면 더 빨리 끝내고 제 갈 길을 갈 수 있었을까요? 물론입니다. 하지만 오픈소스 기여자의 역할이 그것만은 아닙니다. 다른 사람들에게 도움이 되는 좋은 소프트웨어를 제공하는 것은 즐거운 일이지만, 어디서부터 시작해야할지 모르는 사람들이 많다는 사실도 깨닫게 됩니다.

어떤 분들은 이렇게 자문할 수 도 있습니다, "내가 (그리고 다른 라이브러리 사용자들이) 기능을 사용하기 위해 며칠을 기다리기 싫다면 어떻게 하지?" 제 경험상, 사람들은 기능을 사용해보고 싶어합니다. 몇 시간 내에 최소 PR(때로는 여러개의)이 제출되고, 수정되고, 병합됩니다.

제 첫 풀 리퀘스트가 생각납니다. 그리 대단한 것은 아니었습니다. 매우 작았습니다. 저는 깃과 깃허브 사용법을 배웠습니다. 그건 기여하는 것이 어떤 느낌인지 알 수 있는 기회가 됐습니다. 보람되는 기분이였습니다. 오픈소스 프로젝트 관리자로서, 우리는 새로운 사람들이 처음으로 이런 느낌을 받고 다시 기여할 수 있도록 할 수 있는 힘을 가지고 있습니다. 해봅시다!


작은 부탁

만약 당신이 오픈소스 프로젝트 관리자라면, 한번 시도해보세요. first-timers-only 라벨을 당신 프로젝트에 붙여, 사람들이 여기서 찾을수 있도록 해보세요. makeapullrequest.com 에 참조를 거는걸 고려해볼 수도 있습니다. 저는 우리가 좀 더 오픈소스 커뮤니티 신규자들에게 친숙해질 수 있다고 생각합니다. 당신 프로젝트의 새로운 메인 관리자나, 심지어 평생 친구를 만들지도 모릅니다. 어느 쪽이든, 더 많은 사람이 오픈소스에 참여할수록 좋습니다. 이렇게 오픈함으로써, 우리는 "오픈소스에 친절을 되찾기(Bring Kindness back to Open Source." 를 돕고 있습니다.

githubtwitter에서 만납시다!


Fluent Conf 2016 talk "The First Pull Request" 를 봐주세요.

https://youtu.be/HjgZQeMrw6c?list=PLV5CVI1eNcJgNqzNwcs4UKrlJdhfDjshf

다음 읽을 거리:

Written by Kent C. Dodds

Kent C. Dodds는 자바스크립트 소프트웨어 엔지니어이자 교사입니다. Kent는 수십만 명의 사람들에게 품질 좋은 소프트웨어 개발 도구와 실천을 통해 세상을 더 나은 곳으로 만드는 방법을 가르쳤습니다. 그는 아내와 네 명의 자녀와 함께 유타에서 살고 있습니다.