paint-brush
유니콘 만들기: inDrive를 사용한 나의 10년 경력~에 의해@michil
9,014 판독값
9,014 판독값

유니콘 만들기: inDrive를 사용한 나의 10년 경력

~에 의해 Michil Androsov9m2023/11/15
Read on Terminal Reader

너무 오래; 읽다

야쿠츠크의 극한 기후 속에서 유니콘 회사로 성장한 차량호출 서비스 inDrive의 역사를 통해 매혹적인 여정을 떠나보세요. inDrive의 CTO인 Michil Androsov는 개발 초기, Yakutia의 혹독한 조건에서 직면한 과제, inDrive를 차별화하는 고유한 가격 모델에 대한 통찰력을 공유합니다. iOS 개발의 개척기부터 야쿠츠크를 넘어 다른 러시아 도시로의 확장까지 inDrive의 발전을 이룬 주요 이정표를 알아보세요. inDrive가 성공을 향한 길에서 직면한 기술적, 비기술적 과제에 대한 더 많은 이야기를 계속 지켜봐 주시기 바랍니다.
featured image - 유니콘 만들기: inDrive를 사용한 나의 10년 경력
Michil Androsov HackerNoon profile picture
0-item


다소 허식적인 제목에도 불구하고, 이 기사의 목적은 성공 사례를 제시하거나 쓸데없는 진부함과 진실을 바탕으로 한 "핫 팁"을 제공하는 것이 아닙니다. 저는 제가 거의 모든 직업 경력을 함께 보낸 회사에 대한 몇 가지 이야기를 나누고 싶습니다. 이 서비스가 야쿠츠크라는 멀고 추운 도시에서 어떻게 구현되었는지에 대해 엔지니어의 관점에서 inDrive에 대한 나의 관점을 공유합니다.


안녕하세요 여러분! 제 이름은 Michil Androsov이고 inDrive 에서 10년째 근무하고 있습니다. 저는 개발팀이 3명이었을 때 회사에 입사했고, 제가 지휘하는 직원이 500명인 CTO로 떠났습니다. 수년에 걸쳐 회사는 현지 스타트업에서 세계 최고의 펀드가 수억 달러를 투자하는 유니콘 기업으로 성장했습니다.


inDrive (이전 inDriver, " Independent Drivers "의 약자)는 야쿠츠크 ( 사하 공화국 의 수도)에서 출발하는 차량 호출 서비스로, 다른 모든 서비스와 큰 차이점이 하나 있습니다. 여행 요금은 승객이 직접 설정합니다. .


경쟁사와 달리 inDrive의 가격 책정 모델에는 수백 가지 기준에 따른 복잡한 알고리즘이 포함되어 있지 않습니다. 전체 시스템은 최대한 투명하며 두 당사자만 프로세스에 참여합니다. 운전자와 승객은 서로 요금을 협상하고 양 당사자에게 적합한 가격에 동의합니다. 이것은 자체 균형 시스템입니다.


야쿠티아(Yakutia)라고도 알려진 사하 공화국(Sakha Republic)은 러시아 연방 극동 지역에 위치한 공화국이다. 대부분 현지 토착민인 야쿠트족이 거주하고 있지만 상당히 다문화적입니다. 공화국은 극단적이고 가혹한 기후로 유명합니다.


야쿠츠크의 분위기

겨울의 야쿠츠크. 사진 제공: Maria Vasilieva, YSIA


이 서비스가 야쿠츠크에서 등장한 이유는 다음과 같습니다. 내 책에서는 두 가지 이유를 설명합니다.


  1. 추운 기후. 기온이 영하 50도까지 떨어지면서 공원 산책이나 자연 하이킹보다는 집에 머무르는 경향이 늘어나고 있다. 그들은 즐겁게 지낼 수 있는 방법을 찾아야 하며, 대개 컴퓨터 앞에서 시간을 보냅니다. 물리학과 수학에 특별히 중점을 두는 일류 학교(이 지역에는 많은 학교가 있음)와 결합하면 이러한 아이들 중 상당수가 프로그래머가 될 가능성이 있습니다. 적어도 나는 이것을 나 자신에게 설명합니다.


  2. 본토로부터의 격리. 이 때문에 인터넷은 매우 비싸고 느렸습니다. 인터넷은 무선 중계 기술과 함께 작동했습니다. 그리고 메가바이트마다 비용을 지불해야 했습니다. 인터넷에서 다운로드한 영화 몇 편에 근로자의 월급이 들어갈 수 있습니다. 그래서 인터넷 서비스 제공업체의 직원들은 Big Internet에서 무언가를 다운로드하여 인트라넷 에 올리곤 했습니다. 위성낚시까지 하던 몇몇 사람들이 기억난다.


