letswiftconf / newsletter

레츠스위프트 뉴스레터 아카이브
MIT License
448 stars 10 forks source link

호외 WWDC 2024 특집 (2024년 6월 16일 발행 예정) #117

Closed godrm closed 3 weeks ago

godrm commented 3 weeks ago

WWDC 24 특집호

이번호는 WWDC 24 특집으로 정리해봅니다. 일하면서 보려니 세션 영상을 몇 개 못 본 것 같은데요. 키노트와 PSU 시연을 직접 써보고 싶어서 아이패드와 맥에 베타를 설치했지만 아직 안되는 게 많네요 ㅜㅜ 개인 아이폰에는 아직 무서워서(?) 못 올리고 있습니다. Xcode 16에서 개선된 Code Complete 정도만 써보고 있습니다. 다들 설치해보셨나요? 448129769_18439161922023949_8164077177515817392_n

Apple Intelligence 는 AI 일반 명사를 애플 스타일대로 부르는 마케팅 용어입니다. 필 쉴러가 비행기 조종사로 나온 것처럼 왠지 그 분이 붙였을 것 같은 이름이죠. 기술적으로는 ChatGPT 모델 API를 호출하는 것처럼 애플은 Foundation 모델을 개발자가 직접 호출하는 API를 제공하지는 않습니다. 대신 운영체제 곳곳에 사용자가 사용하는 곳에 지능을 접목하도록 펼치는 방식을 선택했습니다. 그래서 애플 내부의 모든 개발팀이 개선 사항을 내놓은 것 같은 느낌입니다. 실제 분위기는 올해 WWDC에 참가하지 못해서 아직 물어보지 못했습니다.

키노트와 PSU에서 설명한 AI/ML 관련 내용은 다음과 같습니다. 여러분들도 이 내용들이 가장 관심이 많으시겠죠

파운데이션 모델

448106295_18439161979023949_5435562304020197059_n

그 중에서 직접 개발했다고 하는 파운데이션 모델은 온디바이스에서 동작하지만, 특별한 경우(?) Private Cloud Compute에서 실행한다고 설명합니다. 파운데이션 모델에 대해서는 머신러닝 리서치 페이지에 올라온 글을 참고하시면 됩니다. On-Device and Server Foundation Models 모델 트레이닝 데이터 수집을 위해서 AppleBot 이라는 웹 크롤러를 만들어서 돌렸다는 얘기도 있네요.

파운데이션은 각 역할을 담당하는 모델을 만들고, 사이즈를 줄이고, 최적화하고 아답터로 묶어서 제공한다고 설명합니다. macOS Sequoia 베타1에는 이미 Apple Intelligence를 위한 모델과 아답터가 500메가 정도 설치가 되어 있습니다. 하지만 시연에서 보여준 대부분의 기능은 아직 사용할 수 없습니다 ㅜㅜ

Private Cloud Compute

448111246_18439161970023949_1803601726375442123_n

위 글에도 링크가 있지만 프라이버시와 개인 정보를 위해서 안전한 형태로 Private Cloud Compute로 확장한다고 설명합니다. 이 부분은 개발자 사이트가 아니라, 보안 관련 Security 블로그에 올라와 있습니다. Private Cloud Compute 보안 전문가들이 안정성 검사를 하고 해킹 가능성을 점검하는 경우를 위해서 연구용 디바이스를 제공한다고 합니다. 어떤 식으로 진행되는지 전혀 모르겠지만 흥미롭네요. Swift Server로 직접 모델을 실행하고 전달하는 구조라고 하는 데 어떻게 실행해 볼 수 있는지도 궁금합니다. 엔터프라이즈 내에서 사용할 수 있는 리소스를 제공하지는 않을려나요. PCC가 너무 궁금한데 아직은 사용해 볼 수 없어서 많이 아쉽습니다. PCC를 제외하고 공개된 내용들 하나씩 살펴보겠습니다.

Writing Tools

Writing Tools는 TextView 나 WebView에서 선택하면 메뉴에 노출되고 새로운 Delegate로 액션이 시작되는지 종료되는지 알 수 있습니다. 텍스트 중에서 특정 태그나 범위를 제외하기도 가능합니다. 저도 지금까지는 ChatGPT API를 이용해서 요약도 하고, 번역도 하도록 구현했었는 데, 이제는 macOS나 iOS에서 개발자가 문법 검사나 요약 요청을 보내는게 아니라 사용자가 텍스트를 선택하고 메뉴에서 액션을 선택하면 그걸 개발자가 인지하고 반응하도록 하는 구조입니다. 운영체제가 대신 처리해주는 부분이 많아졌습니다.

