SlideShare uma empresa Scribd logo
1 de 86
Baixar para ler offline
학교에선 알려주지 않는

오픈 소스 이야기
박치완
Data Mining Lab. @ SNU CSE
2016. 02. 26
2
발표자 소개
박치완 <chiwanpark@apache.org>
서울대학교 컴퓨터공학부 데이터 마이닝 연구실
대용량 데이터 처리에 관심이 많은 학생
Apache Flink Committer (since Jun. 2015)
2
발표자 소개
박치완 <chiwanpark@apache.org>
서울대학교 컴퓨터공학부 데이터 마이닝 연구실
대용량 데이터 처리에 관심이 많은 학생
Apache Flink Committer (since Jun. 2015)
대용량 그래프 데이터 처리, 

스트림 데이터 처리, 기계 학습
분야에 관심 있으시면

http://datalab.snu.ac.kr
3
Apache Flink
스트리밍 데이터 처리 기술을 바탕으로 만든

대용량 데이터 분산 처리 플랫폼
http://flink.apache.org
3
Apache Flink
스트리밍 데이터 처리 기술을 바탕으로 만든

대용량 데이터 분산 처리 플랫폼
http://flink.apache.org
Introduction to Apache Flink

http://j.mp/ossdevconf-2015-park
4
오늘의 할 얘기
1. 오픈 소스, 그게 뭐죠?
2. 학생이 오픈 소스 프로젝트에 참여하면 좋은 점
3. 오픈 소스 프로젝트에 기여를 위한 몇 가지 팁
4. 오픈 소스 기여를 도와주는 다양한 프로그램
5
오픈 소스, 그게 뭐죠?
6
오픈 소스 소프트웨어에 대한 오해 (1)
오픈 소스는 소프트웨어의 무료 사용에 관한 것이다.
http://www.mememaker.net/meme/did-someone-say...-free/
7
오픈 소스 소프트웨어에 대한 오해 (2)
오픈 소스는 소프트웨어의 소스 코드 공개에 관한 것이다.
http://instacod.es/105327
8
오픈 소스 소프트웨어에 대한 오해 (3)
둘 다다.
http://memegenerator.net/instance/59387679
9
The Open Source Definition
https://opensource.org/osd
10
The Open Source Definition
1. Free Redistribution
2. Source Code
3. Derived Works
4. Integrity of The Author’s Source Code
5. No Discrimination Against Person or Groups
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software
10.License Must Be Technology-Neutral
11
The Open Source Definition
1. 자유로운 재배포
2. 소스 코드
3. 파생 저작물
4. 저작자의 소스 코드 원형 유지
5. 개인 및 단체에 대한 차별 금지
6. 사용 분야에 대한 차별 금지
7. 사용 허가의 배포
8. 특정 제품에만 유효한 사용 허가의 금지
9. 다른 소프트웨어를 제한하는 사용 허가의 금지
10.사용 허가의 기술 중립성
http://korea.gnu.org/documents/copyleft/osd-korean.html
12
오픈 소스, 그게 뭐죠?
오픈 소스는 소프트웨어를

수정할 수 있는 자유를 주려는 것이다.
https://speakerdeck.com/minhee/opeun-soseu-yaegi
13
오픈 소스, 그게 뭐죠?
자유롭게 수정해야하니까…
• 재배포 금지하면 안됨
• 소스 코드로 배포해야함
• 코드 내의 라이센스 문구 수정하면 안됨
• 누구든 수정할 수 있어야 함
• …
14
중요하니까 두 번 말합니다.
오픈 소스는 소프트웨어를

수정할 수 있는 자유를 주려는 것이다.
15
학생이 참여해서 얻을 수 있는 것
16
학생 A: 오픈 소스 하면 좋냐?
학생과 오픈 소스
http://www.memecreator.org/meme/so-if-i-just-do-the-open-
source-will-my-grade-be-improved
17
컴퓨터과학 전공 학생이 듣는 주요과목
• 컴퓨터프로그래밍
• 객체지향프로그래밍
• 자료구조
• 운영체제
• 알고리즘분석
• 컴퓨터아키텍쳐
• 데이터베이스
• 오토마타형식언어
• 프로그래밍언어구조론
• …
18
현업에서 주로 다루는 기술
19
현업에서 주로 다루는 기술
• C, C++ 이외의 다양한 언어 (Python, Java, PHP, …)
• 스마트폰 어플 개발 환경 (Android, iOS, Tizen, …)
• 웹 프레임워크 (Django, Spring, Play, …)
• 프론트엔드 관련 패키지 (jQuery, React.js, Jindo, …)
• 객체 관계 매핑 (Hibernate, SQLAlchemy, …)
• 빌드 및 배포 자동화 (Maven, Gradle, SBT, Fabric, …)
• 버전 관리 시스템 (Git, Mercurial, Subversion, …)
• …
20
대학교 컴퓨터과학과의 교육 목표
A대 컴퓨터공학부
컴퓨터공학부는 컴퓨터 공학의 기초를 이루는 컴
퓨터 구조 및 설계, 소프트웨어 시스템, 네트워크,
컴퓨터 이론은 물론, … (중략) … 새로운 분야를
선도적으로 개척해 나가고 있다.
21
대학교 컴퓨터과학과의 교육 목표
B대 전산학부
전산학부는 확고한 이론적 기반을 바탕으로
미래 사회 컴퓨팅 패러다임의 변화를 주도하
는 인간 중심의 컴퓨팅 연구와 교육을 통하여
인류를 위한 컴퓨팅과 정보 서비스 기술의 무
한한 가능성을 추구한다.
22
이론 중심의 교육과정
• 많은 학부 교과과정이 이론을 잘 학습하는 것에 무
게를 두고 있어서, 전체적인 커리큘럼이 이론 중심!
• 실습은 각 과목별로 진행하는 텀 프로젝트나 졸업
프로젝트가 전부

