본격적으로 프론트엔드 실무에 뛰어든지 6개월 넘게 지났습니다. 그 과정에서 정말 기억에 남는 것은 오픈소스에 첫 기여를 한 것입니다.
첫 오픈소스 제작
처음에는 개발 과정에서 “이런 라이브러리가 없어서 불편하다”, 혹은 “사내에서 쓰기 위한 최적화 된 라이브러리가 필요하다” 라는 이유로 오픈 소스 기여를 하고자 했습니다.
그렇게 처음 만든 라이브러리가 custom-hooks-library와 react-custom-alert입니다.
처음에는 단순히 npm에 배포과정을 이해하고 나중에 만들 라이브러리들에 대한 초석을 다지자는 마인드로 개발을 했었는데, 3월 20일자로 react-custom-alert에 테스트 코드를 추가하려고 살펴보니 깃허브에 뜨는 Used by를 보고 놀랬습니다..
누군가가 사용해주면 좋겠다고는 생각했는데 실제로 다른분들의 package.json에 제가 만든 라이브러리가 있다는 걸 보니 개발자로서 정말 뿌듯했던 순간이였던 것 같네요😭
한편으론 아직 테스트 코드를 작성하는 것도 몰라서 라이브러리의 테스트 안정성이 낮고, 기능도 적기 때문에 이걸 사용 해주신다는 것이 약간 부끄럽게도 느껴졌습니다.
그래서 다른 사람들이 믿고 쓸 수 있게 테스트 코드를 공부해서 추가하고, 다른 유사한 라이브러리와 비교할 때 경쟁력있는 좋은 기능들을 많이 추가 해야겠다고 생각하는 동기부여를 강하게 얻었습니다.
훌륭한 라이브러리에 기여를 함으로써 배우다
위 2개의 라이브러리를 제작한 것 외에, naver오픈 소스에도 기여를 함으로써 정말 많이 배웠습니다.
처음부터 naver오픈소스에 기여를 하고자 한 것은 아니였는데, 사내에서 쓰고있는 swiper가 naver 오픈소스 flicking을 사용하고 있었습니다. 그런데 swiper를 할 때 입체적으로 크기가 바뀌게 해달라고 디자인 쪽에서 요구가 들어왔었는데 flicking의 plugin에는 해당 기능을 아직 지원하지 않았습니다.
그래서 따로 flicking plugin 소스들을 뜯어보면서 비슷한 방식으로 plugin을 제가 만들어야 겠다고 생각하여 perspective 라는 기능을 만들어서 사내에서 사용하고 있고, 이왕 한김에 해당 기능을 좀더 보완해서 오픈소스 기여를 해야겠다고 생각했습니다.
naver flicking 오픈소스는 테스트도 잘 짜여있고 jsdoc으로 설명도 잘 쓰여 있기 때문에 이러한 완성도를 해치지 않게 잘 만들어서 기여를 해야겠다고 생각 했습니다🤔
그래서 기존에 있던 plugin들의 test코드와 기능들을 뜯어보면서 공부를 하고, 이 과정에서 자연스럽게 배울 수 있었던 것 같네요😄
그 결과 성공적으로 제가 만든 plugin이 배포가 됐고 저 또한 더욱 성장할 수 있었습니다.
https://naver.github.io/egjs-flicking/Plugins#perspective
아직 오픈소스를 기여하는 것에 있어서 부족한 점이 많지만 기본적인 테스트와 번들링을 열심히 공부해서 익숙해지고 나면 더 열심히 기여해보도록 하겠습니다. (나중에 제가 사용하고 있는 jotai라이브러리에 대해 꼭 기여해보고 싶은 생각입니다.)