무스펙 지방대 비전공자가 배달의민족 리드 개발자가 되기까지

조회수 2020. 11. 05. 05:00 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

'하루키의 법칙'으로 수많은 악조건을 뚫어낸, 배달의민족 이동욱 리드 개발자

"무슨 생각하면서 (스트레칭을) 하세요?" "무슨 생각을 해... 그냥 하는 거지" 2009년 방영된 MBC 특집 프로그램 <퀸연아! 나는 대한민국이다> 중 한 장면입니다. 종종 동기부여용으로 여기저기 돌아다니곤 하는 김연아의 대표 '짤'인데요.


‘인간의 실수는 끝이 없고, 같은 실수를 반복한다’라는 말이 있듯 인간은 유혹에 끊임없이 빠지는 존재이기에 그처럼 준비와 연습을 꾸준하게 실천할 수 있는 초연함을 갖춰야 멈추지 않고 성장할 수 있는 것 같습니다. 여기에 재능까지 더해졌을 때 우리가 흔히 말하는 ‘전설’이 탄생하는 것일 테고요.


배달의민족의 리드 개발자 이동욱 님은 그 초연함을 코딩하는 데 적용해서 지방대, 비전공, 무스펙이라는 불리한 조건을 보기 좋게 깨부쉈다고 하는데요. 매일 정해놓은 시간만큼은 꼭 코딩을 하며 자신만의 일하는 근육을 기르고 있는 그의 이야기를 함께 들어보시죠.

Q. 자기소개 부탁드릴게요.


안녕하세요, 우아한형제들의 배달의민족*에서 정산 시스템 개발 파트장으로 일하고 있는 7년 차 자바 백엔드 개발자 이동욱입니다.

* 배달의민족은 우아한형제들의 제품명이나, 이하 본문에서는 친숙도를 고려해 회사명이 아닌 제품명으로 회사를 지칭하고자 한다.

Q. 우아한형제들에 오기 전까지 어떤 회사를 거치셨나요?


첫 회사로 SI(System Integration, 시스템 통합)* 회사에 다녔습니다. 그런데 애초부터 목표가 SI 회사는 아니었어요. 지방대 출신 무스펙 비전공자인 개발자로서는 선택의 여지가 없었죠. 6개월간의 국비 교육 후 1년 6개월간 학교를 졸업하고 취업 준비를 해서 SI 회사에 바로 가는 게 최선이었어요.

* 전산시스템의 기획, 개발, 유지보수, 운영을 대신 해주는 용역의 형태를 띠는 업종으로, 시장 규모가 커 많은 개발자가 몰리면서도 산업 구조, 직원 처우에 대한 문제로 '개발자의 무덤'으로 불리기도 하는 분야다.


그 회사에서는 짧은 시간 안에 얼마나 많은 게시판 페이지를 만드느냐가 굉장히 중요한 평가 척도였습니다. 고객이 원하는 서비스를 만들어서 납품하고 다시 나와야 하는 형태로 일했고, 그러다 보니 제 실력을 늘리는 데 한계가 있겠다 싶어 빨리 다른 회사에 가야겠다고 생각했어요.


그때 제가 신림동에서 자취를 하고 있었는데요. 고시원 카페 같은 곳이 많아서 매일 아침 2시간, 주말을 이직 준비에 다 쏟아부었습니다. 전공자가 아니다 보니 전공 지식을 쌓기 위한 온라인 수업이나 알고리즘 테스트 같은 것을 많이 들었는데요.


결국, 신입으로 한 번, SI 회사에 다니면서 두 번 추가 지원한 끝에 자체 서비스를 하고 있는 포털 회사인 줌 인터넷(이하 줌)으로 이직할 수 있었습니다.

Q. 줌에서는 어떤 경험을 하셨나요?


되게 놀라웠던 게 회사에 처음 가자마자 2주짜리 파일럿 프로젝트를 주더라고요. 질문하지 않고 혼자 힘으로 서비스를 하나 만드는 과제인데요.


