
Node.js를 학교에서 프로젝트로 많이 사용하긴 했지만 기술을 너무 잘 모른 채로 사용하는 것 같아서 전부터 기여를 해보고 싶었다. 기여를 하면 어쩔 수 없이 기술도 공부하며 배우게 될 것 같았다.
군대 오기 전 1학년 때 오픈소스 수업을 들으며 이 생태계에 기여를 하는 것이 얼마나 숭고하고 중요한 일인지 들어서 해보고 싶은 생각을 항상 있었으나, 진입장벽 때문에 해내진 못 했다.
올해 초에 혼자 사지방에서 PR을 올렸는데 어떤 외국인 개발자한테 거절당해 closed 된 후 … 이번에 감사하게도 OSSCA 멘티에 선정되어 멘토님, 여러 사람들과 함께 다시 도전해볼 수 있게 되었다.
git clone https://github.com/nodejs/node.git
./configure명령으로 빌드 환경을 설정./configure
gyp라는 파이썬으로 짜여진 빌드 자동화 도구로 configure.py 파일을 내부적으로 실행하여 MakeFile 을 생성함 ⇒ out 파일에 MakeFile 이 실행됨.sysctl -n hw.logicalcpu
10
make -j10 ## 본인 코어 수에 맞게 돌리면 더 빠를 것 같습니다 !
약 16분 소요.
Node.js의 Makefile에서 기본 타겟은 node 바이너리를 만드는 것이고
src/*.cc (C++) 파일들deps/ 하위 디렉토리의 코드들 (예: V8, libuv, etc.)node_main.cc, node.cc 등이 진입점gyp이 생성한 .mk 파일들로 세세한 컴파일 플래그 관리내부적으로는 위의 내용의 것을 컴파일하게 됨.
git remote -v
origin https://github.com/nodejs/node.git (fetch)
origin https://github.com/nodejs/node.git (push)
→ 클론하고 빌드만 했으니 현재 디렉토리는 공식 저장소를 원격 저장소로 연결하고 있음.
‼️ 공식 저장소에는 push 권한이 없기 때문에 직접 수정하거나 push 하려 하면 에러남.
git remote rename origin upstream
git remote add origin https://github.com/haramj/node.git
(3.7.12) jeongharam@jeongharam-ui-noteubug node % git remote -v
origin https://github.com/haramj/node.git (fetch)
origin https://github.com/haramj/node.git (push)
upstream https://github.com/nodejs/node.git (fetch)
upstream https://github.com/nodejs/node.git (push)
→ 이렇게 하면 공식 저장소를 upstream 으로 남기고 내 포크는 origin으로 써서 자유롭게 PR을 보낼 수 있다.
make test
good first issue Labels 을 설정
→ 첫 기여자가 할만한 이슈들로 분류됩니다.
https://github.com/nodejs/node/issues/55864
→ 저는 이 이슈로 골랐는데 대화들 읽어보니 ERROR 관련 doc만 고치면 될 것 같아서 수정 후 커밋,푸시해서 바로 PR올려봤습니다.
https://github.com/nodejs/node/pull/59050

저기 위에는 그냥 doc 만 고치면 될 것 같아서 해서 했다라고 쉽게 한 것처럼 써있지만, 쉽지 않다. 처음에 기여할 땐 뭘 기여해야할지도 모르고 엄청 막막하다. 하지만 그냥 거절당해도 상관 없다는 생각으로 issue들 차근차근 여러개 읽어보면서 할 수 있는 것들을 천천히 찾아보는 게 중요한 것 같다.

-> 3일 뒤에 Merge 되었다 .. ! 첫 기여다 드디어 🎉