SlideShare a Scribd company logo
1 of 70
Download to read offline
UnityBuild 로
빌드타임 반토막내기
개발3본부 1실 M2팀
송창규
발표자 소개
송창규 innover
1999 년 한스타 개발
2002 년 넥슨 입사
2002 년 CA BnB, CA 테트리스 프로그래머
2002 년 디지팡 리드 프로그래머
2004 년 빅샷 리드 프로그래머
2006 년 버블파이터 리드 프로그래머
2010 년 M2 프로그래머
빌드가 느려요
게임개발의 핵심은 빠른 iteration !
“업데이트좀 받아볼까?” “아 리빌드다...”
“아까 그거 언제 적용돼요?” “20분이면 빌드나와요”
동무 고조 빌드는
어드메쯤 나옵네까?
느려터진 빌드, 빠르게 할 순 없을까?
빠른 iteration 의 적, 느린 build time
느려터진 빌드, 빠르게 할 순 없을까?
UnityBuild 로 빌드를 빠르게 해보자 !
UnityBuild 로
반토막낼수 있당게!
오늘 할 이야기
우리가 모르던(간과하던) C++ 의 컴파일의 비밀을 짚어보고
Hello, World !
We Love Vector ♥
Unity Build 를 간단히 소개한 후
Unity Build 이야기 (사실 C++ 욕)
얼마나 빨라지는데?
Unity Build 과정을 단계별로 짚어보겠습니다
STEP 1: 일단 합치기
STEP 2: VS 에서 돌아가게
CHECKPOINT: 문제점
STEP 3: 자동화
STEP 4: 더 큰 프로젝트에서의 자동화
C++ 컴파일에는 특별한 것이 있다?
빌드에 대해 알아봅시다
Hello, World!
컴파일러 입력량은 어떻게 될까요?
Java
9줄
C#
5줄
C++
11줄
#include 는
컴파일 전
전처리 지시자
전처리 과정을 알아보려면?
/E, /EP 스위치를 통해서 전처리후 결과를 볼 수 있다
전처리 과정을 알아보자
cl /E HelloWorld.cpp > Preprocessed.cpp
전처리 결과
뭐야..그거..
몰라..무서워
의미없는 줄을 제거해도..
대부분은 의미없는 빈줄
1019 LINES!
컴파일러 입력량은 어떻게 될까요?
Java
9줄
C#
5줄
C++
12516줄
(1019줄)
모듈이 여러개라면?
WE LOVE VECTOR!
빌드에 대해 알아봅시다
WeLoveVector.vcproj
간단히 만들어본 샘플 프로젝트
샘플프로젝트 – ObjectMgr
vector<int> 로 삭제할 오브젝트 관리
샘플 프로젝트 - ItemSlots
vector<int> 로 아이템 슬롯 관리
샘플 프로젝트 - WeLoveVector
그것들을 사용하는 목적불명의 모듈
컴파일러는 무슨일을 하고 있을까요?
네 HEADER 를 알라
빌드에 대해 알아봅시다
컴파일러 입력 살펴보기
Library
Headers
뭐 이런 식이겠지...
WeLoveVector.cpp
stdafx.h
windows.h
stdio.h
tchar.h
ItemSlots.h
vector
ObjectMgr.h
vector
WeLoveVector.cpp
ItemSlots.cpp
stdafx.h
windows.h
stdio.h
tchar.h
ItemSlots.h
vector
ItemSlots.cpp
ObjectMgr.cpp
stdafx.h
windows.h
stdio.h
tchar.h
ObjectMgr.h
vector
ObjectMgr.cpp
255080 LINES ?!
뭐야..그거..
몰라..무서워
의미없는 줄을 제거해도
67000 여줄
네 Header를 알라
당연하게 생각하던
라이브러리의 include...
네 Header를 알라
네 Header를 알라
컴파일러 입력량
WeLoveVector.cpp
255076 Lines
stdafx.h (224384)
windows.h (216849)
stdio.h (5439)
tchar.h (9474)
ItemSlots.h (43581)
vector (43831)
ObjectMgr.h (43851)
vector (43831)
WeLoveVector.cpp (255076)
ItemSlots.cpp
255057 Lines
stdafx.h (224384)
windows.h (216849)
stdio.h (5439)
tchar.h (9474)
ItemSlots.h (43581)
vector (43831)
ItemSlots.cpp (255057)
ObjectMgr.cpp
255049 Lines
stdafx.h (224384)
windows.h (216849)
stdio.h (5439)
tchar.h (9474)
ObjectMgr.h (43851)
vector (43831)
ObjectMgr.cpp (255049)
저도 처음에 엄청 놀랐습니다
역시 무의미한 빈줄이 많이 포함됨
컴파일러 입력량
(무의미한 줄 제거 후)
WeLoveVector.cpp
66954 Lines
stdafx.h (57029)
windows.h (56488)
stdio.h (648)
tchar.h (623)
ItemSlots.h (11092)
vector (11079)
ObjectMgr.h (11091)
vector (11079)
WeLoveVector.cpp (66954)
ItemSlots.cpp
66960 Lines
stdafx.h (57029)
windows.h (56488)
stdio.h (648)
tchar.h (623)
ItemSlots.h (11092)
vector (11079)
ItemSlots.cpp (66960)
ObjectMgr.cpp
66952 Lines
stdafx.h (57029)
windows.h (56488)
stdio.h (648)
tchar.h (623)
ObjectMgr.h (11091)
vector (11079)
ObjectMgr.cpp (66952)
그래도
67000 여줄!
뼛속깊은곳부터 전해오는 배신감
모듈을 쪼갤수록 좋은건줄 알았는데
모듈을 쪼갤수록 손해라니!
날 속였어!
파일을 하나로 모으면?
WeLoveVector.cpp
66954 Lines
stdafx.h
windows.h
stdio.h
tchar.h
ItemSlots.h
vector
ObjectMgr.h
vector
WeLoveVector.cpp
ItemSlots.cpp
66960 Lines
stdafx.h
windows.h
stdio.h
tchar.h
ItemSlots.h
vector
ItemSlots.cpp
ObjectMgr.cpp
66952 Lines
stdafx.h
windows.h
stdio.h
tchar.h
ObjectMgr.h
vector
ObjectMgr.cpp
ALLInOne.cpp
66999 Lines
stdafx.h
windows.h
stdio.h
tchar.h
ItemSlots.h
vector
ObjectMgr.h
vector
WeLoveVector.cpp
ItemSlots.cpp
ObjectMgr.cpp
200866 Lines  66999 Lines
이렇게 컴파일 입력을 줄이는 것이
UnityBuild
UNITY BUILD – 해보기 전에
Unity Build 따라하기
찝찝하고 하기싫은 이기분
한 파일에 꾸역꾸역 몰아넣으라니
임시땜빵스럽잖아!
오늘따라
물내리기가 싫은걸...
#include 야말로 8비트 PC 조차 없던 30년 전의 방식
최신기술과 개념으로 무장해가는 C++ 지만
#include 의 태생은 벗어날 수 없다
코드 재사용을 위해
#include 란걸 만들었다능
컴파일러 다시 안만들어도 됨ㅋ
변수명 줄여 임마
전체메모리
248KB 밖에 없어
최초의 C 탑재 Unix System
PDP-11 (1972)
“참조하는만큼 해석하리라”
50개 파일에서 vector<int>를 사용하면?
 vector<int> 를 50번 컴파일
