SlideShare a Scribd company logo
1 of 57
Download to read offline
let swift(16)
스위프트 개발 환경의 변화
Interface Builder, Xcode, LLDB,
Instrument
OSXDEV.org허 혁
let swift(16)
Swift3?
New APIs
iOS10? iOS9? 내년에나 써볼 수 있어요.
그런데
New iOS는 New SDK로
New SDK는 New Xcode로
Xcode는 우리가 당장 쓸 수 있는 것.
Agenda
Interface Builder
Source Editing
Sanitizers
View Debugging
LLDB
Instrument
Summary
let swift(16)
Interface Builder
Interface Builder
새로운 Adaptive UI - 디바이스 타입별 렌더
링
Live preview - 디바이스 타입별
수정 하면서도 확대 축소
let swift(16)
Source Editing
Source Editing
Xcode Source Editor Extension
드디어 확장 환경 제공
안전해
벌써 만들어 본 사람들
알카트라즈 플러그인 개발자들은 패닉
번들 로딩 금지
잘 쓰던 나도 패닉
Source Editing
새로와진 API 문서
오프라인 API 문서
API 문서 자동생성
SF Mono Font
Code-signing, Provision
Source Editing
Source Editing
Source Editing
현재 라인 하이라이트
Color Literal
#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
Source Editing
현재 라인 하이라이트
Color Literal
#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
Image Literal
UIImage(#imageLiteral(resourceName: "Screen Shot"))
Source Editing
Image Literal
UIImage(#imageLiteral(resourceName: "Screen Shot"))
Source Editing
let swift(16)
Sanitizers
Sanitizers?
Sanitizers
런타임 시 버그 추적
Swift3 / C/C++/Objective-C
컴파일 시 버그 추적은?
Clang Static Analyzer
C/C++/Objective-C 만 지원
Sanitizers Types
AddressSanitizer - ASan
ThreadSanitizer - TSan
MemorySanitizer - MSan (LLVM)
Sanitizers Types
AddressSanitizer - ASan
ThreadSanitizer - TSan
Memory Graph Debugging
AddressSanitizer
디버깅 모드로 동작할 때 잠재적인 메모리 누수를 찾는다
메모리 어드레스 오염 이슈를 찾는다
이제 Swift도 지원
설정; Scheme의 Diagnostics항목
Enable Address Sanitizer
디버깅 모드로 동작할 때 잠재적인 메모리 누수를 찾는다
메모리 어드레스 오염 이슈를 찾는다
이제 Swift도 지원
설정; Scheme의 Diagnostics항목
Enable Address Sanitizer
AddressSanitizer
AddressSanitizer
검출 케이스
힙, 스팩, 글로벌 버퍼 오버 플로우
메모리 반환 후 사용
return 후 사용
메모리 릭
런타임 시 쓰레드에 의한 데이터 변경에 레이스 컨디션이 발생
했는지를 알아낸다.
설정; Scheme의 Diagnostics항목
Enable Thread Sanitizer
지원범위
64비트 macOS, iOS 시뮬레이터, tvOS 시뮬레이터
watchOS와 Device는 아직 미지원
ThreadSanitizer
런타임 시 쓰레드에 의한 데이터 변경에 레이스 컨디션이 발생
했는지를 알아낸다.
설정; Scheme의 Diagnostics항목
Enable Thread Sanitizer
지원범위
64비트 macOS, iOS 시뮬레이터, tvOS 시뮬레이터
watchOS와 Device는 아직 미지원
ThreadSanitizer
테스트 돌릴 때 옵션을 키기를 추천
검출 케이스
초기화 되지 않은 뮤텍스 사용
엉뚱한 쓰레드가 언락
쓰레드 릭
시그널 핸들러에 안전하지 않은 함수 호출
데이터 레이스
ThreadSanitizer
데이터 레이스
동기화 없이 여러 쓰레드가 한 주소를 접근할 때
그 중 하나는 읽기용 쓰레드
끝난다면 결국 쓰레기 값이나 메모리 오염으로
구조상 문제가 있다는 것
혹은 동기화 작업 누락
ThreadSanitizer
Memory Graph Debugging
메모리 누수나 버려진 메모리 탐침
디버깅 모드에서 pause된 경우
macOS, iOS 10, tvOS 10, watchOS 3 지원
Sanitizer가 켜져 있으면 동작 안함
Scheme의 Diagnostics 탭에서 Malloc Stack설정
All Allocation
Live Allocation Only
메모리 누수나 버려진 메모리 탐침
디버깅 모드에서 pause된 경우
macOS, iOS 10, tvOS 10, watchOS 3 지원
Sanitizer가 켜져 있으면 동작 안함
Scheme의 Diagnostics 탭에서 Malloc Stack설정
All Allocation
Live Allocation Only
Memory Graph Debugging
Memory Graph Debugging
두가지 그래프 스타일
Root Paths
참조 메모리
얼마나 많은 메모리가 잡혀 있는지
Cycles
메모리 누수
누수가 어떻게 다른 누수와 연결되는지
Memory Graph Debugging
.memgraph; Plist file
저장하기
File → Export Memory Graph
불러오기
Open the file
디버거 프로세스가 아니라서 트레이스, 퀵룩, po 안됨; 그
래프 말고는 아무것도 안됨
let swift(16)
View Debugging
View Debugging
빨라지고 정확해짐
클래스로 바로가기
네비게이터에서 필터링
오토레이아웃 디버깅
View Debugging
클래스로 바로가기
View Debugging
네비게이터에서 필터링
View Debugging
오토레이아웃 디버깅
View Debugging
오토레이아웃 디버깅
View Debugging
유한 상태 머신 Quick Look
GKStateMachine; GameplayKit를 써야…
코드로는 알아보기 힘듬
복잡한 동작을 그래프로 직관적으로 정의 가능
상태별 개별 동작
상태간 전환
유한 상태 머신 Quick Look
GKStateMachine; GameplayKit를 써야…
코드로는 알아보기 힘듬
복잡한 동작을 그래프로 직관적으로 정의 가능
상태별 개별 동작
상태간 전환
View Debugging
let swift(16)
LLDB
LLDB
스위프트 REPL도 LLDB
:<command> enables any LLDB command
LLDB
Xcode와 LLDB는 별도 프로세스로 분리
LLDB는 죽어도 Xcode는 적당히 살아난다
여러 버전의 디버거 지원
디버거는 자동적 선택됨
예를 들면 Swift 3는 가장 최신 디버거
Swift 2.3는 Xcode 7.3.1-era 디버거
오픈소스 Swift도 매칭된 디버거를 사용하게 된다
LLDB
parray <count> <expression>
poarray <count> <expression>
자동 import
@import UIKit
settings show target.auto-import-clang-
modules false
Debugger Customization
LLDB
Reusable Code $
expr let a = 3; print(a)
expr $addTwoNumbers(a: 2, b: 3)
let swift(16)
Instrument
Instrument
디버깅 시 정보 표시가 더 잘보여요.
시스템 트레이스
쓰레드, CPU, Point of Interest
타임 프로파일러
앱 라이프 사이클 이벤트에 따른 동작
메탈 시스템 트레이스… ?
let swift(16)
Demo
Demo
시간 관계 상 생략?
개별 연락?
샘플 프로젝트?
Summary
Interface Builder 👍
Source Editing 👍
Sanitizers 👍
LLDB 👍
Instrument 🖖
let swift(16)
Reference
LLDB Debugging Guide
Instruments User Guide
Debugging with Xcode
WhatsNewXcode

More Related Content

What's hot

Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼mangonamu
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XpressEngine
 
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)Sang Don Kim
 
141 deview 2013 발표자료(박준형) v1.1(track4-session1)
141 deview 2013 발표자료(박준형) v1.1(track4-session1)141 deview 2013 발표자료(박준형) v1.1(track4-session1)
141 deview 2013 발표자료(박준형) v1.1(track4-session1)NAVER D2
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍Changwon Choe
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍NAVER D2
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅Keesun Baik
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트Keesun Baik
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장SeongHyun Ahn
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment SettingKwangyoun Jung
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Eunbee Song
 

What's hot (20)

5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
 
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
 
141 deview 2013 발표자료(박준형) v1.1(track4-session1)
141 deview 2013 발표자료(박준형) v1.1(track4-session1)141 deview 2013 발표자료(박준형) v1.1(track4-session1)
141 deview 2013 발표자료(박준형) v1.1(track4-session1)
 
Java 기초
Java 기초Java 기초
Java 기초
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
8.Spring DI_3
8.Spring DI_38.Spring DI_3
8.Spring DI_3
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트
 
Jpa more
Jpa moreJpa more
Jpa more
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)
 
