SlideShare a Scribd company logo
1 of 46
Download to read offline
강대명(charsyam@naver.com)
오픈소스에
공헌을
시작하는 방법
카카오
2015.10.28
Who am I?
• 강대명(charsyam)
• (현)카카오스토리 백엔드 개발
• Apache Tajo Commiter
• Redis/Twemproxy Contributor
오늘의 주제
오픈소스
오늘의 주제
오픈소스
소스 공개,
자유로운 재배포
리눅스, 하둡, 스파크
어떻게 시작해야 할까요?
코끼리를 냉장고에
넣는 3가지 방법?
오픈 소스 공헌을
시작하는 3가지 방법
오픈소스 공헌을 시작하는 3가지 방법
1. Github 에서 오픈소스를 선택한다.
2. 코드를 수정한다.
3. Pull Request를 보낸다.
오픈소스 공헌을 시작하는 3가지 방법
1. Github 에서 오픈소스를 선택한다.
2. 코드를 수정한다.
3. Pull Request를 보낸다.
오픈소스 공헌을 시작하는 3가지 방법
1. Github 에서 오픈소스를 선택한다.
2. 코드를 수정한다.
3. Pull Request를 보낸다.
오늘의 주제
오해
오해
코드만 기여 가능
내가 내면 받아줄꺼야.
멋진 기능(큰 기능)
기여
기여=공헌
공헌
힘을 써 이바지 하다.
기여
기능 테스트
코드
문서화
오타버그리포팅
리뷰
기여
기능 테스트
코드
문서화
오타버그리포팅
리뷰
질문
오해
코드만 기여 가능
내가 내면 받아줄꺼야.
멋진 기능(큰 기능)
그는 당신을 모릅니다.
신뢰
신뢰
대화
참여도
기존 경험
리뷰
오해
코드만 기여 가능
내가 내면 받아줄꺼야.
멋진 기능(큰 기능)
서로의 방향이 다를 수
있습니다.
나에겐 필요하지만,
프로젝트 방향성과
다른…
적용 여부는
온전히 커미터의 결정
어떻게
시작할까?
빌드오류
옛날 OS
Minor
플랫폼
오타
주석
메뉴얼
Misspelling
https://pypi.python.org/pypi/misspellings
find . -name '*.c' | misspellings -f –
coreutils/src/cat.c:754: efficency -> "efficiency"
coreutils/src/comm.c:198: funtion -> "function"
coreutils/src/expr.c:21: seperate -> "separate"
coreutils/src/pr.c:1417: accomodate -> "accommodate"
coreutils/src/tac.c:342: unneccessary -> "unnecessary"
coreutils/src/test.c:91: supressed -> "suppressed"
주석이나 메뉴얼의 오타
커미터의 리뷰에 적은
노력이 듬.
처음에는 작은 것 부터
자주 보다 보면
코드가 이해되기 시작함
2종류의 사람
이 발표 이후에
아무것도 못하는 사람
이 발표 이후에
조그마한 것이라도
시작하는 사람…
자 이제부터…
시작하십시오.
꾸준히…
먼저 Github 사용법
부터 익히세요.
백수든 직장인이든…
Github 이 답입니다.
THANK YOU!

More Related Content

What's hot

How to Contribute to OSS
How to Contribute to OSSHow to Contribute to OSS
How to Contribute to OSSSanghyeon Seo
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자JeongHun Byeon
 
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재NAVER D2
 
To become Open Source Contributor
To become Open Source ContributorTo become Open Source Contributor
To become Open Source ContributorDaeMyung Kang
 
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한NAVER Engineering
 
GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기Lee Geonhee
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서jungseob shin
 
How to contribute to open source
How to contribute to open sourceHow to contribute to open source
How to contribute to open sourceSeoeun Park
 
D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션NAVER D2
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전Daniel Juyung Seo
 
깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기Ohgyun Ahn
 
찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar찾아가는 Git/Github Seminar
찾아가는 Git/Github SeminarJeong-Gun Lee
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategyKenu, GwangNam Heo
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)민수 김
 
위클리 발표자료
위클리 발표자료위클리 발표자료
위클리 발표자료hosung kang
 

What's hot (20)

[PandoraCube] 오픈 소스와 깃허브
[PandoraCube] 오픈 소스와 깃허브[PandoraCube] 오픈 소스와 깃허브
[PandoraCube] 오픈 소스와 깃허브
 
How to Contribute to OSS
How to Contribute to OSSHow to Contribute to OSS
How to Contribute to OSS
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자
 
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
 
To become Open Source Contributor
To become Open Source ContributorTo become Open Source Contributor
To become Open Source Contributor
 
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
 
GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기
 
GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서GitHub Pull Request 간단 사용 설명서
GitHub Pull Request 간단 사용 설명서
 
How to contribute to open source
How to contribute to open sourceHow to contribute to open source
How to contribute to open source
 
D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
 
깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기
 
찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar찾아가는 Git/Github Seminar
찾아가는 Git/Github Seminar
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
How to use Github? (For Cien)
How to use Github? (For Cien)How to use Github? (For Cien)
How to use Github? (For Cien)
 
위클리 발표자료
위클리 발표자료위클리 발표자료
위클리 발표자료
 

Viewers also liked

