원티드랩 iOS 개발자의 SyncSwift 2022 참여후기

SyncSwift 2022 에 다녀왔어요!

Sanghoon Ahn
원티드랩 기술 블로그

--

안녕하세요 원티드랩 코어팀 iOS 챕터 안상훈입니다.
지난 11월 12일에 포항에서 열린 SyncSwift 2022를 다녀온 후기를 적어보았습니다. 😃

설렘

SyncSwift 2022가 포항에서 열린다는 것은 포항 Apple Developer Academy에서 runner로 활동하고 있는 지인에게 소식을 들었었고, iOS 개발자 오픈 채팅방에서도 소식을 접했습니다.

let us: Go 티켓팅에 실패해 참석하지 못했던 슬픔을 SyncSwift를 통해 조금이나마 달래보기 위해 무작정 티켓을 구매했습니다.
(원티드 성장지원금 제도로 참가비를 지원받을 수 있으니 안 갈 이유가….!)

그리고, Let’Swift 준비위원회로 행사를 준비하는 입장에서 SyncSwift는 어떻게 진행되는지 궁금하기도 했습니다.

행사 날짜가 다가오면서 “괜히 신청했나?”, “포항까지 어떻게 갔다 오지”라는 걱정도 있었지만, 전날까지 바쁜 일상을 보내며 시간은 쏜살같이 지나갔고,
11월 12일 행사 당일 설레는 마음과 함께 오전 7시에 포항으로 가는 KTX에 몸을 실었습니다.

체인지업 그라운드

여행으로도 와본 적이 없던 포항을 개발자 행사 덕에 오게 되었습니다. SyncSwift에 무한한 감사를 보냅니다.
포항역에서 택시를 타고 행사장인 ‘체인지업 그라운드’로 바로 향했습니다.
행사장에 도착하니 몇몇 분들이 티켓 확인을 하고 계셨습니다.

이벤트홀 입구에 마련된 안내데스크

금세 사람들이 많아져 줄이 꽤 길어졌습니다. 구매한 티켓을 확인하고 명찰, 굿즈, 물을 받았습니다.

command 배지가 무척이나 마음에 들었습니다

자리에 앉고 나서 시간이 조금 남아 행사장 내부를 구경했습니다.

메인 세션이 진행되는 이벤트홀과 테크 톡 세션이 진행되는 미디어월

행사장 내부는 무척 깔끔했습니다. 메인 세션을 진행하는 이벤트홀, 테크 톡 세션을 진행하는 미디어월 모두 세션을 진행하기에 좋은 장소였고, 스태프들도 행사 진행 전 최종 점검으로 분주했습니다.

특이한 점은 명찰을 펼치게 되면 행사 시간표가 있어서 간편하게 현재 진행 중인 세션과 다음 세션, 다른 홀에서는 어떤 세션이 진행 중인지 확인할 수 있었습니다.

가벼운 오전

오전 10시, 드디어 행사가 시작되었습니다. 행사의 오프닝 키노트는 Apple Developer Academy의 mentor 김은영 님께서 진행해 주셨습니다.
행사의 브랜딩 테마, AsyncSwift 단체 소개, 세션, 스피커, 스폰서 소개와 행사장의 간략한 소개 그리고 점심 안내까지.
짧은 키노트를 마치고 분위기가 달아오른 채로 이벤트 홀에서 첫 번째 세션이 시작되었습니다.

오전에 진행된 세션 중에는 아래 세션들에 참여했습니다.

  • HIG에 영향을 받은 프로덕트 디자이너의 좋은 습관과 나쁜 습관: HIG 컴포넌트를 중심으로
  • MVI 패턴과 어울리는 SwiftUI 화면 이동 라이브러리 만들기
  • 우리가 만드는 애플 : 두 번의 처음

‘HIG에 영향을 받은 프로덕트 디자이너의 좋은 습관과 나쁜 습관: HIG 컴포넌트를 중심으로’

먼저 첫 번째 세션인 HIG에 영향을 받은 프로덕트 디자이너의 좋은 습관과 나쁜 습관: HIG 컴포넌트를 중심으로 라는 세션인데요

