항해 플러스 8주차

박지민·2023년 8월 6일
0

항해+

목록 보기
8/10

  항해 플러스에 들어오게 된 진짜 이유, 마지막 챕터인 오픈소스 주차가 시작되었다. 나는 이번 해를 시작하면서 단 하나의 목표를 잡았는데 그것이 바로 '오픈소스 컨트리뷰트'였다. 하지만 막상 목표를 잡고 실행에 옮기려고 하니 현생 이슈와 어떤 방식으로 어떻게 컨트리뷰트를 해야할지도 모르던 와중에 발견한게 항해 플러스였고 내가 항해 플러스를 시작하게 된 가장 큰 계기가 되었다.

 물론 지금이 시점에서 어찌저찌하다보니 이미 오픈소스 컨트리뷰터가 되버렸고 사내 라이브러리도 뚝딱뚝딱 만들고 있어 사실상 항해 플러스에 들어오게 된 이유가 흐려지는 감이 있지만 뭐 어쩌겠어 끝까지 해야지.

  이번에 오픈소스 주차에 방향성은 크게 두개로 나뉜다. '오픈소스를 만들어서 배포하는 것'과 '오픈소스에 컨트리뷰트 하는 것'이였다. 그래서 우리조는 회의 끝에 '오픈소스에 컨트리뷰트 하는 것'으로 방향성을 잡았다. 그 이유는 '3주라는 짧은 시간에 순도 높고 사용성이 높은 라이브러리를 제작하는 것은 어렵다.'라는 것이였다. 그래서 우리는 빠르게 방향성을 정하고 다음과 같은 규칙을 정했다.

  • 가능하면 문서나, 오타 교정 말고 코드로 컨트리뷰트에 성공해보기.
  • 팀원 모두에게 의미가 있도록 순수 자바스크립트 라이브러리에 컨트리뷰트 해보기.

첫번째 규칙에 경우 이유는 단순했다. 모름지기 개발자라면 코드로 컨트리뷰트를 해야 진짜 오픈소스 기여라고 생각했기 때문!(우리가 돈이없지 가오가..)
두번째 규칙에 경우 현재 나와 다른 팀원분의 스택이 다르기 때문이다. 한쪽으로 치우친 라이브러리에 컨트리뷰트 한다면 컨트리뷰트 확률이 조금 더 높아 질 수는 있겠으나 모두에게 도움이 되지는 않을 것 같았기 때문이다. 그래서 우리는 이러한 이유로 오픈소스 컨트리뷰트의 방향성을 정하고 순수 자바스크립트 라이브러리 목록들을 리서치 해오기로 했다. 우리가 리서치한 라이브러리 목록은 다음과 같다.

조사해본 순수 자바스크립트 라이브러리 목록

  1. Lodash: 다양한 타입의 JavaScript 값에 대한 유틸리티 함수를 제공하는 라이브러리
  2. Dayjs: 날짜와 시간을 처리하는데 도움이 되는 라이브러리
  3. Axios: Promise 기반의 HTTP 클라이언트로서, 브라우저와 Node.js에서 모두 사용 가능한 라이브러리
  4. Ramda: 함수형 프로그래밍 스타일을 위한 유틸리티 라이브러리
  5. Underscore.js: 다양한 유틸리티 기능을 제공하는 라이브러리
  6. Math.js: 수학적 연산을 위한 라이브러리 수치 연산, 복소수, 행렬, 단위 변환 등의 기능을 제공
  7. jsonwebtoken: JWT(JSON Web Token)를 생성하고 검증하는 데 사용되는 라이브러리
  8. Faker.js: 대량의 가짜 데이터를 생성하는 데 사용되는 라이브러리
  9. Mocha/Chai: JavaScript를 위한 테스팅 프레임워크
  10. async: 비동기 연산을 더 효과적으로 관리하기 위한 라이브러리
  11. Q: Promise 기반의 비동기 처리를 돕는 라이브러리
  12. Cross-fetch: 유니버설(fetch)의 HTTP 요청을 하기 위한 라이브러리
  13. PM2: node 환경 배포 라이브러리
  14. tslib: TypeScript의 런타임 라이브러리로, TypeScript에서 생성된 코드가 브라우저나 다른 환경에서 실행될 때 필요한 헬퍼 함수들을 제공
  15. nodemon: node 환경 배포 라이브러리

처음보는 라이브러리도 있었지만 대부분 npm에서 다운로드 수 탑을 다투는 라이브러리인 많큼 실제로 사용중인 라이브러리도 많았다. 그래서 우리는 이 중에서 컨트리뷰트에 도전하고 싶은 라이브러리에 대해 얘기해 보았고 그 결과 최종적으로 리스트업 된 라이브러리는 Lodash와 Dayjs였다. 하지만 이 라이브러리들에 컨트리뷰트하기 위해선 넘어야 될벽이 있었는데

쌓여있는 이슈와 PR이 너무 많았던 것! 물론 이중에서는 몇년전에 날린 PR이 닫히지 않은 경우도 있었지만 최근에도 활발히 이슈와 PR이 생성되고 있는 걸 어렵지 않게 확인 할 수 있었다. 그래서 우리 팀은 다시 한번 고민에 빠졌다. 다른 라이브러리를 찾아볼 것인가? 아니면 이대로 끝까지 밀어붙여 볼 것인가. 그러던 도중 멘토링을 받게 되었고 이에 대한 해답을 찾을 수 있었다. 코치님의 말씀을 3줄 요약 해보면 다음과 같다.

  • 꼭 컨트리뷰트에 성공해야 된다는 부담을 버릴 것
  • 이번 오픈소스 챕터는 오픈소스에 컨트리뷰트하거나 오픈소스를 만들어 배포하는 것보단 이런 문화를 체험해보고 향후에 오픈 소스에 컨트리뷰트를 할 수 있는 방법을 배워가는 것
  • 이러한 의사 결정 과정들을 기록해 둘 것

그래서 우리는 코치님에 멘토링에 힘입어 뭐라도 보여줘야한다는 부담감을 조금 덜을 수 있었고 최종적으로 다시한번 의견을 모은 끝에 Lodash에만 컨트리뷰트에 도전해보기로 하였다.

이번 주를 보내면서 역시 생각한 것과 비슷하게 오픈소스에 기여하는 길은 쉽지 않았다. 그래도 방향성은 어느 정도 잡혔고 부담도 어느정도 덜어냈으니 다음주는 지난 주보다는 가벼운 마음으로 챕터를 이어 나갈 수 있을 것같다.

과연 다음주에는 PR을 날릴 수 있을 것인가 To Be Continued

profile
프론트엔드 개발자

1개의 댓글

comment-user-thumbnail
2023년 8월 6일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기