storybook / 코드가 아니라 밸류를 만든다 : 유니콘 우아한형제들의 조직문화

코드가 아니라 밸류를 만든다 : 유니콘 우아한형제들의 조직문화

코드가 아니라 밸류를 만든다 : 유니콘 우아한형제들의 조직문화

Story Book성공을 거듭하는 조직의 비밀 : 스타트업 조직문화 탐구서

19분

스타트업 ‘평균’을 살펴봤다면 이번엔 ‘유니콘 스타트업’을 살펴볼 차례입니다. 배달의민족을 만든 우아한형제들을 선정한 이유를 길게 설명할 필요는 없을 것 같습니다. 누적 5000억 원이 넘는 투자금을 유치하며 기업가치 3조원을 돌파했으니 ‘유니콘’이라 불리기에 부족함이 없죠. ‘케이스 스터디’로 조명 받을 만큼 조직문화 좋기로 유명한 곳이기도 합니다.

그래서인지 우아한형제들의 조직문화를 다룬 콘텐츠는 차고 넘칩니다. ‘개발자 조직’에 포커스를 맞춘 이유입니다. 사실 우아한형제들은 ‘개발 잘하는 회사’로 유명한 곳은 아니었습니다. 하지만 최근 몇 년 사이 분위기가 많이 달라졌죠. 개발 잘하는 회사이자 개발자가 일하기 좋은 회사로 이름을 떨치고 있습니다.

그 중심에 최고기술책임자(CTO) 김범준 부사장이 있습니다. 김범준 부사장은 2015년 우아한형제들에 합류했습니다. 그에 따르면 당시 우아한형제들은 기술 부채의 딜레마 목전에 있었습니다.

기술 부채가 뭐냐고요? 말 그대로 ‘기술 빚’입니다. 사업을 할 때 빚 없이 하면 좋죠. 하지만 이자를 내고 빚을 써서 확장해야 하는 상황도 있습니다. 기술도 그렇습니다. 지금 완벽하게 개발하면 좋지만, 초기엔 그보다 빠른 개발 방법을 택할 수밖에 없는 상황이 더 많습니다. 그 여파는 몇 달 뒤 혹은 몇 년 뒤 이자로 돌아옵니다. 미래 어느 시점에서든 개발팀의 일부는 그때 빨리하기 위해 짰던 코드를 수정하고 유지하는 데 매달려야 합니다. 미래에서 기술 빚에 대한 이자를 내는 셈인데, 이자 때문에 새로운 서비스 혹은 기술적 확장을 하지 못하는 상황이 바로 기술부채의 딜레마입니다.

김범준 부사장에게 기술부채에 발목이 잡히지 않도록 기존의 코드를 정리하고 수정하면서, 동시에 앞으로 나아가는 일이 주어진 겁니다. 그림을 그리려는데 백지가 아니라 뭔가가 그러진 종이를 받아든 거죠. 쉽지 않았을 그 일을, 김범준 부사장은 잘해냈던 것 같습니다. 마케팅과 디자인으로 유명했던 우아한형제들이 지금은 개발 잘하는, 그리고 개발자가 일하기 좋은 회사로 이름을 얻게 됐으니 말입니다. 어떻게 한 걸까요?

서로 가진 지식을 나눈다

Q. ‘우아한형제들’ 하면 개발보다는 디자인과 마케팅이 먼저 떠올라요.
“초창기엔 확실히 디자인과 마케팅이 강한 회사였어요. 하지만 지금은 개발 역시 시장 대비 경쟁력 있다고 자부합니다. 올 4월 했던 ‘할인 정복’ 이벤트 때는 저희 시스템에 1분에 300만 거래 요청이 쏟아졌어요. 우리나라에서 1분에 300만 건의 거래 요청을 처리할 수 있는 개발조직을 가진 기업은 거의 없을 겁니다. 아니, 그런 걸 겪어본 회사 자체가 없어요. 개발기술이 뒷받침되지 않고선 할 수 없는 이벤트입니다.”

당시 우아한형제들은 이벤트가 벌어지는 이틀간 배달의민족 앱을 통해 총 30만장의 쿠폰을 배포했습니다. 이틀간 매시 정각에 2만원 쿠폰을 총 1만 명에게 제공했고, 그 사이 30분 간격으로 다양한 종류의 쿠폰을 발급했죠. 당시 이벤트엔 서버 접속이 마비될 정도로 트래픽이 몰리면서 두 차례 연기되기도 했지만, 결국 이벤트는 성황리에 마쳤습니다.

