오픈소스 시작 일기

정찬·2025년 6월 24일

오픈소스

목록 보기
1/2
post-thumbnail

Inblog 에서 이전한 포스팅 입니다

오픈소스에 관심을 갖게 된 이유

저번 주부터 오픈소스에 관심이 생겼다.

이유는 두 가지다.

첫째, 이력서를 넣을 때 오픈소스 경험을 보는 기업들이 종종 있었기 때문이다. 오픈소스 경험은 개발 실력을 직접적으로 보여줄 수 있는 좋은 포인트라 생각했다.

둘째, 취준 기간이 너무 지루하게 느껴졌기 때문이다. 이전에는 학교 과제를 포함해 프로젝트를 꾸준히 진행했지만, 졸업 후에는 프로젝트를 하지 않고 있었다. 팀원들과 시간이 잘 맞지 않았고, 기획했던 프로젝트도 불발되었기 때문이다.

당시 진행하려던 프로젝트는 실제 사용자에게 서비스를 제공해보자는 목표로 주제와 요구사항을 정리하고 준비를 해뒀다. 하지만 막 시작하려는 시점에 기존에 운영 중이던 다른 서비스에서 유사한 기능을 출시해버렸고, 우리 프로젝트는 무산되었다.

그래서 취준하면서도 틈틈이 개발 역량을 유지하고 싶다는 생각에 오픈소스 기여를 결심하게 되었다.


오픈소스란?

오픈소스(Open Source)란 소스 코드가 공개되어 누구나 자유롭게 사용할 수 있고, 수정하거나 배포할 수 있는 소프트웨어를 의미한다. 보통 커뮤니티 중심으로 운영되며, 다양한 개발자들이 함께 코드 개선이나 기능 추가 등으로 기여한다.

대부분의 오픈소스 프로젝트는 GitHub에 Public 저장소 형태로 공개되어 있고, 누구나 코드를 확인하고 수정할 수 있다.

우리가 흔히 사용하는 운영체제나 프레임워크(Spring Boot, React, Linux 등)부터, 다양한 라이브러리, 솔루션, 도구들이 오픈소스로 공개되어 있다.


오픈소스에 기여하면 뭐가 좋은데?

오픈소스 기여는 단순히 코드 수정 이상의 의미를 가진다. 내가 생각하는 오픈소스 기여의 장점은 다음과 같다.

  1. 개인 성장

    다양한 개발자들과 협업하며 코드 리뷰를 주고받고, 피드백을 통해 기술적 실력과 커뮤니케이션 능력을 함께 키울 수 있다.

  2. 네트워크 확장

    전 세계 개발자들과 협업하며, 새로운 인맥을 만들 수 있다. 잘 알려진 프로젝트에서의 활동은 취업, 외부 협업 기회를 만드는 데도 도움이 된다.

  3. 경력 개발

    오픈소스 기여는 이력서 상 강력한 포인트가 된다. GitHub 활동 내역을 통해 나의 기술 수준과 실무 역량을 보여줄 수 있다.

  4. 문제 해결 능력 강화

    실제 문제 상황에서 다양한 이슈를 해결하며 문제 분석력과 해결력을 키울 수 있다. 다양한 코드베이스를 경험하며 새로운 기술을 접할 수 있는 기회도 된다.

  5. 자부심

    내가 만든 코드가 실제 배포되고 많은 사람에게 사용되는 걸 보면, 큰 자부심을 느낄 수 있다. 이는 개발자로서의 동기를 유지하는 데도 긍정적인 영향을 준다.

특히 신입 개발자의 입장에서는, 도메인을 이해하고, 이슈를 분석하고, 소통하며 PR을 보내는 일련의 과정 자체가 중요한 경험이 될 수 있다.


그럼 어떻게 시작하지?

1. 프로젝트 찾기

처음엔 내가 많이 사용했던 Spring 프레임워크에 기여해보고 싶었다.

GitHub에서 저장소를 클론한 후 며칠 동안 코드를 살펴보고 이슈를 확인했지만, 진입장벽이 높았다.

어려웠던 이유는 크게 두 가지다.

  • 규모가 너무 크다. 유명한 프로젝트일수록 코드베이스가 크고 복잡하다. 문제를 이해하고 수정하는 데 시간이 많이 든다.
  • 영어 장벽이 있다. 대부분의 문서, 이슈, PR은 영어로 작성되어 있다. 초보자가 PR 과정 자체에 익숙하지 않은데, 언어 장벽까지 더해지면 쉽게 포기하게 된다.