20개 파일에서 Network.h 를 참조하면?
 Network.h 를 20번 컴파일
아..폭탄주 땡긴다
이런 언어를 사용하고 있었다니
6:50 1:50
쓰면 얼마나 빨라지는데?
버블파이터 프로젝트에 UnityBuild 적용결과
73.2% 감소
릴리즈 약 2배 향상
디버그는 3배 이상
경이로운 속도향상
프로젝트 BEFORE AFTER 감소율 속도차
Quake Wars 2:20 0:38 72.9% 감소 3.7배
Irrlicht 엔진 1:23 0:28 66.3% 감소 3.0배
프로젝트 A 약 30분 약 2~3분 91.7% 감소 12.0배
프로젝트 B 약 10분 3분이내 70.0% 감소 3.3배
버블파이터 6:50 1:50 73.2% 감소 3.7배
M2 Library A 0:55 0:18 67.3% 감소 3.0배
경이로운 속도향상
대부분의 프로젝트에서 큰 효과
http://cheind.wordpress.com/2009/12/10/reducing-compilation-time-unity-builds/
기적을 보았습니다
UnityBuild !!
어떠케 하는건가요!
STEP 1 - 일단 합쳐보자!
Unity Build 따라하기
한파일로 대동단결!
Unity Build 완료!
참 쉽죠?
하지만...
한 소스 파일에서 작업할래?
매번 소스 파일 붙여서
파일 새로 만들래?
.cpp 를 include!
작업은 원 소스 파일에서
빌드시에만 사용
VS IDE 에서 쓸 수 있나요?
STEP 2 - VS 에서 동작하게
Unity Build 따라하기
새로운 빌드 설정 추가
“빌드에서 제외” 설정
이렇게 원 소스를 다 제외시켜버리면
디버깅은 어떻게 하지?
디버깅이 안되지 않나요?
“결국 VS 만 썼지,
프로젝트 내에서 ALLinOne.cpp 말고는 다 무시하자는건데...
디버깅 정보가 ALLinOne.obj 에 다 생길텐데...”
브레이크 포인트 잘 잡히나요?
F10, F11 잘 되나요?
디버깅 잘 됩니다!
우리가 header 안의 코드를
디버깅 할 수 있는 이유
#include 로 만들어진 코드의
디버깅 정보는 해당 소스로 연결돼있다
CHECKPOINT – 문제점은 없나요?
Unity Build 따라하기
문제점 #1 – 너무 큰 입력파일
입력 파일이 너무 크면 컴파일러 오류 발생
하나로 전부 묶지 말고 나누어 묶으면 된다
문제점 #2 – 이름 충돌
문제점 #2 – 이름 충돌
전역/static 함수와 변수, #define 들의 충돌 향연
로컬에서만 쓰려고 하던 놈들인데...
적당히 잘 정리해준다
어차피 정리해야할 대상인경우가 많음
문제점 #3 – #include 누락
#include 빠뜨려도 빌드가 잘된다!
이전줄에서 이미 #include 가 다 돼있어
다들 겪는문제
Unity Build 없이 빌드해서 색출
해당 cpp 만 컴파일해서 체크
자동화 고려
동작만 하면
되잖겠냐능?
문제점 #4 – 파일 추가/삭제
새로운 파일이 추가되거나 기존 파일이 삭제되면
매번 설정해줘야하나요?
#include 추가/삭제
“빌드에서 제외” 설정
자동화로 해결
STEP 3 – 자동화를 해보자
Unity Build 따라하기
자동화를 하려면?
자동화 항목
적당한 기준에 따라 파일 나누기
UnityBuildXX.cpp 로 묶기
프로젝트에 Unity 빌드설정 추가
기존 빌드설정에서 UnityBuildXX.cpp 를 빌드 제외
Unity 빌드설정에서 나머지 .cpp 를 빌드에서 제외
버블파이터 사례
자동화 항목 버블 파이터
적당한 기준에 따라 파일 나누기 무조건 10개로 나눔
UnityBuildXX.cpp 로 묶기 UnityMaker 자동화
프로젝트에 Unity 빌드설정 추가 수동
기존 빌드설정에서 UnityBuildXX.cpp 를 빌드 제외 수동
Unity 빌드설정에서 나머지 .cpp 를 빌드에서 제외 UnityMaker 자동화
버블파이터 UnityMaker
(자동화 툴)
빌드 전 이벤트로 실행
10개 파일로 나누어 묶기
프로젝트 빌드제외 설정
made by brad (유지훈)
버블파이터 UnityMaker
소스 파일 목록을 받아와서
10개로 나누어 UnityFile 을 만듦
버블파이터
UnityMaker
프로젝트 파일을 읽으면서
“빌드에서 제외” 설정
STEP 4 – 큰 프로젝트의 자동화
Unity Build 따라하기
대규모 프로젝트: M2
프로젝트만 44개 !
빌드설정 두개씩만 추가해도 88개
UnityBuild 파일 10개씩 등록하면 440개
빌드설정별로 ‘빌드에서 제외’ 설정
Precompiled Header 처리
대부분 과정에 자동화가 필요
M2 프로젝트 사례
자동화 항목 M2 프로젝트
적당한 기준에 따라 파일 나누기 그룹 설정 후 자동화
UnityBuildXX.cpp 로 묶기 자동화
프로젝트에 Unity 빌드설정 추가 자동화
기존 빌드설정에서 UnityBuildXX.cpp 를 빌드 제외 자동화
Unity 빌드설정에서 나머지 .cpp 를 빌드에서 제외 자동화
M2 UnityMaker
버블파이터의 그것과 기본은 비슷
Project Independant 하게
python 으로 제작
자동화 추가
커스텀 그루핑
프로젝트 설정 추가
Unity 파일의 추가와 설정
Precompiled Header 설정
컴파일러 설정 추가
M2 Unity Maker
최초 실행시 vcproj 에서
UnityBuildGroup 생성
변경된 파일만 적용해서
vcproj 와 cpp 로 출력
추가 변경 후
반복 적용가능
개발자들 python 깔아야 하나요?
매번 돌리지 않아도 됩니다
파일 추가해도 OK
담당자가 심심할때 돌려줘도 됩니다
After1.cpp
After2.cpp
추가
빌드 타임 줄이고 행복해지세요~
프로젝트가 매우 크지만 않다면...
금방 적용 가능합니다
감사합니다
Questions?

