2023년 7월 18일 KWDC2023이 막을 내렸습니다. 짝짝짝
WWDC는 전세계 iOS 개발자들의 축제라면, KWDC는 한국 iOS 개발자들을 위한 축제의 장이라고 할 수 있어요.
iOS 개발자가 되기위해 공부하고 있는 저에게도 iOS 생태계를 이해할 수 있는 소중한 기회가 되었어요.
그렇다면 KWDC2023에서는 어떤 주제들을 다루었는지 그리고 제가 들었던 세션들에서 어떤 점들을 배웠는지 정리해볼게요.
KWDC 홈페이지
KWDC2023 Timetable
KWDC2023 타임테이블은 위와 같습니다.
총 4개의 Track으로 나뉘어 시간대별로 다양한 주제를 다루고 있습니다. 4개의 Track에 추가로 잠실Track이 운영되었는데, 이곳에서는 Sponsor Coffeechat(웅진 씽크릭 Udemy, 현대자동차), Sponsor Booth(SaMT & Resullers), Old Mac 전시 그리고 free charging을 할 수 있는 공간이 마련되어 있었어요. 스폰서 쪽에 문의 내용이 있다면 이 Track을 방문해도 좋았을 것 같습니다.(내년에는 취업을 한다면 명함이라도 한장 내밀어볼 수 있지 않을까요?)
제가 들었던 세션은
dadahae - WWDC2023 Recap
그린 - SwiftUI Animation이라는 바다를 헤엄쳐 봅시다!
김윤재 - Swift concurrency: Good to know
강성규(현대자동차) - 제조업에서 SwiftUI + TCA로 앱 개발하기
각 세션에 대해 살짝쿵 정리해보고자 합니다.
dadahae - WWDC2023 Recap
dadahae님의 발표 주제는 올해 6월 6일 ~ 9일 진행된 WWDC2023 에서 발표한 내용 중 Swift에 관하여 변화한 내용이었어요.
Xcode15, SwiftUI, UIKit, 데이터 흐름, SwiftData, VisionOS, VisionKit, SFsymbols5(애니메이션) 등 총 10가지 정도의 큰 변화에 대해 정리해주었습니다.
들으면서 살짝쿵 정리했던 내용으로는 Xcode15에서는 코드완성도가 향상되었고, 실시간 문서보기가 가능해졌으며 preview 기능이 변화하고 UIKit에서도 preview가 가능해졌다는 것이었어요. 그리고 애플에서 발표한 가장 큰 이슈가 Vision Pro 였던 만큼 이에 관한 새로운 기능이 큰 변화였던 것 같아요. VisionOS, iOS17과 맞물려 Swift UI도 변화를 했구요. RealityKit, Unitiy도 VisionOS와 큰 연관이 있습니다. 그외 데이터의 흐름이라던지 SwiftData라는 새로운 프레임워크의 등장 그리고 UIKit에서 preview 외에도 view controller의 생명주기 변화와 SF symobol의 애니메이션 효과 등 많은 변화가 있습니다.
dadahae님의 발표를 통해 WWDC 2023의 전체적인 흐름을 알 수 있었어요. 그리고 WWDC 2023 내용을 찾아봐야겠다는 생각을 했습니다. 그래서 홈페이지를 보니, 내용이 정말 많아서 필요한 주제가 생길때마다 찾아보면 좋을 것 같아요. 당장은 VisonOS쪽 내용보다는 Xcode, SwiftUI 등 변화한 내용을 차근차근 살펴보아야겠습니다.
자세한 내용은
dadahae님 깃허브 : https://github.com/Charming-Swift/WWDC-talkshow
WWDC 2023
What Apple developers need to know at WWDC23
https://developer.apple.com/videos/play/wwdc2023/111488/
What's new in Swift
https://developer.apple.com/videos/play/wwdc2023/10164/
What's new in SwiftUI
https://developer.apple.com/videos/play/wwdc2023/10148/
What's new in Xcode
https://developer.apple.com/videos/play/wwdc2023/10165/
What's new in VisionKit
https://developer.apple.com/videos/play/wwdc2023/10048/
등등...
https://developer.apple.com/videos/
그린 - SwiftUI Animation이라는 바다를 헤엄쳐 봅시다!
그린님의 발표 주제는 Swift UI 애니메이션 파헤치기였습니다. 애니메이션을 적용하는 방법부터 세세하게 동작들까지, 애니메이션의 전부를 샅샅히 파헤쳐주었습니다. 코드와 실제 빌드해서 동작하는 모습까지 함께 보여주니 이해가 더 잘되었습니다.
(저는 아직 애니메이션을 제대로 다뤄본적이 없어서 하나하나 이해하지는 못했지만 유익한 시간이었던 건 확실한 것 같습니다.)
자세한 내용은 아래를 참고하면 좋을 것 같아요.
그린님의 깃헙 : https://github.com/GREENOVER/KWDC2023
김윤재 - Swift concurrency: Good to know
Swift concurrency는 WWDC 2021에서 새롭게 발표된 동시성프로그래밍 API입니다. concurrency의 사용은 asyn/await을 활용해 코드의 가독성을 높이고 성능을 향상시키는데 목적이 있습니다.
Swfit 공식 문서
김윤재님의 주제는 Swift Concurrency를 사용하는 목적과 성능에 대해 조사한 내용이었어요. 목적은 위에서도 언급했다싶이 가독성을 높이는 시각적 효과와 성능적 효과를 위해서 입니다. 그래서 김윤재님께서는 Concurrency가 정말 성능적으로 효과가 있는지 다양한 환경에서 다양한 방식으로 진행을 하셨더라구요.
- Task Priority 작동 방식
- 우선순위가 다양한 작업이 있을 때 OS는 어떤 방식으로 각 작업에 스레드를 할당할까?
- 우선순위가 더 높은 작업이 많을 때 우선순위가 낮은 작업은 어떻게 실행을 보장받을까?
- Suspension points 작동 방식
- Suspension points가 없다면 Swift Concurrency가 실행되는 스레드를 오래 점유해 성능에 악영향을 미칠 수 있는가?
- await 키워드를 잠재적 Suspension points라고 부르는데 그렇다면 await 키워드만으로 OS에서 스레드 점유권을 다른 작업에게 양도하는가?
- GCD환경에서 작동하는 Swift Concurrency 성능
자세한 내용은 라인 기술블로그에 아주 잘 정리되어있어서 읽어보시면 좋을 것 같아요.
https://engineering.linecorp.com/ko/blog/about-swift-concurrency-performance
Swift Concurrency에 대해 정리하는 것이 끝이 아니라 성능 조사까지 하셨다는 점이 대단하고 이런 개발자가 되고싶다는 생각을 했습니다. 현재는 개념을 이해하고 이를 앱만들기에 적용하기 급급한데 어떤 한 주제를 깊이 있게 공부하고 있는 내용을 넘어 나만의 개념을 만들 수 있는 그런 iOS 개발자가 되어야겠습니다.
강성규(현대자동차) - 제조업에서 SwiftUI + TCA로 앱 개발하기
저도 그렇고 많은 분들이 놀랐던 사실이 현대자동차, 기아자동차에서도 iOS 개발자를 채용한다는 점입니다. 자동차 개발이기에 엔지니어와 디자이너 등 분야의 사람들만 채용할 거라고 생각을 했어요. 그러나 현대자동차는 Software Defined Vehicle 즉 소프트웨어로 하드웨어를 제어하고 관리하는 자동차를 만들어가고 있음을 내세우며, 앱과 서비스를 기획하고 개발하기 위해 iOS와 Android 개발자를 모집하고 있습니다.
채용정보
강성규님께서 발표하신 주제는 현대자동차에서 제네시스 커넥티드 서비스 앱을 Swift UI와 TCA로 만든 경험에 대해 소개를 해주셨습니다.
강성규님께서 처음 해당 앱만들기 프로젝트를 시작하셨을 때 무에서 유를 창조해야했기에 스타트업과 다름없는 업무였다고 언급하셨어요. 그만큼 얼마나 많은 시간과 노력을 쏟았을 지 예상이 되었어요. 그래서 많은 시행착오를 겪었고 현재도 풀리지 않는 숙제를 가지고 계셨습니다. 그 과정에서 왜 Swift UI와 TCA를 도입하게 되었는지에 대한 주제였습니다. Swift UI는 만세!!! 최고!!! 라고 하셨구요.
TCA는 생소했는데 The Composable Architecture의 약자 입니다.
TCA는 뉴욕 브루클린에 사는 소프트웨어 개발자 BrandonWilliams와 Stephen Celis가 운영하는 Point-Free에서 개발하고 있는 ‘오픈 소스’ 라이브러리라고 합니다. TCA 는 일관적이고 이해할 수 있는 방법으로 앱을 개발할 수 있게 도와주는 라이브러리로 SwiftUI 와 함께 사용하는 목적으로 디자인 되었지만, SwiftUI 뿐만 아니라, UIKit 에도 사용할 수 있으며, 그 외의 모든 애플 플랫폼을 지원합니다. (macOS, tvOS, watchOS)
- 출처 : https://medium.com/@Jager-yoo/swiftui-the-composable-architecture-tca-%EC%9E%85%EB%AC%B8-95b69b8c6c16
그래서인지 TCA를 개발한 두분께서 현대자동차와 KWDC를 위해 인터뷰 영상도 남겨주셨더라구요.
TCA에 대해서 찾아보던 중 아래분도 현대자동차 iOS 개발자셔서 내용을 잘 정리해주셨더라구요. 아래 블로그를 읽어보시면 좋을 것 같아요.
무엇이든 왜 그 기술, 왜 그 아키텍쳐를 썼는지 등 근거기반은 어떤 분야에서든 중요한 것 같습니다. TCA에 대해서 알게 되어 유익했고 현대자동차에서 iOS 개발자들이 어떤 일을 하는지도 알게되어 좋았습니다. 아직 개선하고 개발하고 있는 분야이기에 새로운 것을 만들고 도전하는 것을 좋아하는 사람에게 맞을 것이라고 했습니다. 개발자는 틀 안에 갇혀있기보다는 여러 시도를 해보고 시행착오도 겪으면서 발전하는 그런 사람이어야겠다고 생각을 했습니다.
KWDC 즐길거리
KWDC에는 위의 기업들이 후원을 해주셨습니다. 그래서 스폰서 부스가 마련되어있었는데 현대자동차&기아자동차, 카카오뱅크, 유데미, 점핏, 요기요 부스에서는 각종 이벤트와 상품이 주어졌습니다. 이 또한 하나의 재미가 되어 KWDC를 더 즐겁게 즐길 수 있었습니다. 거기에 스티커 이벤트까지 더해지고 친목도 도모하여 티셔츠 상품도 탈 수 있는 기회가 주어졌습니다.
KWDC 2023을 통해 느낀점
아직 iOS에 대해 공부하고 있는 입장으로써 세션의 내용들을 거의 이해하지 못했습니다. 하지만 내가 어떤 것들을 앞으로 배울 것이고 배워야 하는지 알게 되었고 무엇보다 내가 어떤 iOS 개발자가 되어야할지를 생각해보는 소중한 시간을 가질 수 있었습니다. 올해는 iOS 생태계를 입문하여 맛보는 단계였다면, 내년에는 KWDC가 나에게 주니어 iOS 개발자의 발전을 위한 계기가 되었으면 좋겠고 그리고 언젠가는 발표자가 되어 성장한 개발자의 모습을 보여줄 수 있는 장이 되었으면 좋겠습니다. 언젠가 나도 발표자가 될 수 있도록 노력할 것 입니다.
댓글