다 만들고 나서 모든 개발자가 모인 데서 한 세 시간 정도 코드 리뷰를 받았습니다. 그동안은 제가 만든 기능이나 화면으로 평가를 받았는데, 줌에서는 철저하게 코드만 놓고 평가하더라고요. 이 코드로 발생할 수 있는 문제가 무엇인지, 좋은 코드는 무엇인지에 관해 굉장히 집요하게 리뷰해주셨고요.


말로 뺨 맞는다는 느낌마저 받을 정도였습니다. '아, 내가 이런 것도 몰랐구나' 싶은 부분도 있었고요.


열등감까지 느꼈는데요. 전 회사에서 1년 정도 공부하고 온 상태였는데도 저와 같이 입사하신 분 중에 개발을 한 번도 안 해보고 대학 졸업하고 바로 오신 분과 제가 크게 다르지 않은 평가를 받았거든요.


어쨌든 줌에서 일하면서 여기가 진짜 서비스를 하는, 개발 문화를 갖고 있는 회사임을 느꼈습니다. 그때부터 공부하는 방향이 많이 바뀌었는데요. 화면을 빨리 만드는 건 당연히 갖춰야 할 덕목이고, 빨리 만들면서도 어떻게 하면 더 확장성 있는 구조로 개발할 수 있을지를 공부하게 됐던 거 같아요.

Q. 배달의민족에는 어떻게 합류하게 되신 건가요?


줌에 한 1년 6개월 정도 다니고 있을 때, 제가 강의형 스터디를 많이 열었는데요. 모르는 분들을 온라인으로 모집해서 오프라인에서 제가 그분들에게 특정 기술이나 프로그램 언어를 가르치는 식이었습니다.


근데 회사의 후임들을 포함한 많은 분이 이미 강의했던 내용에 관해 질문하는데, 계속 답변하는 게 귀찮아서 아예 블로그에 정리를 좀 해놨었는데요. 그 내용을 배달의민족의 팀장님 중 한 분이 보시고 저에게 페이스북 메신저로 연락을 주신 겁니다.


"동욱 님, 블로그 잘 보고 있습니다! 그런데 혹시 지금 저희 회사에서 주니어 개발자 채용을 하고 있는데, 지원해볼 생각 없으신가요?"


사실 제 목표 중에 배달의민족은 없었습니다. 포털을 서비스하는 회사에 다녔다 보니까 그랬던 것 같아요. 백엔드 개발자라면 당연히 네이버 메인 혹은 카카오톡처럼 대량의 트래픽이 발생할 수 있는 서비스로 가야 한다는 생각이 강했죠.


배달의민족을 떠올렸을 때는 '여기서 트래픽이 발생하나?' 싶었습니다. 일단 저는 그때까지 한 번도 안 썼거든요. 제 주변에 이 앱을 쓰는 사람이 없는데, 가서 커리어를 잘 성장시킬 수 있을지 의문이었어요.


그런데 한편으로는 그 팀장님을 비롯한 제가 세미나에서 많이 뵈었던 분들, 저에게 많은 가르침을 주셨던 발표자들이나 블로그 주인분들이 배달의민족에 많이 계셨습니다. 그때 당시에 다들 배달의민족으로 사람들이 막 모이던 시절이었거든요.


저도 은연중에 '아 나도 저런 사람들이랑 한번 같이 일해보면 좋지 않을까?'라고 생각해서 한번 시도해 본다는 마음으로 일단 합류했었죠.

Q. 배달의민족에 입사하고 나서 초기에 어떤 감상이 들었나요?


제가 배달의민족으로 이직했을 때가 2016년 12월이었는데요. 배달의민족은 한 달에 한 번씩 전사 발표를 합니다. 이번 달에는 전월 대비 목표치를 얼마나 달성했고, 매출과 거래 금액을 어느 정도 달성했는지를 직원 모두에게 공유합니다.


