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
팀원을 살리는 개발 도구 개선
Search
Seokju Yun
April 21, 2016
Programming
530
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
팀원을 살리는 개발 도구 개선
IO스튜디오 C2팀에서 팀원을 살리기 위해 개발 도구 개선한 스토리입니다.
Seokju Yun
April 21, 2016
Other Decks in Programming
See All in Programming
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
220
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
190
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.5k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.4k
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
170
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.4k
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
250
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
霧の中の代数的エフェクト
funnyycat
1
450
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
510
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
140
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
110
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
430
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
GitHub's CSS Performance
jonrohan
1033
470k
Technical Leadership for Architectural Decision Making
baasie
3
450
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Building the Perfect Custom Keyboard
takai
2
830
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Scaling GitHub
holman
464
140k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
팀원을 살리는 개발 도구 개선 윤석주 2016.04.19
발표 내용 • 개발 도구 개선으로 – 팀원의 시간을 살려보자
– 팀원의 불만을 없애보자 • 더 좋은 결과물을 낼 수 있도록 도와주자
C2팀 개발의 병목은?
타 직군과 소통하는 프로그래머
왜죠??
2개의 이슈 • 모바일 빌드 이슈 • 빌드 리소스 관리
이슈
모바일 빌드 이슈
None
작업자는 • 내가 만든 것을 모바일에서 직접 보고 싶다 –
결과물의 퀄리티 확인 – PC와 다른 부분 확인 – 당연한 욕구
모바일에서 보고 싶어요 아트, 기획 직군 프로그래머
모바일에서 보고 싶어요 프로그래머 빌드 20분 APK업로드 5분 작업자에게 알림
모바일에서 보고 싶어요 아트, 기획 직군 프로그래머의 시간이 많이 빼앗기니
꼭 필요할 때만 부탁하자
하지만 좋은 게임을 만들기 위해선 김용하. 대인배 개발. 2007
좋은 방향은 • 팀원 누구나 모바일 빌드가 가능하고 – 클릭만으로
빌드가 시작 되고 • 즉시 확인할 수 있는 환경 – APK를 직접 받아 볼 수 있고 – 피드백을 줄 수 있도록
직접 개선해보겠습니다
도구 선택
선택의 이유 • 웹 UI로 모든 설정 가능 • Unity3D
빌드 플러그인 • S3 업로드 플러그인 • Slack 플러그인
웹에서 설정 몇번 클릭만 했을 뿐인데 • SVN 업데이트 후
• Unity3D로 빌드 시키고 • S3에 업로드 하고 • Slack에 알려서 팀에 공유
4시간 정도의 셋팅으로 58번의 빌드를 수행 20일 동안 19시간을 절약
직군에 관계 없이 팀원 누구나 손쉽게 사용 가능 아트 직군
프로그래밍 직군
모바일 빌드 이슈 결론 팀원 누구나 최신 프로젝트 결과물을 클릭
한번으로 팀에 공유 하고 모바일에서 직접 테스트 해 볼 수 있다
빌드 리소스 관리 이슈
빌드를 해야할 상황이 되면 프로그래머 오후 2시 까지 리소스 작업해서
커밋 부탁 드립니다
2시 이후에 검수 하면 프로그래머 헉 리소스가 깨졌네요. 2시 30분까지
수정 부탁드립니다. 브라운님 죄송해요 곧 수정해서 올려 드릴께요 브라운
2시 20분 쯔음에 코니 2시 작업물보다 지금것이 낫네 이제 커밋
해도 되겠지? 프로그래머님 커밋 했어요 브라운
2시 30분에 업데이트 후 프로그래머 브라운님 리소스는 잘 되네요. 어
근데 아까 잘 되던 코니님 리소스가 깨졌어요 헉 죄송해요 수정해서 올려드릴께요. 코니
3시 이후 프로그래머 코니님 리소스는 확인했습니다. 아 근데 어피치님 리소스가
깨지네요 헉 죄송해요 수정해서 올려드릴께요. 어피치
2시에 뽑기로 한 빌드가 7시에 나왔어
작업자는 • 더 좋은 리소스로 바꾸고 싶은 욕구 • 리소스가
나오는 모든 곳에서 확인하기 어려움 • 빌드 마감 이후도 작업 진행 필요 – 커밋을 해야 상급자도 작업물 확인
프로그래머는 • 리소스, 버그 수정 사이드 이펙트로 괴로움 • 업데이트를
안 할 수도 없음 • 경영진 시연이 있는 경우 4~5일 고통받음
해결책은 • 프로그래머가 주도적으로 관리하는 빌드용 브랜치 – 개발 브랜치에서
원하는 작업만 가지고 오도록 • 리소스 문제가 있으면 해결된 리소스만 가지고 옴 – 빌드 이슈가 있어도 정상적인 업무 진행은 가능 하도록 • 빌드가 다른 팀원들의 작업에 영향을 받지 않도록
SVN이라서
SVN Branch는 헬 • Branch = 폴더 복사
브랜치에 커밋해도 • 내용으로는 어느 브랜치에 커밋 했는지 구분 불가
– 위의 로그에 KOR, DMM, PS4 커밋이 섞여 있음
Merge 할때도
반면 Git은
Rebase 지원 • 작업중인 브랜치에 새로운 커밋 반영 • Merge
hell 예방
사실 다들 알고 있음 • 큐라레도 초창기에는 Git • 기획,
아트 직군이 힘들어 함 – Pull, Fetch, Checkout, Push… – 기획, 아트 직군 사람이 몇 배 많다
추가적인 문제는 • 바이너리가 많으면 git이 매우 느려짐
None
해결책은 • 기획, 아트 직군은 SVN 쓰고 프로그래머만 Git쓰자 –
Git인데 SVN Frontend 없을까? – https://github.com/bozaro/git-as-svn
바이너리 문제는 • Git LFS로 해결 – 바이너리 파일은 hash값만
기록하고 – 실제 파일은 서버에서 받아오는 구조 – Git에는 텍스트 파일만 남게 됨
None
도입 방법 • Git 저장소 호스팅 용도로 GitLab을 사용 •
기획, 아트 직군을 위해 Git-as-Svn도 같이 설치 – Git-as-Svn의 인증은 GitLab이 담당 • LDAP로 회사 계정과 연동
Git 도입 결과 • 도입한지 일주일도 안되서 브랜치 7개! •
프로그래머들이 평화를 찾음 • GitLab을 사용해서 추가적인 기능들이 생김
GitLab으로 인한 장점 • 프로젝트 웹 페이지 • 저장소와 연동된
이슈 기능 • 코드 리뷰 • 통계 기능 • Slack 연동
프로젝트 웹 페이지
저장소와 연동된 이슈 기능
저장소와 연동된 이슈 기능 • 이슈와 브랜치가 연동 되어 현재
작업 확인 가능
코드 리뷰 • 리뷰를 받는 시스템을 도입 • 리뷰 후
Merge를 눌러서 GitLab에서 Merge 함
통계 기능
Slack 연동
빌드 리소스 관리 이슈 결론 • 제대로 된 브랜치 사용을
위해 Git(GitLab) 도입 – 프로그래머들이 평화를 찾았다 – 개발 브랜치를 쉽게 추가 할 수 있다 – 저장소와 연동된 이슈, 코드 리뷰 가능 • Git-as-Svn으로 기획, 아트에겐 SVN 제공 – 저장소 변경 후에도 문제 없음
None
결론적으로 개발 도구 개선은 • 프로그래머의 개발 시간을 확보 하였다
• 좋은 문화(코드 리뷰)를 도입 할 수 있게 되었다 • 프로젝트 결과물 개선에 기여 하였다 • 팀원들의 업무 효율을 개선 하였다