인터뷰

"⭐️ 4.5"…센드버드 개발자가 일하는 법

센드버드코리아 개발팀 iOS 개발자

2021. 03. 29 (월)
이미지
모바일 쇼핑, 인터넷 커뮤니티, 게임, 스트리밍 애플리케이션(앱)까지. 어떤 환경이든 ‘채팅’은 빼놓을 수 없는 기능이 됐다. 분야 따지지 않고 채팅 기능이 발빠르게 구현되고 있는 건, 어떻게 보면 당연한 수순일 것이다. 서비스 제공자는 이용자가 채팅 앱을 이유로 서비스를 이탈하길 원하지 않고, 이용자는 채팅 앱 없는 서비스 환경을 불편하게 여기기 때문.

센드버드는 대표적인 기업용 채팅・메시징 솔루션인 ‘센드버드'를 제공하고 있는 기업이다. 센드버드 솔루션을 이용하면 어디든 5분 안에 채팅 기능을 구현할 수 있다. 이런 독보적인 서비스 덕분에 센드버드 채팅 서비스 이용자는 월간 약 1억 명, 현재 2,700여개 앱에 도입됐다. B2B 채팅 솔루션 세계 1위의 기록이다.

전도유망한 IT 기업, 그리고 미국 샌프란시스코에 본사를 두고 있는 글로벌 스타트업. 전현직원이 날카롭게 재직 경험을 평가하고 있는 잡플래닛 상의 평가도 4.5점으로 매우 높은 편이다. 다양한 경험에 갈급하고 커리어적인 성장을 꿈꾸는 개발자들에게는 눈 여겨볼 직장일 터. 센드버드 개발팀에서 일하고 있는 iOS 개발자들의 이야기를 들어봤다.
이미지
센드버드코리아 iOS 개발자 Jed/사진=센드버드코리아
센드버드코리아에서 각자 어떤 역할을 맡고 계신가요.
Woo : iOS 플랫폼에서 센드버드의 심장이라고 할 수 있는 핵심 chat SDK의 개발을 하고 있습니다. 주로 새로운 기능의 추가 및 기존 기능의 유지 보수의 업무와 함께 좀 더 적은 버그, 좋은 코드를 유지하기 위해 리팩토링을 주기적으로 하고 있습니다.

Jed : Woo님과 함께 iOS용 Chat SDK를 개발하고 있습니다. 다양한 메시지 기능의 설계부터 구현까지 다른 엔지니어 분들과 협업하고 있고요. 버그 등 여러 가지 문제 해결도 병행하고 있습니다.
개발자로서 센드버드코리아가 첫 직장이신지요? 어떤 커리어패스를 경험하셨는지 궁금합니다.
Woo : 센드버드는 제 커리어에서 3번째 스타트업입니다. 센드버드와의 인연은 특별하다고 할 수 있는데요.

망고플레이트라는 스타트업이 첫 회사였어요. 당시 망고플레이트는 스타트업 인큐베이터에 상주하고 있었는데, 같은 층에 센드버드의 전신인 자이버가 있었죠. 망고플레이트를 퇴사하면서 센드버드에 조인하고 싶었지만 iOS 개발 티오가 없었고, 여러모로 타이밍이 안 맞았는데요. 2020년 초 즈음 연이 닿아 함께하게 되었습니다.

Jed : 제 첫 직장은 네트워크 보안 회사였습니다. 리눅스 기반의 방화벽 개발이 주 업무였는데, 고속 패킷 처리가 핵심 기술이었기 때문에 커널 레이어에서 직접 패킷을 다루는 커널 모듈을 C언어를 사용해 개발했습니다. 그 후에는 외국어 학습과 관련된 서비스 개발에 참여했어요. 안드로이드 앱 개발을 맡았습니다. 1년 정도 개발을 했지만 출시까지 이어지지는 못했고요.

이후에 안드로이드 앱 개발자로 커리어를 이어가고 싶어 회사를 알아보던 중, ‘스마일맘’이라는 앱을 개발하던 스마일 패밀리를 찾게 되었습니다.