근데 전 회사에 있을 때와 비교가 안 될 정도로 엄청나게 높은 수치를 달성하더라고요. 매달 성장하는 걸 보며 '와, 저게 되나? 이미 많이 큰 것 같은데, 저 목표치를 달성할 수 있나?'라고 생각할 때가 있었는데, 배달의민족은 항상 그 목표치를 초월했습니다.

Q. 또 현격히 달랐던 배달의민족만의 특징으로는 무엇이 있었나요?


전에 일했던 회사에서는 개발에 집중하면 아무도 말을 안 걸었습니다. 각을 딱 잡으면 그때부터 정말 아무도 말을 안 걸어요. 근데 여기는 반대더라고요. 잡담이 경쟁력이라고, 옆에 남는 자리가 있으면 항상 의자를 둬야 해요.


그러면 저는 개발을 막 하다가도 누가 의자에 앉아서 뭔가 물어보면 대답을 해줘야 해요. 처음에는 적응하기 어려웠어요. 텐션이 올라와 있는 상태에서 가능한 방식인가 싶었는데, 오히려 핑퐁이 빨리 되어서 좋더라고요.


바로 가서 물어보고, 답변받고, 또 제 업무 보고. 답변 준 사람도 저에게 또 와서 물어보고 바로 일을 진행하고. 막상 경험해 보니까 제 예상과 다르게 빠르게 피드백을 받는 게 생산성 측면에서 훨씬 좋다는 걸 알게 됐죠.

Q. 배달의민족의 성장하는 과정, 생산성 뛰어난 사내 문화 속에서 동욱 님은 어떤 경험을 하며 성장하셨나요?


제가 처음 배달의민족에 왔을 때 하루 주문 건수가 10만 건이었습니다. 당시 정산 시스템이 그 정도 양을 처리하려면 16시간 정도 필요했어요. 한 번이라도 처리에 실패하면 소요 시간이 32시간이 되어버리니까 하루가 지나가 버리는 상황이었죠.


원래부터 그랬던 건 아니었습니다. 처음에는 5분에서 10분 사이에 정산이 끝났는데, 주문이 점점 늘어나면서 16시간인 걸리는 시스템이 되어버린 거였어요. 이 시스템을 완전히 갈아엎어야 하는 상황이었죠.


근데 그때의 시스템을 조금만 개선하는 정도로는 16시간이 10시간으로 줄어들 수는 있어도 다시 5분으로 돌아갈 순 없었습니다. 그러려면 아예 새로운 기술, 구조, 그림으로 다시 만들어야 했어요.


그전까지는 돌 던지고 활 쏘면 전투에서 이길 수 있었는데, 이제는 총을 쏴야 이길 수 있게 된 겁니다. 말을 타고 다니다가 비행기가 날아다니고 탱크가 움직이는 상황에 놓인 셈이었어요.


전쟁의 판도가 너무 순식간에 바뀌어버린 건데, 업무 시간에 써야 하는 기술을 열심히 발휘하는 것만으로는 부족하겠다 싶더라고요. 그래서 업무 시간 외에 남는 개인 시간에는 또 언제 바뀔지 모르는 전쟁의 판도에 대비해 다음에 필요할 기술에 관한 많은 공부를 하고 있습니다.

Q. 그럼 현재 배달의민족의 주문 처리 시스템은 원활한가요?


네, 지금은 하루 주문이 100만 건이 넘는데도 처리하는 데 5분밖에 걸리지 않는 시스템으로 구조가 완전히 바뀌었습니다. 개발자들이 기존 시스템에서 사용하지 않았던 기술들을 전부 다 적용했죠.


저는 이런 작업이 달리는 자동차의 바퀴를 바꾸는 작업이라고 생각해요. 저희 회사는 24시간 서비스를 하는 회사이니까요. 이 자동차가 멈추지 않는 한도 내에서 계속해서 튜닝해야 하는 거죠.


