Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NDC 2013 DVCS와 코드리뷰, 자동화를 통한 쾌속개발
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
reinkim
April 25, 2013
Programming
4.9k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NDC 2013 DVCS와 코드리뷰, 자동화를 통한 쾌속개발
reinkim
April 25, 2013
More Decks by reinkim
See All by reinkim
NDC 2014: 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
reinkim
3
3.2k
모바일 게임용 PaaS/BaaS 구현사례와 디자인 트레이드오프
reinkim
5
3.2k
Other Decks in Programming
See All in Programming
AIエージェント時代のコードレビューを設計する
nogu66
5
2.4k
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
0
170
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
160
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
120
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
110
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
Hono + Inertia + React で LP を構築した話
oukayuka
2
200
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
200
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
110
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
620
[DroidKaigi 26] How We Moved from Android Studio to Slack
thisaay
0
190
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.7k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Balancing Empowerment & Direction
lara
6
1.3k
Product Roadmaps are Hard
iamctodd
55
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
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