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
• 여기도 정말 정리 잘되있다.
• 영문위키 진짜 진리 설명진짜 와
• 책사서 보는것도 굳굳