2.Spring IoC & DI (ioc container)
2.Spring IoC & DI (ioc container)2.Spring IoC & DI (ioc container)
2.Spring IoC & DI (ioc container)
 

Viewers also liked

Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0Sehyun Park
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트병한 유
 
Swift server-side-let swift2016
Swift server-side-let swift2016Swift server-side-let swift2016
Swift server-side-let swift2016Eric Ahn
 
Swift package manager
Swift package managerSwift package manager
Swift package manager성관 윤
 
Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기YoonBong Steve Kim
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기Yongha Yoo
 
Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftSeongGyu Jo
 
Swift internals
Swift internalsSwift internals
Swift internalsJung Kim
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기Wanbok Choi
 

Viewers also liked (9)

Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
 
Swift server-side-let swift2016
Swift server-side-let swift2016Swift server-side-let swift2016
Swift server-side-let swift2016
 
Swift package manager
Swift package managerSwift package manager
Swift package manager
 
Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in Swift
 
Swift internals
Swift internalsSwift internals
Swift internals
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기
 

Similar to Swift and Xcode8

Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2YoungSu Son
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for AppspressoKTH, 케이티하이텔
 
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...OpenStack Korea Community
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)Ubuntu Korea Community
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석Tommy Lee
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Jonathan Jeon
 
20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)Yoonseok Pyo
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfLee Dahae
 

Similar to Swift and Xcode8 (20)

Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2
 
llvm 소개
llvm 소개llvm 소개
llvm 소개
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
java_1장.pptx
java_1장.pptxjava_1장.pptx
java_1장.pptx
 
java_1장
java_1장java_1장
java_1장
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
[OpenInfra Days Korea 2018] Day 2 - E5: Mesos to Kubernetes, Cloud Native 서비스...
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 
20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)
 
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdfletswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
letswift22_우당탕탕 확장 프로그램(이다혜 light).pdf
 

Swift and Xcode8