LetSwift 2023 회고록

LetSwift 2023 발표 회고

지난 10월 13일 LetSwift 에서 Swift로 CrossPlatform 하기 라는 주제로 발표하였고, 이에 대한 회고 입니다.

발표 신청

처음 LetSwift에서 발표 신청을 받는 것을 보고 LetSwift 주제인 "Deep Dive into the unknown"에 맞는 주제를 찾으려고 해서

제가 많이한 활동으로 총 3가지의 주제를 생각해 봤습니다.

  1. Tuist Plugin 사용하기
  2. Swift로 Website Deep Dive
  3. Swift로 CrossPlatform 하기

첫번째 꺼는 기존 대부분 사용하는 tuist local plugin에서 더 나아가 Tuist Plugin을 SPM으로 배포 관련한 내용에 대해서 이야기 하려고 했습니다.

하지만 너무 간단한 내용이 될거 같아서 Deep Dive라는 취지에는 맞지 않다고 생각해서 생략 하였고,

Swift 로 Website Deep Dive같은 경우는, Swift WASM 관련된 내용을 다룰 예정이였지만, 비록 WASM을 사용하는 방법이 아니긴 하지만 기존에 Swift로 StaticSite에 관련 내용을 다룬 적이 있어서 제외하였습니다.

Swift로 CrossPlatform하기 라는 주제는 기존 거의 알려지지 않는 Swift CrossPlatform인 Scade라는 플랫폼을 소개하면서, 기존에 사용하던 경험을 이야기 하는 것이 Deep Dive의 취지에 맞겠다고 생각했습니다.

그렇게 해서 "Swift로 CrossPlatform 하기" 라는 주제로 결정하여, LetSwift의 연사 기회를 얻게 되었습니다.

발표 준비

처음에 발표를 진행할 때 고려해야될 부분이 많았습니다. 기존 많이 사용하는 메이저한 플랫폼이 아닌, 많이 마이너한 Swift CrossPlatform이다 보니, 이게 무엇인지, 어떻게 사용하는지에 대한 내용은 필수적으로 들어가야 하며,

제가 이번 발표에서 중요하게 여겼던 부분은 직접 Scade를 사용해보면서 아직까지 존재하는 한계점에 대한 내용도 중요하게 생각했으며, 추가적으로 Scade가 보고 있는 목표가 무엇인지도 전달하는 것도 넣으면 괜찮겠다고 생각했습니다.

발표를 준비하기 앞서서 Swift CrossPlatform에 대한 추가적인 자료와 더 깊은 공부가 필요했습니다.

하지만 Scade같은 경우 문서가 업데이트가 늦게 되는 경우가 있다는점, 제공되는 문서 자체가, 사용방법만 알려주고, 내부 구조 관련되어 있는 내용이 없다는 점...등

발표 자료를 준비하면서, 기존에 많이 사용해 봐서 이 주제로 누구보다 잘 말할 수 있다고 생각을 했지만, 기존 여러가지 Flutter와 ReactNative 관련 발표들 만큼의 퀄리티는 힘들겠구나 생각이 되었습니다.

처음에 Scade라는 하나의 플랫폼을 전부 설명하는데 40분이상이 걸릴것 같아서 처음 40분 발표를 선택하였고

그렇게 10월 6일날 1차 온라인 리허설이 진행을 되었습니다.

처음 발표자료를 만들 때, 대부분 Scade에 대해서 처음 들어볼 것으로 추정하였고, 내가 깊게한 Scade라는 플랫폼에 대한 내용을 보여주는것으로 목표를 정했습니다.

하지만 처음 리허설이 끝나고 여러가지 피드백을 받으면서 일단 시간이 너무 짧게 끝나버리면서 부터 문제가 발생하였습니다.

ppt 74 페이지였지만, 40분에는 한참 미치지 못하는 22분으로 끝이 났고, 추가적으로 내용적인 부분도 기술적인 내용에 초점을 맞춰주면 좋겠다는 피드백을 받았습니다. (그외 버벅이는 부분 목소리 키우기 등등.. 사소한 부분도 상세하게 피드백 받았습니다.)

피드백을 받았지만, 어느정도의 기술적인 내용인가에 대한 부분과 기존 ppt를 전부 다 갈아야 된다는 생각에 어디서부터 고쳐야 하는거지라고 하면서 고민이 많을때

리이오 님이 발표 자료에 대한 피드백을 주었습니다.

- 발표 내용의 과정이 많이 빠짐
- 타겟과 얼라인이 안맞는 문제

1. 어떻게 생겨먹은 녀석인지 (Flutter 비교)
2. Xcode 기존 프로젝트에서 -> Scade로 마이그레이션 
3. 새로운 프로젝트 Scade 고려
4. 배포 가능한지
5. 코드로 UI 짜기
6. UI Framework인데, Lifecycle 에 대한 내용 -> 안드로이드에 대한 내용이 부족

1. 발표를 들으면 -> CrossPlatform을 사용할 수 밖에 없었던 이유
2. 분기 처리를 해줄 부분 필요


1. 듣는 사람들에게 Combine 지원 안하고 -> Swift Concurrency

기존 내용을 다 설명하기 힘든 부분이 있어서 정리한 내용으로 대체 하였습니다.

기존 내용을 듣고 세부적으로 피드백을 해주시고, 추가적인 아이디어도 제시를 해주셨습니다.

어느정도 감을 못잡고 있을때, 리이오님 덕분에 많은 부분을 해결하고 밤을 새서 v3를 만들었고