야쿠츠크가 자체적인 "인터넷"을 가지게 된 것은 이 두 가지 요인 때문이며, 그와 함께 인터넷 포털 Ykt.ru (현재 다운됨) - yahoo 또는 dmoz, craigslist, napster, 이미지 사진 게시판, 뉴스, 포럼과 같은 지역 웹 포털이 생겼습니다. 모두 하나로. 그것은 알파벳의 현지 품종이었고 야쿠츠크의 소수의 IT 전문가 모두 그곳에서 일자리를 얻고 싶어했습니다. 포털을 소유한 회사는 Sinet(Sakha Internet의 약자)이라고 불리며 곧 inDrive가 설립된 회사입니다.


여기에서 Sinet 외에도 야쿠츠크에 Mytona 라는 대형 게임 개발 회사가 있었고 현지 IT 인력을 끌어들이는 역할도 했다는 점을 지적할 가치가 있습니다. 그 회사는 북쪽의 작은 마을인 코누(Khonuu)의 두 형제가 부모님으로부터 돈을 빌려 첫 번째 인디 게임 개발을 시작하면서 시작되었습니다. 현재 상황으로는 inDrive와 Mytona가 러시아 밖으로 "이전"했습니다.


독립 드라이버

택시 서비스의 경우 inDrive가 등장하기 전에는 야쿠츠크에서 택시를 타는 것이 어렵고 비용이 많이 들었습니다. 옛날 방식대로 일이 진행됐고, 먼저 전화를 걸어 배차 담당자를 통해 차량을 예약한 뒤 운전기사가 도착할 때까지 오랜 시간을 기다려야 했습니다. 설상가상으로 통화를 잊어버리고 차량을 기다리는 시간이 모든 제한을 초과할 수도 있습니다.


또 다른 어려움은 설 연휴(국가의 주요 휴일, 2주간의 파티, 아무도 일하지 않음)였는데, 이 때 택시 서비스는 가격을 여러 번 인상하여 승객을 곤경에 빠뜨렸습니다. 2012년 겨울, 몇몇 똑똑한 사람들이 "야쿠츠크 독립 운전자 커뮤니티"라는 Vkontakte 그룹을 만들었습니다. 그 안에는 A지점에서 B지점으로 이동해야 한다고 표시하고 전화번호를 남겨둘 수 있습니다. 그러면 방금 그 길로 향하고 있던 친절한 운전자가 당신에게 전화하여 차량을 예약할 수도 있습니다. 여행이 끝나면 승객은 휘발유 비용을 충당하기 위해 운전사에게 돈을 남겨야 했습니다.


물론, 머지않아 사람들은 휘발유 가격 대신에 승차 비용을 지불하기 시작했습니다. 짧은 시간 동안 이 그룹은 큰 인기를 얻었고 점차 전통적인 택시 서비스를 중단하기 시작했습니다.

인드라이브. 초기

당시 Sinet의 이사인 Arsen Tomsky는 이 그룹을 자신의 사업 확장을 위한 유망한 아이디어로 보고 인수하기로 결정했습니다. 본질적으로 그 지점이 inDrive 존재의 시작을 의미합니다.


iOS 앱 첫 번째 버전의 아이콘입니다. 당시 iOS와 Android 앱의 아이콘은 서로 달랐습니다.


2013년 10월, 스타트업이 창업 5개월차에 접어들었을 때 저는 세 번째 개발자로 입사했습니다. 그 당시에는 앱의 Android 버전이 이미 출시되어 있었고 우리 직원들은 iOS 개발자를 찾고 있었습니다. 회사에 합류하기 전에 저는 작은 스타트업 스튜디오에서 1년 동안 iPad에서 어린이를 위한 대화형 책을 처음으로 모국어로 개발하는 일을 했습니다. 그 순간 나는 직업을 바꾸려고 생각하고 있었습니다.


