devon2013: 사내git저장소개발사례
DESCRIPTION
DevOn2013에서 다음기술세션에서 발표한, "사내 Git 저장소 개발사례"TRANSCRIPT
사내 Git 저장소 개발사례다음커뮤니케이션 김대현
김대현 @hatemogi
다음커뮤니케이션 백엔드 플랫폼 개발자
카페, 플래닛, 캘린더, 마이피플 개발에 참여
사내 오픈소스 Git저장소 서비스 Digit 개발
넥스트 인큐베이션 스튜디오, AWS 지원
Ruby, Erlang, Scala, Redis, Riak, Postgres
발표내용
Git의 기본적인 특징과 장점
Git 저장소 서비스 개발 배경
Git 저장소 개발의 기술적/사회적 측면
조직내 (개발적) 변화의 어려움과 수용과정
기술의 확산과 수용과정 Diffusion Process
신기술 확산 과정
인식 Awareness
관심 Interest
평가 Evaluation
시행 Trial
수용 Adoption
http://en.wikipedia.org/wiki/Diffusion_of_innovations#Process
Innovators
Early Adopters
Early Majority
Late Majority
Laggards
INNOVATION ADOPTION LIFECYCLE
http://en.wikipedia.org/wiki/Technology_adoption_lifecycle
버전 관리 시스템
소스 코드
사라지면 안되죠
계속 바뀝니다 (파일 변경/추가/삭제/이동)
바뀌기 전후의 내용을 파악, 이전 내용으로 복구
무엇을 누가 언제 어떻게 바꿨나요?
버전 관리 시스템
RCS
CVS, Subversion, Perforce
Git, Mercurial, Bazaar, Darcs
Git의 특징
Git의 장점
매우 쉽고 빠른 로컬 브랜치
로컬/리모트 저장소
매우 간단한 브랜치 관리
브랜치의 모습
매우 쉽고 빠른 로컬 브랜치
아이디어 실험하는 브랜치 오가며 작업
실서비스(프로덕션) 배포된 브랜치를 유지관리
새로 만드는 기능마다 별도 브랜치를 만들고 자유로이 이동
브랜치를 만들어서 실험하다가, 이 방법이 아니다 싶을때 폐기
Git 배우기
Git을 도입해보자!
Git이 좋다더라
써볼까? 좋은데!
개발 업무에 활용하자
주위의 반응: 무관심, 부정, 소극적인 긍정
설득 시도 실패
포기 및 적응
변화가 어려운 이유
누구에게 결정권이 있나?
일단 내 담당 업무는 아님
사내 한 팀이 소스버전 전사 저장소를 운영하고 있음
누구에게 얘기해야하나? 담당팀? 내 상위자? CTO?
심리적 오류
현상 유지 편향 Status quo bias
소유효과 Endowment effect
손실회피 Loss aversion
매몰비용의 오류 Sunk cost fallacy
그렇다고 나서자니, 갈등!
새로운 버전 관리 시스템을 쓰고 싶지 않은 사람들과의 갈등
기존 Subversion지원팀과의 갈등
왜 남의 일에 간섭? 당신 일이나 잘하세요!
장애나면 어떻게 할꺼야?
Digit의 시작
결국 변화를 일으키기 위해서는
누군가의 hardwork가 필요
내가 총대를 메려니 매우 귀찮음
해봐야 안될 거라는 합리화
하지만 능동적이고 주도적인 행동이 필요
총대를 메면, 지원세력이 등장 !
실체를 드러내야 스스로도 무엇을 원했는지 알게됨 !
생각보다 더 많은 사람이 원했던 것
Digit의 모습
Digit 적용기술
Ruby, SinatraActiveRecord
grit / rugged
Twitter Bootstrap
Haml
CoffeeScript
marked.js
OpenSSH
SSH 키 인증
libcurl
Riak + Redis, SQLite
Riak: 분산 키-밸류 데이터베이스
Redis: 메모리 자료구조 저장소
SQLite: SQL 데이터베이스 엔진
사내 시스템에 트래픽 걱정은 제발…
또 다른 기술을 도입한다면
올바른 접근 방법나서서 리소스를 투자할 만큼 가치가 있는 일인가?
논리적 근거와 반박 vs. 감성적 접근과 제안
목표를 명확히하고 변화에 집중
시간을 충분히 갖고 변화에 도전
도와줄 사람을 찾기
권한보다는 용서를 구하기
마무리
마무리
신기술의 수용과정
버전 관리 시스템 Git의 장점
조직 내 변화는 어렵다
그럼에도, 어려움을 헤치고 변화를 이끌어 내는 방법
자기가����������� ������������������ 세상을����������� ������������������ 바꿀����������� ������������������ 수����������� ������������������ 있다고����������� ������������������ 생각할����������� ������������������ 만큼����������� ������������������ 미친����������� ������������������ 사람들이����������� ������������������ 결국����������� ������������������ 세상을����������� ������������������ 바꾸는����������� ������������������ 사람들이다.
People who are crazy enough to think they can change the world are the ones who do.
http://www.flickr.com/photos/wiertz/8011916658/