Q. 엄청난 트래픽을 감당하는 건 사실 다른 서비스에서도 자주는 아니어도 일어나는 일 아닌가요?
“포털의 경우 트래픽이 몰리더라도 정해진 콘텐츠를 보는 거지 쿠폰을 다운 받는 식의 시스템 변화를 필요로 하진 않아요. 일반적인 커머스 서비스는 시스템의 변화가 있긴 하지만, 주문 전달이 10분 늦게 된다고 해서 상품 배달에 차질이 생기는 건 아니죠. 그런데 배달은 시스템이 실시간으로 입력된 값을 처리해주어야 합니다. 시간당 20만 건 이상의 주문을 실시간으로 처리하도록 요구 받는 시스템은 거의 없습니다. 우리 개발 조직은 그런 시스템을 운영하고 있고요.”

Q. 실시간으로 엄청난 주문을 처리하는 게 보통 일은 아닐 것 같습니다.
“단순히 주문을 처리하는 것만이 아닙니다. 사실 배민라이더스는 우버와 똑같은 서비스에요. 승객을 태우는 대신 음식을 태우는 게 다를 뿐이죠. 배달 요청이 뜨면 모든 라이더에게 보여주는 게 아닙니다. 음식을 보낼 식당과 가까우면서도, 식당에서 고객의 주문지까지의 경로가 실제 라이더의 이동 경로와 적합한 사람을 찾아서 주문 요청을 보여줍니다. 승객이 목적지를 입력하고 차를 호출했을 때 우버가 기사의 위치와 이동 경로를 고려해서 콜을 보여주는 것과 근본적으로 같은 걸 우아한형제들이 하는 겁니다.”

Q. 말씀하신 대로 지금은 개발조직의 역량이 뛰어나지만, 처음부터 그랬던 건 아니었잖아요. 어떻게 하신 건가요?
개발을 잘하느냐 못하느냐는 서로 가진 지식을 얼마나 잘 나누느냐에 달려 있어요. 좋은 개발 문화는 자기 지식을 잘 나누는 문화고요. 선언적인 의미가 아닙니다. 개발이란 업무 자체가 그래요. 마케팅한다고 생각해봐요. 봄에 했던 이벤트가 여름 이벤트에 큰 영향을 주지 않습니다. 하지만 개발은 다릅니다.”

Q. 어떻게 다른가요?
“어떤 기능을 하나 추가하기로 했어요. 그럼 그 기능을 구현할 코드를 짜면 될 것 같잖아요? 아닙니다. 기존 시스템에 코드 뭉텅이가 10개 있다고 해봐요. 그러면 새로 짠 코드가 이 10개랑 어떤 관계가 있는지를 살펴봐야 합니다. 모순되는 게 없는지, 그래서 장애가 발생할 가능성은 없는지 하나하나 체크해야 해요. 그래서 개발자들이 모여서 코드리뷰를 하는 거예요. 만약 다음에 또 새로운 코드를 추가한다면, 그땐 11개 코드 뭉텅이와 부딪치는 건 없는지 일일이 체크해야겠죠. 개발은 과거의 코드를 이해하고, 그 위에서 코드를 얹는 과정인데, 이 과정에서 여러 명의 개발자가 서로 리뷰를 해주며 집단 지성을 발휘하는 겁니다. 그런 측면에서 개발을 잘하려면 서로 가진 지식을 잘 나누는 게 굉장히 중요해요.
(※코드리뷰는 개발자 한 명 혹은 몇 명이 만든 코드를 여러 개발자가 점검하고 피드백해주는 걸 말합니다.)

Q. 그런 의미에서 개발이란 지식을 나누는 과정 자체군요?
“개발자와 지식을 나누는 행위는 분리할 수 없어요.”

Q. 우아한테크캠프, 우아한테크코스 같은 다양한 개발 교육 프로그램 진행하는데요, 이게 말씀하신 ‘좋은 개발 문화’ 그러니까 서로 가진 지식을 나누는 문화와 맥락이 있나요?
“우아한테크캠프는 교육형 인턴제도입니다. 참가 대상을 대학생으로 국한하진 않지만, 7~8월에 하다 보니 방학을 맞은 대학생들이 주로 참가해요. 인턴제도지만 실무에 투입해서 일을 시키는 게 아니라 두 달 내내 교육만 합니다. 한 달에 100만원 이상의 수업료를 내야 들을 수 있는 퀄리티의 교육 프로그램을 공짜로 지원해주고, 한 달에 150만원씩 월급도 줍니다. 인턴이니까요. 신입 개발자를 키우는 과정이라고 할 수 있어요. 사실 우아한형제들이 이렇게 클 수 있었던 건 업계 다른 기업에서 개발자를 키웠기 때문이에요. 2000년대 초반 네이버나 다음이 신입 개발자를 뽑아서 교육하며 서비스를 확장하는 과정에서 성장한 개발자들이 지금 우아한형제들에 와 있거든요. 우아한형제들이 업계로부터 지식을 나눠 받은 거죠. 그걸 테크캠프를 통해 갚고 있는 거고요.”