(작성한 코드에 대한 피드백이 전혀 없는 것은 덤)
22
이론 중심의 교육과정
• 많은 학부 교과과정이 이론을 잘 학습하는 것에 무
게를 두고 있어서, 전체적인 커리큘럼이 이론 중심!
• 실습은 각 과목별로 진행하는 텀 프로젝트나 졸업
프로젝트가 전부

(작성한 코드에 대한 피드백이 전혀 없는 것은 덤)
물론, 이론을 잘 학습하는 것은

매우 매우 중요합니다!
23
쓰기 중심의 교육과정
• 현대 프로그래밍 교육과정은 쓰기 중심
• 잘 짜는 것만 중요하게 생각하고, 다른 사람의 코드를
읽는 훈련은 안함
• 전공자들도 소스 코드를 읽는 것을 어려워 함

(자신이 작성한 코드라 하더라도!)
24
학부 과정을 착실하게 이수하면…
https://meensspeaks.wordpress.com/2015/10/15/the-browsing-position/
25
학부 과정을 착실하게 이수하면…
• 컴퓨터과학 분야 이론의 기초를 잘 다질 수 있음
• 그러나 코드를 다루는 능력은 별로 향상되지 않음
26
오픈 소스로 모자른 부분을 채울 수 있다!
http://www.bigdatatrunk.com/open-source/
27
오픈 소스 프로젝트에 참여하면…
• 학교에서 배운 이론을 실제로 적용해 볼 수 있음
• 다양한 사람들과 협업하는 경험을 얻을 수 있음
• 고수가 작성한 코드를 읽어볼 수 있음
• 다른 사람이 내 코드를 리뷰해 줌

(나도 다른 사람의 코드를 읽으며 리뷰할 수 있음)
• 학교에서 아무도 신경 쓰지 않는 것의 중요함을 알게 됨

(문서화, 테스트 케이스 등)
• …
28
사례 1
• 자료 구조 수업에서 Hash table에 대해서 배움
• Java는 HashMap이라는 Hash table 구현을 제공하지만,
때때로 직접 만들어 써야할 때도 있음
• 빠른 속도가 필요한 경우
• Garbage collection의 영향에서 벗어나고 싶은 경우
• Flink도 Hash table을 직접 구현한 MutableHashTable
을 만들어서 씀
• 그런데 여기에 버그가 있었음
Background
29
https://github.com/apache/flink/pull/751
버그를 수정하는 패치 제출!
29
https://github.com/apache/flink/pull/751
버그를 수정하는 패치 제출!
테스트를 추가해
줄 수 있어?
30
유닛 테스트
• 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차
• 모든 함수와 메서드에 대한 테스트 케이스를 작성하는 절차
• 꼼꼼히 테스트 케이스를 만들어두면
• 리팩토링이 쉬움
• 디버깅이 쉬움
• 빌드/테스트 자동화 툴과 함께 적용되면 더욱 좋음
https://ko.wikipedia.org/wiki/유닛_테스트
31
https://github.com/apache/flink/pull/751/files
치명적인 버그이나 쉬운 수정
32
https://github.com/apache/flink/pull/751/files
쉽지 않은 테스트 케이스 추가
33
사례 2
Background
• Flink는 분석할 데이터를 CSV 파일에서 불러오는 기능을
제공
• 미리 제공되는 Tuple 객체는 지원을 했으나, 일반적인 Java
객체(POJO)는 지원하지 않았음
• Java 객체 정보는 Java Reflection API를 통해 가져올 수
있다는 사실을 공부하고, 패치 작성
34
https://github.com/apache/flink/pull/426
패치 제출!
34
https://github.com/apache/flink/pull/426
패치 제출!
필드 순서를 결정하는

방법이 필요해
35
35
JPA 같은 다른 프로젝트에서는

annotation을 자주 쓰니까

