들어가며

멋진 개발자는 무엇일까? 내 기준으로 대답을 한다면, 다른 개발자가 실질적으로 많이 사용하는 오픈소스에 기여하는 개발자라고 생각한다. (특히 Stars가 많은 ..!) 오픈소스에 기여한다고 해서 어떠한 금전적인 보상을 받지 않지만 단지 모두의 발전을 위해 오픈소스에 기여하는 개발자가 멋진 개발자라고 생각한다. 오늘은 내가 첫 오픈소스에 기여해본 기념으로 오픈소스 프로젝트 기여에 참고가 될 만한 내용을 공유하고자 한다.

왜 오픈소스 기여를 하는가?

1. 우리가 일반적으로 사용하는 수 많은 라이브러리나 프레임워크들은 거의 다 오픈소스로 이루어져 있다. 내가 자주 사용하는 프레임워크일수록 해당 프로젝트에 기여하는 것이 개발자의 의무 중 하나라고 생각한다. (기여의 형태는 아주 다양하고, 단순히 코드를 작성하여 기여하는 것뿐만 아니라 번역, 문서화 등 많은 방법이 있다.)

2. 개인의 시각으로 접근한다면, 혼자서는 쌓기 어려운 지식을 오픈소스 기여를 통해 얻을 수 있습니다. 또한 요즘 사용되는 문법의 트랜드, 설계 방식 등을 배울 수 있습니다. 평소에 단순한 토이 프로젝트 수준으로는 겪어볼 수 없었던 설계에 대한 고민이나, 대규모 협업 등 많은 것을 경험해볼 수 있다. 더 현실적으로 이야기하자면 오픈소스 기여를 통해 얻은 경험이 개인의 커리어에 도움이 될 수 있다. 

3. 개발자 개인의 범주를 넘어 개발자간의 커뮤니티를 형성하거나, 참여할 수 있다. 함께 성장하고자 하는 문화 속에서 자신과 비슷한 사람을 만나거나, 멘토를 찾거나 혹은 멘토가 될 수도 있다. 조금 더 이야기하자면 오픈소스 커뮤니티는 개발자로 살아가는 동안 자신의 삶에 활력소가 될 수도 있다고 생각한다. 자신이 어디에 있던지 상관없이 인터넷만 연결되어 있으면 많은 사람들과 지식, 통찰을 주고받을 수 있다.

물론 오픈소스에 기여하는 행위는 강제가 아니다. 사람들은 각자 수 많은 이유로 자신의 삶 하루하루를 살아가기에 벅차기도 한다. 오픈소스에 기여하는 사람들도 똑같은 사람들이지만 그들은 나름의 뜻이 있어서 기여를 하고 있을 것이다. 그 사람들을 존중하고 격려해줄 수만 있어도 큰 힘이 된다고 생각한다. (물론 머니머니 해도 머니지만)

대표적인 오픈소스인 리눅스만 하더라도 리누스 토발즈가 처음 코드를 공개했을 때 세계 최대 규모의 오픈소스 소프트웨어가 될 거라는 생각조차 못했을 것이다. 여전히 토발즈는 Pull Request의 승인 여부를 혼자 결정하고 있지만 누구나 개설될 수 있는 소스코드를 보내고 그것이 도움이 된다고 판단되면 해당 소스코드의 저자(Author) 항목에 기여자(Contributor)가 되어 다음 릴리즈 버전에 이름이 나오게 한다. 이는 유명해지려는 사람들의 욕구(과시욕)를 충족시켜 줌으로 써 개발자들에게 돈 한푼 주지 않고도 개발을 시킬 수 있는 중요한 원동력이 되었다.

나의 첫 오픈소스 기여

2021.07.08 - [Node.js/swagger] - [node.js] Swagger 자동 생성 라이브러리 swagger-autogen 적용 예제

 

[node.js] Swagger 자동 생성 라이브러리 swagger-autogen 적용 예제

서론 https://github.com/davibaltar/swagger-autogen davibaltar/swagger-autogen This module performs the automatic construction of the Swagger documentation. The module can identify the endpoints and..

charming-kyu.tistory.com

나는 이전에 작성한 swagger-autogen에 첫 기여를 했다. 해당 라이브러리는 아마 브라질 개발자가 만든 듯했다. swagger-autogen의 Response 메시지는 영어, 한자, 포르투갈어만 지원했다. 그래서 한국어를 추가해보자 생각했고 해당 Repository를 fork 후 코드를 보니 변수에 저장되어서 설정되는 부분에 한국어를 아래와 같이 추가했다.

그러고 해당 언어를 설정할 수 있는 코드를 일부 추가했고, 다른 코드를 참고하여 기존 스타일에 맞춰 주석 또한 추가했다. 그리고 commit후 fork한 repository에 push를 했다. 마지막으로 대망의 Pull Request 를 했다..!

설레는 마음으로 하루가 지나니 내 요청에 답변이 달리면서 Merge가 되었다..!

마치며

이렇게 나의 오픈소스 첫 기여를 마치고자 한다. 물론 큰 기능이 아닌 기여였지만, 나에게 있어서 첫 발자국이라 조금 설레였다. 그리고 어떤 오픈소스를 사용할 때 커뮤니티가 활발하지 않으면 사용을 꺼린 내 자신을 반성한다. 앞으로 관심 분야를 더 넓혀 정말 많은 개발자들이 사용하는 오픈소스에 기여하고자 한다. 그리고 기여를 하면서 어떤 삽질을 했는지도 포스팅하겠다..!