[톡터뷰: 안드로이드팀] 채널톡의 모바일은 우리가 담당한다!

Hans • Jungmin Han, Recruiter I love you😍

7월 25일

  • 채널톡
  • 멤버인터뷰
  • 안드로이드
  • kotlin
  • 개발자채용
  • 채널톡채용
  • SDK
  • android
  • coroutine
  • compose
  • mvvm
  • 테크 인사이트

안녕하세요! 채널팀에서 채용을 담당하고 있는 한스입니다👨🏻‍💻

’톡터뷰’ 두번째 이야기!

이번에는 채널톡 앱과 SDK 개발을 담당하는 안드로이드팀 이야기를 소개해보려 합니다.

이런 분에게 이 글을 추천합니다!

✅ 채널톡 개발자가 일하는 방식에 대해 알고 싶은 분

✅ 채널톡 ‘안드로이드팀’ 문화/직무에 대해 알고 싶은 분

Q. 죠지, 필립 안녕하세요~ 자기소개 부탁드려요.

  • 죠지 : 안녕하세요! 최근 채널팀에서 3주년을 맞이한 안드로이드 개발자 죠지라고 합니다. 저는 현재 채널톡 고객사의 관리자용 앱인 '데스크 앱'과 고객사/엔드유저가 사용하는 'SDK'의 기능 개발 및 유지보수 업무를 담당하고 있어요.

  • 필립 : 반갑습니다! 저는 채널팀에 입사한 지 6개월 정도 지난 7년 차 안드로이드 개발자 필립입니다. 저는 가장 최근에 데스크 앱 에서의 SAML 로그인 기능을 개발했고, 지금은 고객사가 사용하는 SDK의 기능과 데스크 앱의 신규 기능 개발을 병행해가며 업무를 진행하고 있어요.

Q. 채널팀에 입사하게된 이유는 무엇인가요?

  • 죠지 : 채널팀은 정말로 우연하게 알게 되었는데요. 타회사의 채용 프로세스 중 코딩테스트를 진행하는 과정에서 문제가 발생했고, 해당 회사가 채널톡을 도입하고 있어서 처음으로 채널톡을 통해 문제를 해결한적이 있었는데요.

    그리고 시간이 지나고 유튜브에서 채널팀 채용설명회 영상을 우연히 보게 되었어요. 이전의 채널톡을 통해 도움을 받았던 좋은 경험이 떠올랐고, 채용설명회를 유심히 들어보니 좋은 팀이라는 생각이 들어 합류하기로 했어요.

  • 필립 : 이전 직장이 여의도 파크원 빌딩에 있어서 좋은 업무 여건에서 일할 수 있었고, 경험 많은 다수의 개발자분과 다양하고 즐거운 경험 또한 할 수 있었어요. 그러다 의지하던 팀 리드 분이 급작스럽게 퇴사를 하게 되면서 이직을 결심하게 되었어요.

    다양한 회사를 알아보는 과정에서 이전 팀원 분의 추천으로 채널팀을 처음 알게 되었어요. 이후 채널팀 안드로이드 팀원 분과 이야기를 나눌 기회가 있었는데, 시장에서 인정받고 있는 채널팀의 높은 경쟁력과 비전에 대해 알 수 있었고 함께 일한다면 더욱 성장할 수 있을 거 같다는 확신이 들어 합류를 결심하게 되었어요.

Q. 채널팀에 입사한 후 느낀 장단점은 무엇인가요?

  • 죠지 : 장점으로는 높은 책임감만 있다면 일과 삶의 균형을 원하는 데로 조절이 가능한 부분이 채널팀의 장점인 거 같아요. 자율출퇴근이 다른 회사들보다 유연하기 때문에 스스로 컨디션을 조절하기에 좋고, 하고 싶은 일을 하는데 부담이 전혀 없는 점이 매우 좋은 거 같아요.

    또한 코드 리뷰에 대한 문화가 잘 되어 있고, 리뷰 퀄리티가 좋아서 성장하는 데 많은 도움이 되고 있어요.

    반면에 단점으로는 해결해야 하는 과제들이 매우 매우 많아서 일이 많은 걸 즐기는 편이긴 하지만 가끔은 힘들 때가 있었습니다..ㅎㅎ😅

  • 필립 : 저도 죠지와 마찬가지로 가장 큰 장점은 자율과 책임이 굉장히 명확한 팀이라는 생각이 들어요. 코어타임을 제외한 그 외의 시간에 대한 출퇴근 규정이 자유로워서 스스로 컨디션에 따라 근무시간 및 전체적인 업무 조정이 유연하게 이루어지는 점이 굉장히 만족스러워요.