근데 배달의민족은 지금도 목표치를 초과 달성하고 있는 회사이고, 트래픽이나 데이터도 그만큼 더 발생하고 있어서요. 시간이 지나면 자동차의 바퀴를 바꾸는 정도가 아니라 타고 있던 자동차를 갑자기 비행기로 변신시켜야 하는 상황을 경험할 수도 있을 것 같습니다.

Q. 말씀 중에 '공부'라는 단어가 참 자주 나오는 것 같은데요. 동욱 님의 블로그에 들어가 보면 개발자로서 끊임없이 공부하며 노력하신 흔적이 역력해요.


제 블로그의 타이틀 '기억보다 기록을'은 저를 나타내기에 가장 좋은 말인 듯합니다. 어떻게 보면 제가 쌓아온 개발자 커리어를 관통하는 것 같기도 하고요.


저는 제 머릿속에 있는 생각, 남들이 했던 말들을 기록으로 남기지 않으면 나중에 희미해진다고 생각해요. 그래서 저는 세미나에 가서도 속기사처럼 모든 내용을 타이핑하고, 그날그날 회사에 있었던 일도 블로그에 정리해 둡니다.


공부했던 내용, 회사에서 해결했던 문제, 앞으로 하고 싶은 일, 하다못해 개인적인 잡담까지 전부 기록하는데요. 쌓다 보면 그 기록들이 저를 온전히 표현할 수도 있지 않을까 싶습니다.

Q. 1일 1커밋*을 3년째 유지하고 계신 것도 비슷한 차원일까요?

* 데이터베이스 또는 프로그램 소스의 변경 내용을 메시지와 확정하는 행위


네, '내가 코드 작업을 했습니다'를 표기해주는 커밋 작업을 3년째 매일 하고 있는데요. 사실 코딩 실력은 객관적인 지표로 얼마나 늘었는지를 나타내기 어렵습니다. 그나마 1일 1커밋 같은 방법이 나름의 지표가 되어주죠. 업무 시간 외에도 개인적인 공부, 사이드 프로젝트를 했음을 증명해주니까요.


심지어 재작년 초에 갑상선 암을 앓았을 때도 1일 1커밋을 멈추지 않았습니다. 병원에 입원해서 수술할 것을 대비해 미리 코드 작업을 해놓고, 작업물이 차례대로 깃허브*에 업로드될 수 있게끔 시스템을 구축했었죠. 그러고 나서 퇴원하자마자 다시 1일 1커밋을 이어나갔고요.

* 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스

Q. 그간 개발자로서 열심히 공부하며 노력해 온 원동력이 무엇이라고 생각하시나요?


특별한 원동력이 있다기보다는 비전공자, 지방대 출신, 무스펙인 개발자가 무턱대고 '나 네이버, 다음 갈 거야'라고 밀어붙여서는 답이 없잖아요. 타고 싶은 게 KTX여도 제가 무궁화호를 탈 수 있는 돈밖에 없으면 무궁화호라도 타고 가야 하죠. 그뿐입니다.


그렇다고 제가 늘 공부하는 건 아니에요. 저는 하루 목표치의 80% 정도를 달성하고 나면 나머지 20%를 제 마음대로 활용합니다. 아침에 출근해서 2시간 공부한 정도로 오늘 할당량을 충분히 채웠다 싶으면 저녁 시간은 별다른 계획을 안 잡아요. 술 먹고 싶으면 술 먹고, 웹툰 보고 싶으면 웹툰 봐요.


대신 제가 좋아하는 무라카미 하루키의 생활 패턴처럼 꾸준하려고 합니다. <직업으로서의 소설가>를 보면 무라카미 하루키는 비가 오나 눈이 오나 하루에 네다섯 시간씩 꼭 글을 쓴다고 해요. 그 책에 이런 대목이 있거든요.


"나는 매일매일 20매의 원고를 씁니다. 아침 일찍 일어나 커피를 내리고 네 시간이나 다섯 시간, 책상을 마주합니다. 하루에 20매의 원고를 쓰면 한 달에 600매를 쓸 수 있습니다"


