당신은 주제를 찾고 있습니까 “오픈 소스 프로젝트 – GitHub 한국 1위 개발자가 말하는 오픈소스 해야 하는 이유“? 다음 카테고리의 웹사이트 https://you.aodaithanhmai.com.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.aodaithanhmai.com.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 개발자 테드박 [개발/IT업계의 이야기] 이(가) 작성한 기사에는 조회수 8,120회 및 좋아요 183개 개의 좋아요가 있습니다.
Table of Contents
오픈 소스 프로젝트 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 GitHub 한국 1위 개발자가 말하는 오픈소스 해야 하는 이유 – 오픈 소스 프로젝트 주제에 대한 세부정보를 참조하세요
제목은 사실 어그로입니다. GitHub 순위는 Java에서 대한민국 1위입니다.
2015년부터 GitHub에서 오픈소스를 시작했습니다.
지금까지 오픈소스 활동을 해오면서 경험한 것들과 장점,단점에 대해 공유합니다.
오픈 소스 프로젝트 주제에 대한 자세한 내용은 여기를 참조하세요.
오픈소스 프로젝트 시작하기 – Open Source Guides
오픈소스 프로젝트에서는 누구나 어떤 목적으로든 프로젝트를 보고, 사용하고, 수정하고, 배포할 수 있습니다. 이러한 권한은 오픈소스 라이선스를 통해 적용됩니다.
Source: opensource.guide
Date Published: 1/25/2021
View: 7253
오픈소스로 프로젝트를 공개하는 이유 – NAVER Open Source
오픈소스 프로젝트를 공개하고 운영하는 것은 단순히 소스 코드만을 공개하는 것에 그치지 않고, 같은 문제로 고민하고 있는 외부 개발자들과 소통하고 더 나은 소프트웨어 …
Source: naver.github.io
Date Published: 11/24/2022
View: 4924
깃허브(GitHub)에서의 오픈 소스 프로젝트 기여를 위한 초보자 …
이번 글에서는 깃허브(Github)에서 오픈 소스 프로젝트에 기여하는 방법을 안내한다. 작지만 개인적으로 뜻깊었던 첫 기여 경험담을 예시로 삼았다.
Source: seongjin.me
Date Published: 2/21/2021
View: 9121
한국 오픈소스 프로젝트 랭킹 Top 100 – Medium
가장 유명한 오픈소스는 Junegunn Choi 님의 fzf 프로젝트 입니다. fzf는 개발자들이 소스 코드를 검색할 때 이용할 수 있는, 말하자면 개발자의 …
Source: medium.com
Date Published: 11/20/2022
View: 925
‘보시 어워드 2021’ 올해 최고의 오픈소스 소프트웨어 29선
돈이 나무에서 자라지는 않지만 깃허브(GitHub) 저장소에서는 자란다. 오픈소스 프로젝트는 지구상에서 가장 귀중하고 정교한 소프트웨어를 개발하.
Source: www.itworld.co.kr
Date Published: 12/27/2021
View: 185
오픈 소스란 무엇인가요? – AWS
특허, 저작권과 값비싼 라이선스로 기술을 제한하면 발전이 저해됩니다. 많은 인기 있는 오픈 소스 프로젝트가 지난 수십 년간 전 세계적으로 급속한 기술 발전으로 이어 …
Source: aws.amazon.com
Date Published: 6/12/2022
View: 6325
오픈 소스 활동을 시작하기 위한 작은 가
오픈 소스에 관심 있는 대학생, 주니어 개발자 대상입니다. – 경험에 기반해 편향이 있을 수 있습니다. … 모 프로젝트의 이슈 “하나”에 달린 “내가 해봐도 될까요?”.
Source: deview.kr
Date Published: 3/24/2021
View: 930
오픈소스에 기여하는 방법에 대하여 – #1 기존 프로젝트 활용하기
대표적인 오픈소스인 리눅스만 하더라도 리누스 토발즈가 처음 그 코드를 공개했을 때 세계 최대 규모의 오픈소스 소프트웨어가 될 거라는 생각조차 …
Source: tech.osci.kr
Date Published: 5/9/2021
View: 3986
커미터가 말하는 오픈소스 프로젝트 쉽게 참가하는 법
강대명 CTO는 글로벌 오픈소스 프로젝트에서 활발하게 활동 중인 주요 개발자 중 한명이다. 아파치 타조 프로젝트 커미터이며, 레디스 프로젝트에서는 4월 …
Source: zdnet.co.kr
Date Published: 6/5/2022
View: 3718
주제와 관련된 이미지 오픈 소스 프로젝트
주제와 관련된 더 많은 사진을 참조하십시오 GitHub 한국 1위 개발자가 말하는 오픈소스 해야 하는 이유. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