448212224_18438575104023949_3147066959526421346_n

Genmoji

Writing Tools는 Label 이나 TextView에서 처리가 되는 반면에 Genmoji는 Text Input 컨트롤을 확장합니다. 입력창에서 만들어진 Genmoji는 AttiributedString 형태로 표시하거나 Webview에 보여줄 수 있습니다. 메시지로 보내거나 APNS 푸시 메시지에 담아서 보낼 수도 있습니다. 느낌상 작은 이모지라서 SVG처럼 그냥 포함해서 보내는 게 아닐까 싶은데요 구현체는 NSAdaptiveImageGlyph 라는 UIKit / AppKit에 구현된 클래스입니다. 예상대로 Data 타입으로 그대로 보내는군요

Assistant Intent 와 Schema

448258915_18439161940023949_3964111805310718640_n

기존에도 시리와 단축어로 앱을 실행하기 위해서 Intent를 전달할 수 있었는데요, 동작 가능한 액션과 도메인 카테고리가 확 늘어났습니다. 이 부분이 가장 직접적으로 체험하게 될 부분 같습니다. 특히 Assistant Schema라고 부르는 개념으로 확장되면서 Assistant Intent가 대폭 늘어났습니다.

448110743_18439161955023949_3468607149766562040_n

Siri는 아마도 화면 인식 모델과 접근성 API로 화면을 인지하고 미리 도메인과 액션을 세분화해서 기존보다 많은 타입과 액션을 연결해서 앱을 동작하나 봅니다. 개발자 입장에서는 시리로 개별적으로 테스트 하지 않더라도, Assistant Intent를 구현하고 단축어로 테스트하면 시리가 처리한다고 보장이 된다고 하네요. 특히 Xcode가 Intent가 제대로 동작하는 지 살짝 검증을 해준다고 합니다. 448480391_18439161958023949_7110896990655156688_n

CreateML과 CoreML

CreateML로 pyTorch 모델을 변환해서 CoreML 모델로 최적화하면 Sonoma보다 더 빠르다고 하고, CoreML에도 여러 모델이 추가됐습니다. 기존에 있던 모델까지도 같이 보여줘서 딱 정확하게 뭐가 추가된 것인가는 잘 모르겠습니다. 특히 CoreML로 온디바이스 모델을 실행할 때 CPU, GPU와 NPU까지 가속할 수 있다고 하는데, 이 부분에서 아직까지는 PCC와 연결고리는 못 찾았습니다.

Xcode 16 beta

Screenshot 2024-06-13 at 4 36 16 PM

Xcode 16 베타는 macOS Sonoma에도 설치가 가능합니다만, macOS Sequoia에서는 Xcode 15 버전이 실행이 안됩니다. 16으로 강제 이주를 원하는 것 같습니다. 물론 우회해서 실행할 수 있는 방법이 있긴 합니다만 16을 실행하려면 넘어가는 게 맞을 것 같습니다. 왜냐하면 Xcode 16부터 제공하는 Predictive Code Completion 모델이 시스템 프레임워크를 사용하기 때문에 Sonoma에서는 안됩니다. Sequoia에서 Xcode 16 베타를 설치하면 시뮬레이터 다운로드하는 것처럼 모델을 다운로드하고 용량이 2기가 정도가 됩니다. 정확히 어디에 설치되는가 경로는 찾지 못했지만 이 부분은 온디바이스에서 실행되는 것 같습니다. 아참 Xcode 16 새 기능을 사용하려면 M1 이상 애플 실리콘 맥에서만 가능하고 메모리도 16기가 이상이라서 저처럼 인텔 아이맥을 쓰시는 분들은 안된다고 합니다. 내년쯤 M4 맥 스튜디오 사달라고 하고 싶습니다. 448349167_18439162000023949_2354351863179123040_n

반면에 코드 컴프리트와 같이 소개된 Swift Assistant는 코파일럿처럼 코드를 생성해주는 데 PCC로 확장이 되야 사용할 수 있는 것 같습니다. 그래서 아직은 사용이 불가능합니다 ㅜㅜ Writing tools이나 ImagePlayground까지 아직 베타에는 포함되지 않았는 데 마찬가지 이유로 PCC 연동되는 기능들이 다 빠진 것으로 보입니다. 아마도 대규모 사용자가 요청을 보내면 받아줄 서버 증설도 필요하겠죠. 사용자와 개발자가 PCC를 주로 사용하게 될 테니까요.

