허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

발표제목 : 소셜 코딩 깃헙, 그 이후 

발표자 : 허광남님

발표자료 : 

깃헙(GitHub) 사이트 : https://github.com/

github_the_day_after.ppt

git-workflow.pdf

NIKON CORPORATION | NIKON D80 | Aperture priority | Center-weighted average | 1/125sec | F/3.5 | 0.00 EV | 18.0mm | ISO-640 | Flash did not fire | 2011:09:24 13:32:25
NIKON CORPORATION | NIKON D80 | Aperture priority | Center-weighted average | 1/200sec | F/3.5 | 0.00 EV | 18.0mm | ISO-640 | Flash did not fire | 2011:09:24 13:39:56

깃헙에서도 private repository 가 된다.

-> git을 이용해서 hub를 만든거야.
-> 프로젝트를 그룹화가 가능해.
-> 유명한 개발자/프로젝트를 접하게 되면서 개발자의 도전정신에 자극을 받게 된다...라지만 난 영어가 딸려서 안될거야, 아마.
-> 버전넘버가 hashCode가 된다.
-> fork를 통해서 원 저자의 프로젝트를 그대로 가져다 사용할 수 있고,
-> pull request를 원저자에게 요청해서 적용할 수가 있다.
-> javascript

Git 분산이 어렵다.
-> 로컬에 커밋하면 서버는? push
-> 서버 것을 가져오려면? pull
-> 충돌(Conflict) 나면? 1. fetch, 2.merge
-> checkout은? git clone
-> 특정 버전은? git checkout

workflow model : 3가지의 모델형이 있다.
+ Central repository model
-> shared repository
+ dicator & lieutenant model
http://git-scm.org

깃헙이란
프리
오픈소스
분산
버전관리시스템

Git clone is
full-fledged repository not dependent on network

프로젝트 루트에는  README 가 작성해서 넣어주는 게 좋다.

public SVN to github -> 공개된 SVN을 깃헙으로 옮겨오징.

EGit; Eclipse git plugin / JGit

Git Repository를 기반으로 프로젝트를 만든다...라.
깃헙을 이용해서 프로젝트를 하나 진행해볼까??
conflict 

Git Conflict
-> pull / push 적절히 알아서 해

Jenkins
github for mac
xCode에서도 깃헙이 사용가능하다.

** 깃헙의 버전은 해쉬코드를 통해서 관리된다.

summary
- 소스 저장소의 진화
- github 프로젝트 호스팅
- 브라우저에서 수정/빌드 가능한 코딩
- 도구 EGit 이전에 깃헙에 대한 개념부터 쓰는 것이 좋다.
- 개발자들의 SNS라고 생각하면 좋다. 
- 글로벌 개발 구루 총집결
  = 리누스 토발즈(Torvaldz) : 리눅스 커널 
  = 더글라스 크락포드 : JSON, JSLint, JS Architect
- 오픈소스의 신 메카
- 지켜보기 좋은 대쉬보드 TimeLine : Watch
- 코드 저장소의 비주얼 최강
- 프로젝트 그루핑 관리
- 이슈트래커, 위키 지원
- Github for Mac, WIndows Bash console
- 대세

NIKON CORPORATION | NIKON D80 | Aperture priority | Center-weighted average | 1/200sec | F/3.5 | 0.00 EV | 18.0mm | ISO-640 | Flash did not fire | 2011:09:24 14:11:34



위의 내용은 강연을 들으면서 기록했던 내용들입니다. ^^

최근 깃헙에 등록된 사용자가 100만을 넘어섰습니다. '100만 프로그래머 양병지'라고나 할까요? ^^


   현재(2011.09.25.) 깃헙에 등록된 사용자는 100만 9천700여명이고, 이 숫자는 앞으로도 계속 증가하는 추세를 보일 것입니다. 순수 사용자가 100만이라고 보기는 어렵지만(깃헙을 소개하신 kenu님도 계정을 3개 가지고 계셨으니까!!), 개발자들의 SNS라고 할 수 있는 깃헙의 사용자는 앞으로도 꾸준하게 증가할 것은 의심할 여지가 없습니다. ^^

  해외 유명서비스들도 깃헙에서 오픈소스로 개발되고 있고, 최근 리누스 토발즈도 깃헙에 참여함으로 해서 더욱 많은 오픈소스 개발자들이 참여하는 계기가 되지 않을까 생각합니다. ^^ 리눅스를 애용하는 저로서는 기쁘기 그지없습니다.