그런 API도 만들자
36
• Flink에는 FlinkML이라는 기계 학습 라이브러리가 있음
• FlinkML에 두 벡터의 거리 계산을 위한 구현이 없었음
• 두 벡터의 거리 계산은 선형대수 수업에서 배움
• 구현도 인터넷에 참조할 수 있는 것이 많이 있음
• 쉬운 작업이니 패치 제출
사례 2
Background
37
https://github.com/apache/flink/pull/629
패치 제출!
38
그런데 또 버그가…
39
사례 4
영어를 못해도 괜찮아요.
친절하게 틀린 부분을 알려 줍니다.
https://github.com/apache/flink/pull/1500
40
문서 4줄 추가 했는데…
40
문서 4줄 추가 했는데…
40
문서 4줄 추가 했는데…
40
문서 4줄 추가 했는데…
41
기여를 통해 얻어 갈 수 있는 것 (요약)
• 다른 사람이 작성한 코드를 읽는 능력
• 기여에 필요한 새로운 지식
• 커뮤니티의 높은 기준을 바탕으로 한 내가 작성한 코드에 대
한 꼼꼼한 리뷰 (영어 실력은 덤)
• 버전 관리 시스템의 고급 기능 (cherry-pick, rebase, …)
• 문서화와 테스트 케이스 작성 요령
• …
42
기여는 어떻게?
오픈 소스 프로젝트 기여를 위한 몇 가지 팁
43
버그 리포팅
• 개발을 하다보면 필연적으로 오픈 소스 라이브러리나

소프트웨어를 사용하게 됨
• 자주 쓰다 보면 버그나 불편한 점을 찾게 됨
• 버그를 발견하면 버그 리포팅! (버그 리포팅도 중요한 기여 중 하나)
• 기대한 행동과 실제 현상을 적어주면 아주 좋음
44
https://issues.apache.org/jira/browse/FLINK-1937
버그 리포팅 예시
45
뉴비를 위한 문서 읽기
규모가 좀 되는 프로젝트라면

새로운 기여자가 알아야 될 사항을 정리해 둔 문서가 있음
https://flink.apache.org/how-to-contribute.html
46
초보자용 이슈
처음 기여하는 사람을 위해 초보자용 이슈를

남겨두는 프로젝트도 있음
46
초보자용 이슈
처음 기여하는 사람을 위해 초보자용 이슈를

남겨두는 프로젝트도 있음
47
초보자용 이슈
47
초보자용 이슈
48
일단, 메일을 보냅시다
http://goo.gl/qFgdgd
49
일단, 메일을 보냅시다
“나 어디에서 온 누구인데 너네 프로젝트 좀 좋은거 같아.

기여가 하고 싶은데 안내 좀 해줄 수 있니?”
• 오픈 소스 프로젝트를 운영하는 입장에서 사용자의
증가는 환영할 일
• 대부분 친절하게 응대해주므로 겁먹지 말 것
50
기다림이 필요합니다
• 오픈 소스 프로젝트의 운영 = 자원 봉사자들의 자발적 기여
• 응답은 빠르게, 그러나 답장은 늦을 수 있음
51
…
길게는 3개월, 6개월 씩 걸리는 이슈도 있음
51
…
길게는 3개월, 6개월 씩 걸리는 이슈도 있음
51
…
길게는 3개월, 6개월 씩 걸리는 이슈도 있음
52
시도 하세요
• 오픈 소스 소프트웨어도 사람이 만든 것
• 사소한 실수로 인한 버그, 쉽게 개선할 수 있는 것이
많이 존재
• 기여가 반영되는 과정을 1번만 경험하면, 이후에는
쉽게 지속 가능
그러니까, 일단 기여를 시도하세요.
53
이외에도…
오픈 소스 프로젝트의 기여를 도와주는

다양한 프로그램이 있습니다.
54
해외 컨퍼런스 참여 기회
Apache Big Data Europe 2015

ApacheCon: Europe 2015
54
해외 컨퍼런스 참여 기회
Apache Big Data Europe 2015

ApacheCon: Europe 2015
54
해외 컨퍼런스 참여 기회
Apache Big Data Europe 2015

ApacheCon: Europe 2015
54
해외 컨퍼런스 참여 기회
Apache Big Data Europe 2015

ApacheCon: Europe 2015
54
해외 컨퍼런스 참여 기회
Apache Big Data Europe 2015

ApacheCon: Europe 2015
55
해외 컨퍼런스 참여 기회
Flink Forward 2015
55
해외 컨퍼런스 참여 기회
Flink Forward 2015
55
해외 컨퍼런스 참여 기회
Flink Forward 2015
55
해외 컨퍼런스 참여 기회
Flink Forward 2015
56
회사에서도 좋게 봐줍니다
장태희, For 학생 & 취준생 오픈 소스와 커뮤니티, SOSCON 2015
(대학원에서도)
57
D2 CAMPUS FEST
http://d2campusfest.kr/
58
D2 CAMPUS FEST
• 오픈 소스 소프트웨어 경진 대회
• 나의 프로젝트를 오픈 소스로!
• 50만원에서 300만원의 상금
• 네이버 채용 특전
• 스터디 장소 및 서버 제공
• DEVIEW 2016 초대권
• D2 CAMPUS SEMINAR 발표 지원
• 프로젝트 홍보 지원
• …
59
Google Summer of Code
https://developers.google.com/open-source/gsoc/
60
Google Summer of Code
• 2005년부터 시작된 Google의 오픈 소스 기여 지원 프로그램
• 만 18세 이상의 학생이 여름 방학 동안 기여 활동 진행
• 기여하는 오픈 소스 커뮤니티에서 1명이 멘토로 참여
• 기여 활동 결과를 평가하고, 통과되면 $5500 (약 650만원) 지급
61
오픈 프론티어
http://devlab.oss.kr
62
오픈 프론티어
• NIPA에서 주관하는 오픈 소스 개발자 지원 프로그램
• 풀 타임, 파트 타임 기여자로 나누어 매달 장려금 지급
• 개발에 필요한 장비 구매 비용 지원
• 다양한 현업 개발자 분에게 멘토링을 받을 수 있도록
필요 경비 지원
• 24시간 개방 되어 있는 개발 공간 제공 (누리꿈스퀘어)
• 세미나, 소모임 등을 할 수 있도록 공간 (토즈) 대여

