오늘이 지난 일 년을 채우는 마지막 날이라 키보드를 잡고 글을 한번 써보기로 했다. 아무래도 글 쓰는 데는 익숙하지 않아서 좀 쑥스럽긴 하다.
입사까지의 여정
이력서부터 최종 오퍼까지
쿠팡에 입사한 지 만 1년이 얼마 남지 않았을 즈음이었다.
2019년 6월 중순에 그랩과 계약된 헤드헌팅 업체로부터 JD를 받았다.
Grab+SKT의 합작사(JV)로 Grab GeoHoldings 가 설립되었고 초기 인력으로 합류하는 내용의 JD였다.
이력서는 넘겼지만 그렇다고 딱히 쿠팡 생활이나 방향성에 큰 불만이 있었던 건 아니었다.
- 네임 벨류가 있고,
- 원래 커리어인 GIS를 살릴 수 있고,
- 리딩 경험이 생겼으면 좋겠다.
라는 판단이었다.
여담이지만,
채용 사에서 과감하게 좋은 개발자를 찾아달라는 의미로 영어는 자격요건에서 배제했습니다.
라서 이력서를 낼 수 있었다. 내가 영어가 됐으면 이미 해외에 나가 있지 않았을까… (뒤에 기술하겠지만, 패착이었다)
사실 마일로 퇴사 후 프리랜서 생활 + 영어 공부 좀 하면서 해외로 뛰쳐나갈 준비를 하다가 덜컥 쿠팡에 합격하는 바람에 국내에 잔류하게 된 거지만.
어쨌든 코딩테스트를 보고, 기술면접을 보고, 컬쳐핏을 보고, 레퍼런스 체크를 했다. 짧지는 않은 기간이었다.
최종 오퍼는 10월 1일에 나왔고 아쉽게도 오퍼에 대해 재협상을 요청했지만 반영되지는 못했다.
기간이 길었던 만큼 에피소드도 하나 있었다.
기술면접을 본 직후에 느낌이 그다지 좋지는 않은 상황에서 모 카드사 쪽 헤드헌터에게 연락이 왔다.
금융권에는 딱히 뜻이 없었지만 불안해진 상태라 아무 생각 없이 이력서를 전달했고 면접이 진행되었다. 신기하게도 합격이 되었고 최종 오퍼가 나왔다.
사실 이쪽도 빠르게 진행된 건 아니었는데 어쩌다 보니 거의 같은 시기에 오퍼가 나와버린 바람에 나에게 선택의 시간이 오고 말았다..
엎친 데 덮친 격으로 쿠팡에서는 카운터 오퍼가 들어왔다.
그때 당시엔 나에게 뭔가에 씌인 느낌이라고 할까…
내 인생이 이렇게 순탄하게 풀릴 리가 없는데..?
내가 그렇게 귀한 몸이 아닌데..?
선택의 순간
Grab
오퍼가 생각대로 진행되지 못한 부분은 아쉽지만, 그 외의 것들은 마음에 들었다.
다른 한 가지 걱정거리는 사내문화가 어떻게 정착될지 모른다는 것.
Grab의 사내문화가 이식될지, 대기업 스테레오 타입의 사내문화가 들어올지는 알 수가 없었기 때문이다.
제일 마음에 드는 건 아무래도 내 마음대로 뭔가를 할 수 있을 것 같다는 느낌적인 느낌. 물론 지난 경험을 되짚어봐도 언제나 그렇게 흘러간 적은 없지만.
카드사
카드사는 개발 커리어에 큰 도움이 안 될 거로 생각했다.
개발보다는 관리가 더 많은 포지션이었고, 이쪽으로 이직을 하면 앞으로의 커리어패스는 포기하고 이곳에 알박기하게 될 거라는 느낌이 들었다.
예전에 BC카드 파견 갔던걸 생각하면 개발환경도 딱히 좋지는 않을 거라 예상했다. 면접때 물어봤더니 역시 마찬가지.
처우가 비교 불가 급으로 좋으면 선택지의 역할이 컸을 것 같은데, 그 정도로 드라마틱한 차이는 아니었다.
전문계약직으로 1년이 지나고 정규직이 되면 좀 더 오를 거라는 얘기를 듣긴 했지만 그래도 마음이 기울기에는 좀 부족한 느낌.
쿠팡
쿠팡 측의 카운터 오퍼는 꽤 달콤했다.
다른 조건도 몇 가지 붙기는 했지만, 그 조건이 이루어질지는 좀 의뭉스러웠다. 약속으로만 끝나고 현실의 벽에 부닥칠 것 같은 느낌이라..
입사한 지 오래되지 않았다는 게 제일 아쉬웠다. 최소 3년은 채우려고 했었는데…
여담이지만 쿠팡 직전 회사인 마일로도 회사 사정상 개발팀이 없어지면서 1년 반 만에 나오게 된 거라 더 아쉬웠다. 마일로도 오래 있고 싶었는데..
선택
이직에 이렇게 크게 스트레스를 받은 적은 처음이었다. (돌이켜보니 이직을 목적으로 퇴사한 경우는 첫 회사를 퇴사할 때 한 번뿐이었다)
퇴사가 입사보다 어렵다는 걸 체감한 이직이었다..
글 제목부터가 Grab이니 내 선택은 굳이 말하지 않아도 되겠지만,
- 리딩 경험이 필요할 때가 됐다.
- 새로 세팅되는 곳이니 내가 할 역할이 많을 것 같고 재미있을 것 같다.
- 가도 후회 안가도 후회라면 가고 후회하자.
정도가 그랩을 선택하는 데 큰 영향을 미쳤다.
경험상 카운터오퍼로 잔류하는 게 독이 될 가능성이 높다는 것도 한몫했다.
여담
입사 시점이 1월이라 아무 생각 없이 1월 2일 입사인 줄 알고 퇴사 절차를 시작했다. 뭔가 찝찝한 느낌에 다시 확인해보니 1월 20일 입사…
스프린트 한 번만 더 뛰게 해달라고 빌어서 2주를 더 일할 수 있었다.
12월 20일을 마지막 출근으로, 남은 연차를 모두 소진하고 1월 10일 퇴사. 쿠팡에서의 1년 5개월간의 짧은 여정을 마쳤다.
입사 이후의 이야기 - Timeline
1월 - 입사
2020년 1월 20일, 대망의 첫 출근을 했다.
사실, 그날 인력 세팅이 시작되는 것으로 생각하고 새로운 사람들과 잘 지내야지~ 하는 즐거운 마음을 안고 출근했으나.. 예상은 빗나갔다.
그 시점에는 피플 매니저 한 분만 19년 가을쯤 합류하신 상태였고, 개발 직군으로는 내가 첫 입사자였다.
동시 입사자가 몇 분은 더 계실 거라고 예상했지만 내가 첫 타자였다. 그걸 첫 출근날 알게 됐다.
SKT 합류는 한 달 정도 연기가 된 상황이었고 채용은 계속 진행 중. 그전까지는 혼자 그랩 시스템을 익혀두고 실무에 필요한 것들을 좀 알아두는 게 업무의 전부가 되었다.
시스템이야 쿠팡과는 큰 차이가 없었기 때문에 어렵거나 하지는 않았다.
본사 OT를 가야 했는데 혼자 가기엔 좀 외로울 거란 이유로 다른 인력들 합류 이후로 연기되었다.
2~3월 - 코로나
국내에 코로나가 본격적으로 터지기 시작했다. 더 디테일하게는 2월 18일에 신천지에서 첫 확진자가 나왔다.
분위기가 심각해지는 가운데, 본사에서 재택근무 명령이 떨어졌다. 다음날인 2월 21일부터 재택근무를 시작했다.
전사적으로 그랩 비즈니스 특성상 비상체제에 돌입하게 되었으며 신규채용 및 진행 중인 건들이 프리징됐다. 물론 이 상황에서 나는 하는 일이 없었다.
SDK 코드는 아직 전달받지 못했으며 그렇다고 본사 업무에 끼어들기도 어려운 상황이었다. (논의는 있었던 것으로 안다)
4월 ~ 5월
4월부터는 국내 분위기가 좀 나아져서 번갈아서 격일 출근을 하기로 했다. 물론 직원은 단 둘뿐이었기 때문에 출근하면 혼자였다.
아직 할당된 업무는 없었다.. 영어 공부 좀 하고 개발 공부 좀 하고 회사 문서 좀 보고..
5월쯤 되니 더는 안 되겠다 싶어서 CTO님과 미팅을 진행했다. 인수인계 미팅을 두어 번 가진 후 월말에 SDK 코드를 받을 수 있었다.
6월 ~ 8월
수습 기간이 3개월 연장되었다. 원래 6개월이 수습 기간인데, 당연하게도 난 지난 5개월간 딱히 한 일이 없었기 때문에 수긍했다. 뭐 불이익이 있는 건 아니니까.
채용 페이지는 다시 오픈되었고 채용이 시작되었으나 채용된 사람은 없다..
드디어 6월부터 업무가 시작됐다.
iOS용으로 지도 SDK를 포팅하기 시작했다. 기본적인 작업은 SKT 측에서 어느 정도 손을 댄 상태였기 때문에 비어있는 부분들을 채우고 버그들을 고쳐나가기 시작했다.
아쉽게도 SKT 쪽 Grab 담당자 중에 능숙한 iOS 개발자가 없었던 탓에 대부분 C++ 개발자가 다루기 쉬운 obj-cpp 로 이루어졌다.
비슷한 상황을 겪어본 사람은 알겠지만, C++의 냄새가 강한 코드였다. 마치 내 첫 iOS 프로젝트처럼… (주력 언어가 C++이었던 관계로 obj-cpp 에 template 과 STL까지 아낌없이 썼었다…)
어쨌든 빠른 런칭이 목표였기에 슬슬 달리기 시작했다. 기존 구조는 유지하고 미완성인 부분들 위주로 작업했다.
C++ -> obj-cpp -> Swift 로 이어지는 브릿징의 향연. 개다가 Swift 브릿징 때문에 헤더는 obj-c 스타일이어야 했다.
참고를 위한 Java 코드의 분석까지 여러 언어를 동시에 보니 머릿속이 꼬이고 말았다.
Swift 코드에 세미콜론을 붙여댔고, obj-c 코드에 세미콜론을 빼먹었으며, obj-c에서 펑션 콜을 위해 .을 찍어댔다.
우여곡절 끝에 8월 말, 첫 번째 임무를 완수했다.
이제 맨 위에서 이야기했던 영어가 이제 발목을 잡기 시작했다.. Geo팀의 위클리 미팅에 참여하기 시작했으며 슬랙으로는 각종 질문이 쏟아졌다. 영어가 짧아서 괴로웠다.
사람마다 억양이 제각각이라 알아듣기 어려웠다. 인도, 싱가폴, 인도네시아, 중국, 루마니아 억양들.. 그나마 슬랙으로 오가는 영어는 다행이었다. 번역기 돌리면 되었으니.
구글 번역 만세. 파파고 만세.
내 영어를 참고 견뎌주고 이해해준 팀원들에게 감사를.
9월 ~ 12월
신규채용에 내가 레퍼럴 넣은 사람들 모두 미끄러졌다.
그 사람들뿐만 아니라 그냥 채용된 사람이 없다..
몇 명은 쿠팡 동료에게 연락해 쿠팡으로 레퍼럴을 넣어줬다.
아쉽게도 채용되었다는 소식은 듣지 못했다.. 지켜주지 못해 미안해.
현재 사무실은 공용 오피스인 저스트코에 입주해있다. 코로나가 지속되고 채용은 늘어진 관계로 세 칸을 쓰던 사무실을 한 칸으로 줄였다.
그 중 남산 뷰가 끝내주던 사무실 두 칸을 반납했다. 남산 타워여.. 이제 안녕..
수습이 끝나고 정직원으로 업그레이드되었다. 다시 완전 재택근무가 시작되었다.
9월부터는 새 임무를 시작했다. 이제 네비게이션 SDK를 만들기 시작했다.
이쪽은 미리 작업된 부분이 없어서 오히려 편했다. 필수적인 C++ 브릿징을 제외한 모든 부분을 Swift로 짰다.
지도와 네비 모두 SDK Core는 Android/iOS 와 공유하기 때문에 코어 쪽은 큰 문제가 없는 한 손댈 일은 없었다.
Android 코드를 참고해 인터페이스를 만들고 코어와 연결하고, 지도와 네비를 엮고..
잘 알고 잘하는 일인데도 그냥 코드량이 어마어마하다 보니 예상보다는 시간이 오래 걸렸다.
그저 열심히 달리고 달렸다. 아마 이 기간이 제일 바빴을 거다.
나중에 개발 속도가 빠르다는 피드백을 받았다. 기분이 묘했다. 사실 원래 계획보다는 한 달가량 빨리 끝낸 거라 칭찬받을 만하긴 했다. 빠를 수밖에 없었던 이유가 좀 괴랄하긴 한데, 일단 혼자 작업했기 때문이라 코드리뷰가 없었고 테스트 코드를 넣을 수 없었기 때문에 빠를 수 밖에 없었다고 판단한다. 사실 미친 거다, 이건.
양심의 가책을 느끼며 하루에도 몇 번씩 내년에 완전히 갈아엎기로 맹세한다.
10월 즈음부터는 집에 있기 심심하면 출근을 했다. 대부분의 시간은 집에서. 집에만 있다가 죽을 것 같을 때 한 번씩.
남은 연차를 소진해야 했다. 하늘길, 바닷길이 모두 막힌 상황이라 연차 쓸 일이 없었는데.. 소진은 해야 했다.
게다가 일은 많았다. 속도를 올리는 수밖에 없었다. 어찌어찌 급한 일들을 마무리했다.
12월 14일부터 연말까지 남은 연차를 모조리 깔아보았다. 쿠팡을 퇴사하고 집에서 놀던 19년 연말과 비슷한 느낌이었다.
1월 - 현재
시간이 오래 걸리고 귀찮은 일들은 휴가 전에 모두 끝내둔 상황이라 1월에는 딱히 바쁜 일은 없었다.
QA 진행과 맞물려 QA 진행을 위한 샘플 앱을 만들고 버그를 수정하고 기능을 추가하는, 급하지 않은 작업들의 연속이었다.
이번 분기 내에 런칭 예정이라 완성도를 위해 몇 가지 작업을 하는 중이다.
1월부터 Performance Review가 시작되었다. Self evaluation 은 어찌어찌 썼는데, Provide feedback은 죽을 맛이었다. Stakeholder 들이야 협업을 했으니 Impact Strengths는 말 지어내기로 썼는데 Culture는 어려웠다. 특히 Impact / Culture 모두 Growth area 항목은 도저히 못쓰겠더라..
심지어 직속 매니저는 화상 1 on 1 한번이 전부. 업무적으로도 엮여 있지는 않지만, Feedback을 제출해야 했다. 꽤나 고통스러운 작업이었다.
쿠팡에서는 한글이었어도 정말 어려웠는데, 여기는 게다가 영어다. 역시 구글 번역 만세. 파파고 만세.
아직 신규 채용은 이루어지지 않았고 사실 언제 될지 모르겠다. 올해는 외롭지 않길..
진짜 회고를 시작해보자
Keep
- 회사생활은 외롭다는 것을 제외하면 만족한다.
- 혼자라서 가능했던 것이긴 하지만 코드의 오너쉽이 본인에게만 있어서 마음대로 주무를 수 있었다.
- 물론 그렇다고 시간이 무한정은 아니라서 원하는 대로 수정할 수는 없었다.
- 이 상황(신규채용이 되지 않은)이 유지되는 동안 v2 와꾸를 만들어야 뒤집지 못할 거다.
- 아직은 사고 친 적이 없다. 다행이다.
- 올해는 사고가 나지 않도록 하기 위한 구조 변경이 필요하다.
- 생각할 시간이 많아서 좋았다.
- 공부도 좀 하고..
- 구조도 좀 생각하고..
- 사람들 오면 어떻게 할지 생각도 좀 해보고..
- 올해 주어진 임무는 모두 완수.
Problem
- SDK Core 가 구조적으로 좋지 않아 보인다.
- 구조라는 게 아무래도 개인 성향 차이이긴 하지만 현재 SDK는 객관적으로 해결해야 하는 부분들이 존재한다.
- 비난하는 건 아니다. 오래 진행된 프로젝트들은 원래 그렇다. 히스토리를 모르는 입장에선 더욱더 그렇다.
- 모던하지 못하다.
- 아무래도 언어 자체의 한계도 있겠으나 레거시한 구조와 레거시한 코드들이 많이 존재한다.
- 사실 모든 문제는 런칭이 우선이었기 때문.
- 하고 싶은 작업들은 런칭 이후로 미뤄두었다.
- 이걸 바로 시작했으면 2021년 런칭도 어두웠다. 일정을 그 수준으로 미루는 건 내 권한으로는 안된다.
- 티켓 기반으로 일을 못 하고 있다.
- 나 혼자 쓸 보드가 없다.
- 코드 리뷰를 못 하고 있다.
- 해 줄 사람이 있어야지..
- 커뮤니케이션(영어..!)
- 지금 커뮤니케이션이 되고 있다는 것 자체가 매우 신기하다.
- 팀원들에게 애도와 감사를..!
- 외로움과의 싸움
- 그나마 한 명 있는 동료인 피플 매니저도 거의 일 년째 못 만났다.. 2월 20일이 마지막 만남..
Try
언어 변경하기
- C++은 아무래도 내 취향이 아니다.
- Swift / Kotlin Native / Golang / Rust 등 Modern Language 로 변경
- 아마도 Swift로 가겠지. 취향을 떠나서 여러 가지를 따져보면 결국 Swift가 제일 괜찮겠다는 생각이 든다.
- 추가되어야 할 바이너리 사이즈, 라이브러리 추가의 용이함 등.
- 일단 Swift와 Android가 잘 붙을지 확인이 필요
- 정 안되면 ABI로만 인터페이스 연결.
- 기본적인 펑션 콜이 아니라 ProtoBuf나 Socket 또는 내부 Http 서버를 구성해서 인터페이스 시키는 방식도 생각해봄 직하다. 퍼포먼스나 안정성 생각하면 리스크는 있겠지만.
- 위처럼 구성하면 iOS / Android 쪽 SDK 인터페이스도 심플하게 가져갈 수 있을 듯.
모던하게 갈아엎기
- 현재 코드가 보기 어렵거나 한 것은 아니나 낡은 느낌이 난다. 꼭 클래식 한 게 좋은 것은 아니다.
- 이런 절호의 기회에 갈아엎지 않으면 이후엔 갈아엎기 매우 힘들어진다.
- v2! v2!
- Testable.
- 현재 코드는 단위테스트를 하기 어려운 구조. 당연히 테스트 코드도 없다.
- Flexible
- DI도 당연히 안된다. 이에 대한 고려가 없다.
- 바꿔말해 DI 도입..
- A/B Test
- DI가 일단 되어야..
- rx 도입
- 아무래도 시대를 거스를 수 없다. 미래의 팀원에게 학습이 좀 필요하긴 하지만 선언형 프로그래밍의 세계로 빠질 때가 되었다.
- 2020년 작업을 시작하기 전에 노렸던 효과는 제대로 본 것 같다.
- 현재 SDK 코어 구조 파악하기가 목표였다.
- 베이스 구성은 포팅 과정동안 확실히 파악한 셈.
OpenGL 버리기
세 가지 선택지가 있다. 깊은 고민이 필요하다. 일단 OpenGL은 Apple에서 Deprecated시켰기 때문.
- Google Angle Project의 fork인 MetalAngle사용하기.
- GoogleAngle 에서 iOS Metal 지원이 제대로 되는지 확인 필요. 안되면 MetalAngle.
- OpenGL의 API를 사용하되, 백엔드로 Metal을 이용.
- Vulkan 사용하기
- 해본 적 없음. (사실 3D 자체를 해본 적이 없음. 그나마 OpenGL은 기존 코드를 공격적으로 이용하면 어떻게든 될 텐데…)
- iOS에서는 Vulkan -> Molten 으로 Metal을 이용.
- OpenGL보다 학습곡선이 조금 높다고 들었음.
- 그냥 OpenGL ES 그대로 쓰기
- Angle이 예상외로 답이 안 나오는 상황이면 선택 가능. 물론 Deprecated의 리스크를 안고 가야 함.
- 위험할 때쯤엔 사실 Angle이 업데이트되면서 해결되긴 할 듯.
CI / CD 태우기
- 본사와 논의 필요
- 지금은 빌드 머신을 어찌해야 할지 모르겠다.
Logging
- 이쪽에서도 별도의 로깅이 필요하다.
- 지표를 뽑기 위한 목적이 큼
영어 공부
공부를 안 하고 있는 건 아닌데.. 잘 늘지 않는다. 영어는 역시 영원한 숙제인가..
결론
- 널럴하다 빡세고 외롭고 증발한 한 해였다.
- 프로덕트는 대승적으로 밑바닥부터 새로 짤 예정이다.
- 영어 공부 빡세게.
- 올해도 화이팅.