오픈소스 그리고 기회

Preview:

DESCRIPTION

 

Citation preview

오픈소스 그리고 기회진성주

진성주

•Apache Usergrid Committer

•OSCON 2013 Speaker

•KT 백엔드 플랫폼 서비스 baas.io 개발

•(전) KTH 플랫폼개발팀

•(전) 삼성전자 DMC 연구소

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

0. 컴퓨팅산업

인류시작 현재

건축

의학

컴퓨팅산업

( 1950 ~

0. 컴퓨팅산업무어의 법칙 3가지 조건 • 마이크로프로세스의 성능은 18개월마다 2배씩 향상 • 컴퓨팅 성능은 18개월마다 2배씩 향상 • 컴퓨팅 가격은 18개월마다 반으로 떨어짐

0. 컴퓨팅산업

변화가 심함, 그래서 기회가 많기도

0. 컴퓨팅산업

소프트웨어산업

오픈소스소프트웨어

상업적소프트웨어…

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

1. 오픈소스• 오픈소스는‘소스코드’를 공개하여 누구나 수정 · 재배포할 수 있는 소프트웨어

1960 ~ 1970

http://www.flickr.com/photos/9479603@N02/4132062834

1. 오픈소스•1960 ~ 1970

•하드웨어 판매가 핵심

•소프트웨어의 코드는 공유하는 문화

• FORTRAN, COBOL, Algol

1970 ~ 1980 유닉스(UNIX) 탄생

http://www.flickr.com/photos/9479603@N02/4143361191/

1. 오픈소스•1970 ~ 1980

• 70년대 초반 벨 연구소 직원인 켄 톰슨, 데니스 리치, 더글러스 매클로리 등이 처음 개발

•AT&T를 비롯한 여러 회사들과 버클리대학(UC Berkeley) 등 비영리 단체들이 개발한 다양한 버전

1. 오픈소스

1980 ~ 1990 상용 소프트웨어

1. 오픈소스•1980 ~ 1990

•소프트웨어 저작권에 대한 인지, 시작된 상업용 소프트웨어 시대

•빌게이츠 - 컴퓨터 애호가들에게 보내는 공개 편지 “Open Letter to Hobbyists”

1984 ~ 2000 자유소프트웨어의 성행 리차드 스톨먼, GNU 선언

1. 오픈소스•1985 - GNU 선언문을 발표

•유닉스에 대항한 자유로운 대안을 만들기 위한 의지를 말한 것

• Free Software 운동 후 자유소프트웨어재단(FSF) 설립

1. 오픈소스•Free = 무료

•사용

•수정

•재배포

•에 자유로운 것!

리눅스 토발즈 리눅스(Linux) 탄생

1. 오픈소스•리눅스(Linux) 1991~

•리눅스는 핀란드 헬싱키 대학의 대학원생인, 리누스 토발즈가 취미로 개발한 커널

•현재 200여 종류가 넘는 배포판이 존재

1. 오픈소스•1998년 - OSI(Open Source Initiative)

•오픈소스 : 1998년 2월 3일에 넷스케이프 브라우저의 코드에 대해 어떠한 형태로 공개할까하는 전략회의에서 붙여진 용어

오픈소스가 주류로!

1. 오픈소스•2000 ~ 2010

•많은 기업이 오픈소스를 사용함

•구글, 아마존, 넷플릭스, 인텔 등

1. 오픈소스•현재는 대세!!

•OS ( 리눅스, 윈도우즈, OSX )

•브라우져 ( 크롬, 파이어폭스, 사파리 )

•모바일 OS (안드로이드, 타이젠, 심비안, iOS)

•임베디드 기기

•백엔드 서버 소프트웨어 ( 웹서버, 데이터베이스, NoSQL )

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

2. 왜 오픈소스 활동을 하는가?

•오픈소스를 바라보는 다양한 시각들

•개발자

•기업

•정부

• 일반사용자

2. 왜 오픈소스 활동을 하는가?•오픈소스를 바라보는 개발자

•사용

•동작원리 이해, 분석

•함께 만들자

• 오픈소스 철학

• 개발 커리어

2. 왜 오픈소스 활동을 하는가?

오픈소스 활동의 오해

•오픈소스를 꼭, 반드시 해야만 한다?

•오픈소스 커미터들은 슈퍼개발자?!

2. 왜 오픈소스 활동을 하는가?

오픈소스를 꼭, 반드시 해야만 한다?

• 현실

• 한국 고등 교육(수능)

• 대학 컴퓨터공학 or 학원 커리큘럼

• 소프트웨어 엔지니어를 직업으로

• 월화수목금금금

2. 왜 오픈소스 활동을 하는가?

오픈소스를 꼭, 반드시 해야만 한다?

•하루는 24시간, 모든 것을 다할 수 없다.

•오픈소스 활동은 본인의 시간을 할애해야 한다.

•장애요소 = 남의 코드를 읽는 일, 실력, 언어의 장벽

2. 왜 오픈소스 활동을 하는가?오픈소스 커미터들은 슈퍼개발자?!

•슈퍼개발자로 바라보는 일부 시선이 있는듯,

•재미가 없다면 꾸준히 하기 어렵고, 개발을 정말 좋아하는 사람들이 아니면 이러한 활동들을 하기 어렵다

•오픈소스 커미터를 슈퍼개발자 혹은 동경의 대상으로 바라보기보다는, 활동자체를 즐기며 개발을 즐기는 사람이라고 보는 것이 객관적일듯 함

그럼에도,

초중급 개발자에게 오픈소스 활동강력 추천!

2. 왜 오픈소스 활동을 하는가?• 시인이 되고 싶은 사람은 다른 사람들의 시를

• 화가가 되고 싶은 사람은 다른 화가의 그림을

• 가수지망생도 다른 가수들의 노래를

• 왜 개발자들은 다른 사람들의 코드를 보고 배우려 하지 않을까?

2. 왜 오픈소스 활동을 하는가?• 소프트웨어는 프로그래밍언어로 표현되고,읽기 좋은 코드를 작성하는 것이 소프트웨어 엔지니어로써의 능력

• 좋은 오픈소스는 코드 품질을 생각하며 읽기 쉽게 작성 됨

• 건축에서도 건축물을 만드는데 그치지 않고, 건축물이 유용하며 견고하며 아름다움이 있어야 한다고 함

• 건축의 3요소

• 유용성(utilitas)

• 견고함(firmitas)

• 아름다움(venustas)

좋은 오픈소스 프로젝트들은 어디 있을까?

http://www.flickr.com/photos/infomatique/5846738468/

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

3. 오픈소스 프로젝트 찾기• 구글링

• 프로젝트 호스팅 사이트

• GitHub

• BitBucket

• Google Code

• CodeProject

• SourceForge

• Naver nForge

!

• 오픈소스 재단

• The Apache Software Foundation(ASF)

• Linux Foundation

• Mozilla Foundation

• Eclipse Foundation

• JBoss

• Software Freedom Conservancy

3. 오픈소스 프로젝트 찾기 프로젝트 호스팅 사이트

github.com

3. 오픈소스 프로젝트 찾기 프로젝트 호스팅 사이트

dev.naver.com

3. 오픈소스 프로젝트 찾기 오픈소스 재단

• 왜 재단이 만들어질까?

http://www.flickr.com/photos/worldseriesboxing/6813062511

3. 오픈소스 프로젝트 찾기 오픈소스 재단

• 프로젝트를 할 수 있는 인프라 제공

• 컨퍼런스, 이벤트, 기부금 등 세금 관련된 일들 처리

• 라이선스, 특허 등 법률적 문제 대응

apache.org

3. 오픈소스 프로젝트 찾기 오픈소스 재단, 아파치 사례

• ASF == The Apache Software Foundation

• ASF 이전에는 “The Apache Group”

• 정형화되고 법률적인 지원을 받길 원했고 설립함(1999)

• Governed solely by members

• 초기에는 21명의 멤버로 구성

• 초기 2개 프로젝트 httpd, Concom

• 운영에 필요한 서버와 서비스는 기부 받음

3. 오픈소스 프로젝트 찾기 오픈소스 재단, 아파치 사례

3. 오픈소스 프로젝트 찾기 오픈소스 재단, 아파치 사례

• httpd

• Tomcat

• Lucene

• Hadoop

• ActiveMQ

• Ant

• Maven

• Cassandra

• CloudStack

• HBase

• Hive

• Ivy

• JMeter

• Mahout

• Zookeeper

3. 오픈소스 프로젝트 찾기

베스트 오픈소스 프로젝트 소개 findbestopensource.com

3. 오픈소스 프로젝트 찾기

오픈소스 검색엔진, 랭킹 ohloh.net

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

의견결정%

마일스톤%

구현%

통합%

사용%

버그%

개선사항%

4. 오픈소스 개발 프로세스

4. 오픈소스 개발 프로세스•오픈소스 프로젝트라고 ‘엄청’나게 특별하지는 않음 = 사람들이 하는 프로젝트

•개발자들이 각국에 있어 원격으로 일하는 경우가 많아 이를 해결하려고 인프라가 하나씩 생김

•인프라 : SCM, 이슈트래커, 위키, 메일링리스트, IRC

4. 오픈소스 개발 프로세스 SCM

•SCM(Source Code Management system)

•중앙 관리형

•CVS

• SVN

•분산 관리형

•Git

•Mercurial

4. 오픈소스 개발 프로세스 이슈트래커

4. 오픈소스 개발 프로세스 위키(WIKI)

4. 오픈소스 개발 프로세스 메일링리스트

4. 오픈소스 개발 프로세스 IRC

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

5. 오픈소스 프로젝트 참여

5. 오픈소스 프로젝트 참여

5. 오픈소스 프로젝트 참여•시작은 가볍게, 자신감 가지고 시작하자!

1. 오픈소스 사용법 블로깅

2. 메일링리스트 구독

3. 개발자 커뮤니티(메일링, stackoverflow 등)에서 집답하기

4. 버그 등록하기

5. 패치보내기

5. 오픈소스 프로젝트 참여1) 오픈소스 사용법 블로깅