Q. 우아한테크캠프를 수료하면 우아한형제들에서 일해야 한다거나 하는 조건이 있는 건 아니군요?
“우리 회사 안 와도 상관없습니다. 더 좋은 회사에 가서 더 다양하고 좋은 기회를 얻어 성장하면 업계 전체에 좋은 일이죠. 업계에서 어느 정도 규모가 있는 회사라면 이렇게 신입 개발자를 키우는 데 동참해주면 좋겠어요.”

Q.우아한테크코스는 뭔가요?
“테크캠프를 해보니 두 달 교육만으로도 실무에 바로 투입하기 부담스럽지 않은 수준으로 개발 역량을 끌어올 수 있더군요. 그래서 더 본격적으로 해보자는 생각에서 나온 게 테크코스에요. 이건 1년짜리 코스입니다. 우리가 이미 있는 개발 교육 시장을 교란해선 안 되니까, 시장 가격에 맞게 돈을 받습니다. 1년에 4개 학기가 진행되고, 1개 학기(3개월)마다 300만원을 책정했습니다. 대신 처음에 받는 게 아니라, 한 학기 하기로 했는데 중간에 그만두면 받습니다. 수료하면 안 받고요. 올해가 첫해고, 50명 정도가 교육을 받아요. 대학을 갓 졸업했거나 경력 3년 이하의 신입 개발자들이 많고요. 지원자는 1000명 넘게 몰렸었어요.”

Q. 지식을 나누는 개발 문화가 대외적으로만 발현되는 것 아닌가요? (웃음)
창업자인 김봉진 대표는 외부 브랜딩 못지않게 내부 브랜딩에 공을 들여요. 직원이 사랑하지 않는 브랜드가 어떻게 고객에게 사랑받겠어요? 직원들이 배달의민족을 사랑하게 하기 위해 회사는 그만큼 구성원들에게 신경을 씁니다. 개발조직도 마찬가지예요. 매달 열리는 우아한테크세미나는 내부 개발자가 자신의 지식을 공유하는 자리에요. 주제에 따라 외부 분을 초청하기도 하고요. 100~150명 정도가 듣는데, 80%가 내부 직원으로 채워집니다. 나머지는 외부 개발자에게 오픈하고요. 우아한테크스터디라는 것도 있어요. 매주 월요일과 목요일, 두 달 정도 스터디를 하는 거예요. 강사는 내부에서 찾기도 하고, 외부 개발자를 모셔오기도 하고요. 사실 시장에 좋은 강의가 많긴 해요. 패스트캠퍼스에도 개발 강의가 많고요. 하지만 거기까지 가려면 불편하죠. 그래서 우리 쪽으로 모셔오는 겁니다.”

개발자는 기술의 변화를 이끌기도 하고, 또 기술의 변화에 가장 영향을 많이 받는 존재입니다. 그래서 끊임없이 ‘공부’해야 한다고들 합니다. 하지만 개발을 ‘지식을 나누는 과정’이라고 정의하는 순간 ‘공부’였던 과정이 ‘개발’이 되었습니다. 컴퓨터 앞에 앉아 코드를 짜는 것만 개발이 아닙니다. 그 코드를 가지고 개발자들끼리 모여 코드리뷰를 하고, 첨언하고, 최근에 자신이 알게 된 어떠한 지식을 공유하는 모든 과정이 개발인 겁니다.

이렇게 정의하면 무엇이 달라질까요? 개발은 더는 1명이 하는 게 아니라 집단이 하는 게 됩니다. 어떤 문제가 생기면 그 코드를 짠 개인이 아니라 함께 코드를 리뷰하고 의견을 주었던 모두의 문제가 된다는 거죠. 이렇게 되면 무엇이 달라질까요?

모두의 문제다

2015년 10월 어느 토요일. 배달의민족 앱 서비스가 다운됐습니다. 김범준 부사장이 우아한형제들에 합류한 지 2개월 차에 접어들 무렵이었죠. 개발자들이 모인 여러 카톡방에 수많은 카톡이 쌓였고, 곧 원인을 찾아냈습니다. 서버에 심각한 장애를 일으킨 건 식당 사장님들이 쓰던 앱이었습니다. 그 앱에 추가된 기능을 구현하면서 문제가 생겨, 해당 앱이 계속해서 서버에 주문 요청을 하는 일종의 ‘좀비 바이러스’ 역할을 한 겁니다. 문제를 바로 잡는 데 이틀이 걸렸습니다. 배달 주민이 가장 몰리는 토요일과 일요일, 받지 못한 주문과 업주에 대한 손해배상까지 3억원의 손실을 남겼습니다.

문제가 해결된 뒤인 11월에 열린 개발자 타운홀, 김범준 부사장은 무슨 말을 했을까요?

2,830달러, 300만원. 

