🚦Summary.
- 이 세미나는 연사님이 직접 오픈소스 프로젝트에 참여하며 겪은 다양한 정보들과 오픈소스 프로젝트에 참여하기 위한 방법에 대한 지식을 공유하는 자리였습니다.
- 연사님의 오픈소스 기여 팁과 취업에 대한 이야기, 오픈소스 로미오 개발 경험 공유에 대한 내용이 세미나의 주요 내용입니다.
- 특히 아래의 내용을 주로 다룹니다.
- 국내 기업의 오픈소스 활용 동향
- 오픈소스 기여의 중요성 및 시작 방법, 그리고 프로젝트에서의 커뮤니티 활동과 기여 방법
- 오픈소스 기여의 혜택과 한국의 오픈소스 활성화, 그리고 오픈소스 기여에 필요한 영어 실력 등 Q&A
🚫 유의사항 🚫
- 본 포스팅은 모두의연구소 라는 곳에서 운영하는 모두팝 에서 진행한 “오픈소스 기여하고 취뽀하기” 란 세미나에 실시간으로 참여하며 정리한 내용을 담고 있습니다.
- 당연히 모든 내용을 담고 있지 않으며, 제가 관심있거나 중요하다 생각 하는 부분들만 일부 발췌하여 정리했습니다.
- 원본 영상은 모두의연구소 채널에서 직접 확인 가능합니다. 👉 영상 보러가기
- 발표자료는 모두팝 상단에 있는 모두의 연구소 슬랙채널에서 찾아 볼 수 있다고 합니다.
- 제 포스팅을 읽고 해당 세미나에 관심이 생기신 분들은 차후에 모두의연구소 채널에 업로드될 원본 영상을 시청하시길 권장 드립니다.
- 차후에 원본 영상이 업로드된다면, 이 자리에 해당 링크를 함께 공유하도록 하겠습니다.
📌Intro.
-
이 세미나에서는 오픈소스 기여에 대한 다양한 주제와 팁, 그리고 오픈소스 기여를 통한 취업에 대해 다루고 있으며, 참가자들은 주제별로 그룹을 나누어 네트워킹에 참여할 수 있다.
-
오픈소스는 누구나 소스코드를 자유롭게 사용할 수 있는 개념이며, 로미오는 MySQL 데이터를 실시간으로 처리하는 역할을 한다.
-
국내 기업들은 오픈소스를 활용하는 비소프트웨어 기업들도 많이 있으며, 오픈소스 활용률이 계속 증가하고 있다.
-
오픈소스 기여는 작은 프로젝트부터 시작하고 익숙한 스택을 사용하는 것이 좋으며, 형상관리와 익숙한 스택 선택을 고려해야 한다.
-
오픈소스 프로젝트에 참가하기 위해서는 디스코드나 슬랙과 같은 메신저를 통해 커뮤니티를 형성하고, 스프린트나 해커턴 프로그램을 통해 기여할 수 있다.
-
오픈소스 기여를 통해 금전적인 혜택을 받을 수 있으며, 오픈소스 아카데미나 오픈소프트웨어 지원센터 등에서 지원을 받을 수 있다.
💡 형상관리?
- 소프트웨어 개발과정에서 변경사항을 체계적으로 추적하고 관리하는 것을 의미.
- 코드 버전의 관리, 문서버전의 관리, 요구사항 관리등을 포함
- 형상관리를 통해 프로젝트의 일관성과 품질을 유지하고, 복잡한 변경사항도 효과적으로 관리
1. 오늘의 세미나 내용 브리핑(feat. 오픈소스 기여와 취업에 대한 이야기
-
오늘은 오픈소스를 기반으로 주제를 잡고 오픈소스 기여와 취업에 대해 이야기할 예정이다.
-
오픈소스 기여 프로세스, 기여 실전 팁, 취업하기까지 다양한 주제를 다룰 예정이다.
-
세미나에는 Q&A와 만족도 조사, 그리고 네트워킹 시간도 마련되어 있다.
-
참가자들은 주제별로 그룹을 나누어 네트워킹에 참여할 수 있다.
-
모두팝은 AI 커뮤니티를 기반으로 다양한 교육 프로그램을 진행하고 있으며, K-디지털 플랫폼 운영기관으로 활동하고 있다.
2. 오픈소스 로미오 개발 이야기(연사님 개인 경험)
-
오픈소스는 오픈된 소스코드를 말하며, 누구나 소스코드를 배포, 수정, 복제, 사용, 재배포할 수 있는 것을 의미한다.
-
로미오는 데이터 복제 솔루션으로, MySQL에서 실시간으로 데이터를 받아와서 Kafka로 밀어주는 역할을 한다.
-
로미오를 개발하던 도중 MySQL 버전이 올라가면서 데이터 형식이 바뀌었고, 이에 대한 버그를 발견하고 픽스하게 되었다.
-
오픈소스 컨트리뷰션 아카데미는 정보통신산업진흥회에서 주관하는 프로젝트로, 13주 동안 멘토와 함께 오픈소스에 기여하는 활동을 한다.
3. 국내 기업의 오픈소스 활용과 관련된 동향
-
국내 기업에서는 오픈소스를 활용하는 비소프트웨어 기업들도 많이 있으며, 오픈소스 활용률이 계속 증가하고 있다.
-
기업들이 오픈소스에 진심인지 알 수 있는 지표 중 하나는 오픈소스 재단에 후원하는 것이다. 많은 기업들이 오픈소스 재단에 회비를 납부하고 있다.
-
기업들은 오픈소스를 활용하는 것 뿐만 아니라 자사 프로덕트를 오픈소스와 함께 개발하는 움직임도 많아지고 있다.
-
대표적인 기업들의 오픈소스 프로젝트로는 백엔드, 프론트, ML 등 다양한 분야에서 오픈소스화가 진행되고 있다.
-
기업들의 채용 공고를 보면 오픈소스 관련 경험이나 기여를 원하는 경우가 많다. 진짜 오픈소스 기여자나 리딩을 하는 인재를 우대하는 경우도 있다.
4. 오픈소스 기여의 중요성과 시작 방법
-
오픈소스 기여는 희소한 경험이며, 오픈소스로 독창적인 사이드 프로젝트를 기획하는 것은 어렵다.
-
오픈소스는 코드 리뷰 과정이 까다롭고 검증 수준이 높아서 상대 우위를 가져다 줄 수 있다.
-
오픈소스 기여는 대형 프로젝트일수록 베스트 프레스티지에 집중하는 경향이 많다.
-
오픈소스 기여는 작은 프로젝트부터 시작하고, 익숙한 스택을 사용하는 것을 추천한다.
-
오픈소스 기여는 형상관리와 익숙한 스택 선택을 고려해야 하며, 짧은 모집 공고를 선호하는 기업도 있다.
5. 형상관리에 대한 팁과 주의 사항
-
형상관리에 익숙해지는 것은 오래 걸리기 때문에 익숙해지는데 시간을 투자해야 한다.
-
코드 반영 방식은 메일리스트보다는 GitHub, GitLab, GitBucket과 같은 호스팅 서비스를 사용하는 것이 좋다.
-
기술 스택을 선택할 때는 관심 있는 분야나 기업에서 요구하는 스택을 고려해야 한다.
-
프로젝트를 선택할 때는 ChatGPT 가 알고 있는 프로젝트인지 확인해야 한다.
-
이슈를 탐색할 때는 작은 이슈부터 시작하고, 전체 구조를 파악하여 관심 있는 모듈을 찾아야 한다.
-
오픈소스 프로젝트의 구조를 파악하기 위해 아키텍처에 대한 마크다운 문서를 활용할 수 있다.
-
이슈를 찾기 위해 good first issue 라벨이 달린 이슈를 찾는 것이 좋다.
-
이미 열린 PR에 기여할 수도 있으며, 이 방법은 네트워킹과 협업이 가능하다.
-
ChatGPT 를 활용하여 어디서부터 코드를 봐야 하는지 알 수 있다.
-
기어 방식은 프로젝트마다 다르기 때문에 기어 방침을 숙지하고 따라야 한다.
-
오픈소스 프로젝트에 참가하기 위해서는 CLA(Contributor License Agreement)에 서약해야 한다.
-
코드 리뷰를 통해 배울 수 있는 기회가 많으며
보이스카우트 룰과 같은 다양한 문화가 존재한다.
- 기여자인지 확인하기 위해 프로젝트에서 글을 작성하거나 PR을 올리는 등의 활동을 해야 한다.
💡 보이스카우트 규칙
- 보이스스카우트 원칙에서 유래된 소프트웨어 개발에서 사용되는 용어입니다.
- “캠프장을 찾았을 때 보다 더 깨끗하게 떠나라!” 라는 보이스카우트 원칙에서 유래
- 즉, “코드를 처음 본 것보다 더 깨끗하게 만들어 놓아라” 는 의미입니다.
- 개발자는 코드를 수정하거나 추가할 때, 그 코드가 속한 시스템을 개선하고 정리하는데 노력을 기울여야 함을 의미합니다.
- 여러 개발자가 공동으로 작업하는 경우, 각자가 작업한 부분을 정리하고 개선해 전체 코드의 품질을 유지하고 향상시킬 수 있습니다.
- 보이스카우트 규칙은 프로젝트의 유지보수를 용이하게하고, 프로젝트에 중도참여하는 개발자들이 손쉽게 follow-up하고 기여하기 더 쉬워지는데 도움을 줍니다.
6. 오픈소스 프로젝트에서의 커뮤니티 활동과 기여 방법
-
오픈소스 프로젝트에서는 디스코드나 슬랙과 같은 메신저를 활용한 커뮤니티가 마련되어 있으며, 멘토나 동료를 만나는 것이 도움이 될 수 있다.
- 디스코드나 슬랙에 가입하면 멘토를 찾을 수 있고, 이슈를 찾거나 기여할 수 있는 사람들을 찾을 수 있다.
-
오픈소스 프로젝트에서는 코드 작성자와 이메일을 확인할 수 있는 기능도 있다.
-
오픈소스 컨트리뷰션 아카데미, 파이콘 코리아, 오픈소스 소프트웨어 페스티벌 등 다양한 오픈소스 행사에서 스프린트나 해커턴 프로그램을 통해 기여할 수 있다.
- 오픈소스 기여를 어필하기 위해서는 프로젝트의 사용처를 언급하거나 Star와 fork의 수를 보여주는 것도 좋다. 또한, 기여한 기술적인 중요도와 난이도를 어필하고 리뷰 과정을 소개하는 것도 좋다.
7. 오픈소스 기여의 중요성
-
기술 블로그는 어떻게 이슈를 해결했는지 설명하기에 좋은 매체이다.
-
오픈소스 기여는 협업과 네트워킹을 어필할 수 있는 좋은 방법이다.
-
오픈소스 기여를 통해 PR을 작성하고 많은 매체에 정리해두는 것이 좋다.
-
기여한 내용을 바탕으로 면접에서 어필할 수 있다.
-
Github와 Linkedin에 기여 이력을 정리해두는 것이 좋다.
8. 오픈소스 기여 프로세스와 팁
-
오픈소스에 기여하기 좋은 프로젝트는 소규모 오픈소스나 메이저한 프로젝트 중 레포지토리에 직접 올리는 것이 있다.
-
프로젝트를 만들 때는 라이선스를 원하는 대로 선택하고, 메이븐에 올리는 것은 메인테이너가 담당한다.
-
오픈소스 기여 프로세스는 프로젝트마다 레포지토리가 있고, 메인테이너가 올려준다.
-
GitHub에서 Star의 개수는 오픈소스의 인기를 나타내는 지표이지만, fork 수 를 보는 것이 기여의 활발함을 판단하는 데 더 중요하다.
-
마이너한 프로젝트에서도 기여할 수 있으며
, 기여의 의미는 기여의 이력과 기여의 가치에 있다.
-
오픈소스는 분야에 따라 활발하게 사용되며, ML 분야에서는 많은 오픈소스가 활용되고 있다.
- ML 분야에서는 Star수가 많은 프로젝트에 기여하는 것이 좋지만, 기여의 의미는 forks 와 기여의 활발함에 있다.
- 오픈소스를 활용하는 팁은 이슈를 정해놓고 해당 이슈와 관련된 키워드를 ChatGPT 에 물어보고, 디버깅 툴을 활용하여 코드를 읽어나가는 것이다. 컨벤션은 프로젝트의 기어 방침을 따르는 것이 좋다.
💡메이븐(Maven)
- Apach Maven 으로 자바 프로젝트를 빌드하고 관리하기 위한 툴입니다.
- 이 툴을 통해 프로젝트의 전체 Life-Cycle을 관리하며, 빌드, 보고, 문서화 등의 작업을 자동화 할 수 있습니다.
9. 오픈소스 기여의 혜택과 한국의 오픈소스 활성화
-
오픈소스 기여를 통해 금전적인 혜택을 받을 수 있으며, 오픈소스 아카데미나 오픈소프트웨어 지원센터 등에서 지원을 받을 수도 있다.
-
오픈소스 기여는 보람을 느낄 수 있는데, 전세계 사람들이 코드를 본다고 생각하고 이슈를 해결하는 것이 보람있는 경험이다.
-
한국의 오픈소스는 다른 나라에 비해 뒤처져 있는데, 객관적인 지표로도 드러나고 있다. 그것은 GDP순위 대비 오픈소스 활성화 지표인데, 우리나라의 경우 그 지표가 낮은편이다.
-
기업이 공개한 오픈소스가 기업의 울타리를 벗어나지 못하거나, 한국에서 탄생한 오픈소스 프로젝트가 해외로 나가지 못하는 경향이 있다.
10. 오픈소스 기여와 영어 실력 필요 유무?
-
오픈소스 기여를 위해서는 영어 실력이 필요하지만, 영어가 완벽하지 않아도 충분히 이해할 수 있는 수준이면 기여가 가능하다.
-
오픈소스 커뮤니티의 다른 회원들도 영어가 완벽하지 않기 때문에 영어 실력에 대한 부담은 크지 않다.
-
오픈소스에 기여하면서 영어를 사용하면서 배우는 것이 가장 좋은 공부 방법이다.
-
오픈소스 프로젝트의 진행이 잘 안되는 이유는 문화적인 차이와 언어적인 장벽이 있을 수 있다.
-
한국에서의 오픈소스 문화가 확립되지 않아 접근하기 어렵고 두려워하는 분위기
가 있다.
- 오픈소스 문화가 활성화되고 즐기는 문화가 형성되면 문제가 해결될 수 있다.
🤔 Review
-
오픈소스는 정말 말 그대로 ‘가져다 쓸 수 있는 좋은 도구’ 정도 라고만 생각했고, 거기에 기여하는 많은 사람들에 대한 정보를 볼 때 어떻게 저런 공개되어 모두가 사용하는 오픈소스에 기여를 할 수 있지? 라고 높은 허들을 느꼈던 것 같습니다.
-
하지만 생각했던 것보다는 확실히 더 손쉽게 접근 할 수 있는 방법들이 있음을 알 수 있었습니다. 물론 제가 관심을 갖고 있는 ML부분의 경우 상당한 기술스택이나 이해도가 있어야 한다는 점에는 큰 차이는 없지만, 조금 더 공부하면서 기술스택이 쌓이고 경험이 생긴다면 마이너한 프로젝트에 대해서는 시도해보고 싶다는 용기와 욕심이 생기는 계기가 된 것 같습니다.
-
특히, 취업에 있어서 일반적으로 하는 사이드 프로젝트 등보다 더 어필하기 좋은 강점이 분명히 있고, 시도해보는 것 자체가 스스로에게 많은 공부가 될 것이란 느낌이 들었습니다.
-
솔직히 당장 도전해볼 수 있겠다! 라거나 취업에 당장 써먹을 수 있는 꿀팁이다! 정도 까진 아니지만 어느정도 기술 스택이 쌓였을때나 차후에 이직을 하거나 할때는 시도해볼법 한 방법이란 생각이 들었습니다.
댓글남기기