오픈소스, 빡! 끝! 서주영 SW센터 <2014 SW멤버십 Technical Conference>
오픈소스, 빡! 끝!
서주영 SW센터
<2014 SW멤버십 Technical Conference>
발표자 소개
서주영
삼성전자 SW센터 소속 책임 연구원 [email protected]
닉네임 천재태지, SeoZ @seojuyung
하는 일/한 일 Tizen 코어 UIFW EFL 개발자 (2010/01 ~) Enlightenment/EFL 오픈소스 커미터 (2011/02 ~) TDC 2014, OSCON 2014 EFL의 Scalability 기술 발표 임베디드월드 Tizen 연재 (총 10회 중 8회) 마이크로소프트웨어 EFL 연재 (총 5회 중 2회)
라이프 스타일
오픈소스
오픈소스의 즐거움
"회사 이슈 볼 때는 재미가 없었는데, 오픈소스 컨트리뷰션을 하니 재미가 있다.“
- 익명을 요구한 박xx 책임
"개발은 즐거운 것인데 우리는 즐거움을 느끼지 못하는 상황에 처해있다.“
- 서주영 책임
오픈소스란?
오픈소스란?
소스코드가 공개됨? 소스코드가 공개된 프로젝트?
오픈소스 정의
정의 자유로운 재배포 소스코드 2차 저작 허용 원저자 소스코드 보전 개인이나 단체 차별 금지 사용 분야 차별 금지 라이선스 배포 특정 제품을 대상으로 한 라이선스 금지 다른 소프트웨어를 제한하는 라이선스 금지 기술 중립 라이선스
참고 http://opensource.org/docs/definition.php
제가 생각하는 오픈소스
오픈소스는 소스를 미끼로 사람들이 모이는 곳
공개된 코드를 중심으로 커뮤니티가 생성
오픈소스 커뮤니티
커뮤니티
커뮤니케이션이 생명
커뮤니티가 중요
눈팅부터 시작
다양한 개발자
커뮤니케이션 도구
웹사이트
메일링 리스트
IRC
버그 리포트 시스템
위키 페이지
패치 반영, 리뷰
기타
컨트리뷰션
패치 보내기
코드 리뷰
버그 리포트
다국어 지원
문서 작업
웹사이트/서버 관리
커뮤니티 응대
기타
오픈소스 컨트리뷰션, 왜?
재미있다. 설렌다.
발전하는 재미 까는 재미 까이는 재미
다양한 지식 습득 및 인맥 구축
기술적, 문화적, 사회적, …
다양한 출신, 배경지식을 가진 개발자를 만날 수 있다.
더 많은 좋은 개발자를 만남
다른 오픈소스
다양한 지식 습득 및 인맥 구축
끊임없는 대화
트렌드를 알 수 있음
시야가 달라짐
더 넓은 세상과의 조우
빠른 리뷰, 친절한 리뷰
기술적 도움
소프트웨어 엔지니어링을 익힐 수 있다
수많은 개발자와 협업을 익힐 수 있다
개발 능력 향상
지식 영역 넓힘
올바른 방향이 무엇인지 배움
다른 사람이 내 버그를 수정해준다.
보는 눈이 많다.
기술적 도움
리누스의 법칙
보는 눈만 많다면 어떤 버그도 쉽게 잡을 수 있다.
기술적 도움
기술적 도움
기회가 많아짐
2011 Cebit 출장 2012 Mozilla 출장 2012 Gnome Korea 발표 2012 삼성 Contributor Day 2012 발표 2012 Daum DevOn 발표 2012 Linux Korea Forum 참가 2013 Open Source Fundamentals 과정 강의 2013 GNOME Asia Summit 준비위원 2013 EFL Korea Seminar 주최 2013 Tizen Korea Summit 참가 2013 Linux Korea Forum 참가 2014 Open Source Fundamentals 과정 강의 2014 Tizen Developer Conference 발표 2014 OSCON 발표 2014 SOSCON 발표
자극
롤모델을 만날 수 있다
열정을 높일 수 있다
자발적으로 참여
잉여 에너지를 열정으로
그 외에도
경력/포트폴리오/커리어패스
영어를 많이 사용하게 된다.
회사와 달리 자기가 하고 싶은 것을 선택할 수 있다.
자신이 만들고 싶은, 필요한 것을 만들 수 있다.
공유 정신
오픈소스 컨트리뷰션, 하지만…
힘들다
시간 부족
영어
닫힌 마인드
가정
일
게임
술
다른 재미있는 일
업무 편중 현상
오픈소스와 업무 사이의 갈등
올바른 방향의 차이
오픈소스와 회사 업무 재미 차이
현실적으로 어느 정도 개인의 희생 필요
현실적으로 어느 정도 개인의 희생 필요
그렇다고 여기서 포기할 것인가?
그렇다고 여기서 포기할 것인가?
그렇다고 여기서 포기할 것인가?
그렇다고 여기서 포기할 것인가?
그렇다고 여기서 포기할 것인가?
그렇다고 여기서 포기할 것인가?
컨트리뷰션 방법 분석
#1 EFL
웹사이트
http://www.enlightenment.org http://www.enlightenment.org/p.php?p=contact
메일링 리스트
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
메일링 리스트
메일링 리스트
IRC
편한 대화방으로 이용 외국인과 친구처럼 지냄 질문/답변뿐만 아니라 개인적인 대화에 활용하기도 함
irc.freenode.net (6667, 8001) #e #edevelop #e.kr
IRC
IRC
IRC
그들은 물지 않는다
패치 반영, 리뷰
1. 패치 작성 2. 테스트 3. 코딩 컨벤션 검토 4. 패치 보내기 5. 리뷰 받기 6. 리뷰 반영하기 7. 실제 커밋
패치 반영, 리뷰
1. 패치 작성
패치 반영, 리뷰
2. 테스트 3. 코딩 컨벤션 검토
https://phab.enlightenment.org/w/coding_convention/ https://phab.enlightenment.org/w/edc_formatting_rule/
패치 반영, 리뷰
패치 반영, 리뷰
4. 패치 보내기 arcanist 도구 사용 https://phab.enlightenment.org/w/arcanist/
패치 반영, 리뷰
4. 패치 보내기
패치 반영, 리뷰
4. 패치 보내기
패치 반영, 리뷰
5. 리뷰 받기
패치 반영, 리뷰
5. 리뷰 받기
패치 반영, 리뷰
6. 리뷰 반영하기
패치 반영, 리뷰
6. 리뷰 반영하기
패치 반영, 리뷰
7. 실제 커밋 커미터의 몫
개발자
개발자 유형 Contributor Probie Committer
활동하는 커미터 (6월 자료) 전세계 69명 한국인 10명
개발자
개발자 분포
컨트리뷰션 방법 분석
#2 WebKit
커뮤니티
IRC irc.freenode.net (6667, 8001)
#webkit #webkit-efl #webkit-kr
패치 반영, 리뷰
1. Bug report 선택 혹은 생성 2. 코드 수정 3. 코딩 컨벤션 검토
Tools/Script/check-webkit-style 스크립트
4. Layout 테스트 수행 Tools/Script/run-webkit-tests
5. ChangelLog 작성 및 Patch 작성 Tools/Script/prepare-ChangeLog <변경된 파일 or 디렉토리>
패치 반영, 리뷰
6. Patch 업로드 Tools/Script/webkit-patch upload
7. Reviewer 리뷰 8. R+ 획득 후 Land
<참고> http://www.webkit.org/coding/contributing.html 김규영 책임 첨삭
컨트리뷰션 방법 분석
#3 Linux Kernel
커뮤니티
https://www.kernel.org/ https://www.wiki.kernel.org/ http://vger.kernel.org/ https://bugzilla.kernel.org/ https://git.kernel.org/cgit/
패치 반영, 리뷰
1. Topic branch 만들기 2. 빌드 테스트 3. 패치 형식 체크
scripts/checkpatch.pl
4. 패치 만들기 Signed-off-by 설정 (commit 시 -s 옵션) git format-patch
5. 리뷰어 찾기 scripts/get_maintainer.pl 메인테이너 뿐만 아니라 관련 메일링 리스트 주소도 얻을 수 있
음
패치 반영, 리뷰
6. 패치 보내기 git send-email --to <보낼곳 메일 주소> <patch file 경로>
7. 기다리기 8. 리뷰 사항 확인하고 재수정해서 다시 보내기 9. 패치 반영
<참고 자료> https://www.kernel.org/doc/Documentation/ko_KR https://docs.google.com/document/d/1jFGEeAPm8vPfCcPFKm5Dt
KR83nMlMaSM60ToOik7CTg/edit http://studyfoss.egloos.com/viewer/5392934 김승우 책임 첨삭
컨트리뷰션 방법 분석
#4 Tizen
커뮤니티
https://www.tizen.org/ https://developer.tizen.org/forums https://wiki.tizen.org/wiki/Main_Page https://review.tizen.org/git/ https://review.tizen.org/gerrit https://lists.tizen.org/listinfo
커뮤니티
IRC irc.freenode.org (6667, 8001)
#tizen
패치 반영, 리뷰
1. Tizen 계정 생성 2. 코드 다운로드 3. 코드 수정 4. 커밋 만들기 5. Gerrit에 패치 보내기
git push origin HEAD:refs/for/tizen
참고: http://embeddedworld.co.kr/atl/view.asp?a_id=7038
패치 반영, 리뷰
마무으리
Open Hub
Daniel Juyung Seo
Open Hub
Carsten Haitzler
첫 패치
서주영 책임 EFL https://phab.enlightenment.org/rELMfe96896e39b8c793094a0e60560672e454cd0d84
Do It Now
일단 올려라
까여도 좋다
미래의 나를 꿈꿔봐라
Do It Now
섀릴 샌드버그
월드뱅크에서 인도 나병 환자 도움
미국 재무부장관의 비서실장으로 활약
섀릴 샌드버그
페이스북 최고운영책임자(COO)
섀릴 샌드버그
가슴이 움직이는 대로 따라가다 보면, 과거에 행했던 모든 일이 퍼즐처럼 연결되어 미래와 만나곤 한다.
- 사람 바이러스
여러분 모두가 인재
프랑스 개발자 세드릭이 평가한 한국 개발자
감사합니다.