"그때 회사가 입은 손해를 개발자 숫자로 나눠서 나온 금액입니다. 우리는 1인당 300만 원짜리 교육을 받은 거라고 했어요. 교육을 받았으니, 이제 그런 일이 반복되지 않도록 시스템을 마련하면 된다고 말입니다."

실제로 당시 문제의 코드를 짠 건 입사 2년 차의 신인 개발자였지만, 그 개발자는 어떤 징계도 받지 않았다고 합니다.

Q. 개발은 1명이 하는 게 아니니까, 모두가 함께하는 과정이니까 책임을 묻지 않은 건가요?
“보통 장애가 발생하면, 뭐가 문제인지, 누가 그걸 했는지 찾아요. 하지만 그렇게 사람에게 책임을 돌리면, 문제는 반복될 수밖에 없어요. 팀에게 돌려도 마찬가지입니다. 나중에 비슷한 문제가 생겼을 때, 징계 받을 게 무서워서 실수를 알아채도 솔직해지지 못하죠. 책임을 묻는 순간 내 일과 네 일을 구분하기 시작하고요. 책임지지 않기 위해서 말입니다.”

Q. 그럼 어떻게 해야 하나요?
문제를 해결하는 데 집중해야 합니다. 문제가 해결된 뒤엔 근본적인 리뷰가 필요해요. 왜 잘못됐는지, 어디서 문제가 일어난 건지 말입니다. 리뷰의 핵심은 그 문제의 원인을 파악하는 게 아닙니다. 원인을 파악해서 다시 발생하지 않도록 시스템으로 해결하는 게 중요해요. 인간은 누구나 실수합니다. 천하의 우버도 신입 개발자의 실수로 15분간 다운된 적이 있어요. 하지만 우버 역시 그 개발자를 문책하지 않았습니다.”

Q. 보통 그 정도 규모의 사고를 내면 경위서를 쓰잖아요. 소문도 금방 나고 말입니다.
“그렇게 일을 처리하는 건 도움이 되지 않습니다. 한두 명을 손가락질하는 걸로는 문제가 해결되지 않아요. 회사가 문제 해결에 집중하고, 사후적으로 사고 리뷰를 꼼꼼하게 하는 건 한두 번 한다고 해서 분위기가 당장 달라지진 않을 겁니다. 하지만 몇 번 꾸준히 하면 달라집니다.”

Q. 무엇이 달라지나요?
“문제가 생겼을 때 숨기지 않죠. 누구든 문제를 발견하면 솔직하게 말할 수 있어요. 그래야 문제를 풀 수 있어요. 또 한가지 문제를 사후적으로 공유하는 것도 가능해집니다. 잘잘못을 따지지 않으니까요. 이번엔 서버팀에서 문제가 발생했지만, 그 문제는 언제든 다른 팀에서도 발생할 수 있어요. 그래서 문제가 일어나고, 발견되고, 처리되는 과정을 공유하는 건 매우 중요한 일이죠.”

대니얼 코일의 <최고의 팀은 무엇이 다른가>에 따르면, 성과를 내는 데 있어 ‘안전한 곳에 있다’고 느끼는 소속감이 큰 영향을 미칩니다. 우리 조직 사람들이 나를 평가하고 비판하려는 이들이 아니라 나를 도우려는 이들이라고 생각하면, 그때부터 조직을 가족 같이 느끼는 소속감이 생깁니다. 그러면 나 역시 누군가를 평가하거나 비판하려 들지 않고 도우려고 하죠. 내 일과 너 일의 경계가 없이 집단 지성이 발휘되는 거죠. 저자는 이렇게 말합니다. 오늘날 구글이 세계를 정복할 수 있었던 건 다른 기업보다 더 똑똑해서 아니라 더 안전했기 때문이라고 말입니다.

김범준 부사장의 이야기를 들으면서 ‘소속감’이라는 단어가 떠올랐던 이유입니다. 우아한형제들의 개발자들에게 개발이란 지식을 나누는 행위이고, 개발자 조직이란 그런 행위(지식을 나누는 행위)를 함께 하는 커뮤니티입니다. 개발단의 문제가 생기면 그건 개발자 1명 혹은 한 팀의 문제가 아니라 모두의 문제가 됩니다. 설령 내가 실수하거나 잘못해도 비난 받지 않을 거라는 믿음은 강력한 소속감을 낳고, 그 소속감은 네 일과 내 일을 나누지 않고 문제 해결에 헌신하는 행위로 이어집니다. 그 결과는 ‘최고의 팀’이자 ‘위대한 팀’이고 말입니다. 최고의 팀은 최고의 제품을 만들죠.

코드가 아니라 밸류를 만든다

김범준 부사장이 우아한형제

  • 성공을 거듭하는 조직의 비밀 : 스타트업 조직문화 탐구서

    김성준 외 4명
스토리북 구매하기
Top
팝업 닫기