2. ⓒ NAVER Connect Foundation
1. WWDC란?
1.1 일반인의 시선
1.2 우리(개발자)의 시선
2. iOS 개발자를 준비하는 제가 WWDC를 왜 보려고 했을까?
3. WWDC에서 소개된 기술 세션들
3.1 Understanding Swift Performance
3.2 iOS Memory Deep Dive
3.3 Introducing PencilKit
4. WWDC는 한국어를 지원하지 않는다?
5. WWDC를 어떻게 보면 될까?
5.1 키노트
5.2 기술 세션
6. WWDC 외에 볼 수 있는 행사들
2
3. ⓒ NAVER Connect Foundation 3
WWDC를 발표 주제로 선택한 이유
👉 제가 처음 WWDC를 경험했을 때 낯설었다.
👉 그런 분이 계시지 않을까?
👉 WWDC에 대한 심리적 허들을 낮출 수 있는 발표를 해보자!
0 발표에 앞서
4. ⓒ NAVER Connect Foundation
CHAPTER 1.
WWDC란?
WWDC는 애플 세계 개발자 회의(Apple Worldwide Developers Conference)는 애플이 매년 개최하는 개발자 컨퍼런스입니다.
6. ⓒ NAVER Connect Foundation 6
1.1일반인의 시선
애플의 신제품과
새로운 OS가 공개되는 날
Fig.2.
올해는 새로운 폼팩터의 맥북 에어가 공개
7. ⓒ NAVER Connect Foundation 7
1.2 우리(개발자)의 시선
애플의 신제품과
새로운 OS가 공개되는 날
Fig.3.
새로운 API와
대응해야 할 OS가 공개되는 날
8. ⓒ NAVER Connect Foundation 8
1.2 우리(개발자)의 시선
애플의 신제품과
새로운 OS가 공개되는 날
새로운 API와
대응해야 할 OS가 공개되는 날
올해는 iOS 16, iPadOS 16, macOS Ventura가
공개됨
9. ⓒ NAVER Connect Foundation 9
1.2 우리(개발자)의 시선
애플의 신제품과
새로운 OS가 공개하되 날
새로운 Swift 5.7도 공개됐습니다.
10. ⓒ NAVER Connect Foundation
CHAPTER 2.
iOS 개발자를 준비하는 제가
WWDC를 왜 보려고 했을까?
iOS와 Swift를 더 잘 이해하기 위해?
11. ⓒ NAVER Connect Foundation 11
#성장 #학습 #이게맞아?
성장에 대한 고민
• 프로젝트 앱을 만들어보는 것만으로는 부족한 것 같다.
• 괜찮은 iOS 강의가 있을까?
• 어떤 것들을 공부해야 되지?
• 내가 보고 있는 자료가 신뢰할 만한 자료인가?
12. ⓒ NAVER Connect Foundation 12
구글링 하면서
마주쳤던 수많은
블로그에서 언급된
WWDC
그러면 나도 한번 볼까..?
Fig.4.
Fig.5.
Fig.6.
13. ⓒ NAVER Connect Foundation 13
어떤 걸 공부해야 할지
고민을 덜어줍니다!
이미지는 ”Introducing Combine”에서
나오는 Combine의 개발 배경을
설명하기 위해 등장한 것들입니다.
이해하지 못한 개념들에 대해
자연스럽게 손이 닿게 됩니다.
문어발식 확장! Fig.7.
🐙
14. ⓒ NAVER Connect Foundation
CHAPTER 3.
WWDC에서 소개된 기술 세션들
발표자가 봤거나 관심있었던 주제들을 소개합니다.
16. ⓒ NAVER Connect Foundation 16
#WWDC20 #Swift #SwiftUI #tvOS
Build SwiftUI apps
for tvOS
애플 TV 앱을 만들고 싶다면?
17. ⓒ NAVER Connect Foundation 17
#WWDC21 #Shortcuts #macOS
Meet Shortcuts
for macOS
맥에서 동작하는 단축어를
개발하고 싶다면?
18. ⓒ NAVER Connect Foundation 18
#WWDC21 #Shortcuts #macOS
Create accessible experiences
for watchOS
애플워치 앱 디자인을
접근성을 고려해서 설계하고 싶다면?
19. ⓒ NAVER Connect Foundation 19
#WWDC17 #NFC #iOS
Introducing Core NFC
한국에 애플페이가 들어오는데
애플페이에 기본이 되는 NFC를 알고 싶다면?
20. ⓒ NAVER Connect Foundation 20
#WWDC20 #Swift #iPadOS
Build for iPad
아이패드 앱을 개발하기 위한
기초지식을 얻고 싶다면?
21. ⓒ NAVER Connect Foundation 21
#WWDC20 #Swift #iPadOS
Introducing
Combine
애플에서 만든
비동기 프로그래밍 프레임워크를
알고 싶다면?
22. ⓒ NAVER Connect Foundation 22
3.1 Understanding Swift Performance
#WWDC16 #Swift #MethodDispatch #ReferenceCounting
Understanding Swift Performance
프로그램 성능에 미치는 Swift 요소들에 대해 소개합니다.
• 메모리 할당
• 레퍼런스 카운팅
• 메소드 디스패치
• 프로토콜 타입
• 제네릭 코드
23. ⓒ NAVER Connect Foundation 23
3.1 Understanding Swift Performance
어떤 타입을 쓸 때
성능이 더 좋은가?
Struct를 사용했을 때 Class를 사용했을 때
메모리 할당 방식에 따라 성능 차이가 나는 것을 이해할 수 있습니다.
24. ⓒ NAVER Connect Foundation 24
3.1 Understanding Swift Performance
레퍼런스 변수가 많아지면
성능에 영향을 미칠 수 있나?
Struct 내에 reference 변수가 없을 때 Struct 내에 reference타입의 변수가 많을 때
레퍼런스 카운팅으로 인한 성능 차이가 나는 것을 이해할 수 있습니다.
25. ⓒ NAVER Connect Foundation 25
3.1 Understanding Swift Performance
Method Dispatch 타입에 따라
성능에 차이가 날 수 있다?
일반 Class의 성능 Final Class의 성능
Static method dispatch와 Dynamic method dispatch의 차이를 이해할 수 있습니다.
26. ⓒ NAVER Connect Foundation 26
3.1 Understanding Swift Performance
이런 분들께 추천 드립니다.
• Swift가 메모리할당이 내부적으로 어떻게 동작하는지 궁금하다.
• Protocol, Generic이 뭔지는 알지만 어떻게 동작하는지 궁금하다.
• Swift의 성능 개선에 대한 고민을 심도있게 하고 싶다.
27. ⓒ NAVER Connect Foundation 27
3.2 iOS Memory Deep Dive
#WWDC18 #Swift #Memory #Image #Debugging
iOS Memory Deep Dive
유저의 더 나은 경험을 위해 개발자가 메모리를 사용량을 줄이는 방법과
메모리 관련 디버깅하는 방법들을 소개합니다.
• iOS 메모리 구조
• 이미지가 메모리를 사용하는 구조
28. ⓒ NAVER Connect Foundation 28
3.2 iOS Memory Deep Dive
메모리의 종류
Clean, Dirty, Compressed
세가지 종류의 메모리
프로필이 존재한다.
29. ⓒ NAVER Connect Foundation 29
3.2 iOS Memory Deep Dive
이미지가 메모리에
적재되는 과정을
소개합니다.
파일 용량이 590KB라고 해서
이미지를 띄웠을 때
메모리 사용량이 590KB는
아닙니다.
30. ⓒ NAVER Connect Foundation 30
3.2 iOS Memory Deep Dive
이미지의 렌더링
포맷에 따라
각 픽셀의
메모리 사용량이 상이합니다.
저희가 평소에 보는
이미지들은 보통 SRGB(4 bytes)
iPhone 7 이후 모델에서
HDR 모드로 찍은 사진들은
wide format(8 bytes)으로
출력됩니다.
31. ⓒ NAVER Connect Foundation 31
3.2 iOS Memory Deep Dive
이런 분들께 추천 드립니다.
• 이미지 데이터를 어떻게 다뤄야 효율적인지 고민하는 분
• 메모리 디버깅을 어떻게 해야될지 고민하는 분
32. ⓒ NAVER Connect Foundation 32
3.3 Introducing PencilKit
#WWDC19 #Swift #PencilKit #iPadOS
Introducing PencilKit
애플펜슬을 활용할 수 있는 PencilKit을 소개합니다.
33. ⓒ NAVER Connect Foundation 33
3.3 Introducing PencilKit
간단한 코드로
그림판을
구현할 수 있습니다.
단 세줄!
34. ⓒ NAVER Connect Foundation 34
3.3 Introducing PencilKit
간단한 코드로
그림판을
구현할 수 있습니다.
단 세줄!
35. ⓒ NAVER Connect Foundation 35
3.3 Introducing PencilKit
스크린샷에
그림 그리는 기능도
PencilKit으로
구현된 기능입니다.
36. ⓒ NAVER Connect Foundation 36
3.3 Introducing PencilKit
이런 분들께 추천 드립니다.
• iPad에서 애플펜슬을 활용할 수 있는 앱을 만들고 싶은 분
• 아이패드 뿐 아니라 아이폰에서 그림 그리는 앱을 만들고 싶은 분
• PencilKit API는 손가락으로 그리는 것도 지원합니다.
37. ⓒ NAVER Connect Foundation
CHAPTER 4.
WWDC는 한국어를 지원하지 않는다?
부분적으로 오해입니다!
38. ⓒ NAVER Connect Foundation 38
WWDC22 부터는
한글자막 지원이 됩니다!
WWDC21 까지는 영어로...
39. ⓒ NAVER Connect Foundation 39
WWDC21 까지는
영어로 보거나
확장프로그램을 활용해서
보는 방법도 있습니다.
Fig.8.
40. ⓒ NAVER Connect Foundation
CHAPTER 5.
WWDC를 어떻게 보면 될까?
키노트 보고, 기술 세션도 보자!
41. ⓒ NAVER Connect Foundation
기조 연설
(일반, 개발자)
41
기술 세션
WWDC
WWDC의 전체적인 구성에 대해
파악할 수 있다
소개되는 각각의 기술들을
약 30~60분 정도의 영상으로 소개해준다.
42. ⓒ NAVER Connect Foundation 42
5.1 키노트
집에서 편하게
키노트 보기
iOS 개발자 오픈 톡방에서
같이 떠들면서 볼 수도 있습니다!
43. ⓒ NAVER Connect Foundation 43
5.1 키노트
개발자들과 함께 밤새면서
키노트 보기
올해 6월에 Riiid에서 진행된
키노트 같이 보는 이벤트에
직접 참석하고 찍은 사진입니다!
44. ⓒ NAVER Connect Foundation 44
5.2 기술 세션
그 해의 개발자 키노트(Platforms State of the Union)
보기
Platform State of Union 개발자를 위한 기조연설입니다.
이 기조연설에서 소개된 기술 중 관심있는 주제가 있는지 확인하고, 더 자세히 다루는 세션을 찾아 볼 수 있습니다.
45. ⓒ NAVER Connect Foundation 45
5.2 기술 세션
WWDC 기간동안 매일 올라오는 Recap 영상에서
관심있는 주제 찾기
각 날짜별로 공개되는 세션들을 요약하는 recap 영상이 올라옵니다.
이 영상을 보고도 관심있는 주제를 찾을 수 있습니다.
51. ⓒ NAVER Connect Foundation 51
Google IO
매년 구글이 개최하는 개발자 컨퍼런스
구글의 다양한 기술들과
안드로이드의 새로운 버전이나
이를 기반으로 한 새로운 제품 등이 발표되기도 하며
개발자들을 위한 다양한 세션도 진행됩니다.
🤔 Flutter로 iOS 개발을 하고 싶다면..?
Fig.9.
52. ⓒ NAVER Connect Foundation 52
네이버 DEVIEW
올해는 아마.. 11월?
(아직 공식적인 일정 발표 X)
매년 11월에 열리는 DEVIEW에선
선배 개발자 분들의 경험담을
본격적으로 들을 수 있는 귀한 세션들을
볼 수 있습니다.
Fig.10.
53. ⓒ NAVER Connect Foundation 53
토스의 SLASH
Let us: Go!
(iOS 커뮤니티)
Fig.11.
Fig.12.