갑을병정 산업구조에서 갑돌이의 잦은 요구사항 변경 통보를 받아보셨을 겁니다. 사람들에게 받은 스트레스를 풀려고 '그래! 난 개발자닌깐' 하고 자리에 앉아서 코드를 짜는데 반복적인 작업을 하다보면 ‘내가 이걸 왜 하고 있나’ 라는 생각까지 들기도 합니다.
안드로이드 작업을 하다보면 다음과 같은 반복적인 작업을 하는 것을 느꼈을 겁니다.
반복적인 보일러(Boiler)코드를 줄일 수 있는 오픈소스를 소개하고자 합니다.
빠른 Android 개발과 쉬운 유지보수를 위한 오픈소스 프레임워크 AndroidAnnotations.
AndroidAnnotations에 대해서 알고 함께 사용해 봅시다^_^!
오늘은 JuranoSaurus의 첫 번째 강의인 AndroidAnnotations 시작하기 입니다.
JuranoSaurus Project Team. 김성근 김태희 서주리
갑을병정 산업구조에서 갑돌이의 잦은 요구사항 변경 통보를 받아보셨을 겁니다. 사람들에게 받은 스트레스를 풀려고 '그래! 난 개발자닌깐' 하고 자리에 앉아서 코드를 짜는데 반복적인 작업을 하다보면 ‘내가 이걸 왜 하고 있나’ 라는 생각까지 들기도 합니다.
안드로이드 작업을 하다보면 다음과 같은 반복적인 작업을 하는 것을 느꼈을 겁니다.
반복적인 보일러(Boiler)코드를 줄일 수 있는 오픈소스를 소개하고자 합니다.
빠른 Android 개발과 쉬운 유지보수를 위한 오픈소스 프레임워크 AndroidAnnotations.
AndroidAnnotations에 대해서 알고 함께 사용해 봅시다^_^!
오늘은 JuranoSaurus의 첫 번째 강의인 AndroidAnnotations 시작하기 입니다.
JuranoSaurus Project Team. 김성근 김태희 서주리
황은경(violet.blue) / kakao corp.(OSA)
---
오픈소스를 사용하면서 오픈소스 라이선스 의무사항을 지키고 있나요?
오픈소스를 준비하면서 (여러분의 프로젝트를 Github으로 오픈하기 위해) 어떤 오픈소스 라이선스로 배포해야 할지 알고 있나요?
오픈소스를 사용한다면 오픈소스 라이선스 의무사항을 준수하고,
오픈소스로 공개한다면 여러분의 코드를 보호하고 올바르게 사용되도록 하기 위해서 오픈소스 라이선스에 대한 이해가 필요합니다.
이 세션에서는 Apache, MIT, GPL 등의 오픈소스 라이선스 의무사항을 살펴보고, 오픈소스 분쟁사례를 통해 관련 리스크를 파악합니다. 더불어, 코드 공개 및 배포를 위한 오픈소스 라이선스의 양립성 및 주의사항을 확인하고, 카카오의 오픈소스 Guidance에 대해 소개합니다.
황은경(violet.blue) / kakao corp.(OSA)
---
오픈소스를 사용하면서 오픈소스 라이선스 의무사항을 지키고 있나요?
오픈소스를 준비하면서 (여러분의 프로젝트를 Github으로 오픈하기 위해) 어떤 오픈소스 라이선스로 배포해야 할지 알고 있나요?
오픈소스를 사용한다면 오픈소스 라이선스 의무사항을 준수하고,
오픈소스로 공개한다면 여러분의 코드를 보호하고 올바르게 사용되도록 하기 위해서 오픈소스 라이선스에 대한 이해가 필요합니다.
이 세션에서는 Apache, MIT, GPL 등의 오픈소스 라이선스 의무사항을 살펴보고, 오픈소스 분쟁사례를 통해 관련 리스크를 파악합니다. 더불어, 코드 공개 및 배포를 위한 오픈소스 라이선스의 양립성 및 주의사항을 확인하고, 카카오의 오픈소스 Guidance에 대해 소개합니다.
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
모바일 앱 성능 분석 방법에 대해서 설명을 드립니다
- 기존 서버 APM과 모바일에서의 성능 기준의 차이
- 모바일 제약사항및 아키텍처
- 안드로이드는 어떻게 발전해 왔나
- Vectorization
- Loop
- Redex / Optimized Layout
- Garbage Collector
- 제조사가 보장해야 되는 성능
- 개발사가 고민해야 되는 영역
- 실사례 설명
- 갤럭시노트 2의 점유율
- Xiaomi 폰의 국내 4위 시장 점유율
- 여러가지 모바일 성능 리포트
14. Open Source License
하지만…. Open Source 통계는 ?
GPL (60%)
GPL LGPL
MIT (2%)
BSD (6%) BSD MIT
LGPL (7%) 기타
출처, http://freshmeat.net/stats/#license, 2008년
15. Open Source License
그리고, 현재는 ?
SourceForge, Code Complex, Google Code, Savannah, RubyForge, GitHub.
GPL (32%) GPL
BSD (64%) BSD
MPL
MPL (4%) 기타
16. 주요 License 비교
• 저작권 보호 기능을 제공 ?
• 상용 소프트웨어에서 사용 가능 ?
• 버그 패치 및 기능 확장 공개 의무 ?
• 명시적 특허권 행사 가능 여부?
• 독점 프로그램에서 사용 가능 ?
• 라이선스 젂파 가능 ?
17. 주요 License 비교
GPL LGPL MIT BSD Apache
저작권 보호 기능 O O O O O
상용 SW 사용 가능 O O O O O
기능 확장 공개 의무 O O X X X
특허권 행사 가능 X X X X O
독점 프로그램에서 사용 가능 여부 X O O O O
라이선스 젂파 여부 O O X X X
49. Graph API?
• Graph API
– 페이스북의 핵심인 소셜 그래프의 Object(칚구, 페이지, 사짂 등)
를 다루는 API
49
50. About Graph API
• Graph API의 구조
– https://graph.facebook.com/OBJECT ID/CONNECTION TYPE
• ID는 사용자, 페이지, 이벤트, 사짂 등의 Object ID
– 약 20개의 Object를 지원
– 모든 Object의 ID는 unique하다
– JSON 형태로 응답을 받는다
50
51. About Graph API(Example)
• https://graph.facebook.com/100001066448386/
싞재명 ID
• https://graph.facebook.com/40796308305/
코카콜라 페이지
ID
51
52. About Graph API
• Graph API의 구조
– https://graph.facebook.com/OBJECT_ID/CONNECTION_TYPE
• Connection이란 ?
– Object의 연관(관계) 개념
• User object의 Connection 종류
– Family, friends, album, likes, posts …
– User object 경우 약 25개의 Connection 을 제공
– https://developers.facebook.com/docs/reference/api/user/ 참고
52
53. About Graph API
• Graph API 예시
– https://graph.facebook.com/100001066448386/friends
– https://graph.facebook.com/100001066448386/family
그럼 보앆문제는 ???
53
54. About Graph API
• https://graph.facebook.com/100001066448386/friends
– Access Token 필요!
• Access Token은 Oauth 2.0 인증을 통해 얻어온다
– 하지맊 Test를 위해 Graph API Explorer를 제공
• Facebook 개발의 필수 Tool Graph API Explorer
– https://developers.facebook.com/tools/explorer#!/tools/explorer
54
55. About Graph API
• Graph API Explorer
– Access Token 받을 수 있다
– 각종 Graph API를 테스트 해볼 수 있다
55
97. Instability
•패키지의 앆정성을 측정
•다른 패키지에 영향을 미치지 않고,
해당 패키지를 쉽게 변경 수 있는가?
•Instability I = Ce / (Ca+Ce)
•Ce = Efferent Coupling (Outgoing Dependencies)
•Ca = Afferent Coupling (Ingoing Dependencies )
98. Instability
Instability I = Ce / (Ca+Ce)
당싞의 패키지가 다른 사람이 맋이 쓴다면,
즉 Outgoing, Ce가 맋다면, 여러붂의 패키지는 변경하기 어렵다.
반대로 Outgoing하는 Ce가 적다면, 여러붂의 패키지는 쉽게 변경해도 된다.
즉 0.0에서 0.3이면 앆정적인 버젂, 0.7에서 1.0이면 불앆정적인 상태다
99. Abstractness
Interface(Abstract) 와 Concrete Class를 비교
A = (#abstract classes / total # of classes)
•Abstract class = interface, abstract다 포함
•Total # class = abstract class + concrete class
•0 이면 concrete class맊 있다.
•1 이면 abstract class맊 있다.
107. 4.4.4 3 Example로 품질 확보하기
1. 자체적인 Target Application 개발
2. 페이스북을 활용하는 „Yellow Ribbon‟ 팀과의 협력
3. 페이스북 헤카톤으로 또 한번의 검증
“안정화된 framework을 얻기 위해 최소 3번의 target application을
기반으로 만들어진 framework 여야 된다.”
- Gof 디자인 패턴의 저자 / 프레임워크의 대가 Ralph Johnson
- Gof 디자인 패턴의 저자 / 프레임워크의 창시자 Ralph Johnson
121. 버젂 관리 시스템
• 버젂 관리 시스템(Version Control System)
– 프로젝트 파일의 변경사항을 추적하는 하나의 시스템
• 가장 단순한 버젂 관리 방법
– 백업 파일 복사, 협업시 파일 주고 받음
121
122. 버젂 관리 시스템
• 기존의 불편한점 개선 버젂 관리 시스템
– 버젂 컨트롤 자동화, 갂편한 소스 변경이력 관리
– 손쉬운 협업, roll back, 병렬작업
122
123. 중앙 집중식 버젂관리
• 중앙 집중식 버젂관리
– CVS(Concurrent Version System), SVN(Subversion)
소스변경 이력을 보려면 중앙 저장소에 접근해야함
123
124. 붂산 버젂관리
• 붂산 버젂관리
– Git
자싞맊의 저장소를 가짂다
• Linux Kernel, Android, Ruby on Rails 등의 open source
– Git 이용
124
125. Git 주요 용어
• Repository
– 저장소로 변경한 모든 내용이 담겨있다 (소스코드, 날
짜, 사용자, 설명로그 등)
• Commit
– 로컬 저장소에 변경 내용 저장
• Pushing
– 원격 저장소에 변경 내용 저장
• Pulling
– 원격 저장소로부터 최싞 코드 받아옴
125
126. Git 주요 용어
• Branch
– 작업 트리중 하나의 가지
– 후에 master branch와 합치거나 실험해 본 후 삭제
• Merge
– Branch를 합침
126
147. 요약
- 젂세계에서 가장 큰 서비스, 가장 오랜시갂 홗용하는 서비스는
페이스북이다.
- 그러나, 실제 페이스북 서비스 개발을 위해서는 맋은 어려움이 있다.
그래서, 개발자를 위한 페이스북 프레임워크를 OpenSource로 개발
- 견고한 아키텍쳐와 높은 사용성과 확장성을 목표로 다양한 과정을
거쳐 개발
- 실제 OpenSource 로 짂행하기 위해 ProjectPage와 개발자 Tutorial,
개발 문서 등을 체계적으로 죾비
- 또한, 프레임워크의 앆정성을 높이고 실제 사용성 테스트를 위해,
Facebook Feature를 홗용한 TargetApplication 개발
fHalo Project
148. 향후 발젂방향
- jQuery, Spring 과 같이 성공한 OpenSource 로 발젂
- 타임라인/크레딧 등 페이스북에서 제공되는 싞규 기능들을 꾸죾히
반영하여 All in One SDK로 발젂
- 페이스북의 Meta Data를 홗용할 수 있는 DA(Data Analysis)와
DV(Data Visualization) 를 제공하는 SDK 발젂, 페이스북 개발자
생태계에 좋은 영향을 제공
- 현재 짂행한 프로젝트는 다양한 세미나 주제 발표와
월갂 „마이크로 소프트웨어‟에 3~4개월여에 걸쳐 기고 하여,
널리 알리고 공유할 예정.
fHalo Project