2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
Best practices with git - The essentials you should know about git to use if efficiently
Workshop by Otto Kekäläinen at OpenFest 7.11.2015, Sofia, Bulagaria.
This 68 slides beast surely has something new even for seasoned git developers!
With these slides we introduce the concept of source control and teach the core features to using Git, GitHub and BitBucket. You can find the accompanying video here. https://youtu.be/lZpNrCgGvuI
* SlideShare에서 특정 폰트로 쓰인 글자가 보이지 않는 경우가 있습니다. 다운로드 하셔서 PDF 리더로 보시는 것을 권해드립니다. -> 기존 폰트를 모두 나눔고딕으로 변경하였습니다.
OSS 포럼 개발 교육으로 진행한 Git, GitHub 강의 자료입니다.
(http://onoffmix.com/event/67081)
간단한 로또 번호 생성기 프로그램을 작성하면서 Git, GitHub에 대해 배웁니다.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
Simply your Jenkins Projects with Docker Multi-Stage BuildsEric Smalling
This is a a talk I presented at Jenkins World 2017.
Abstract:
When building Docker images we often use multiple build steps and Dockerfiles to keep the image size down. Using multi-stage Docker builds we can eliminate this complexity, bringing all of the instructions back into a single Dockerfile while still keeping those images nice and small.
One of the most challenging things about building images is keeping the image size down. Each instruction in the Dockerfile adds a layer to the image, and you need to remember to clean up any artifacts you don’t need before moving on to the next layer. To write a really efficient Dockerfile, you have traditionally needed to employ shell tricks and other logic to keep the layers as small as possible and to ensure that each layer has the artifacts it needs from the previous layer and nothing else. It was actually very common to have multiple Jenkins pipeline steps and/or projects with unique Dockerfiles for different elements of the final build. Maintaining multiple sets of instructions to build your image is complicated and hard to maintain.
With multi-stage builds, you use multiple FROM statements in your Dockerfile. Each FROM instruction can use a different base, and each of them begins a new stage of the build. You can selectively copy artifacts from one stage to another, leaving behind everything you don’t want in the final image and simplifying the both the Dockerfile and Jenkins configurations needed to produce your images.
Best practices with git - The essentials you should know about git to use if efficiently
Workshop by Otto Kekäläinen at OpenFest 7.11.2015, Sofia, Bulagaria.
This 68 slides beast surely has something new even for seasoned git developers!
With these slides we introduce the concept of source control and teach the core features to using Git, GitHub and BitBucket. You can find the accompanying video here. https://youtu.be/lZpNrCgGvuI
* SlideShare에서 특정 폰트로 쓰인 글자가 보이지 않는 경우가 있습니다. 다운로드 하셔서 PDF 리더로 보시는 것을 권해드립니다. -> 기존 폰트를 모두 나눔고딕으로 변경하였습니다.
OSS 포럼 개발 교육으로 진행한 Git, GitHub 강의 자료입니다.
(http://onoffmix.com/event/67081)
간단한 로또 번호 생성기 프로그램을 작성하면서 Git, GitHub에 대해 배웁니다.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
Simply your Jenkins Projects with Docker Multi-Stage BuildsEric Smalling
This is a a talk I presented at Jenkins World 2017.
Abstract:
When building Docker images we often use multiple build steps and Dockerfiles to keep the image size down. Using multi-stage Docker builds we can eliminate this complexity, bringing all of the instructions back into a single Dockerfile while still keeping those images nice and small.
One of the most challenging things about building images is keeping the image size down. Each instruction in the Dockerfile adds a layer to the image, and you need to remember to clean up any artifacts you don’t need before moving on to the next layer. To write a really efficient Dockerfile, you have traditionally needed to employ shell tricks and other logic to keep the layers as small as possible and to ensure that each layer has the artifacts it needs from the previous layer and nothing else. It was actually very common to have multiple Jenkins pipeline steps and/or projects with unique Dockerfiles for different elements of the final build. Maintaining multiple sets of instructions to build your image is complicated and hard to maintain.
With multi-stage builds, you use multiple FROM statements in your Dockerfile. Each FROM instruction can use a different base, and each of them begins a new stage of the build. You can selectively copy artifacts from one stage to another, leaving behind everything you don’t want in the final image and simplifying the both the Dockerfile and Jenkins configurations needed to produce your images.
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ian Choi
아래 행사에서 키노트 이후 두 번째 세션에서 발표했던 내용입니다.
Java Spring Boot 앱을 Terraform을 사용하여 Azure Kubernetes Service (AKS)에 배포하는 방법을 GitHub Codespaces 및 Copilot과 함께 데모를 진행하였습니다.
실습 내용은 아래 링크에서 확인 가능합니다:
https://github.com/Azure-Samples/gh-codespaces-copilot-in-a-day-ko/blob/main/README.md#%ED%80%B5%EC%8A%A4%ED%83%80%ED%8A%B8-2--%EC%95%A0%EC%A0%80-terraform-%EC%9D%B4%EC%9A%A9
[행사 정보]
행사명: Microsoft X GitHub Roadshow 2023
시간: 2023년 5월 15일 월요일 오후 1:00~5:30 (GMT+09:00)
장소: Seoul, Seoul, Korea
[Agenda]
01:00 PM - 01:20 PM: AI를 활용한 개발 생산성 향상
01:20 PM - 02:10 PM: Azure OpenAI로 나만의 봇 🤖 만들기! (feat. Spring Apps)
02:10 PM - 03:00 PM: Ship it! ⛴️ AKS에 스프링 앱 배포하기
03:00 PM - 03:20 PM: 쉬는 시간
03:20 PM - 04:10 PM: 파워플랫폼💪 Low-code/No-code로 CI/CD 접근하기
04:10 PM - 05:20 PM: 나를 찾아라 집사! 🔍 잃어버린 반려동물 신고하는 웹 앱 개발하기
05:20 PM - 05:30 PM: 마무리
클라우드 컴퓨팅, 기본부터 정복해보자!
클라우드 컴퓨팅, 줄여서 클라우드라고 이야기하죠.
클라우드 서비스가 등장한지 어느덧 약 15년이 지났지만 여전히 사용하기 쉽지 않다고 합니다.
본 교육에서는 클라우드 컴퓨팅 기본 사항부터 접근해보고자 합니다.
개요 및 아키텍처, 주요 서비스 이해를 통해 클라우드를 보다 효율적으로 사용하기 위한 기본기를 확보하고,
이를 기반으로 클라우드를 안정적으로 활용하는 지식을 함양하고자 합니다.
본 내용은 Microsoft Learn에 무료로 공개된 다음 주요 모듈 내용을 기반으로 설명을 위해 강의/발표 형태로 재구성하였습니다:
- Microsoft Azure 기본 사항: 클라우드 개념 설명: https://learn.microsoft.com/ko-kr/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/
- 개발자를 위한 클라우드 컴퓨팅 기본 사항: https://learn.microsoft.com/ko-kr/training/paths/cmu-cloud-developer-basics/
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요Ian Choi
* 본 세션은 2022년 11월 15일, Microsoft Ignite Spotlight on Korea 오프라인 행사에서 진행된 세션의 녹화본 발표 자료입니다.
- 제목: "디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요"
- 스피커: 최영락 (한국마이크로소프트, Territory Channel Mgr.) & 변정훈 (GitHub Star(aka., Outsider)
- 설명: AI가 많은 부분을 바꾸고 있는 세상에서 GitHub은 2021년 AI 페어 프로그래머인 GitHub Copilot을 발표하고 올해 유료 모델로 공개했습니다. GitHub Copilot과 함께 코딩할 때 어떤 부분을 도와주고 얼마나 유용한 지 설명합니다.
- 영상 보기: https://info.microsoft.com/KO-DevOps-VDEO-FY23-01Jan-10-From-design-to-coding-AI-drives-program-development-GitHub-Copilot-how-far-have-you-found-out-SRGCM8854_LP01-Registration---Form-in-Body.html
- 참고: 지난 Ignite 2022에서서 등장하신 사티야 및 OpenAI CEO 두 분께서 대화한 ChatGPT 및 Codex에 대한 자세한 내용은 https://youtu.be/EDsGm-3OEOY 를 통해서도 보실 수 있습니다.
#Python 프로그래밍 언어로 #NoSQL도 다룰 수 있죠 :) 여러 오픈 소스 중 #MongoDB 오픈 소스 데이터베이스를 직접 설치하여 #Flask 를 통해 테스트해보는 과정을 #Azure 환경에서 어떻게 하는지를 보여주고자 하였습니다.
[1] YouTube 영상: https://youtu.be/RiC5PkKq60g
[2] MongoDB 설치를 설명하는 MS Learn 콘텐츠: https://aka.ms/mongodb-install-on-ubuntu
[3] MS Learn에서 MongoDB를 Cosmos DB를 통해 배울 수도 있습니다: https://aka.ms/mongodb-from-azure-cosmosdb
[4] MongoDB 접속 테스트 샘플 Python 코드 다운로드: https://bit.ly/mongodb-python-connection-test-sample
[5] 간단한 CRUD 웹앱 (MongoDB & Flask): https://github.com/ianychoi/flask-mongodb (forked from https://github.com/rianrajagede/flask-mongodb)
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...Ian Choi
This is one of OpenStack project team updates and covers the latest changes in I18n project including the background on how OpenStack translation started from Chinese language team.
Actual speaker: Frank and Ian
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...Ian Choi
- Title: Innovation with open sources and app modernization for developers
- Event: OpenInfra Days Vietnam 2019 (URL: https://2019.vietopeninfra.org )
- Presenter: Ian Choi
2018 컨트리뷰톤 ( https://contributhon.kr/project#openstack ) 행사에 오픈스택 또한 참여합니다 :) 오픈스택 프로젝트 개요와 함께 업스트림 컨트리뷰션을 설명하면서 2018년도 컨트리뷰톤에서 오픈스택 팀에서 하고자 하는 방향을 설명하는 자료입니다.
2018년 7월 6일 (금), 공개SW GRAND CHALLENGE 행사에서 "오픈 인프라와 오픈 커뮤니티에서의 협력"을 주제로 발표를 하였습니다.
오픈 인프라가 탄생하기까지 IT 역사를 간단히 살펴보고, 오픈 인프라에서 사용하는 기술, 그리고 국내외 커뮤니티 협력에 대해 정리해 보았습니다.
지난 2018년 5월 캐나다 밴쿠버에서 개최가 이루어졌던 오픈스택 밴쿠버 서밋과 함께 행사 이전 이틀 간 개최되었던 Upstream Institute에 참가하였던 후기를 "오픈 인프라에서의 변화"라는 부제와 함께 내용을 공개SW개발자센터 6월 오픈랩세미나에서 공유하였습니다. 슬라이드 내용 참고 부탁드리고, 아울러 6월 28-29일 개최가 이루어지는 https://www.openinfradays.kr 행사에도 많은 관심 가져주셨으면 합니다.
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례Ian Choi
많은 Python 패키지 및 라이브러리 문서들은 일반적으로 GitHub 등에서 사용하는 Markdown 문법이 아닌, rst (Restructured Text) 문법을 사용하여 작성이 이루어지며, Sphinx 라이브러리를 활용하여 html 또는 pdf로 build하여 해당 패키지 및 라이브러리 문서화를 관리하고 있습니다. 본 발표에서는 rst가 무엇인지부터 시작하여, rst와 관련된 기본 문법을 통해 html 또는 pdf로 어떻게 생성할 수 있는지 각 단계별로 살펴봄으로써 Python 문서화가 이루어지는 전반적인 과정을 먼저 살펴봅니다. 이후, Python을 활용하고 있는 OpenStack 프로젝트에서 문서를 code처럼 관리하기로 결정한 이후, rst 기반으로 설치 가이드 등을 작성하고 Sphinx 및 별도 theme를 적용하여 html 및 pdf를 생성하여 활용하는 실 활용 사례를 같이 살펴보고자 합니다.
2017년 5월 31일, "코딩이랑 무관합니다만, + 오픈스택 한국 커뮤니티" 공동 주관 세미나에서 발표한 자료를 공유합니다. 클라우드 컴퓨팅 인프라에서 API 필요성 및 CLI에 대한 내용을 설명하였습니다.
- 행사 URL: http://onoffmix.com/event/101353
1. 2018년 8월, 서울시 앱 공모전 오픈소스 교육
최영락 (E-mail: ianyrchoi@gmail.com)
2. 2
목차
• 볼만한 자료들
• Git는 무엇일까?
• GitHub는 무엇일까?
• GitHub 협업 활용 예시 (Demo)
• 모바일 앱 개발 시나리오 (iOS, Android, Fusetools, …)
• 새로 프로젝트를 만드는 경우
• 이미 만들어진 프로젝트를 가져와 작업하는 경우
3. 3
볼만한 자료들 – (1)
• 사실, git와 관련된 좋은 책도 많고, 인터넷에 좋은 자료들도 많습니다.
• 몇 가지 책 (검색/간단히만 살펴본 것입니다)
이미지 출처: yes24.com, 한빛미디어 (리얼타임)
4. 4
볼만한 자료들 – (2)
• 튜토리얼
• Git을 시작하기 위한 간편 안내서, 어렵지 않아요!
• http://rogerdudler.github.io/git-guide/index.ko.html
• Git-scm: http://git-scm.com/book/ko/v1
• Atlassian git tutorial (영문): https://www.atlassian.com/git/
• 그림과 함께 배워보는 튜토리얼: https://learngitbranching.js.org/?locale=ko
• 한글 슬라이드
• 버전 관리를 들어본 적 없는 사람들을 위한 DVCS – Git
• http://www.slideshare.net/ibare/dvcs-git
• Svn 능력자를 위한 git 개념 가이드
• http://www.slideshare.net/einsub/svn-git-17386752
• Subversion vs. Git: 엄청난 간략 비교
• http://www.slideshare.net/ienvyou/subversion-vs-git-42605130
5. 5
그럼, 이 발표의 목적은?
• 오픈 소스에서 왜 Git을 많이 사용할까?
• GitHub도 있던데, Git하고 같은 걸까?
• 자료 읽다보니 명령어들이 많은데.. Git을 알려면 이 명령어들을 꼭 다 알아야
할까?
• Branch, Tag 이런 것들은 무엇일까?
• Merge와 Rebase도 있던데..
• Pull, Push, Pull Request?
• …
+ 모바일 앱 개발과 관련한 Git / GitHub 이야기를 더 하고 싶었습니다 ☺
6. 6
(시작하기 전, 한 가지 참고!)
• 일부 설명들은 편의를 위해 정확한 내용을 담고 있지 않을 수도 있습니다.
• 해당 부분을 보신 분께서는, 또는 덧붙이고 싶은 내용이 있으신 분께서는
ianyrchoi@gmail.com 으로 알려주시면 내용을 수정/보완하고자 합니다. ☺
7. 7
Git는 무엇일까?
• Git
• 버전 관리를 위한 도구
• 리눅스 커널의 창시자, 리누스 토발스께서 직접 만드심
• BitKeeper라는 상용 도구를 무료 사용하여 버전 관리를 했었는데 무료 사용이 제고되면서 직접
만들게 되었다고 함
이미지 출처: http://izquotes.com/quote/273567
8. 8
질문1: 버전 관리란 무엇인가요?
• 소스 하나 또는 묶음을 하나의 버전으로 간주하여 관리합니다.
• 파일/폴더를 추가/수정/삭제하여 사람이 직접 묶음을 버전으로 관리하자고 지정
• 원하는 때 예전 버전 내용 전체를 되돌려 볼 수 있음
• 특히 복잡한 코드 개발할 때는 이전 버전과 비교해 보기가 쉬워짐
파일 1개 또는
여러 개 수정
파일 1개 또는
여러 개 수정
(버전 1)
(버전 2)
(버전 3)
9. 9
질문2. 버전 관리를 대체 언제 사용하나요?
1) 개발 협업을 위해 사용합니다.
• 전체 개발 소스를 공유하면서 개발 파트를
나누어 공유
• 같은 모듈을 개발하더라도 소스를 서로
공유하면서 개발
• 이 때, 특정 파일은 변경하지 못하도록 lock을
걸 수도 있습니다 (이걸로 퇴근 못하는 직원 분들도 꽤…)
• 권한 설정을 통해 각 개발자 별로 접근 가능한 소스 목록도 제어하기도 합니다.
2) 개별적으로 버전 등 이력을 관리하기 위해 사용하는 경우도 있습니다.
3) 버전 관리되는 내역 전체를 오픈 소스로 공유하기도 합니다.
개발자
A
모듈A
개발자
B
모듈B
개발자
C
모듈A
개발 프로젝트
전체 소스
10. 10
질문3. 다른 버전 관리 도구들은?
• 오픈 소스 버전 관리 도구
• CVS: 90년대 말 – 2000년대쯤? 아는 분들은 사용한다고 들었던 버전 관리 도구
Subversion (SVN)이 대중화되면서 쓰는 사람들이 많이 줄었던 것 같음
• Subversion (SVN): 여러 파일 업로드 중 실패 시 롤백 (원자성, atomicity),
이진 파일 지원, rename (파일 이름 변경도 이력관리) 등 CVS를 대체 가능한
많은 기능이 추가되어 많은 사용자들이 CVS에서 전환된 것으로 알고 있습니다.
오늘날과 같이 Git이 많이 사용되기 전 가장 보편화되었던 버전 관리 도구
• Mercurial: Git와 비슷한 류의 분산 버전 관리 도구라고 합니다.
• 상용 버전 관리 도구
• 제가 써 본 건 Microsoft Visual SourceSafe와 Team Foundation Server밖에..
11. 11
질문4. ‘분산’ 버전 관리 도구는 머가 다른가요?
• 이를 설명하기 위해 보통 Subversion과 Git를 많이 비교합니다.
• Subversion은 버전 관리를 하려면 반드시 Subversion 서버와 통신하여
버전을 관리해야 합니다.
• 반면, Git는 네트워크가 되지 않아도 우선 자신의 컴퓨터에서 버전 관리를
하고 네트워크 통신이 될 때 서버와 통신해도 됩니다.
• 이런 이야기도 있었습니다.
미국의 개발자들은 인터넷이 안되는 휴양지에 가서도 Git를 이용하면 충분히 개발할 수
있고, 나중에 인터넷 되는 곳에 가서 서버와 쭉 통신하여 업무를 할 수도 있다고..
반면 한국은 인터넷이 아주 잘 되니 Git가 대중화되지 않을 수도 있겠다고…
→ 그런데, 요즘은 Git이 많이 사용되네요 ☺
12. 12
질문5. Git 명령어들을 꼭 익혀야 하나요?
• 적어도 초창기에는 그랬습니다.
• 지금도 Git를 잘 쓰려면 명령어들을 알면 도움이 많이 됩니다.
• 요즘엔 명령어들을 몰라도 pull, push, commit 등의 기본 개념만 알면 쓸
수 있는 좋은 GUI들이 많습니다.
• TortoiseGit, gitk, Sourcetree, GitHub Desktop, …
• 그래픽 화면으로 나와 명령어보단
쓰기 편합니다. ☺
13. 13
Git 기본 용어 – (1)
• Pull
• Git 저장소 서버로부터 내 컴퓨터 로컬로 버전 정보 전체를 가져온다.
• Commit
• 추가/수정/삭제된 폴더/파일들을 1개 버전으로 간주하여 내 컴퓨터 로컬에 버전 정보를
기록한다.
• Push
• 내 컴퓨터 로컬에 저장되어 있던 버전 정보를 Git 저장소 서버로 올린다.
14. 14
Git 기본 용어 – (2)
• Branch
• 버전들을 묶어서 Branch라고 합니다.
• 기본은 master입니다.
• 내 컴퓨터 내에 있는 Branch는 로컬 branch, 외부 서버에 있는 Branch는 리모트
branch라고 합니다.
• Tag
• Branch는 왔다갔다하면서 각각에 대해 내용을 변경하고 버전 관리까지 가능합니다.
• 반면 Tag는 특정 버전 위치에 대해 나중에 쉽게 찾아갈 수 있도록 이름을 지정해 놓은 것
뿐입니다.
15. 15
Git 기본 용어 – (3)
• Branch와 Tag의 사용 예시
• OpenStack neutron 소스
16. 16
Git 기본 용어 – (4)
• Merge
• Git로 버전 관리를 하다보면 1) 여러 개발자가 각자 개발한 버전을 합치는 경우 2) 서로
다른 Branch를 하나로 합치는 경우가 생깁니다.
• 이런 경우 합치는 과정을 Merge라고 합니다.
17. 17
Git 기본 용어 – (5)
• Rebase
• Git 과거 이력 편집 목적
• 따라서 Git 이력을 이쁘게 ☺ 정리도 가능
openstack 소스: commit 이력 ryu-book 소스: commit 이력
19. 19
몇 가지 좋은 GitHub의 기능
• 좋은 Web UI를 제공합니다.
• gh-pages Branch에 파일을
올리면 [계정명].github.io/[저장소명]
홈페이지가 완성됩니다.
• 여러 질문 & 답변, 이슈 사항을 기록하기 위한 Issues 페이지 제공
• Wiki 제공
• 월 정액으로 돈을 내면 공개되지 않은 사설 저장소 제공
• 돈을 더 내면 권한 관리가 가능한 organization 저장소 제공 (무료도 가능)
• … (너무 많아서…)
21. 21
GitHub - fork한 다음에는?
Pull
: 업데이트
[내 컴퓨터]
(커밋도
하고..)
Pull
: 업데이트
Push
: 업로드Push
: 업로드
Fork는 누구나 가능합니다.
그러나 누구나 이 저장소를 바꾸게 되면 이상하겠죠?
22. 22
GitHub – pull request
Pull
: 업데이트
[내 컴퓨터]
(커밋도
하고..)
Pull
: 업데이트
Push
: 업로드
Pull
request
: 검토
부탁합니다
원 저장소 소유자 또는 권한이 있는 자가 검토하여
맘에 들면 가져와서 업데이트하고, 토론/반려 등이 가능합니다.
23. 23
GitHub 협업 활용 예시 – 모바일 앱 개발
• GitHub Desktop으로 해 봅시다: https://desktop.github.com
24. 24
GitHub 협업 활용 예시 – 모바일 앱 개발
• 설치를 완료하면 다음과 같이 로그인하는 화면이 나타나요. 로그인하면
됩니다!
25. 25
GitHub 협업 활용 예시 – 모바일 앱 개발
• GitHub 계정으로 로그인합니다 (이메일, 계정명 관계없음)
26. 26
GitHub 협업 활용 예시 – 모바일 앱 개발
• 참고: 2-factor authentication이 요새는 대세입니다
27. 27
GitHub 협업 활용 예시 – 모바일 앱 개발
• 커밋 메시지에 나타나는 사용자 이름 및 이메일 주소를 설정합니다
28. 28
GitHub 협업 활용 예시 – 모바일 앱 개발
• 3가지 메뉴가 있습니다: GitHub에 바로 생성 / 로컬만 작업 / GitHub에서
가져오기
29. 29
GitHub 협업 활용 예시 – 모바일 앱 개발
• 프로젝트 만들기: 이름/설명/로컬 저장 경로 + README, .gitignore, 라이선스
30. 30
GitHub 협업 활용 예시 – 모바일 앱 개발
• 프로젝트 생성 완료 (로컬에만 나온 상태, GitHub에 아직 안 올림)
35. 35
GitHub 협업 활용 예시 – 모바일 앱 개발
• 어떤 수정을 하였는지 요약 (<50자), 상세 내용을 입력합니다 (커밋/commit)
36. 36
GitHub 협업 활용 예시 – 모바일 앱 개발
• 로컬에 추가된 결과 (GitHub.com 웹에는 아직 미 반영)
37. 37
GitHub 협업 활용 예시 – 모바일 앱 개발
• GitHub.com으로 퍼블리싱 (푸시/push)하여 웹에 추가가 된 상태
38. 38
GitHub 협업 활용 예시 – 모바일 앱 개발 (요약)
• 참고할 내용
• 혼자서 개발하는 경우 vs. 여러 명이서 같이 개발하는 경우에 대한 배려
• README 파일에 잘 설명을 해야 함 (보통 README.md - Markdown 문법으로 설명)
• LICENSE 파일 명시도 필요함 (GPL, LPGL, Apache, MIT, …)
• .gitignore 파일을 잘 활용합시다! (모바일 빌드 파일은 git 관리 불필요)
• 특히 협업할 때: “빌드”가 되는 상태로 공유합시다
• 다른 사람이 이미 만들었다면: 저장소를 “클론” 후 작업을 진행
39. 39
참고: README 파일 작성하기
• README.md 또는 README.rst 파일을 저장소 기본 폴더에 위치
• 확장자 md: 마크다운 문법
• 확장자 rst: Restructured Text 문법 (Python 프로젝트에서 주로 사용)
• 문법에 익숙하지 않은 경우 샘플 코드를 기반으로 README를 제작을 권장