초기 투자를 받은 상태라 다른 스타트업과 비교해서 상대적으로 안정적인 회사라고 판단했고, 이미 엑시트를 경험한 창업자라는 것도 이 회사를 선택한 이유 중 하나였죠. 스마일 패밀리가 센드버드로 피보트하게 되면서 iOS SDK 개발을 담당하게 됐습니다.
이미지
센드버드코리아를 선택하게 된 결정적인 이유가 있으실 것 같아요.
Woo : 동료의 영향이 제일 컸어요. 전 직장에서 재미있게 함께 일했던 동료가 먼저 센드버드에 조인하게 됐는데, 그분이랑 너무 재미있게 일을 한 좋은 기억이 있어서요. 좋은 동료와 함께한다는 것 자체로 동기부여가 될 거라고 생각했습니다.

두번째로는 성장성인데요. 한국 스타트업 중 이 정도로 빠른 속도로 성장한 스타트업은 없다고 생각했고, 잘 될 것 같다는 믿음이 있었습니다.
Woo님은 현재 미국 본사에서 일하고 계시잖아요. 개발자로 입사하게 되면 업무에 따라 근무지가 달리 배치되나요? 어떤 식으로 업무 분장이 되고 있는지가 궁금합니다.
Woo : 업무 자체는 근무지에 영향을 크게 받지 않습니다. 고객층이 한국뿐만 아니라 세계 곳곳에 있기 때문에, 특정 고객의 지역의 시간대에 빠른 시간에 대응하기 위한 업무를 제외하고는 거의 동일해요.
센드버드코리아에서 iOS 개발자로 일하시면서, 개인적으로 도전이었다고 생각되는 프로젝트가 있을까요?
Woo : 개인적으로 가장 도전적이었던 경험은 테스트 코드 개편 및 시각화와 관련한 일이었습니다.

iOS의 테스트 코드가 CI에서 불규칙적으로 실패하는 경우가 많았고, Objective-C 코드의 특성상 콜백함수가 몇 번만 테스트에 포함이 되어도 코드 자체를 읽기 어려운데요. 제가 입사한지 얼마 되지 않았을 때 코드 전반적인 로직을 이해해볼 겸, 자진해서 테스트 코드를 개편했어요.

Datadog에 테스트 결과를 추가적으로 업로드해서 여러 지표를 한눈에 볼 수 있게 하고, 주기적으로 테스트코드의 전반적인 퀄리티 및 flakyness의 히스토리를 확인하게 해서 어떤 코드가 문제인지 파악하기 쉽게 했죠. 결과적으로 테스트 코드의 효율성이 전반적으로 향상됐습니다.

Jed : 입사 전까지 iOS SDK를 만들어 본 경험이 없었기 때문에, 이 일을 시작하는 것 자체가 큰 도전이었던 것 같아요. 안드로이드 엔지니어로 스마일 패밀리에 입사했으니, iOS 앱이나 SDK를 개발하게 될 것이라고는 생각하지 못했거든요.

스마일 패밀리 재직 당시 서비스 사용자를 늘리기 위해 iOS 앱 개발에 참여하게 되었고요. 센드버드로 피보팅을 하면서 iOS SDK 개발을 맡았습니다. iOS SDK 개발 경험이 없다보니 경쟁사 제품과 오픈 소스 프로젝트를 살펴보면서 API 설계, 구현, 테스트, 문서 작성, 배포까지 많은 것을 새롭게 배우는 기회가 됐죠.
이미지
센드버드코리아 iOS 개발자로 일하게 된다면 커리어적으로 어떤 장점이 있을까요.
Woo : 폭발적으로 성장하고 있는 글로벌 스타트업에서 일을 한다는 것 자체로 큰 메리트라고 생각합니다. SDK의 특성상 트렌디한 프레임워크를 사용하긴 어려워요. 하지만 안정적으로 많은 고객사들이 사용하는 SDK를 개발한다는 경험 자체로도 좋은 경험이 될 수 있다고 생각합니다.

iOS 개발 측면으로는, Chat SDK가 현재 Objective-C로 구현이 되어있는데요. 이 부분을 Swift로 migration할 계획이거든요. 입사하시면 제품의 전반적인 구현 방식과 설계를 처음부터 뜯어 볼수 있는 기회가 있으니, 놓치면 후회하십니다! (웃음)

