Your SlideShare is downloading. ×
  • Like
Yobi-hands-on-lab-at-d2fest
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Yobi-hands-on-lab-at-d2fest

  • 47 views
Published

Yobi hands-on-lab at d2fest

Yobi hands-on-lab at d2fest

Published in Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
47
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. insanehong@NAVER Labs. 김덕홍 / NAVER Labs twitter : @insanehong blog : http://insanehong.kr Yobi hands on lab
  • 2. http://dev.naver.com/d2 ! • Yobi at NAVER Labs ! • FRENDS(Front-end Developers) ! • KGUG(Korea Git User Group) ! • Hackrslab Opens Source Team ! • http://about.me/insanehong 발표자 소개
  • 3. http://dev.naver.com/d2 • Yobi란? ! • Yobi 기능 소개 ! • Yobi 를 이용한 Fork & Pull Model 실습 개요
  • 4. http://dev.naver.com/d2 • 기본적인 Yobi 기능을 활용할 수 있었으면… ! • Fork & Pull Model 을 익힐 수 있다면… ! • 적어도 .zip file 로 source code 를 올리는 일은 없게….;; 목표
  • 5. http://dev.naver.com/d2 목표
  • 6. http://dev.naver.com/d2 Yobi 란? ! • 설치형 프로젝트 호스팅 소프트웨어 ! • Open Source - Apache2 License ! • All-in-one - java7+ / online ! • Windows / Mac / Linux 지원 ! • http://yobi.io
  • 7. http://dev.naver.com/d2 Yobi 란? ! • Play Framework / JAVA ! • EBean (ORM) ! • JGit ! • H2 Embedded DB ! • Twitter Bootstrap, Less
  • 8. http://dev.naver.com/d2 주요 기능들 • 이슈 트레커 ! • 코드 저장소 - git, svn ! • 코드 리뷰 - block comment, line comment ! • 온라인 코드 브라우저 ! • 게시판, 마일스톤 ! • 그룹기능, 멘션, notification 등등
  • 9. http://dev.naver.com/d2 자 이제부터 절 따라해보세요! 엄청 쉬워요! https://www.flickr.com/photos/lyntally/5007650073
  • 10. http://dev.naver.com/d2 Git 설정하기 $ git config --global user.name “username” # git commit 시 autor 정보로 사용될 username 설정 $ git config --global user.email "your_email@example.com" # git commit 시 autor 정보로 사용될 email 설정 • Username • Email
  • 11. http://dev.naver.com/d2 프로젝트 만들기(1)
  • 12. http://dev.naver.com/d2 프로젝트 만들기(2)
  • 13. http://dev.naver.com/d2 프로젝트 만들기(3)
  • 14. http://dev.naver.com/d2 Local 코드 저장소 만들기 $ mkdir ~/hello-world # 프로젝트 디렉토리 생성 ! $ cd ~/hello-world # 생성한 프로젝트 디렉토리로 이동 ! $ git init # git 저장소 초기화 - 현재 디렉토리에 “.git” 디렉토리가 생성됨 ! $ git remote add origin 원격 저장소 URL # 원격 저장소로 코드를 보내기 위한 원격저장소 URL 등록 # git remote add origin http://insanehong@yobi.d2fest.kr/insanehong/hello-world ! $ git remote -v # 등록된 원격 저장소 확인 • Local 에 새로운 git repository 생성 - git init
  • 15. http://dev.naver.com/d2 commit & push command 이해(1) $ touch README.md # vi, text editor 등을 이용하여 README.md 파일을 열고 “hello world” 를 입력하고 저장 ! $ git status # working directory 의 변경사항 확인 ! $ git add README.md # commit 이전에 working directory 변경내용을 staging 영역으로 옮김 ! $ git commit -m "커밋할 내용을 최대한 상세히 적는 것이 좋음" # git commit -m "initialize commit : add readme file" # 여러줄의 메세지를 남기고 싶은 경우 git commit 만 입력 ! $ git log # commit 이 제대로 이루어졌는지 확인 ! $ git push origin master # local repository 이루워진 새로운 commit 을 remote repository 로 push
  • 16. http://dev.naver.com/d2 commit & push command 이해(2)
  • 17. http://dev.naver.com/d2 어때요? 참 쉽죠?! https://www.flickr.com/photos/24293932
  • 18. http://dev.naver.com/d2 프로젝트 코드 관리 및 개발 방법 • Branching model - commit 권한을 가지고 있어야 함. - 원본 저장소를 기반으로 branch 를 나누어서 개발하는 방법. - master, devel, feature, hofix 등의 branch 를 나누어서 개발 - gitflow • Fork & Pull model - commit 권한을 가지고 있지 않은 사람들 . - 원본 저장소에 commit 권한이 없어도 변경사항에 대한 반영을 요청 할수 있음
  • 19. http://dev.naver.com/d2 왜 Fork & Pull model 을 실습하나요? • 많은 Open Source Project 들이 선택하고 있는 코드 기여의 방법 ! • 팀 단위 프로젝트에서도 사용가능 한 방법 중 하나 ! • Yobi 도 Fork & Pull model 를 사용하여 개발하는 중 ! !
  • 20. http://dev.naver.com/d2 원본 프로젝트의 코드 저장소 복사(fork) 하기(1)
  • 21. http://dev.naver.com/d2 원본 프로젝트의 코드 저장소 복사(fork) 하기(2)
  • 22. http://dev.naver.com/d2 원본 프로젝트의 코드 저장소 복사(fork) 하기(3)
  • 23. http://dev.naver.com/d2 Local에 복사한 코드 저장소 만들기 $ git clone 복사한 저장소 URL # 원본 저장소가 아닌 복사한 저장소의 URL 을 사용. # git clone http://insanehong@yobi.d2fest.kr/insanehong/yobi-hands-on ! $ cd ~/yobi-hands-on # 프로젝트 디렉토리로 이동 ! $ git remote add upstream 원본 저장소 URL # 원본 저장소 변경사항을 받아오기 위해 원본 저장소를 upstream 으로 등록 # git remote add upstream http://insanehong@yobi.d2fest.kr/D2FEST2014/yobi-hands-on ! $ git remote -v # 등록된 원격 저장소 확인. 원본 저장소와 복사한 저장소가 잘 등록돼었는지 확인 • 복사한 저장소 받아오기 - git clone
  • 24. http://dev.naver.com/d2 새로운 파일을 만들어 복사한 저장소에 올리기 (1) $ cp ./whoami.md ./whoami-00.md # whoami.md 파일 복사하고 vi, text editor 등을 통해서 내용을 수정. ! $ git add whoami-00.md # git add whoami-00.md ! $ git commit -m "새로운 커밋에 대한 상새한 설명" # git commit -m "whoami.md 파일을 복사해서 whoami-00.md 파일을 만들고 프로필 입력 함" ! $ git push origin master # 복사 한 원격 저장소에 새로운 commit 내용을 push # 원본저장소가 아닌 복사한 저장소로 push 하는 것이 핵심 • forked repository 에 new commit & push 하기
  • 25. http://dev.naver.com/d2 새로운 파일을 만들어 복사한 저장소에 올리기(2)
  • 26. http://dev.naver.com/d2 변경된 내용을 원본 저장소에 Pull Request (1)
  • 27. http://dev.naver.com/d2 변경된 내용을 원본 저장소에 Pull Request (2)
  • 28. http://dev.naver.com/d2 변경된 내용을 원본 저장소에 Pull Request(3)
  • 29. http://dev.naver.com/d2 변경된 내용을 원본 저장소에 Pull Request(4)
  • 30. http://dev.naver.com/d2 코드 리뷰(1)
  • 31. http://dev.naver.com/d2 코드 리뷰(2) # vi, text editor 등을 이용해서 리뷰 내용을 반영하여 수정. ! $ git add whoami-00.md ! $ git commit -m "새로운 커밋에 대한 상새한 설명" # git commit -m “불필요한 닉네임 정보 삭제" ! $ git push origin master # 리뷰를 반영하여 추가된 commit 을 복사된 저장소로 push # git push origin master • 코드 리뷰 반영해서 commit & push 하기
  • 32. http://dev.naver.com/d2 코드 리뷰(3)
  • 33. http://dev.naver.com/d2 코드 리뷰(4)
  • 34. http://dev.naver.com/d2 Pull Request 변경내용을 원본 저장소에 병합(1)
  • 35. http://dev.naver.com/d2 Pull Request 변경내용을 원본 저장소에 병합 (2)
  • 36. http://dev.naver.com/d2 원본저장소의 변경된 내용을 local 저장소에 반영하기(3) $ git fetch upstream # 원본 저장소의 변경된 내용(commit)을 받아온다. ! $ git merge upstream/master # 원본 저장소에서 받아온 변경 내용을 local 저장소에 병합 ! $ git log master # 추가된 commit 내용 확인 • merge 된 commit을 local 저장소의 master branch 에 반영
  • 37. http://dev.naver.com/d2 무엇이든 시작이 어려울 뿐… 모두 같은 출발선 http://www.flickr.com/photos/jakla/499224896/
  • 38. http://dev.naver.com/d2 이까이꺼 뭐 대충! 응? http://www.flickr.com/photos/jakla/499224896/http://www.flickr.com/photos/slworking/8149338837/
  • 39. Q & A
  • 40. http://dev.naver.com/d2 참고 할 만한 reference http://www.flickr.com/photos/jakla/499224896/http://www.flickr.com/photos/slworking/8149338837/ • http://git-scm.com/book/ko/ - Progit 한글 번역 ! • 이왕이면 Progit 종이 책을 사서 보시는 것을 추천 ! • https://www.facebook.com/groups/kgugs/ - KGUG ! • http://insanehong.kr/category/yobi/
  • 41. http://dev.naver.com/d2 감사 합니다. Happy Hacking! ^^; http://www.flickr.com/photos/jakla/499224896/http://www.flickr.com/photos/slworking/8149338837/http://www.flickr.com/photos/adulau/8442476626/