Q. 죠지, 코드 리뷰 문화가 좋다고 하셨는데 안드로이드팀 코드 리뷰 문화에 대해 좀 더 자세히 말씀해주실 수 있을까요?

  • 죠지 : 보통 디자인적으로 로직상 틀린 부분들도 기본적으로 리뷰를 하고 있어요.

    다만 저희 안드로이드팀에서는 코드에 어떤 의도가 담겨 있는지 파악하는 리뷰를 가장 많이 하는 거 같아요. 명확한 의도 전달이 되었다면 이후에 해당 코드를 수정하는 다른 사람이 쉽게 작업해나갈 수 있기 때문이에요.

    그래서 코드에 담긴 의도를 명확하게 만들어주는 리뷰를 해주고 있고 그 과정에서 작업자가 놓친 부분이나 배워가는 점이 많아서 코드 리뷰 문화가 좋다라고 느끼고 있어요.

Q. 채널팀에서 기술적으로 가장 어렵게 해결한 문제라고 생각하거나 기억에 남는 프로젝트가 있나요?

  • 죠지 : SDK에 대한 유지보수 문제를 해결하는 것이 어려웠던 거 같아요. 왜냐하면 SDK는 채널톡 앱이 아닌 고객사 앱에 들어가기 때문이에요. 그래서 SDK가 고객사 앱에 영향이 없도록 개발해야 하는데요. 이런 부분들을 고려하려면 고객사별 개발 환경을 알아야 하는데 현실적으로 자세히 알기 어려운 부분이 있기 때문에 SDK를 개발하는 과정이 매우 까다로워요.

    SDK 동작 혹은 에러 관련 문의가 있을시 안드로이드팀이 대응하게 되는데요. 최근에 SDK에 다크모드 관련 기능을 출시하면서 관련한 문의가 있었는데요. 채널톡 SDK 사용 시 갑자기 에러가 발생하였고 에러 메시지는 Base context already set 이었어요. 해당 에러는 안드로이드에서 발생시킨 에러였기 때문에 원인을 바로 알 수 없었는데요. 그래서 고객사에 디버그 버전 설치, 에러 로그 전문 요청 후 분석, 동작중인 코드를 받아 분석 등 여러 시도를 해야 했어요.

    문제의 원인은 SDK가 설치되면서 고객사에서 작성한 오버라이딩 안드로이드 함수가 실행되었어요. SDK에서는 상위 함수를 호출하기 위해 부른 건데 고객사 함수에서 다시 context를 새로 설정하려는 코드가 들어있어 에러가 발생하였다는 것을 파악하였어요. 다행히도 고객사에서 사용 하지 않는 코드였고, 잘못 작성된 코드를 알려 드리고 문제를 해결할 수 있었어요.

Q. 죠지, 필립은 앞으로 어떤 커리어 패스를 만들어 가고 싶으신가요?

  • 죠지 : 현재는 안드로이드 개발 이외에 다른 커리어 패스를 생각해 본 적은 없는데요. 채널팀에서 일하면서 다른 제품팀과 같이 협업해나가는데 도움이 되는 개발자로 성장해나가면 자연스럽게 제가 원하는 커리어 패스를 찾아갈 수 있을 거 같아요.

  • 필립 : 아직은 안드로이드팀의 IC(Individual Contributor)로서의 길을 좀 더 생각해보고 있지만, 점점 제품팀의 다른 분들과 협업해가면서 매니저의 길도 생각해볼 수 있지 않을까 싶어요.


Q. 채널팀의 안드로이드팀은 어떤 기술 스택을 활용하고 있나요?

  • 죠지/필립 : 채널 입사 초기에는 Rx1, 2와 MVP 구조를 사용했어요. 최근 안드로이드를 처음 시작한 분들은 대부분 Coroutine, MVVM 같은 것에 익숙한데 저 또한 그래서 약간은 적응하는데 어려웠어요.

    그러나 적응하면서 대부분 기술들은 이유가 있어서 탄생했다는 부분들을 알 수 있던 거 같아요. 팀 규모가 커지면서 다양한 기술에 대한 의견이 있었고 현재 채널에서는 Compose, Coroutine, MVVM 구조를 메인으로 채택해서 사용하고 있어요.

    이전에 사용하던 기술들을 마이그레이션해서 제거하거나 병행해서 사용 가능한 구조를 가져가고 있어요. 그래서 그런지 채널의 안드로이드 팀원들은 대부분 기술 스택 스펙트럼이 매우 넓어요.