macOS Sequoia 와 Private Framework

Screenshot 2024-06-15 at 8 35 33 PM

macOS Sequoia에서 Private Framework를 조사해봤습니다. macOS Sonoma에 있는 Private Framework는 대략 1620개. Sequoia 에서는 대략 1850개로 230여개 늘어났습니다. Sequoia에 추가된 새로운 프라이빗 프레임워크 중에 눈에 띄는 것들은 다음과 같습니다.

Writing Tools 관련

➔ WritingTools 서비스를 위한 UI와 API를 구현한 것 같습니다. 문법 검사하거나 요약, 다시 쓰기 같은 동작을 처리한다고 봐야겠죠 (구현체는 있는데 못 쓴다니 PCC 때문인 것 같습니다)

WritingTools.framework
WritingToolsUI.framework
음성 지원(?) 관련

➔ 음성으로 시작하는 명령이나 음성 처리를 담당하려나 봅니다

VoiceTriggerAOP.framework
VoiceTriggerCommon.framework
VoiceControlUI.framework
VoiceProcessor.framework
VoiceServices.framework
화면 지능 담당(?)

➔ 정확히는 모르겠지만 아마 화면을 인식하는 모델이 아닐까 싶네요

UIIntelligenceIntents.framework
UIIntelligenceSupport.framework
UIIntelligenceSupportAgent.framework
번역 관련

➔ 번역 관련 시연을 했던가요 세션도 있지만 번역 관련 API가 별도로 포함된 것 같구요 TranslationAPISupport.framework

토큰 관련

➔ LLM을 위해서 토큰 관련 프레임워크가 있네요

TokenGeneration.framework
TokenGenerationCore.framework
TokenGenerationInference.framework
텍스트 생성 및 요약

➔ 요약과 텍스트 생성을 위한 프레임워크가 있네요

TextGeneration.framework
TextGenerationInference.framework
SummarizationKit.framework
SwiftASN1.framework <-- 알파벳 순으로 보다보니 Swift 데이터 구조를 ASN.1으로 압축해서 보내는 것 같습니다. 
스티커 관련

➔ 스티커를 다루는 프레임워크인 것 같고

StickerFoundationInternal.framework
StickerKitInternal.framework
스팟라이트 관련

➔ 스팟라이트에 임베딩과 지식 관리를 도와주는 프레임워크 일까요?

SpotlightEmbedding.framework
SpotlightKnowledge.framework
화면 공유 관련

➔ 아이폰 화면 미러링이나 다른 사람 화면 공유하기 관련 프레임워크 같습니다

ScreenContinuityServices.framework
ScreenSharingKit.framework
생성 관련 API들

➔ GenerativeExperiences, GenerativeFunction이 어떤 경험을 생성하는 것인지, 어떤 함수를 생성하는 것인지 모르겠습니다만 프로롬프와 관련이 있을 수 도 있겠네요

GenerativeExperiences.framework
GenerativeExperiencesRuntime.framework
GenerativeFunctions.framework
GenerativeFunctionsFoundation.framework
GenerativeModels.framework
GenerativeModelsFoundation.framework
GenerativePlaygroundUI.framework
이미지 생성 & 입력 관련

➔ 이미지 생성하는 Image Playground 화면이나 입력 도구 관련 인 것 같네요

ImageGenerationUI.framework
InputAnalyticsServer.framework
InputToolKit.framework
InputToolKitUI.framework
모델 관리

➔ 여러 모델을 관리해야 하니까 모델 카타로그가 있는 것 같구요

ModelCatalog.framework
ModelCatalogRuntime.framework
ModelManagerServices.framework
노트와 계산기 관련

➔ 계산기 필기체는 노트의 한 종류더군요. 그래서 노트 관련 프레임워크도 생기고 계산기용 프레임워크도 있나 봅니다

NotesEditor.framework
NotesSiriUI.framework
NotesUIServices.framework
NumberAdder.framework
PCC 관련

➔ PCC 데몬과 API를 포함하는 프레임워크가 있고, 클라이언트용 API도 있네요. 하지만 문서화되지 않아서 아직은 뭔지 잘 모르겠습니다

PrivateCloudCompute.framework
PrivateMLClient.framework
PrivateMLClientInferenceProvider.framework
프롬프트와 요약 관련

➔ 프롬프트 생성도 필요할 것 같고 Proactive가 붙은 것은 예측해서 뭔가 처리하나 봅니다

PromptKit.framework
ProactiveMagicalMoments.framework
ProactiveSummarization.framework
ProactiveSummarizationClient.framework
시리 관련