Internet scaleservice
Internet scaleserviceInternet scaleservice
Internet scaleserviceDaeMyung Kang
 
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service2015 SW마에스트로 100+ 컨퍼런스
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013NDOORS
 
OpenSource Contributor
OpenSource ContributorOpenSource Contributor
OpenSource ContributorDaeMyung Kang
 
MariaDB
MariaDBMariaDB
MariaDBymtech
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스
 
Selenium for XE
Selenium for XESelenium for XE
Selenium for XE승훈 오
 
01 페이스북특강 (daum it pro bono) 140308
01 페이스북특강 (daum it pro bono) 14030801 페이스북특강 (daum it pro bono) 140308
01 페이스북특강 (daum it pro bono) 140308csr_hope
 
SW Maestro 1-1 Project Keynote PDF
SW Maestro 1-1 Project Keynote PDFSW Maestro 1-1 Project Keynote PDF
SW Maestro 1-1 Project Keynote PDF진수 한
 
Refactoring(inline class, Hide delegate, remove middle man)
Refactoring(inline class, Hide delegate, remove middle man)Refactoring(inline class, Hide delegate, remove middle man)
Refactoring(inline class, Hide delegate, remove middle man)DaeMyung Kang
 
페이스북 페이지 분석 Pampered chef
페이스북 페이지 분석 Pampered chef페이스북 페이지 분석 Pampered chef
페이스북 페이지 분석 Pampered chefJun Hee Kim
 
git, git flow
git, git flowgit, git flow
git, git floweva
 
모바일 환경에 대한 이해와 네이버의 방향
모바일 환경에 대한 이해와 네이버의 방향모바일 환경에 대한 이해와 네이버의 방향
모바일 환경에 대한 이해와 네이버의 방향Seungyul Kim
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngineSol Kim
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test승훈 오
 
Random 111203223949-phpapp02
Random 111203223949-phpapp02Random 111203223949-phpapp02
Random 111203223949-phpapp02DaeMyung Kang
 
LinqPad for DevOps
LinqPad for DevOpsLinqPad for DevOps
LinqPad for DevOps성수 이
 

Viewers also liked (20)

Internet scaleservice
Internet scaleserviceInternet scaleservice
Internet scaleservice
 
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service
2015 SW마에스트로 100+ 컨퍼런스_카카오 플랫폼과 Elastic Web Service
 
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
코끼리를 냉장고에 넣는 법 - 최부호, NDC2013
 
OpenSource Contributor
OpenSource ContributorOpenSource Contributor
OpenSource Contributor
 
MariaDB
MariaDBMariaDB
MariaDB
 
Change Requirement
Change RequirementChange Requirement
Change Requirement
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
 
Selenium for XE
Selenium for XESelenium for XE
Selenium for XE
 
01 페이스북특강 (daum it pro bono) 140308
01 페이스북특강 (daum it pro bono) 14030801 페이스북특강 (daum it pro bono) 140308
01 페이스북특강 (daum it pro bono) 140308
 
SW Maestro 1-1 Project Keynote PDF
SW Maestro 1-1 Project Keynote PDFSW Maestro 1-1 Project Keynote PDF
SW Maestro 1-1 Project Keynote PDF
 
Refactoring(inline class, Hide delegate, remove middle man)
Refactoring(inline class, Hide delegate, remove middle man)Refactoring(inline class, Hide delegate, remove middle man)
Refactoring(inline class, Hide delegate, remove middle man)
 
페이스북 페이지 분석 Pampered chef
페이스북 페이지 분석 Pampered chef페이스북 페이지 분석 Pampered chef
페이스북 페이지 분석 Pampered chef
 
git, git flow
git, git flowgit, git flow
git, git flow
 
모바일 환경에 대한 이해와 네이버의 방향
모바일 환경에 대한 이해와 네이버의 방향모바일 환경에 대한 이해와 네이버의 방향
모바일 환경에 대한 이해와 네이버의 방향
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngine
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test
 
Python andselenium
Python andseleniumPython andselenium
Python andselenium
 
Random 111203223949-phpapp02
Random 111203223949-phpapp02Random 111203223949-phpapp02
Random 111203223949-phpapp02
 
Git flow
Git flowGit flow
Git flow
 
LinqPad for DevOps
LinqPad for DevOpsLinqPad for DevOps
LinqPad for DevOps
 

More from DaeMyung Kang

How to use redis well
How to use redis wellHow to use redis well
How to use redis wellDaeMyung Kang
 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashingDaeMyung Kang
 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache keyDaeMyung Kang
 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash DaeMyung Kang
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better EngineerDaeMyung Kang
 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_finalDaeMyung Kang
 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offsetDaeMyung Kang
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lakeDaeMyung Kang
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
 

More from DaeMyung Kang (20)

Count min sketch
Count min sketchCount min sketch
Count min sketch
 
Redis
RedisRedis
Redis
 
Ansible
AnsibleAnsible
Ansible
 
Why GUID is needed
Why GUID is neededWhy GUID is needed
Why GUID is needed
 
How to use redis well
How to use redis wellHow to use redis well
How to use redis well
 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashing
 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache key
 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_final
 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offset
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lake
 
Redis acl
Redis aclRedis acl
Redis acl
 
Coffee store
Coffee storeCoffee store
Coffee store
 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
 
Number system
Number systemNumber system
Number system
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
 

Soscon lt 1