07월 10일 리뷰 - 리뷰자 김종욱소셜 코딩으로 이끄는 GitHub 실천 기술오오츠카 히로키지음윤인성 옮김책을 읽으면서.. 소셜 코딩으로 이끄는 GitHub 실천 기술 이란 책을 읽으면서 가장 흥미로웠던 점은 순수 Github만을 묘사하기 위해서 쓴 책이라는 것이었다. 다만 처음 부분이 Cml Interface상에서 동작하는 것을 논하므로 Cygwin과 괕은 Linux 환경에서의 코딩에 익숙하지 않은 분이라면 sourceTree와 같은 GUI 툴을 이용하여 본 서적의 내용을 나름 잘 적용해서 학습하시면 좋을듯 했다. ( 독자도 처음엔 따라 할만하다가 나중에너는 좀 어려워서 sourceTree를 깔아서 실습을 했으니 말이다)책을 읽으면서 전체적으로 느낀점은 정말로 Git과 Github를 이제는 내가 진행하는 모든 프로젝트에 적용해야겠다는 사실이었다. 이렇게 좋은 도구를 그동안 몰랐다는 것에 너무나 내 자신에게 미안했고 무지에 눈물이 흐를정도였으니 말이다.책의 내용만 꼼꼼히 본다면 독자의 생각엔 어느정도 git과 github를 사용하는데에 큰 어려움이 없을 것이라 생각했다.( 단 Gui Interface를 선호하는 분의 경우에는 sourceTree를 사용하시길 권한다.)【소셜 코딩으로 이끄는 GitHub 실천 기술을 정리하며…….】 소셜 코딩으로 이끄는 GitHub 실천 기술 을 읽으며 이제는 더 이상 코드를 독자적으로 개발하는 시대가는 끝났다는 것을 절실히 느낄 수 있었다. 왜냐하면 이러한 웹상에 그리고 스토리지 상에 효율적으로 공유하고 관리해주는 도구가 있는데 혼자의 고집으로 어리석은 코딩을 짠다는 것은 시대의 발상에서 크게 벗어난다고 생각되었기 때문이다.따라서 앞으로 프로젝트를 하려는 모든 개발자와 입문 개발자분들께 지금부터라도 git/github와 같은 버전관리 툴을 꼭 사용해보시라 권하고 싶었다.【점수…….】구성 : ★★★★☆내용:★★★★★디자인: ★★★★★전문성 : ★★★★☆공유란 옛날에는 무조건 나쁜 의미로 받아들였지만, 요즘과 같이 혼자서 할 수있는 일이 엄청나게 제한되는 세상에서, 하나의 솔루션으로써 재조명 받고있는 생각이 들었다. 왜냐하면 어들가든 협업을 가르치고 대학에서나 고등학교 심지어 초등학교에서까지 팀프로젝트가 존재하기 떄문이다. 아마도 이는 시대가 급변하는 세상에 개인 혼자서 이 모든 것을 따라 잡기엔 상황이 너무나 어렵고 가장 효과적인 솔루션이 공유를 통한 협업이란 생각이 들었다. 따라서 훌륭한 개발자라면 이젠 자신의 모든 것을 공유하면서 타인의 모든 것들을 자신의 식대로 변형하고 긍정화하여 수용할 수 있는 능력을 가진 사람을 의미한다고 생각했다.#본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고시 참고 URL과 명시를 저작자에게 알려주시길 바랍니다.#본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 확정된 답이 안임을 명시합니다.#학습과 관련된 질문과 문제에 대한 질문은 일체 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야 말로 진정한학습자입니다.###### 감사합니다 #####
실용적인 개발 진행 과정을 직접 체험하면서 익힐 수 있다!
Pull Request 테스트 사이트 제공!
이 책은 전 세계의 수많은 개발자가 사용하고 있는 GitHub를 실무에서 어떻게 사용하는지 설명하는 책이다. 따라서 GitHub의 기본적인 사용 방법뿐만 아니라, GitHub를 활용한 개발 진행 과정과 개발을 지원해 주는 추가적인 도구들도 함께 설명하고 있다. GitHub는 실제 개발 현장에서 일어나는 다양한 문제를 해결할 수 있는 기능을 제공하는데, 이 책에는 그런 문제 해결을 위한 기능을 실무에서 어떻게 활용하느냐에 대한 노하우가 가득 담겨 있다.
여러 기업에서 GitHub로 다양한 개발 진행 과정을 개선해 왔던 저자의 풍부한 경험을 토대로 정리한 책이므로, 실무에서 GitHub를 활용하는 데 많은 도움이 될 것이다. 또한, 최근 업데이트된 내용이나 화면도 놓치지 않고 적용하여 빠르게 변화하는 GitHub 세계를 접하는 데 한층 더 도움이 될 것이다.
Chapter 1 GitHub 세계에 어서오세요 _ 1
1.1 GitHub란? 2
GitHub 회사와 octocat 2
일반적인 Git 리포지토리 호스팅 서비스가 아니다 3
GitHub 이용 형태 4
Column GitHub와 Git의 차이 4
1.2 GitHub를 사용하면 무엇이 달라질까? 4
협업 형태 변화 5
다른 팀이 작성하던 소프트웨어를 더 자세히 볼 수 있다 8
공개 소프트웨어 세계와 같은 개발 스타일 10
1.3 소셜 코딩이란? 10
1.4 소셜 코딩을 해야 하는 이유 12
드넓은 개발 세계 12
코드를 작성할 수 있는 개발자 13
GitHub의 가장 큰 특징은 ‘사람을 바라본다’는 것 13
1.5 GitHub가 제공하는 주요한 기능 14
Git 리포지토리 14
Organization 15
Issue 15
Wiki 16
Pull Request 16
Column GitHub에서 주목받고 있는 소프트웨어 17
1.6 정리 17
Chapter 2 Git 기본 _ 19
2.1 탄생 배경 20
2.2 버전 관리란? 21
집중형과 분산형 21
집중형과 분산형 중에 어떤 것이 좋은 것일까? 23
2.3 설치 24
맥과 리눅스의 경우 24
윈도우즈의 경우 24
이 책에서 사용하는 환경 27
2.4 기본 설정 28
사용자 이름과 메일 주소 설정 28
출력되는 명령어를 쉽게 읽을 수 있도록 만드는 방법 29
2.5 정리 29
Chapter 3 GitHub 사용 준비 _ 31
3.1 사전 준비 32
계정 생성 32
계정 설정 33
SSH Key 설정 33
공개 키 등록 34
소셜 기능 이용 36
3.2 실제로 사용해 보자 36
리포지토리 작성 36
Column 코드를 공개할 때의 라이선스 41
리포지토리 접근 41
코드 공개 41
3.3 정리 46
Chapter 4 Git을 직접 사용하면서 배우기 _ 47
4.1 기본적인 사용 방법 48
git init: 리포지토리 초기화 48
git status: 리포지토리 상태 확인 49
git add: 스테이지 영역에 파일 추가 50
git commit: 리포지토리 변경 내용을 기록 51
git log: commit 확인 53
git diff: 변경 내역 확인 55
4.2 브랜치 생성 58
git branch: 브랜치를 보는 방법 60
git checkout -b: 브랜치를 만들고 변경하는 방법 61
토픽 브랜치 63
통합 브랜치 64
git merge: 브랜치 merge 64
git log --graph: 브랜치를 시각적으로 확인 66
4.3 commit을 변경하는 조작 67
git reset: 과거 상태로 복원 67
충돌 문제 해결 72
git commit --amend: commit 메시지 수정 74
git rebase -i: 변경 내역 조작 76
4.4 원격 리포지토리 송신 80
git remote add: 원격 리포지토리 등록 81
git push: 원격 리포지토리 전송 82
4.5 원격 리포지토리에서 가져오기 84
git clone: 원격 리포지토리를 가져오기 84
git pull: 최신 원격 리포지토리를 가져오기 87
4.6 Git과 관련된 추가 참고 자료 88
4.7 정리 90
Chapter 5 GitHub의 기능을 확실하게 알아보자 _ 91
5.1 키보드 단축키 92
5.2 툴바 93
UI 구성 설명 93
5.3 대시보드 96
UI 구성 설명 97
5.4 프로필 98
UI 구성 설명 98
5.5 리포지토리 102
UI 구성 설명 102
파일 관련 조작 108
Column 파일 이름의 일부로 검색 108
변경 내역 확인 109
5.6 Issue 111
다양한 요소를 삽입할 수 있는 문서 작성 방식 112
라벨을 사용한 정리 115
Milestones을 사용한 관리 116
Column 공헌하기 위한 규칙을 알리자! 117
할 일 목록 117
commit 메시지로 Issue 조작 118
특정 Issue를 Pull Request로 변환 119
5.7 Pull Request 120
Column diff 또는 patch 파일 형식 활용 121
Conversation 122
Column 댓글 인용 122
Commits 123
Column 이모티콘 자동 완성 기능 124
Files Changed 124
5.8 Wiki 125
History 127
Column Wiki에 사이드 바 생성 127
5.9 Pulse 129
active pull requests 130
active issues 130
commits 131
Releases published 131
Unresolved Conversations 132
5.10 Graphs 133
Contributors 133
Commit Activity 134
Code Frequency 135
Punchcard 135
Network 136
members 137
5.11 Settings 138
Options 138
Collaborators 140
Webhooks & Services 142
Deploy Keys 142
5.12 Notifications 142
5.13 그 외의 기능 144
GitHub Pages 144
GitHub Jobs 144
GitHub Enterprise 145
GitHub API 145
5.14 정리 146
Column 맥의 통지 센터로 GitHub의 Notification 확인 146
Chapter 6 Pull Request를 해보자 _ 147
6.1 Pull Request 개요 148
Pull Request란? 148
Pull Request의 흐름 148
6.2 Pull Request 전송 준비 149
수정할 소스 코드 확인 150
Fork 151
clone 151
branch 152
코드 추가 153
변경 사항 commit 154
원격 브랜치 작성 154
6.3 Pull Request 전송 155
6.4 Pull Request를 효과적으로 사용하는 방법 158
개발 도중에도 토론을 위한 Pull Request를 보내세요 159
개발 중이라는 것을 알리는 방법 159
Fork하지 않은 브랜치에서 Pull Request 전송 160
6.5 리포지토리 관리 161
리포지토리 Fork, clone 162
원본 리포지토리 이름 설정 162
최신 데이터 획득 162
6.6 정리 163
Chapter 7 Pull Request가 도착한다면 _ 165
7.1 Pull Request를 보내는 방법 166
7.2 Pull Request를 보낼 준비 167
코드 리뷰 167
그림 변경 사항 확인 168
Pull Request의 내용을 현재 개발 환경에 반영 170
Column 코드 관리 기술을 증진시키고 싶을 때 174
7.3 Pull Request를 보내기 174
메인 브랜치에 merge 175
변경 사항 push 176
7.4 정리 177
Chapter 8 GitHub와 연계되는 툴과 서비스 _ 179
8.1 hub 명령어 180
개요 180
기본 설정 181
명령어 183
Column hub 명령어와 GitHub Enterprise 190
8.2 Travis CI 190
개요 190
실제 사용 191
8.3 Coveralls 196
개요 196
기본 설정 198
8.4 Gemnasium 202
8.5 Code Climate 204
8.6 Jenkins 205
개요 205
설치 207
bot 계정 작성 208
bot 계정 권한 설정 208
Jenkins SSH 키 설정 211
GitHub pull request builder plugin 설치 212
Git plugin 설정 213
GitHub pull request builder 설정 214
작업 생성과 설정 216
결과 통지 219
댓글을 활용한 관리 221
8.7 정리 223
Column Coderwall로 GitHub 프로필 작성 224
Chapter 9 GitHub를 사용하는 경우의 개발 진행 과정 _ 225
9.1 팀 내부에서 GitHub를 사용해야 할 때 고려할 것들 226
모든 것을 간단하게! 226
리포지토리를 Fork하지 않는 방법 228
9.2 GitHub Flow - Deploy 중심의 개발 스타일 230
9.3 GitHub Flow의 흐름 231
항상 Deploy 상태를 유지, 배포라는 개념은 없다 231
새로운 작업을 할 때는 master 브랜치에서 새로운 브랜치를 작성 232
작성한 새로운 브랜치에 commit하자 233
정기적으로 push하자 233
Pull Request를 활용하자 234
반드시 다른 개발자들에게 코드 리뷰를 받도록 하자 234
merge 후에는 곧바로 Deploy하자 236
9.4 GitHub Flow를 실천하기 위한 전제 조건 236
Deploy 작업 자동화 236
테스트 238
9.5 GitHub Flow 따라하기 239
Fizzbuzz 개요 239
새로운 기능 추가 240
새로운 브랜치 작성 241
새로운 기능 구현 243
Pull Request 작성 245
피드백 246
들여쓰기 수정 247
테스트 추가 249
Pull Request 추가 252
Pull Request를 merge 253
9.6 팀에서 GitHub Flow를 실천하려면 254
Pull Request 크기 축소 254
테스트 환경 준비 255
Pull Request 피드백 256
빠른 Pull Request 처리 257
9.7 GitHub Flow 정리 257
9.8 Git Flow - 배포 중심의 개발 스타일 258
표준 개발 진행 과정 258
복잡성 260
9.9 Git Flow 도입을 위한 준비 260
git-flow 설치 260
리포지토리 초기 설정 262
9.10 Git Flow 따라하기 264
master 브랜치와 develop 브랜치 264
feature 브랜치 265
Pull Request 전송 268
코드 리뷰를 활용한 코드 품질 향상 271
로컬 develop 브랜치 갱신 271
release 브랜치 실행 273
Column 디폴트 브랜치 설정 273
원격 리포지토리 반영 280
hotfix 브랜치 281
9.11 Git Flow 정리 288
Column 버전 번호 붙이기 288
Chapter 10 회사에서 GitHub 사용하기 _ 289
10.1 전 세계의 표준 개발 환경을 회사에서도 사용해 봅시다 290
회사에 GitHub를 도입하는 경우의 장점 290
Organization 이용 291
GitHub 보안 확인 291
유지보수 시간 주의 292
서비스 장애 관련 정보 확인 292
10.2 GitHub Enterprise 295
개요 295
도입 장점 296
도입 단점 296
도입하면 좋은 경우 296
Column GitHub 리포지토리를 서브버전 리포지토리로 이용하는 방법 297
10.3 Git 호스팅을 수행하는 다른 소프트웨어 298
Column Bitbucket 299
10.4 정리 300
APPENDIX A GitHub GUI 클라이언트 _ 301
A.1 GitHub for Mac, GitHub for Windows 302
A.2 Source Tree 304
APPENDIX B 코드를 Gist로 쉽게 공유하기 _ 307
B.1 Gist의 특징 308
B.2 Gist 작성 309
UI 설명 309
B.3 Gist 목록 313
Gist 메뉴 313
파일 메뉴 315
B.4 Your Gists 316
B.5 정리 317
찾아보기 _ 318
카테고리 없음