SlideShare uma empresa Scribd logo
1 de 71
1년 반동안 삽질만 했다고 합니다….ppt 
나의 오픈소스 사용기 
EC23기 강주호
INDEX 
오픈소스란 오픈소스 
사용 
기 
오픈소스 
잘 쓰고 
싶습니 
다 
오픈소스를 
쓰는 과 
정
오픈소스란 
오픈소스란
오픈소스란 
내 머릿속에 있는거
오픈소스란 
내가 할 줄 아는거
오픈소스란 
내가 만들고 싶은거
오픈소스란 
오픈소스는
오픈소스란 
그리고 어마어마하게 많고 유용하다.
오픈소스란 
배울게 많다
오픈소스란 
오픈소스 라이선스 
http://opensource.org/licenses 
상세한건 여기가서 천천히 읽어보자…. 
소스코드도 저작권이 있으며 지켜줘야 한다. 
Q : 오픈소스니까 오픈! 프리! 내맘대로 써도되죠? 
A : 라이선스를 지키면서 그러세요
오픈소스란 
오픈소스의 정의 
http://opensource.org/docs/definition.html 
아이고 내용이 딱딱해진다 나도 모르겠다 그만 그만
오픈소스 사용기 
오픈소스 사용기
제1회 EC회장배 비정상 선발대회 1위 강주호 
컴퓨터 만난지 1년 반된 
이사람의 오픈소스 사용기
오픈소스 사용기 
오픈소스를 알기 전 
블로그, 해피캠퍼스……. 
거기서 거기인 발전 없는 과제용 
코드, 수준 낮은 코드들
오픈소스 사용기 
오픈소스를 알기 전 
학교 C프로그래밍 수업 과제로 
가계부 프로그램을 만들면서 느낀 점
오픈소스 사용기 
오픈소스를 알기 전 
왜 나는 변수 이름이 a, b , c, d, first, second, third인 
냄새 나는 코드를 보고 베껴서 프로젝트를 만들고 있지?
오픈소스 사용기 
오픈소스를 알기 전 
느낌 폭발 폼 나는 쾅쾅 코드를 보고 싶다. 
뭐가 좋은 코드일까? 
크고 아름다운 프로그램들, 사용프로그램들은 어떻게 돌아 
가는 걸까?
오픈소스 사용기 
오픈소스 라고? 
7회 
공개 소프트웨어 개발자 대회를 
통해 
알게 된 “오픈 소스”
오픈소스 사용기 
오픈소스 라고? 
아!쉽다 런처 
https://github.com/rjduakcjs/AshipdaLauncher 
노인대상 런처 아!쉽다 런처 
아!쉽다 팀에서 팀원으로 참여 
그래도 그때도 오픈소스를 쓰지 않았다. 
블로그 긁어보고 해서 만들었다. 
이전보다 나아진 것은 
영어로 검색을 하면서 얻을 수 있는 
정보의 양이 비약적으로 증가한 것.
오픈소스 사용기 
오픈소스 라고? 
뒤돌아보면 그렇게 큰 의미가 보이지않는 
노인복지 컨셉 어플리케이션 
좀더 편리한 기능이 있었으면…. 
SOS 번호저장기능이라도 
더 잘 만들었으면…. 
다른앱 찾는 기능도…. 
근데 
디자인은 짱짱
오픈소스 사용기 
오픈소스 라고? 
뭐가 있는지도 모르고 
뭘 어떻게 해야 하는지 모르고 
내 능력은 부족하니까 
결과가 나오지 않더라
오픈소스 사용기 
오픈소스 라고? 
나도 오픈소스 그거 한번 써보자
오픈소스 사용기 
오픈소스 첫 도전 
동아리 졸업작품전시회를 위해서 제작한 
ViVa 
Url로 영상을 저장해 두었다가 
원할 때 Url을 타고 가서 영상을 볼 수 있는 
간단한 안드로이드 어플리케이션 
https://github.com/rjduakcjs/Viva-videovault
오픈소스 사용기 
오픈소스 첫 도전 
SlidingMenu 사용 
구글플레이의 왼쪽 넘어가는 
메뉴가 너무 마음에 들었다. 
그걸 내 프로그램에 넣고싶었다. 
근데 예시코드 실행 시켜 볼 
때 까지 
이틀이 걸리는 놀라운 경험 
https://github.com/jfeinstein10/SlidingMenu
오픈소스 사용기 
오픈소스 첫 도전 
Sqlite도 써봐야지 했다. 
db 쓰는게 그렇게 멋있었다. 
막상 쓸때는 query 빈칸 
하나 때문에 4시간씩 허비 
내 뜻대로 되지 않는 내 프로그램
오픈소스 사용기 
오픈소스 첫 도전 
그래도 삽질을 수없이 했더니 만들어지더라 
메뉴창 띄우는 저 ui에는 손도 안 댔는데 된다. 
우왕. 물론 내가 그 기능을 만든 것은 아니지만 신기하고 뿌듯함.
오픈소스 사용기 
오픈소스 첫 도전 
오픈소스 덕분에 내가 못하는걸 
할 수 있게 되는구나!
오픈소스 사용기 
오픈소스 첫 도전 
근데 코드를 잘 볼 수 있어야 하는구나.
오픈소스 사용기 
오픈소스가 적용된 소스를 보게 되다. 
Http Live Streaming과 관련된 
대학원 연구실 
프로젝트에 잠시 동안 참여. 
다른 사람이 만든 코드를 구경하게 됨. 
일주일동안 천오백줄 짜리 코드 분석 
어.. 어?
오픈소스 사용기 
오픈소스가 적용된 소스를 보게 되다. 
FFmpeg의 어마어마한 Documentation에 놀람 
찾으면 다 설명해줌. 우오오옹 
웹에 오픈소스 비디오 플레이어도있고 뭐도 있고 오픈소스라고 하는게 
한두개가 아닌것도 깨달음
오픈소스 사용기 
오픈소스가 적용된 소스를 보게 되다. 
코드도 볼 줄 알아야 하지만 
그 분야에 대한 
기본적인 개념이 있어야 오픈소스고 뭐고 쓸 수 있구 
나
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
다시한번 도전하는 
공개 sw개발자 대회
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
Git과 그래프를 활용하는 프로그램 개발
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
GriGit! (그리깃!) 
Git을 그림 그리듯 사용하는 것을 목표로 하는 gui 툴
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
내가 그래도 어느정도 할줄 아는건 자바 
플랫폼 독립적인 것을 만들려는데 해본건 Swing 
그래서 선택한 Jgit과 Jgraphx
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
역할분담 실패와 여러 어려움이 있었지만. 
생각하지도 못했는데 발목을 잡은
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
나의 무기가 될거라고 생각한 오픈소스가 발목을 잡았다.
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
Jgit을 빌드를 하기위해 모르던 maven을 익히고 
maven으로 의존성 설정했더니 
Jgraphx가 maven repo에 없어서 따로 해줘야되고 
뭐하나 원하는 대로 되지 않음 
……………………………………………………………. 
하는 족족 막히기 일쑤
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
그리고 나서는JgraphX, Jgit 의 CLI 인터페이스쪽이 발목을 잡았다.
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
http://wiki.eclipse.org/JGit/User_Guide 
2011년 부터 거의 업데이트 안된 Jgit의 userguide, 감이 안 오는 프로그램 
Jgit의 cli 인터페이스는 args4j로 되어있는 코드인데 감조차 안옴 
Jgraphx는 원하는 기능만 뽑아오기엔 너무 불친절한 api 
아예 처음부터 만드는 게 좋을 것 같은 느낌.
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
Jgit cli인터페이스는 프로젝트를 통째로 복붙해서 수정 
프로젝트 소스파일 총 133개 중 80개 차지 
산으로 가는 pom.xml…. 뭐가 뭔지 전혀 모르겠음 
Jgraphx는 마우스 드래그등의 다양한 기능을 전부 차단
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
기대 vs 현실
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
그래도 완성은 했다 신난다
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
결국 오픈소스도 누군가 만든 프로젝트 
평생 그 프로젝트가 활성화 되있는것은 않기 때문에 완벽 
할 수 없다. 
가져다 쓰기 쉽게 되어있지 않은 것도 많다. 
API doc이라도 되어 있으면 감사하다. 
적합한 오픈소스를 고르는 것, 잘 활용하는 것이 아주 중요
오픈소스 사용기 
나도 한번! 오픈소스 활용! 
오픈 소스에 휘둘린 내 프로젝트 
또 뭔가 배워가는구나
오픈소스 사용기 
오픈소스를 쓰는 과정
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
먼저 내 프로젝트에서 필요한 기능을 구체화 
기능정의 화면정의
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
오픈소스가 필요한 기능, 화면을 생각 
오픈소스 
기능정의 화면정의 
오픈소스
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
나에게 맞는 오픈소스 프로젝트 찾기 
google
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
github.com
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
openhub.net
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
선택 할 때 주의점 
우리는 초보 
• Documentation이 아주 잘 되어 있는 오픈소스 
• 근처에 누군가 써본 것 
• 인기 있는 오픈소스
오픈소스를 쓰는 과정 
사용할 오픈소스 선택 
선택 할 때 주의점 
• 오픈 소스 라이브러리의 기능을 가져다 쓰는 것이 좋다 
ex)stdio.h의 printf를 쓰듯이 
• 완성된 프로그램의 경우 분석하기 어렵고 쓰기도 힘들다 
• example 소스를 이틀 동안 봐도 모르겠다면 대책을 생각 
해 볼 필요가 있다.
오픈소스를 쓰는 과정 
오픈소스 첫 빌드 
빌드 툴을 익혀야 오픈소스 프로젝트를 빌드 할 수 있다.
오픈소스를 쓰는 과정 
오픈소스 첫 빌드 
첫 빌드가 될 때까지 침착하자. 
잘 안되면 
검색을 해보고 막 복붙을 해보고 막 지워보자. 
첫 빌드가 너무 어렵다….
오픈소스를 쓰는 과정 
오픈소스 example 소스 분석 
왠만한 거의 대부분의 오픈소스는 example 코드가 있다. 
• Hello World! 
• 보면서 개략적으로 어떻게 쓰는지 익혀보자
오픈소스를 쓰는 과정 
쓰세요 
이제 감을 잡았다면 쓰면 된다. 
잘 안되면 영어로 구글에 검색을 해보자 
내가 잘 안되면 다른 사람도 잘 안된 경험이 있다. 
StackOverflow에 왠만하면 다있음 
한글로 검색하면 결과 별로 안나옴
오픈소스를 잘 쓰고 싶습니다 
오픈소스를 잘 쓰고 싶습니다
오픈소스를 잘 쓰고 싶습니다 
영어 
영어 
거의 모든 오픈소스는 
사용자 매뉴얼, api 문서, 주석이 다 영어이다. 
그리고 생기는 문제들을 해결하려면 검색을 해야 하는데 
영어로 검색해야 원하는 해답들을 찾을 수 있다. 
문서를 읽고 검색어를 선택할 수 있는 수준의 영어가 필요
오픈소스를 잘 쓰고 싶습니다 
코드 읽기 
• api 문서에는 많은 것이 쓰여있다 (상세한 것도 있고 상세하지 않은 
것도 있다) 
• 개발을 할 때 항상 api doc을 켜두고 개발을 하자. 
• Eclipse라면 jar파일로 라이브러리를 추가했다면 아마 javadoc이 안 
보일것이다. 이럴 때는 attach source로 원래 소스를 붙여서 javadoc 
과 원래 코드를 보자. 
• Eclipse에서 ctrl을 누른 상태로 메소드 이름이나 클래스 이름을 클 
릭하면 원래 소스로 갈 수 있다!
오픈소스를 잘 쓰고 싶습니다 
코드 읽기 
• Android ViewPager를 이용해 잠시 예를 들어보겠습니다. 
• 코드 읽는 연습을 해보아요 
http://developer.android.com/reference/and 
roid/support/v4/view/ViewPager.html
오픈소스를 잘 쓰고 싶습니다 
코드 읽기 
• 코드를 이리저리 왔다갔다 하다보면 어느정도 감이 잡히게됩니다. 
• 보다보면 아 이건가 싶은듯합니다. 
• 근데 api정도여야 이해가 쉬움.
오픈소스를 잘 쓰고 싶습니다 
디자인 패턴 
• 디자인패턴을 알고 오픈소스를 보면 확실히 이해가 잘된다. 
• 오픈소스는 재사용에 초점을 두고 있기 때문이다. 
• Ex) Jgit 의 git.api에서 commit을 할때 
Git git = new Git(Repository); 
git.commit().setMessage("Fix393") 
.setAuthor(developerIdent).call(); 
• 이것은 builder pattern을 이용한것.
오픈소스를 잘 쓰고 싶습니다 
디자인 패턴 
• 오픈소스에 관심이 많다면 디자인 패턴은 꼭 공부해보는 게 좋다고 
생각한다. 
• http://en.wikipedia.org/wiki/Software_design_pattern 
• 여기도 정말 정리 잘되있다. 
• 영문위키 진짜 진리 설명진짜 와 
• 책사서 보는것도 굳굳
오픈소스를 잘 쓰고 싶습니다 
로그 남기기
오픈소스를 잘 쓰고 싶습니다 
로그 남기기
오픈소스를 잘 쓰고 싶습니다 
했던 삽질 다시 하지 말자 
구글 드라이브, 
에버노트등으로 
잘 정리해두자
오픈소스를 잘 쓰고 싶습니다 
git 
많은 오픈소스들이 git을 사용한다. 
개인 프로젝트도 git등으로 코드 이력을 관리하는것이 좋다. 
git 을 다를줄 알면 언젠가 나도 오픈소스에 기여를 하고! 오오!
오픈소스를 잘 쓰고 싶습니다 
경험 
경험에서 우러나오는 실력!
요기까지 
요기까지 
감사합니다.
나의 오픈소스 사용기