비용 지원
• 가상 개발 환경 비용 지원
• …
63
Summary
• 오픈 소스 = 수정할 자유가 있는 소프트웨어
• 오픈 소스 프로젝트 기여를 통해 많은 것을 얻을 수 있음
• 내 코드에 대한 리뷰
• 이론의 실제 적용
• 적용하려면 탄탄한 이론적 배경이 필요!
• 기여에 필요한 다양한 지식
• 다양한 사람들과의 협업 경험
• 시도하기만 하면, 기여하는 것은 크게 어렵지 않음
• 다양한 지원 프로그램도 있음!
64
Thank you
http://j.mp/d2-campus-seminar-4th-park
65
Appendix. 도움이 되는 자료
• 홍민희, “오픈 소스 얘기”
• https://speakerdeck.com/minhee/opeun-soseu-yaegi
• 서상현, “How to Contribute to OSS”
• http://www.slideshare.net/sanxiyn/how-to-contribute-to-oss
• 장태희, “For 학생 & 취준생 오픈소스와 커뮤니티”
• http://www.soscon.net/download/day28/ST1/F_28_1650_장태희.pdf
• 장혜식, “구글 Summer of Code 필승전략(?)”
• http://highthroughput.org/wp/cb-1077/
• 장혜식, “오픈소스 프로젝트 생존 가이드”
• http://highthroughput.org/wp/cb-1059/
• 빈꿈, “한 토종 개발자의 실리콘밸리 구직 체험기…”
• http://ppss.kr/archives/7676
66
Appendix. 도움이 되는 자료 (cont.)
• 에릭 레이먼드, “성당과 시장”
• http://www.hanbit.co.kr/ebook/look.html?isbn=9788968486562
• 송우일, “꾸준히, 자유롭게, 즐겁게: 한국 오픈 소스 개발자
들 이야기”
• http://osdi.insightbook.co.kr/
• 허준회, “만화로 나누는 오픈소스 이야기”
• http://www.joone.net/

Mais conteúdo relacionado

Mais procurados

개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님NAVER D2
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다Jinho Jung
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Taehoon Kim
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁KWANGIL KIM
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지Changje Jeong
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기Changyol BAEK
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기YoungjikYoon
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...Amazon Web Services Korea
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception상현 조
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버ByungChun2
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기iFunFactory Inc.
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 

Mais procurados (20)

개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님개발을잘하고싶어요-네이버랩스 송기선님
개발을잘하고싶어요-네이버랩스 송기선님
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기훌륭한 개발자로 성장하기
훌륭한 개발자로 성장하기
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기
Gradle Kotlin 컨벤션 플러그인으로 효율적으로 멀티 모듈 관리하기
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
게임 디자이너와 게임 서버
게임 디자이너와 게임 서버게임 디자이너와 게임 서버
게임 디자이너와 게임 서버
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 

Destaque

Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님NAVER D2
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
네트워크의 개념
네트워크의 개념네트워크의 개념
네트워크의 개념Chulgyu Shin
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVAcooddy
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)DK Lee
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTPNAVER D2
 
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)Amazon Web Services Korea
 

Destaque (8)

Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님Spring Framework 튜토리얼 - 네이버 최영목님
Spring Framework 튜토리얼 - 네이버 최영목님
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
네트워크의 개념
네트워크의 개념네트워크의 개념
네트워크의 개념
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVA
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
 
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
AWS와 Open Source - 윤석찬 (OSS개발자 그룹)
 

Semelhante a 학교에선 알려주지 않는 오픈소스이야기 - 박치완님

2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래Sung-tae Ryu
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)NAVER D2
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)Channy Yun
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기Jay Park
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
대학 교육을 통한 오픈 소스 커뮤니티 육성
대학 교육을 통한 오픈 소스 커뮤니티 육성대학 교육을 통한 오픈 소스 커뮤니티 육성
대학 교육을 통한 오픈 소스 커뮤니티 육성Channy Yun
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)mosaicnet
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
개발자의 첫단계
개발자의 첫단계개발자의 첫단계
개발자의 첫단계yejiHong7
 
