iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제115호 2024년 11월 24일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 드디어 내일이 레츠스위프트 2024 날이네요. 많은 분들이 이 메일을 내일 행사 가면서 읽으실 수도 있겠네요. 커뮤니티 행사인 만큼 자원해서 준비하는 분들이 다같이 고민하고 애써왔습니다. 저도 개인적으로 여러 가지 시도를 하는 행사가 될 것 같구요. 올해도 많은 분들이 함께 해주시고 즐겨주시면 그걸로 충분한 것 같습니다. 오시기 전에 꼭 레츠스위프트 앱 업데이트하고 오셔야 합니다! 

M4 맥북 프로와 M4 맥 미니 예약 판매가 시작됐더군요. 맥 미니는 당장 살 수도 없고 쓸 수는 없지만 하나쯤 소장하고 싶은 모델이 된 것 같습니다. 그리고보니 맥 미니는 그래도 어느 정도 인기가 있었던 것 같네요!
매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> 앱 스토어 피처링 관련 공식 소식과 번역된 안내글입니다. 앱 스토어도 이제 조금더 열어주는 걸까요 App Store 피처링 - App Store - Apple Developer

> 연말연시 시즌을 맞아서 애플 아케이드에 새로운 게임이 추가된다고 합니다. 애플 아케이드 게임을 잘 안하게 되던데 연말에 가족들과 티비로 해볼 수도 있겠네요 Apple Arcade, 연말연시 시즌을 위한 신규 게임 공개 - Apple (KR)

> 파이널컷 프로나 모션에도 인공지능 기반 도구가 추가되었습니다. 영상 편집도 더 편리해지는 시대가 됐네요. 이제 키노트도 좀 업데이트해주세요 Apple, 새로운 Final Cut Pro 11을 비롯한 프로 앱 업데이트 발표 - Apple (KR)

> 샤잠을 인수하고 서비스로 내장한 것도 꽤 오래된 것 같네요. ShazamKit도 생겼으니 앱에서 써먹을 수 있을려나요 Shazam, 음악 인식 이용 건수 1,000억 회 돌파 - Apple (KR)

# 하드웨어

> M4 맥 미니 리뷰가 쏟아져 나오고 있네요. 입문 모델은 호평 일색인 것 같습니다 M4 Mac mini — is it really THAT good? | by David Lewis

> 또 다른 M4 맥 미니 소개글입니다. 전원 버튼이나 작은 팬과 공기 흐름 여러 단점이 있지만 그래도 추천할 만하다고 하네요 (갖고싶다 갖고싶다) Unveiling My Surprises and Disappointments about the Mac Mini M4 | Mac O

> 맥 미니 하단으로 옮긴 전원 버튼에 대해 이야기합니다. 대부분 미니를 끄지 않는 사람들이 더 많아서 괜찮다고 생각하고 과감하게 설계한 게 아닐까요 Why is the Mac mini power button on the bottom? | by Elvis Hsiao

# 일반

> 🇰🇷 포항에 있는 애플 아카데미도 올해의 쇼케이스 행사를 진행한다고 합니다. 12월 5일 다음주 목요일이네요. 저도 올해는 쇼케이스 행사에 들려봐야겠습니다 SHOWCASE24 | Apple 디벨로퍼 아카데미

> 리눅스 커널 최적화 이야기입니다만 x86 아키텍처 CPU 명령어 중에서 특정 명령어를 우회하도록 21줄 코드로 멀티 스레드에서 2.6% 성능 향상을 가져온다는 얘기입니다. 토르발즈 형님 살아있네요! 21 Lines of Code Propel Linux Performance by 2.6% | by Dylan Cooper

> Shadow PC 라고 게임을 위해서 월단위로 결제하고 윈도우즈 PC를 클라우드 기반으로 통째로 제공해주는 서비스가 있습니다. 짧게 써야할 때 필요할 수도 있겠다 싶은 정도입니다 Shadow PC is amazing | by Tari Ibaba

> masOS 세콰이어 새 기능 소개입니다. 개인적으로 엠비언트 배경음이 들어간 게 너무 좋네요. 마음껏 빗소리 들으면서 코딩할 수 있어서요 6 Essential MacOS Sequoia Features Every User Needs to Know | by Andrii

> 구글 독점 문제와 함께 크롬 사업부를 매각하라는 의견을 법원에 건의했다는 소식이 전해졌죠. 구글의 독점 소송은 어떤 결과로 이어질까요 Forcing Google to spin off Chrome (and Android?) | by Cory Doctorow