Mais conteúdo relacionado

Mais procurados

안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
Sewon Ann
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
NAVER D2
 

Mais procurados (20)

Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
Deview 2013 - 나는 왜 개발자인데자신이 없을까?Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Deview 2013 - 나는 왜 개발자인데 자신이 없을까?
 
eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
 
오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개오픈소스 프로젝트 따라잡기_공개
오픈소스 프로젝트 따라잡기_공개
 
D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션D2 CAMPUS FEST 2015 오리엔테이션
D2 CAMPUS FEST 2015 오리엔테이션
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
 
Why use git
Why use gitWhy use git
Why use git
 
Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)
 
파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)파이썬 튜토리얼 (Python tutorial)
파이썬 튜토리얼 (Python tutorial)
 
[스프링 캠프 2014] 내가 파이썬을 선택한 이유
[스프링 캠프 2014] 내가 파이썬을 선택한 이유[스프링 캠프 2014] 내가 파이썬을 선택한 이유
[스프링 캠프 2014] 내가 파이썬을 선택한 이유
 
깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기깃헙으로 코드리뷰 하기
깃헙으로 코드리뷰 하기
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰
 
[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문[Hello World 천안아산] 안드로이드 입문
[Hello World 천안아산] 안드로이드 입문
 

Semelhante a 나의 오픈소스 사용기

『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기
복연 이
 

Semelhante a 나의 오픈소스 사용기 (20)

Start open source
Start open source Start open source
Start open source
 
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
[OSS 개발자 포럼] 오픈소스를 활용한 개발자 자기 개발
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSource
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자
 
[네이버오픈소스세미나] 오픈소스 생태계 일원으로서의 개발자 - 변정훈
[네이버오픈소스세미나] 오픈소스 생태계 일원으로서의 개발자 - 변정훈[네이버오픈소스세미나] 오픈소스 생태계 일원으로서의 개발자 - 변정훈
[네이버오픈소스세미나] 오픈소스 생태계 일원으로서의 개발자 - 변정훈
 
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
[네이버오픈소스세미나] 개발자의 흔한 취미 - 권민재
 
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
[GDG DevFest Seoul 2016] 오픈 소스를 통해 개발 근육 강화하기
 
SOSCON 2014: 문서 기반의 오픈소스 기여하기
SOSCON 2014: 문서 기반의 오픈소스 기여하기SOSCON 2014: 문서 기반의 오픈소스 기여하기
SOSCON 2014: 문서 기반의 오픈소스 기여하기
 
Lablup Conf 2022 - 강시온.pdf
Lablup Conf 2022 - 강시온.pdfLablup Conf 2022 - 강시온.pdf
Lablup Conf 2022 - 강시온.pdf
 
네이버 오픈소스 세미나 - 오픈소스 프로젝트 참여하기 NAVER 박은정
네이버 오픈소스 세미나 - 오픈소스 프로젝트 참여하기 NAVER 박은정네이버 오픈소스 세미나 - 오픈소스 프로젝트 참여하기 NAVER 박은정
네이버 오픈소스 세미나 - 오픈소스 프로젝트 참여하기 NAVER 박은정
 
3주차 language
3주차 language3주차 language
3주차 language
 
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)
 