디자이너와 개발자가 함께 참고하게 되는 Apple의 Human Interface Guideline에 대한 이야기였습니다.
HIG에 대한 주요 특징과 이를 바탕으로 생겼던 자신만의 좋은 습관과 나쁜 습관에 대해 말씀해주셨습니다.
이 중에 HIG의 주요 특징에 대해서 놀랐던 부분이 있는데요,
HIG는 사용자 경험의 일관성을 해치지 않기 위해 iPhone 3gs부터 계산기의 인터페이스가 iOS 16인 현재까지 크게 변함이 없다고 합니다.
iPhone 3gs를 써본 적이 없어서 몰랏지만, 키노트를 통해 보았던 3gs의 계산기 인터페이스는 현재와 거의 비슷했었고 무척 놀랐습니다.

‘MVI 패턴과 어울리는 SwiftUI 화면 이동 라이브러리 만들기’

다음으로는 MVI 패턴과 어울리는 SwiftUI 화면 이동 라이브러리 만들기 세션입니다. 스피커는 플리토의 개발자분이셨는데요,

해당 세션은 저희 iOS 챕터에서 겪고 있었던 SwiftUI를 사용했을 때의 맞닥뜨린 화면 이동에 관한 문제를 해결할 수 있는 Key가 될 수 있을 것 같아 나름 집중해서 들었습니다.
해당 라이브러리를 왜 만들게 되었는지 또 만들기 위해 겪었던 어려움과 회사를 설득하는 과정을 재미있게 풀어주셨습니다.
또 MVI 패턴에 대해서도 말씀해 주셨는데요, 현재 iOS 챕터에서 사용 중인 Clean-Swift와 비슷한 단방향 데이터 흐름을 강제하는 패턴이었습니다.
이 부분도 나중에 SwiftUI를 활용하여 간단한 기능 모듈을 작성할 때 적용해 볼 만한 좋은 아키텍처 패턴이라는 생각이 들었습니다.

‘우리가 만드는 애플 : 두 번의 처음’

마지막으로는 우리가 만드는 애플 : 두 번의 처음이라는 세션에 참여했는데요, 해당 세션은 특이하게 디자인, 개발에 대한 이야기가 아닌 스피커 분께서 자신의 경험을 풀어내는 토크 세션이었습니다.

호기심에 참여하게 된 세션인데 대한민국의 첫 애플 스토어의 직원을 하게 되면서 겪었던 이야기, Apple Developer Academy에 참여하게 된 이야기, 포항에서의 다양한 활동 등을 이야기해주셨습니다.

개인적으로는 스피커 분께서 발표를 잘해주셔서 집중이 잘 되었던 세션 중 하나였습니다 🙂

점심시간

점심으로는 샌드위치와 주스가 준비되어있었습니다. 마침 포항의 날씨는 서울의 봄과 같이 따뜻해서 몇몇 지인들과 밖에 나가서 점심을 먹었습니다.

점심시간에는 이벤트 홀에서 비밀 세션이 있었는데요 !!
요것은 외부 공개가 불가능하다고 하니 제 머릿속에만 담아두겠습니다 🤩

약 30분간의 짧은 점심을 먹고 오후 세션에 참여했습니다.

본격적인 오후

본격적인 오후 세션들이 시작되고 저는 또 아래의 세션들에 참여하였습니다.

  • 나만 몰랐던 Xcode Breakpoint를 야무지게 쓰는법
  • 디자이너들이 애플에 열광했던 순간들
  • Swift Concurrency 적용기
  • 당신이 TDD를 시도했다가 실패한 이유
  • Modular Architecture 시작하기

‘나만 몰랐던 Xcode Breakpoint를 야무지게 쓰는 법’

나만 몰랐던 Xcode Breakpoint를 야무지게 쓰는 법 세션에서는 인포마이닝의 허성진 님께서 홀로 iOS를 개발하면서 겪었던 디버깅 고충과 Xcode에 있는 BreakPoint를 사용하게 되면서 편했던 점을 자신의 경험과 재미있는 말솜씨로 실제 상황을 예시를 들으면서 말씀해주셨습니다.