> 동형 암호화 방식에 대한 회의적인 글입니다. 이 분 글은 많은 글이 냉소적이긴 한데요 특히 동형 암호화 기술에 대한 음모 이론을 제시하는 부분이 특이하네요 Homomorphic Encryption Is Not Encryption | by Andrew Zuo

> 보통 나쁜 사람들이 빨리 끝내고 착한 사람들이 늦게 끝내는 인식과 다르게 게임 이론에서 협력적이고 착한 사람들이 우승할 수 있다는 것을 보여주는 글입니다. 배신이냐 협력이냐 현실적인 고민이 게임 속에서도 좋은 영향력을 발휘할 수 있을까요 Nice Guys Finished First | by Saankhya Mondal

> 저도 아직 꼼꼼하게 읽어보지 못했는데요. 범용 목적의 객체 지향 언어로 탄생한 Simula 에 대한 소개입니다. 지금 봐도 67년도 당시에 클래스와 객체 개념을 최초로 도입했다는 것이 참 신기합니다 The Origin Story of Objects: The Birth of Simula | by Aleena

> 한동안 떠오르는 메모 앱으로 Bear를 꼽았었는 데요. 유료 지만 태그도 지원하고 문서 관리가 더 편하다는 것을 강조합니다. Bear 사용자분들 계신가요 Why Bear App Is My Favourite Notes App | by Julian Cosky

> ㅎㅎ 매년 딱 이맘때만 업데이트하는 바로 그 저장소. 올해도 블랙 프라이데이 딜을 소개하는 저장소입니다 mRs-/Black-Friday-Deals: Black Friday Deals for macOS / iOS Software & Books


# AI / ML

> 💎 당장 제가 꼼꼼하게 읽어봐야 하는 내용이네요. MLX 환경을 준비해서 미세 조정을 위해 LoRA 방식으로 추가 학습하는 방식을 설명합니다 LoRA Fine-Tuning On Your Apple Silicon MacBook | by Matthew Gunton

> 애플 인텔리전스 뿐만 아니라 인공지능 도구를 사용하다보면 우리는 직접할 수 없게 되고 점점 더 멍청해지는 걸까요. 비판적인 사고가 없이 살아가는 미래의 나를 상상해봅니다 Apple Intelligence’s Plan to Make You Stupid | by The Evidence Files

> 글쓰기 도구를 앱에서 지원하려면 뷰에서 행동을 정의해줘야 하는데요. SwiftUI 와 UIKit 에서 각각 어떻게 지원 가능한지 설명합니다. Exploring Apple Intelligence: Writing Tools

> Qwen2-Audio 라는 멀티 모달 언어 모델을 사용하면 음악을 악보로 바꿀 수 있다는 트랜스폼을 설명합니다. 크고 복잡한 모델들이지만 여전히 어휘가 풍부하지는 못하다고 합니다. Exploring Music Transcription with Multi-Modal Language Models | by Jon Flynn

> 애플 인텔리전스 Notification 요약 기능에 대한 설명입니다. 지금은 영어만 지원하다보니 한국어도 읽고 영어로 요약해주더군요 The Hidden Benefits of Apple Intelligence’s Notification Summaries | by The Useful Tech

> 매일 만나는 크래시. 스위프트 런타임과 XNU 다윈 커널이 어떤 경우에 시스템 수준에서 크래시를 발생하는 지 여러 가지 경우를 설명합니다. BAD_ACCESS 에러를 드디어 피할 수 있으려나요 What is a Crash?. An exceptional deep dive | by Jacob Bartlett


# 스위프트

> 이진 트리를 만들어서 써야 하는 경우가 아주 드물게 있겠죠. 학부 시절에 숙제하던 게 생각나는 글이라서 가져와 봤습니다 Binary Trees in Swift. A Simple Data Structure! | by Steven Curtis

> enum 선언 시점에 아예 의도적으로 Unknown을 선언하면 어떻게 될까요. 모르겠지만 알아서 처리해야 하는 상황에 대해 설명합니다. Handling Unknown Enum Cases in Swift | by Steven Curtis

> @Observable 매크로를 사용하는 경우 lazy var 의도한 것처럼 사용하지 못할 수 있어서 무시하도록 설정하는 방식을 설명합니다 Lazy vars in @Observable classes in Swift

> 메인 액터의 동작에 대해 상세하게 설명하고 있습니다. 글로벌 액터와 구분해서 어떤 것을 고립해서 사용할 수 있는지 읽어보시길 추천드립니다 MainActor usage in Swift explained to dispatch to the main thread

> Sendable 프로토콜이 이제 꼭 알아야 하는 필수 지식이 되어버렸습니다. 컴파일러가 스레드 안정성을 확보할 수 있도록 명시하거나 액터를 지정하여 분리하는 방식을 학습할 수 있도록 설명합니다. Mastering Sendable in Swift 6 | by Wesley Matlock