나에게는 한 가지 큰 이점이 있었습니다. 당시 야쿠츠크에서는 보기 드문 MacBook이었습니다. 나는 이것이 Sinet에 취업할 수 있는 기회라고 생각했습니다. 저는 iOS 개발 경험이 없었지만, 어쩐지 (적합한 지원자가 없었기 때문에) 꿈에 그리던 회사에 취업하는 데 성공했습니다.


나의 첫 작업공간이자 나의 개인 맥북


iOS 개발은 기본이었습니다. 저는 Objective-C로 코딩했습니다. 이제 상황은 크게 변하지 않았습니다. 유일한 차이점은 이제 Objective-C 대신 Swift 가 일반적으로 사용된다는 것입니다. Android는 Java로 코딩되었지만 백엔드는 PHP로 작성되었습니다. 당시에 확립된 많은 것들이 오늘날 inDrive 코드베이스의 핵심으로 남아 있습니다.


당시 핵심 iOS 개발팀은 바로 저였습니다. 2015년에 두 번째 사람이 나와 합류했습니다. 2016년에 세 번째 직원이 채용되자 우리는 매우 빠르게 성장하기 시작했습니다. 그 당시에는 크로스 플랫폼 팀이 없었습니다. iOS, Android, 백엔드 개발 팀, QA 테스터만 있었습니다.


그 당시 인드라이브 운전자가 어떻게 탑승 요청을 받아들였는지 궁금합니다. 승객이 주문하면 인근 운전자가 동시에 요청 목록에서 이를 확인하고, 제안이 마음에 드는 사람은 이를 클릭하는 방식을 호출 기반 배열 이라고 합니다. 그 당시 특이한 점은 운전자와 승객을 셀룰러 통신망을 통해 연결했다는 것입니다! 때로는 여러 운전자가 동시에 동일한 승차 요청을 요청하는 경우가 있습니다. 통화 후, 우리는 승객에게 전화한 모든 운전자의 목록을 보여주어 가장 적합한 운전자를 선택할 수 있도록 했습니다. 전체적인 설정은 "먼저 전화하는 사람에게 순서가 주어진다"라는 원칙에 따라 작동하는 것 같았습니다. 이로 인해 주문한 상품을 수령할 시간이 충분하지 않다는 운전자의 고객 지원 불만이 제기되었습니다.



해당 화면에는 전화를 건 운전자의 전화번호 목록이 표시됩니다.



오랫동안 iOS가 안드로이드보다 주문확률이 훨씬 높다는 전설이 있었습니다. 인터페이스가 실제로 iOS에서 더 빠르게 실행되었기 때문에 여기에는 어느 정도 진실이 있었습니다. 우리는 오랫동안 다른 차량호출 서비스에서 흔히 사용하는 '콜리스' 주문 접수 프로세스를 도입하지 않았습니다. 타기 전에 전화. 분명히 그러한 전략에는 한계가 있었고 그 점에서는 매우 심각했습니다.


또한, 앱의 첫 번째 버전에는 "사용 가능한 드라이버"라는 흥미로운 탭이 있었습니다. 그것을 클릭하면 지도로 이동하여 이용 가능한 운전자를 찾고, 개인적으로 전화를 걸어 차량을 예약할 수 있습니다. 당연히 당시에는 아직 암호화된 연결이 없었습니다.


또한, 운전자를 찾는 세 번째 방법도 있었습니다. 탑승 요청(주문)을 생성한 후 지도에서 적합한 운전자를 찾고 개인 메시지를 통해 제안을 보낼 수 있었습니다. 이를 "맞춤형 주문"이라고 합니다.



주문을 생성한 후의 화면입니다. 승객이 운전사의 전화를 기다리고 있습니다. 여기에 있는 동안 특정 운전자를 선택하고 "맞춤 주문"을 보낼 수 있습니다.



요즘 남자들은 모든 것이 최대한 쉽고, 빠르고, 즐거웠던 시절을 가끔 그리워합니다. 리포지토리가 무엇인지 몰랐고 각 버전이 출시된 후 프로젝트 폴더를 보관하여 내 하드 드라이브(아직 수백 개의 아카이브가 저장되어 있음)와 Google 드라이브에 저장했습니다. 초기에는 Xcode의 프로젝트 이름이 startPage 였지만 제품 작업은 화이트보드에 직접 기록되었습니다.


