Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NDC 2013 DVCS와 코드리뷰, 자동화를 통한 쾌속개발
Search
reinkim
April 25, 2013
Programming
5
4.8k
NDC 2013 DVCS와 코드리뷰, 자동화를 통한 쾌속개발
reinkim
April 25, 2013
Tweet
Share
More Decks by reinkim
See All by reinkim
NDC 2014: 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
reinkim
3
3.2k
모바일 게임용 PaaS/BaaS 구현사례와 디자인 트레이드오프
reinkim
5
3.1k
Other Decks in Programming
See All in Programming
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
310
Developing static sites with Ruby
okuramasafumi
0
270
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
240
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
160
関数実行の裏側では何が起きているのか?
minop1205
1
690
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
Cell-Based Architecture
larchanjo
0
110
AIコーディングエージェント(NotebookLM)
kondai24
0
180
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
100
チームをチームにするEM
hitode909
0
310
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
100
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Designing Experiences People Love
moore
143
24k
Practical Orchestrator
shlominoach
190
11k
The Invisible Side of Design
smashingmag
302
51k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Speed Design
sergeychernyshev
33
1.4k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Transcript
%7$4৬ܻ٘࠭ ӒܻҊزചܳాೠ ࣘѐߊ ӣ SFJO!VQOMPSH
ߊࣗѐ ࣗਝযূפয _ূॿࣗѱࢲߡѐߊ _֏टܻইѱࢲ࠺झ"1*ѐߊ _ ੌҗஂ۽$ 1ZUIPO۽Ӓې߁ਸפ
ਵ۽ ࡅܰѱ ѐߊೞҊर
ߡӒח ਵݶ જѷ
ߡӒܳח ۴ೠ ߑߨ
పझ ب ѐߊ
ਬӝמాపझ۽ߡӒח࠺ਯ Not Detected 27% Detected by Test 73% 4PVSDF$PEF$PNQMFUF
ޖਸ ؊ೞݶ ബҗੌө
٣ੋܻ٘࠭۽ߡӒח࠺ਯ Not Detected 11% Detected by Review 89% 4PVSDF$PEF$PNQMFUF
٘٣ੋਸ औѱ ܻ࠭ೞ۰ݶ
ױਤ۽ੌೠ
زച
ѐߏݡӝ
ѐߊ۽ࣁझ
٘ܳࢿೞҊࣗী֍ਸٸө 45f1cf55 a8d8323 6162b7e Bug #31 Topic #1 Topic #1-1
Review Server Build Server 1. push 2. build & test 3. verify Repository peer devs 4. review 5. commit dev
ࣗীח٘ܳѐߊജ҃ਵ۽ Repository Review Server 5. commit Development Servers Build Server
6. merge build Package Server 7. upload packages 8-a. deploy 8-b. deploy (devs. per se) 9. test 7. upload packages 7. upload packages
જ۽ࣁझܳ ਬبೞח بҳܳॳ
1VTI
7FSTJPODPOUSPMgit
সױਤgit topic-branch
ѐ߹ѐߊо #SBODIױਤ۽ ة݀ਵ۽ੌೞӝ
ӝמਸೠޘਵ۽ 45f1cf55 a8d8323 6162b7e Topic #2 Topic #1 Bug #31
Bug #47 Topic #2-1 Topic #1-1 ӝמೞաܳUPQJDCSBODI۽স
Push Review Server 45f1cf55 a8d8323 6162b7e Topic #2 Topic #1
Bug #31 Bug #47 Topic #2-1 Topic #1-1 push ٘সաݶܻ࠭ࢲߡ۽ࠁմ
#VJME5FTU 7FSJGZ
࠽٘ࠈزਵ۽࠽٘ ӝ҅оੜೞחੌӝ҅о
$POUJOVPVTCVJMEjenkins
Build, Test and Verify Modified Source Code Review Server Build
Server 2. build & test 3. verify push Builder VM Tester VM 2a. Build 2b. Run tests ழ݃7.ীࢲ࠽٘పझ೧ࢲഛੋೠ
పझ ࠽٘ೞҊաࢲ زਵ۽పझ
పझपಁ ۽ӒېݠоࣻೞҊ ӝ҅оపझ߈ࠂ
3FWJFX
࠽٘ࢲߡѨࢎܳాҗೞݶ ੋрܻ٘࠭ܳѢ
эݽৈࢲܻ٘࠭ 5FYU From https://commons.wikimedia.org/wiki/File:Meeting_room_for_working_groups.JPG
gerritਢীࢲܻ٘࠭
زܐܻ࠭ܳ߉Ҋ ೖ٘ߔীٮۄࣻೠ
45f1cf55 a8d8323 6162b7e PatchSet #1 Review Server Push patchset #1
git commit --amend 45f1cf55 a8d8323 6162b7e PatchSet #2 PatchSet #1
Review Server edit Push patchset #1 Push patchset #2
45f1cf55 a8d8323 6162b7e PatchSet #2 PatchSet #1 PatchSet #3 Review
Server edit edit Push patchset #1 Push patchset #2 Push patchset #3 git commit --amend ೖ٘ߔਸ߉Ҋࣻೠ٘ܳदܻ࠭
$PNNJU .FSHF#VJME
$PNNJU Review Server Repository review +2 5. commit review +1
review +2 ӛੋܻ࠭ೖ٘ߔਸ߉Ҋաݶࣗীcommit
ܻ٘࠭оդ٘ח ࢎਊೡࣻѱ࠽٘ೠ
ಁఃࢤࢿ merge build Versioned Package Private Package Server upload package
Versioned Package Versioned Package Reviewed Src Code Snapshot റীॳӝಞೞب۾ߡࠢੋಁఃܳࢤࢿ೧ࢲղࠁմ
6QMPBE1BDLBHFT %FQMPZ
࠽٘ೠಁఃܳ ߓನࢲߡীৢܽ
ߓನࢲߡಁఃҙܻदझమࢎਊ
1BDLBHJOHDebian Apt
৵ زച ࢎਊೞחۖಬ 04 য ীౠച ઓࢿܻ ߡҙܻ Ӕాઁ
۽ஸ۞ࢎࢸ QSJWBUF ࣗ ঐഐ೧द۽ਤৈࠗపझоמ ߓನࢸҙܻೞחోҗোزੜؽ
ಁఃܳৢܻݶ ѐߊࢲߡܳসؘೠ
%FQMPZ زചػ ߓನ߂সؘ
ৈ۞оߑߨഒਊ زചػߑߨਸݢॳݴ "QUಁఃਊ ࢲߡ߹ 1VQQFUࢸਊ ࣽରਵ۽ܻೡࠗ࠙ਊTIFMMTDSJQU Ӓېبউغݶ ࢎۈࣚਵ۽
5FTU
ѐߊࢲߡѐߊѐѐੋ ࢜ಁఃܳ ࢸೞҊపझೠ
ѐߊపझѐߏݡӝ
ॄࠁঋਵݶޅਸޙઁٜبইঠ
ߡӒоݶ ࠛಞ೧ࢲۄب ࡈܻ ࣻೞѱػ
ߡӒܳҊաࢲ द߈ࠂ
ۧѱ֙
ѐߊীࢎਊೞחبҳ
5PPMTPG5SBEF (JU +FOLJOT 9FO4FSWFS (FSSJU FNBJM*3$$BNQGJSF "15
(JU࠙ߡҙܻبҳ $POGMJDUܻ ࣘب ݆ਬܻ౭ ழޭפ౭ޙࢲ ҙܻস
5SFOET git, svn, perforce
$POGMJDUܻ
ਵ۽ੌೞӝীࢤӝחੌ r100 r101 r102 Repository User A r102 A1 A2
r102 B1 User B
$POGMJDUоߊࢤ೮ਸٸ r100 r101 r102 Repository B1' A1 A2 May cause
CONFLICTS r102 B1 User B 47/١ীࢶDPOGMJDUܳউਵ۽ܻೡࣻױহ
%7$4҃merge r101 r102 Repository merge A1 A2 B1 #ਵ۽غجইоࢲݻߣۄبददب೧ࠅࣻ
ࡅܰ TWOC[S৬ਬࢎIUUQUILPDIHJUIVCDPNXIZHJUJTCFUUFSHJUJTGBTU
ҙ۲بҳо݆
(JU)VC$MJFOU (JU)VCীࢲߓನೞח(6*DMJFOU 8JOEPXT.BD
4PVSDF5SFF "UMBTTJBOীࢲߓನೞח(6*DMJFOU 8JOEPXT.BD
ా҅दпച য়ۄੋࣗۄࢲ بҳٜܳ݅ӝоऔ
ా҅दпച BTBTFSWJDF ਬܐࢲ࠺झ۽۠Ѧোزೞӝب
ٜ݅যॳѢա $PNNJUदр࠙ನ
ޛۿ݅חѤইתפ
(JUਸॳӝ൨ٚ #JOBSZੌܻࣘب ٣۩ఠܻױਤ۽оઉয়חѪࠛо ٣झҕр ӂೠҙܻ ੌࠗחHFSSJUޖ݃दெસפ
+FOLJOT࠽٘ࢲߡ ۞Ӓੋনೞ (JUHFSSJUਗ एࢸࢎਊߨ ਢӝ߈ ࢎਊೞחҔ݆ইޙઁоࢤ ҂ਸٸ೧Ѿೞӝऔ Jenkins Project http://jenkins-ci.org
5SFOET Jenkins, CruiseControl
+FOLJOTEBTICPBSE 7.߹प೯࢚కହ 1SPKFDU߹࠽࢚٘ടହ
+FOLJOTܳਊ೧ࢲ ഛೞӝएਢ۠ূ٘ۢॳݴ 7.ٜਸTMBWFOPEFইܲ࠽٘সਸೠ ৈ۞TMBWFOPEFоਵݶزदীৈ۞ழਸܻೡ ࣻ ࠽٘పझഛੋਊب۽بॳҊ ܻ࠭оդ٘ܳಁఃೞחਊب۽بॵ
9FO4FSWFS࠽٘ജ҃ )ZQFSWJTPSܳझ݀۽ઁ যೞӝऔ 7.ࢤࢿઁࢎਊزച 04ਊب߹7.మ݁ਸળ ࠺ೞҊࢎਊೞӝрಞ ࢿמ Xen Project http://xen.org
эജ҃ীࢲ࠽٘ೡࣻب۾ 9FOӝ߈7.ࢎਊ
&YBNQMF#VJMETDSJQU #
&YBNQMF#VJMETDSJQU #
&YBNQMF#VJMETDSJQU #
(FSSJUܻ٘࠭بҳ ਢӝ߈ܻ࠭6* সߑधࢶఖоמ زചೞӝए HJUױࠁ৮ ழޭפ౭ޙࢲച ࢿמ Gerrit Code Review
http;//gerrit.googlecode.com
5SFOET gerrit, Crucible, ReviewBoard
ਢಕউীࢲ ܻ٘࠭೧ࠁӝ
HFSSJUoverview ܻ࠭ੋղܻ٘࠭ೡܻ٘࠭৮ܐػղ٘ݾ۾
HFSSJUdiff. view ߸҃ࢎ೦ਸೞաঀѨషೞݶࢲীೠѼਸઁदೠ
HFSSJUreview-vote ࣗী֍ਸ Ѽਸٜਸ ୶оসೡ
(FSSJUਸॄࢲ ౠHJUসܴਬبೞӝ
HJUnon-linear history ҭࠂೠѐߊ۱ਸࠁѱؼࣻب
HJU HFSSJUlinear history TWOQFSGPSDFীࢲࠅࣻחੌࢶ۱ਸъઁೡࣻ
ҙܻزചಞ HFSSJUೞաоHJU TTI SFWJFXಕܳҳز ۽ં࠳ے߹ӂೠҙܻ ࢿמഋࢎীࢸغযపझ BOESPJE FDMJQTF MJCSFPGGJDF
৻ࠗبҳٜܳ݅ӝਤೠ3&45GVM"1*ઁҕ
"15ಁఃҙܻदझమ %FCJBO-JOVY6CVOUVӝ ࠄಁఃҙܻ ߧਊࢿ݆ޙࢲ ࢎࢸࢲߡ ঐഐ೧दܳਊೠޖѾ ࢿѨૐ ߓನࢲߡחױࣽਢࢲߡ Debian Project
http://debian.org
ઓࢿ ߡҙܻ ಁఃݒפೡ ࣗझҙܻبҳܻ࠺ࠁܳਊೡࣻب ౠߡۄ࠳۞ܻܳॳݶ೧ߡਸਊೞب ۾ъઁ MJCGPP MJCCBS MJCCB[ పझࢲ࠺झೡٸ۠ઁೠਸਊ೧ࢲزച
ಁఃࣗࢲߡ ৻ࠗࣗоוܻݶղࠗࣗী۞ ৻ࠗীҕѐೞঋਸಁఃחٮ۽ ղࠗ ࢲ࠺झ ѐߊపझ۽؋࣌ജ҃ਸࣗ۽ҳ࠙ ਃীٮۄੋૐӝמਸ֍ӝب IUUQ T BVUI
GUQ T BVUI TTI
/PUJGJDBUJPO ழ࠽ܻ٘࠭ঌܿਊ স೯࢚ടਸ࠺زӝਵ ۽ঌইࠅࣻѱ ѪѪदب
/PUJGJDBUJPOFNBJM ݫदܳࠁղӝऔ HFSSJUKFOLJOTীࢲӝࠄ ਵ۽ਗ ҳࢿਗٜઃоחࠅѢۄ Ҋਸࣻ
/PUJGJDBUJPOFNBJM ۽Ӓܳթӝӝਤ೧FNBJMই࠳ܳॄঠೣ ޙݓਸঌইࠁӝ൨ٜ ࠈৈ۞ѐݶ ױߑೱ Ӓېࢲޥоܲߑߨਸॄࠁӝ۽
/PUJGJDBUJPO*3$ ߹بۄਃ ݫदࠁղחࠗ࠙োѾਸ ਬ೧ঠೣ ޅࠁմ ۽Ӓܳऔѱࠁ۰ݶ߄ࢲ ਃ HJUHFSSJUCPUਗؽ
/PUJGJDBUJPO$BNQGJSF ۄחӒրਢ ࠈ3&45GVM"1*ࢎਊ ޙݓਬ օ दрࣽ ۽Ӓ߂Ѩ࢝ӝמઁҕ ੌҕਬоए ਬܐࢲ࠺झ ডਘ
ੋ Copyright (c) 37 Signals
ਃড
ߡӒܳҊर Ӓࣻױੋܻ࠭ܳೞӝऔب۾
ܻ࠭оߣ೧ӝएפ ߑ೧ਃࣗܳ୭ೠੋ
HJUਸॄࢲੌਸଂѐࢲೞҊ
࠽٘పझزച۽ ࢎۈਃೠࠗ࠙ਸҊ
Ӕೞӝऔѱਢীࢲ ܻ٘ܳ࠭ೡࣻѱೞҊ
ܻ࠭ীࢲޅחࠗ࠙ਸਤ೧ ѐߏݡӝపझ
Q & A