성진 님께서 겪었던 디버깅 고충은 상당히 공감되는 부분이 많았습니다.

특히 반복문의 원하는 break 지점을 찾기 위해 수 없이 Continue 버튼을 누른 경험이라던가 Objective-C Error로 인해 main에서 에러 메세지가 등장했을 때의 당황했던 경험 등
모두 겪었던 경험이었고 현장에서도 공감했던 분들이 많았는지 많은 분들이 호응해주셨습니다.

‘디자이너들이 애플에 열광했던 순간들’

다시 이벤트홀로 이동해서 이번에는 디자이너들이 애플에 열광했던 순간들 세션에 참여했습니다.

디자인스펙트럼의 김지홍 님께서 발표를 해주셨는데 무척 집중이 잘되었습니다. 적당한 목소리 톤, 제스쳐 청중들이 집중할 수 있도록 발표를 잘 해주셔서 집중해서 잘 들었습니다.
발표에서 나왔던 애플의 철학 몇 가지를 가지고 행사 이후에 가볍게 개발자들과 이야기를 나누었는데 재밌는 이야기가 되어서 여러분들께도 살짝 공유해볼까 합니다.

“작은 것도 완벽해야 한다는 잡스의 철학, iOS 버전마다 불안정한 SwiftUI에는 과연 적용되어있는가?”

“점진적으로 개선해 나아가는 Apple의 철학이 적용되어있는 것이 SwiftUI다.”

이후에는 듣고 싶었던 세션이 모두 이벤트홀에서 진행되어 계속 이벤트홀에 있었습니다.

‘Swift Concurrency 적용기’

이어지는 다음 세션은 Swift Concurrency 적용기 였고, LINE의 김윤재 님께서 발표해주셨습니다.

어디서 많이 보았던 내용이었는데 구글에 “Swift Concurrency” 를 검색하면 최상단에 나오는 내용이었습니다.

Swift Concurrency에 대해서

원티드랩의 iOS 챕터에서도 Swift Concurrency를 조금씩 적용해 나아가고 있습니다.
다만 이를 잘 활용하기 위해서는 GCD에 대한 이해도 충분히 필요한 것 같습니다.
GCD도 동시성 프로그래밍을 수행하는 데 문제가 없습니다. 그렇다면 어떠한 이유에서 Swift Concurrency를 선택해야 할까요?

해당 세션에서 답을 찾을 수 있었습니다.

‘당신이 TDD를 시도했다가 실패한 이유’

다음 세션은 뱅크샐러드의 류성두 님께서 발표해주신 당신이 TDD를 시도했다가 실패한 이유 입니다.

개인적으로는 이 세션이 참 만족스러웠습니다.
TDD를 공부하면서 알고 있었던 내용도 있었고, 공감되어 고개를 끄덕였던 내용도 있었습니다.
그중 특히 “테스트코드는 자체로 하나의 문서가 되어야 한다”는 내용이 공감되었습니다.
어떠한 문서라도 관리가 되지 않으면 그 문서는 신뢰할 수 없으니 개발자가 매일 관리하는 코드 자체가 문서가 된다면 신뢰할 수 있을 테니까요.
물론 그렇게 되기 위해선 테스트 코드와 테스트 커버리지에 대한 신뢰가 어느 정도 확보되어있어야 합니다.

좋은 이야기들이 많았는데 여기에 다 적기엔 글이 너무 길어질 것 같아 생략하겠습니다.

결론은 TDD를 위해서는 빌드 시간을 줄이는 작업이 불가피한 것 같습니다. TDD에서는 단순 계산으로만 일반적으로 하는 기능개발보다는 3배의 빌드를 더 하게 되니까요.

여기에서 모듈화까지 발표해주셨으면 좋겠다. 생각했는데 다행히 다음에 이어지는 세션이 Modular Architecture에 관련된 내용이었습니다.

‘Modular Architecture 시작하기'

Modular Architecture 시작하기 세션은 당근마켓의 오강훈 님께서 발표해주셨습니다.

