devon2013: 사내git저장소개발사례

49
사내 Git 저장소 개발사례 다음커뮤니케이션 김대현

Upload: daehyun-kim

Post on 29-Nov-2014

4.056 views

Category:

Technology


1 download

DESCRIPTION

DevOn2013에서 다음기술세션에서 발표한, "사내 Git 저장소 개발사례"

TRANSCRIPT

Page 1: devon2013: 사내Git저장소개발사례

사내 Git 저장소 개발사례다음커뮤니케이션 김대현

Page 2: devon2013: 사내Git저장소개발사례

김대현 @hatemogi

다음커뮤니케이션 백엔드 플랫폼 개발자

카페, 플래닛, 캘린더, 마이피플 개발에 참여

사내 오픈소스 Git저장소 서비스 Digit 개발

넥스트 인큐베이션 스튜디오, AWS 지원

Ruby, Erlang, Scala, Redis, Riak, Postgres

Page 3: devon2013: 사내Git저장소개발사례

발표내용

Git의 기본적인 특징과 장점

Git 저장소 서비스 개발 배경

Git 저장소 개발의 기술적/사회적 측면

조직내 (개발적) 변화의 어려움과 수용과정

Page 4: devon2013: 사내Git저장소개발사례

기술의 확산과 수용과정 Diffusion Process

Page 5: devon2013: 사내Git저장소개발사례

신기술 확산 과정

인식 Awareness

관심 Interest

평가 Evaluation

시행 Trial

수용 Adoption

http://en.wikipedia.org/wiki/Diffusion_of_innovations#Process

Page 6: devon2013: 사내Git저장소개발사례

Innovators

Early Adopters

Early Majority

Late Majority

Laggards

INNOVATION ADOPTION LIFECYCLE

http://en.wikipedia.org/wiki/Technology_adoption_lifecycle

Page 7: devon2013: 사내Git저장소개발사례

버전 관리 시스템

Page 8: devon2013: 사내Git저장소개발사례

소스 코드

사라지면 안되죠

계속 바뀝니다 (파일 변경/추가/삭제/이동)

바뀌기 전후의 내용을 파악, 이전 내용으로 복구

무엇을 누가 언제 어떻게 바꿨나요?

Page 9: devon2013: 사내Git저장소개발사례

버전 관리 시스템

RCS

CVS, Subversion, Perforce

Git, Mercurial, Bazaar, Darcs

Page 10: devon2013: 사내Git저장소개발사례

Git의 특징

Page 11: devon2013: 사내Git저장소개발사례

Git의 장점

매우 쉽고 빠른 로컬 브랜치

로컬/리모트 저장소

매우 간단한 브랜치 관리

Page 12: devon2013: 사내Git저장소개발사례

브랜치의 모습

Page 13: devon2013: 사내Git저장소개발사례

매우 쉽고 빠른 로컬 브랜치

아이디어 실험하는 브랜치 오가며 작업

실서비스(프로덕션) 배포된 브랜치를 유지관리

새로 만드는 기능마다 별도 브랜치를 만들고 자유로이 이동

브랜치를 만들어서 실험하다가, 이 방법이 아니다 싶을때 폐기

Page 14: devon2013: 사내Git저장소개발사례

Git 배우기

Page 15: devon2013: 사내Git저장소개발사례
Page 16: devon2013: 사내Git저장소개발사례
Page 17: devon2013: 사내Git저장소개발사례
Page 18: devon2013: 사내Git저장소개발사례
Page 19: devon2013: 사내Git저장소개발사례

Git을 도입해보자!

Page 20: devon2013: 사내Git저장소개발사례

Git이 좋다더라

써볼까? 좋은데!

개발 업무에 활용하자

주위의 반응: 무관심, 부정, 소극적인 긍정

설득 시도 실패

포기 및 적응

Page 21: devon2013: 사내Git저장소개발사례

변화가 어려운 이유

Page 22: devon2013: 사내Git저장소개발사례

누구에게 결정권이 있나?

일단 내 담당 업무는 아님

사내 한 팀이 소스버전 전사 저장소를 운영하고 있음

