Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
[DEVIEW 2017] 14일만에 GitHub 스타 1K 받은 차트 오픈소스 개발기Jae Sung Park
차트란 무엇일까요? 차트는 우리가 일상에서 아주 쉽게 자주 접하지만, 막상 개발자로써의 경험을 하는 동안 차트 개발(적용)은 쉽게 경험해 보기 어려운 영역이기도 합니다.
본 발표는 '차트'라는 영역에 대한 개발 경험기와 함께 오픈소스로 공개 후, 단 기간 내에 많은 주목을 받기 까지의 과정을 통해 어떻게 의미있는 성과를 글로벌 하게 얻을 수 있었는가에 대한 오픈소스 성장에 대한 경험도 같이 공유합니다.
이를 통해 다양한 오픈소스 개발 시도와 참여가 활발히 이루어 지는데 도움을 줄수 있게 되기를 기대 합니다.
비행기 설계를 왜 통일 해야 할까?
디자인 시스템을 하는 이유
비행기들이 다 용도가 다르다...어떻게 설계하지?
맥락이 다른 페이지와 패턴
경유지까지 아직 멀었다... 언제 수리하지?
디자인 시스템을 적용하는 시점
엔지니어랑 얘기해서 정비해야하는데...어떻게 수리하지?
디자인 시스템을 적용하는 프로세스
비행기 설계가 바뀐걸 어떻게 알리지?
디자인 시스템의 전파
4. 우연한 시작
당시 발표를 들으려고 참석
학교에서 알려주지 않는 오픈소스 이야기
당시 들은 이야기
- 오픈소스 기여 이야기
- 생각보다 어렵지 않아요!
- 재미있어 보이는 오픈소스 대회들
제 4회 D2 Campus Seminar
5. 지방 (예비) 개발자
집도 학교도 모두 지방
인턴, 컨퍼런스 참석 하기 힘듬 등등
실력을 보여줄/키울 수단이 필요
선배들의 조언
코드는 언제나 어디서나 정직
많이 코딩해보고, 많이 보여줘라
작성하는 모든 코드을 모두 GitHub으로 관리
실제로 인턴을 구하는데 도움이 되었음
6. JakeWharton/RxBinding
@CheckResult @NonNull
public static Observable<Object> clicks(@NonNull View view) {
checkNotNull(view, "view == null”);
return new ViewClickObservable(view);
}
@Override public void onClick(View v) {
if (!isDisposed()) {
observer.onNext(Notification.INSTANCE);
}
}
ViewClickObservable.javaRxView.java
새로운 개념을 이해하기 위해
6.2K
6K
Apache 2.0
RX
Reactive
Extension
11. 라이선스 정하기
Hall of shame
FFmpeg를 사용하면서 GPL 라이선스를 지키지 않은 프로그램 목록들
국내의 유명한 동영상 플레이어들도 목록에 있었거나 있다
오픈소스도 라이선스가 있다.
각자 고유한 범위를 가지고 있으니 적합한 것을 선택 해야 한다
모두 자유롭게 사용하자! MIT!
12. D2 CAMPUS FEST 2016 오픈소스 라이선스 中
아파치 라이선스를 사용한다면,
GPL 라이선스를 사용하는 라이브러리를 피하셔야 합니다.
여러 라이선스가 사용될 때는 더 제약이 강한 라이선스를 고르는게 좋습니다
D2 Fest 에서 알게 된 사실
https://www.apache.org/licenses/GPL-compatibility
Apache 2 software can therefore be included in GPLv3 projects,
because the GPLv3 license accepts our software into GPLv3 works.
However, GPLv3 software cannot be included in Apache projects.
GPL Compatibility
라이선스 주의점
13. 라이선스 수정
MIT에서 BSD-3로 라이선스 변경
사용할 라이브러리 선정기준 중 하나가 됨
Neither the name of the [organization] nor the names of its con-
tributors may be used to endorse or promote products derived
from this software without specific prior written permission.
사용하는 라이브러리 대부분 MIT 라이선스
Chart.js는 BSD-3-Clause-Clear로 배포
일반적으로 두 라이선스는 호환된다고 여겨짐
단, BSD-3의 다음 조건이 마음에 걸림
15. 디자인 패턴
MC를 V에서 떼어 놓기 어려운 구조
코드 작성도 어렵고, 보기에도 어려움
디자인 패턴을 공부
MVP패턴에 가깝게 구현
16. Test
“내 코드는 의도 그대로 동작하고 있나요?”
“리팩토링 제대로 한 거 맞나요?”
“하나 하나 확인 할 수 있을까요?”
내 코드 작동은 누가 보증할까요? Unit Test!
ipytracer의 경우 파이썬 list에서 되는 일은 모두 그대로 작동해야 함
처음 테스트 해보니 정말 펑펑 터짐
19. Git
실수로 개인정보가 포함된 파일이 소스에 포함
커밋까지 해버렸음
https://help.github.com/articles/removing-sensitive-data-from-a-repository/
인기가 없어서 본사람은 없었고 다행히 Git History에서 제거
주의할점: Revert Commit 혹은 파일 제거를 위한 커밋 X
파일 제거 커밋 검색하면 엄청 잘 나옵니다
21. 프로젝트 홍보
구슬도 꿰어야 보배!
Reddit, Python Korea에 홍보
해당 플랫폼에 많은 영향을 주는 커뮤니티에 홍보 + 영어권
덕분에 Python Weekly에 소개됨
http://qiita.com/tttamaki/items/fadda266e6d52b06e436
Qiita: 일본의 프로그래밍 정보 공유 사이트
ipytracer를 사용한 예제가 올라옴
weibo에서 중국인이 소개해 주기도 그 주에 github 트래픽이 엄청 났음
염원하던 Pycon 발표의 기회도!
22. 유명한 라이브러리들의 코드의 도움도 많이 받았지만,
스타수가 적은 코드들이 엄청난 도움이 될 때도 있었음
여러분의 코드는 누군가에게 도움이 될 수 있습니다
SNS 처럼 생각해보세요!
Social Coding
25. 첫 기여
Hexo
Node 기반 정적 블로그 툴
코드하이라이팅에 highlight.js를 사용
highlight.js가 JSX를 지원하지 않음
Prism.js
코드 하이리팅 라이브러리 JSX 지원
MDN 사이트에서 사용중
hexo-prism-plugin이 있었음
그런데 이번에는 줄번호가 표시 안됨!
26. 첫 기여
Prism.js 튜토리얼코드를 참고해
hexo-prism-plugin에 적용
7번째 이슈였고 Merge!
이 후로도 사용하는 몇몇 라이브러리에
번역제공으로 기여
28. 그 외 이야기
일부 프로젝트의 경우 Contributor agreement에 서명해야함
기여자 가이드를 꼼꼼하게 읽지 않아 해메었음
새삼 느겼던 Test의 중요성
리뷰어들이 매우 친절하셨음 (프로젝트에 긍정적인 시선이 됨)
이슈를 발견하기도 함
상당기간 파이썬의 동안 Mac Travis CI가 제대로 동작하지 않았음
파이썬정도의 프로젝트에서도 이런 실수가 나오는 구나
29. 저는 학부생도 모든 걸 할 수 있다고 생각합니다
물론 관련 지식이 필요한 프로젝트는 어렵겠지요
학생을 위한 많은 프로그램들
Easy Issue
문서번역
오픈소스
커미터/메인테이너와
멘토링 및 기여 참여
학부생 오픈소스
개발 멘토링
오픈소스
커미터/메인테이너와
멘토링 및 기여 참여
오픈소스 지원사업
30. 큰 프로젝트에 기여하는 일은 생각보다 어려운 일이 아닙니다.
큰 프로젝트도 간단한 실수가 나오기도 합니다.
Social Coding! 여러분의 코드는 누군가 에게 도움이 될 수 있습니다!