Asf에서 오픈소스 프로젝트가 만들어지는 과정(1편)

어쩌다 DM으로 납치(?)되어서 저도 처음으로 ASF에서 새로운 오픈소스 프로젝트가 만들어지는 과정을 함께하고 있는데요.

생각보다 훨씬 우당탕탕 굴러가고 있지만, 그 과정 자체가 꽤 즐겁습니다.

그래서 지금까지 어떤 과정을 거쳤는지, 앞으로 어떤 과정을 거치게 될지 시리즈로 기록해보려고 합니다.

0. 프로젝트의 가치 설정

프로젝트를 시작할 때 가장 먼저 해야하는 건 “우리가 뭘 하는가?” “우리가 왜 이걸 만드는가?” 같은 코어 가치를 정하는 것입니다.

이걸 단단하게 잡아두어야 이후 모든 참여자들이 같은 방향으로 정렬됩니다.

저희 프로젝트의 핵심 가치는

“오픈소스 메인테이너들의 시간을 지켜주자.”

입니다.

AI 시대가 되면서 PR과 이슈가 정말 빠르게 쏟아지고 있습니다.

이를 에이전트 기반으로 트리아지해서, 유지보수자들이 제한된 시간을 설계, 정확성, 보안, 기여자 멘토링 같은 더 중요한 문제에 집중할 수 있게 하자는 방향으로 시작했습니다.

그러다보니 일반 기여자 입장에선 사용하기엔 권한 제약이 많기도하고 굳이 사용할 필요는 없어서 저런게 있어? 싶을 수 있긴한…

1. 프로젝트를 같이 할 사람들을 모으기

프로젝트를 시작하기 전에 가장 먼저 해야 했던 건 “누구와 함께할 것인가”를 정하는 일이었습니다.

ASF 내부에서는 보통 특정 프로젝트 PMC보다는 그 이상, 즉 ASF Member 중심으로 초기 구성이 이루어지는 경우가 많습니다.

그리고 ASF 외부에서도 실제로 오픈소스 프로젝트를 운영해본 경험이 있는 분들이 필요했습니다.
저희는 CPython 쪽 프로젝트 관리자분들도 함께하게 되었고, 생각보다 정말 다양한 프로젝트 출신 분들이 모였습니다.

지금까지는 다음과 같은 프로젝트의 메인테이너 및 ASF 멤버분들이 참여하고 있습니다:
Airflow, Log4j, Arrow, Iceberg, Mahout, Beam, Pulsar, Tomcat, Superset, Lucene, Solr, Doris, Geode, ZooKeeper, ASF Security Team, CPython 등
… 그러다보니 자연스럽게 제가 가장 쩌리가 되었습니다 하하..!

아직은 뚜렷한 결과물을 보여주진 못했지만,
“우리가 해결하려는 문제가 무엇인가”에 공감해서 사람들이 모이는 경험 자체가 꽤 인상적이었습니다.

메일에 한 명씩 추가되면서 서로 인사하는 과정도 재미있는 경험이었습니다.

2. 프로젝트의 초기 MVP 만들기.

사람이 모였으면 이제 실제로 돌아가는 걸 만들어야 합니다.

저희는 에이전트 기반 프로젝트 관리 도구를 만들고 있기 때문에
가장 최소 기능으로 보안, PR, 이슈 트리아지 기능을 먼저 구현했습니다.

그리고 가장 중요한 질문은 하나였습니다.

“이게 실제로 효과가 있는가?”

그래서 실제 오픈소스 프로젝트에 시험적으로 적용해봤습니다.

Apache Airflow, Apache Doris, Apache Groovy 등에 적용하면서 꽤 의미 있는 결과들을 확인할 수 있었습니다.

데모 및 결과:

3. 이름 정하기

이게 가장 어려웠습니다ㅋㅋㅋㅋㅋㅋ
초기에는 메일링 리스트가 없으니, 참여하시는 분들 모두 cc걸고 투표를 열었습니다.
그리고 나서 아래와 같이 LAZY CONSENSUS 를 열어서 합의 과정을 거쳐서 선정을 합니다.

우선순위로 몇 가지를 만들어두고 ASF TLP팀에 맡겨서 상표 적합성 검토를 거칩니다.

저희는 이사회 시작 4시간 전에 적합성 검토에 통과되서, 새벽 2시에 결의안에 이름 변경하고 첩보 작전 하는 느낌이었네요 ㅋㅋㅋ

4. ASF 이사회 승인

ASF 이사회는 매달 셋째 주 수요일에 열립니다.
그리고 이사회 안건 제출 마감은 보통 그 전 주 금요일이고요.

지난 20일에 이사회가 열렸고, 여기서 “새로운 최상위 프로젝트(TLP)를 설립할 것인가”에 대한 논의가 진행됐습니다.

그런데 여기서 예상치 못한 문제가 생겼습니다.

프로젝트가 너무 빠르게 진행되다 보니,
몇몇 이사회 구성원분들이 꽤 놀라셨던 거죠 ㅎㅎ

보통은 추가 논의를 위해 다음 달로 넘어가는 경우도 있다고 들었는데, 이번 건은 중요도가 높다고 판단되었는지 드물게 비공개 합의 과정을 일주일 정도 더 진행하는 방향으로 이어지게 되었습니다. 한 달이 밀리지 않도록 빠르게 후속 논의를 이어가기로 한 거죠.

저희는 이것도 기회로 생각했습니다.
그동안 로고를 만들고, 홈페이지를 만들고, 확정된 이름 기준으로 프로젝트 구조를 정리할 시간을 벌 수 있었거든요.

5. 로고 만들기

자 일단 이름도 승인났겠다. 로고를 만들어야 합니다.
그런데 디자인에 일가견 있는 사람이 아무도 없었다는 거 ㅋㅋ
그래서 모두 gemini와 gpt를 엄청 굴리기 시작했습니다.

그래도 저스틴 형님께서 AI를 갈궈서(?)
조금 멍청해보이긴 하지만 보다보면 귀여운 로고를 만들어주셨습니다. ㅋㅋㅋㅋ

개인적으론 처음에는 이거 맞나 싶었지만 보다보니… 우리 까치 볼매입니다…!

마치며

ASF에서 프로젝트를 시작하는 과정에 참여하고 있으니 드는 생각은 단순히 “코드를 만드는 일”이라기보다는
사람들과 합의하고, 방향을 정하고, 커뮤니티를 만들어가는 과정에 훨씬 가깝다는 생각이 들었습니다.
왜 ASF가 "Community Over Code"라고 하는지 조금은 알 것 같네요.

아직 진행 중인 단계이긴 하지만, 지금까지는 정말 재미있게 경험하고 있습니다.
이제 정해야할 것들이 정말 많아지고 있네요.(웹사이트, 거버넌스, 리뷰 프로세스, 투표 권한, 메일링 리스트 등등)
다음 과정들도 어느 정도 진행되면 또 기록해보겠습니다 :wink:

1개의 좋아요