오픈 소스 (open source) 프로젝트란?
GitHub에는 훌륭한 프로젝트들이 많다.
이런 프로젝트는 대부분 그 소스 코드가 공개되어 있는데
이렇게 소스 코드가 공개되어 있는 프로젝트를 '오픈 소스 프로젝트(open source project)'라고 한다.
간단히 설명하자면 프로그램의 소스 코드가 대중에 공개된 상태일 때 '오픈 소스'라고 한다.
유명한 오픈 소스 소프트웨어에는
- numpy(이전 영상에서 살펴본 파이썬 수치 계산용 라이브러리, https://github.com/numpy/numpy)
- Linux(위에서 말한 리눅스, https://github.com/torvalds/linux)
- React Native(페이스북에서 만든 모바일 UI 프레임워크, https://github.com/facebook/react-native)
- Vue.js(웹 UI 프레임워크, https://github.com/vuejs/vue)
- MySQL Server(데이터베이스 프로그램, https://github.com/mysql/mysql-server)
- WordPress(설치형 블로그 프로그램, https://github.com/WordPress/WordPress)
- Tensorflow(머신러닝 프레임워크, https://github.com/tensorflow/tensorflow )
등이 있다.
많은 유명 프로그램들이 사실은 이런 오픈 소스 프로젝트로 개발되고 있는 경우가 꽤 많지만
오픈 소스라고 해서 사용할 때 항상 아무런 제약이 없는 것은 아니다.
사실 오픈 소스에도 다양한 종류의 라이센스(open source license)들이 있다.
olis.or.kr/license/compareGuide.do 에 가면 확인할 수 있다.
그럼 오픈 소스 프로젝트는 어떤 장점이 있을까?
- 무료로 사용가능
- 여러 개발자들이 참여하기 때문에 폐쇄적으로 코드를 관리할 때보다 코드의 신뢰도가 더 높다.
- 오픈 소스 프로젝트에 참여 중인 다른 개발자들에게 질문을 할 수 있다.
- 어떤 프로그램을 개발할 때 특정 분야에서 사실상 표준처럼 사용되는 오픈 소스 프로그램을 많이 활용할수록 전체 개발 속도를 단축시킬 수 있다.
반면에 단점은
- 참여자 수가 많지 않거나, 참여자의 실력이 좋지 않으면 소스 코드의 신뢰성을 보장하기 어렵다.
- 해당 오픈 소스를 사용해서 문제가 생겼을 때 보상을 해주거나, 책임을 질 주체가 없다.
등이 있다.
오픈 소스라고 무조건 좋은 것은 아니기 때문에 충분히 공신력 있는 오픈 소스 프로젝트인지를 따져보고 사용하는 게 좋다.
GitHub는 이러한 오픈 소스 프로젝트들이 많이 있는 사이트이다!
여기서 어느 정도 공신력이 있는 오픈 소스 프로젝트의 경우에는 Facebook이나 Google같은 세계적인 IT 회사의,
실력있는 개발자들이 만든 코드를 자유롭게 살펴볼 수 있고 공부할 수 있다.
그래서 사실 개발자들에게 GitHub만큼 좋은 공부 장소가 없다고 한다.
선 배개발자들은 자신이 관심있는 분야의 오픈 소스 프로젝트의 코드를 분석하거나,
좀더 나아가 오픈 소스 수정에 기여할 수 있다면 그 중에 이루어지는 성장은 대단할 것이라고 추천한다.
이런 흔적은 GitHub의 본인 계정 정보에도 다 표시되기 때문에 그 자체로도 개발자에게는 훌륭한 이력이 된다.
Git과 GitHub를 사용하는 법에 능숙해지고난 후에는 GitHub의 오픈 소스에 기여하는 방법도 따로 공부해볼 계획이다.