오픈소스를 시작해보자

오픈소스 초보자를 위한 오픈소스 시작기
정찬's avatar
Apr 16, 2025
오픈소스를 시작해보자
 

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

저번 주부터 오픈소스에 관심이 생겼다.
이유는 두 가지다.
첫째, 이력서를 넣을 때 오픈소스 경험을 보는 기업들이 종종 있었기 때문이다. 오픈소스 경험은 개발 실력을 직접적으로 보여줄 수 있는 좋은 포인트라 생각했다.
둘째, 취준 기간이 너무 지루하게 느껴졌기 때문이다. 이전에는 학교 과제를 포함해 프로젝트를 꾸준히 진행했지만, 졸업 후에는 프로젝트를 하지 않고 있었다. 팀원들과 시간이 잘 맞지 않았고, 기획했던 프로젝트도 불발되었기 때문이다.
당시 진행하려던 프로젝트는 실제 사용자에게 서비스를 제공해보자는 목표로 주제와 요구사항을 정리하고 준비를 해뒀다. 하지만 막 시작하려는 시점에 기존에 운영 중이던 다른 서비스에서 유사한 기능을 출시해버렸고, 우리 프로젝트는 무산되었다.
그래서 취준하면서도 틈틈이 개발 역량을 유지하고 싶다는 생각에 오픈소스 기여를 결심하게 되었다.

오픈소스란?

오픈소스(Open Source)란 소스 코드가 공개되어 누구나 자유롭게 사용할 수 있고, 수정하거나 배포할 수 있는 소프트웨어를 의미한다. 보통 커뮤니티 중심으로 운영되며, 다양한 개발자들이 함께 코드 개선이나 기능 추가 등으로 기여한다.
대부분의 오픈소스 프로젝트는 GitHub에 Public 저장소 형태로 공개되어 있고, 누구나 코드를 확인하고 수정할 수 있다.
우리가 흔히 사용하는 운영체제나 프레임워크(Spring Boot, React, Linux 등)부터, 다양한 라이브러리, 솔루션, 도구들이 오픈소스로 공개되어 있다.

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

오픈소스 기여는 단순히 코드 수정 이상의 의미를 가진다. 내가 생각하는 오픈소스 기여의 장점은 다음과 같다.
  1. 개인 성장
    1. 다양한 개발자들과 협업하며 코드 리뷰를 주고받고, 피드백을 통해 기술적 실력과 커뮤니케이션 능력을 함께 키울 수 있다.
  1. 네트워크 확장
    1. 전 세계 개발자들과 협업하며, 새로운 인맥을 만들 수 있다. 잘 알려진 프로젝트에서의 활동은 취업, 외부 협업 기회를 만드는 데도 도움이 된다.
  1. 경력 개발
    1. 오픈소스 기여는 이력서 상 강력한 포인트가 된다. GitHub 활동 내역을 통해 나의 기술 수준과 실무 역량을 보여줄 수 있다.
  1. 문제 해결 능력 강화
    1. 실제 문제 상황에서 다양한 이슈를 해결하며 문제 분석력과 해결력을 키울 수 있다. 다양한 코드베이스를 경험하며 새로운 기술을 접할 수 있는 기회도 된다.
  1. 자부심
    1. 내가 만든 코드가 실제 배포되고 많은 사람에게 사용되는 걸 보면, 큰 자부심을 느낄 수 있다. 이는 개발자로서의 동기를 유지하는 데도 긍정적인 영향을 준다.
특히 신입 개발자의 입장에서는, 도메인을 이해하고, 이슈를 분석하고, 소통하며 PR을 보내는 일련의 과정 자체가 중요한 경험이 될 수 있다.

그럼 어떻게 시작하지?

1. 프로젝트 찾기

처음엔 내가 많이 사용했던 Spring 프레임워크에 기여해보고 싶었다.
GitHub에서 저장소를 클론한 후 며칠 동안 코드를 살펴보고 이슈를 확인했지만, 진입장벽이 높았다.

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

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

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

GitHub 검색창에 "good first issue"와 함께 언어나 기술 스택(ex: language:java)을 검색한 후, 정렬을 최근 순으로 설정한다.
 
notion image
 
여기서 이슈를 확인하고, 이해가 되면 코멘트를 달아 "이 이슈를 할당받고 싶다"고 요청하면 된다.

2. 프로젝트 이해하기

이슈를 해결하려면 먼저 프로젝트의 구조와 문화를 이해해야 한다.
대부분의 오픈소스 프로젝트는 다음과 같은 문서를 통해 초보자에게 도움을 준다:
  • README.md: 프로젝트 개요와 설치법
  • CONTRIBUTING.md: 기여 가이드라인
  • Wiki: 상세한 문서와 기여 방법
  • Code of Conduct: 커뮤니티 내 행동규칙
이 문서들을 충분히 읽고 기여 방식과 개발 흐름을 파악해야 한다.

3. 작업하고 PR 보내기

이슈가 할당되면 다음과 같은 절차로 기여를 진행한다:
  1. 저장소를 fork한 후 로컬에 클론한다.
  1. 브랜치를 생성하고 작업을 진행한다.
  1. 커밋 메시지는 프로젝트의 가이드를 따른다.
  1. 변경 사항을 PR로 올린다.
  1. 코드 리뷰를 받고, 피드백을 반영한다.
  1. 최종 승인을 받으면 머지된다.

마무리

처음엔 어렵게 느껴졌지만, 방식만 바꾸니 오픈소스 기여도 훨씬 수월하게 다가왔다.
아직은 작은 이슈부터 시작하지만, 점차 프로젝트를 깊게 이해하고 더 의미 있는 기여를 해보고 싶다.
오픈소스는 단순한 공부가 아니라, 실제 협업과 성장의 과정이라고 느꼈다.
꾸준히 이어가 보려고 한다.
 
Share article

lushlife99