오픈 강의 동영상(OER) 활용 수업 사례
오픈 강의 동영상(OER) 활용 수업 사례오픈 강의 동영상(OER) 활용 수업 사례
오픈 강의 동영상(OER) 활용 수업 사례Ji Lee
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projectsKevin Kim
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다이상한모임
 
Understanding of Open Source
Understanding of Open SourceUnderstanding of Open Source
Understanding of Open SourceKevin Kim
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기Seokjae Lee
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기SeokhwanMoon
 

Semelhante a 학교에선 알려주지 않는 오픈소스이야기 - 박치완님 (20)

2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
The four myths of open source (2013)
The four myths of open source (2013)The four myths of open source (2013)
The four myths of open source (2013)
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
about Programmer 2018
about Programmer 2018about Programmer 2018
about Programmer 2018
 
대학 교육을 통한 오픈 소스 커뮤니티 육성
대학 교육을 통한 오픈 소스 커뮤니티 육성대학 교육을 통한 오픈 소스 커뮤니티 육성
대학 교육을 통한 오픈 소스 커뮤니티 육성
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)공개SW와 개발방법론(오픈소스 성공요인 사례)
공개SW와 개발방법론(오픈소스 성공요인 사례)
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
개발자의 첫단계
개발자의 첫단계개발자의 첫단계
개발자의 첫단계
 
오픈 강의 동영상(OER) 활용 수업 사례
오픈 강의 동영상(OER) 활용 수업 사례오픈 강의 동영상(OER) 활용 수업 사례
오픈 강의 동영상(OER) 활용 수업 사례
 
The growth process of open source projects
The growth process of open source projectsThe growth process of open source projects
The growth process of open source projects
 
EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다EMOCON 2015 - 품질과 테스트는 다르다
EMOCON 2015 - 품질과 테스트는 다르다
 
Understanding of Open Source
Understanding of Open SourceUnderstanding of Open Source
Understanding of Open Source
 
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
Pycon Korea 2018 - 비개발자에게 파이썬 가르치기
 

Mais de NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Mais de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Último

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Último (6)

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