More Related Content

What's hot

덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기Hyunsuk Ahn
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가Seungmo Koo
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치Seungjae Lee
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지영준 박
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 

What's hot (20)

덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 

Viewers also liked

[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발ChangKyu Song
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 
컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기Youngbin Han
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소Youngbin Han
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRYoungbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Youngbin Han
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디Youngbin Han
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디Youngbin Han
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기Youngbin Han
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황Youngbin Han
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼totodeung
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713영광 송
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW영광 송
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규ChangKyu Song
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션Park JoongSoo
 
모바일앱 개발에서 개발자가 알아야할 팁
모바일앱 개발에서 개발자가 알아야할 팁모바일앱 개발에서 개발자가 알아야할 팁
모바일앱 개발에서 개발자가 알아야할 팁James (SeokHun) Hwang
 

Viewers also liked (20)

[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 
컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VR
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황
 
02.모의해킹전문가되기
02.모의해킹전문가되기02.모의해킹전문가되기
02.모의해킹전문가되기
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713
 
한글시계웍샵_SW
한글시계웍샵_SW한글시계웍샵_SW
한글시계웍샵_SW
 
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
[NDC13] 70명이 커밋하는 라이브 개발하기 (해외 진출 라이브 프로젝트의 개발 관리) - 송창규
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
What is agile
What is agileWhat is agile
What is agile
 
개발자들 오리엔테이션
개발자들 오리엔테이션개발자들 오리엔테이션
개발자들 오리엔테이션
 
모바일앱 개발에서 개발자가 알아야할 팁
모바일앱 개발에서 개발자가 알아야할 팁모바일앱 개발에서 개발자가 알아야할 팁
모바일앱 개발에서 개발자가 알아야할 팁
 

Similar to [NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규

NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화Jaehoon Choi
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반arundine
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료지원 정
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Jae-yeol Lee
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellijSewon Ann
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetesssuseraada82
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1Hansol Kang
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1진상 문
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCore.Today
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Byunghyun Ban
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 

Similar to [NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규 (20)

NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
 
develop android app using intellij
develop android app using intellijdevelop android app using intellij
develop android app using intellij
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetes
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 

[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규