10월 8일날 2차 리허설이 시작 되었습니다.

2차 리허설 이후에는 내용에 관한 더욱 상세적인 피드백을 주셨습니다.

기존 EObject 원리에 대한 피드백과 iOS 개발자 관점에서 설명해주는 것이 어떤지,

갑작스럽게 들어가는 Layout에 대한 내용을 천천히 들어가는것이 어떤지, 기존 도입부를 바꿔보는 것이 어떤지 (다른 크로스 플랫폼과의 비교), 발표를 진행하기 위해서 궁금증을 끌어내고 진행하는 것이 좋을것 같다는 의견

그리고 발표자료의 비어보이는 과정에 대한 내용에 관련하여도 세부적으로 피드백을 받게 되었습니다.

총 94 페이지를 다시 만들고 진행하였으나, 똑같이 시간이 부족하게 측정이 되어서, 내용을 계속 추가하는 것보다는, 차라리 좀 내용을 깊게 정리하고 시간을 줄이는게 맞을거 같다고 판단이 들어서 오거나이저 분들과 상의하여 타임테이블을 20분으로 변경하게 되었습니다.

그리고 이제 남은것은?

피드백을 바탕으로 계속 수정.. (평균 ppt 1번당 100장)

그렇게 총 6번의 수정을 끝으로 발표 자료를 완성하게 되었습니다. (v1은 삭제되서 못찾았습니다.. ㅠㅠ)

발표 시작

저의 발표는 2시40분에 대화의실 2에서 진행되었습니다.

바로 전 발표가 당근마켓 팀이다 보니, 더욱 긴장한 채로 발표를 진행하게 되었습니다.

이전 발표가 끝나고 발표실로 들어갔을때 생각보다 많은 사람들이 발표를 보러 와주셔서 많이 긴장했지만 감사한 마음으로 진행하였습니다.

막상 발표를 진행할 예정이 되니, 머리속이 하얗게 변하면서 실수 할까봐 대본을 보면서 발표를 진행하게 되었습니다.

발표는 이런식으로 구성이 되었습니다.

1. Swift로 Cross Platform을 하게된 배경
2. What is Scade 
3. Scade는 무엇을 제공해줄까요?
4. Scade 설정 방법
5. Scade 시작해볼까요?
6. Scade는 어떻게 동작해요?
7. 마무리

총 99장의 ppt로 진행 되었습니다.

첫번째 목차에서는 제가 Scade를 접하게 된 배경을 말하면서, 저와 비슷한 경험이 있는 사람이라면 Scade를 시도해 볼만하다 생각이 들게 하는 것이 목적으로 진행하였고,

2,3번은 Scade가 무엇인지이고 무엇을 제공해주는지에 대한 내용을 담았습니다. 그리고 Scade같은 경우는 전용 IDE를 사용해야해서 4번에 대한 내용은 어쩔 수 없이 포함하게 되었습니다.

5번에서는 프로젝트 생성 방법과 코드를 보면서 각각 어떤 역할 처럼 진행 되는지 그리고 간단한 예시 프로젝트를 준비하여 Scade에 대한 어느정도 감을 잡기 위한 토대를 만들었습니다.

그리고 Deep Dive에 관한 내용을 6번째인 "Scade는 어떻게 동작해요"라는 부분에 빌드 시스템과 Scade에서 어떻게 JVM과 상호작용 하는지에 대해서 최대한 넣어보았습니다.

마무리로는 아직 Scade의 상황과, 추후 Scade가 말하는 목표에 대해서 이야기를 해보면서 발표를 끝냈습니다.

(TMI) 이전 발표를 연습하면서 24분 정도로 측정이 되서 내용이 초과되겠다 싶었지만, 발표 자리에서 너무 긴장하면서 말이 빨라져 정확하게 20분을 맞춘.. 에피소드도 있습니다.

발표가 끝나고

준비해둔 PPT가 끝이나고, Q&A 시간이 시작되었습니다.

TMI를 하자면, 제가 귀가 좀 안좋아서 다른 사람이 말할때 두번 이상 들어야할때가 있는데, 이게 LetSwift에서 Q&A를 할 때 귀가 안좋은 것 때문에, "혹시 질문을 다시 말씀해 주실수 있나요?" 라고 말을 하게 되었습니다.

기존 내용에서 3개 정도 질문을 받고 발표를 마치게 되었습니다.

발표를 전부 마치고, 좀 많이 떨어버린 것 때문에 많은 걱정과 함께, 7일 내내 발표 자료만 수정하고 하던 시간이 지나서 이제 발표가 끝났다 라는 안도감이 함께 섞인 기분이였습니다.

느낀점

솔직하게 LetSwift라는 큰 자리에 대한 부담감도 있었고, 발표를 진행하면서 떨기도 하고 그런 부분에서 아쉬움이 많이 남았습니다.

처음 리허설을 진행해보고, 비록 그래도 실수가 있었지만 꽤 많은 것을 얻을 수 있었으며, 오거나이저 분들이 많이 도움을 주셔서 그래도 성공적으로 발표를 끝마칠 수 있었다고 생각이 들었습니다.


군대 가기전 마지막 발표로 LetSwift에서 발표하게 되어 크나큰 경험을 하게 되었다고 생각을 합니다.

좋은 자리를 마련해주신 오거나이저 분들께 다시 한번 감사의 인사를 전하며 이번 포스트를 마치도록 하겠습니다.