99
오픈소스, ! ! 서주영 SW센터 <2014 SW멤버십 Technical Conference>

오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Embed Size (px)

DESCRIPTION

제7회 삼성소프트웨어멤버십 기술전 - 발표

Citation preview

Page 1: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스, 빡! 끝!

서주영 SW센터

<2014 SW멤버십 Technical Conference>

Page 2: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

발표자 소개

서주영

삼성전자 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회)

Page 3: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

라이프 스타일

Page 4: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스

Page 5: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스의 즐거움

"회사 이슈 볼 때는 재미가 없었는데, 오픈소스 컨트리뷰션을 하니 재미가 있다.“

- 익명을 요구한 박xx 책임

"개발은 즐거운 것인데 우리는 즐거움을 느끼지 못하는 상황에 처해있다.“

- 서주영 책임

Page 6: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스란?

Page 7: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스란?

소스코드가 공개됨? 소스코드가 공개된 프로젝트?

Page 8: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스 정의

정의 자유로운 재배포 소스코드 2차 저작 허용 원저자 소스코드 보전 개인이나 단체 차별 금지 사용 분야 차별 금지 라이선스 배포 특정 제품을 대상으로 한 라이선스 금지 다른 소프트웨어를 제한하는 라이선스 금지 기술 중립 라이선스

참고 http://opensource.org/docs/definition.php

Page 9: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

제가 생각하는 오픈소스

오픈소스는 소스를 미끼로 사람들이 모이는 곳

공개된 코드를 중심으로 커뮤니티가 생성

Page 10: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스 커뮤니티

Page 11: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

커뮤니케이션이 생명

커뮤니티가 중요

눈팅부터 시작

Page 12: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

다양한 개발자

Page 13: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니케이션 도구

웹사이트

메일링 리스트

IRC

버그 리포트 시스템

위키 페이지

패치 반영, 리뷰

기타

Page 14: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

컨트리뷰션

패치 보내기

코드 리뷰

버그 리포트

다국어 지원

문서 작업

웹사이트/서버 관리

커뮤니티 응대

기타

Page 15: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스 컨트리뷰션, 왜?

Page 16: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

재미있다. 설렌다.

발전하는 재미 까는 재미 까이는 재미

Page 17: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

다양한 지식 습득 및 인맥 구축

기술적, 문화적, 사회적, …

다양한 출신, 배경지식을 가진 개발자를 만날 수 있다.

더 많은 좋은 개발자를 만남

다른 오픈소스

Page 18: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

다양한 지식 습득 및 인맥 구축

끊임없는 대화

트렌드를 알 수 있음

시야가 달라짐

더 넓은 세상과의 조우

빠른 리뷰, 친절한 리뷰

Page 19: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

기술적 도움

소프트웨어 엔지니어링을 익힐 수 있다

수많은 개발자와 협업을 익힐 수 있다

개발 능력 향상

지식 영역 넓힘

올바른 방향이 무엇인지 배움

다른 사람이 내 버그를 수정해준다.

보는 눈이 많다.

Page 20: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

기술적 도움

리누스의 법칙

보는 눈만 많다면 어떤 버그도 쉽게 잡을 수 있다.

Page 21: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

기술적 도움

Page 22: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

기술적 도움

Page 23: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

기회가 많아짐

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 발표

Page 24: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

자극

롤모델을 만날 수 있다

열정을 높일 수 있다

자발적으로 참여

잉여 에너지를 열정으로

Page 25: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그 외에도

경력/포트폴리오/커리어패스

영어를 많이 사용하게 된다.

회사와 달리 자기가 하고 싶은 것을 선택할 수 있다.

자신이 만들고 싶은, 필요한 것을 만들 수 있다.

공유 정신

Page 26: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 27: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스 컨트리뷰션, 하지만…

Page 28: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

힘들다

시간 부족

영어

닫힌 마인드

가정

게임

다른 재미있는 일

업무 편중 현상

Page 29: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

오픈소스와 업무 사이의 갈등

올바른 방향의 차이

오픈소스와 회사 업무 재미 차이

Page 30: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

현실적으로 어느 정도 개인의 희생 필요

Page 31: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

현실적으로 어느 정도 개인의 희생 필요

Page 32: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 33: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 34: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 35: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 36: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 37: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 38: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 39: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 40: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

그렇다고 여기서 포기할 것인가?

Page 41: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

컨트리뷰션 방법 분석

#1 EFL

Page 42: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

웹사이트

http://www.enlightenment.org http://www.enlightenment.org/p.php?p=contact

Page 43: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

웹사이트

http://efl.or.kr

Page 44: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

메일링 리스트

https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Page 45: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

메일링 리스트

Page 46: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

메일링 리스트

Page 47: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

IRC