Jed : SDK를 개발해야 하는 업무 특성과 관련된 부분들이 있습니다. 예를 들면, 3rd-party 라이브러리를 SDK에서 사용할 수 없기 때문에 필요한 기능을 직접 구현해야 하고요. 일부 고객사들이 낮은 버전의 iOS를 대상으로 앱을 개발하기 때문에 센드버드 SDK 역시 버전에 대한 제약이 있는 상황에서 개발을 해야 합니다. 그러다보니 일반적인 앱을 개발할 때와는 다른 관점을 가져야 하는 부분이 있습니다.

그리고 저희 회사 제품을 사용해서 개발을 하려면 개발 방법 등과 관련된 문서를 제공하는 것이 매우 중요한데요. 이 또한 일반적인 앱 개발에서는 경험하기 어려운 부분이라고 생각합니다.

또 글로벌 시장에 대한 경험을 빼놓을 수 없죠. 센드버드의 고객이 아시아, 유럽, 북미, 남미 등 전 세계에 걸쳐서 분포되어 있기 때문에, 다양한 시장과 고객을 만날 수 있습니다. 센드버드에 입사하시게 된다면 국내 다른 회사들에 비해서 더 넓은 시야를 가지게 되실 겁니다.
센드버드코리아 iOS 개발자로 입사하기 위해 익혀두어야 할 기술이나, 관련 역량이 있다면 무엇을 꼽아주실 수 있을까요.
Woo : 기본기가 가장 중요한 것 같습니다. 제 기준에서의 기본기는 ‘data structure’와 ‘problem solving’인데, 이 두 가지가 탄탄하다면 나머지는 시간의 문제라고 생각합니다.

더불어, 주도적으로 과제를 이끌어나가는 능력도 중요하다고 생각합니다. 더 나은 더 안정적인 프로덕트를 만들기 위해 남이 시켜서가 아니라 스스로 의견을 내고 실행에 옮기는 능력이 있으시다면, 지금 바로 지원해주세요!

Jed : 첫 번째로는 채팅 기능을 구현하기 위한 WebSocket, HTTP 프로토콜 등 네트워크 관련 지식입니다. 개별 프로토콜에 대한 지식이 부족하더라도 네트워크에 대한 일반적인 지식은 어느 정도 필요하다고 생각합니다.

두 번째로 플랫폼에 대한 충분한 이해입니다. 개발 뿐 아니라 고객들이 저희 제품을 사용하면서 겪는 다양한 문제점을 이해하고 해결하려면 반드시 필요한 역량입니다.

마지막으로는, 고객에 대한 이해도 중요합니다. 센드버드의 고객은 다른 기업들인데요. 저희 제품을 직접 사용하는 분들은 SDK를 사용해서 고객사의 서비스를 직접 구현하고 있는 엔지니어들이죠. 이 분들이 개발하기에 쉬운 제품을 만들기 위해서 제품 설계부터 끊임없이 고민해야 합니다.
이미지
센드버드코리아의 개발자들이 어떤 분위기 속에서 일하고 있는지, 개발 문화 또한 궁금합니다.
회사 전체가 역할 기반의 수평적인 조직이기 때문에 서로의 의견을 자유롭게 교환하고 있습니다. 기능 개발 또는 수정 사항이 있을 때, 같은 플랫폼의 엔지니어들끼리 코드 리뷰도 적극적으로 이루어지고 있습니다.

개발팀 전체적으로 테스트를 매우 중요하게 생각하고 있습니다. SDK는 테스트 코드 작성을 적극적으로 하고 있고요. TDD 처럼 테스트를 먼저 작성하고 기능을 구현하지는 않지만, 기능 설계 단계부터 테스트를 고려하고 있고요. 테스트를 위한 비공개 API를 구현하기도 합니다.
센드버드코리아는 잡플래닛 평점 4.5점으로, 전현직자에게 ‘일하기 좋은 직장'으로 손꼽히고 있는데요. 실제로 그만큼 일하기 좋은 회사인지도 궁금합니다.
Woo : 제품의 성능 및 유지보수 향상에 도움이 되는 일이라면 주도적으로 일할 수 있다는 점이 좋아요. 도전하고 싶은 사람에게는 그만큼 기회를 준다는 게, 센드버드라는 직장의 장점이라고 생각합니다.

