-
Dub Dub Daily: Day 5
Swift는 하루가 다르게 발전합니다. 최신 언어 업데이트와 코드에 가져다주는 새로운 가능성, 그리고 지금이 Swift 개발자로서 흥미로운 시기인 이유를 살펴보세요. 특별 게스트가 자세히 설명드립니다.
리소스
-
비디오 검색…
드디어 그날이 왔네요 오늘의 WWDC 마지막 날에 오신 걸 환영해요 정말 대단한 한 주였어요 오늘 오전 두 개의 그룹 랩이 진행됐는데, 내용이 정말 좋았어요 참고로, 모든 그룹 랩은 온디맨드로 제공되니 언제든지 다시 보실 수 있어요 WWDC를 마무리하기 전, 꼭 들어야 할 대화가 하나 더 있어요 Swift는 이번 주 내내 이어진 주제였죠 Holly Borla만큼 마무리를 잘 해줄 사람은 없을 거예요 Jeff가 이번 주 초 Holly와 대화를 나눴어요 소개할게요 Swift 팀의 Engineering Manager Holly Borla입니다 올해 정말 많은 일들이 있었죠 이번 SOTU에서 실제 미모티콘으로 올해 Swift는 개발자들이 가장 중요한 개발에 다시 집중할 수 있도록 설계됐다고 하셨죠 조금 더 자세히 말씀해주세요 그러죠 저에게는 두 가지 의미가 있어요 우선, 정말 명확하고 아름다운 코드를 작성할 수 있어요 Swift로 코드를 작성하고 작성을 마쳤을 때쯤 제가 작성한 코드가 읽히는 걸 보면 정말 뿌듯해요 그리고 다른 하나는 내가 작성한 코드가 올바르다는 확신을 가질 수 있어요 컴파일러가 실수를 잡아주기에 없어서는 안 될 핵심 요소죠 따라서, 명확하고 아름다운 코드를 작성하려면 매일 코드를 작성할 때 발생하는 마찰 요소를 없애야 합니다 Swift 6.4에서 보게 될 많은 업데이트들은 바로 이러한 마찰 요소들을 제거해 개발에 방해가 되지 않도록 하고 아이디어를 정말 명확하고 아름답게 구체화하는 데 집중할 수 있죠 올해 개발자들이 가장 먼저 알아차릴 부분은 뭔가요? 사실 처음엔 대부분의 업데이트를 못 알아차릴 수 있어요 그러다 더 이상 문제가 되지 않으면 그제서야 알게 되죠 예를 들어, Swift에서 some과 any 타입을 선택 사항과 함께 사용하는 방식이 훨씬 더 간결해졌죠 이전에는 괄호와 함께 더 많은 구문을 써야 했지만 이제는 자연스러운 방식으로 코드를 작성하면 돼죠 개발자의 Swift 코드 작성 경험을 원활하게 해주는 업데이트지만 모르고 지나칠 수 있죠 하지만, 이런 작은 변화가 쌓이면 일상적인 Swift 코드 작성 시 생산성이 크게 향상돼요 동시성 코드에서 defer 블록의 async 메서드 호출도 마찬가지죠 이전에는 제한이 있어서 컴파일러가 허용하지 않았어요 이제는 예상했던 것처럼 그냥 동작하고 다른 함수 본문과 똑같은 방식으로 asynce 코드를 호출할 수 있어요 다시 한번 말하지만, 이전에 제한이 있었다는 걸 몰랐다면 모르고 지나칠 수 있죠 아무런 제한 없이 그냥 할 수 있을 뿐이에요 자연스럽게 쓴 코드가 동작하면 그냥 넘어가는 거예요 더 이상 신경 쓸 필요가 없는 거죠 덜어냄으로써 더해진 거네요 맞아요 모든 게 자연스럽게 동작하고 예전엔 제한이 있었다는 걸 몰랐다면, 그게 최고의 업데이트죠 정말 멋지네요 올해 눈에 보이는 변화들도 많지만 내부적으로 일어나고 있는 일 잘 드러나지 않는 일 중 팀에서 자랑스럽게 생각하는 게 있나요? 컴파일러 개발 분야에서 정말 기대되는 부분 중 하나가 화려한 새 언어 기능이 아닌 진단 개선이에요 바로, 컴파일러에서 나오는 오류 메시지를 개선하는 거죠 정말 중요한 분야라고 생각해요 Swift 코드를 작성할 때 주로 받게 되는 피드백이거든요 어떤 언어 기능을 사용하는지 파악하는 데 도움이 되고 무엇이 잘 되고 잘 안 되는지도 알 수 있죠 그런데 이해하기 어렵거나 코드 수정을 위해 뭘 해야 하는지 명확하지 않은 오류 메시지를 받으면 정말 답답해요 그래서 Swift 6.4에는 다양한 종류의 진단 개선이 있어요 일부는 지금뿐만 아니라 향후 진단을 개선하기 위한 인프라 수준의 변화예요 코드에서 진단을 제어하는 방법도 더 많아졌어요 제가 가장 좋아하는 새 기능은 @Diagnose 속성이에요 코드에서 경고 동작을 제어하고 지원 중단 경고를 억제하지만 좀 더 세밀하게 엄격한 메모리 안전성이나 엄격한 동시성 진단을 활성화해 Swift 6 언어 모드 마이그레이션에 도움이 되기도 하죠 전반적으로 더 많은 제어권이 제공되고 일반적인 진단 개선도 많이 이루어졌어요 SOTU에서 재미있는 순간이 있었는데요 개선된 특정 문제에 대해 언급하셨잖아요 그게 어떤 문제인지 말씀해 주시겠어요? 그럼요, 그 오류 메시지는 이래요 “컴파일러가 적절한 시간 내에 이 식의 타입을 확인할 수 없습니다” Swift 코드를 작성해보셨다면 이 오류 메시지를 보신 적이 있을 거예요 컴파일러의 타입 체커의 폴백인데 타입 추론과 오버로드 해석을 담당하는 하위 시스템에서 나와요 이는 함수를 호출할 때 사용 가능한 수많은 오버로드 중 실제 호출하려던 기능을 결정하죠 그 과정엔 성능 임계값이 있는데 시간 추정치와 시스템 메모리 사용량을 기준으로 하죠 임계값을 초과하면 이 폴백 오류 메시지가 나와요 정말 답답할 수 있어요 코드가 올바른데 컴파일러 시간이 초과된 건지 코드 어딘가에서 실수해서 더 정확한 진단을 제공하려다 컴파일러의 시간 초과된 건지 알 수 없거든요 이건 오류 메시지의 발생을 줄이기 위해 개발자 경험 개선 측면에서 우리가 지속적으로 작업해 온 부분이에요 올해는 특히, 중첩된 종결 항목과 Swift UI 뷰 본문의 오류를 줄이는 데 집중했어요 오류가 잘 발생하는 곳이거든요 아직 해결할 게 남아 있는데 Open Source Swift 프로젝트로 그 과정을 확인하실 수 있어요 모든 작업이 거기서 진행되고 진전이 있을 때마다 로드맵과 업데이트를 올리니 관심이 있으시다면 살펴보세요 이 부분이 개발자 경험에서 개선해야 할 중요한 영역이라는 걸 잘 알고 있어요 이 오류가 나타나면 뭘 수정해야 할지 파악하기 어렵거든요 올해에는 시도해 볼 기능이 정말 많네요 사람들이 직접 써봤으면 하는 건 뭔가요? 코드에서 진단 동작을 제어하는 새 기능을 꼭 써보셨으면 좋겠어요 이 기능으로 워크플로가 개선될 여지가 있다고 생각해요 특히, 엄격한 동시성 확인처럼 특정 진단 활성화를 위한 마이그레이션에서 말이죠 Swift 6 언어 모드로 마이그레이션 전략에 도움이 될 거예요 개발자들이 마이그레이션 과정에서 어떻게 활용하는지 정말 기대돼요 제가 가장 좋아하는 것 중 하나가 기사나 블로그 글 또는 컨퍼런스 발표를 읽고 사람들의 다양한 마이그레이션 전략이나 코드베이스 맥락에서 언어 기능을 가장 효과적으로 활용하는 방법을 확인하는 거예요 이런 내용은 저에게 정말 소중하고 더 많은 사람들과 이런 팁을 나눠주셔서 감사하게 생각해요 Holly와 Jeff 정말 감사해요 한 주를 마무리하는 정말 멋진 대화였어요 배움은 여기서 끝나지 않습니다 WWDC 요약 활동이 전 세계에서 진행되니 발표 내용이 당신의 앱과 게임에 어떻게 도움이 되는지 알아보세요 developer.apple.com/kr/events에서 온라인과 대면으로 진행되는 최신 세션, 워크숍, 랩을 확인하세요 개발자 센터는 Bengaluru, Cupertino Shanghai, Singapore에 있고 올해 말, Berlin에서도 오픈합니다 Apple Developer도 팔로우해서 더 많은 소식을 받아보세요 이제 Xcode에서 제 에이전트가 만든 걸 확인할 시간이에요 WWDC에 함께해 주셔서 감사해요 당신이 다음에 무엇을 만들지 정말 기대돼요 그럼 또 봐요
그럼 또 봐요
-