2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
GitHub로 프로젝트 운영하기
-시스템소프트웨어 연구실 이건희
목차
-깃허브란?
-Repository 활용하기
-branches, releases
-깃허브 프로젝트 문서화
깃허브란?
• 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
• 다른 사람들과의 협업을 매우 용이하게 해줌
Repository 활용하기
Issue , Pull requests
• Issue 카테고리는 왜 사용하는가요?
• 버그를 기록하거나 요구사항을 전달할려고 사용
• Pull requests 카테고리는 왜 사용하는가요?
• 현재 진행중인 작업이 무엇인지 알게해줌. • 수정사항을 Merge 시킬 때 사용.
Pull requests로 넣은 수정사항이 Merge됨에 따라 Contributor가 될 수 있습니다!
branches, releases
branches
• 테스트 해보거나 새로운 기능을 개발하기 위해 사용하는 독립적인 commit
• Master branch : 기본 branch이자, 최종적으로 마무리 되는 branch
깃허브 문서화
README
• 해당 프로젝트의 개요나 설명, 설치법에 대해서 설명
• ‘README.md’ 파일을 인식
README’s Labels
• Badge images • Custom badge
https://shields.io/
README’s Labels
• Travis CI
• Continuous Integration : 푸시할 때 자동화된 빌드 및 테스트가 실 행되고 소프트웨어 품질을 향상시키는 개발 방식
• https://travis-ci.org/
Issue & Pull requests Template
• Maintainer에게 좀 더 정확하 게 의견을 전달하기 위해 만듬
• Insights > Comminuty 에서 추가 가능
LICENSE
네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
그 외의 Community profile
• Code of conduct
• Contributing guidelines
그 외에 프로젝트 관리에 도움되는 것
OpenHub 어플리케이션
Git Bash (Git bash 사용법 : http://gbsb.tistory.com/10)
GitHub Desktop
참고
• 네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
• 실제로 사용한 프로젝트 https://github.com/kuj0210/IoT-Pet-Home-System
2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
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 프로그램에 대한 부분을 추가하였습니다.
GitHub로 프로젝트 운영하기
-시스템소프트웨어 연구실 이건희
목차
-깃허브란?
-Repository 활용하기
-branches, releases
-깃허브 프로젝트 문서화
깃허브란?
• 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
• 다른 사람들과의 협업을 매우 용이하게 해줌
Repository 활용하기
Issue , Pull requests
• Issue 카테고리는 왜 사용하는가요?
• 버그를 기록하거나 요구사항을 전달할려고 사용
• Pull requests 카테고리는 왜 사용하는가요?
• 현재 진행중인 작업이 무엇인지 알게해줌. • 수정사항을 Merge 시킬 때 사용.
Pull requests로 넣은 수정사항이 Merge됨에 따라 Contributor가 될 수 있습니다!
branches, releases
branches
• 테스트 해보거나 새로운 기능을 개발하기 위해 사용하는 독립적인 commit
• Master branch : 기본 branch이자, 최종적으로 마무리 되는 branch
깃허브 문서화
README
• 해당 프로젝트의 개요나 설명, 설치법에 대해서 설명
• ‘README.md’ 파일을 인식
README’s Labels
• Badge images • Custom badge
https://shields.io/
README’s Labels
• Travis CI
• Continuous Integration : 푸시할 때 자동화된 빌드 및 테스트가 실 행되고 소프트웨어 품질을 향상시키는 개발 방식
• https://travis-ci.org/
Issue & Pull requests Template
• Maintainer에게 좀 더 정확하 게 의견을 전달하기 위해 만듬
• Insights > Comminuty 에서 추가 가능
LICENSE
네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
그 외의 Community profile
• Code of conduct
• Contributing guidelines
그 외에 프로젝트 관리에 도움되는 것
OpenHub 어플리케이션
Git Bash (Git bash 사용법 : http://gbsb.tistory.com/10)
GitHub Desktop
참고
• 네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
• 실제로 사용한 프로젝트 https://github.com/kuj0210/IoT-Pet-Home-System
2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
오픈소스SW 방식의 연구개발 프로젝트를 수행하는 기업의 거버넌스 체계를 어떻게 구축하고 관리해야 하는지 제시
Presents how to establish and manage a governance system for companies conducting R&D projects using open source SW.
한국공간정보학회 2013년 1월 25일 공간정보포럼 발표 자료.
오픈 소스와 독점 소프트웨어라는 이분법적 사고를 넘어서, 이 둘을 어떻게 전략적으로 잘 활용할 것인지에 대한 내용을 담고 있습니다.
그리고 이런 배경 속에서 한국의 GIS 회사가 어떤 독점 소프트웨어를 만드는 게 현재와 같이 빠른 시장 변화 속에서 살아남을 수 있는지에 대해서도 언급하였습니다.
2016년 12월 16일, ONOS/CORD 워킹 그룹 2차 세미나 (URL: http://onoffmix.com/event/84937/ )에서 발표한 내용입니다.
오픈스택 한국 커뮤니티에서 진행 중인 업스트림 컨트리뷰션 스터디 내용을 Github 및 ONOS와 같은 다른 오픈 소스 개발 워크플로우와 비교하면서 Gerrit을 활용한 워크플로우를 설명하였습니다.
<p>[데브멘토 동영상] 허광남 모비젠 TI연구소 MA연구팀</p><p>공개SW와 오픈소스, 잘 나가는 오픈SW 제품의 성공요인</p><p>2010 공개SW 개발자대회 1차 기술세미나</p><p>주최: 지식경제부</p><p>주관: 정보통신산업진흥원, 한국공개SW협회</p>
5. 오픈소스 제작의 의미
전세계 누구에게나 코드 리뷰를 받을 수 있는 기회
코드를 공개한다는 부분에서 더 신경쓰고 고민해서 코드를 짤 수 있는 원동력이 된다 !!!
경력이 쌓기 힘든 주니어 개발자에게 색다른 경력
오픈소스 활동을 통해서 내가 커뮤니티에 기여를 한 모습을 보여줄 수 있다 !!!
10. 의존성 관리 도구
의존성 관리 도구란?
애플리케이션 기능을 개발하기 위해 외부 라이브러리를 사용할 때
프로젝트와 해당 라이브러리의 상관관계를 용이하게 관리해주는 도구
11. 의존성 관리 도구
iOS 의존성 관리 도구
코코아팟(Cocoapods)
카르타고(Carthage)
스위프트 패키지 매니저(Swift Package Manager)
12. 의존성 관리 도구
의존성 관리 도구를 사용 ❌
▫ 해당 라이브러리에 대한 업데이트가 생겨 버전이 올라가면 일일히 코드를 수정
▫ 외부 라이브러리의 코드를 직접 프로젝트에 하드코딩
▫ 99.9999% 발생하는 휴먼에러 또한 무시할 수 없다.
의존성 관리 도구를 사용한다면 명령어 및 클릭으로 시간, 안전성 보장 !!
13. 라이선스 저작권
저작권 소스코드 공개 필요 동일한 라이선스 적용 상업적 이용
GPL ⭕ ⭕ ⭕
BSD ❌ ❌ ⭕
MIT ❌ ❌ ⭕
Apache ❌ ❌ ⭕
14. 라이선스 저작권
GPL
소스코드 공개 필요 ⭕ 동일한 라이센스 적용 ⭕ 상업적이용 ⭕
▫ 오픈소스의 철학에 기초해서 만들어진 것이기 때문에 '자유를 누린 만큼 너의 코드도 공개해!' 원칙을 가지고 있다.
▫ 동일한 GPL 라이선스를 사용해야한다.
▫ 이미 판례를 통해 법적인 효력까지 갖춘 라이선스
15. 라이선스 저작권
BSD
소스코드 공개 필요 ❌ 동일한 라이센스 적용 ❌ 상업적이용 ⭕
▫ GPL과 다르게 코드는 자유롭게 사용이 가능하고, 소스코드는 공개하지 않아도 된다.
▫ 상업적 이용이 가능하기 때문에 돈 받고 팔아도 된다.
▫ 책임 도피형 라이선스
▫ 누구나 자신의 용도로 사용할 수 있지만, 이 소프트웨어를 사용해서 발생 가능한 모든 리스크와 손해는 본인이 책임
16. 라이선스 저작권
MIT
소스코드 공개 필요 ❌ 동일한 라이센스 적용 ❌ 상업적이용 ⭕
▫ BSD를 기초해서 만든 라이선스라 규정은 거의 동일
▫ BSD 계열의 소프트웨어에서 일반 소프트웨어로 옮겨오기 위해 만든 라이선스
17. 라이선스 저작권
Apache
소스코드 공개 필요 ❌ 동일한 라이센스 적용 ❌ 상업적이용 ⭕
▫ 안드로이드 프레임워크 쪽의 대부분의 라이브러리가 이 라이선스 규정을 따르고 있다.
▫ 사용자에게 무제한적으로 사용을 허가하며, 특허 사용료를 요구할 수 없다.
▫ 소스코드를 무료로 공개해놓고 그걸 빌미 삼아 특허권 소송을 제기하는 더티한 플레이를 막기 위한 규정이 있다.
즉, 어떤 소프트웨어가 아파치 라이선스를 채택해서 배포했다면, 그 소프트웨어가 특허출원이 되어 있어도 사용자에게 특허 사용료를 요구할 수 없다.
22. CocoaPods
podspec
라이브러리를 생성하면 같은 경로에 {라이브러리명}.podspec 파일이 함께 생성
.podspec
pod 라이브러리에 대한 정보를 담고 있는 파일
▫ 해당 파일에 문제가 있을 경우 라이브러리를 CocoaPods에 배포할 때 오류가 발생 가능 (오타 조심)
27. CocoaPods
.podspec 검증
오픈소스 라이브러리로 배포할 기능 구현이 끝이 나면
.podspec 검증을 통해 .podspec 파일에 이상이 없는지 확인해야 한다.
pod spec lint
오류
1. podspec 파일에 swift 버전 명시 X
2. Command Line Tools 설정
3. 버전 tag 불일치