그래서 프로젝트를 먼저 찾기보다는, 내가 해결할 수 있는 이슈를 먼저 찾는 방식으로 접근법을 바꾸었다.


1-2. 이슈 중심으로 오픈소스 찾기

GitHub 검색창에 "good first issue"와 함께 언어나 기술 스택(ex: language:java)을 검색한 후, 정렬을 최근 순으로 설정한다.

여기서 이슈를 확인하고, 이해가 되면 코멘트를 달아 "이 이슈를 할당받고 싶다"고 요청하면 된다.


2. 프로젝트 이해하기

이슈를 해결하려면 프로젝트 구조와 분위기를 이해하는 것부터 시작해야 한다.
다행히 대부분의 오픈소스 프로젝트는 초보자를 위한 가이드를 잘 정리해 두고 있다.

아래 문서들을 먼저 읽어보면 큰 도움이 된다(꼭 읽자):

  • README.md: 프로젝트가 어떤 목적을 갖고 있는지, 어떻게 실행해보는지 정리된 기본 안내서
  • CONTRIBUTING.md: 어떤 방식으로 기여하면 되는지 구체적인 가이드
  • Wiki: 프로젝트의 내부 구조나 개발 흐름 등 더 자세한 문서들이 모여 있는 공간
  • Code of Conduct: 커뮤니티에서 지켜야 할 기본 예절과 행동 기준

이 문서들을 차근차근 읽어보며, 전체적인 흐름과 규칙을 이해하고 나면, 어떤 방식으로 참여하면 좋을지 감이 잡힌다.

길다고, 귀찮다고 위 문서들을 읽지 않는 사람들이 없길 바란다.. 선택 사항이 아닌 필수 사항이다.

3. 작업하고 PR 보내기

이슈를 맡게 되면 이제 본격적으로 작업을 시작하면 된다.

기본적인 절차는 다음과 같다:

  • 저장소를 fork한 후, 로컬에 클론한다.
  • 새 브랜치를 생성해서 작업을 진행한다.
  • 커밋 메시지는 보통 해당 프로젝트의 컨벤션을 따르니, 가이드 문서를 참고한다.
  • PR(Pull Request)을 생성하고, 변경 내용을 설명한다.
  • 코드 리뷰가 달리면, 피드백을 반영해서 수정한다.

이제부턴 리뷰어들과 소통하면서 PR을 진행하면 된다. 한번에 머지될 수도있고, 요구사항이 반영되지 않아서 추가적인 요청이 있을수도 있다.
최종 승인을 받으면, PR이 머지(Merge)되어 기여가 완료된다! 🎉

처음엔 이 과정이 다소 낯설게 느껴질 수도 있지만, 몇 번 반복하다 보면 자연스럽게 익숙해진다.
특히 리뷰 과정에서는 내가 놓쳤던 부분들을 발견하거나, 더 나은 코드를 배우는 기회가 되기도 한다.


마무리

오픈소스 기여를 처음 하려면 막막하고 두려울 것이다.

"내가 이 프로젝트에 기여해도 되는 걸까?"
"코드 스타일은 맞을까?"
"사소한 오타 제보조차 괜히 민폐가 되진 않을까?"

나도 똑같았다.. 특히 오픈소스 생태계는 전세계 사람들이 함께 소통하기 때문에 대부분 영어를 쓰는 것도 부담으로 다가왔다.

하지만 방식을 조금 바꾸고, ‘기여’의 문턱을 낮춰보니 오픈소스는 생각보다 훨씬 열려 있고, 환영받는 공간이라는 걸 알게 되었다.

아직은 작은 이슈 하나를 고치고, 문서를 조금 다듬는 수준이지만, 점차 프로젝트를 더 깊이 이해하고 더 큰 기여로 나아가고 싶다는 목표도 생겼다.
무엇보다, 오픈소스는 단순히 공부하는 장이 아니라 실제 사람들과 협업하며 성장하는 살아 있는 과정이라는 점에서 굉장히 매력적이다.

이 글을 읽고 있는 누군가도, 혹시 나처럼 처음엔 ‘쫄아서’ 망설이고 있다면, 그냥 사소한 것 하나라도 시작해 보라고 말해주고 싶다.
오타 제보도 좋고, 번역 수정도 좋고, 문서 개선도 좋다.
생각보다 많은 오픈소스 프로젝트가 당신의 참여를 반기고 기다리고 있다.

다음 시간에는 오픈소스에 처음 기여해보고 느낀점을 포스팅 해보도록 하겠다.

0개의 댓글