이동욱 배달의민족 개발자 “개발자는 문제 해결사, 재능이 전부가 아니다”
[개기자의 개터뷰 #9]
개발하는 기자, 개기자. 오세용 기자가 개발자 인터뷰 시리즈를 연재합니다. 비즈니스를 이해하고, 실제 프로덕트를 만드는 필드의 개발자를 소개합니다.
아홉 번째 인터뷰이로 이동욱 우아한형제들 개발자를 만났습니다. 이동욱 개발자는 우아한형제들에서 배달의민족 포인트 등 결제 시스템 백엔드를 담당하고 있습니다. 마소 394호 필진 그리고 ‘마소콘 2018’ 스피커인 이동욱 개발자를 개기자가 인터뷰했습니다. 이동욱 우아한형제들 개발자를 소개합니다.
– 자기소개 해달라.
블로그에 글쓰는걸 좋아하는 6년차 개발자다. 배달의민족에서 결제, 정산, 포인트 서비스 백엔드를 담당한다. 돈에 관련된 기능을 개발한다고 보면 된다.
– 팀원은 몇 명인가?
10명이다. 파트당 2~3명씩 4개로 나눴다.
– 동욱님은 어느 파트인가?
정산 파트와 포인트 파트. 2개 파트에 소속돼있다.
포인트는 나 혼자 담당하고, 정산은 나 포함 3명이다.
– 오! 나 배달의민족 앱에서 포인트 1천 점 모아서 썼다. 그거 동욱님이 만든 코드인가?
그렇다.
감사합니다 고객님. 핫핫핫.
– 파트 2개에 소속 되도 되나?
파트는 팀 안에서 그냥 만든 거다.
포인트는 3명이 개발했다. 나머지 2명은 결제 파트에 소속돼있다. 결제 파트가 일이 많아서 포인트는 내가 많이 담당하고 있다.
– 개발, 재밌나?
그럼! 당연히 재밌다. 난 컴퓨터 비전공자다. 4학년 2학기 때 소프트웨어 분야로 전환했다. 4학년 여름방학에 1년간 휴학하고 서울 교육센터에 가서 공부했다. 그 뒤로 개발자로 일하게 됐다.
내가 원했던 직업을 선택한 것이다. 난 개발 너무 재밌다.
– 구체적으로 뭐가 재밌나?
레벨업 하는 느낌이 든다.
일을 하면서 스스로 성장하고 있다는 느낌을 받는다.
나 게임 좋아한다. 게임을 할 때도 반복작업, 일명 ‘노가다’라고 해도 12시간 이상 계속할 수 있는 게임이 있지 않나? 개발도 비슷하다. 스스로가 성장하고 있다고 생각하니, 지치지 않고 계속할 수 있다.
– 노가다? 개발은 노가다인가?
음… 노가다는 아니지만, 개발자가 창의적인 직업이라고는 생각 안 한다. 내가 생각하는 창의적인 직업은 미술, 음악 같은 예술 쪽?
개발자는 내가 알고 있는 지식 기반하에 문제 해결하지 않나? 문제 해결사에 더 가까운 것 같다.
문제를 찾는 건 사업가가 하는 일이다. 개발자는 사업가가 발견한 문제를 해결하는 사람이다.
창의적이라고 하면 사람이 재능에 기댄다. 개발도 재능이 중요하지만, 전부는 아닌 것 같다.
– 개발자는 뭐가 중요한가?
개발자는 개발이 취미인 사람이 좋다.
스포츠 선수는 경기 시간보다 연습 시간이 더 길다. 1주일 연습해서 시합 한 번 하는 정도?
개발자도 거기에 가깝다고 본다. 회사에 일하는 건 이미 연습한 것으로 결과를 내는 시간. 회사에서 결과를 내려면 쌓아둔 게 있어야 한다.
– 그래서 취미로 개발 공부하는 사람이 유리하다?
맞다.
– 동욱님은 개발이 취미인가?
음… 개발이 취미라고 하면 좀 건방져 보일 수 있는데…
솔직히 말하면, 남는 시간엔 카페에서 코딩한다. 코딩하고, 글 쓴다.
– 게임은 안 하나?
요즘 안 한다.
– 좋아한다며…
개발자로 일하기 전에는 롤(리그 오브 레전드) 많이 했다.
이 게임이 한 번 시작하면 2~3시간 소요된다. 그래서 못하겠다. 공부해야 한다.
– 꽤 잘했나 보다. 등급이 뭐였나?
진짜 옛날이었다. 2013년도에 ‘플레티넘1’이었다.
등급이 많았던 때가 아니다. 전적 사이트에서 상위 4%였다.
– 비전공자에서 개발자가 된 이야기 좀 더 자세히 들려달라. 원래 전공이 뭐였나?
전기전자였다.
– 전기전자는 소프트웨어 개발과 겹치는 부분 있지 않나?
아니다. 소프트웨어 할 것 같지만, 통신, 전자회로 이런 쪽이었다. 납땜하고… 코딩은 관련이 없었다.
자료구조, 알고리즘 등은 소프트웨어 공학 전공을 듣고 그랬다.
– 1년 휴학하고 1년 내내 컴퓨터 공부했나?
학교는 구미, 집은 대구였다. 주변에 국비 학원도 없었다.
유명한 학원 다 서울에 있었다. 서울에 올라와서 학원에 다녔다. 개인 공부하면서, 스타트업 3개월 정도 경험도 하고, 스터디도 하고… 그렇게 1년 공부하고 복학했다.
– 그리고 커리어를 시작했나?
복학 후 졸업작품으로 나 혼자 게시판을 만들었다. 다른 친구들은 로봇 만들었다. 교수님들이 다들 날 지도하지 않으려 했다. 겨우 졸업작품 전시에 참가했다.
근데 취업이 안 되더라. 그 뒤로 5학년을 다니며 취업 준비를 하다가, SI 회사에 들어갔다.
– 힘들게 SI 회사에 들어갔는데, 재밌었나?
다이내믹… 했다.
SI 회사 갔을 때 큰 착각이 발주 금액이 높은 프로젝트가 내 커리어에 좋다고 생각했다. 하지만 신입이 큰 프로젝트에 가면 사용자 테스트, 문서 만들고 그랬다.
코딩 안 시켜주더라. 테스트만 3개월 하고 그랬다. 10개월 다니다가 퇴사했다.
– 어디로 갔나?
포털사이트 줌(ZUM)으로 갔다.
– SI에서 가기 쉽지 않았을 텐데?
SI 회사 합격 날부터 계속 이력서 썼다.
2년 차 이하는 중고신입으로 지원할 수 있다 생각했다. 합격 한 날도 이력서 쓰고, 상반기 하반기 다 썼다. 퇴근 후 코딩 테스트도 보러 다니고 그랬다.
4학년 2학기부터 2년 반 동안 서비스 회사에 이력서를 냈다. 가고 싶은 곳에 이력서를 다 써봤다.
그러다가 줌에 들어가게 됐다.
– 회사 다니면서 이력서는 언제 준비했나?
SI는 야근이 언제 끝날지 모르니 무조건 아침에 일찍 출근해서 코딩테스트, 스프링 등 계속 공부했다.
회사 출근 시간이 9시였는데, 7시 반까지 갔다. 매일 5시 반에 일어나서 6시에 집을 나왔다. SI 시절 10개월 동안 매일 그랬다.
회식을 3~4시까지 해도 매일 그렇게 했다.
– 주말 출근은 없었나?
주말 출근 있었다. 그래도 계속 공부했다. 아예 회사에서 밤새고 일어나 아침에 공부하기도 했다.
– 대단하다… 개발자로서 자괴감 안 들었나?
… 엄청 많이 들었다.
친구랑 같이 원룸에서 살았는데, 내가 술 마시고 퇴근해서 난리 치고 그랬단다. 난 기억이 나지 않는다. 같이 살던 친구가 무슨 일 난 줄 알았다더라.
2년 안에 SI 탈출 못 하면 집으로 내려가려 했다. SI 개발자는 내가 원했던 게 아니었다.
– 뭘 원했나?
내 기술력이 느는 게 보이고, 같이 일하는 사람들이 항상 개발 이야기를 하고. 그런 것을 꿈꿨다.
그런데 SI 회사에서는 영업이 더 중요하니 개발 공부하지 말라고 했다. 나중에 PL(Project Leader), PM(Project Manager) 되면 제안서 발표해야 하니, 그런 걸 준비하라고 했다.
– … 고생 많았다. 줌 들어갔을 때 기분이 어땠나?
너무 좋았다.
– 끝인가?
음… 그냥 좋았다.
개발 세미나, 개발 스터디에서 SI랑 서비스 회사 비교를 많이 들었다. 그래서 커리어 걱정이 많았다.
서비스 회사에 입사한 게 너무 좋았다.
– 줌에 얼마 있었나?
딱 2년 채웠다.
– 줌에서도 계속 이력서 넣었나?
아니다. 줌에서는 만족스러웠다.
일단, 시니어가 별로 없었다. 덕분에 주니어가 많은 트래픽을 다루는 경험을 할 수 있었다. 주니어를 중심으로 일하는 것도 많았다.
당시 병역특례 개발자가 많았는데, 정말 잘하는 사람이 많았다. 줌 초창기 기능을 그 사람들이 많이 만들었다. 그 사람들에게 참 많이 배웠다.
– 그렇게 좋았는데 왜 나왔나?
배달의민족에서 연락이 왔다.
– 어떻게 알고 왔나?
줌에 있을 때, 내가 알고 있는 건데 문제가 반복해서 발생하면 계속 삽질을 하더라. 그래서 에버노트에 기록했다. 그런데 기록도 무의미하더라 단편적으로 문제 해결방법만 쓰니까 그런 것 같았다. 정확히 이해하지 못하고 해결할 때도 많았다.
그래서 퍼블릭 블로그에 누구나 이해할 수 있게 문제와 해결방안을 쓰기로 했다. 나를 위해서.
그리고 1년이 지났다. 당시 내가 좋아하는 연예인 개발자들이 배달의민족으로 많이 가더라. 그중 많이 배우고 싶던 개발자가 있었는데, 페이스북 메신저로 연락이 왔다. 그렇게 인연이 됐다.
– 그게 누군가?
김영한 님이다. JPA(Java Persistence API)로 우리나라에서 제일 유명한 사람이다.
– JPA가 뭔가?
ORM 기술이다. 자바를 객체지향으로 짜면, JPA가 뒷단에서 DB를 다뤄주는 것이다.
– 지금 배달의민족에 온 지 얼마나 됐나? 많이 성장했나?
2년 좀 넘었다.
정말 많이 성장했다. 기회가 될 때마다 하는 얘긴데, 백엔드 기준으로는 일정 규모 트래픽이 나와야 기술적 도전을 할 수 있다.
리눅스, 데이터베이스, 인프라 등 기술적 도전을 하려면 서비스가 성공해야 한다. 트래픽이 높으면 정말 공부할 게 많다.
– 어떤 부분에서 성장했나?
테스트 코드와 객체지향, 클린코드 등 기술적으로 많이 늘었다.
비기술적으로는 프로젝트를 좋은 방향으로 가게 하는 법이라고 할까? 여러 팀이 있을 때 A라는 방향으로 가는 게 맞다고 하자. 하지만 우리 팀 입장에서는 그게 손해다. 하지만 전체로 봤을 땐 그게 맞는다면 간다.
반대 관점에서도 다른 팀이 손해면, 시니어들이 설득하고 그런 것들을 봤다. 프로젝트가 좋은 방향으로 가려면 이런 게 필요하구나 싶었다. 그게 시니어구나 싶었다.
– 배달의민족엔 그런 시니어가 많나?
많다. 좋은 그림을 볼 수 있는 사람이 많다.
우리 팀은 플랫폼 팀에 가깝다. 그래서 여러 팀을 만난다. 시니어, 팀장님들은 좋은 방향으로 가더라. 자기 팀에 일이 많아도 그쪽으로 가더라.
– 왜 그러는 것 같나?
나도 잘 모르겠다. 우리 회사에 왜 이런 사람이 많은지 궁금하기도 하다. 아무래도 좋은 채용에 있지 않나 싶다.
– 시니어 자격이 뭐라고 생각하나?
한 콘퍼런스에서 ‘좋은 시니어 개발자란 무엇인가?’라는 주제로 김범준 우아한형제들 부사장님께서 이런 말을 했다.
“1년 차 경험을 얕게 10번 한 사람과 10년간 하나의 깊은 도전을 한 사람은 다르다. 내가 맡은 개발을 잘하는 것보다는 일을 아는 사람이 시니어다.”
흔히 도메인을 잘 아는 사람을 시니어라고 하는데, 꼭 도메인을 많이 알아야지만 시니어라고는 할 수 없다.
조직이 원하는 방향으로 성과를 낼 수 있는 사람이 시니어 개발자인 것 같다.
– 동욱님은 시니어인가?
난 주니어다.
시니어는 주니어를 키울 수도 있어야 하고, 좋은 아키텍처를 볼 수도 있어야 하고, 팀을 잘 이끌 수도 있어야 한다.
난 아직 멀었다.
– 이직 마중물이 된 블로그 얘기를 해보자. 블로그 하면서 이직 외 다른 이득은 뭐가 있나?
월 광고비가 10만 원 정도는 들어온다. 많은 분이 나를 알아봐 주기도 한다.
세미나, 콘퍼런스 같은 곳에 가서 내 이름이나 아이디를 말하면 다들 알아봐 준다. 여러 출판사에서 제의도 많이 받았다.
내 정체성을 대변해주는 것(블로그)이 생긴 것 같다.
– 그중에서 뭐가 제일 뿌듯한가
내 정체성.
– 정체성이 뭔가?
글 쓰는 개발자 중 한 사람이 됐다.
어디를 가도 내 회사 명함이나, 내 연봉, 내 재산을 공개 안 해도 내 블로그 주소만으로 나를 나타낼 수 있게 됐다.
– 연예인 개발자가 되고 싶나?
뭐… 그렇다.
– 페이스북 페이지도 관리한다고?
초보 개발자 모임. 팔로우가 약 5500명이다.
시작은 간단했다. 기술적으로 좋은 글이나 이득이 되는 글을 보면 주변에 많이 공유한다. 그러다 보니 친구들이 스트레스받더라.
난 자랑하고 싶은데, 어디다 할까 고민하다가 페이스북 페이지를 만들게 됐다.
– 그룹으로 만들지 그랬나?
그룹이 아닌 이유는 나만 말하고 싶어서…
– 연예인병…
…
사람이 많으면 문제가 생길 수 있다. 그게 피곤할 것 같았다. 2016년에 시작했는데, 만 2년 동안 5500명이면 많이 모인 것 같다.
또 하나, 주니어개발자 채용 정보도 운영한다.
SI 다닐 때 힘들었던 건데, 좋은 회사 개발자들은 그들만의 리그가 있더라. 서비스 개발자가 서비스 회사로 간다. SI에서 서비스 회사로 넘어가기 힘들더라.
그런데 유명하지 않은 알짜 서비스 회사로 갔다가 유명 서비스 회사로 가는 건 쉽더라. 그 알짜 회사를 그들만 알더라
그래서 내가 좋은 회사를 큐레이션 해주고 있다. 깃허브 스타가 1900개다.
– 기준이 있나?
지인이 있는 회사. 잡플래닛 3.3점 이상. 채용 공고 보면서 좋은 개발 환경이 있는지 등 여러 기준이 있다.
깃허브에서 운영한다. 예전에는 혼자 운영했는데, 지금은 PR을 받기도 한다.
– 마소 기고는 어땠나?
너무 재밌었다.
내 사진이 마소 잡지에 있는 게 너무 좋더라. 회사에 자랑도 많이 했다.
– 앞으로 기술적으로 뭘 더 하고 싶나?
완전한 비동기 아키텍처 시스템을 만들고 싶다.
최근 배달의민족 포인트 시스템은 비동기로 바꿨지만, 좀 더 큰 도메인에서 비동기 시스템을 만들어보고 싶다.
NoSQL도 잘 다뤄보고 싶다. 배달의민족에 데이터가 많다. 현재는 전통적인 관계형 DB로 한다. 하지만 뭔가 해보려고 하면 참 힘들다. 쿼리 1개에 1분 이상 기다리기도 하고 그런다. NoSQL을 열심히 공부해서 바꿔보고 싶다.
– 기술 외 욕심은?
전문 서적을 쓰고 싶다. 기초 말고, 전문 서적.
토비 스프링이나 김영한 님의 JPA책 등 ‘이 사람은 이 기술의 전문가다’를 나타낼 수 있는 그런 책을 쓰고 싶다.
– 아니… 기술 외적으로…
내 소유의 아파트를 갖고 싶다. 그리고 1년간 갭이어(Gap year)를 보내보고 싶다.
2018년 3월에 수술해서 1달간 쉰 적이 있는데, 너무 좋더라. 내가 어떤 문제를 팠을 때 회사에서는 일정이 있으니, 해결책이 발견되면 바로 해결하고 넘어가야만 한다.
정확한 원인 파악을 못할때가 종종있다. 하지만, 혼자 있을 땐 파고 싶은 문제를 쭉 파볼 수 있었다. 그때 미뤘던 글도 쓰고 그랬다.
– 안 쉬었네…
쉰 거다. 회사 일 아니었다. 내가 쓰고 싶었던 글감 쓰고 그랬다.
1년간 그렇게 해봤으면 좋겠다.
– 마지막으로 하고 싶은 말
배달의민족 많이 지원해주세요. 사람이 너무 많이 필요합니다.
테스트 코드 짜는 거 좋아하고, 당연하다고 생각하는 사람들. 개발자가 인프라도 알아야 한다고 생각하는 사람들. 오세요!!!
– 좋은 개발자 많이 뽑길 바란다. 그럼 난 간다.
잘 가라.