> SPM 방식으로 private 감춰진 패키지를 안전하면서도 효율적으로 배포하는 방식에 대한 설명입니다. private 깃헙 저장소와 토큰을 활용한 접근 제어도 흥미롭네요 Private Swift Package Manager: A Better Way to Share Your Code | by Ajay Prabhakar

> 제품에서 스위프트나 SwiftUI 코드 자체를 보여줘야 하는 개발자 관련 도구를 개발한다면 스위프트 문법 하일라이트를 직접 개발해야 할까요? Swift-Syntax라는 프로젝트를 활용한 경험을 소개합니다 Sahand Nayebaziz: Syntax Highlighting SwiftUI Code with Swift Syntax

> 싱글톤은 안그래도 안티패턴으로 조심해서 써야하는 방식이지만 스위프트 6가 되면서 더 눈에 띄게 나빠진 것처럼 보입니다. 싱글톤 관련 에러가 많이 보이니까 그런가봅니다. 어떻게 개선할 수 있을까요 Stop Making Singletons in Swift: A Dependency Injection Guide | by Ilia Kuznetsov

> 액터가 동작할 때 특정 속성을 분리해서 처리할 지, 분리하지 않아도 되는지 isolated 와 nonisolated 키워드에 대해 설명합니다. 아직 직관적으로 나누지 못하시겠다면 조금씩 바꿔보는 것도 좋겠습니다 iftMastering Actor Isolation with Swift’s Nonisolated and Isolated Keywords | by KD Knowledge Diet


# 설계 구조 : 패턴
> iOS 아키텍처에 대한 글은 아니고 일반적인 소프트웨어 아키텍처에 대한 글입니다. 앱 구조로만 생각하기보다는 더 지평을 넓힐 수 있는 구조를 경험할 수 있습니다 My Favourite Software Architecture Patterns | by Matt Bentley
# 뷰 프로그래밍 : SwiftUI

> 💎 라이브 액티비티와 다이나믹 아일랜드 연동하는 방식을 상세하게 설명하고 있습니다. 두루 살펴보기 좋은 자료라서 추천합니다 Integrating Live Activity and Dynamic Island in iOS: A Complete Guide

> 실용적인 관점에서 SwiftUI 화면 커스텀 내비게이션 방식을 제안합니다. 이거 좀 애플에서 정리를 해주면 좋겠는데 말이죠 여전히 다양한 케이스가 나오는 것 같습니다 Custom Navigation in SwiftUI: A Practical Solution | by ilyapaddubny

> UICollectionView 처럼 크기에 따라 레이아웃이 조정되는 Flow Layout을 SwiftUI 에서 구현하려고 Layout 프로토콜로 CardLayout을 구현합니다 (그냥 콜랙션 뷰 쓰면 안되나요) SwiftUI Self-Sizing Flow Layouts

> 여전히 SwiftUI 뷰 렌더링과 업데이트 방식을 투명하게 안내하고 있지 않기 때문에 이 글처럼 여러 실험을 통해서 확인하는 것 같습니다. 상태 변화를 감지하고 반응하여 업데이트되는 흐름에서 최적화를 고려해야 하는 부분을 짚어줍니다. Understanding SwiftUI's View Update Mechanism - Starting from a TimelineView Update Issue | Fatbobman

> Top 10 SwiftUI Errors Developers Face and How to Fix Them | by Amin Softtech

# 뷰 프로그래밍 : UIKit

> iOS에는 한 번에 하나씩만 선택 가능한 Radio Button 대신에 Segment Control 방식을 권장하는 데요 (오랜만에 UIKit 으로) 커스텀 Segment Control 구현 예제라서 가져와봤습니다 3 Different Custom Styles for Segment Control | by Jerry PM

> iOS 앱들은 이제 Setting 설정 앱에서 값을 바꾸기 보다는 앱 내부에 설정 화면을 어떻게 만들 것인가 논의하는 쪽으로 바뀌는 것 같네요. 직관적이고 접근성이 높은 설정 화면을 만드는 것은 어디부터 시작해야 할까요 Master the Anatomy of a Great iOS Settings Page | by Delfina Sugandi

# 프레임워크

> 앱 개발사의 서로 다른 앱을 구독할 때 가격을 연동해서 할인해 줄 수 있는 인앱 구매 방식이 생겼습니다. Contingent pricing for in-app subscriptions - SwiftLee

> 스크린 타임 API - DeviceActivity 프레임워크로 사용 시간을 추적하는 방식을 설명합니다 Creating an iOS Screen Time Tracking App Using SwiftUI and Apple’s DeviceActivity Framework | by Muhammad Danish Qureshi