[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력[아주대] 오픈 소스와 글로벌 경쟁력
[아주대] 오픈 소스와 글로벌 경쟁력
 
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
오픈소스, 빡! 끝! - 제7회 삼성소프트웨어멤버십 기술전
 
Open Source is My Job
Open Source is My JobOpen Source is My Job
Open Source is My Job
 
The opensource
The opensourceThe opensource
The opensource
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
 
GDG DevFest 2014 - 코드 없이 오픈소스 기여하기: HTML5Rocks/KO 번역 야사
GDG DevFest 2014 - 코드 없이 오픈소스 기여하기: HTML5Rocks/KO 번역 야사GDG DevFest 2014 - 코드 없이 오픈소스 기여하기: HTML5Rocks/KO 번역 야사
GDG DevFest 2014 - 코드 없이 오픈소스 기여하기: HTML5Rocks/KO 번역 야사
 
『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기『Modern PHP』 - 미리보기
『Modern PHP』 - 미리보기
 
Better softwareengineer han
Better softwareengineer hanBetter softwareengineer han
Better softwareengineer han
 

Último

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 

Último (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
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 백혜인 발표자료)
 
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 ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

나의 오픈소스 사용기

  • 1. 1년 반동안 삽질만 했다고 합니다….ppt 나의 오픈소스 사용기 EC23기 강주호
  • 2. INDEX 오픈소스란 오픈소스 사용 기 오픈소스 잘 쓰고 싶습니 다 오픈소스를 쓰는 과 정
  • 10. 오픈소스란 오픈소스 라이선스 http://opensource.org/licenses 상세한건 여기가서 천천히 읽어보자…. 소스코드도 저작권이 있으며 지켜줘야 한다. Q : 오픈소스니까 오픈! 프리! 내맘대로 써도되죠? A : 라이선스를 지키면서 그러세요
  • 11. 오픈소스란 오픈소스의 정의 http://opensource.org/docs/definition.html 아이고 내용이 딱딱해진다 나도 모르겠다 그만 그만
  • 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. 오픈소스 사용기 오픈소스 라고? 뭐가 있는지도 모르고 뭘 어떻게 해야 하는지 모르고 내 능력은 부족하니까 결과가 나오지 않더라
  • 22. 오픈소스 사용기 오픈소스 라고? 나도 오픈소스 그거 한번 써보자
  • 23. 오픈소스 사용기 오픈소스 첫 도전 동아리 졸업작품전시회를 위해서 제작한 ViVa Url로 영상을 저장해 두었다가 원할 때 Url을 타고 가서 영상을 볼 수 있는 간단한 안드로이드 어플리케이션 https://github.com/rjduakcjs/Viva-videovault
  • 24. 오픈소스 사용기 오픈소스 첫 도전 SlidingMenu 사용 구글플레이의 왼쪽 넘어가는 메뉴가 너무 마음에 들었다. 그걸 내 프로그램에 넣고싶었다. 근데 예시코드 실행 시켜 볼 때 까지 이틀이 걸리는 놀라운 경험 https://github.com/jfeinstein10/SlidingMenu
  • 25. 오픈소스 사용기 오픈소스 첫 도전 Sqlite도 써봐야지 했다. db 쓰는게 그렇게 멋있었다. 막상 쓸때는 query 빈칸 하나 때문에 4시간씩 허비 내 뜻대로 되지 않는 내 프로그램
  • 26. 오픈소스 사용기 오픈소스 첫 도전 그래도 삽질을 수없이 했더니 만들어지더라 메뉴창 띄우는 저 ui에는 손도 안 댔는데 된다. 우왕. 물론 내가 그 기능을 만든 것은 아니지만 신기하고 뿌듯함.
  • 27. 오픈소스 사용기 오픈소스 첫 도전 오픈소스 덕분에 내가 못하는걸 할 수 있게 되는구나!
  • 28. 오픈소스 사용기 오픈소스 첫 도전 근데 코드를 잘 볼 수 있어야 하는구나.
  • 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는 마우스 드래그등의 다양한 기능을 전부 차단
  • 42. 오픈소스 사용기 나도 한번! 오픈소스 활용! 기대 vs 현실
  • 43. 오픈소스 사용기 나도 한번! 오픈소스 활용! 그래도 완성은 했다 신난다
  • 44. 오픈소스 사용기 나도 한번! 오픈소스 활용! 결국 오픈소스도 누군가 만든 프로젝트 평생 그 프로젝트가 활성화 되있는것은 않기 때문에 완벽 할 수 없다. 가져다 쓰기 쉽게 되어있지 않은 것도 많다. API doc이라도 되어 있으면 감사하다. 적합한 오픈소스를 고르는 것, 잘 활용하는 것이 아주 중요
  • 45. 오픈소스 사용기 나도 한번! 오픈소스 활용! 오픈 소스에 휘둘린 내 프로젝트 또 뭔가 배워가는구나
  • 47. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 먼저 내 프로젝트에서 필요한 기능을 구체화 기능정의 화면정의
  • 48. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 오픈소스가 필요한 기능, 화면을 생각 오픈소스 기능정의 화면정의 오픈소스
  • 49. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 나에게 맞는 오픈소스 프로젝트 찾기 google
  • 50. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 github.com
  • 51. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 openhub.net
  • 52. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 선택 할 때 주의점 우리는 초보 • Documentation이 아주 잘 되어 있는 오픈소스 • 근처에 누군가 써본 것 • 인기 있는 오픈소스
  • 53. 오픈소스를 쓰는 과정 사용할 오픈소스 선택 선택 할 때 주의점 • 오픈 소스 라이브러리의 기능을 가져다 쓰는 것이 좋다 ex)stdio.h의 printf를 쓰듯이 • 완성된 프로그램의 경우 분석하기 어렵고 쓰기도 힘들다 • example 소스를 이틀 동안 봐도 모르겠다면 대책을 생각 해 볼 필요가 있다.
  • 54. 오픈소스를 쓰는 과정 오픈소스 첫 빌드 빌드 툴을 익혀야 오픈소스 프로젝트를 빌드 할 수 있다.
  • 55. 오픈소스를 쓰는 과정 오픈소스 첫 빌드 첫 빌드가 될 때까지 침착하자. 잘 안되면 검색을 해보고 막 복붙을 해보고 막 지워보자. 첫 빌드가 너무 어렵다….
  • 56. 오픈소스를 쓰는 과정 오픈소스 example 소스 분석 왠만한 거의 대부분의 오픈소스는 example 코드가 있다. • Hello World! • 보면서 개략적으로 어떻게 쓰는지 익혀보자
  • 57. 오픈소스를 쓰는 과정 쓰세요 이제 감을 잡았다면 쓰면 된다. 잘 안되면 영어로 구글에 검색을 해보자 내가 잘 안되면 다른 사람도 잘 안된 경험이 있다. StackOverflow에 왠만하면 다있음 한글로 검색하면 결과 별로 안나옴
  • 58. 오픈소스를 잘 쓰고 싶습니다 오픈소스를 잘 쓰고 싶습니다
  • 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 • 여기도 정말 정리 잘되있다. • 영문위키 진짜 진리 설명진짜 와 • 책사서 보는것도 굳굳
  • 65. 오픈소스를 잘 쓰고 싶습니다 로그 남기기
  • 66. 오픈소스를 잘 쓰고 싶습니다 로그 남기기
  • 67. 오픈소스를 잘 쓰고 싶습니다 했던 삽질 다시 하지 말자 구글 드라이브, 에버노트등으로 잘 정리해두자
  • 68. 오픈소스를 잘 쓰고 싶습니다 git 많은 오픈소스들이 git을 사용한다. 개인 프로젝트도 git등으로 코드 이력을 관리하는것이 좋다. git 을 다를줄 알면 언젠가 나도 오픈소스에 기여를 하고! 오오!
  • 69. 오픈소스를 잘 쓰고 싶습니다 경험 경험에서 우러나오는 실력!