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

Post on 24-May-2015

1.856 views 5 download

description

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

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

오픈소스, 빡! 끝!

서주영 SW센터

<2014 SW멤버십 Technical Conference>

발표자 소개

서주영

삼성전자 SW센터 소속 책임 연구원 juyung.seo@samsung.com

닉네임 천재태지, 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

웹사이트

http://efl.or.kr

메일링 리스트

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

메일링 리스트

메일링 리스트

IRC

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

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

IRC

IRC

IRC

그들은 물지 않는다

프로젝트 관리 시스템

https://phab.enlightenment.org/

버그 리포트 시스템

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

위키 페이지

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

패치 반영, 리뷰

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

커뮤니티

http://www.webkit.org

커뮤니티

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

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

Open Hub

Daniel Juyung Seo

Open Hub

Carsten Haitzler

첫 패치

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

첫 패치

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

Do It Now

일단 올려라

까여도 좋다

미래의 나를 꿈꿔봐라

Do It Now

섀릴 샌드버그

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

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

섀릴 샌드버그

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

섀릴 샌드버그

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

- 사람 바이러스

여러분 모두가 인재

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

감사합니다.