Q. 최신기술에 민감하고 다양한 기술을 활용하는 것 같은데, 저희 기술스택에 익숙하지 않은 분이라면 적응하기 어려울까요?

  • 죠지/필립 : 최신기술과 관련한 내용이 이미 구글 안드로이드 공식 문서에서 각 기술의 기능과 목적 등 기본적인 사용방법을 명시하고 있기 때문에 충분히 빠르게 익힐 수 있다고 생각하고 있어요. 더불어 채널팀에서는 새로운 기술을 배우고 익힐 수 있는 충분한 시간도 드리고 있어서 저희가 사용하고 있지 않은 기술 스택 위주로 개발을 진행하신 분들도 크게 어려움 없이 함께 해주실 수 있을 거라고 생각해요.

Q. 채널팀의 안드로이드팀은 어떤 방식으로 일하고 있나요?

  • 죠지 : 크게 3가지로 나뉘는 거 같아요. 첫 번째는 회사 차원에서 굵직한 결정들이 정해져 기능 개발을 해야 하는 경우이고 두 번째는 팀 내부적으로 기능들을 고도화 및 개선해야 하는 부분들입니다. 마지막은 TF인데요. 안드로이드, 모바일, 제품 각 팀에서 특정 목적을 가진 TF가 생겨나고 각 TF마다 가지고 있는 문제들을 해결해 나가고 있어요.

  • 필립 : 네 맞아요. TF에 대해서 조금 더 자세히 이야기해보자면 기능 개발이 결정될 때마다 해당 기능을 실제로 개발할 TF가 구성되고, 모바일 팀의 개발 방향이 어느 정도 정해졌을 때 모바일 리드의 판단에 따라 해당 TF에 안드로이드 인원을 배정하는 식으로 모바일 기능 개발 설계 및 구현을 시작하고 있어요.

    일반적으로는 하나의 TF에 안드로이드 개발자가 한 명씩 참여하지만, 큰 기능을 담당해야하는 경우 두 명, 혹은 모바일 팀 내부 논의를 통해 그 이상이 참여하는 때도 있어요.

    구현 과정에서 웹 또는 iOS 개발자분들과 맞춰야 하는 부분이 있으면 빠르게 커뮤니케이션하여 맞춰나가고, 작성된 코드는 PR 과정에서 다른 안드로이드 팀원들의 꼼꼼한 리뷰를 거쳐 배포되고 있어요.

    이후 어느 정도 규모를 갖춘 TF 라면 TF 내 QA 및 모바일 팀 자체 QA를 통해 미처 걸러내지 못한 경험적 문제 사항이나 기능 오류 등을 검증한 후 최종적으로 배포하는 방식으로 일하고 있어요.

Q. 채널팀의 안드로이드 개발자로 일하면서, ‘이런 경험은 채널에서만 할 수 있다’고 느끼신 순간이 있을까요?

  • 죠지 : 데스크 앱(채널톡 고객사 관리자용 앱), 고객사와 엔드유저가 사용하는 SDK를 같이 개발하는 경험은 흔하지 않다고 생각해요. 그리고 두 제품을 빠르게 변화하는 트렌드에 따라 대응해야 한다는 점에서 채널팀에서만 경험할 수 있는 부분이라고 생각해요.

  • 필립 : 이전의 경험들은 B2B 또는 B2C 등의 특정분야만 담당하는 경험을 해왔었는데요, 채널팀에 와서는 B2B에 대한 SDK 및 서비스 앱 공급과 B2C를 모두 경험해보는 것은 상당히 신선하고 귀중한 경험이라고 생각하고 있어요.

Q. 필립이 생각하는 B2B와 B2C 개발의 차이와 모두를 경험할 수 있는 부분에 대해서 자세히 설명해주실 수 있나요?

  • 필립 : 네~ 먼저 B2B와 B2C 개발의 차이를 서비스 장애 대응 측면에서 이야기를 해보자면, B2B 서비스는 서비스에 장애가 발생한다면 회사의 CX팀으로 바로 연락이 되어 필요하다면 개발자가 직접 고객사를 방문해 응대해야 할 정도로 대응 우선순위가 높게 처리된다고 생각해요.

    하지만 B2C 서비스는 대부분의 고객에게 발생하는 치명적인 문제가 아니라면 각 플랫폼에 맞는 정기 배포 시스템에 따라 우선순위를 차등 설정해 주기적으로 대응이 진행되는 부분에서 차이를 보이는것 같아요.

    새로운 기능을 기획하는 측면에서 B2B는 기존 서비스 사용처 중 일부를 선택해 선제도입하는 등의 테스트가 가능하지만, B2C는 배정된 고객이 없으므로 Amplitude 등의 로깅 툴을 사용해 고객의 행동 패턴을 꼼꼼히 분석해 이 기능이 얼마나 고객에게 유의미하게 작동할지를 예측해야 하고, 필요하다면 별도의 공지를 통해 직접 고객을 모집해 테스트해야 하는 등의 사전 테스트에 불확실한 면이 있는거 같아요.

    이처럼 B2B/B2C 서비스의 운영 방침이 다르기에 지금까지의 회사 경험에서는 오직 회사 간 계약관계로 운영되는 B2B이거나 오직 고객에게만 배포되는 B2C 경험만을 해왔었어요. 하지만 채널에 와서는 고객사를 대상으로 하는 B2B 서비스와 일반 유저들을 대상으로 하는 B2C가 동시에 운영되고 있어서 다른 곳에서는 보기 힘든 경험을 하고 있다고 생각해요.