5. 오픈소스 프로젝트 참여2) 메일링리스트 구독

5. 오픈소스 프로젝트 참여3) 개발자 커뮤니티(메일링, stackoverflow 등)에서 질답하기

5. 오픈소스 프로젝트 참여4) 버그 등록하기•버그는 재현할 수 있어야 함

•재현할 수 있는 상황과 상태에 대해서 기술

5. 오픈소스 프로젝트 참여5) 패치보내기•패치의 종류

•버그수정

•향상

•새로운 기능

•예의

•개선사항에 대해서 메일링으로 사전 논의

•프로젝트 운영방식

•코드컨벤션

•마인드

•상처받지 말자, 쿨해지자! ;)

5. 오픈소스 프로젝트 참여

프로젝트에서 영향력을 갖기 위해서는...

컨트리뷰션 활동 및 품질

패치를 넘어방향성 논의와 제시

커뮤니케이션

관심꾸준함

개인 희생

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

6. 깃(Git) 그리고 깃헙(Github)•깃(Git)

•분산관리형 소스 버전시스템

•리눅스 토발즈가 리눅스 프로젝트에서 사용하던 Bitkeeper 가 불편해 만듦

•http://git-scm.com/

6. 깃(Git) 그리고 깃헙(Github)•깃헙(Github)