학교에선 알려주지 않는 오픈소스이야기 - 박치완님

  • 1. 학교에선 알려주지 않는
 오픈 소스 이야기 박치완 Data Mining Lab. @ SNU CSE 2016. 02. 26
  • 2. 2 발표자 소개 박치완 <chiwanpark@apache.org> 서울대학교 컴퓨터공학부 데이터 마이닝 연구실 대용량 데이터 처리에 관심이 많은 학생 Apache Flink Committer (since Jun. 2015)
  • 3. 2 발표자 소개 박치완 <chiwanpark@apache.org> 서울대학교 컴퓨터공학부 데이터 마이닝 연구실 대용량 데이터 처리에 관심이 많은 학생 Apache Flink Committer (since Jun. 2015) 대용량 그래프 데이터 처리, 
 스트림 데이터 처리, 기계 학습 분야에 관심 있으시면
 http://datalab.snu.ac.kr
  • 4. 3 Apache Flink 스트리밍 데이터 처리 기술을 바탕으로 만든
 대용량 데이터 분산 처리 플랫폼 http://flink.apache.org
  • 5. 3 Apache Flink 스트리밍 데이터 처리 기술을 바탕으로 만든
 대용량 데이터 분산 처리 플랫폼 http://flink.apache.org Introduction to Apache Flink
 http://j.mp/ossdevconf-2015-park
  • 6. 4 오늘의 할 얘기 1. 오픈 소스, 그게 뭐죠? 2. 학생이 오픈 소스 프로젝트에 참여하면 좋은 점 3. 오픈 소스 프로젝트에 기여를 위한 몇 가지 팁 4. 오픈 소스 기여를 도와주는 다양한 프로그램
  • 8. 6 오픈 소스 소프트웨어에 대한 오해 (1) 오픈 소스는 소프트웨어의 무료 사용에 관한 것이다. http://www.mememaker.net/meme/did-someone-say...-free/
  • 9. 7 오픈 소스 소프트웨어에 대한 오해 (2) 오픈 소스는 소프트웨어의 소스 코드 공개에 관한 것이다. http://instacod.es/105327
  • 10. 8 오픈 소스 소프트웨어에 대한 오해 (3) 둘 다다. http://memegenerator.net/instance/59387679
  • 11. 9 The Open Source Definition https://opensource.org/osd
  • 12. 10 The Open Source Definition 1. Free Redistribution 2. Source Code 3. Derived Works 4. Integrity of The Author’s Source Code 5. No Discrimination Against Person or Groups 6. No Discrimination Against Fields of Endeavor 7. Distribution of License 8. License Must Not Be Specific to a Product 9. License Must Not Restrict Other Software 10.License Must Be Technology-Neutral
  • 13. 11 The Open Source Definition 1. 자유로운 재배포 2. 소스 코드 3. 파생 저작물 4. 저작자의 소스 코드 원형 유지 5. 개인 및 단체에 대한 차별 금지 6. 사용 분야에 대한 차별 금지 7. 사용 허가의 배포 8. 특정 제품에만 유효한 사용 허가의 금지 9. 다른 소프트웨어를 제한하는 사용 허가의 금지 10.사용 허가의 기술 중립성 http://korea.gnu.org/documents/copyleft/osd-korean.html
  • 14. 12 오픈 소스, 그게 뭐죠? 오픈 소스는 소프트웨어를
 수정할 수 있는 자유를 주려는 것이다. https://speakerdeck.com/minhee/opeun-soseu-yaegi
  • 15. 13 오픈 소스, 그게 뭐죠? 자유롭게 수정해야하니까… • 재배포 금지하면 안됨 • 소스 코드로 배포해야함 • 코드 내의 라이센스 문구 수정하면 안됨 • 누구든 수정할 수 있어야 함 • …
  • 16. 14 중요하니까 두 번 말합니다. 오픈 소스는 소프트웨어를
 수정할 수 있는 자유를 주려는 것이다.
  • 18. 16 학생 A: 오픈 소스 하면 좋냐? 학생과 오픈 소스 http://www.memecreator.org/meme/so-if-i-just-do-the-open- source-will-my-grade-be-improved
  • 19. 17 컴퓨터과학 전공 학생이 듣는 주요과목 • 컴퓨터프로그래밍 • 객체지향프로그래밍 • 자료구조 • 운영체제 • 알고리즘분석 • 컴퓨터아키텍쳐 • 데이터베이스 • 오토마타형식언어 • 프로그래밍언어구조론 • …
  • 21. 19 현업에서 주로 다루는 기술 • C, C++ 이외의 다양한 언어 (Python, Java, PHP, …) • 스마트폰 어플 개발 환경 (Android, iOS, Tizen, …) • 웹 프레임워크 (Django, Spring, Play, …) • 프론트엔드 관련 패키지 (jQuery, React.js, Jindo, …) • 객체 관계 매핑 (Hibernate, SQLAlchemy, …) • 빌드 및 배포 자동화 (Maven, Gradle, SBT, Fabric, …) • 버전 관리 시스템 (Git, Mercurial, Subversion, …) • …
  • 22. 20 대학교 컴퓨터과학과의 교육 목표 A대 컴퓨터공학부 컴퓨터공학부는 컴퓨터 공학의 기초를 이루는 컴 퓨터 구조 및 설계, 소프트웨어 시스템, 네트워크, 컴퓨터 이론은 물론, … (중략) … 새로운 분야를 선도적으로 개척해 나가고 있다.
  • 23. 21 대학교 컴퓨터과학과의 교육 목표 B대 전산학부 전산학부는 확고한 이론적 기반을 바탕으로 미래 사회 컴퓨팅 패러다임의 변화를 주도하 는 인간 중심의 컴퓨팅 연구와 교육을 통하여 인류를 위한 컴퓨팅과 정보 서비스 기술의 무 한한 가능성을 추구한다.
  • 24. 22 이론 중심의 교육과정 • 많은 학부 교과과정이 이론을 잘 학습하는 것에 무 게를 두고 있어서, 전체적인 커리큘럼이 이론 중심! • 실습은 각 과목별로 진행하는 텀 프로젝트나 졸업 프로젝트가 전부
 (작성한 코드에 대한 피드백이 전혀 없는 것은 덤)
  • 25. 22 이론 중심의 교육과정 • 많은 학부 교과과정이 이론을 잘 학습하는 것에 무 게를 두고 있어서, 전체적인 커리큘럼이 이론 중심! • 실습은 각 과목별로 진행하는 텀 프로젝트나 졸업 프로젝트가 전부
 (작성한 코드에 대한 피드백이 전혀 없는 것은 덤) 물론, 이론을 잘 학습하는 것은
 매우 매우 중요합니다!
  • 26. 23 쓰기 중심의 교육과정 • 현대 프로그래밍 교육과정은 쓰기 중심 • 잘 짜는 것만 중요하게 생각하고, 다른 사람의 코드를 읽는 훈련은 안함 • 전공자들도 소스 코드를 읽는 것을 어려워 함
 (자신이 작성한 코드라 하더라도!)
  • 27. 24 학부 과정을 착실하게 이수하면… https://meensspeaks.wordpress.com/2015/10/15/the-browsing-position/
  • 28. 25 학부 과정을 착실하게 이수하면… • 컴퓨터과학 분야 이론의 기초를 잘 다질 수 있음 • 그러나 코드를 다루는 능력은 별로 향상되지 않음
  • 29. 26 오픈 소스로 모자른 부분을 채울 수 있다! http://www.bigdatatrunk.com/open-source/
  • 30. 27 오픈 소스 프로젝트에 참여하면… • 학교에서 배운 이론을 실제로 적용해 볼 수 있음 • 다양한 사람들과 협업하는 경험을 얻을 수 있음 • 고수가 작성한 코드를 읽어볼 수 있음 • 다른 사람이 내 코드를 리뷰해 줌
 (나도 다른 사람의 코드를 읽으며 리뷰할 수 있음) • 학교에서 아무도 신경 쓰지 않는 것의 중요함을 알게 됨
 (문서화, 테스트 케이스 등) • …
  • 31. 28 사례 1 • 자료 구조 수업에서 Hash table에 대해서 배움 • Java는 HashMap이라는 Hash table 구현을 제공하지만, 때때로 직접 만들어 써야할 때도 있음 • 빠른 속도가 필요한 경우 • Garbage collection의 영향에서 벗어나고 싶은 경우 • Flink도 Hash table을 직접 구현한 MutableHashTable 을 만들어서 씀 • 그런데 여기에 버그가 있었음 Background
  • 33. 29 https://github.com/apache/flink/pull/751 버그를 수정하는 패치 제출! 테스트를 추가해 줄 수 있어?
  • 34. 30 유닛 테스트 • 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차 • 모든 함수와 메서드에 대한 테스트 케이스를 작성하는 절차 • 꼼꼼히 테스트 케이스를 만들어두면 • 리팩토링이 쉬움 • 디버깅이 쉬움 • 빌드/테스트 자동화 툴과 함께 적용되면 더욱 좋음 https://ko.wikipedia.org/wiki/유닛_테스트
  • 37. 33 사례 2 Background • Flink는 분석할 데이터를 CSV 파일에서 불러오는 기능을 제공 • 미리 제공되는 Tuple 객체는 지원을 했으나, 일반적인 Java 객체(POJO)는 지원하지 않았음 • Java 객체 정보는 Java Reflection API를 통해 가져올 수 있다는 사실을 공부하고, 패치 작성
  • 40. 35
  • 41. 35 JPA 같은 다른 프로젝트에서는
 annotation을 자주 쓰니까
 그런 API도 만들자
  • 42. 36 • Flink에는 FlinkML이라는 기계 학습 라이브러리가 있음 • FlinkML에 두 벡터의 거리 계산을 위한 구현이 없었음 • 두 벡터의 거리 계산은 선형대수 수업에서 배움 • 구현도 인터넷에 참조할 수 있는 것이 많이 있음 • 쉬운 작업이니 패치 제출 사례 2 Background
  • 45. 39 사례 4 영어를 못해도 괜찮아요. 친절하게 틀린 부분을 알려 줍니다. https://github.com/apache/flink/pull/1500
  • 46. 40 문서 4줄 추가 했는데…
  • 47. 40 문서 4줄 추가 했는데…
  • 48. 40 문서 4줄 추가 했는데…
  • 49. 40 문서 4줄 추가 했는데…
  • 50. 41 기여를 통해 얻어 갈 수 있는 것 (요약) • 다른 사람이 작성한 코드를 읽는 능력 • 기여에 필요한 새로운 지식 • 커뮤니티의 높은 기준을 바탕으로 한 내가 작성한 코드에 대 한 꼼꼼한 리뷰 (영어 실력은 덤) • 버전 관리 시스템의 고급 기능 (cherry-pick, rebase, …) • 문서화와 테스트 케이스 작성 요령 • …
  • 51. 42 기여는 어떻게? 오픈 소스 프로젝트 기여를 위한 몇 가지 팁
  • 52. 43 버그 리포팅 • 개발을 하다보면 필연적으로 오픈 소스 라이브러리나
 소프트웨어를 사용하게 됨 • 자주 쓰다 보면 버그나 불편한 점을 찾게 됨 • 버그를 발견하면 버그 리포팅! (버그 리포팅도 중요한 기여 중 하나) • 기대한 행동과 실제 현상을 적어주면 아주 좋음
  • 54. 45 뉴비를 위한 문서 읽기 규모가 좀 되는 프로젝트라면
 새로운 기여자가 알아야 될 사항을 정리해 둔 문서가 있음 https://flink.apache.org/how-to-contribute.html
  • 55. 46 초보자용 이슈 처음 기여하는 사람을 위해 초보자용 이슈를
 남겨두는 프로젝트도 있음
  • 56. 46 초보자용 이슈 처음 기여하는 사람을 위해 초보자용 이슈를
 남겨두는 프로젝트도 있음
  • 60. 49 일단, 메일을 보냅시다 “나 어디에서 온 누구인데 너네 프로젝트 좀 좋은거 같아.
 기여가 하고 싶은데 안내 좀 해줄 수 있니?” • 오픈 소스 프로젝트를 운영하는 입장에서 사용자의 증가는 환영할 일 • 대부분 친절하게 응대해주므로 겁먹지 말 것
  • 61. 50 기다림이 필요합니다 • 오픈 소스 프로젝트의 운영 = 자원 봉사자들의 자발적 기여 • 응답은 빠르게, 그러나 답장은 늦을 수 있음
  • 62. 51 … 길게는 3개월, 6개월 씩 걸리는 이슈도 있음
  • 63. 51 … 길게는 3개월, 6개월 씩 걸리는 이슈도 있음
  • 64. 51 … 길게는 3개월, 6개월 씩 걸리는 이슈도 있음
  • 65. 52 시도 하세요 • 오픈 소스 소프트웨어도 사람이 만든 것 • 사소한 실수로 인한 버그, 쉽게 개선할 수 있는 것이 많이 존재 • 기여가 반영되는 과정을 1번만 경험하면, 이후에는 쉽게 지속 가능 그러니까, 일단 기여를 시도하세요.
  • 66. 53 이외에도… 오픈 소스 프로젝트의 기여를 도와주는
 다양한 프로그램이 있습니다.
  • 67. 54 해외 컨퍼런스 참여 기회 Apache Big Data Europe 2015
 ApacheCon: Europe 2015
  • 68. 54 해외 컨퍼런스 참여 기회 Apache Big Data Europe 2015
 ApacheCon: Europe 2015
  • 69. 54 해외 컨퍼런스 참여 기회 Apache Big Data Europe 2015
 ApacheCon: Europe 2015
  • 70. 54 해외 컨퍼런스 참여 기회 Apache Big Data Europe 2015
 ApacheCon: Europe 2015
  • 71. 54 해외 컨퍼런스 참여 기회 Apache Big Data Europe 2015
 ApacheCon: Europe 2015
  • 72. 55 해외 컨퍼런스 참여 기회 Flink Forward 2015
  • 73. 55 해외 컨퍼런스 참여 기회 Flink Forward 2015
  • 74. 55 해외 컨퍼런스 참여 기회 Flink Forward 2015
  • 75. 55 해외 컨퍼런스 참여 기회 Flink Forward 2015
  • 76. 56 회사에서도 좋게 봐줍니다 장태희, For 학생 & 취준생 오픈 소스와 커뮤니티, SOSCON 2015 (대학원에서도)
  • 78. 58 D2 CAMPUS FEST • 오픈 소스 소프트웨어 경진 대회 • 나의 프로젝트를 오픈 소스로! • 50만원에서 300만원의 상금 • 네이버 채용 특전 • 스터디 장소 및 서버 제공 • DEVIEW 2016 초대권 • D2 CAMPUS SEMINAR 발표 지원 • 프로젝트 홍보 지원 • …
  • 79. 59 Google Summer of Code https://developers.google.com/open-source/gsoc/
  • 80. 60 Google Summer of Code • 2005년부터 시작된 Google의 오픈 소스 기여 지원 프로그램 • 만 18세 이상의 학생이 여름 방학 동안 기여 활동 진행 • 기여하는 오픈 소스 커뮤니티에서 1명이 멘토로 참여 • 기여 활동 결과를 평가하고, 통과되면 $5500 (약 650만원) 지급
  • 82. 62 오픈 프론티어 • NIPA에서 주관하는 오픈 소스 개발자 지원 프로그램 • 풀 타임, 파트 타임 기여자로 나누어 매달 장려금 지급 • 개발에 필요한 장비 구매 비용 지원 • 다양한 현업 개발자 분에게 멘토링을 받을 수 있도록 필요 경비 지원 • 24시간 개방 되어 있는 개발 공간 제공 (누리꿈스퀘어) • 세미나, 소모임 등을 할 수 있도록 공간 (토즈) 대여
 비용 지원 • 가상 개발 환경 비용 지원 • …
  • 83. 63 Summary • 오픈 소스 = 수정할 자유가 있는 소프트웨어 • 오픈 소스 프로젝트 기여를 통해 많은 것을 얻을 수 있음 • 내 코드에 대한 리뷰 • 이론의 실제 적용 • 적용하려면 탄탄한 이론적 배경이 필요! • 기여에 필요한 다양한 지식 • 다양한 사람들과의 협업 경험 • 시도하기만 하면, 기여하는 것은 크게 어렵지 않음 • 다양한 지원 프로그램도 있음!
  • 85. 65 Appendix. 도움이 되는 자료 • 홍민희, “오픈 소스 얘기” • https://speakerdeck.com/minhee/opeun-soseu-yaegi • 서상현, “How to Contribute to OSS” • http://www.slideshare.net/sanxiyn/how-to-contribute-to-oss • 장태희, “For 학생 & 취준생 오픈소스와 커뮤니티” • http://www.soscon.net/download/day28/ST1/F_28_1650_장태희.pdf • 장혜식, “구글 Summer of Code 필승전략(?)” • http://highthroughput.org/wp/cb-1077/ • 장혜식, “오픈소스 프로젝트 생존 가이드” • http://highthroughput.org/wp/cb-1059/ • 빈꿈, “한 토종 개발자의 실리콘밸리 구직 체험기…” • http://ppss.kr/archives/7676
  • 86. 66 Appendix. 도움이 되는 자료 (cont.) • 에릭 레이먼드, “성당과 시장” • http://www.hanbit.co.kr/ebook/look.html?isbn=9788968486562 • 송우일, “꾸준히, 자유롭게, 즐겁게: 한국 오픈 소스 개발자 들 이야기” • http://osdi.insightbook.co.kr/ • 허준회, “만화로 나누는 오픈소스 이야기” • http://www.joone.net/