Q. 개발자로서 좋은 성과를 내는 기준은 무엇이라고 생각하나요?

  • 죠지 : 개발자로서 좋은 성과라고 하면 다른 팀원들에게 도움이 되었다면 성과를 만들었다고 생각해요.

    개발이 한 명에 의해서 되는 게 아니라 여러 명이 다 같이 개발하게 되면 알 수 없는 부분들이 반드시 존재하게 되는데요. 그런 부분들을 잘 알려주고 코드 적으로 잘 설계하고 설명을 잘해주는 게 중요한 것 같아요.

    그래야 다른 팀원들이 개발해나가는데 도움이 되고 전체적으로 회사의 성과로 연결된다고 생각해요.

  • 필립 : 다른 팀원들에게 신뢰를 받는 개발자가 좋은 성과를 만들어내는 개발자라고 생각해요.

    제품에 대한 폭넓은 도메인 지식 및 플랫폼 개발 경험을 바탕으로 다른 팀원의 작업에 대한 잠재적인 위험을 빠르게 조언하거나 혹은 실제 이슈가 발생했을 때의 원인 및 해결안을 도출해내는 경험을 보여주는게 중요한 것 같아요.

    이런 과정을 통해서 다른 팀원들로 하여금 믿고 맡길 수 있다는 동료가 되었다면 좋은 개발자다 라고 생각하고 있어요.


JOIN OUR TEAM!

Q. 안드로이드팀만이 가진 장점이 있다면 무엇인가요?

  • 죠지 : 모두가 정답이라고 말하지 않는 것이 장점인 것 같아요. 틀리면 지적하고 잘 못 하고 있다는 말보다는 서로 존중하고 도움을 주는 이해심 많은 팀이에요. 그래서 본인이 가진 장점을 100% 발휘하는데 도움을 주는 팀이라고 생각해요.

  • 필립 : 문제가 있을 때 누군가에게 책임을 묻기보단 해결을 위해 주력하는 것이 가장 큰 장점이라고 생각해요. 지금의 문제를 최대한 빠르게 수습하고 재발을 방지하려고 하는 것이 구성원에게 있어서는 위축되지 않고, 제품에 있어서는 차후의 문제를 예방하게 만드는 더 나은 방향이라고 믿고 있어요.

Q. 마지막으로, 어떤 분들이 안드로이드팀으로 오시면 잘 맞을까요? 함께하고 싶은 동료에게 한마디 부탁드려요!

  • 죠지 : 채널톡은 채용시 커뮤니케이션 능력을 중요한 평가요소로 삼고 있는 걸로 알고 있어요. 그렇기 때문에 저희 안드팀은 팀원들간의 커뮤니케이션이 너무 잘 되고, 따라서 본인의 생각을 잘 전달해줄 수 있는 사람이면 잘 맞을 거 같아요. 개발에는 뚜렷한 정답이 없는데, 많은 의견이 모여야 팀이 나가는 방향이 뚜렷해진다고 생각해요.

    그리고 개발자로서 커리어에 욕심이 있는 분이면 오셔서 더 즐거울 것 같아요. 저희 팀원 분들이 다들 열정이 넘치거든요. 올해에도 좋은 분들이 많이 합류했으면 하는 바램입니다.

  • 필립 : 저도 커뮤니케이션이 중요하다는 것에 동의해요. 서로 서로가 다양한 생각들을 많이 주고받는 팀이라서 다른 사람의 의견을 잘 소화해낼 수 있는 분이면 좋을 것 같아요. 만약 소화해내기 어렵다 해도 그 포인트를 잘 짚어서 설명해줄 수 있는 분이라면 채널팀에 오셔서 같이 즐겁게 일할 수 있을거에요.

    저희 인터뷰를 보고 관심 있으신 분들은 언제든 저희 공고 보고 지원해주시고, 채널팀에 오시면 후회 없을 거에요.

[이런 글도 추천드려요👍]

사이트에 무료로 채널톡을 붙이세요.

써보면서 이해하는게 가장 빠릅니다

회사 이메일을 입력해주세요