
🚀 프롤로그: 막연한 동경에서 구체적인 목표로
'오픈소스 기여(Open Source Contribution)'. 개발자라면 누구나 한 번쯤 꿈꾸는 버킷리스트지만, 저에게도 이곳은 항상 높고 막연한 벽이었습니다. "도대체 어디서부터 시작해야 하지?", "내가 감히 코드를 고쳐도 될까?"라는 고민만 하다가 끝나기 일쑤였죠.
하지만 글로벌 무대, 특히 제가 목표로 하는 오토매틱(Automattic)으로 나아가기 위해 오픈소스 기여는 더 이상 선택이 아닌 필수였습니다. 그래서 이번엔 막연한 고민을 멈추고, 철저히 전략적으로 접근해 보기로 했습니다.
🧐 전략 1. 나의 무기(Weapon) 파악하기
맨땅에 헤딩하기보다는 제가 가장 잘할 수 있는 영역에서 시작해야 승산이 있다고 판단했습니다. 저의 핵심 역량은 크게 두 가지였습니다.
- PHP: 12년 차 개발자로서 가장 자신 있는 언어
- 결제(Payment) 도메인: 실무에서 쌓은 깊이 있는 경험
이 두 가지 교집합을 통해 기여할 프로젝트를 찾아보기로 했습니다. 처음엔 거대한 WooCommerce Core를 생각했지만, 너무 방대해서 초보 기여자가 진입하기엔 진입 장벽이 높았습니다.
그래서 범위를 좁혔습니다. 오토매틱이 직접 관리하면서도, 제 주특기인 결제 로직이 핵심인 프로젝트. 바로 woocommerce-gateway-stripe였습니다.
🔍 전략 2. 기여 방법의 재정의 (단순 번역 vs 이슈 해결)
프로젝트는 정해졌으니, '무엇을' 할지 정해야 했습니다. 보통 오픈소스 입문 가이드에서는 다음과 같은 단계를 추천합니다.
- 문서 번역 (Translation)
- good first issue 라벨이 붙은 쉬운 이슈 해결
- 버그 리포팅 및 재현(Reproduction)
문서 번역은 개발자로서의 임팩트가 약해 보였고, good first issue는 이미 너무 오래되어 방치되었거나 경쟁이 치열해 먹을 것이 없었습니다.
그래서 저는 "등록된 이슈를 확실하게 재현(Reproduction)해 주는 것"을 목표로 삼았습니다. 메인테이너들이 가장 골치 아파하는 것이 '재현되지 않는 버그'라는 점을 노린 것입니다.
🎯 타겟 포착: "재현이 어려운" 이슈를 찾아라
제미나이(Gemini)의 심층 리서치 기능을 활용해 최근 이슈들을 분석하던 중, 제 눈길을 사로잡는 이슈 하나를 발견했습니다.
- Issue #4951: Webhook fatal error caused by ID collisions
내용은 이렇습니다.
"서로 다른 웹사이트(멀티 사이트 환경)에서 동일한 Stripe 계정을 공유할 때, 우연히 Order ID가 겹치면 웹훅 처리 과정에서 Fatal Error가 발생한다."
이 이슈가 매력적인 이유는 리포터가 남긴 한마디 때문이었습니다.
Steps to reproduce: This requires a pretty complex setup to trigger, so I don't know that we will be able to reproduce it directly. (이건 꽤 복잡한 세팅이 필요해서, 우리가 직접 재현할 수 있을지 모르겠습니다.)
"복잡한 세팅이 필요해서 재현하기 어렵다." 이 문장을 보는 순간 확신이 들었습니다. "이거다!"
복잡한 환경 구성과 결제 흐름 추적은 제가 실무에서 수도 없이 해왔던 일입니다. 남들이 재현하기 어려워하는 이 이슈를 내가 재현하고 증명해 낸다면, 확실한 기여가 될 것이라 판단했습니다.
🔥 다음 예고: 로컬 환경에서의 고군분투
목표는 정해졌습니다. 이제 이 복잡한 멀티 사이트 ID 충돌 상황을 제 로컬 환경(Localhost)에서 똑같이 만들어내야 합니다.
다음 포스팅에서는 제 로컬 환경 세팅하면서 겪은 삽질의 기록을 공유하겠습니다.
'사이드프로젝트' 카테고리의 다른 글
| [오픈소스 기여 도전기 #1] 거대한 코드 숲에서 길을 찾다 (구조 분석 & 웹훅 테스트) (0) | 2026.02.17 |
|---|---|
| [오픈소스 기여 도전기 #1] 맨땅에 헤딩: 우커머스 로컬 환경 구축부터 결제 성공까지 (0) | 2026.02.17 |
| [사이드 프로젝트] #2. RAG 챗봇 개발기 (6) - 하이브리드 검색과 '의외의' 결과 (0) | 2025.11.21 |
| [사이드 프로젝트] #2. RAG 챗봇 개발기 (5) - '메타데이터'를 활용한 필터링 (1) | 2025.11.13 |
| [사이드 프로젝트] #2 RAG 챗봇 개발기 (4) - 문서를 FAQ로 바꿨더니 답변 품질이 10배 향상됐다 (1) | 2025.11.08 |