Submit Search
Upload
빌드 버튼이 눌린다음에 무슨일이 일어나는 걸까?
•
0 likes
•
34 views
H
hyunho Lee
Follow
build process에 대해 알아보겠습니다
Read less
Read more
Software
Report
Share
Report
Share
1 of 40
Download now
Download to read offline
Recommended
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
월간 IT 슬라이드
Hands-on Vue Springboot Simple Admin
Hands-on Vue Springboot Simple Admin
월간 IT 슬라이드
[EWD2014]CLASS10
[EWD2014]CLASS10
JY LEE
vuetiful korea 발표자료
vuetiful korea 발표자료
치웅 이
DevOps와 자동화
DevOps와 자동화
DONGSU KIM
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
KTH, 케이티하이텔
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
Amazon Web Services Korea
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
NAVER Engineering
Recommended
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
월간 IT 슬라이드
Hands-on Vue Springboot Simple Admin
Hands-on Vue Springboot Simple Admin
월간 IT 슬라이드
[EWD2014]CLASS10
[EWD2014]CLASS10
JY LEE
vuetiful korea 발표자료
vuetiful korea 발표자료
치웅 이
DevOps와 자동화
DevOps와 자동화
DONGSU KIM
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
KTH, 케이티하이텔
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
Amazon Web Services Korea
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
NAVER Engineering
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
NAVER D2
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
Sungju Jin
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
smartstudy_official
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
Darion Kim
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
Kiyoung Moon
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
ssuserf875e6
Svn 사용하기
Svn 사용하기
Jung-Ho Kim
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
mangonamu
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
nexusz99
7. html5 api
7. html5 api
은심 강
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
Dexter Jung
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
용호 최
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
Sewon Ann
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
성일 한
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
Seomgi Han
이제 문서는 DocC로 만들때가 되지 않았나요?
이제 문서는 DocC로 만들때가 되지 않았나요?
hyunho Lee
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
hyunho Lee
More Related Content
Similar to 빌드 버튼이 눌린다음에 무슨일이 일어나는 걸까?
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
NAVER D2
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
Sungju Jin
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
VMware Tanzu Korea
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
Hyun-woo Park
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
smartstudy_official
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
Darion Kim
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
Kiyoung Moon
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
ssuserf875e6
Svn 사용하기
Svn 사용하기
Jung-Ho Kim
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
mangonamu
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
nexusz99
7. html5 api
7. html5 api
은심 강
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
Dexter Jung
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
용호 최
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
JinKwon Lee
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
Sewon Ann
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
성일 한
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
Seomgi Han
Similar to 빌드 버튼이 눌린다음에 무슨일이 일어나는 걸까?
(20)
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
[스마트스터디]스마트스터디는 무엇을 / 왜 / 어떻게 만들어 왔는가
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
Svn 사용하기
Svn 사용하기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
[ 2015 SOSCON ]오픈스택 swift로 시작하는 오픈소스 분석 삽질기
7. html5 api
7. html5 api
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
More from hyunho Lee
이제 문서는 DocC로 만들때가 되지 않았나요?
이제 문서는 DocC로 만들때가 되지 않았나요?
hyunho Lee
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
hyunho Lee
iOS 개발자를 위한 영어로 이름 짓기
iOS 개발자를 위한 영어로 이름 짓기
hyunho Lee
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
hyunho Lee
Fitcraft demo
Fitcraft demo
hyunho Lee
하기 귀찮은 일 이제 효도는 봇으로
하기 귀찮은 일 이제 효도는 봇으로
hyunho Lee
More from hyunho Lee
(6)
이제 문서는 DocC로 만들때가 되지 않았나요?
이제 문서는 DocC로 만들때가 되지 않았나요?
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
iOS 개발자를 위한 영어로 이름 짓기
iOS 개발자를 위한 영어로 이름 짓기
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
패키지 매니저 골라골라! Cocoapod, Carthage, SPM
Fitcraft demo
Fitcraft demo
하기 귀찮은 일 이제 효도는 봇으로
하기 귀찮은 일 이제 효도는 봇으로
빌드 버튼이 눌린다음에 무슨일이 일어나는 걸까?
1.
빌드 버튼이 눌린다음에
무슨일이 일어나는 걸까? 이현호 hyunho.lee@wadiz.kr
2.
이현호 입니다 와디즈 iOS개발자
입니다
3.
지난 이야기 •패키지 매니져
중 무엇을 쓰지? •뭐가 빠르고 뭐가 느리지? •왜 느린거지? •빌드 버튼을 눌렀을 때 무슨 작업 때 문에 느려지는거지? •무슨 일이 일어나는거지?
4.
우리가 하는 일 Command
+ B Command + R •제가 가장 많이 하는 일 중 하나 •저의 개발 시간 중 가장 많이 소요되는 작 업 중 하나 •뭔진 모르겠지만 뭔가 많이 돌아감
5.
인지 하고 있는
부분 코딩을 하고 실행을 하면 App이 뚝딱!
6.
‘WWDC2018’에 따르면 1. 소스코드
컴파일 && 링크 2. 리소스 복사 3. 코드 사인 + 커스텀 스크립트 실행
7.
New build system •New
build system •File > project settings •Xcode10 에서 도입되었습니다 •Legacy와는 다르겠죠
8.
빌드 실행 순서 Report
navigator 1. Compile swift files 3. Compile asset 4. Compile storyboards 5. Process info.plist 6. Link Storyboards 2. Link TeamNine 7. Run script(Lint) 8. Sign app 9. Touch app Command + 9
9.
왜 저 순서대로
진행되는거죠? Compile swift files
10.
왜 저 순서대로
진행되는거죠? Compile swift filesMyTeam.swift
11.
왜 저 순서대로
진행되는거죠? Compile swift filesMyTeam.swift MyTeam.o
12.
왜 저 순서대로
진행되는거죠? ??Compile swift files MyTeam.o
13.
빌드 실행 순서 Report
navigator 1. Compile swift files 3. Compile asset 4. Compile storyboards 5. Process info.plist 6. Link Storyboards 7. Run script(Lint) 8. Sign app 9. Touch app 2. Link TeamNine
14.
왜 저 순서대로
진행되는거죠? Link TeamNine MyTeam.o MyRank.o MyList.o TeamNine Compile swift filesMyTeam.swift MyTeam.o
15.
의존성이 보이시나요? Link TeamNine MyTeam.o MyRank.o MyList.o TeamNine MyTeam.swift MyRank.swift MyList.swift
16.
순서만 알면 땡?
17.
어디가 문제를 만드는
걸까요?
18.
빌드프로세스의 의존성 MyTeam.swift Link TeamNine MyTeam.o MyRank.o MyList.o MyRank.swift MyList.swift TeamNine info.plist Assets.xcassets Storyboard
19.
빌드프로세스는 어떻게 동작
하는가? MyTeam.swift Link TeamNine MyTeam.o MyRank.o MyList.o MyRank.swift MyList.swift TeamNine info.plist Assets.xcassets Storyboard
20.
빌드프로세스는 어떻게 동작
하는가? MyTeam.swift Link TeamNine MyTeam.o MyRank.o MyList.o MyRank.swift MyList.swift TeamNine info.plist Assets.xcassets Storyboard
21.
매번 같은 일은
반복? MyTeam.swift Link TeamNine MyTeam.o MyRank.o MyList.o MyRank.swift MyList.swift TeamNine info.plist Assets.xcassets Storyboard
22.
증분빌드 MyTeam.swift Link TeamNine MyTeam.o MyRank.o MyList.o MyRank.swift MyList.swift TeamNine info.plist Assets.xcassets Storyboard
23.
증분빌드
24.
우리가 고려해야 할
점 •빌드 순서를 잘 맞추기 보다는 •작업의 의존성을 고려해주세요! •의존성이 단순하면 복잡한 것 보다 빌드 시간이 단축됩니다.
25.
의존성은 어디서 올까요?
26.
의존성은 어디서 올까요? •테스트
타겟은 본 프로젝트에 의존성 이 있습니다. •그리고 하나의 파일에 의존성이 있습니 다.
27.
의존성은 어디서 올까요? •제가
작성한 코드들에 의존성이 있습니 다.
28.
의존성은 어디서 올까요? •연결된
외부 라이브러리들에 의존성이 있고 •번들 리소스에 의존성이 있습니다.
29.
의존성은 어디서 올까요? •실행해야
하는 스크립트에도 있습니다.
30.
다시보는 report navigator
31.
거꾸로 생각해보자 Compile A.swift A.o
32.
거꾸로 생각해보자 LinkA.o B.o Executable
33.
거꾸로 생각해보자 LinkA.o B.o Executable Compile A.swift Compile B.swift
34.
거꾸로 생각해보자 LinkA.o B.o Executable Compile A.swift B.swift C.o D.o Compile
35.
거꾸로 생각해보자 LinkA.o B.o Executable Compile A.swift B.swift C.o D.o Compile
36.
거꾸로 생각해보자 LinkA.o B.o Executable Compile A.swift B.swift C.o D.o Compile
37.
“눈으로 봐도 느릴
것 같다.”
38.
결론 •빌드 프로세스의 순서를
알아보았습니다. •오래걸리는 건 빌드 프로세스 중 의존성을 가진 작업들이 병렬로 처리되지 못하기 때문입 니다. •이 문제를 해결하기 위해서는 코드간의 의존성을 줄여야 합니다. •외부 라이브러리를 쓰면 이런 종속성이 늘어날 확률이 높아 보입니다.
39.
“질문 있으신 분!” mizzking75@gmail.com
40.
Reference • https://developer.apple.com/videos/play/wwdc2018/415/ •
https://zeddios.tistory.com/919 • https://suelan.github.io/2020/07/05/20200705Behind-the-Scenes-of-the- %E2%80%A2Xcode-Build-Process/ • https://guides.cocoapods.org/plugins/pre-compiling-dependencies.html
Download now