계속되는 기여 이야기 그런데 stc를 곁들인

·2023년 2월 22일
1

오픈소스

목록 보기
3/3

어느덧 오픈소스에 기여한 PR이 5개가 되었다.
사실 별로 많은 것은 아닌데, 나는 나름 자랑스럽다.

그래서 어쩌다 stc에 기여를 하게 되었으며, 5번의 기여 동안 어떤 걸 느꼈을까?

개요

왜 stc 기여를 했을까?

사실 예전 Rust에 관심을 가졌을 때부터 rust 관련 오픈소스에 기여를 하고 싶다는 욕망이 강했다.
그리고 웹 생태계에 도움이 되는 도구를 만들고 기여를 하고 싶었다.
그래서 처음부터 알고 있었던 SWC를 기여하고 싶었으나, 나는 컴파일러 지식이 부족했고 SWC에는 good first issue도 거의 보이지 않아서 기여를 시도하기에는 진입 장벽이 높아 보였다.
추가로 그때는 취업 준비생이었다.

그리고 시간이 지나 나는 취업을 했고, 이제 다시 목표로 했던 웹 생태계에 도움을 주는 도구를 만들어보고 싶었다, 하지만 여전히 SWC는 어려워 보였는데 그때
swc를 만든 kdy 님이 tsc가 느려서 rust로 포팅 하는 stc 프로젝트를 보게 되었다.

웹 생태계에 도움을 주는 도구에다가, rust 그리고 Good first issue도 많았고
초기 프로젝트라서 기여할 것 들이 많아 보였고 도전했다.

진행과 후기

stc 기여는 순탄치 않았다.
rust는 어려웠고 stc 코드를 이해하기란 더 쉽지 않았다.
일단 Rust 언어 자체가 이해하기가 쉽지 않은 언어였다. 소유권, 라이프타임 같은 개념부터
그냥 문법 자체가 생소했다.
거기다 stc가 어떤 식으로 동작하는지 어떻게 타입 체킹을 하고 타입 추론을 하는지 그걸 어떻게 코드 구현했는지 이해할 수가 없었다.

굉장히 어려웠지만 어려우면 어떡하겠는가 물어봐야지, 다행히 기여 문서와 질문 그리고 다른 기여자 분이 써주신 블로그 글 덕분에 조금씩이라도 진행을 할 수 있었다.
내가 고치기로 한 부분에 대해서 어떻게 타입 추론을 하는지, 어떤 에러는 어떻게 뱉는지, 이 변수는 어떤 역할을 하는지 등등 여쭤보았고
그렇게 1번째 기여에 성공할 수 있었다.

그리고 2번째 기여를 시작했다.
2번째는 더 어려웠다, 늘 새로운 기여를 도전할 때 새로운 코드 파일을 보고 원리를 이해했어야 했다.
1번째 기여와 달리 좀 더 전반적인 흐름을 이해해야 됐어야 했다.
어려웠지만 흥미로웠고 1번째 기여보다 더 빨리 기여에 성공 했다.

문제는 3번째였다.
이때까지 기여한 것과 다른 문제와 코드였다. 전체 원리는 같겠지만 그때의 나는 이해를 못 했겠지
이제는 전반적으로 어떻게 흘러가는지 이해를 해야 했다. 물론 아직 완벽히 이해는 못 했다.
그래서 어떤 식으로 파싱이 되는지, 내가 수정해야 하는 부분은 어디서 호출되는지, 다른 기여자 분들이 날린 PR를 뒤지면서 연구하고 고민하고 삽질을 했다 그렇게 한 5일을 했을 것이다..
그제야 이해가 조금씩 되었고 드디어 기여에 성공했다.

사실 때로는 내가 하는 기여가 민폐인가 싶기도 했다.

너무 사소한 것까지 물어봤고, 특정 변수의 역할이 뭔지까지 물어봤으니깐..
다행히 그렇지 않다고 작은 일이라도 도움이 된다고 해서 참 다행이었다.

어찌됐든 3번째 PR이 머지된 후 드디어 repo 컨트리뷰터 목록에 나의 프로필이 보이기 시작했다.
출시 때 까지 더 많이 기여를 해봐야지.

오픈소스 후기

기여를 하면서 느낀 점은
1. 역시나 테스트는 중요하다.

테스트가 없으면 뭐가 올바른 동작인지 알 수가 없다.. 테스트 또 테스트

그리고 코드 베이스가 크면 vscode가 죽더라.
storybook에도 기여하려고 clone 하고 빌드를 돌렸는데 할 때마다 vscode가 죽었다... 맥 스튜디오 사고 싶다

  1. 오픈소스 경험은 취미지 취업에는 도움이 안 될 수도 있다.
    뭐 일단 채용 공고를 봐도, 프런트 기준 대부분 특정 라이브러리 경험, 최적화 경험 이런 걸 주로 물어보지
    오픈소스 경험을 우대하는 것은 많이 없다.
    우대한다 해도 주로 js, ts 기반이지 Rust 기반이 아니다.

그러면 나는 왜 오픈소스를 하는가?

lexical에 기여할 때도 느꼈는데.
많은 사람이 쓰는 라이브러리 또는 많은 사람이 쓸 수도 있는 라이브러리에
버그를 수정하거나 기능을 넣는다는 것은 그것만으로도 많은 만족감을 선사해 주는 것 같다.
언젠가는 나도 매너리즘을 느낄 수도 있지만 아직은 그런것 보다는 만족감 하나로 기여를 도전 하는 듯 하다.

사실 실력은 쌓이는지 모르겠다..

어찌 됐든 나는 계속 오픈소스 기여를 도전할 것이다.
생태계를 위해서 조금이라도 보탬이 되고 싶다. 기술로든 후원으로든.
최근 core-js 사건을 보고 더 느꼈다.

여러분 오픈소스 사세요

stc에 기여하고 싶으시다면.

repo : https://github.com/dudykr/stc
참고할 만한 블로그 : https://medium.com/@qudwls185/contributing-to-stc-ccfc00e516dc

1개의 댓글

comment-user-thumbnail
2023년 10월 6일

헉 쉽지않은 선택이셨을텐데 존경스럽읍니다

답글 달기