Hacktoberfest를 첫 메인테이너로서 참여하기
Source: Dev.to
위의 링크에 있는 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 마크다운 형식은 그대로 유지됩니다.)
Introduction
올해 초에 나는 Cloudinary의 Community Libraries 유지보수 업무를 인계받았다.
몇 달 뒤, 우리 팀은 DigitalOcean의 연례 Hacktoberfest에 참여하기 위해 준비하고 있었다.
독자 여러분, 저는 걱정했습니다.
나는 아직 라이브러리가 어떻게 동작하는지 익히고 있었고, 이슈 백로그를 파악하려 애쓰고 있었다. Hacktoberfest에 참여한 적도 없었고, 다른 유지보수자들이 매년 쏟아지는 스팸에 대한 무서운 이야기를 읽어본 적도 있었다.
눈사태보다 더 무서운 것이 무엇일까? 최근 AI‑생성 코딩 도구가 폭발적으로 늘어나면서 터보‑눈사태가 된다. 9월이 끝날 무렵, 나는 수백 개의 AI‑작성 PR이 도착할 것이라고 상상했다—각각 수백 줄에 달하고, 근본적인 이슈를 제대로 이해하지 못한 프롬프트에 기반하며, 제출자조차 이해하지 못하는 코드를 포함하고, 그럼에도 우리는 이를 검토해야 할 상황을 말이다.
좋은 소식
그리 나쁘지는 않았다. Hacktoberfest의 인센티브 구조가 일부 스팸을 생성했으며(그 스팸 대부분은 AI에서 나온 것이었지만), 우리 팀은 강력한 정책으로 많은 문제를 사전에 차단할 수 있었고, 약간의 추가 준비와 계획만으로도 더 많은 문제를 예방할 수 있었다.
- 가장 나쁜 PR들은 내가 예상한 만큼 나빴지만, 두려워했던 만큼 많이는 나타나지 않았다.
- 가장 좋은 PR들은, 감히 말하건대, 정말 훌륭했다. 해커톤 참가자들이 내가 몇 달째 미뤄두던 이슈들을 해결해 주었고, 라이브러리를 앞으로 나아가게 했다.
전체적으로 보면, 유지보수자로서 참여하는 데 많은 시간이 들었고(내년에도 참여할지 아직 논의 중이다), 하지만 우리를 압도하지 않으면서도 실질적인 가치를 제공했다. 아마도 이 과정에서 일부 기여자들이 오픈소스 메커니즘에 더 익숙해지는 데 도움이 되었을 것이다.
앞으로 몇 년간 유지보수자로서 참여를 고민하고 있다면, 우리에게 효과적이었던 점과 그렇지 않았던 점을 알아보려면 계속 읽어보라.
What Worked
1. Limit participation to a specific set of existing issues
우리는 Hacktoberfest 태그를 만들고 선별된 이슈 목록에 적용했습니다. 이를 통해 다음과 같은 문제들을 해결했습니다:
- 명확한 사명 – “문서 개선”과 같은 저가치 PR을 신속히 차단할 수 있었습니다.
- 집중된 노력 – 새로운 이슈를 재현하거나 새로운 기능을 정의하는 대신, Hacktoberfest 기간 동안 PR 검토에 전념할 수 있었습니다.
- 간단한 수정 – 해결이 비교적 쉬운 이슈에만 기여를 제한함으로써 빠른 검토가 가능했습니다.
2. Setting a quota up‑front
우리는 월말까지 수락하고자 하는 기여 수 목표를 정하고, 그 수만큼 이슈에 태그를 달았습니다. 이유는 다음과 같습니다:
- 성공 지표 – 정량적인 목표가 있으면 성공 여부를 명확히 전달할 수 있습니다. 우리는 2024년에 받은 성공적인 제출 건수를 기준으로 할당량을 설정했습니다(원본 링크 참조).
- 스와그 계획 – 수락된 PR에 대해 플러시 Cloudinary 유니콘을 제공하려 했기 때문에, 사전에 필요한 수량을 파악해야 했습니다.
작동하지 않은 점
1. 과도한 태깅 문제
우리는 Hacktoberfest 태그를 충분히 아끼지 못했습니다. 할당량을 먼저 정했기 때문에, Hacktoberfest에 적합한지 확인하기 전에 많은 이슈에 태그를 달았습니다. 그 결과:
- 이슈를 재현하고, 새로운 기능을 명세하며, 복잡한 PR을 검토하는 데 시간을 소비했습니다.
- 검토 지연이 길어졌고, 태그가 붙은 이슈들은 우리가 제대로 혹은 명확히 이해하지 못한 경우가 많아 나중에 “문제”가 되었습니다.
2. 기대 불일치
할당량이 있다는 사실이 저를 전체 문서 검토와 몇 개의 사소한 이슈를 제출하도록 동기부여했습니다. 이는 해결이 쉽고 검토도 간단했지만, 동시에 다음과 같은 상황을 만들었습니다:
- Hacktoberfest가 없었다면 문서 검토를 하지 않았을 것입니다.
- Hacktoberfest의 주요 가치인 “신규 기여자를 오픈소스 메커니즘에 소개하는 것”이 할당량 중심의 초점에 의해 다소 흐려졌습니다.
3. 정의가 불명확한 이슈
태그된 일부 이슈는 정의가 부족해 당혹스러운 PR이 나오게 했습니다. 예시:
- 기여자가 문제와 무관한 “수정”을 제출했습니다. 해당 이슈는 실제로 1년 전 더 큰 업데이트의 일환으로 해결됐지만 닫히지 않았습니다. 제출자는 아마도 오래된 이슈를 AI 도구(예: Cursor)에 넣어 해결하려 했을 것입니다.
4. AI‑생성 잡음
많은 제출물이 AI 도움을 받아 만들어졌습니다. 이 PR 뒤에 있는 인간 리뷰어들의 이해도는 다양했습니다:
- 기여자가 문제와 해결책을 충분히 이해하고 있었을 때는 과정이 원활히 진행되었습니다.
- 이해도가 낮을 경우, 이슈를 명확히 하거나 대안을 제시하려는 후속 대화가 거의 진행되지 않아 PR이 닫히고 양쪽 모두 시간 낭비가 발생했습니다.
긍정적인 놀라움
도전에도 불구하고, 최고 품질의 제출물은 제 기대를 크게 뛰어넘었습니다. 소수의 기여자들이 잘 생각된, 깔끔한 PR을 제공하여 라이브러리를 앞으로 나아가게 했습니다.
교훈 및 권고사항
- Hacktoberfest 태그를 신중하게 관리하세요 – 완전히 이해하고 빠르고 위험이 적은 수정에 진정으로 적합한 이슈에만 적용합니다.
- 현실적인 목표를 설정하세요 – 고정된 할당량 대신, 명확히 정의되고 태그 적용 자격이 있는 이슈 수에 기반한 유연한 목표를 고려합니다.
- 교육적 측면을 활용하세요 – PR이 작거나 반복이 필요하더라도, 신규 참여자들이 오픈소스 워크플로우를 배우도록 격려합니다.
- AI 생성 제출물에 대비하세요 – AI 지원 PR을 처리하기 위한 명확한 정책을 마련하고, 검토자가 의도와 정확성을 평가할 수 있는 가이드라인을 포함합니다.
- 스와그와 보상은 사후에 계획하세요 – 사전에 정해진 할당량이 아니라 실제 승인된 PR을 기준으로 스와그 필요량을 추정합니다.
마무리 생각
Hacktoberfest에 유지관리자로 참여하는 것은 도전과 보상이 뒤섞인 경험이었습니다. 더 나은 이슈 선택, 보다 유연한 목표 설정, 그리고 신입 참가자들을 위한 교육적 가치에 초점을 맞춘다면, 앞으로의 Hacktoberfest는 유지관리자와 기여자 모두에게 더욱 유익할 수 있습니다.
만약 유지관리자로 참여를 고민한다면, 명확하고 좁은 범위 정의, 초기 기대치 전달, 그리고 커뮤니티를 위한 학습 기회 수용부터 시작하세요. 즐거운 해킹 되세요!
Hacktoberfest 참여에 대한 회고
나는 내가 이해하고 있던 기본 프레임워크를 더 잘 이해하게 되었고, 아직 해결하지 못했던 미묘한 문제들에 대해 사려 깊은 해결책을 제안하는 데 시간을 들였다. 그들의 시간과 노력에 매우 감사하며, 이는 유니콘 인형과 Digital Ocean 티‑셔츠보다 훨씬 큰 가치가 있었다.
몇몇 이슈가 꽤 까다로운 것으로 드러났고 (그리고 나와 다른 기술 리뷰어들이 10월에 Hacktoberfest PR을 검토하는 것보다 더 많은 일을 해야 했기 때문에) 리뷰 기간이 몇 주로 늘어났으며, 이는 기여자들에게 좌절감을 주었을 것이라 생각한다. 몇 건의 경우, 11월 15일 마감 전에 PR을 수락하거나 거절하지 못했다. 우리는 그 기여자들에게 그래도 유니콘을 보냈지만, Hacktoberfest의 진정한 목적이 사람들에게 오픈소스의 메커니즘을 익히게 하는 것이라면, 일이 생각보다 복잡하고 코드가 결코 반영되지 않을 수도 있다는 것을 배우는 것이 좋은 교훈은 아니다. 다시 한 번, 우리가 사람들에게 해결하도록 초대한 이슈를 조금 더 신중히 선택했더라면 좋았을 것 같다.
Cloudinary 결과
- 우리 커뮤니티 라이브러리 문서가 이제 더 나은 상태가 되었습니다.
- 미루기 쉬웠던 수십 개의 작은 수정이 이제 완료되었습니다.
- 몇 달 동안 미뤄왔던 몇 가지 중요한 이슈에 대해 실질적인 진전을 이루었습니다.
- 이제 참가자들이 Cloudinary와 우리의 SDK에 더 익숙해지고, 경력을 쌓아가면서 우리를 더 많이 사용할 가능성이 높아졌기를 바랍니다.
동시에, 느린(그리고 몇몇 경우에는 해결되지 않은) 리뷰가 반대 효과를 일으켜 참가자들을 멀어지게 했을 수도 있습니다. 10월과 11월에 Hacktoberfest 작업을 다른 프로젝트보다 우선시하면서 Cloudinary에 실제로 시간 비용이 발생했습니다.
개인적인 소감
개인적으로, 한 번 해본 것이 확실히 기뻤습니다. 우리가 회사 차원에서 내년에 다시 할지 여부는 아직 미정입니다.
행복한 해킹!