View

개발자의 협업

Yuu's 2023. 7. 31. 23:05
반응형

 

개발자의 협업에 관해 좁은 견해를 가지고 있던 나를 반성하며 최근 협업에 대해 얻었던 인사이트를 기록해 두려고 해요.

 

글을 읽어보면 어떤 분들은 당연한 이야기를 한다고 하시겠지만 아직 현업에 종사하지 않는 취업 준비생인 저한테는 굉장히 좁은 견해를 넓혀주는 계기가 되었어요.

 

부트캠프 메인 프로젝트를 진행할 때 멘토링 시간을 가졌었는데, 멘토님께서 일하시는 회사의 업무에 대해 잠깐 얘기해 주셨던 적이 있었어요. 정확히 어떤 이야기였는지 잘 기억은 나지 않지만, 대략적으로 웹앱을 개발하면서 안드로이드 개발 팀과의 의사소통 문제, RN에서 관리되는 상태를 어떻게 리액트에게 알려줄 것인가 이런 느낌의 이야기를 했던 것 같아요.

 

멘토님 말씀을 들어보니, 제가 너무 협업에 대해 디자이너, 백엔드와의 협업에만 생각한 것 같았어요. 특히나 지금과 같은 시대에서는 스마트폰 보급률이 90%가 넘기 때문에 앱서비스는 필수적인 요소일텐데요. 그렇다면 더욱 더 백엔드 뿐만 아니라 안드로이드, iOS 등 다양한 플랫폼과 함께 협업을 할 경우도 분명 많이 생기겠죠. 그렇게 멘토링이 끝나고 프로젝트에 치여 살다가 토스 SLASH23에서 발표한 "Rally로 3분 만에 애니메이션 완성하기"라는 주제의 기술 발표 영상을 보게 되었어요.

 

출처 - Toss SLASH23 Rally로 3분 만에 애니메이션 완성하기

토스의 Interaction Team에서 발표한 내용으로 안드로이드, iOS, Web, 디자이너 간의 커뮤니케이션의 비용을 줄이기 위한 과정들과 결과에 대한 내용이었습니다.

 

디자이너가 디자인한 UI가 안드로이드, iOS, Web 각 플랫폼에 맞게 디자인된 시안이 아니기 때문에 각 플랫폼에서 동일한 결과물이 나오기 어렵다고 합니다. 이를 동일한 결과물로 수정하기 위해서는 디자이너가 일일이 각 플랫폼 개발자와 의사소통을 해야만 했고 그 과정을 통해 의도한 결과물이 나오도록 커뮤니케이션하는 데 비용이 많이 발생한다고 합니다.

 

출처 - Toss SLASH23 Rally로 3분 만에 애니메이션 완성하기

위의 이미지처럼 사용되는 용어의 명칭과 의미도 통일되지 않아서 항상 일을 싱크하는 과정이 필요했다고 합니다. 영상에서 `RepeatCount`의 기능을 예시로 설명해주셨는데 iOS에서는 `animation.repeatCount = 1`이면 1회 재생되며, 안드로이드에서는 총 2회가 재생된다고해요, 웹에선 용어부터가 다른데요 `animation.repeactCount`가 아닌 `animation-iteration-count`라는 용어를 사용하고 iOS와 동일하게 1회 재생됩니다. 또한 요요처럼 앞뒤로 이어져서 재생되게 할 때 iOS에서는 `animation.autoreverse=true`, 안드로이드에서는 `animator.repeatMode=Reverse`, 웹에선 `animation-direction: alternate`로 3개 플랫폼이 사용하는 용어가 모두 다르다고 합니다. 이런 상황에서 협업을 계속 진행한다면 협업 개발자가 늘어날수록 커뮤니케이션을 해야되는 비용이 증가하겠죠.

 

그래서 토스는 안드로이드, iOS, Web 3개 플랫폼에서 모두 동일한 "개발 언어와 로직"을 공유하고 구현 난이도를 낮춰줄 새로운 애니메이션 라이브러리를 만드는 것을 최우선 과제로 삼았다고 합니다. 그렇게해서 탄생한게 토스의 "Rally"라고 하네요!

 

Rally는 토스가 만든 플랫폼 공통 애니메이션 라이브러리로 기본적으로 수도코드 형태로 소통하고 개발 할 때 각 플랫폼별 언어로 번역해서 사용한다고 합니다. 정말 유용하네요!

 

Rally 라이브러리를 통해 커뮤니케이션 비용을 줄이는 것 뿐만 아니라 분명 개발자 생산성에서도 지대한 영향을 미쳤을 것 같아요. 토스 뿐만 아니라 카카오, 배달의 민족 등의 어플에서도 상당히 많은 애니메이션을 사용하는 것 같은데 이러한 플랫폼에서도 각 팀들이 어떻게 커뮤니케이션이 이루어지는지 궁금해지네요. 

 

확실히 커뮤니케이션의 중요하다는 것을 다시 한번 깨닫게 되었어요. 디자이너, 백엔드와의 협업만 생각했는데 실무에서 일을 하게 되면 더 다양한 플랫폼과의 협업이 이뤄질 수도 있고, 상황에 따라 커뮤니케이션이 많이 발생할 수 있다라는 것을 느꼈어요. 그리고 막대한 커뮤니케이션의 비용이 발생할 경우 어떻게 해결해 나갈 것인지 한 번쯤은 고민을 하게 되는 순간이 분명 올 것 같습니다. 그 때가 되면 토스 Interaction 팀처럼 멋진 해결책을 제시할 수 있는 개발자로 성장할 수 있을까요...?

반응형
Share Link
reply
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30