깃헙(GitHub)은 리누즈토발즈가 제작한 Git(http://git-scm.com/)에서 시작되었습니다. 그것을 SNS와 결합하고 시각화 기능을 높인 것이 깃헙이라고 봐도 무방하지 않을까 개인적으로 생각합니다. 소셜한 버전관리 서비스가 됨으로 해서 소스관리를 손쉽게할 수 있게 된 것이죠. ^^ 깃헙에서는 오픈소스 프로젝트만 사용가능한 줄 알았는데, private 프로젝트들도 이용가능합니다.

  공개되어 있는 프로젝트를 지켜보고(Watch)하고 받아보고(Fork) 경우에 따라서는 자신이 수정한 소스를 적용(Pull Request) 요청하고 원제작자가 그 수정된 소스를 적용해주는 기쁨(영광이라고도 하더군요. ^^)을 누릴 수도 있습니다.

  우리나라 개발자들은 오픈소스 프로젝트에 대한 참여율이 낮다고 합니다. 사실 저 역시도 오픈소스 프로젝트에 참여하지 않고 있군요. 부끄럽고요. 아직 부족한 실력인지라 어느 정도 실력이 되면 참여해야지 하면서 미루고 있지만, 그렇게 높은 수준을 요구하지 않을 수도 있겠죠. ^^;

  '백문이 불여일견(百聞耳 不如一見)'이라고 하죠. 코딩 실력을 향상하기 위해 열심히 강연만 듣는 것보다는 코딩을 직접 해보는 것이 낫고 자기보다 뛰어난 실력을 가진 개발자들의 코드를 직접볼 수 있는 기회는 그리 많지가 않습니다. 깃헙에서는 그런 개발자들과 온라인을 통해 코드를 공유하고 코드를 통해서 그들과 대화를 나누는 경험을 공유할 수 있는 기회를 제공하게 되는 것이죠. ^^


  우리가 자주 사용하는 소스버전관리툴들이 존재하지만(저는 아직 깃헙을 직접 사용해본 경험은 없습니다. SVN을 사용하고 있지만 아직도 이해도가 많이 부족한 것 같아요. 제 노력도 많이 부족하죠. ^^; 실력이 뛰어난 개발자가 되는 길을 향한 수련은 끝이 없습니다. 개인적으로 궁리중인 프로젝트를 시도하게 되면 그때 깃헙을 이용해봐야겠습니다.) 깃헙 같은 녀석은 흔하지 않죠.


  최근의 개발 프로세스는 많은 사람들이 함께 모여서 협업을 통해 프로젝트를 진행하게 됩니다. 그래서 보다 효율적으로 소스를 관리하기 위해 소스관리툴을 사용하길 바라죠. 많은 사람이 같은 소스를 손보다가 일어나는 충돌(conflict)을 발생시키면 부끄럽습니다. >ㅅ<); 정말 그랬습니다. 서로가 수정한 소스가 충돌을 일으켜 빌드가 제대로 되지 않는 사태를 줄이기 위해 소스관리를 하게 되는데, 이럴 때 깃헙을 활용할 수 있다면 어떨까요?

깃헙 시작하기 : http://help.github.com/

  여기서 차근차근 깃헙을 익힌 다음에 제대로 사용해봅시다.


  그리고는 오픈소스의 세계로 빠져들어보는겁니다! ^^

  소셜 깃헙에 빠지신 광남님은 최근에 깃헙 전도사로 빠져든 허광남님의 깃헙 사랑은 앞으로도 쭈욱 계속되겠지요? ㅎㅎ

2 0