누구에게 얘기해야하나? 담당팀? 내 상위자? CTO?

Page 23: devon2013: 사내Git저장소개발사례

심리적 오류

현상 유지 편향 Status quo bias

소유효과 Endowment effect

손실회피 Loss aversion

매몰비용의 오류 Sunk cost fallacy

Page 24: devon2013: 사내Git저장소개발사례

그렇다고 나서자니, 갈등!

새로운 버전 관리 시스템을 쓰고 싶지 않은 사람들과의 갈등

기존 Subversion지원팀과의 갈등

왜 남의 일에 간섭? 당신 일이나 잘하세요!

장애나면 어떻게 할꺼야?

Page 25: devon2013: 사내Git저장소개발사례

Digit의 시작

Page 26: devon2013: 사내Git저장소개발사례

결국 변화를 일으키기 위해서는

누군가의 hardwork가 필요

내가 총대를 메려니 매우 귀찮음

해봐야 안될 거라는 합리화

하지만 능동적이고 주도적인 행동이 필요

Page 27: devon2013: 사내Git저장소개발사례
Page 28: devon2013: 사내Git저장소개발사례
Page 29: devon2013: 사내Git저장소개발사례

총대를 메면, 지원세력이 등장 !

실체를 드러내야 스스로도 무엇을 원했는지 알게됨 !

생각보다 더 많은 사람이 원했던 것

Page 30: devon2013: 사내Git저장소개발사례
Page 31: devon2013: 사내Git저장소개발사례

Digit의 모습

Page 32: devon2013: 사내Git저장소개발사례
Page 33: devon2013: 사내Git저장소개발사례
Page 34: devon2013: 사내Git저장소개발사례
Page 35: devon2013: 사내Git저장소개발사례
Page 36: devon2013: 사내Git저장소개발사례
Page 37: devon2013: 사내Git저장소개발사례
Page 38: devon2013: 사내Git저장소개발사례

Digit 적용기술

Page 39: devon2013: 사내Git저장소개발사례

Ruby, SinatraActiveRecord

grit / rugged

Twitter Bootstrap

Haml

CoffeeScript

marked.js

Page 40: devon2013: 사내Git저장소개발사례

OpenSSH

SSH 키 인증

libcurl

Page 41: devon2013: 사내Git저장소개발사례

Riak + Redis, SQLite

Riak: 분산 키-밸류 데이터베이스

Redis: 메모리 자료구조 저장소

SQLite: SQL 데이터베이스 엔진

사내 시스템에 트래픽 걱정은 제발…

Page 42: devon2013: 사내Git저장소개발사례

또 다른 기술을 도입한다면

Page 43: devon2013: 사내Git저장소개발사례

올바른 접근 방법나서서 리소스를 투자할 만큼 가치가 있는 일인가?

논리적 근거와 반박 vs. 감성적 접근과 제안

목표를 명확히하고 변화에 집중

시간을 충분히 갖고 변화에 도전

도와줄 사람을 찾기

권한보다는 용서를 구하기

Page 44: devon2013: 사내Git저장소개발사례
Page 45: devon2013: 사내Git저장소개발사례

마무리

Page 46: devon2013: 사내Git저장소개발사례

마무리

신기술의 수용과정

버전 관리 시스템 Git의 장점

조직 내 변화는 어렵다

그럼에도, 어려움을 헤치고 변화를 이끌어 내는 방법

Page 47: devon2013: 사내Git저장소개발사례

자기가����������� ������������������ 세상을����������� ������������������ 바꿀����������� ������������������ 수����������� ������������������ 있다고����������� ������������������ 생각할����������� ������������������ 만큼����������� ������������������ 미친����������� ������������������ 사람들이����������� ������������������ 결국����������� ������������������ 세상을����������� ������������������ 바꾸는����������� ������������������ 사람들이다.

People who are crazy enough to think they can change the world are the ones who do.

Page 48: devon2013: 사내Git저장소개발사례

http://www.flickr.com/photos/wiertz/8011916658/

Page 49: devon2013: 사내Git저장소개발사례