저는 아직 iOS 개발의 기본 프로그래밍 패턴과 아키텍처에 익숙하지 않았습니다. 최종 결과는 Massive View Controller와 수십 개의 화면이 포함된 스토리보드의 스택이었습니다. 이것은 진정한 StackOverflow 프로그래밍이었습니다.


iOS 개발자는 여기에 설명된 고통을 이해할 것입니다. 화질이 아쉽지만 이 사진밖에 못 찾았어요


야쿠츠크를 넘어 확장

점차적으로 우리 스타트업 팀은 성장하기 시작했습니다. 새로운 사람들이 합류했고 최초의 간단한 프로세스가 등장했습니다. 2014년에 회사에는 이미 10명의 직원이 있었습니다. 우리가 회의에 참석하기 위해 노보시비르스크로 날아간 것은 바로 그때였습니다. 개발팀 전체가 우리 셋이었습니다. 이는 회사 역사상 또 하나의 중요한 이정표였습니다. 사하 공화국에서는 외부의 넓고 넓은 세상으로부터 고립된 느낌을 받았기 때문입니다. 이런 여행은 우리에게 있어서 큰 행사였습니다.


2013년 말에 우리는 Arsen Tomsky가 인수한 VKontakte 그룹의 창시자인 Sasha Pavlov와 합류했습니다. 그와 함께 우리는 다른 도시에서 출시하려는 첫 번째 시도를 시작했습니다. 어느 날 사샤는 운전사들과 이야기를 나누기 위해 사할린으로 날아갔습니다. 그는 홍보 팜플렛 몇 장을 인쇄해 쇼핑몰 주차장에서 나눠주기 시작했지만 경비원에게 쫓겨났다. 하지만 결국 사할린에서 성공적인 런칭을 하게 되었고, 곧바로 눈부신 성장을 보여주었습니다.


그런 다음 이르쿠츠크, 톰스크 등 러시아 북부 및 동부 도시에서 출시하기 시작했습니다. 이 지역은 기후 조건이 비슷하고 다른 주요 앱이 없다는 점에서 야쿠츠크와 유사합니다. 해당 도시에서는 앱이 거의 즉시 성장하기 시작했습니다.


우리는 작은 사무실에 앉아 "언젠가 우리가 Ykt.ru 보다 더 많은 돈을 벌게 될 날이 올 거라고 상상해 보세요."라는 공상을 하곤 했습니다. 우리는 웃었지만 실제로 그 순간은 매우 빨리 왔습니다.


우리 CEO는 항상 야쿠츠크와 관련된 것이 아닌 더 큰 이야기를 원했습니다. 그는 뼛속까지 기업가이며 항상 새로운 도전을 추구합니다. 그것은 우리에게 분명하고 논리적인 것처럼 보였기 때문에 아무도 우리가 하는 일을 왜 하고 있는지 의문을 제기하지 않았습니다.


우리 야쿠츠크 출신의 몇몇 사람들이 대기업과 얼마나 경쟁할 수 있는지 알아내는 것은 항상 멋진 일이었습니다. 당시 우리의 주요 경쟁자는 Taxi MaximYandex Taxi 였습니다. 우리는 아직 Uber 에 대해 생각하지 않았습니다. 하지만 곧 우리는 상황에 대해 많이 생각해야 했습니다. 관심이 있으시면 다음 게시물에서 이에 대해 더 자세히 말씀드리겠습니다.





PS 이것은 기사를 쓰는 나의 첫 경험이며 inDrive의 발전 역사, 내가 CTO가 된 방법, 우리가 직면하고 극복해야 했던 기술적, 비기술적 과제에 대해 더 자세히 쓰고 싶습니다. 따라서 여기에서 개선할 수 있는 부분과 향후 게시물에서 읽고 싶은 내용에 대한 피드백을 얻는 것이 좋습니다. 댓글로 공유해주세요!


PPS Sinet과 inDrive의 발전 이정표는 회사 CEO가 쓴 책 "inDriver: Yakutsk에서 Silicon Valley까지"에 자세히 설명되어 있습니다.