만약 50~60년 정도 자기 일을 할 거면 그렇게 일을 계속할 수 있는 습관을 들이는 게 좋다고 생각해요. 일주일, 한 달, 1년 정도를 오버하는 건 중요하지 않은 것 같고요.


저는 이런 신조로 접근했기에 제가 가진 능력을 조금씩 늘려서 가고 싶었던 자체 서비스 회사로 이직할 수 있었다고 생각해요. 커리어를 만들어오며 큰 스트레스나 번아웃 증후군도 겪지 않을 수 있었던 것 같고요.

Q. 동욱 님에게 좋은 영향을 주는, 실력 있는 개발자는 대체로 어떤 타입인가요?


두 가지 유형이 있다고 생각합니다. 첫 번째로 사냥개 같은 집요함이 있는 분들이 개발 실력이 좋다고 생각해요. 제 첫 후임이 그런 케이스인데, 그분은 경력이 6개월밖에 안 된 신입이었는데요.


그런데도 경력 5~6년 차도 해결하기 어려운 문제를 줬을 때 내가 아니면 해결 못 한다는 생각으로 끝까지 물고늘어지더라고요. 어떻게든 해결해서 결과물을 가지고 오고요. 그런 모습이 저에게 이 사람과 함께라면 어떤 문제든 무조건 해결할 수 있을 거라는 안정감과 확신을 주는 것 같습니다.


두 번째는 글 잘 쓰시는 분들처럼 코드를 알아보기 쉽게 작성하시는 분들이에요. 의외로 누구나 이해할 수 있게 코드를 작성하는 사람의 수가 많지 않거든요. 이분들은 당연히 있어야 할 것들이 당연한 위치에 있게 만들어서 개발자로서 함께 일하기 참 좋은 것 같습니다.

Q. 앞으로 개발자로서의 목표는 무엇인가요?


예전에는 목표를 정하는 걸 되게 좋아했습니다. 줌이라는 포털 회사로 이직할 때도 그랬어요. 일단 목표를 정하고, 한눈팔지 않고 끝까지 달리는 게 중요하다고 생각했거든요.


근데 어느 순간 생각해보니까 제가 경험해 본 범위 안에서 나오는 게 목표 아닌가 싶더라고요. 즉, 제 경험 밖의 무언가가 벌어지는 건 어려운 셈이죠. 목표를 정하면 다른 데를 안 쳐다보고, 제가 생각한 그 길만 가게 되니까요.


이제는 목표를 정하기보다 일단 저지르는 게 중요하다고 생각합니다. '그냥 계속 하지 뭐' 이런 식으로 별 의미를 안 두고 하는 게 더 괜찮은 것 같아요. 하루하루 열심히 하면서도 그때그때 하고 싶은 것을 다 하다 보면 기회가 오는 거 아닌가 싶습니다.


배달의민족만 해도 그래요. 처음에는 포털 회사에 비해 너무 작은 회사라고 생각해서 이직 생각이 없었지만, 와보니 저에게 많은 기회가 있었죠. 덕분에 개발자로서 실질적으로 성장할 수 있었고, 다른 좋은 개발자분들도 만날 수 있었습니다. '한번 해보자'라는 마음이 좋은 성과로 이뤄진 거예요.


그래서 목표는 없습니다. 그냥 하루하루 열심히 살고, 전체적인 커리어를 제멋대로 가져가는 것을 생각할 뿐입니다.

* 본 아티클은 2019년 12월 공개된 <지방대 개발 비전공자가 배달의민족 리드 개발자가 되기까지>의 내용을 바탕에 두고 있습니다.

👆🏻지방대 출신 무스펙 비전공자에서 '하루키의 법칙'으로 배달의민족 리드 개발자가 된 이동욱 님의 이야기를 영상으로도 만나보세요.


글·편집 김정원

melo@eoeoeo.net






EO(Entrepreneurship & Opportunities)


이 콘텐츠에 대해 어떻게 생각하시나요?