오픈소스를 준비하자

 

이전부터 오픈소스에 대한 관심이 많았다. 더욱더 공부하기 위해서는 다양한 오픈소스들을 참고하고 공부해야 했다. 그래서 오픈소스를 시작하기 위하여 기본적인 지식에 대해 공부하고 정리하려고 한다.

이전부터 오픈소스에 대한 관심이 많았다. 더욱더 공부하기 위해서는 다양한 오픈소스들을 참고하고 공부해야 했다. 그래서 오픈소스를 시작하기 위하여 기본적인 지식에 대해 공부하고 정리하려고 한다.


Read To Do Open Source

Open Source란?

오픈 소스(open source/OSS) – 위키백과 (바로 가기) 오픈 소스는 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. 어원에 대해서는 History of the OSI 자료에 따르면, 1998년 2월 3일에 넷스케이프 브라우저의 원시 코드에 대해 어떠한 형태로 공개할까 하는 전략회의에서 붙여진 새로운 용어라고 설명되어 있다.

라고 위키백과에 정리되어 있다.

그런데 오픈소스를 시작하기 위해 무엇을 준비해야 하는가?

Open Source를 대하는 자세

어떤 밋업행사에서 듣기로 오픈소스는 그들만의 문화가 존재한다고 한다. 개발자들은 서로 겸손하며, 서로를 존중한다. 궁금한 사항이 사소하더라도 대답해주려고 노력한다. 그리고 서로 발전하려고 노력한다.

그렇기에 오픈소스를 시작하기전에 문화에 대해 이해하고 예의를 지키는 방법에 대해 알고 있어야 한다.

Open Source를 참여하기 위하여

1. README.md 파일을 꼼꼼하게 읽어라.

리드미는 해당 프로젝트에 대한 청사진을 그리고 있는 설명서이다. 해당 프로젝트에 한해서 서로 커밋하는 방법, 기본적으로 지켜져야 할 코드 컨벤션, 풀리퀘를 날릴 때의 주의점, 서로 대화하는 방법 등등 이 있다.

요즘의 현대인들은 제품을 사용하기 전에 설명서에 대해 잘 읽지 않는다. 하지만 오픈소스의 설명서는 꼭 읽어야 한다. 왜냐하면 나 혼자 사용하는 제품이 아니기 때문이다. 여러 명의 사람들이 같이 제품을 사용하려면, 기본적인 규칙을 지켜가며 사용해야 한다.

2. 기본적인 commit 방법

프로젝트마다 commit의 방법은 다르지만, 기본적으로 전제하는 약속은 있다. commit은 해당 코드 변경사항에 대한 설명서이다. 다른 사람들은 내가 고친 코드에 대해 이유를 알아야 변경사항을 승인해줄 수 있다. 그렇기 때문에 무엇을 고쳤는지 보다 고친 이유가 무엇인지에 대해 자세히 설명해줘야 한다.

기본적인 commit 작성법에 대해 알아보자.

  1. 제목과 본문은 한 줄을 띄어준다.
    • 제목과 본문이 분리되어야 나중에 쉽게 커밋 내용을 확인할 수 있다.
  2. 제목은 영문 기준 50자 이내로 작성한다.
    • 제목은 다른 사람들이 직관적으로 이해할 수 있게 50자 이내로 작성한다.
  3. 제목의 첫글자는 대문자로 명령문을 사용한다.
    • 영문법적인 사항인데 자세한 이유는 알 수 없지만 기본적인 영어의 문법이라고 생각하자. ( 첫글자는 당연히 대문자 이겠고, 제목의 경우 줄줄이 설명하는 것 보다 명령문으로 시작하는게 가독성이 좋아서가 아닐까?)
  4. 제목 끝.을 찍지 않는다.
    • 이것 또한 영문법적인 사항이기 때문에 넘어가도록 하겠다.
  5. 본문은 영문자 기준 72자 정도로 작성한다.
    • 위에서 언급했듯이 커밋의 내용에는 변경사항보다 변경한 이유에 대해 자세히 설명해줘야 한다. 그래야 서로 대화를 이어가며 코드의 질이 높아질 수 있다.
  6. 이슈 사항에 커밋을 남기는 것이라면, 이슈를 링크달아둘 것
    • 보는 사람이 모든 이슈를 기억할 수 없으니 상대방에 대한 예의라고 생각하자.

Open Source를 준비하면서

오픈소스를 하려고 준비하면서 그들만의 문화에 매료당했다. 우리나라는 내가 남들보다 조금 이라도 잘하는 것이 있으면 자랑하기 바쁘다. 하지만 오픈소스 세상속의 문화는 그렇지 않았다. 모든 사람들이 그렇지는 않겠지만, 겸손하다.

나 또한 겸손하게 오픈소스에 많은 기여를 하고 싶다. 앞으로 더욱더 실력을 쌓아 오픈소스에 기여할 수 있도록 노력할 것이다. (화이팅!)