> CoreData와 SwiftData 데이터 추적과 알림 방식에 대한 심도 깊은 설명입니다. 데이터 동기화 문제를 해결할 수 있도록 도와주는 트랜잭션과 이력 관리 기능을 추천하고 있습니다. Mastering Data Tracking and Notifications in Core Data and SwiftData | Fatbobman

# 맥 개발/AppKit

> 맥에 있는 PasteBoard 를 다루는 PasteBoardManager를 만드는 과정을 설명합니다. 맥용 앱 중에 복사된 내용을 찾아서 보여주는 앱 같은 것을 만들 때 유용하겠네요 SwiftUI/MacOS: Working with NSPasteboard | by Itsuki

# 개발 환경

> ChatGPT 맥용 앱이 Xcode 나 VSCode 내용을 보고 읽고 대화할 수 있습니다. 굳이 캡처해서 설명하지 않아도 되는 정도인데요 몇 가지 리뷰를 같이 보시면 될 것 같습니다. ChatGPT Can Now Access Mac Apps to Write Code for You | by Jim Clyde Monge

> Xcode 16부터 지원하는 Swift Format 기능으로 코드를 이쁘게(?) 형식화할 수 있는 방식을 소개합니다. lint와 비슷한 기능도 있지만 제한도 있어서 앞으로가 더 기대됩니다 Swift Format in Xcode :: TrozWare — Mac books & articles

> 웹 어셈블리 기반 런타임 Wasmer 5.0 성능이 향상되고 iOS를 지원한다고 합니다. 저도 아직 동작을 확인하지는 못했지만 이제 iOS 에서도 wasm 코드를 사용할 수 있는걸까요 Wasmer 5.0 Brings High-Performance Applications to iOS Devices | by Valentin Podkamennyi

> ChatGPT 플러그인 연결 과정에 대한 또 다른 글입니다. 같이 읽어보시면 좋겠네요. 코파일럿 플러그인도 써봤는데 IDE에서 동작하는 것과 화면에 대해 설명하는 것은 또 다른 느낌이더군요 Xcode & ChatGPT: Official Support | Medium

# 도구/오픈소스 

> 이거 재밌는 프로젝트군요. SwiftUI 화면을 파이널 컷에서 렌더링해서 보여줄 수 있는 플러그인 코드입니다. 뷰로 애니메이션 만들고 영상 만들기는 좋겠네요! SwiftUIFX – Swift Package Index

> 맥 화면 아래 Dock 타일을 변경할 수 있는 플러그인 만드는 예제 코드라고 합니다 marioaguzman/NSDockTilePlugIn-Example

> SwiftUI로 만든 여러가지 화면들 쇼케이스라고 합니다. 특이한 동작이 많이 있으니까 구경해보세요 mikelikesdesign/SwiftUI-experiments: Examples with SwiftUI that showcase various interactions, animations and more


# 디자인 

> 💎 터치 스크린이 익숙해지고 있지만 여전히 물리 버튼이 가지는 매력과 직관적인 필요가 있습니다. 앞으로 물리버튼은 영원히 사라지게 될까요 Are physical buttons going extinct? | by Daley Wilhelm

> 많은 회사들이 제품을 개발하면서 사용성과 기능성을 양자택일 하는 경우가 많다는 지적입니다. 직관적이고 쉽고 쓰기 편한 제품이 이상적이지만, 사용자들은 점점 더 기능이 많고 복잡한 것을 원하기도 하니까요 Great products transcend the Usability vs. Utility debate | by Avi Siegel

> iOS 18에서 앱 아이콘 색을 단순화해서 원하는 색으로 바꿀 수 있다보니 디자이너 입장에서는 일이 늘어난 것처럼 느낄 것 같습니다. iOS가 대신 처리해 주는 부분이 있지만 스캐치 앱은 단순하고 색칠된 아이콘을 그대로 느낄 수 있도록 고민했다고 하네요 Oh no, I need to design a tinted iOS 18 app icon — how to do it right · Sketch

> 피그마에서 오토 레이아웃을 미리 시뮬레이션할 수 없으니 다양한 사이즈로 테스트하고 문제점을 발견해서 해결하는 방식을 제안합니다 (인터페이스 빌더를 알려주고 싶네요) Techniques for Using Auto Layout in Figma | by Joey Banks

📲회사에서 iOS 개발자들에게 홍보하고 싶은 내용이 있으신가요? 
news@letswift.kr 로 언제든지 문의해주세요. 
레츠스위프트 뉴스레터
http://letswift.kr
수신거부 Unsubscribe