•Git 을 기반의 코드 및 프로젝트 호스팅 사이트

•Git을 사용하다보며 쉽게 관리해줄 수 있는 웹콘솔이 필요해 깃헙을 만듦

• 2008년 2월 서비스를 시작

6. 깃(Git) 그리고 깃헙(Github)

6. 깃(Git) 그리고 깃헙(Github)

6. 깃(Git) 그리고 깃헙(Github)

6. 깃(Git) 그리고 깃헙(Github)

6. 깃(Git) 그리고 깃헙(Github)

목차1.오픈소스

2.왜 오픈소스 활동을 하는가?

3.오픈소스 프로젝트 찾기

4.오픈소스 개발 프로세스

5.오픈소스 프로젝트 참여

6.깃(Git) 그리고 깃헙(Github)

7.오픈소스 그리고 기회

7. 오픈소스 그리고 기회

•2012.09 : 오픈소스 프로젝트 컨트리뷰션

•2012.10 : KTH H3

•2013.02 : OSCON 발표제안

•2013.04 : OSCON 발표제안 수락됨

•2013.07 : OSCON 발표

•2013.10 : 아파치 인큐베이터 프로젝트

Source : http://www.flickr.com/photos/hugojcardoso/4672565780/

1년전 과거로!

Contributing to

Just Do it

Minwoo Park

Hi! Did you submit something to OSCON this year? proposals close in a few hours…

nope :)

you should!

•baas.io 와 Usergrid Project

•동아시아의 오픈소스 얘기...

OSCON 2013 Call for Participation - Video

소프트웨어산업

오픈소스소프트웨어

상업적소프트웨어…

소프트웨어산업

오픈소스소프트웨어

상업적소프트웨어…오픈소스 프로젝트로

개인이 성장하길기원합니다

Thank you진성주 ( @geekbeast ) sungju@softwaregeeks.org

Recommended