컨퍼런스/Toss

[Slash 2022] 토스 온라인 개발자 컨퍼런스 후기

말차프라푸치노 2022. 6. 28. 18:10

출처 : Toss Slash 22 홈페이지

Toss는 작년(2021년)부터 온라인 개발자 컨퍼런스 Slash를 개최해왔다.

올해도 6월 8일 ~ 10일 3일 동안 온라인으로 진행됐다.

그 때가 시험기간이라 다 자세히 보지는 못 했고 내가 공부하는 iOS 를 중점으로 봤다.

 

토스 유튜브에 올라와있어 다시 돌려볼 수 있다.

 

토스

금융의 모든 것, 토스에서 쉽고 간편하게 토스 공식 유튜브 채널입니다

www.youtube.com

 

가장 기억에 남았단 세션 3가지만 적어보려고 한다.

 

 

1. UIKit으로 만들어진 토스 디자인 시스템, SwiftUI에서 쓸 수 있을까?

컨퍼런스의 시작을 맡아주었던 세션이다.

iOS 개발은 지금 UIKit에서 SwiftUI로 넘어가는 과도기이다. 

그러면 SwiftUI로 처음부터 만들면 되지 왜 그러지 않았을까?

출처 : Toss 유튜브

SwiftUI에는 몇 가지 부족한 점이 있었다고 한다.

우선 iOS13과 그 이상 버전에서 다르게 작동하는 코드가 있었다. 직접 코드를 짜보기 전까지 몰랐다고 한다.

두번 째로 기존에 사용하고 있는 API 들이 SwiftUI로 넘어오면서 최신 iOS 버전에서만 사용할 수 있었다.

refreshable(action:) 메소드의 경우 예시로 나오는데, iOS15부터 사용할 수 있기에 SwiftUI에서 직접 구현해야 한다.

 

출처 : Toss 유튜브

Toss에서는 Component 프로토콜을 개발했다. 이 컴포넌트를 UIViewRepresentable을 채택한 객체 안에 넣어주었다.

UIViewRepresentable 은 UIKit를 SwiftUI에서 사용하기 위해 채택하는 프로토콜이다.

출처: Toss 유튜브

 

출처 : Toss 유튜브

좌측이 SwittUI이고 우측이 UIKit이다. 확연한 코드 양의 차이를 볼 수 있다.

 

확실히 SwiftUI가 더 편하고, 짧은 코드를 작성할 수 있지만 현업에서는 아직 UIKit가 필요한 영역이 있다.

더 자세한 설명은 유튜브에서 확인할 수 있다. 유튜브 바로가기

 

 

 

2. 미친 생산성을 위한 React Native

앱 개발을 공부하는 사람이라면 크로스 플랫폼 공부에 대해 망설인 적이 있을 것이다.

이 세션에서는 토스 글로벌 앱에서 왜 React Native 를 사용하게 되었는지 말해준다.

 

출처 : Toss 유튜브

 

토스 글로벌 팀은 5명으로 이루어져 있었다. 사실상 토스 안의 스타트업 팀이라고 볼 수 있다.

만약 안드로이드 개발자나 iOS 개발자 한 명이 휴가를 갔는데 문제가 발생하면 해결이 불가능했다.

또 느린 배포속도와 매우 긴 앱 스토어 심사 시간은 토스 글로벌 앱의 발목을 붙잡았다.

 

 

출처 : Toss 유튜브

 

한정적인 상황에서 결과를 내고자 Toss 글로벌 앱 팀은 크로스 플랫폼을 도입했다.

알다시피 크로스 플랫폼에는 Flutter와 React-Native가 있다.

둘 다 장단점이 확연하기 때문에 도입 전까지 고민을 했다고 한다.

 

결국에는 React-Native를 선택했는데, 토스에는 72명의 React 개발자가 있었기 때문이다.

단순히 React-Native가 Flutter 보다 기술적으로 뛰어났다기 보다는 학습 비용이 낮았고 성공적인 결과를 보여줬다.

 

크로스 플랫폼을 사용해야 하는 경우 보통은 한정된 자원을 가진 스타트업일 경우가 많다.

구글이 페이스북에 비해 Flutter를 더 적극적으로 지원해주긴 하지만, 단순히 기술만 보는 게 아니라 종합적으로 자신의 상황을 고려해서 선택해야 한다는 것을 느꼈다.

 

더 자세한 내용은 유튜브에서 볼 수 있다. 유튜브 보러가기

 

 

 

3. SLASH 22 - UX와 DX, 그 모든 경험을 위한 디자인 시스템

토스는 UX에 진심인 기업이다. 근데 UX 뿐만 아니라, DX (Developer eXperience)에도 진심인 걸 볼 수 있는 세션이었다.

토스는 쉽고 간편한 금융 서비스를 지향하고 있다.

단순한 메시지에도 이 철학을 담기 위해 노력하고 있다.

 

아래는 컨퍼런스에 나온 예시이다.

출처 : Toss 유튜브

오른쪽이 토스같다.

이 과정을 시스템하기 위해 보이스톤 메이커를 개발했다.

보이스톤 메이커는 일관성있는 토스의 보이스톤을 위해 제품에 보일 여러 문구를 간결하고 캐쥬얼하게 쓸 수 있는 규칙을 제공해주는 프로그램이다.

 

출처 : Toss 유튜브

개발자도 사용할 수 있도록 보이스톤 메이커를 Lint로 만들었다.

위에 그림에서 보이는 것처럼 토스 보이스톤에 맞지 않는 메시지를 찾아내 대체어를 제안해준다.

 

 

출처 : Toss 유튜브

또 앱을 실행하면서도 보이스톤 메이커를 구동할 수 있도록 앱 내제 도구도 개발했다.

더 자세한 내용은 유튜브를 통해 확인할 수 있다. 유튜브 보러가기

 

이 세션 보면서 감동했다. 개발을 뛰어넘어 더 좋은 개발을 위한 개발을 하다니... 이것이 개발자인가.... 

 

 

 

후기

우선은 컨퍼런스는 WWDC 만을 봐왔던 나에게 한국어로 된 컨퍼런스는 너무 좋았다. (사랑해요 한국...)

또 대학생들은 현업에서 어떻게 일하는지 알 기회가 거의 없는데 , 대표 유니콘 기업인 토스가 어떻게 개발을 하는지 볼 수 있다는 것도 굉장히 좋은 경험이였다.

확실히 학교에서 하는 우당탕탕 식이 아니라 체계화 속에서 최고의 효율을 추구하는 것을 보고 진짜 현업이구나 느꼈다. (역시 시간이 돈인가.. )

특히 세 번째로 소개했던 UX와 DX 세션을 실시간으로 보면서 감탄했다.

앱 뿐만 아니라 서버, 아키텍쳐, 머신 러닝 등 다양한 파트에 대해서 조금씩 공부할 수 있는 좋은 기회였다.

아직 이해가 안 가는 부분도 많지만 다시 돌려 보면서 꼼꼼히 되짚어 봐야겠다.

😊