그리고 1년에 396만원 상당의 복지비를 사용할 수 있어요. 저는 주로 도서를 사는데, 최근에는 오큘러스도 구매해봤습니다. (웃음) 이 얘기를 한번 친구에게 했더니 엄청 부러워 하는 것 같더라고요.

Jed : 엔지니어 입장에서는 개발에 필요한 도구, 장비가 얼마나 잘 지원되는지가 중요하잖아요. 센드버드는 최고 사양의 랩탑을 제공하고, 필요한 소프트웨어도 얼마든지 지원합니다.
센드버드는 특히 ‘성장가능성' 항목에서 전현직자들에게 82%라는 높은 점수를 받았습니다. 현직원으로서, 센드버드가 실제로 성장 가능성이 높은 기업이라고 생각하시나요?
Woo : 2018부터 2020년까지, 총 3년 동안 센드버드는 크게 성장했습니다. 20명이었던 임직원 수가 200명 이상까지 불어났어요. 앞으로도 성장 가능성이 상당히 높은 기업이라고 생각합니다.

저는 완벽한 기업이란 존재하지 않는다고 생각하는데요. 좋은 기업과 그렇지 않은 기업의 차이점이 있다면, 부족한 점을 알고 개선할 의지가 있느냐에 달려 있다고 봅니다. 이런 측면에서 봤을 때 센드버드는 분명히 좋은 기업이라고 생각하고요.

Jed : 채팅 및 메시징이 점점 더 많은 서비스에 탑재되고 있습니다. 사용자 간의 채팅이 필요한 인터넷 커뮤니티, 고객 상담, 게임, 라이브 스트리밍 등 많은 고객사들은 사용자가 채팅을 위해서 서비스를 빠져나가는 걸 원하지 않아요. 사용자들 역시 그러한 경험을 불편하게 생각합니다. 그렇기 때문에 더 많은 고객사들이 자사의 서비스에 채팅을 탑재하길 원하고 있는데요. 이런 측면에서 보면 센드버드의 성장 가능성이 매우 높죠.
개발자들 연봉이 큰 이슈인데, 센드버드코리아는 성과 분배가 잘 되고 있는 편인지도 궁금합니다.
스타트업은 직원들이 함께 회사를 키워나간다는 특징이 있잖아요. 따라서 성과 분배는 아주 중요한 문제고, 센드버드 역시 이 부분을 중요하게 생각하고 있어요.

최근에는 스톡옵션 프로그램을 파격적으로 바꿨는데요. 퍼포먼스에 따라 차등으로 지급하는 게 아니라, 근속기간과 승진 여부 등에 따라 전부에게 스톡옵션을 지급해 구성원들과 함께 성과를 나누고 있습니다. 앞으로도 계속해서 나아질 거라고 생각해요.
이미지
끝으로, 센드버드코리아에 입사하길 꿈꾸는 iOS 개발자들에게 채용 꿀팁을 주신다면.
플랫폼, 언어에 대한 이해가 높을수록 유리합니다. 최근에 iOS 개발을 시작한 엔지니어라면 Swift를 주로 사용하겠지만, 여전히 Objective-C를 사용해 개발하고 있는 고객사들이 있기 때문에 두 언어에 대한 이해가 필요합니다. 3rd-party 라이브러리를 이용해서 손쉽게 구현해본 기능이 있다면, 간단한 기능이라도 라이브러리 도움 없이 직접 구현해보는 게 도움이 됩니다.

마지막으로, 면접시에 지원자 분들께 과제를 요청드리고 있는데요. 과제가 제품으로 출시할 수 있을 정도의 결과물인지 보고 있습니다. UI의 편리함과 아름다움은 중요하지 않아요. 다만 과제에서 언급된 기능들이 문제없이 동작해야 하고, 에러 처리 등이 충분히 되어 있어야 합니다.

회사에서는 많은 사람들과 협업해야 하기 때문에 구조 및 코드의 가독성 역시 중요한 부분 중 하나입니다. 이러한 부분을 신경쓰신다면 저희 회사를 지원하는데 도움이 될 거예요.

실시간 인기 콘텐츠