당근마켓의 개발자들이 늘어나면서 생산성이 늘어날 줄 알았는데, 생산성은 오히려 저하되었고 그 이유 중 하나는 빌드 시간이라는 경험을 말씀해주셨습니다.
빌드 시간과 복잡도를 낮추기 위해 모듈을 분리하기로 결정했고 분리하는 과정까지 예시를 들어서 무척이나 잘 설명해주셨습니다.
또 모듈화 시 맞닥뜨리게 되는 문제점도 이야기 해주셨는데, 현재 원티드랩의 iOS 챕터에서도 모듈화가 진행 중이어서 의존성 역전, 순환 참조 등 공감이 가는 부분도 꽤 있었습니다.

Nesting, 둥지를 틀다

오전 오후 세션이 마무리되고, 행사 당일의 사진들을 엮어 한편의 영상으로 만들어 클로징에서 보여주셨습니다.

(SyncSwift 준비 위원회분들 열정에 또 한 번 감탄했습니다)

경품추첨과 사진 촬영이 모두 마무리되고 오후 7시 애프터파티가 시작되었습니다.

애프터파티는 정말 파티처럼 음식과 음료 등이 준비되어 있었고 그 안에서 자연스럽게 사람들을 만나고 이야기 나눌 수 있도록 꾸며져 있었습니다.

아무래도 장소가 쉽게 이야기 나눌 수 있도록 있게 되어 있어서 그런지 안내를 드리지 않아도 다들 삼삼오오 모여서 이야기를 나누고 계셨습니다.

저도 Apple Developer Academy의 runner 혹은 mentor 분들, 스피커로 나서주셨던 분들, 다른 회사의 iOS 개발자 등등 최대한 많은 분을 만나며 이야기 나누었습니다.

좋았던 점은 만나는 사람마다 다르게 알찬 시간을 쓸 수 있다는 점이었습니다.

평소에 관심이 있던 회사의 개발자분과 대화라면 직접 질문을 해볼 수 있는 시간이 되었고, 취업이 고민인 취준생분들과 이야기할 때는 현직자로써 조언을 해줄 수 있는 자리가 되었고, 같은 고민을 하는 iOS 개발자들과는 가벼운 토론의 장이 되었습니다.

애프터파티 끝까지 자리를 지키진 못했지만 값진 시간이라고 느꼈습니다.

앞으로는 더 많은 오프라인 컨퍼런스에 참여하여 다양한 이야기를 주고받아 시각을 넓히는 계기로 활용해보고 싶습니다.

마무리하며

이번 행사에는 디자인 관련된 발표를 꽤 찾아들었는데, 이유는 디자이너들이 애플 혹은 HIG에 관해 어떠한 시각을 가지는지 알고 있다면 디자이너들과 함께 이야기할 때 조금 더 그들의 입장을 다양한 관점에서 이해할 수 있을 것 같았습니다.

개발자로서 협업 또는 이야기를 많이 하는 직군 중 하나가 디자이너라고 생각하기 때문에 이야기를 조금 더 들을 자세가 되어있는 개발자가 되고 싶었습니다.

물론 iOS, Swift에 관련된 내용도 착실하게 들었습니다.

아는 만큼 들리고 보일 텐데 모든 내용을 흡수하기엔 제가 부족한 부분이 있다고 느꼈습니다. 😓

역시 많은 사람과 교류하면서 더 성장할 기회나 계기를 얻는 것이 컨퍼런스 참여의 하나의 장점이 아닐까 싶습니다.

집에 돌아오는 길에는 “Let’Swift는 이만큼 잘 준비할 수 있을까?”가 머릿속에 스쳐 지나갔습니다 😱

걱정이 +50 늘었습니다.

첫 오프라인 컨퍼런스였는데 정말 좋은 경험이었습니다. 벌써 내년 SyncSwift가 기다려집니다.
준비해주시고 참여해주신 모든 분께 감사의 인사를 전합니다.
내년에 또 만나요! 👋

짧지 않은 SyncSwft 2022에 대한 후기를 마치겠습니다.
읽어주셔서 감사합니다.

--

--