쫄지마,글로벌! 평범한 개발자의 좌충우돌 글로벌 오픈소스 도전하기Sangmin Shim영어를 몰라 해외 사이트는 눈팅만 하셨다고요? 내가 만든 라이브러리가 해외에서도 통할 것 같다고요? 오픈소스 프로젝트에 도움만 받아보셨다고요? 해외에서 발표도 해보고 싶으시다고요?
우리나라에는 국내에서만 활동하기에는 너무 아까운 프로젝트와 인재가 많습니다. 하지만 일이 바빠서, 영어를 못해서 시도하지 못하는 수 많은 개발자들을 위해서 좌충우돌 그 흔한 토익 점수도 없는 평범한 개발자의 글로벌 오픈소스 라이브러리 콜리(Collie)를 통한 도전기를 전해 드립니다.
이 시간에는 개발을 잘하는 법도, 영어를 잘하는 법도 없습니다. 대신, 그 모든걸 할 수 있는 용기를 드리겠습니다.
DEVIEW 2013 DAY1 Track3 - 6세션에 발표한 내용 입니다.
http://deview.kr/2013/detail.nhn?topicSeq=16
[2013.07.16] PythonKorea강남스터디 발표 - flask testingDaeHyun Sung2013년 7월 16일자
PythonKorea강남스터디 2주차 발표 Flask Testing 자료입니다.
발표주제는 Flask의 테스트에 대한 소개입니다.
TDD의 간단한 소개와 unittest모듈 소개 및 Flask에서 unittest사용하는 방법과 unittest의 기능을 확장한 Flask-Testing모듈에 대해 소개를 합니다.
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한파이썬으로 코딩 기초를 배우고 플라스크로 웹서비스 개발을 배우는 과정을 다루고 있습니다.
- 입문용 자료입니다.
ABCD : http://www.abcds.kr/
Facebook Group : https://www.facebook.com/groups/562787713823026/
한성일 : https://www.facebook.com/jamie.han.16
iheart79@gmail.com
Deview 2013 - 나는 왜 개발자인데자신이 없을까?Minsuk Lee* 나는 왜 개발자인데자신이 없을까?
초보 개발자들은 다양한 공부를 했으면서도, 정작 개발에는 자신이 없어합니다. 그 이유를 알아보고, 그것을 극복하는 방법을 이야기합니다. 개발자로서 어떤 생각을 하면서, 어떤 자세로 살아야 하는지, 새로운 기술은 어떻게 배워나가야하는지, 자신있어 보이는 선수 개발자는 뭐가 다른지를 설명합니다. 모든 초보 개발자들이 가지고 있는 내면의 자신감을 끌어 올릴 수 있도록 도와주고, 이제 소프트웨어 개발자로 서의 커리어를 시작하는 사람들이 지속가능한 발전과 성공을 할 수 있도록 도와줍니다.
동영상 link: http://serviceapi.nmv.naver.com/flash/convertIframeTag.nhn?vid=8102105A2B82DE6DC96D57AA820458275CD7&outKey=V1210a0ea4d005fd624546a616cd783b464042b6f6db81e78fe926a616cd783b46404&width=720&height=438
Django로 배우는 쉽고 빠른 웹개발 study 자료Han Sung Kim9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발Daniel Juyung Seo2016.10.08 [OSS개발자포럼&국민대학교]Git/Github 입문
- 제목: 오픈소스를 활용한 개발자 자기 개발
- 내용: 오픈소스를 통하여 개발자로서의 실력 향상, 커뮤니케이션 능력 개발, 영어 공부 등을 무료로 할 수 있었던 경험 공유
Deview 2013 - 나는 왜 개발자인데자신이 없을까?Minsuk Lee* 나는 왜 개발자인데자신이 없을까?
초보 개발자들은 다양한 공부를 했으면서도, 정작 개발에는 자신이 없어합니다. 그 이유를 알아보고, 그것을 극복하는 방법을 이야기합니다. 개발자로서 어떤 생각을 하면서, 어떤 자세로 살아야 하는지, 새로운 기술은 어떻게 배워나가야하는지, 자신있어 보이는 선수 개발자는 뭐가 다른지를 설명합니다. 모든 초보 개발자들이 가지고 있는 내면의 자신감을 끌어 올릴 수 있도록 도와주고, 이제 소프트웨어 개발자로 서의 커리어를 시작하는 사람들이 지속가능한 발전과 성공을 할 수 있도록 도와줍니다.
동영상 link: http://serviceapi.nmv.naver.com/flash/convertIframeTag.nhn?vid=8102105A2B82DE6DC96D57AA820458275CD7&outKey=V1210a0ea4d005fd624546a616cd783b464042b6f6db81e78fe926a616cd783b46404&width=720&height=438
Django로 배우는 쉽고 빠른 웹개발 study 자료Han Sung Kim9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발Daniel Juyung Seo2016.10.08 [OSS개발자포럼&국민대학교]Git/Github 입문
- 제목: 오픈소스를 활용한 개발자 자기 개발
- 내용: 오픈소스를 통하여 개발자로서의 실력 향상, 커뮤니케이션 능력 개발, 영어 공부 등을 무료로 할 수 있었던 경험 공유
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기Daniel Juyung SeoGDG DevFest Seoul 2016 행사에서 발표한 '오픈 소스를 통해 개발 근육 강화하기' 발표 자료
https://festi.kr/festi/gdg-korea-2016-devfest-seoul/
SOSCON 2014: 문서 기반의 오픈소스 기여하기Chang W. DohSamsung OpenSource Conference - Day 2. http://www.soscon.net/
코드가 아닌 문서로 오픈소스에 기여하는 방법을 개인적인 경험으로 정리해보았습니다. 참여하실 분은 언제나 환영합니다. :)
『Modern PHP』 - 미리보기복연 이인터넷에는 수없이 많은 PHP 튜토리얼이 있다. 이들 대부분은 이미 낡고 쓸모없어진 지 오래지만 불행히도 구글 검색 결과에 살아남아 여전히 참조자료로 활용된다. 이런 낡은 정보를 무분별하게 받아들인 PHP 프로그래머는 자신도 모르는 사이에 느리고 보안에 취약한 PHP 애플리케이션을 만들게 된다.
이 책에서는 슬림(Slim) 프레임워크의 제작자이자 ‘PHP The Right Way’의 창안자인 조시 록하트가 최신 PHP 기술을 소개하는 한편, 자신의 오픈소스 프로젝트와 일상 업무에서 매일 사용하는 최신 기술을 보여준다. 독자 여러분도 이 책을 통해 PHP의 짜릿한 변화의 순간에 동참하고 진보된 PHP를 온전히 활용할 수 있게 될 것이다.
- 네임스페이스, 트레이트, 제너레이터, 클로저 등의 모던 PHP 기능
- PHP 컴포넌트를 검색, 사용, 작성하는 방법
- 보안, 데이터베이스 작업, 문자열, 스트림, 에러와 예외 등에 대한 모범 사례
- 프로비저닝, 배포, 튜닝, 테스팅, 프로파일링에 필요한 도구와 기술
- 페이스북이 선보인 HHVM과 Hack이 최신 PHP에 미친 영향
- 프로덕션 서버에 대응하는 로컬 개발 환경 구축
★ 대상 독자
- PHP에 대한 기본적인 이해가 있으며 자신의 기량을 강화하고 싶은 모든 개발자
- 수년 전부터 같은 패턴으로 개발하고 있는 PHP 개발자
- PHP의 최신 변화가 궁금하고 미래를 적극적으로 준비하고 싶은 개발자
- 호환되지 않는 여러 PHP 버전의 설명이 혼재된 인터넷 자료에 고생하고 있는 개발자
★ 추천사
나는 PHP 언어와 커뮤니티의 현 상황을 제대로 반영한 서적을 찾느라 수년을 보냈다. 이제 주저하지 않고 『Modern PHP』를 추천한다.
─ 에드 핀클러, 개발자 겸 블로거(funkatron.com)
프로그래밍에서 절대 변하지 않는 진리는 ‘프로그래밍은 변한다’는 사실뿐이다. PHP는 변하고 있고 여러분의 개발 방법 역시 변해야만 한다. 조시는 최신 PHP로 작성하기 위해 알아야 할 도구와 개념을 제시한다.
─ 캘 에번스, E.I.C.C. CEO
13. 제1회 EC회장배 비정상 선발대회 1위 강주호
컴퓨터 만난지 1년 반된
이사람의 오픈소스 사용기
14. 오픈소스 사용기
오픈소스를 알기 전
블로그, 해피캠퍼스…….
거기서 거기인 발전 없는 과제용
코드, 수준 낮은 코드들
15. 오픈소스 사용기
오픈소스를 알기 전
학교 C프로그래밍 수업 과제로
가계부 프로그램을 만들면서 느낀 점
16. 오픈소스 사용기
오픈소스를 알기 전
왜 나는 변수 이름이 a, b , c, d, first, second, third인
냄새 나는 코드를 보고 베껴서 프로젝트를 만들고 있지?
17. 오픈소스 사용기
오픈소스를 알기 전
느낌 폭발 폼 나는 쾅쾅 코드를 보고 싶다.
뭐가 좋은 코드일까?
크고 아름다운 프로그램들, 사용프로그램들은 어떻게 돌아
가는 걸까?
18. 오픈소스 사용기
오픈소스 라고?
7회
공개 소프트웨어 개발자 대회를
통해
알게 된 “오픈 소스”
19. 오픈소스 사용기
오픈소스 라고?
아!쉽다 런처
https://github.com/rjduakcjs/AshipdaLauncher
노인대상 런처 아!쉽다 런처
아!쉽다 팀에서 팀원으로 참여
그래도 그때도 오픈소스를 쓰지 않았다.
블로그 긁어보고 해서 만들었다.
이전보다 나아진 것은
영어로 검색을 하면서 얻을 수 있는
정보의 양이 비약적으로 증가한 것.
20. 오픈소스 사용기
오픈소스 라고?
뒤돌아보면 그렇게 큰 의미가 보이지않는
노인복지 컨셉 어플리케이션
좀더 편리한 기능이 있었으면….
SOS 번호저장기능이라도
더 잘 만들었으면….
다른앱 찾는 기능도….
근데
디자인은 짱짱
21. 오픈소스 사용기
오픈소스 라고?
뭐가 있는지도 모르고
뭘 어떻게 해야 하는지 모르고
내 능력은 부족하니까
결과가 나오지 않더라
23. 오픈소스 사용기
오픈소스 첫 도전
동아리 졸업작품전시회를 위해서 제작한
ViVa
Url로 영상을 저장해 두었다가
원할 때 Url을 타고 가서 영상을 볼 수 있는
간단한 안드로이드 어플리케이션
https://github.com/rjduakcjs/Viva-videovault
24. 오픈소스 사용기
오픈소스 첫 도전
SlidingMenu 사용
구글플레이의 왼쪽 넘어가는
메뉴가 너무 마음에 들었다.
그걸 내 프로그램에 넣고싶었다.
근데 예시코드 실행 시켜 볼
때 까지
이틀이 걸리는 놀라운 경험
https://github.com/jfeinstein10/SlidingMenu
25. 오픈소스 사용기
오픈소스 첫 도전
Sqlite도 써봐야지 했다.
db 쓰는게 그렇게 멋있었다.
막상 쓸때는 query 빈칸
하나 때문에 4시간씩 허비
내 뜻대로 되지 않는 내 프로그램
26. 오픈소스 사용기
오픈소스 첫 도전
그래도 삽질을 수없이 했더니 만들어지더라
메뉴창 띄우는 저 ui에는 손도 안 댔는데 된다.
우왕. 물론 내가 그 기능을 만든 것은 아니지만 신기하고 뿌듯함.
29. 오픈소스 사용기
오픈소스가 적용된 소스를 보게 되다.
Http Live Streaming과 관련된
대학원 연구실
프로젝트에 잠시 동안 참여.
다른 사람이 만든 코드를 구경하게 됨.
일주일동안 천오백줄 짜리 코드 분석
어.. 어?
30. 오픈소스 사용기
오픈소스가 적용된 소스를 보게 되다.
FFmpeg의 어마어마한 Documentation에 놀람
찾으면 다 설명해줌. 우오오옹
웹에 오픈소스 비디오 플레이어도있고 뭐도 있고 오픈소스라고 하는게
한두개가 아닌것도 깨달음
31. 오픈소스 사용기
오픈소스가 적용된 소스를 보게 되다.
코드도 볼 줄 알아야 하지만
그 분야에 대한
기본적인 개념이 있어야 오픈소스고 뭐고 쓸 수 있구
나
32. 오픈소스 사용기
나도 한번! 오픈소스 활용!
다시한번 도전하는
공개 sw개발자 대회
33. 오픈소스 사용기
나도 한번! 오픈소스 활용!
Git과 그래프를 활용하는 프로그램 개발
34. 오픈소스 사용기
나도 한번! 오픈소스 활용!
GriGit! (그리깃!)
Git을 그림 그리듯 사용하는 것을 목표로 하는 gui 툴
35. 오픈소스 사용기
나도 한번! 오픈소스 활용!
내가 그래도 어느정도 할줄 아는건 자바
플랫폼 독립적인 것을 만들려는데 해본건 Swing
그래서 선택한 Jgit과 Jgraphx
36. 오픈소스 사용기
나도 한번! 오픈소스 활용!
역할분담 실패와 여러 어려움이 있었지만.
생각하지도 못했는데 발목을 잡은
37. 오픈소스 사용기
나도 한번! 오픈소스 활용!
나의 무기가 될거라고 생각한 오픈소스가 발목을 잡았다.
38. 오픈소스 사용기
나도 한번! 오픈소스 활용!
Jgit을 빌드를 하기위해 모르던 maven을 익히고
maven으로 의존성 설정했더니
Jgraphx가 maven repo에 없어서 따로 해줘야되고
뭐하나 원하는 대로 되지 않음
…………………………………………………………….
하는 족족 막히기 일쑤
39. 오픈소스 사용기
나도 한번! 오픈소스 활용!
그리고 나서는JgraphX, Jgit 의 CLI 인터페이스쪽이 발목을 잡았다.
40. 오픈소스 사용기
나도 한번! 오픈소스 활용!
http://wiki.eclipse.org/JGit/User_Guide
2011년 부터 거의 업데이트 안된 Jgit의 userguide, 감이 안 오는 프로그램
Jgit의 cli 인터페이스는 args4j로 되어있는 코드인데 감조차 안옴
Jgraphx는 원하는 기능만 뽑아오기엔 너무 불친절한 api
아예 처음부터 만드는 게 좋을 것 같은 느낌.
41. 오픈소스 사용기
나도 한번! 오픈소스 활용!
Jgit cli인터페이스는 프로젝트를 통째로 복붙해서 수정
프로젝트 소스파일 총 133개 중 80개 차지
산으로 가는 pom.xml…. 뭐가 뭔지 전혀 모르겠음
Jgraphx는 마우스 드래그등의 다양한 기능을 전부 차단
44. 오픈소스 사용기
나도 한번! 오픈소스 활용!
결국 오픈소스도 누군가 만든 프로젝트
평생 그 프로젝트가 활성화 되있는것은 않기 때문에 완벽
할 수 없다.
가져다 쓰기 쉽게 되어있지 않은 것도 많다.
API doc이라도 되어 있으면 감사하다.
적합한 오픈소스를 고르는 것, 잘 활용하는 것이 아주 중요
45. 오픈소스 사용기
나도 한번! 오픈소스 활용!
오픈 소스에 휘둘린 내 프로젝트
또 뭔가 배워가는구나
52. 오픈소스를 쓰는 과정
사용할 오픈소스 선택
선택 할 때 주의점
우리는 초보
• Documentation이 아주 잘 되어 있는 오픈소스
• 근처에 누군가 써본 것
• 인기 있는 오픈소스
53. 오픈소스를 쓰는 과정
사용할 오픈소스 선택
선택 할 때 주의점
• 오픈 소스 라이브러리의 기능을 가져다 쓰는 것이 좋다
ex)stdio.h의 printf를 쓰듯이
• 완성된 프로그램의 경우 분석하기 어렵고 쓰기도 힘들다
• example 소스를 이틀 동안 봐도 모르겠다면 대책을 생각
해 볼 필요가 있다.
54. 오픈소스를 쓰는 과정
오픈소스 첫 빌드
빌드 툴을 익혀야 오픈소스 프로젝트를 빌드 할 수 있다.
55. 오픈소스를 쓰는 과정
오픈소스 첫 빌드
첫 빌드가 될 때까지 침착하자.
잘 안되면
검색을 해보고 막 복붙을 해보고 막 지워보자.
첫 빌드가 너무 어렵다….
56. 오픈소스를 쓰는 과정
오픈소스 example 소스 분석
왠만한 거의 대부분의 오픈소스는 example 코드가 있다.
• Hello World!
• 보면서 개략적으로 어떻게 쓰는지 익혀보자
57. 오픈소스를 쓰는 과정
쓰세요
이제 감을 잡았다면 쓰면 된다.
잘 안되면 영어로 구글에 검색을 해보자
내가 잘 안되면 다른 사람도 잘 안된 경험이 있다.
StackOverflow에 왠만하면 다있음
한글로 검색하면 결과 별로 안나옴
59. 오픈소스를 잘 쓰고 싶습니다
영어
영어
거의 모든 오픈소스는
사용자 매뉴얼, api 문서, 주석이 다 영어이다.
그리고 생기는 문제들을 해결하려면 검색을 해야 하는데
영어로 검색해야 원하는 해답들을 찾을 수 있다.
문서를 읽고 검색어를 선택할 수 있는 수준의 영어가 필요
60. 오픈소스를 잘 쓰고 싶습니다
코드 읽기
• api 문서에는 많은 것이 쓰여있다 (상세한 것도 있고 상세하지 않은
것도 있다)
• 개발을 할 때 항상 api doc을 켜두고 개발을 하자.
• Eclipse라면 jar파일로 라이브러리를 추가했다면 아마 javadoc이 안
보일것이다. 이럴 때는 attach source로 원래 소스를 붙여서 javadoc
과 원래 코드를 보자.
• Eclipse에서 ctrl을 누른 상태로 메소드 이름이나 클래스 이름을 클
릭하면 원래 소스로 갈 수 있다!
61. 오픈소스를 잘 쓰고 싶습니다
코드 읽기
• Android ViewPager를 이용해 잠시 예를 들어보겠습니다.
• 코드 읽는 연습을 해보아요
http://developer.android.com/reference/and
roid/support/v4/view/ViewPager.html
62. 오픈소스를 잘 쓰고 싶습니다
코드 읽기
• 코드를 이리저리 왔다갔다 하다보면 어느정도 감이 잡히게됩니다.
• 보다보면 아 이건가 싶은듯합니다.
• 근데 api정도여야 이해가 쉬움.
63. 오픈소스를 잘 쓰고 싶습니다
디자인 패턴
• 디자인패턴을 알고 오픈소스를 보면 확실히 이해가 잘된다.
• 오픈소스는 재사용에 초점을 두고 있기 때문이다.
• Ex) Jgit 의 git.api에서 commit을 할때
Git git = new Git(Repository);
git.commit().setMessage("Fix393")
.setAuthor(developerIdent).call();
• 이것은 builder pattern을 이용한것.
64. 오픈소스를 잘 쓰고 싶습니다
디자인 패턴
• 오픈소스에 관심이 많다면 디자인 패턴은 꼭 공부해보는 게 좋다고
생각한다.
• http://en.wikipedia.org/wiki/Software_design_pattern
• 여기도 정말 정리 잘되있다.
• 영문위키 진짜 진리 설명진짜 와
• 책사서 보는것도 굳굳