heoblitz
Blitz.dev
heoblitz
전체 방문자
오늘
어제
  • 분류 전체보기 (36)
    • iOS Dev (22)
      • iOS (3)
      • Swift (7)
      • Testing (3)
      • Reactive (2)
      • Architecture (2)
      • Layout (1)
    • PS (4)
      • Algorithm (4)
    • Other (9)
      • Springboot (3)
      • Linux (1)
      • Python (1)
      • Java (1)
      • React (1)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • ARC
  • Git
  • Code Review
  • RxSwift
  • springboot
  • codingtest
  • xcode
  • Test Code
  • github
  • gradle
  • SWIFT
  • swift 5
  • URLSession
  • java
  • intellij
  • IOS
  • chrome-extension
  • 오픈소스
  • swift 윈도우
  • XCTest

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
heoblitz

Blitz.dev

초보 개발자가 오픈소스에 기여하는 방법
Other

초보 개발자가 오픈소스에 기여하는 방법

2021. 10. 11. 14:11
Photo by Stephen Picilaidis on Unsplash


필자는 깃허브에 있는 오픈소스 프로젝트를 자주 들여다 봅니다.
뛰어난 개발자분들이 작성한 코드를 보고 새로운 언어 기능이나 구조를 보며 배우는 것이 무척 많습니다.

그러던 중 기여할 수 있는 부분이 생기면 여러번 고민해보고 PR 을 보내기도 합니다.
처음에는 확신이 없었고 민폐가 아닌가? 하는 생각이 들었지만
에러를 해결하고 나서 많은 분들이 좋은 피드백을 주셨던 경험이 있습니다.

그 후 개선할 부분을 발견하면 이슈를 꼼꼼히 확인하고 PR 을 올리는 습관을 가질 수 있었습니다.

Swift 첫 오픈 소스 기여 후기 ( Open Source PR )

오픈소스라 하면 거대한 프로젝트이고, 뛰어난 개발자분들이 기여하기 때문에, 입문 개발자가 쉽게 접근하기 어렵다고 생각했습니다. 하지만 베타 Xcode 에서 컴파일 에러를 해결하여, 입문 개발

linux-studying.tistory.com


이번 포스팅에서는 초보 개발자가 관심이 있는 프로젝트에 기여하고 싶을 때
어떻게 시작할 수 있는지에 대해서 다루어 보겠습니다.


* Github 를 기준으로 작성하였습니다. 필자도 많이 미숙하지만 관련된 내용을 정리하면 좋겠다는 생각에 포스팅을 작성하게 되었습니다.

목차

1 - Pull Request 에 대해서 이해하기
2 - 버그 및 수정사항 발견하기
3 - 마무리


1. Pull Request 에 대해서 이해하기


오픈소스는 다양한 사람들이 협업하기 때문에 Git 에 대한 이해는 필수적이라고 생각합니다.
혹시 Git 의 개념이 아직 어색하다면 다음과 같은 강의들을 추천드립니다.

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

git을 구경합시다! - GIT1

수업소개 여기서는 git의 핵심목적을 소개하고, 앞으로 어떤 마음으로 공부하실지를 권유해드립니다. 강의

opentutorials.org


pull request 는 "제가 작업한 코드를 확인하고 브랜치를 병합해주세요." 라는 일련의 과정을 말합니다.
권한이 있는 저장소에서 작업할 경우에는 직접 브랜치를 만들고 내부에서 pull request 가 가능합니다.

하지만 오픈 소스의 경우 main contributors 를 제외한 개발자들은 push 권한이 없기 때문에 다음과 같은 과정을 거쳐야 합니다.


< Pull Request 과정 요약 >

A: 해당 오픈소스 저장소
B: fork 한 저장소

`A 저장소를 fork` -> `B 에서 commit` -> `B 에서 push` -> `A 에게 pull request 요청`


< Github Pull Request 과정 >

1 - 해당 오픈소스 저장소를 fork 합니다.


2 - fork 한 저장소에서 작업하고 commit 을 push 합니다.
3 - New pull request 를 생성합니다.

4 - 해당 저장소와 브랜치를 설정하고 양식에 맞게 작성하면 됩니다.
( 각 프로젝트에 맞는 contributing guide 를 참고하는 것이 가장 좋습니다. )



2. 버그 및 수정사항 발견하기


< 오픈소스 사용중에 문제가 발생하는 경우 >

컴파일 도중에 에러가 발생하거나 혹은 오동작이 발생하는 버그를 발견했을 때
로그와 실행 환경을 파악하여 어떤 것이 문제인지 살펴봅니다.

* Github issue 를 확인하여 같은 문제가 발생한 유저가 있는지, 이에 대한 문제 해결이 진행되는지 확인해보면 더 좋습니다.


오픈소스 자체의 문제라고 생각되면 Issue 를 등록하거나 수정한 코드로 해결된다면 PR 을 요청해봅니다.

* Issue, pull request 에 대한 규칙이 각 오픈소스에 있는 경우가 많습니다. 꼭 확인 후 진행하는 것을 추천드립니다.

최신 버전 IDE 에서 발생한 컴파일 에러를 해결하고 PR


< Github Issue 확인하기 >

Github Issue 는 프로젝트에 대한 기능, 버그, 제안등의 여러가지 이슈를 등록할 수 있는 기능입니다.
해당 이슈에 대한 수정이나 개선이 가능하다면 pull request 에 다음과 같이 Issue 번호를 붙여서 작성할 수 있습니다.

프로젝트 방향성에 맞게 기능을 구현하고 PR



< README 에 있는 오타, 코드 컨벤션 수정하기 >

코드에 변수 명이나 주석 철자에 오타가 있거나 README 에 있는 문서가 잘못 링크가 되어있는 경우에도
간단하게 수정해서 PR 할 수 있습니다.

코드 컨벤션이 잘못된 경우

3. 마무리


오픈소스의 이슈를 해결하는 것은 무척이나 까다롭고 어려운 작업이라고 생각합니다.
특히 기능을 개선하거나 새롭게 만들 때에는 상황에 따라 테스트 코드 작업도 필요한 경우가 있습니다.

* 일정 규모 이상의 오픈소스는 CI/CD 환경이 구축되어 PR 과정에 테스트를 수행합니다.


다만 꼭 기여를 하지 않더라도 오픈소스를 통해 다양한 사람들의 코드를 살펴볼 수 있고 점차 코드를 이해하는 능력이 성장하는 것을 느낍니다. 이러한 과정은 본인만의 오픈소스 라이브러리를 만들 수 있는 토대가 될 수 있다고 생각합니다.

마지막으로 Github Issue 통한 프로그래밍 학습법을 소개하고 포스팅을 마치겠습니다. 읽어주셔서 감사합니다!

How To Rapidly Improve At Any Programming Language

Last year, I submitted a PR to the Clojure web request routing library, Compojure. Even though I was doing Clojure full time at work, there was still a lot for me to learn and always will be. Opening a PR for an open source library I was familiar with and

www.cbui.dev

'Other' 카테고리의 다른 글

MAKE US IT 동아리 6기 후기 및 간단 회고  (3) 2021.04.13
    'Other' 카테고리의 다른 글
    • MAKE US IT 동아리 6기 후기 및 간단 회고
    heoblitz
    heoblitz
    iOS, Swift 관련 포스팅을 주로 작성합니다.

    티스토리툴바