활동

[레츠 스위프트 2023 후기], [Let's Swift 2023 후기], Deep Dive into the unknown

dev_강건 2023. 10. 14. 18:09

레츠 스위프트 2023에 다녀왔습니다!

그동안 iOS와 관련된 행사가 종종 있었지만 내가 가도 되나?... 싶은 마음에 항상 미루다 이번에 용기를 내서 가게 되었습니다.

 

등록하자마자 받은 굿즈

 

 

레츠 스위프트란?

1년에 한 번씩 열리는 iOS 개발자를 위한 행사로, iOS개발과 관련된 여러 주제로 세션이 열립니다.

올해를 기준으로 간략하게 정보를 요약하자면

시간: 10:00 ~ 17:00

장소: 과학기술컨벤션센터

세션마다 20 ~ 30분정도 진행되었습니다.

회의실 1, 회의실 2에서 두 세션이 동시에 열렸고 듣고 싶은 세션을 선택해서 들으면 되었습니다.

모든 세션을 듣는다면 오프닝과 클로징 키노트를 제외하고 7~9개의 세션을 들을 수 있습니다.

 

 

 

행사에 참여하고 좋았던 점.

당연히 가장 좋았던 점은 다양한 주제로 좋은 세션들을 들을 수 있었다는 점입니다!

사실 대부분의 내용들은 제 실력이 부족해서 온전히 이해하지는 못했습니다.

자세한 내용은 뒤에 정리했습니다.

 

또 이번에 스폰서로 참여한 당근마켓, 헤이딜러와 같은 회사들에서 부스를 운영해서 인재풀에 등록하고 멋진 굿즈들을 받을 수 있었습니다!

행사에 참여하고 받은 굿즈들

 

원래 맥북에 스티커를 붙이면 나중에 자국이 남을거 같아서 한 번도 생각해 본 적이 없는데 막상 받아보니까 막 붙이고 싶어 집니다.

스티커들 너무 잘 만들지 않았나요?

 

 

 

특히 평소에 관심 있던 회사인 헤이 딜러도 참여해서 부스를 열었습니다.

헤이 딜러에서도 인재 채용 중이라고 들었는데 아직 지원할 실력이 안되어서 아 정말 너무 아쉬웠습니다.

내년 하반기에도 신입 채용이 있다면 실력을 갈고닦아 꼭 지원해 보겠습니다...

헤이딜러에도 부스를 열었습니다!

 

들었던 세션.

정리한 내용은 이해가 부족해서 틀린 내용이 있을 수 있습니다.

 

1. SwiftUI 레이아웃과 데이터 플로우 이해하기

핵심 내용은 계층구조를 잘 파악하고 UI를 짜야한다는 내용 같았습니다.
아직 UIKit의 오토 레이아웃밖에 다뤄보지 않아 이해하기가 힘들었습니다.

 

 

2. xcode 프로젝트와 컴파일러 인덱스로 의존성 찾기

제가 들은 세션 중 제일 Deep한 내용이었다고 생각합니다.

세션의 내용은 의존성을 찾는 도구를 직접 개발하는 내용이었습니다.

프로젝트 폴더에 포함된 소스파일들을 분석하고 시각화하는 과정이 있었습니다.

이해하지 못한 부분이 많아 자세하게 적지 못했는데 방향을 정하고 정말 많은 시행착오를 거치면서 점점 해결해가셨습니다.

이 모든 과정이 6개월이 걸렸다는 이야기를 듣고 놀랐습니다.

세션의 구체적인 내용 보다도 코딩은 집착한다 싶을 정도로 집요하게 해야하는구나라고 느꼈습니다.

 

 

3. Metal Shader로 달라지는 UX/UI의 변화

Swift의 쉐이더인 Metal에 관한 내용이었습니다.

최신 버전인 Metal3는 WWDC 2022에서 발표되었습니다.
크로스 플랫폼으로 대중적인 openGL보다 최적화가 잘 되어있어 성능에서 유의미한 차이가 있다고 합니다.
shadertoy라는 openGL 커뮤니티 사이트에서 소스를 가져와 전지전능한 GPT한테 바꿔달라 부탁하고
vec -> float와 같은 몇몇 수정들을 거치면 사용이 가능하긴 하다고 합니다.

메탈을 사용했을 때 크로스 플랫폼의 문제에 대한 질문에 언제부터 안드로이드 눈치를 봤냐는 답변이 너무 웃겼습니다.

 

 

 

4. SwiftUI border 어디까지 그려보셨나요?

이걸(하단만 동글한 테두리) 어떻게 그리냐는 어느 개발자의 문의로 시작된 border에 대한 시행착오과 고찰에 대한 내용이었습니다.

먼저 원과 테두리에 관해 cornerRadius로 뷰를 깎고 Border로 테두리를 둘러주는 방법을 적용했는데 테두리가 같이 깎였습니다.

overLay도 적용해보고 border가 두줄인 경우 .padding을 적용했을 때 크기가 바뀌면 다시 레이아웃이 틀어지기 쉽다고도 하셨습니다.

여러 실패한? 방법들을 보여주시고 시행착오 끝에 ContainerRelativeShape, strokeBorder 등을 소개해주셨습니다.

잘 알려지지 않은 기능들에 시행착오를 많이 겪었다는 내용과 결국 찾아내서 해결하셨다는 점에서 원하는 방법은 집요하게 찾아보고 언젠가 공식 문서들을 다 읽어보는게 좋을 것 같아 미루던 Swift Documentation 정리부터 다시 시작해야겠다고 다짐하는 계기가 되었습니다. 

 

 

 

5. 당근 iOS 프로젝트 성장기

아키텍쳐의 변화에 대한 내용이 많았습니다. 저는 이제 MVC패턴을 적용해보다 MVVM패턴의 개념에 대해 배우고 있는 중인데, 흥미롭게 들었습니다.다른 세션에서도 그렇고 질문하시는 분들도 그렇고 당근 팀에서도 의존성 문제에 대한 언급이 많았습니다.MVVM을 접하며 의존성과 의존성 주입에 대한 개념을 접했는데 이게 프로젝트에서 요즘 큰 화두인 것 같습니다.저는 이해하지 못할 거 같아 듣지 않았던 tuist와 관련된 세션에 사람들이 많이 가셨었는데 tuist의 도입도 의존성과 연결되어 있는 것으로 알고  있습니다.

 

 

6. Swift로 Cross Platform 하기

swift언어를 기반으로 한 Cross Platform인 Scade를 소개해주는 내용이었습니다.

잘 알려진 코틀린, 리액트, 플러터 등 언젠가는 접해볼 것이라고 생각하는데

Scade가 Cross Platform의 주류가 된다면 swift만 공부해도 되겠다는 행복한 상상을 해보았습니다.

 

 

7. 잊지 마세요 Unwind Segue - 생각보다 Segue는 "여전히" 유용합니다.

코드 베이스로 작업을 진행하다보면 어쩌다 다시 스토리 보드와 Segue를 나중에 다시 마주칠 수 있다고 합니다.

이 때 Segue를 잘 다루는 법에 대한 내용이었습니다.

StoryBoard Reference를 사용해 복잡한 스토리 보드의 페이즈를 개별로 관리할 수 있고

unwindSegue를 이용하면 한번에 이전 이전의 페이지로 갈 수 있다는 의외의 장점이 있다고 합니다.

 

 

8. CoreBluetooth로 BLE기기를 연동할 때 마주하는 문제들과 부딪혀보기

블루투스 기능에 대한 간략한 소개와 흔히 일어나는 문제들에 관한 내용이었습니다.

Bluetooth는 빠르지만 전력 소비가 높은 Classic과 느리지만 전력 소비가 낮은 Low Energy가 있다고 합니다.

또 중앙 장치인 Central과 주변 장치인 Pheriperal, 활용 사례 등에 대한 내용으로 블루투스 기능에 대한 설명을 들었습니다.

 

 

9. iOS 애플리케이션 개발 생산성 고찰 - 빠른 퇴근을 위한 우리는 어떻게 해야 할 것인가?

개발의 생산성에 관한 내용이었습니다.

생산성을 떨어트리는 요인 중 제어 불가능한 외부 요인은 어쩔 수 없지만 제어 가능한 요인은 개선해야 한다고 하셨습니다.

Lookin이나 Reveal로 View를 빠르게 확인하기, Proxyman 등을 통해 콘솔 로그 쾌적하게 확인하기, Debug memory Graph 등을 통해 런타임 중 코드 제어, injection3 등을 이용한 Hot Reload 기능 사용해보기를 소개해주셨습니다.

전부 사소하지만 누적이 된다면 분명 생산성이 올라갈 수 있는 내용이었습니다.

그리고 효율성을 위해 xcode 개발 환경에서 벗어날 필요가 있을때도 있다고 하셨습니다.

아직 xcode도 완벽하게 다루지 못해 먼 이야기지만 일정 수준으로 올라간다면 다시 한번 고민해봐야 할 주제라고 생각합니다.

 

 

느낀 점 총정리

이번 행사의 큰 테마는 Deep Dive into unknown 이었습니다.

테마대로 unknown으로 deep dive 해본 경험이었습니다.

세션의 내용들을 흡수하지 못한 아쉬움은 분명하지만 저에게 긍정적인 영향을 주는 좋은 경험이 되었습니다.

 

발표자 분들이 각자 고민한 내용들을 정리하고 발표해서 다른 개발자들에게 도움을 주는 모습을 보고 앞으로

사소하더라도 고민하고 해결한 경험을 다른 사람에게 도움이 되는 방향으로 정리해야겠다는 생각을 들게 하였습니다.

 

무엇보다 다들 저마다의 주제와 문제를 마주하고 끝까지 해내신 이야기들이 큰 동기부여가 되었습니다.

개발은 삽질의 연속이지만 끝까지 파낸다면 큰 성장이라는 보상이 나오는 것 같습니다.

 

 

마지막으로 좋은 경험을 제공해주신 모든 관계자 분들께 깊이 감사드립니다!


안녕하세요! 한참 방치되었던 블로그에 오랜만에 글을 쓰게 되었습니다.

 

공식 문서도 정리하고 공부한 내용들도 꾸준히 정리하면서 블로그를 운영해보려 하였지만 처참하게 실패했습니다.

 

조금 변명을 하자면 문법 공부를 하고 나서 UIKit을 한창 공부하는 중인데 재밌기도 하고 어렵기도 하고 에너지를 많이 쓰고 있습니다.

(어디 보여주기 부끄럽지만 git으로 정리도 조금 하고 있습니다... (https://github.com/kangsworkspace)

 

사실 블로그에 대해 잊고 있다가 이번에 레츠 스위프트에 다녀오면서 동기부여도 되었고 느낀 점도 많아 다시 글을 쓰게 되었습니다.

 

이번 기회를 계기로 자주는 아니더라도 꾸준하게 블로그를 운영하고 싶어서 어떤 내용을 다룰 수 있을까 생각 중입니다.