➔ 시리 관련 프레임워크는 기존에도 꽤 있었는데, 추가된 것도 많습니다. 아무래도 연결지점이 많고 모델이 많아서 오케스트레이션도 필요하니까 프레임워크가 많아진 것 같습니다

SiriAppLaunchUIFramework.framework
SiriAutoComplete.framework
SiriAutoCompleteAPI.framework
SiriContactsCommon.framework
SiriContactsUI.framework
SiriGestureBridge.framework
SiriMailUIModel.framework
SiriNotebookUI.framework
SiriOrchestration.framework
SiriOrchestrationServices.framework
SiriReferenceResolutionDataModel.framework
SiriSettingsUI.framework
SiriSuggestionsBaseModel.framework
SiriTranslationUI.framework
SiriTurnTakingManager.framework
SiriVideoUIFramework.framework

WWDC 24 세션들

Screenshot 2024-06-15 at 8 38 19 PM

Swift 6는 그동안 꾸준히 언급되어 왔지만 Swift Concurrency기반 Actor 데이터 레이싱 문제를 해결하는 것이 핵심 사항입니다. Sendanble, Copyable 구분도 필요하고 Atomic<> 제네릭 타입도 쓸만한 것 같습니다. Swift 최적화 영상도 있는데 아직 살펴보지 못했습니다. Embedded Swift가 추가됐는데 이걸 올릴 만한 임베디드 장비는 라즈베리파이 뿐이네요. 라즈베리파이는 Swift 5.x도 느리지만 돌아가긴 합니다. Swift Testing도 많이 기대됩니다. 최신 버전 JUnit 기능들을 매크로 형태로 많이 흡수해서 테스트 코드 작성도 빠르게 작성하도록 도움이 될 것 같습니다. 그냥 Swift Assistant가 Swift Testing 코드도 다 작성해주면 안될까요 흑흑 SwiftData는 Core Data처럼 Persistence 저장소를 선택할 수 있게 되면서 유연해졌습니다.

저는 watchOS 관련은 후순위라서 아직 살펴본게 없고, visionOS 관련해서는 은근 기대하면서 보고 있습니다. 가장 눈에 띈 부분은 enterprise API를 기업들과 협약하고 열어준다는 부분입니다. 팀 쿡의 인터뷰에서도 포춘지 100대 기업들 중에 절반이 비전 프로를 사용해서 사내 근무 환경을 개선하고 싶다고 합니다. 특히 공장이나 창고 등에서 카메라처럼 일반 앱 개발자는 사용할 수 없는 API를 허용한다는 부분이 신기했습니다. 기업 환경에서 먼저 익숙하게 사용하게 될 수도 있겠습니다. Tabletop 게임이나 입력 방식, 입체적인 앱을 만들 수 있는 방식도 개선되고 visionOS 2부터는 한국어도 지원합니다. 하지만 판매를 안할 뿐이죠. 1차 출시국을 봤더니 visionOS Lab이 있던 곳이더군요. 역시 한국은 후순위라서 ㅜㅜ

마지막으로 디자인 관련 세션들 추천드립니다 게임 디자인, visionOS를 위한 공간 디자인과 감정 디자인 설명은 매우 인상적이었구요 iPadOS에서 바뀐 탭바와 사이드바 설명도 깔끔했습니다. 아직 대부분의 영상이 한글 자막은 없지만 드디어 HIG 문서가 한글화되서 올라온 것을 알고 계신가요. https://developer.apple.com/kr/design/human-interface-guidelines/ 이제 맘놓고(?) HIG를 디자이너와 공유할 수 있겠네요.

WWDC 24 주간은 끝났지만 세션 영상이 123개로 봐야할 영상이 쌓여있습니다. 베타가 올라가고 새로운 아이폰이 출시될 가을쯤에는 새로운 개발 환경이 생기겠네요. 물론 저도 장비를 바꿔야 합니다 ㅜㅜ 아이폰은 15 프로 맥스니까 맥을 바꾸는 날까지 WWDC 애플 뮤직 플레이리스트나 들으면서 적금이라도 들어야 하려나 봅니다.

같이 보기

macOS Sequoia 배경 화면으로 추가된 Macintosh 이미지들을 다운로드 받을 수 있는 사이트

godrm commented 3 weeks ago

Tim Cook on Apple Intelligence, Privacy and more! WWDC 2024 Interview

Talking Tech and AI with Tim Cook!

The Talk Show Live From WWDC 2024

godrm commented 3 weeks ago

발행했습니다 https://stib.ee/5cuC