편한 대화방으로 이용 외국인과 친구처럼 지냄 질문/답변뿐만 아니라 개인적인 대화에 활용하기도 함

irc.freenode.net (6667, 8001) #e #edevelop #e.kr

Page 48: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

IRC

Page 49: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

IRC

Page 50: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

IRC

그들은 물지 않는다

Page 51: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

프로젝트 관리 시스템

https://phab.enlightenment.org/

Page 52: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

버그 리포트 시스템

https://phab.enlightenment.org/maniphest/

Page 53: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

위키 페이지

https://phab.enlightenment.org/w/

Page 54: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

1. 패치 작성 2. 테스트 3. 코딩 컨벤션 검토 4. 패치 보내기 5. 리뷰 받기 6. 리뷰 반영하기 7. 실제 커밋

Page 55: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

1. 패치 작성

Page 56: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

2. 테스트 3. 코딩 컨벤션 검토

https://phab.enlightenment.org/w/coding_convention/ https://phab.enlightenment.org/w/edc_formatting_rule/

Page 57: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

Page 58: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

4. 패치 보내기 arcanist 도구 사용 https://phab.enlightenment.org/w/arcanist/

Page 59: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

4. 패치 보내기

Page 60: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

4. 패치 보내기

Page 61: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

5. 리뷰 받기

Page 62: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

5. 리뷰 받기

Page 63: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

6. 리뷰 반영하기

Page 64: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

6. 리뷰 반영하기

Page 65: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

7. 실제 커밋 커미터의 몫

Page 66: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

개발자

개발자 유형 Contributor Probie Committer

활동하는 커미터 (6월 자료) 전세계 69명 한국인 10명

Page 67: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

개발자

개발자 분포

Page 68: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

컨트리뷰션 방법 분석

#2 WebKit

Page 69: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

http://www.webkit.org

Page 70: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

IRC irc.freenode.net (6667, 8001)

#webkit #webkit-efl #webkit-kr

Page 71: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

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 디렉토리>

Page 72: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

6. Patch 업로드 Tools/Script/webkit-patch upload

7. Reviewer 리뷰 8. R+ 획득 후 Land

<참고> http://www.webkit.org/coding/contributing.html 김규영 책임 첨삭

Page 73: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

컨트리뷰션 방법 분석

#3 Linux Kernel

Page 74: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

https://www.kernel.org/ https://www.wiki.kernel.org/ http://vger.kernel.org/ https://bugzilla.kernel.org/ https://git.kernel.org/cgit/

Page 75: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

1. Topic branch 만들기 2. 빌드 테스트 3. 패치 형식 체크

scripts/checkpatch.pl

4. 패치 만들기 Signed-off-by 설정 (commit 시 -s 옵션) git format-patch

5. 리뷰어 찾기 scripts/get_maintainer.pl 메인테이너 뿐만 아니라 관련 메일링 리스트 주소도 얻을 수 있

Page 76: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

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 김승우 책임 첨삭

Page 77: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

컨트리뷰션 방법 분석

#4 Tizen

Page 78: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

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

Page 79: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

커뮤니티

IRC irc.freenode.org (6667, 8001)

#tizen

Page 80: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

1. Tizen 계정 생성 2. 코드 다운로드 3. 코드 수정 4. 커밋 만들기 5. Gerrit에 패치 보내기

git push origin HEAD:refs/for/tizen

참고: http://embeddedworld.co.kr/atl/view.asp?a_id=7038

Page 81: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

패치 반영, 리뷰

Page 82: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

마무으리

Page 83: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Open Hub

https://www.openhub.net/ 구 ohloh.net 오픈소스 통계 및 자료 제공 사이트

Page 84: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Open Hub

Daniel Juyung Seo

Page 85: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Open Hub

Carsten Haitzler

Page 86: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

첫 패치

서주영 책임 EFL https://phab.enlightenment.org/rELMfe96896e39b8c793094a0e60560672e454cd0d84

Page 87: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

첫 패치

김규영 책임 WebKit http://trac.webkit.org/changeset/51783

Page 88: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Do It Now

일단 올려라

까여도 좋다

미래의 나를 꿈꿔봐라

Page 89: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

Do It Now

Page 90: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

섀릴 샌드버그

월드뱅크에서 인도 나병 환자 도움

미국 재무부장관의 비서실장으로 활약

Page 91: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

섀릴 샌드버그

페이스북 최고운영책임자(COO)

Page 92: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

섀릴 샌드버그

가슴이 움직이는 대로 따라가다 보면, 과거에 행했던 모든 일이 퍼즐처럼 연결되어 미래와 만나곤 한다.

- 사람 바이러스

Page 93: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 94: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 95: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

여러분 모두가 인재

프랑스 개발자 세드릭이 평가한 한국 개발자

Page 96: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 97: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 98: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
Page 99: 오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전

감사합니다.