주제에 대한 기사 평가 오픈 소스 프로젝트
- Author: 개발자 테드박 [개발/IT업계의 이야기]
- Views: 조회수 8,120회
- Likes: 좋아요 183개
- Date Published: 2021. 9. 6.
- Video Url link: https://www.youtube.com/watch?v=XUMWqmI4r_g
오픈소스 프로젝트 시작하기
오픈소스는 “무엇”이고 “왜” 하는가?
오픈소스를 시작하려고 하시나요? 축하합니다! 세상이 여러분의 기여를 높이 살 것입니다. 오픈소스란 무엇이며, 왜 사람들이 오픈소스를 사용하는지 알아봅시다.
“오픈소스”란 무엇인가요?
오픈소스 프로젝트에서는 누구나 어떤 목적으로든 프로젝트를 보고, 사용하고, 수정하고, 배포할 수 있습니다. 이러한 권한은 오픈소스 라이선스를 통해 적용됩니다.
오픈소스는 채택의 장벽을 낮춰 아이디어를 신속하게 퍼뜨릴 수 있기 때문에 강력합니다.
오픈소스가 어떻게 돌아가는지 이해하기 위해, 친구가 솥밥을 먹고 있는데 여러분이 체리 파이를 가지고 간다고 생각해 보세요.
모두가 파이를 먹을 수 있습니다. (사용)
파이가 히트를 쳤습니다! 그들은 여러분이 만들어 공개한 파이의 레시피를 찾아봅니다. (소스 뷰)
제과점 주방장인 한 친구 알렉스가 설탕을 줄이는 게 좋겠다고 조언합니다. (수정)
다른 친구인 리사는 다음 주 저녁 식사에 그 파이를 준비하고 싶다고 요청합니다. (배포)
비교해 보면, 독점 소스 과정은 레스토랑에 가서 체리 파이 한 조각을 주문할 것과 같습니다. 여러분은 파이를 먹기 위해 요금을 지불해야 하며 레스토랑은 아마 여러분에게 레시피를 알려주지 않을 것입니다. 만약 파이를 똑같이 베껴 여러분의 이름을 달고 판다면 레스토랑에서 여러분을 고소할 지도 모르죠.
왜 사람들은 자기 작업을 오픈소스로 공개하나요?
One of the most rewarding experiences I get out of using and collaborating on open source comes from the relationships that I build with other developers facing many of the same problems I am. — @kentcdodds, “How getting into Open Source has been awesome for me”
사람이나 조직이 프로젝트 소스를 공개하려는 데에는 여러 가지 이유가 있습니다. 몇 가지 예는 다음과 같습니다.
협업: 오픈소스 프로젝트는 전 세계 누구에게서든 수정을 받을 수 있습니다. 예를 들어 Exercism은 350명이 넘는 기여자가 참여하는 프로그래밍 연습 플랫폼입니다.
채택과 재가공: 오픈소스 프로젝트는 거의 모든 용도로 누구나 사용할 수 있습니다. 심지어 사람들이 그 프로젝트를 기반으로 다른 프로젝트를 만들 수도 있습니다. 예컨대 WordPress는 b2라는 기존 프로젝트의 포크로 시작했습니다.
투명성: 누구나 오픈소스 프로젝트에서 오류나 불일치를 검사 할 수 있습니다. 투명성은 불가리아나 미국 같은 정부, 은행 또는 의료 같은 규제 대상 산업, Let’s Encrypt 등의 보안 소프트웨어에는 투명성이 중요합니다.
오픈소스는 소프트웨어만을 위한 것이 아닙니다. 데이터 세트에서부터 서적에 이르기까지 모두 오픈소스로 만들 수 있습니다. GitHub Explore에서 다른 오픈소스 아이디어를 확인해 보세요.
오픈소스는 “무료”를 의미하나요?
오픈소스의 가장 큰 매력 중 하나는 비용이 들지 않는다는 것입니다. 그러나 “무료”는 오픈소스의 전반적인 가치의 부산물에 불과합니다.
오픈소스 라이선스는 누구나 거의 모든 목적으로 프로젝트를 사용, 수정, 공유할 수 있어야 하므로 프로젝트 자체는 무료입니다. 만약 프로젝트에서 비용을 청구한다면 누구나 합법적으로 복사본을 만들어 무료 버전을 사용할 수 있습니다.
결론적으로 대부분의 오픈소스 프로젝트는 무료이지만, “무료”는 오픈소스 정의의 일부가 아닙니다. 오픈소스의 공식적인 정의를 계속 준수하면서도 이중 라이선스 또는 제한된 기능을 통해 간접적으로 오픈소스 프로젝트 사용에 비용을 청구할 수 있는 방법이 있습니다.
내 오픈소스 프로젝트를 시작해야 할까요?
짧게 답하자면 그렇습니다. 결과가 어떻든 여러분 자신의 프로젝트를 시작하는 것이 오픈소스가 돌아가는 방식을 배우기 위한 훌륭한 방법이 되기 때문입니다.
이전에 프로젝트 소스를 공개해본 적이 없다면 누군가 뭐라고 하거나 소스를 보는 것 자체가 긴장될지도 모릅니다. 이게 여러분의 이야기처럼 들리나요? 여러분은 혼자가 아닙니다!
오픈소스 작업은 글을 쓰거나 그림을 그리는 활동과 같습니다. 여러분의 작업을 세상과 공유하기가 두려울 수도 있지만, 발전하는 방법은 연습 뿐입니다. 설령 봐주는 사람이 없더라도요.
아직 확신이 서지 않는다면 여러분의 목표가 무엇인지 잠시 생각해 보세요.
목표 설정하기
목표는 여러분이 무엇을 해야 하는지, 무엇을 하지 말아야 하는지, 어디서 도움을 받아야 하는지 찾는 데 도움이 될 수 있습니다. 먼저 왜 프로젝트를 오픈소스화하려고 하는지 자문해 보세요.
이 질문에 대해 정해진 정답은 없습니다. 한 프로젝트에 대해 여러 가지 목표를 가질 수도 있고, 각기 다른 목표를 가진 여러 프로젝트를 진행할 수도 있습니다.
여러분의 유일한 목표가 여러분의 성과를 보여주는 것이라면 기여를 원하지 않을 수도 있고 README 파일에 그렇게 적어둘 수도 있습니다. 반대로 기여자를 원한다면 명확한 문서화에 시간을 투자하고 방문자들을 환영해야 합니다.
At some point I created a custom UIAlertView that I was using…and I decided to make it open source. So I modified it to be more dynamic and uploaded it to GitHub. I also wrote my first documentation explaining to other developers how to use it on their projects. Probably nobody ever used it because it was a simple project but I was feeling good about my contribution. — @mavris, “Self-taught Software Developers: Why Open Source is important to us”
프로젝트가 성장함에 따라 커뮤니티에는 단순한 코드 이상의 것이 필요할 수 있습니다. 이슈에 대응하고, 코드를 검토하고, 프로젝트를 홍보하는 것은 오픈소스 프로젝트에서 중요한 작업입니다.
코딩이 아닌 작업에 소요되는 시간은 프로젝트의 크기와 범위에 따라 다르지만, 여러분이 직접 관리자로서 문제를 해결하거나 도움을 줄 사람을 찾아야 합니다.
만약 프로젝트를 오픈소스화하는 회사의 일원이라면 프로젝트의 성공을 위해 필요한 내부 자원이 있는지 확인하세요. 공개 후 누가 프로젝트 관리 책임이 있는지, 어떻게 작업들을 커뮤니티와 공유할 것인지 파악하고 정해야 합니다.
홍보, 운영 및 프로젝트 유지를 위해 전담 예산이나 인력이 필요한 경우 이런 대화를 조기에 시작하세요.
As you begin to open source the project, it’s important to make sure that your management processes take into consideration the contributions and abilities of the community around your project. Don’t be afraid to involve contributors who are not employed in your business in key aspects of the project — especially if they are frequent contributors. — @captainsafia, “So you wanna open source a project, eh?”
다른 프로젝트에 기여하기
사람들과 협업하는 방법을 배우거나 오픈소스가 어떻게 돌아가는지 이해하는 것이 목표라면 기존 프로젝트에 기여하는 것을 고려해 보세요. 여러분이 이미 애용하고 있는 프로젝트에서부터 시작하세요. 오타를 수정하거나 문서를 업데이트하는 것처럼 간단한 것으로도 기여할 수 있습니다.
기여를 시작하는 법을 잘 모르겠다면 오픈소스에 기여하는 방법 가이드를 확인해 보세요.
내 오픈소스 프로젝트 시작하기
프로젝트를 오픈소스화할 정해진 타이밍은 없습니다. 아이디어, 진행중인 작업 혹은 수년이 지난 비공개 소스도 오픈소스화할 수 있습니다.
일반적으로 다른 사람이 여러분의 작업을 보고 피드백을 제공해도 불편할 만한 점이 없을 때 프로젝트를 오픈소스화하면 됩니다.
프로젝트를 오픈소스화하기로 결정한 시점에 상관없이 모든 프로젝트에는 다음과 같은 문서가 포함되어 있어야 합니다.
관리자는 이러한 구성 요소로 기대치를 전달하고, 기여를 관리하고, (여러분을 포함한) 모두의 법적 권리를 보호할 수 있습니다. 위 문서들은 여러분이 긍정적인 경험을 하게 될 가능성을 크게 증가시킵니다.
프로젝트가 GitHub에 있는 경우, 권장 파일 이름을 적용해 이러한 파일들을 최상위 폴더에 저장해 두면 GitHub에서 해당 파일을 인식해 자동으로 사람들에게 보여줍니다.
라이선스 선택하기
오픈소스 라이선스는 사람들이 여러분의 프로젝트에 영향을 주지 않고 사용, 복사, 수정 및 기여할 수 있도록 보장합니다. 또한 복잡하게 얽혀 있는 법적 상황으로부터 당신을 보호합니다. 오픈소스 프로젝트를 시작한다면 반드시 라이선스를 포함해야 합니다.
법률에 관한 일은 즐겁지 않습니다. 좋은 소식은 기존 라이선스를 복사해 저장소에 붙여넣을 수 있다는 것입니다. 여러분의 노력을 보호하는 데 1분이면 충분할 것입니다.
MIT, Apache 2.0, 그리고 GPLv3가 가장 인기있는 오픈소스 라이선스지만 선택할 수있는 다른 옵션도 있습니다.
GitHub에서 새 프로젝트를 만들면 라이선스를 선택할 수 있는 옵션이 제공됩니다. 오픈소스 라이선스를 포함하면 GitHub 프로젝트를 오픈소스로 만들 수 있습니다.
오픈소스 프로젝트 관리의 법적 측면에 대해 다른 질문이나 우려되는 점이 있다면 이 내용을 참조하세요.
README 파일 작성하기
README는 프로젝트 사용 방법을 설명하는 것 이상의 일을 수행합니다. 프로젝트가 중요한 이유와 사용자가 프로젝트를 이용해 할 수 있는 작업에 대해서도 설명합니다.
README에서 다음 질문에 답해 보세요.
이 프로젝트는 무슨 일을 하나요?
이 프로젝트가 유용한 이유는 무엇인가요?
어떻게 시작해야 하나요?
필요하다면 어디에서 더 많은 도움을 받을 수 있을까요?
README를 사용하여 여러분이 기여를 받아들이는 방식, 프로젝트의 목표, 라이선스 및 속성에 대한 정보와 같은 다른 질문에 답할 수 있습니다. 기여를 받고 싶지 않거나, 프로젝트가 아직 준비되지 않았다면 그렇게 적어 두세요.
Better documentation means more users, less support requests, and more contributors. (…) Remember that your readers aren’t you. There are people who might come to a project who have completely different experiences. — @tracymakes, “Writing So Your Words Are Read (video)”
때때로 사람들은 프로젝트가 완성되지 않았거나 기여를 원치 않기 때문에 README를 작성하지 않는 경우가 있습니다. 그것도 README를 작성할 좋은 이유입니다.
@18F의 “Making READMEs Readable”에서 더 많은 영감을 얻거나 @PurpleBooth의 README template을 이용해 전체 README를 작성해 보세요.
README 파일을 최상위 폴더에 포함시키면, GitHub가 자동으로 저장소 홈페이지에 내용을 표시합니다.
기여 가이드라인 작성하기
CONTRIBUTING 파일은 잠재 기여자들에게 프로젝트에 기여하는 방법을 알려줍니다. 예를 들어 다음 정보를 포함할 수 있습니다.
버그 보고서를 제출하는 방법 (이슈와 PR 템플릿을 사용해 보세요)
새로운 기능을 제안하는 방법
환경 설정 및 테스트 실행 방법
기술적 세부 사항과 더불어 여러분이 어떤 기여를 기대하는지 전달할 수도 있습니다.
원하는 기여 유형
프로젝트 로드맵 또는 비전
기여자가 여러분과 연락하는 데 사용할 (혹은 사용하지 말아야 할) 방법
따뜻하고 친근한 어조를 사용하고, 문서나 웹사이트 작성 등 기여에 대한 구체적인 제안을 제공하는 것은 새로운 사람들이 기꺼이 기여를 만들게 하는 데 도움이 될 수 있습니다.
예를 들어 Active Admin은 다음과 같이 기여 가이드를 시작합니다.
먼저, Active Admin에 기여해 주셔서 감사합니다. 여러분의 기여가 Active Admin을 이렇게 훌륭한 툴로 만듭니다.
프로젝트의 초기 단계에서는 CONTRIBUTING 파일이 단순할 수 있습니다. 항상 버그 또는 파일 이슈를 보고하는 방법과 기여에 필요한 테스트 등 기술적 요구 사항을 설명해야 합니다.
시간이 지나면 자주 묻는 질문을 CONTRIBUTING 파일에 추가할 수 있습니다. 이 정보를 적어두면 같은 질문을 반복해서 하는 사람들이 줄어들 것입니다.
CONTRIBUTING 파일을 작성하는 데 도움이 필요하면 @nayafia의 contributing guide template 또는 @mozilla의 “How to Build a CONTRIBUTING.md”을 참조하세요.
README에 CONTRIBUTING 파일을 링크하면 더 많은 사람들이 읽게 할 수 있습니다. CONTRIBUTING 파일을 프로젝트의 저장소에 두면 기여자가 이슈를 생성하거나 PR를 열 때 GitHub가 자동으로 링크를 생성합니다.
행동 강령 세우기
We’ve all had experiences where we faced what was probably abuse either as a maintainer trying to explain why something had to be a certain way, or as a user…asking a simple question. (…) A code of conduct becomes an easily referenced and linkable document that indicates that your team takes constructive discourse very seriously. — @mlynch, “Making Open Source a Happier Place”
마지막으로 행동 강령은 프로젝트 참가자의 행동에 대한 기본 규칙을 정하는 데 도움이 됩니다. 이는 커뮤니티나 회사의 오픈소스 프로젝트를 시작할 때 특히 유용합니다. 행동 강령은 건강하고 건설적인 커뮤니티 행동을 촉진할 수 있게 해 주는데, 이는 관리자 여러분의 스트레스를 줄여줄 것입니다.
자세한 내용은 행동강령 가이드를 참조하세요.
행동 강령은 참여자가 어떻게 행동하기를 기대하는지 전달하는 것 외에, 이러한 기대가 누구에게 적용되는지, 언제 적용되는지, 위반할 경우 어떻게 하는지 등을 다루기도 합니다.
오픈소스 라이선스와 마찬가지로 행동 강령에 대한 새로운 표준도 있으므로 직접 작성할 필요는 없습니다. Contributor Covenant는 Kubernetes, Rails 및 Swift를 포함한 40,000개 이상의 오픈소스 프로젝트에서 사용되는 행동 강령입니다. 어느 것을 사용하든, 필요에 따라 행동 강령을 시행할 준비가 되어 있어야 합니다.
행동 강령을 저장소의 CODE_OF_CONDUCT 파일에 직접 붙여넣으세요. 파일을 쉽게 찾을 수 있게 프로젝트 최상위 폴더에 저장하고 README에 링크를 첨부하세요.
프로젝트의 네이밍과 브랜딩
브랜딩은 화려한 로고나 매력적인 프로젝트 이름 그 이상입니다. 브랜딩은 여러분이 프로젝트를 어떻게 생각하는지, 누구에게 여러분의 메시지를 전달하고자 하는지에 대한 것입니다.
올바른 이름 짓기
기억하기 쉬운 이름을 짓고 프로젝트가 어떤 일을 하는지 알 수 있게 하는 것이 이상적입니다. 아래의 예시를 보세요.
Sentry는 충돌 보고를 위해 앱을 모니터링합니다.
Thin은 빠르고 간단한 Ruby 웹 서버입니다.
기존 프로젝트를 기반으로 하는 경우 그 이름을 접두사로 사용하면 프로젝트가 수행하는 작업을 쉽게 파악할 수 있습니다. 예컨대 node-fetch는 window.fetch 를 Node.js에 가져옵니다.
무엇보다 명확성을 고려하세요. 농담은 재미있지만, 어떤 농담은 다른 문화나 다른 경험을 가진 사람들에게는 이해되지 않을 수도 있음을 기억하세요. 잠재적인 사용자 중 일부는 회사 직원일 수 있습니다. 그들이 직장에서 여러분의 프로젝트를 설명하기 어렵게 만들고 싶지는 않을 것입니다!
이름 중복 피하기
비슷한 이름의 오픈소스 프로젝트가 있는지 확인하세요. 특히 동일한 언어 또는 같은 생태계를 공유하는 경우, 이름이 기존의 인기 있는 프로젝트와 겹치면 사람들이 헷갈려 할 것입니다.
웹 사이트, Twitter 핸들 또는 다른 속성이 프로젝트를 표현하기를 원한다면 원하는 이름을 사용할 수 있는지 확인하세요. 이상적으로는, 그 이름을 아직 사용할 생각이 없더라도 마음의 평화를 위해 이름을 차지해 두는 것이 좋습니다.
프로젝트 이름이 상표를 침해하지 않는지 확인하세요. 회사 측에서 프로젝트를 중단하거나 법적 조치를 취할 것을 요구할 수 있습니다. 리스크를 부담할 가치는 없습니다.
WIPO Global Brand Database 에서 상표명이 있는지 확인할 수 있습니다. 여러분이 회사에서 일을 하고 있다면 법률팀이 도와줄 수 있을 것입니다.
마지막으로, 프로젝트 이름을 구글에 검색해 보세요. 사람들이 프로젝트를 쉽게 찾을 수 있을까요? 검색 결과에 여러분이 원치 않는 것이 나타나지는 않나요?
당신의 글(과 코드)도 브랜드에 영향을 미칩니다!
프로젝트가 진행되는 동안 여러분은 README, 튜토리얼, 커뮤니티 문서, 이슈에 대한 답변, 뉴스레터 및 메일링 리스트까지 많은 글을 쓸 것입니다.
그것이 공식적인 문서든 평범한 이메일이든 여러분의 글 스타일은 프로젝트 브랜드의 일부입니다. 어떻게 청중에게 다가가야 좋을지, 여러분이 전달하고자 하는 어조는 무엇인지 고려하세요.
I tried to be involved with every thread on the mailing list, and showing exemplary behaviour, being nice to people, taking their issues seriously and trying to be helpful overall. After a while, people stuck around not to only ask questions, but to help with the answering as well, and to my complete delight, they mimicked my style. — @janl on CouchDB, “Sustainable Open Source”
따뜻하고 포괄적인 언어(한 사람을 언급 할 때도 “그들”이라고 하듯)를 사용하면 이 프로젝트가 새로운 기여자에게 환영받는 느낌을 줄 수 있습니다. 많은 독자가 영어를 모국어로 사용하지 않을 수 있으므로 간단한 언어 사용에 충실하세요.
작문 스타일 뿐 아니라 코딩 스타일도 프로젝트 브랜드의 일부가 될 수 있습니다. Angular와 jQuery는 엄격한 코딩 스타일과 가이드라인을 가진 프로젝트의 두 가지 예입니다.
프로젝트를 시작할 때 스타일 가이드를 작성할 필요는 없으며, 여러분은 오히려 프로젝트에 여러 코딩 스타일이 혼재하는 것을 좋아할 수도 있습니다. 하지만 글과 코딩 스타일이 서로 다른 유형의 사람들을 끌어모으거나 단념시킬 수도 있다는 점을 예상해야 합니다. 프로젝트의 가장 초기 단계는 여러분이 원하는 선례를 만들 기회입니다.
오픈소스 준비 체크리스트
프로젝트를 오픈소스화할 준비가 되셨습니까? 다음은 도움이 되는 체크리스트입니다. 모든 칸에 체크하셨나요? 이제 출발할 준비가 되었습니다! “공개”를 클릭하고 등을 토닥이세요.
문서
프로젝트에 오픈소스 라이선스가 적힌 LICENSE 파일이 있다.
프로젝트가 README, CONTRIBUTING, CODE_OF_CONDUCT 등 기본적인 문서를 갖추고 있다.
이름은 기억하기 쉽고, 프로젝트가 하는 일에 대한 아이디어를 제공하며, 기존 프로젝트와 충돌하거나 상표를 침해하지 않는다.
이슈 대기열이 최신 상태이며, 이슈는 깔끔하게 분류되고 라벨이 지정되어 있다.
코드
프로젝트가 일관된 코드 규칙을 사용하고 명확한 함수/메소드/변수 이름을 사용한다.
코드에 의도와 특수 상황을 담은 명확한 주석이 달려 있다.
커밋 내역, 이슈, PR에 암호나 비공개 정보 등의 민감한 자료가 없다.
사람
여러분이 개인이라면 아래를 확인하세요.
(회사 직원인 경우) 법무 부서와 상담하고 회사의 IP 및 오픈소스 정책을 이해했다.
여러분이 회사나 조직이라면 아래를 확인하세요.
법무 부서와 상담했다.
프로젝트 발표 및 홍보를 위한 마케팅 계획을 마련했다.
이슈에 답변하고 PR을 리뷰 및 병합하는 등 커뮤니티 상호 작용을 관리할 담당자가 있다.
최소 두 명 이상이 프로젝트 관리 권한을 갖는다.
해냈어요!
첫번째 프로젝트를 오픈소스화한 것을 축하합니다. 결과가 어떻든 공개적으로 작업하는 것은 커뮤니티에게 좋은 선물입니다. 모든 커밋, 댓글, PR을 통해 여러분은 여러분 스스로와 다른 사람들이 배우고 성장할 기회를 창출하고 있습니다.
깃허브(GitHub)에서의 오픈 소스 프로젝트 기여를 위한 초보자 가이드
이 블로그에는 본문 검색 용도로 SearchinGhostEasy라는 플러그인이 붙어있다. 블로깅 플랫폼으로 쓰는 Ghost가 검색 기능을 지원하지 않아서 쓰게 된 것인데, 여러 모로 만족스러웠지만 미묘하게 불편한 점이 하나 있었다. iOS 환경에서 검색 입력폼을 띄웠을 때 아래와 같이 텍스트 입력 영역이 어긋나는 것이었다.
(좌) 수정 전의 화면, (우) 수정 후의 화면
다행히 이 문제는 해당 검색폼의 에 누락된 padding 값을 붙여주는 것으로 간단히 해결 되었고, 그렇게 혼자 만족한 채로 시간이 지났다. 그러다 두어 달 쯤 후의 어느날 문득, 이 수정사항이 원작자의 배포용 코드에 반영된다면 나와 비슷한 불편을 겪어왔을 다른 분들에게도 좋은 일이 되지 않을까 생각하게 되었다. 그래서 “오픈 소스 기여”를 소재로 여러 문서들을 찾아 보았고, 무수한 삽질을 거친 끝에 지난 3월에 처음으로 오픈 소스 프로젝트에 Pull Request를 보냈다. 누군가에게는 지극히 단순한 작업일 수 있겠지만, 깃허브를 더듬더듬 배워가던 사람으로서의 내겐 무척 흥분되는 경험이었다.
이번 글에서는 위의 경험담을 바탕으로 깃허브(Github)에서 오픈 소스 프로젝트에 기여하는 방법을 소개한다. 이 글은 Git의 개념을 어느 정도 알고 있고, 깃허브를 사용해본 적이 있으며, 오픈 소스에 기여하고 싶은 마음이 있지만 어떻게 시작해야 좋을지 막막하신 분들을 대상으로 한다.
사전 지식 숙지하기
만약 Git의 개념이 낯설거나 깃허브를 써본 적이 없다면 이들을 먼저 숙지해두어야 한다. 이에 대해서는 아래 문서와 온라인 강의를 둘러보도록 하자.
기여할 프로젝트를 선택하기
Git과 깃허브에 익숙해졌다면, 이제 내가 기여하고 싶은 프로젝트를 찾을 차례다.
세상엔 정말 무수히 많은 오픈 소스 프로젝트들이 존재한다. 자칫하면 모래사장에서 바늘 찾는 일이 될 수 있으니, 나만의 선택 기준을 미리 생각해두어야 한다. 초심자로서 내가 결정한 선택 기준은 다음과 같다.
적어도 한 번 이상은 사용해 본 적이 있어야 한다.
무언가를 개선하려면 우선 그 대상을 잘 알아야 한다. 어느 정도의 사용 경험은 있어야 해당 프로젝트가 가진 이슈를 올바르게 파악할 수 있다. 경험 많은 기여자라면 저장소에 올라온 Issue 항목들 가운데 원하는 항목을 골라 작업할 수 있겠지만, 그렇지 않다면 일단 손에 익은 프로젝트부터 살펴보는 것이 낫다고 생각한다. 사용자의 기여 활동이 활발한 프로젝트여야 한다.
해당 프로젝트가 사용자의 참여를 독려하는 분위기인지, 모르는 사람의 이슈 제기나 기여 요청에도 적극적으로 응답하는지 알아야 한다. 해당 저장소의 Issue 나 Pull Requests 목록을 살펴보면 대강의 분위기를 짐작할 수 있다. 마지막으로 커밋(Commit) 된 시기가 1년 이내인 프로젝트여야 한다.
만약 최근 1년 이내에 코드 커밋 기록이 없는 프로젝트라면 더 이상 유지보수가 이루어지지 않는 상황일 수 있다. 이런 프로젝트엔 애써서 기여 작업을 하더라도 반영되지 못할 가능성이 클 것이다. 처음부터 너무 거대한 프로젝트를 고르지 않는다.
대중적으로 유명한 프로젝트들은 대개 수십 명에 달하는 컨트리뷰터들의 손을 거쳐 많은 부분이 고도화 된 상태이기에 오픈된 이슈들의 맥락을 파악하거나 향후 업데이트 방향성을 알아보는 과정에 많은 노력이 들어간다. 기여 활동에 익숙해지기 전까지는 작은 프로젝트부터 선택해서 시작하는 것이 좋다고 생각한다.
초심자 입장에서 가장 신속하면서도 간편하게 오픈 소스 기여를 시작할 수 있는 방법은 바로 내가 현재 사용 중인 프로젝트를 고르는 것이다. 해당 프로젝트를 직접 사용해 봤다면 개선이 필요한 부분도 빠르게 찾아낼 수 있고, 내가 개선한 작업의 효과를 내 환경에서 즉시 체감할 수 있기에 개인적인 효용감이 무척 크다.
수행할 작업을 선택하기
기여할 프로젝트를 찾았다면, 다음으로는 어떤 기여 작업을 할 것인지 정해야 한다.
복잡한 코드 작업 만이 의미 있는 기여인 것은 아니다. 내 능력으로 할 수 있는 일을 찾아 가능한 만큼만 해내면 된다. 어떤 것이든 개선의 대상이 될 수 있다. 이미 많은 분들께서 강조하신 것처럼, 매뉴얼 문서나 코드 주석에 적힌 사소한 오탈자, 잘못되거나 존재하지 않는 번역을 고치는 것 또한 훌륭한 기여 작업이다. 때로는 위에서 소개한 일화처럼 간단히 수정 가능한 버그를 발견하여 고치는 작업도 가능할 것이다.
만약 해당 프로젝트의 어떤 부분부터 들여다 보아야 할지 막막하다면, 해당 프로젝트 저장소의 Issue 목록을 살펴보자. 프로젝트에 대한 질의응답이나 버그 제보, 개선 방안에 대한 논의가 이곳에서 이루어진다. 여기서 내가 기여할 수 있을 만한 항목을 찾아 댓글로 의견을 남기거나, 반대로 내가 개선 방안을 먼저 제시하는 것도 가능하다.
본격적으로 도전하기
기여하고 싶은 대상과 기여의 방향이 모두 정해졌으니, 이제 본격적으로 작업을 시작해보자. 저장소 포크(Fork)부터 시작하여 작업용 브랜치(Branch) 생성, 작업 내용의 커밋(Commit)과 푸쉬(Push)를 거쳐 원본 저장소(Repository)에 대한 PR(Pull Request) 전송에 이르는 과정을 단계 별로 살펴볼 것이다.
깃허브에서의 작업은 기본적으로 여러 사람들이 원격으로 비동기적인 협업을 이어간다는 전제로 이루어진다. 따라서 작업 내용이 간단하더라도 따라야 할 절차의 단계가 조금 많은 편이다. 단계의 숫자가 많을 뿐이지, 실제로 해보면 크게 어렵지는 않으니 차근차근 진행해보자.
1. 기여할 프로젝트 저장소를 포크(Fork)하기
가장 먼저 해야 할 일은, 기여하고자 하는 프로젝트의 원격 저장소(Repository)를 내 깃허브 계정으로 포크(Fork) 하는 것이다. 여기서 포크(Fork) 란, 다른 프로젝트의 저장소를 깃허브의 내 계정으로 복제해 오는 것을 의미한다.
PC에서 깃허브에 로그인 한 상태로, 내가 기여하고자 하는 프로젝트의 저장소 화면에서 상단 우측의 Fork 버튼을 눌러보자.
그러면 내 계정에 해당 프로젝트가 포크(Fork) 되어 온 것을 확인할 수 있다. 이때 해당 저장소에는 forked from (원본 프로젝트명) 형태의 설명이 함께 따라붙는다. 이제 포크(Fork) 된 저장소를 git clone (포크된 저장소 경로) 명령으로 내 로컬 환경에 복사하면 기초적인 작업 준비가 끝난 것이다.
왜 이런 작업이 필요할까? 깃허브로 관리되는 오픈 소스 프로젝트의 저장소는 대개 권한을 가진 일부 사용자에게만 직접 접근을 허용하는 편이다. 아무나 와서 이상한 코드로 프로젝트를 망가뜨린다면 곤란할테니까. 그래서 나의 작업 사항을 내 계정으로 포크(Fork) 해 온 저장소에 우선 기록한 후, 내가 고친 내용이 원본 저장소에 반영되도록 요청(PR; Pull Request)하는 방식으로 일을 진행하는 것이다.
클론(Clone)과 포크(Fork)의 차이
클론(Clone) 과 포크(Fork) 는 둘 다 다른 원격 저장소의 내용을 복제하여 가져온다는 점에서 비슷하지만, 아래와 같은 차이가 있다.
클론(Clone) 은 원격 저장소를 내 로컬 컴퓨터로 복사하여 새 저장소를 만드는 것 이다. 이렇게 만들어진 저장소에서의 변경 내용은 push 명령으로 처음에 복사해 왔던 원격 저장소에 직접 보낼 수 있지만, 그 저장소에 대한 쓰기 권한이 없다면 불가능하다.
은 이다. 이렇게 만들어진 저장소에서의 변경 내용은 명령으로 처음에 복사해 왔던 원격 저장소에 직접 보낼 수 있지만, 그 저장소에 대한 쓰기 권한이 없다면 불가능하다. 포크(Fork) 는 원격 저장소의 복사본을 내 깃허브 계정에 만드는 것이다. 이 복사본은 해당 원격 저장소와의 연결성을 갖게 된다. 원본 저장소에 변화가 생겼다면 이를 내 복사본 저장소에 fetch 또는 rebase 명령으로 적용시킬 수 있다. 반대로 내 복사본 저장소에 올려 둔 수정 사항이 해당 원격 저장소에 반영( pull )되도록 요청( pull request )을 보낼 수도 있게 된다.
2. 포크(Fork)해 온 내 저장소를 최신화하기
처음 포크(Fork) 해온 시점에는 원본의 최신 코드가 그대로 반영되어 있겠지만, 기여 작업을 이어가다 보면 다른 누군가에 의해 변경된 코드가 원본 프로젝트에 새로 업데이트 되어 있을 수 있다. 이런 상황에서 갱신되지 않은 옛 버전 기반으로 내가 고친 코드를 Pull Request 로 보내려 한다면… 아래와 같은 메시지를 만나게 될 것이다.
PR을 보내려다 Conflict 메시지를 보게 되면 마음이 덜컹거리게 된다.
포크(Fork) 해온 저장소의 최신화는 그래서 중요하다. 시간이 걸리는 기여 작업이라면, 저장소 최신화에 반드시 신경쓰도록 하자.
앞서 1번 단계에서 포크(Fork) 된 프로젝트 저장소를 git clone 명령으로 로컬 환경에 복사했었다. 해당 경로에서 다음과 같이 입력한다.
# 명령문 포맷 : git remote add (리모트명) (리모트할 경로 url) git remote add upstream (원본 프로젝트 저장소 경로)
위 명령문은 upstream 이라는 이름으로 원본 프로젝트 저장소의 URL을 가리키는 새로운 원격 연결을 추가시키는 것이다. 이를 실행한 뒤 git remote -v 명령으로 현재 내 로컬 환경과 연결된 원격 저장소 경로들을 살펴본 결과는 다음과 같다.
origin : 내가 프로젝트의 원본 저장소로부터 fork 해온 내 깃허브 계정의 저장소이자, 내가 로컬 환경으로 clone 해 온 대상을 의미한다. 내가 수정한 코드들이 올라갈 곳이다.
: 내가 프로젝트의 원본 저장소로부터 해온 내 깃허브 계정의 저장소이자, 내가 로컬 환경으로 해 온 대상을 의미한다. 내가 수정한 코드들이 올라갈 곳이다. upstream : 내가 기여하고자 하는 프로젝트의 원본 저장소 경로다. 만약 원본 저장소의 코드가 새로 업데이트 되었다면, 이곳으로부터 최신 코드를 받아와서 내 저장소에 반영해야 한다.
이제 내 저장소를 최신화시켜 보자. 아래의 명령들을 차례로 실행시켜 준다.
# ‘upstream’으로 지정된 저장소로부터 최신 코드를 받아온다. git fetch upstream # 원본 프로젝트의 최신 코드를 적용할 내 작업용 브랜치로 checkout한다. git checkout master # 앞서 fetch 명령으로 받아온 최신 코드와 내 작업용 브랜치의 코드를 병합한다. # git merge (원본 원격 저장소명/내 브랜치명) git merge upstream/master # 내 깃허브 계정의 저장소도 최신화 시켜준다. git push origin master
아래 스크린샷은 실제로 내가 저장소 최신화 작업을 실행하던 당시의 화면이다. 여기서는 원본 저장소를 fork 해 오자마자 fetch 를 수행했으므로 코드 변화 없이 Already up to date. 란 메시지만 출력되었다. 따라서 내 깃허브 계정의 저장소도 최신화할 필요가 없으므로 git push 명령도 생략했다. 만약 원본 저장소가 새로 업데이트 된 경우라면, git merge 를 수행하는 단계에서 어떤 파일이 어떻게 변화되었는지 확인할 수 있게 된다.
3. 내 저장소에 작업용 브랜치(Branch) 만들기
일부 문서의 오탈자 수정과 같은 작은 스케일의 작업이라면 원래 주어진 대로 main (또는 master ) 브랜치에서 바로 작업해도 무방하다. 하지만 기능 개선이나 추가, 버그 수정 등의 작업이라면, 이것이 어떤 이슈를 해결하려는 작업인지 알아보기 쉽도록 별도의 브랜치로 분리하여 주는 것이 좋다.
내 경우에는 원본 프로젝트의 특정 템플릿( backpack )에 대한 CSS 수정 작업이었으므로, fix-backpack-css 라는 이름의 브랜치를 생성하여 관리했다.
# 원하는 이름으로 새 브랜치를 생성한다. git branch fix-backpack-css # 생성한 브랜치로 전환한다. git checkout fix-backpack-css # (옵션) 위의 두 명령은 아래와 같이 하나로 합칠 수 있다. git checkout -b fix-backpack-css
4. 내 작업 내용을 내 저장소에 올리기
이제 코드 작업을 시작하자. 위의 단계들을 거쳐 만든 내 저장소의 작업용 브랜치에 나의 작업 내용을 커밋( commit )하고 푸시( push )하도록 하자. 내 경우에는 작업 내용이 무척 단촐하여 단 하나의 커밋 만으로 마무리했다.
5. 원본 프로젝트에 Pull Request 보내기
이제 내 작업용 저장소에 웹으로 접속해보면, 아래 스크린샷과 같이 Compare & pull request 버튼이 활성화된 것을 볼 수 있다.
위의 버튼을 누르면, 내가 처음 fork 해왔던 원본 프로젝트 저장소에 PR(Pull request) 을 open 할 수 있는 화면이 나타난다.
여기에서 아래 스크린샷과 같이 PR 을 보내려는 원본 프로젝트 저장소와 브랜치명, 그리고 수정사항이 담긴 내 저장소와 브랜치명을 각각 확인하고 지정해준다.
이제 PR 게시물의 제목과 내용을 채워보자. 가급적이면 다음과 같은 원칙을 지켜서 작성하도록 하자.
제목은 해결하려는 이슈가 무엇인지 누구나 파악할 수 있도록 간명하게 작성한다. 만약 관련된 이슈( Issue )가 있을 경우 해당 이슈의 게시물 번호( 예: #00 )를 함께 명시해주면 더 좋다.
)가 있을 경우 해당 이슈의 게시물 번호( )를 함께 명시해주면 더 좋다. 본문의 경우 대개의 프로젝트에서는 작성 포맷을 지정해 놓거나 따로 공지해 놓은 경우가 많다. 이를 반드시 따르도록 하자.
만약 별도의 지정 포맷이 없다면, 아래 내용이 포함되는 선에서 자유롭게 작성하자.
– 해결하려는 이슈의 간략한 내용
– (버그일 경우) 버그의 재현 환경
– 수정/개선 방향
– 수정/개선 전후의 차이 (스크린샷 등)
– 해결하려는 이슈의 간략한 내용 – (버그일 경우) 버그의 재현 환경 – 수정/개선 방향 – 수정/개선 전후의 차이 (스크린샷 등) 가급적 공손한 어투로, 무례하거나 공격적으로 느껴지지 않도록 작성하자.
6. 소통하고, 반영하기
PR 을 올리고 나면, 이것이 과연 해당 프로젝트의 개선에 도움이 되는 내용인지, 혹시 부족하거나 잘못된 내용이 있진 않은지 코어 개발자 또는 메인테이너(Maintainer)의 검토 의견을 댓글로 받게 된다. 함께 댓글을 주고 받으며 내가 간과했던 부분을 파악할 수도 있고, 혹은 같은 수정 사항에 대한 더 나은 코드를 구상하여 이를 반영하게 될 수도 있다.
내 경우에는 불행히도 버그 재현 환경의 명시를 간과했다가 코어 개발자에게 약간의 혼란을 야기하고 말았다. 해당 이슈에 대한 Android 기기에서의 테스트 결과를 누락했던 것이다. 이처럼 디테일을 돌보지 않는 실수는 검토자의 불필요한 수고를 야기할 수 있으니 주의하자.
코어 개발자의 댓글에서 드러난 뼈아픈 실수의 현장. 이런 실수를 잘 수습하는 것도 커뮤니케이션의 과정이다.
7. Pull Request가 Merge된 것을 확인하기
PR 내용이 최종적으로 잘 수용되어 원본 저장소에 merge 되었다면, 해당 PR 게시글의 하단에서 아래와 같은 반가운 메시지를 볼 수 있을 것이다.
환희의 순간.
이로써 내가 수정한 코드가 오픈 소스 프로젝트에 반영되었고, 해당 프로젝트의 기여자(Contributor) 목록에 이름을 올리게 되었다.
해당 PR 이 공식적으로 Closed 처리 되었다면 안내 메시지에 따라 내 작업용 브랜치를 삭제할 수 있다. 더 이상 같은 프로젝트로 작업할 일이 없다면 fork 해온 내 저장소 역시 삭제해도 좋다.
이것만은 꼭 지키기
오픈 소스에 기여하는 작업도 결국 사람과 사람 간의 일이다. 작업물의 품질 못지 않게 중요한 것이 작업에 임하는 마음가짐이라고 생각한다. 첫 기여 작업을 하면서 세운 나만의 원칙은 다음과 같다.
기대와 다른 반응에 서운해하지 말자
모든 기여가 항상 열렬한 환영으로 이어지는 것은 아니다. 내가 공들여 올린 PR 이 거절된 상태로 Closed 될 수도 있고, 때로는 PR 자체가 Open 된 채로 누구에게도 검토받지 못한 채 잊혀질 수도 있다.
내 노력이 반영되지 않았거나 무시 당했다고 해서 서운해하지 말자. 대개 오픈 소스 프로젝트들은 이렇다 할 대가 없이 선의로 움직이는 사람들에 의해 운영된다. 우리가 일상에서 접하는 많은 서비스들이 이러한 사람들로부터 유무형의 빚을 지고 있다는 점을 유념하자. 이런 세계에 기여하고자 한다면, 해당 프로젝트를 응원하고 후원하는 사람으로서 겸허한 마음으로 접근하는 것이 바람직하다고 생각한다.
정해진 규칙을 따르자
대개의 오픈 소스 프로젝트는 기여 희망자를 위한 규칙을 정해두고 있다. 이러한 규칙은 문서로 직접 명시된 경우도 있고, 때로는 코어 개발자나 메인테이너들에 의해 암묵적으로 지켜지는 경우도 있다. 원활한 기여 작업을 위해서는 해당 규칙을 잘 숙지하고 참여하는 것이 좋다. 예를 들어 어떤 프로젝트에서는 반드시 Issue 를 먼저 등록한 후에 메인테이너 확인을 거쳐 PR 을 Open 해야 할 수도 있다.
아울러 Issue 또는 PR 메시지를 작성할 때 따라야 할 규격을 세세히 정해놓은 경우도 존재한다. 여럿이 함께 협업하는 원격 환경에서 원활한 커뮤니케이션을 위해 지켜야 할 규칙으로 이해하고 받아들이는 것이 좋다.
PR 게시물 작성에는 언제나 신중하자
PR(Pull Request) 은 결국 나의 작업을 프로젝트 원본 저장소에 반영해달라는 요청과 같다. 따라서 기여자에게는 해당 작업이 그 프로젝트에 매끄럽게 수용될 수 있도록 PR 내용을 충실히 작성해야 할 의무가 있다.
앞서 소개했던 것처럼, 나는 PR 게시물에서 버그 재현의 환경 조건을 제대로 명시하지 않았다가 예기치 못한 혼란을 만들었다. 코어 개발자의 너그러운 양해 덕분에 문제 없이 잘 넘어갔지만, 여러 명이 빠듯하게 작업 중인 프로젝트에서는 이런 실수가 큰 커뮤니케이션 비용으로 이어질 수 있다. PR 게시물은 언제나 신중한 자세로, 예의 바르게 작성해야 한다.
맺음말
#sge-input { … width: 100%; padding: 0 0.25em 0 0; … }
위의 코드가 내가 처음으로 오픈 소스 프로젝트에 보낸 Pull Request의 내용이다. 단 두 줄의 CSS 코드가 전부다. 그러나 이걸 원본 프로젝트에 반영시키기 위해 거쳐야 했던 과정이 비경험자로서는 그리 간단치 않았다. 매 단계마다 내가 몰라도 너무 모른다는 막막함에 시달렸다. 똑같은 어려움을 반복하고 싶지 않아서 모든 과정을 상세히 기록했다. 그 기록이 이 글의 재료가 되었다. 가이드의 형식을 빌고 있는 이 글은, 사실 나의 부끄러운 첫 경험에 대한 회고이기도 하다.
선량한 마음만으로 이루어지는 일은 없다. 모든 일에는 방법과 규칙이 있다. 여럿이 함께 하여 만들어지는 오픈 소스의 세계에는 그 협업이 생산적인 방향으로 이어지도록 하기 위해 나름의 방법과 규칙이 정해져 있다. 이들을 잘 파악하고 따르면서 의미 있는 협업을 시도해 보는 일, 그리하여 같은 코드에 의존하는 다른 누군가의 불편을 해소해 주고, 그럼으로써 전체 프로젝트의 품질을 향상시키는 일에 도전하길 원하지만 어떻게 시작해야 할지 막막한 분들께 이 가이드가 새로운 시작점이 되어주면 좋겠다.
‘보시 어워드 2021’ 올해 최고의 오픈소스 소프트웨어 29선
Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
오픈 소스란 무엇인가요?
오픈 소스 소프트웨어와 다른 유형의 소프트웨어의 차이점은 무엇인가요?
소프트웨어를 만드는 조직이나 사람들이 상업적인 이유로 소프트웨어를 통제하는 것을 선호하는 경우가 가끔 있습니다. 그들은 소스 코드에 대한 독점적인 소유권을 유지합니다. 즉, 그들만이 오류 수정 및 새로운 기능 추가를 위해 코드를 수정할 수 있습니다. 이러한 소프트웨어를 독점 소프트웨어 또는 클로즈드 소스 소프트웨어라고 합니다. Adobe Photoshop 및 Norton AntiVirus 제품이 독점 소프트웨어의 예입니다.
오픈 소스 소프트웨어와 클로즈드 소스 소프트웨어 비교
오픈 소스 소프트웨어와 클로즈드 소스 또는 독점 소프트웨어의 세 가지 주요 차이점은 다음과 같습니다.
신뢰성
독점 소프트웨어는 코드를 제어하는 단일 조직 또는 개발자를 통해 코드를 업데이트하고 오류를 방지하며 작동 상태를 유지합니다. 이와 반대로 오픈 소스 소프트웨어는 더 넓은 커뮤니티에서 유지 관리됩니다. 주요 오픈 소스 프로젝트 중 일부는 전 세계에서 수천 명의 기고자가 이전 코드와 새로운 변경 사항을 세밀하게 테스트합니다. 그렇기 때문에 오픈 소스 코드는 신뢰성이 더 높은 경우가 많습니다.
보안
모든 소스 코드에는 사이버 공격에 취약하게 만드는 보안 결함이 있을 수 있습니다. 그러나 오픈 소스 소프트웨어는 수정이 더 빠르다는 장점이 있습니다. 커뮤니티 구성원이 보안 취약점을 보고하면 오픈 소스 프로젝트에서 하루나 이틀 내에 코드 업데이트를 릴리스합니다. 상업 회사가 오픈 소스 소프트웨어를 개발하면 높은 가시성으로 인해 긴급하게 문제가 해결되며 이는 더 나은 원본 소프트웨어로 이어질 수도 있습니다.
반면에 독점 소프트웨어는 다음과 같은 이유로 업데이트 주기가 더 깁니다. 지정된 프로젝트의 공급업체 작업자가 더 적을 수 있습니다.
공급업체가 보안 결함보다 재정적 고려 사항을 우선시할 수 있습니다.
공급업체가 여러 변경 사항을 번들로 묶어 한 번에 릴리스하는 것을 선호하여 보안 업데이트 릴리스가 지연될 수 있습니다.
라이선스
키워드에 대한 정보 오픈 소스 프로젝트
다음은 Bing에서 오픈 소스 프로젝트 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 GitHub 한국 1위 개발자가 말하는 오픈소스 해야 하는 이유
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
GitHub #한국 #1위 #개발자가 #말하는 #오픈소스 #해야 #하는 #이유
YouTube에서 오픈 소스 프로젝트 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 GitHub 한국 1위 개발자가 말하는 오픈소스 해야 하는 이유 | 오픈 소스 프로젝트, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.