2021 우아한형제들 경력 개발자 인터뷰 #2편

Sep.17.2021 인재영입팀

Culture

좋은 음식을 먹고 싶은 곳에서!
우아한형제들의 도전은 오늘도 계속됩니다.

고객 만족과 창출을 위한 여정에서 끊임없이 도전하고 성장하는 개발자분들,
그중 서비스와 기술의 발전을 책임지고 있는 개발자 일곱 분을 만나봤습니다.

들어가기 전에

안녕하세요, 재미있고 유익한 인터뷰로 다시 찾아온 인재영입팀 입니다.

  • 이번 인터뷰에서는 우아한 개발자의 도전과 기회, 그리고 성장 노하우를 공개합니다!

    빠르게 변화하고 성장하는 우아한형제들의 서비스를 만드는 개발자에게 필요한 역량은 무엇이고,
    개발자는 어떠한 기술적 고민과 문제를 해결하며 성장하는지,
    개발자 성장 중심의 생태계와 개발문화는 어떻게 만들어 가는지,

    일곱 분의 진솔한 이야기를 지금 만나보세요! 😉

∙ 본 직무인터뷰는 방역 수칙을 철저히 준수하여 진행되었습니다.

신기배 / 기술이사

담당업무 소개

Q. 아한형제들의 기술이사로서 가장 집중하고 있으신 역할에 대해 소개 부탁드립니다.  

안녕하세요. 우아한형제들 프로덕트 부문에서 기술이사를 맡고 있는 신기배입니다.
우아한형제들에는 CTO 산하에 저를 포함한 다섯 명의 기술이사가 있습니다. 기술이사의 주요 역할은 특정 직무와 도메인 영역에서 ‘우아한형제들 구성원의 기술적 성장을 지원하고, 이를 기반으로 기술 조직의 발전과 개발문화 형성을 주도하는 리더그룹’으로 정의되어 있어요.
그리고 이렇게 정의된 목표를 달성하기 위해 1) People 2) Process 3) Product 세 가지 주제에 대해 사내 전문 그룹들과 논의하여 단/중/장기 실행 과제를 도출하고 직접 실행하거나 감독하는 역할을 하고 있어요.

제가 최근에 가장 집중하고 있는 주제는 기술조직과 프로덕트의 발전입니다. 
배달의민족 서비스를 구성하는 다양한 프로덕트의 기술적 상향 평준화를 이루기 위한 여러 고민들을 하고 있고 그중에서도 제가 가장 집중하는 것은 “시니어 개발자들을 어떻게 성장시킬 것인가?”에 대한 해답을 찾으려 노력하고 또 시도하고 있습니다.

시니어 개발자는 수년간의 코딩 경험이나 능력만으로는 지속적으로 성장할 수 없고, 개발 역량 외에도 리더십, 도메인 전문성 등 다양한 성장 방향이 존재합니다. 그렇지만 성장을 가속화하기 위한 롤 모델이나 목표를 설정하기는 쉽지 않아요. 운 좋게 모든 조건이 성립된다 하더라도 누군가가 지속적으로 이끌어 주기에는 어렵습니다. 

그래서 얼마 전부터 시니어 개발자들의 커뮤니티를 만들고 운영하고 있습니다. 개발 경험이나 지식이 쌓인 시니어 개발자들 간에 여러 주제에 대해 마음껏 대화를 나누고 다양한 지식을 공유하면서 서로에게 좋은 자극을 주는 환경을 만들고 있습니다. 이 과정에서 각 조직의 어려움이나 서비스의 신뢰성을 높일 수 있는 다양한 의견들을 얻어낼 수도 있습니다.

성취의 순간

Q. 풀스택 개발자로 모든 영역에서 전문가의 지식과 역량을 두루 갖춘 기배님은 어떤 일을 할 때 가장 큰 재미와 성취를 느끼시는지 궁금합니다.

가장 재미있을 때는 코딩할 때입니다. 조금 뻔한가요? ^^ 최근에는 직접 코딩할 일이 많이 줄어들긴 했지만 실무 코딩도 많이 하고 있습니다. 그리고 다른 기술이사분들도 핸즈온 개발 많이 하고 있어요. 
재미있는 일만 할 수는 없고, 모든 일에서 나름의 재미를 찾아야 하는데요. 우아한형제들의 기술이사로서 제가 해야 하는 일 중 성취감을 느끼게 해주는 일은 크게 두 가지로 나뉩니다. 

먼저는 풀스택 개발자는 빠르게 프로토타입이 필요하거나 여러 조직이 협업해야 하는 경우가 종종 발생할 때, 어떤 것이 필요한지 즉시 파악할 수 있다는 장점이 있습니다. 인프라부터 백엔드, 프론트엔드까지 각 스택(Stack)에서 필요한 일이 무엇인지, 어떻게 해야 병렬적으로 진행할 수 있게 되는지, 블로커(Blocker)가 무엇인지 등 계획 단계부터 확인이 가능합니다. 사실, 제가 풀스택 개발자에게 요구하는 역량인데요. 이렇게 이야기하다 보니 풀스택 개발자만이 꼭 할 수 있는 일은 아니라는 생각도 듭니다.

두 번째는 기술이사로서의 역할상 동료 개발자가 개발하여 성과를 이루는 과정에서 오는 재미와 성취감에 영향력을 끼치거나, 발전적이고 긍정적인 방향으로 상황이 변화할 때 만족감을 느끼고 있습니다. 다시 말해 저의 영향으로 많은 동료들이 재미와 성취를 이룰 때 대리만족을 하는 것으로 스스로가 차츰 바뀌어 가고 있는 것 같습니다.
재미는 과정에 있고 성취는 결과에 있는데요. 모든 과정이 재미있을 수 없고 모든 결과가 성과와 성취감으로 이어지지 않을 수도 있어요. 그렇기 때문에 우아한형제들의 개발자분들이 더 나은 재미와 성취를 많이 얻어서 대리 만족을 느낄 수 있도록 해야겠다고 생각합니다. 

역량에 관한 생각

Q. 기술 리더로서 조직이 기술적으로 성장하는 환경을 갖출 수 있도록 어떠한 사항에 중점을 두고 개발자분들을 코칭 하시나요?

다양한 경력과 연차를 가진 개발자분들과 면담을 하면서 공통적으로 말씀드리는 것이 있습니다.

  • ‘모든 것을 다 잘한다면 팀을 이뤄서 일할 필요가 없다. 개개인이 가진 역량과 장점들을 모아 큰 힘을 발휘하기 위해 팀을 이루는 것이다. 단점을 고치려 하지 말고 장점을 더 빼어나게 가다듬어서 팀에 도움을 주고, 서로의 단점은 보완해 줘라. 그렇게 팀이 나에게 의지하게 만들고, 또한 내가 가진 단점은 팀에 의존하여 보완할 수 있도록 해라.’

단점을 지적받고 고치기를 요구받는 사람은 고민에 빠져 스스로의 행동에도 제약을 만듭니다. 그로 인해 이전보다 장점을 발휘하기 어려워지므로 자신의 장점은 극대화하고, 단점은 동료들과 서로 보완하도록 해야 합니다. 단점 없는 사람 없고, 그런 단점들을 서로 감싸줄 수도 있어야 해요.

우아한형제들은 동료와 성장할 수 있는 문화와 환경을 갖추고자 지속적으로 노력하고 있습니다. 그리고 동료와의 경쟁을 유도하기 보다 개인의 성장을 도모하고 있어요. 평가 제도로 예를 들어 소개 드리면, 우아한형제들에서는 상대평가가 아닌 절대평가로 연간 평가가 이루어지는데요. 이는 평가의 목적에 개인의 성장과 코칭도 포함되고, 경영 철학과 조직 문화 차원에서 평가의 본질적인 목적이 개인과 조직의 동반 성장에 있기 때문에 가능한 부분이라고 생각합니다.

저는 “무언가에 대해 우리가 알고 있는 것들을 다 합치면 세계 최고일 것이다”라는 말을 자주 하곤 하는데요.
팀 안에서의 역할뿐 아니라 팀 밖으로도 여러 조직의 다양한 개발자분들과 대화 나누기 위해 노력하고 있습니다.

성장 과제

Q. 기배님께서 기술적으로 폭풍 성장을 이룰 수 있었던 경험이 궁금합니다. 또한 그렇게 갖춘 역량을 우아한형제들에서 발휘한 프로젝트 한 가지만 소개해 주세요.

제가 개발자로 일을 해온지도 어느덧 20년이 조금 넘었습니다. 그중 10년은 한국과 미국, 인도네시아에서 스타트업을 창업하거나 참여했습니다. 나머지 10년은 중소기업, 대기업, 재벌그룹사 등 다양한 규모의 회사에서 일했고 도메인도 게임, 검색엔진, 광고, 커머스, 교육, O2O 등 다양하게 경험했는데요.
얼핏 들어도 다이나믹한 제 삶의 자세한 스토리는 눈물 없이 들을 수 없고 너~무 길어서 생략하겠습니다. ^^;

오늘 오랜만에 제 이름을 사내 인트라넷에서 검색해보니 6개의 조직에 소속되어 있다고 나오네요. 우아한형제들에 입사한 지 4년이 되어가는데 그동안 20개가 넘는 조직에 속해 있었습니다. 그만큼 다양한 프로젝트들을 진행했고, 모두 고객에게 가치를 줄만한 일들이었다고 생각합니다. 그래서 한 가지만 선택하긴 어려우니 올해 초에 진행했던 결제플랫폼+배민페이머니 프로젝트를 소개하겠습니다.

배달의민족 앱은 배달 중계뿐 아닌 배민1, 선물하기, 전국별미, B마트 등 다양한 서비스들을 제공하는 슈퍼 앱입니다. 그만큼 장바구니/주문서/결제까지의 과정이 복잡하고, 주문서는 각 서비스들마다 별도로 구현되어 있었습니다. 새로운 결제 수단으로 배민페이머니가 추가되어야 하는데 이럴 경우 각 서비스별로 대응을 해야만 했어요.
업무 생산성과 비용 효율성을 높일 방안으로 주문서 부분을 별도의 플랫폼 형태로 구축하고, 각 팀이 결제와 상관없이 필요한 부분만 커스터마이즈(Customize)하여 결제 관련 연결 또는 연동은 공통으로 처리할 수 있는 환경을 구축했습니다.

이 프로젝트를 진행하기 위해서는 다양한 서비스와 결제 도메인에 대한 이해와 전문 지식이 필요했고, 다른 언어나 환경으로 개발되어 있던 로직들을 통합해야 했습니다. 서비스별로 많은 기획, 개발자분들이 협업하는 프로젝트로 모두의 노력과 배려와 희생이 있어 프로젝트는 무난하게 완수할 수 있었습니다. 결제와 관련된 변화를 반영하기 위해 모든 팀이 따로 작업해야 할 일은 더 이상 없어진 것이죠.

의존 관계가 있는 팀들이 관성대로 일을 할 수도 있습니다만 그랬다면 늘어나는 서비스만큼 시간을 더 투자해야 합니다. 생산적으로 일할 수 있는 개선 사항들을 찾아내서 미래지향적인 구조를 만들어내는 것이 저에게 주어지는 일들이라 생각합니다.

우아한형제들 개발문화

Q. 우아한형제들의 좋은 개발 문화를 소개 부탁드립니다.

​​이미 소개되고 알려진 문화와 제도가 많다고 생각되어 다른 측면에서 말씀드리겠습니다.

첫 번째로 우아한형제들에서는 < 피트스탑 > 이라는 것을 진행하고 있습니다. 
F1 레이싱을 보면 레이싱 도중 피트(pit)에 들어가서 타이어를 교체하는 등의 점검을 하게 되는데요.
우아한형제들에는 이와 비슷한 피트스탑이라는 연례행사가 있습니다. 전사적으로 약 2주 동안 진행되는 피트스탑은 모든 비즈니스 요구 사항을 중단하고 급해서 미뤄놓았던 일들을 진행하거나 앞으로 일을 더 잘하기 위한 준비를 하는 기간입니다.

두 번째는 개발조직의 < 워크샵 > 입니다.
우아한형제들은 주 35시간 기준 비포괄임금제로 운영하고 있습니다. 제가 담당하고 있는 조직들에서는 웹프론트엔드 개발자들이 모여서 워크샵을 진행하고 있는데요. 일주일에 3번, 총 4시간을 사용하고 있습니다. 근무시간의 10% 이상 20여 명의 개발자들이 시간을 내어 모이게 됩니다. 
매주 화요일은 실무 개발 현안에 대해, 수요일은 실무 관련 토이 프로젝트, 금요일에는 기술 트렌드 등에 대한 내용을 서로 공유하는 시간을 가지고 있어요. 이렇게 주 3회 진행하는 워크샵은 기술 역량의 상향 평준화라는 것을 목표로 하고 있는데 좋은 성과가 나오고 있어, 2년 넘게 진행하고 있습니다.

피트스탑과 워크샵은 회사가 개인이나 조직을 어떻게 바라보고 있는지를 잘 보여주는 단면이라고 생각합니다.
개인의 역량 상승을 독려하고, 신발 끈을 고쳐맬 수 있게 해주는 시간이 고객에게 제공하는 가치를 더 잘 만들고 높일 수 있기에 개인과 조직의 성장에 많은 투자를 하고 있습니다.

마무리하며

Q. 기배님과 같은 기술 리더로서의 성장을 꿈꾸는 개발자 분들에게 커리어 조언 부탁드립니다.

코드를 만들지 않으면 버그를 만들 일도 없습니다. 트래픽이 없다면 장애를 경험할 일도 없을 테고요. 책임질 일이 없다면 리더가 되기도 어렵습니다. 그만큼 환경이 중요한 요소이긴 합니다만, 같은 환경에서도 시간이 지남에 따라 방향이나 깊이의 차이가 생깁니다. 환경은 그저 탓을 하고 합리화할 수 있는 요소이기도 합니다.
현재 상황에서 극복하지 못한 부분은 환경이 개선되면 현상이 바뀌거나 없어질 수는 있어도, 극복한 것은 아니기 때문에 미래에 같은 상황이 발생하면 다시 한계에 부딪히게 됩니다.

최대한 현 상황에서 기술적으로 탁월하거나 고객에게 align된 결과를 만들려 노력해 보시고, 환경을 변화시키는 시도를 스스로 해보시기 바랍니다.

그리고 가능하면 트래픽이 매우 많고 고객에 집중하고 특정 산업을 지탱하는 회사(우아한형제들 같은?)에서 다양한 경험을 해보시기 바랍니다. 이상, 제가 아끼는 개발자 후배들에게 항상 하는 조언을 말씀드렸습니다.

개발자 모집공고 바로가기

김동현 / 정보보호 최고책임자

담당업무 소개

Q. 우아한형제들의 정보보호 최고책임자(CISO)로서 동현님께서 맡고 계신 주요 역할을 소개 부탁드립니다.

안녕하세요, 정보보호실 김동현입니다.
우아한형제들에서의 제 역할을 간략히 소개드리면 고객에게 안전하고 불편함 없는 서비스를 제공하기 위해 정보보호와 개인정보보호 관련 여러 업무를 수행하는 조직을 이끌고 관리하고 있다고 말씀드릴 수 있겠습니다. 

저희 정보보호실의 주요 역할을 조금 더 구체적으로 이야기해보면 1) 서비스와 관련하여 보안적 위험 요소는 없는지 보안성을 검토하고 필요한 경우에는 아키텍처 검토도 진행합니다. 2) 침해 예방, 침해 시도에 대한 탐지 및 대응도 담당하고 있고 3) 신규 서비스가 론칭될 때마다 진행하는 취약점 진단업무와 정기적으로 진행하고 있는 기존 서비스에 대한 취약점 진단도 있네요. 4) 마지막으로 우아한형제들 구성원분들이 사용하는 VPN과 같은 보안 시스템, 보안 솔루션, 보안 서비스 운영도 담당하고 있습니다.

그 밖에도 정보보호관리체계나 ISO27001과 같은 인증 취득에 필요한 준비와 업무도 수행하고 있고 구성원 대상의 정보보호, 개인정보보호 교육과 보안 캠페인도 맡고 있어요. 회사의 서비스 이벤트나 신규 사업을 기획하는 경우에는 개인 정보 이슈가 없는지 검토하는 일도 있습니다.

지금까지 소개드린 업무들은 저희 실의 구성원분들이 주로 담당하고 있고, 저는 이러한 업무들이 문제없이 잘 진행되도록 지원하고 도움을 주는 역할을 하고 있습니다. 또한 구성원 개인이 성장할 수 있도록 코칭하는 역할도 빼놓을 수 없겠습니다.

정보보호의 주요 목표

Q. 우아한형제들의 정보보호 최고책임자로서 특별히 중요하게 생각하시는 것은 무엇인가요? 세 가지만 말씀 부탁드립니다.

정보보호 최고책임자로서 특별히 중요하게 생각하는 첫 번째는 침해 사고가 발생하지 않도록 하는 것입니다. 
그래야 고객분들이 믿고 서비스를 이용하지 않을까요? 우리나라에서 보안은 법적 요건에 따라 적용되기도 하지만, 이 법적 요건의 궁극적 목적 역시 침해 사고가 발생하지 않도록 해서 이용자의 정보를 보호하는 것입니다. 그래서 침해 사고가 발생하지 않도록 하는 것을 가장 중요하게 여기고 있어요.

그리고 첫 번째 만큼 중요하게 생각하는 것은 사람입니다. 
오랜 시간 보안 분야에서 일을 해 왔는데, 결국 보안은 사람이 하는 일이더라고요. 그것도 보안을 담당하는 사람만이 아니라 회사에 재직 중인 전체 구성원들이 지켜야 하는 책임이 있는 거죠. 전사 구성원이 보안에 대한 이해를 바탕으로 보안 규정을 잘 챙기고 지켜준다면 침해 사고 발생 가능성을 최소화할 수 있습니다. 
결국 정보보호 최고책임자가 해야 하는 역할은 구성원들이 보안에 대한 바른 인식과 이해를 하고, 이를 실천하도록 만드는 것입니다. 어렵고 시간이 오래 걸리는 일이지만 꾸준하게 하고 있습니다.

마지막으로는 꾸준한 정진입니다. 한편으로는 도전 때로는 노력이라는 모습일 수도 있겠습니다. 
IT업계에 있는 이상 빠른 환경의 변화는 피할 수 없습니다. 그리고 기술과 서비스가 먼저 변화하고 보안은 언제나 조금씩 늦을 수밖에 없어요. 이런 조금씩 늦는 타이밍에 침해 사고가 발생하게 되는 것이고요. 이 시간차를 줄이기 위해서는 어제와 같은 모습으로 오늘 일을 하면 안됩니다. 

매일 같은 업무를 하지만 항상 더 나은 방법을 고민하면서 도전해야 하고, 새로운 기술과 서비스에 대한 학습의 노력을 게을리할 수 없습니다. 힘들고 어려운 과정이지만, 보안을 업으로 삼고 남에게 부끄럽지 않으려면 꾸준히 발전하고 정진하는 노력을 해야 합니다.

성취의 순간과 과정

Q. 우아한형제들의 보안 체계와 역량을 강화하는 다양한 과제들 중 가장 큰 성취감을 느꼈던 사례를 이야기해주세요.

가장 큰 성취감을 느낀 두 가지 사례를 들려드릴게요. 

먼저는 선례가 없던 것을 해본 경험입니다. 배달의민족 서비스에는 배민 포인트와 같은 전자금융 서비스가 제공되고 이 서비스를 클라우드에서 운영하기 위해서는 법에 따라 클라우드컴퓨팅 서비스 이용을 위한 금융감독원 보고를 진행해야 합니다. 그런데 규정에 따라 이용 보고를 하려다 보니, 2018년 12월에 새롭게 생긴 규정이라 선례가 없었습니다. 그래서 참고 자료 없이 우리 스스로 만들고 검토해가며 진행할 수 밖에 없었고 꽤 시간이 소요된 일이었지만, 클라우드컴퓨팅 서비스 이용 보고를 무사히 마칠 수 있었습니다. 이 경험이 선례가 되어 이후부터는 전자금융 서비스를 추가하며 저희 보고자료를 참고해서 빠르게 업무를 진행하고 있습니다.

클라우드컴퓨팅 서비스 이용보고를 하기 위해서 클라우드 보안에 대한 체계를 새롭게 마련하고 기존의 체계를 수정하기도 했었는데요, 이 과정이 클라우드 보안에 대해 Best Practice를 찾아가는 과정이라고 생각되고 이 과정에서 결과물이 하나씩 만들어졌죠. 이때 참여했던 구성원들이 성취감을 느낄 수 있지 않았나 싶습니다. 저를 포함해서요.

  • 인재영입팀에서 동현님의 유튜브 영상도 소개드립니다. 영상보러가기
    2019년 1월 1월, 전자금융업자가 클라우드서비스를 이용할 수 있는 법적 제도가 마련되었습니다.
    우아한형제들에서는 기존에 IDC에서 운영하던 전자금융 서비스를 클라우드 서비스에서 운영하기로 결정하고, 어려운 여정을 시작합니다. 

두번째 기억에 남는 과제는 보안 캠페인을 진행했을 때에요. 보다 정확하게 이야기하면 저희가 주관하여 진행한 것이 아닌 다른 부서에서 진행하는 것을 도와줬다는 것이 더 맞겠네요. 
다른 회사의 경우, 보안 캠페인은 보안팀에서 준비하고 진행하지만 사내 구성원들은 관심없는 경우가 많더라고요. 
그런데 우아한형제들에서의 보안 캠페인은 당시 피플팀과 전사교육팀에서 주도해 주고 정보보안팀은 오히려 도와주는 역할로써 진행되었어요. 피플팀과 전사교육팀에서 저희를 초대해서 보안 캠페인 컨텐츠에 대한 전문가로서의 아이디어와 의견을 제시하면 제작과 진행을 두 팀에서 맡겠다고 제안하시더라고요. 개인적으로 유사 전례가 없어서, 조금 당황스럽기조차 했습니다. 어쨌든 보안 캠페인은 피플팀과 전사교육팀의 주도하에 즐겁게 잘 진행이 되었습니다. 그때의 흔적이 아직도 회사 회의실에 남아있고요. 🙂 
입사할 때 회사에 대해 기대했던 모습을 경험할 수 있었던 좋은 기억으로 남아있습니다.

역량에 관한 생각

Q. 정보보호실에서 좋은 역량을 발휘하기 위해서는 어떤 자질과 역량을 갖춰야 할까요?

우아한형제들의 주요 과제의 키워드가 성장이다 보니, 신규 기술을 도입하거나 사업을 확장하는 데 주저함이 없습니다. 또한 서비스도 외부에 알려진 것보다 더욱 다양한 서비스들이 있어요.
정보보호실의 최우선 업무 목표는 다양한 서비스가 안전하게 제공되도록 하는 일이므로 서비스와 시스템 구조들을 잘 알고 이해해야 합니다. 또한, 시스템상 취약점을 해결하기 위해서는 우아한형제들의 서비스 구조와 시스템 환경을 파악하여 위험관리 정책을 수립하고 유지 보수하는 일 또한 중요합니다. 

그렇기 때문에 우선 호기심이 많아야 합니다. 하나의 사례로 배달대행 업체들과의 협업 프로젝트가 있습니다. 
우아한형제들의 고객인 가게 사장님들이 저희 우아한형제들의 주문접수 프로그램과 배달을 대행해 주는 업체의 프로그램을 동시에 사용하면서 배달정보를 수동으로 옮겨 적는 불편함이 있었어요. 이러한 불편함을 해결하고자 배달정보를 자동으로 연동해 주는 프로젝트를 진행했고, 정보보호실은 배달대행 업체의 보안 수준을 검토하는 과제를 맡아 검토의 기준이 되는 보안 요구 사항을 정의해야 했습니다. 

보안 요구 사항을 정의하기 위해서는 크게 세 가지 사항을 고려할 필요가 있습니다. 
첫 번째는 배달 정보와 데이터 연동이 필요한 서비스 구조와 흐름에 대한 이해를 갖추는 것이 필요합니다. 
서비스 시스템 구조에 대한 이해를 기반으로 정보/데이터의 전달 과정을 이해하지 못하면 사업 목적에 맞지 않는 불필요한 보안 요구 사항을 도출하거나, 반대로 필요한 보안 요구 사항을 누락할 수 있기 때문입니다.  

​​
두 번째는 현장 점검을 위한 문서의 사전 점검입니다. 
문서를 점검하며 기본적인 프로그램 환경은 파악이 가능했기 때문에, 우리가 미처 접해보지 않은 환경이라면 현장점검 전에 배달대행 업체에서 사용하는 환경을 학습하여, 어느 정도 내용을 숙지해야 보안 요구 사항을 준수하는지 확인할 수 있습니다.

세 번째로 보안 요구 사항을 준수하고 있는지 확인하기 위한 현장 점검을 진행합니다.
점검 과정에서 보면 배달대행 업체마다 프로그램 환경이 다 달랐는데요. 온프레미스(On-Premise) 환경에서 서비스를 운영하는 업체, 클라우드 환경에서 서비스를 운영하는 업체, 클라우드 환경도 AWS, GCP, Azure 등 다양했고요. 또, AWS 사용한다고 하더라도 각기 운영하는 방식이 달랐습니다.
현장을 점검하면서도 끊임없이 호기심을 가지고 질문하지 않으면, 배달대행 업체가 보안 요구 사항을 제대로 준수하고 있는지 확인할 수 없습니다. 겉으로 보기엔 준수하는 것처럼 보여도 깊게 들어가 보면 그렇지 않은 경우도 있기 때문이죠.

이처럼 서비스와 기술, 그리고 이와 관련된 컴플라이언스에 대한 지속적인 현황 파악이 이루어져야 적절한 보안체계를 만들고, 가이드 하는 것이 가능합니다. 그래서 호기심을 바탕으로 새로운 것들을 꾸준히 학습하는 배움에 대한 끊임없는 노력이 필요한 것입니다.

또 한 가지를 꼽자면 커뮤니케이션 능력입니다. 아마 보안업무를 해왔던 사람들이라면 모두 공감할 텐데요, 보안업무는 다른 부서의 협조 없이 보안 조직에서만 진행할 수 있는 일은 굉장히 적습니다. 대부분의 보안업무는 다른 부서의 도움과 협조로 이루어집니다. 
타 부서의 원활한 협조를 구하는 것은 탁월한 커뮤니케이션 능력이 갖춰져야지만 가능합니다. 일의 목적을 명확하게 이해시키고, 우리가 할 일과 상대방이 할 일을 서로 다르게 이해하지 않도록 정확하게 전달하는 것 그리고 일의 필요성에 대한 공감대를 형성하는 것은 커뮤니케이션을 통해서 이루어지기 때문입니다. 일단 이 두 가지 역량을 잘 갖춘다면 역량을 키우고 발휘하는 데도 도움이 될 것으로 생각됩니다.

우아한형제들 조직문화

Q. 동현님께서 우아한형제들을 최종적으로 선택하신 가장 큰 이유 세 가지가 궁금합니다.

전 우아한형제들을 선택한 이유가 여러가지 있진 않았습니다. 중요한 이유 단 한 가지만 있었어요. 
우아한형제들이 가지고 있는 독특한 조직문화요. 일반적으로 회사에서 보안업무를 하는 사람들은 굉장히 외롭게 일을 합니다. 보안 업무의 특성상 다른 부서의 협조가 있어야 원활하게 업무를 할 수 있는데, 다른 부서에서는 보안 업무와는 심리적으로도 거리를 두려고 하는 것이 일반적인 모습인 것 같아요.

그래서 전사 구성원과 보안 업무를 다 같이 할 수 있으면 좋겠다는 꿈(?)을 가지고 있었죠. 그러다 우연히 우아한형제들이라는 회사에 대해 접하게 되었는데, 조직문화에 대한 첫인상이 ‘굉장히 독특하다’였습니다. 구성원들 간에 협업 문화가 잘 자리 잡고, 회사 내에서 의사소통이 투명하게 이루어지는 회사의 모습이었어요. 조금 더 찾아보니 구성원들이 회사에 대한 애정이 넘쳐나는 것도 신기했죠. ‘배려와 협동’을 통해 고객 창출과 만족이라는 성과를 이루고, 잡담을 중시하는 등의 문화와 관련 정보들을 찾아볼수록 이런 문화를 가진 회사라면 꿈을 실현시켜볼 수도 있겠다는 생각이 들어서 지원을 했었습니다. 마침 그때 제가 지원할 수 있는 직무를 채용하고 있었던 인연도 있었고요. 우아한형제들은 당시에 제가 지원한 유일한 회사였고, 현재에도 동료들과 배려와 협동의 가치를 실천하며 일을 하고 있습니다.

마무리하며

Q. 우아한형제들의 정보보호 담당자가 되고자 하는 분들께 면접 노하우를 한 가지만 말씀 부탁드립니다.

아, 너무 어려운 질문인데요. 저희가 면접을 볼 때는 시작 전에 지원자분들께 꼭 먼저 말씀드리는 것이 있어요. 저희가 드리는 질문의 대부분은 정답이 없고, 저희가 기대하는 답이 따로 없으니 평소에 하시던 생각을 그냥 솔직하게 말씀해 주시면 된다고요.

면접노하우라는게 결국 질문에 대한 답을 잘하는 것이겠죠? 면접 노하우를 말씀드리기 어려운데 그럼에도 불구하고 한 가지 말씀드린다면, 지금까지 해왔던 업무가 본인에게 어떤 의미였는지를 한 번씩 생각해 보시고 글로써 정리해보시면 어떨까 싶습니다. 해왔던 업무가 본인에게 생각의 전환 또는 깊이를 가져다줬을 수도 있고 업무적 역량을 키워줬을 수도 있을텐데요, 이것들을 체계적으로 구조화하고 정리해서 머릿속에 담는 훈련을 하신다면 어떤 질문을 받더라도 헤매지 않고 답을 잘 하실 수 있지 않을까요.

개발자 모집공고 바로가기

강상원 / 클라우드 엔지니어

담당업무 소개

Q. 상원님께서 팀장직을 맡고 있는 클라우드인프라개발팀의 주요 업무와 역할을 소개 부탁드립니다.

안녕하세요, 강상원 입니다. 먼저 저희 팀을 소개 드릴게요. 
클라우드인프라개발팀은 우아한형제들이 제공하는 서비스가 안정적인 환경에서 잘 운영되도록 시스템과 네트워크 두 가지 영역에서 업무를 맡고 있습니다. 퍼블릭 클라우드서비스 인프라 아키텍처를 설계, 운영하고 있으며 클라우드와 연동되는 온 프레미스 환경의 네트워크 관리도 팀의 주 업무입니다.

저희는 AWS 인프라를 서비스별로 분리하여 다중 계정(Multi Account) 구조로 운영하고 있는데요.
각 Account의  IAM, Route53, VPC 등 모든 공용 리소스를 관리하고 있기에 아래 두 가지 업무에 초점을 두고 있습니다.

  1. Account별 구성 표준화를 위하여 테라폼(Terraform)을 활용하여 인프라를 코드로 관리
  2. AWS 메인터넌스 자동화 및  리소스 모니터링 등 필요한 관리 기능을 Python, Node를 주로 사용하여 개발

IaC Tool과 주로 사용하는 언어를 말씀드리기는 했지만 모든 업무는 고객가치에 초점을 두기 때문에 가치를 이루기 위한 기술 선택은 자유로운 편입니다. 

과제의 우선순위

Q. 과제의 우선순위를 정하고 수행하는 전체 과정이 궁금합니다.

특정 업무에 대해 요청을 받는 경우에는 유관부서의 과제 일정에 맞추어야 하기에 긴급성을 우선적으로 고려하여 수행하지만, 팀에서 진행하는 과제는 ‘고객가치’ 관점에서 우선순위를 고려합니다.

서비스인프라실의 경우, 과제를 선정할 때 구성원 개인의 과제에 대한 호기심과 동기부여도 중요하게 여기기 때문에 Top-down 방식이 아닌 Bottom-up 방식을 선호하며, 아래의 절차로 과제를 진행합니다.
1) 먼저, 구성원들이 스스로 과제를 선정하고 고객가치와 아키텍처, 사용될 기술에 대하여 세부적으로 고민하고 팀에 공유합니다. 2) 다음으로 조직 내 다수의 구성원이 서로의 피드백을 받고 참고하여, 부족한 부분들을 보완해 나가며 과제를 구체화하는 단계를 거칩니다. 저희 팀이 소속된 서비스인프라실의 경우 Infra, SRE(Site Reliability Engineering), Database, Application 등 다양한 영역의 전문가가 모여있는 조직입니다. 하나의 과제에 대하여 다양한 분야의 관점에서 조언을 듣게 되는데요. 올바른 기술을 선택하였는지, 향후 연동시 고려해야 되는 부분이 있는지, 구축 후 활용도가 높은지 등 다방면으로 피드백을 받을 수 있어 과제 완성도를 높일 수 있습니다. 3) 협업이 필요한 유관부서에 내용을 공유하고 일정을 수립하여 과제를 수행합니다. 4) 마지막으로 과제가 완료되면 회고를 진행하여 아쉬웠던 부분은 다음 과제에 반영될 수 있도록 기록해 둡니다.

이처럼 구성원이 스스로 과제를 선정하도록 하기 위해서는 업무의 전체 과정과 피드백을 조율해 나가는 시간을 투자해야 하지만, 스스로 하고 싶은 일을 제안하고 동료들의 피드백을 통해 가치를 검증하고 있어서 업무 몰입도도 향상됩니다.

과제 수행 과정

Q. 우아한형제들에서 가장 기억에 남는 과제 및 에피소드를 이야기해주세요.

작년에 진행한 DX Location 구축 과제가 제일 먼저 생각나네요. 
과제를 진행하기 전에는 클라우드 – 온 프레미스(On-Premise) 간 네트워크 연동이 IPsec VPN으로 되어 있어 필요한 서비스를 1:1로 연결하다 보니 시스템 구조가 많이 복잡했습니다.
시스템 복잡성 문제를 해소하기 위한 해결방안으로 핀테크 클라우드 마이그레이션(Migration)이 결정되면서 클라우드 – 온 프레미스 간 네트워크 가용성이 중요해졌고 이를 계기로 우아한형제들 전체 네트워크 구조를 개선하는 과제를 제안하게 되었어요.

기존 메쉬(Mesh)형태의 연동 구조를 Hub-and-spoke 구조로 단순화하면서도 안정성, 비용 효율성 등을 가져갈 수 있는 구성이 무엇인지 동료분들과 많은 고민을 했던 기억이 납니다. 

저희가 확정한 구성은 AWS TGW(AWS Transit Gateway)를 이용하여 메인센터를 이중화 된 전용회선으로, 백업센터를 VPN Tunnel로 연동하고 전체 구간을 BGP(Border Gateway Protocol)로 연동하여 전용선 구간 장애가 발생하는 경우, 해당 경로만 VPN으로 전환되는 구성이었는데 해당 구성이 AWS에서 제안하는 Best practice는 아니었습니다.

인프라의 경우에는 한번 구축하면 변경이 어렵기에 구축 사례를 참고할 수 있는 아키텍처로 가야 할지 고민했지만 충분한 테스트를 거쳐 구성을 검증하고 과제를 선정하며 목표했던 가치를 실현하는 것으로 결정하였습니다. 구축 사례가 부족한 만큼 예상되는 장애 시나리오를 검토하고 다양한 테스트를 거쳤던 걸로 기억합니다. 또한 실제 서비스 트래픽을 전환하는 과정에서도 오피스, 대내 서비스, 대외 서비스 순으로 순차적으로 작업하고 검증하면서 전환을 완료하였습니다.

약 8개월 정도 진행한 다소 힘든 과제였지만 좋은 동료들과 함께 했기에 좋은 결과를 낼 수 있었는데요. 처음에는 목표 구성, 범위 등 서로 다양한 생각을 가지고 있었지만 함께 협의하여 목표를 맞추고부터는 편한 친구들과 토이 프로젝트를 하는 느낌으로 서로 격려하며 재미있게 일했던 좋은 추억이 되었습니다.

역량에 관한 생각

Q. 상원님의 지난 커리어 여정에서 클라우드 엔지니어에게 필요한 스킬셋을 확보하게 된 계기가 된 경험을 이야기 해주세요.

우아한형제들 입사 초기에는 온 프레미스(On-Premise) 환경의 네트워크 장비를 운영하는 업무를 담당하였습니다.
당시 AWS와 같은 퍼블릭 클라우드서비스에 대한 이해도는 거의 0에 가까웠는데 주변 동료분들을 통해 클라우드로의 업무 영역 확장 제안을 많이 받았어요.
회사의 기술 개발 방향성과 개인 커리어 향상 등을 고려해 업무 영역을 확장하게 되었는데요. 지금와서 돌이켜 생각해 보면 회사에서 다양한 지원을 받을 수 있어 빠르게 적응하고 스킬셋도 동시에 확장된 것 같아요.

회사에서 받은 지원으로 가장 먼저 생각나는 것은 새로 주어진 업무에 대한 부담감을 주지 않는 환경을 꼽을 수 있습니다. 당시에는 온 프레미스 환경을 개선하는 것에 조금 더 동기부여가 되어있었는데 클라우드로의 업무 확장에 대한 권유만 받았고 업무에서는 제가 진행하고 있던 업무와 관련 성과를 우선시 존중해 주었어요.
또한 클라우드 서비스 관련 도서 구입 지원, 업무 전문성을 강화하기 위한 교육비 지원과 세미나 참석 등의 회사 지원으로 기술을 비교적 빠르게 습득할 수 있었습니다.

마지막으로 무엇보다 스킬셋 확장에 도움이 된 것은 바로 기업 문화입니다. 장애에 대하여 개인에게 책임을 묻지 않고 시스템과 프로세스를 개선하고 보완하는 한편, 실패 사례를 솔직히 공유하여 다른 구성원이 동일한 실패를 겪지 않도록 하는 문화가 정착되어 있기에 새로운 업무영역에 대한 부담감도 거의 없었어요. 그리고 작년 조직장 업무를 권유받았을 때나 올해 초 쿠버네티스 클러스터(k8s cluster) 관련 업무를 권유받았을 때도 “실패하면 어떻게 하지?”라는 고민은 하지 않았습니다. 물론 맡은 일에 책임감을 갖고 좋은 성과를 낼 수 있도록 노력해야겠지만 혹여나 실패하더라도 이를 통해 배우고 개선하면 된다는 생각이 저에게도 스며들어 있는 것 같아요.

우아한형제들 조직문화

Q. 우아한형제들에서 함께 일했던 최고의 동료, 후배에 대해 말씀해 주세요. 어떤 점에서 최고였나요?

우아한형제들에서 근무한지 어느덧 5년이 되었네요.
사회생활을 시작하고 여러 회사에서 근무했지만 우아한형제들에서 가장 빠르게 성장하고 즐겁게 일한다고 생각합니다.
그 이유가 바로 기술과 일을 대하는 마음가짐과 태도를 배울 수 있는 좋은 동료분들이 많다는 것입니다.

저는 전사적으로 사용되는 인프라를 구축하고 지원하는 업무를 맡고 있기 때문에 다수의 과제를 다양한 유관부서와 수행해볼 수 있는 기회가 주어지는데요. 새로운 과제를 진행할 때마다 우리 회사에는 본인이 맡은 도메인에 대하여 전문성을 갖추고 과제의 완성도를 높이기 위해 적극적으로 일하는 분들이 정말 많다는 것을 느꼈습니다.

협업하는 과정에서 다른 직군의 업무를 수행하는 동료에게는 생소한 기술적인 문제까지 세심하게 설명하는 분들이 많아 인상 깊었고요. 아키텍처 및 연동 방안 등을 협의하는 과정에서도 상대방의 의견을 경청하고 동료의 좋은 의견은 본인과 의견이 다르더라도 고객 관점에서 가치를 판단하며 서로의 의견을 수용하는 모습을 보고 저 스스로도 협업 자세에 대하여 많이 깨우칠 수 있었습니다.

또한 잘 모르는 기술 분야에 대한 도움을 요청하면 본인이 알고 있는 지식뿐만 아니라 부족한 부분을 확인해가며 도와주시는 좋은 동료분들이 많아서 복잡한 문제도 잘 해결했던 경험들이 많습니다.

마무리하며

Q. 미래에 함께 일하게 될 엔지니어분들께 응원의 한 말씀 부탁드립니다.

안녕하세요! 우아한형제들에서 제공되는 서비스는 모두 클라우드 서비스 환경에서 운영되고 있습니다.
클라우드 환경은 온 프레미스 대비 인프라 복잡도가 높고 새로운 기술이 빠르게 출시되어 인프라 운영과 관련하여 많은 고민과 지속적인 개선 작업을 하고 있어요. 모든 엔지니어 분들이 저희처럼 본인이 소속된 곳에서 안정적인 인프라 환경을 제공하기 위해 많은 노력을 하고 계실 것이라고 생각하며 모두 좋은 성과를 내시기를 응원합니다.

더하여, 우아한형제들에서는 클라우드 엔지니어분을 적극 채용 중인데요. 우아한형제들은 상호 간의 소통을 중시하고 회사와 개인이 함께 성장할 수 있도록 많은 지원을 해주는 곳이라고 말씀드리고 싶어요. 좋은 기회로 함께 일하며 다 같이 성장하는 날이 오기를 희망합니다. 감사합니다.

개발자 모집공고 바로가기

백창준 / 품질 엔지니어

담당업무 소개

Q. 품질 엔지니어 창준님의 하루 일과를 ‘담당하시는 업무를 중심’으로 소개해 주세요.

안녕하세요. 품질개발팀 백창준입니다. 
저는 13년 차 엔지니어로 전 직장에서는 개발자 도구와 품질 도구를 개발하였고, 우아한형제들 품질개발팀과 인연이 닿아 합류한지 4개월이 되었습니다. 

현재 우아한형제들에서 품질개발팀의 팀장을 맡고 있는데요. 저의 하루 일과는 출근과 동시에 밤새도록 실행된 자동화 테스트 시스템을 점검하는 일부터 시작돼요. 시스템 동작에 이상은 없는지, 결함 검출 건은 있는지 등을 검토하고 개선할 사항들이 발견되면 백로그에 입력해 둡니다.

그다음으로는 시스템을 점검하고 다시 테스트를 재개시켜 놓은 후, 결함이 발견되면 테스트 리포트의 결함 경로와 관련 로그를 뽑아 이슈를 리포팅하고 있어요. 그와 동시에 간단히 선 분석도 진행하고 있는데요. 이러한 사전 분석은 조금 더 명확한 결함 및 이슈의 발생 상황과 근본 원인을 찾을 수 있고 시간을 단축하는 효과도 있습니다. 

최근에는 하루의 절반 이상을 미팅으로 보내고 있는데, 과제 계획 미팅 뿐 아니라 이슈 대응, 테스트 케이스 리뷰 등 다양한 논의를 위한 미팅을 하고 있어요. 또한, 팀장직을 맡고부터는 면접을 진행하거나 팀원분들과 면담하는 시간으로 하루를 보내고 있습니다.

팀장으로서의 역할

Q. 창준님께서 팀장으로서 맡고 있으신 업무를 조금 더 상세히 알려주세요.

사실 저는 팀장직에 임명된지 한 달도 채 안되는 병아리 팀장입니다. 제게 주어진 주요 업무는 구성원이 아닌 팀장의 시각으로 팀에 주어진 미션들을 달성하기 위한 고민을 하고 실현하기 위한 구체적인 계획을 수립하는 일입니다. 
조금 더 자세히 말씀드리면 지금보다 많은 개발조직과 과제들을 지원하고, 업무 프로세스를 정비하여 효율을 높이는 역할인데요. 팀 차원의 일보단 제 개인에게 국한된 역할을 말씀드리겠습니다.

현재 제가 맡은 가장 중요한 역할은 구성원들의 업무 관련 어려운 사항들을 돕는 일입니다.
그 외에도 개인적인 고충과 업무에서 오는 어려움과 성장을 위한 고민을 비롯해 현실과 이상의 괴리 등 다양하고 많은 이야기를 나누고 있어요.
저 역시 얼마 전까지 구성원이었기에 충분히 공감하고 돕기 위해 노력하고 있지만 아직은 경험이 부족하여 좌충우돌에 혼란을 만들기도 합니다. 병아리 팀장 때문에 저희 구성원들이 고생하는 것 같아 항상 미안한 마음입니다.

두 번째로 중요한 업무는 팀의 성과가 잘 보이도록 표현하는 것입니다.
저희 팀 과제의 방향을 부문, 실의 사업 목표와 일치시키고, 이를 경영 측면에서 효과적으로 표현할 수 있어야 구성원들의 시간과 노력을 헛되게 하지 않을 수 있습니다. 매일 이런저런 메트릭(Metrics)을 구하고 그래프로도 그려보고 있지만, 신뢰할 수 있는 데이터를 확보하기 위해서는 어떠한 정보를 고려해야 할지, 경영 성과와 지표의 표현 방법이 올바른지 고민하고 또 고민해도 정말 어렵습니다. 세상의 모든 팀장님들에게 존경의 마음을 보냅니다.

마지막으로는 팀장이 아닌 개발자로서의 업무도 빼놓을 수 없습니다.
과제 로드맵상 여러 액션 아이템이 있지만 현재 진행하고 있는 것은 크래시 자동검출 도구입니다. 말 그대로 크래시를 자동으로 분석하고 검출해내며, 테스트 케이스 없이 크래시 위험요소를 분석하는 도구인데요. 흔히 알려진 몽키나 랜덤보다는 조금 더 똑똑합니다.
아직은 시작 단계여서 단독 수행만 가능한 형태로 매번 사람 손이 필요하지만, 곧 Slack, Gitlab 등과 같은 다른 도구들 과도 연계하여 사람의 손이 필요 없이 365일 24시간 자동으로 테스트할 수 있는 환경을 갖추게 됩니다.
크래시 자동검출 도구가 완성되면 자체적인 디바이스팜(Device Farm)을 제공하거나 UI 결함 검출을 할 수 있는 기반이 될 것으로 기대하고 있습니다.

도전 과제

Q. 올해 우아한형제들에서의 도전 과제 두 가지만 말씀 부탁드립니다.

저희 품질개발팀은 주로 사용자 입장에서 ‘우아한형제들의 서비스’를 고민하는 과제와 업무들을 맡고 있어요. 그렇다 보니 매뉴얼 작업이나 사용자와의 접점이 있는 앱과 프론트 영역에 업무 비중이 집중되어 있습니다. 하지만 품질개발팀에 주어진 미션들은 사용자와의 접점뿐만이 아닌 전체 개발 조직에 대한 품질 활동입니다.

지금까지는 신규 입사자분들을 앱과 프론트 영역 외 잘 지원하지 못한 팀을 담당하도록 하여 기획 단계부터 참여하는 방식으로 품질 활동을 해왔지만, 전사의 모든 팀을 감당하기엔 현재의 인원으로는 불가능하다고 판단하였습니다.

올해가 많이 남지는 않았지만, 전체 개발 조직에 대하여 어떤 활동을 해야 생산성과 품질 목표를 달성할 수 있을지를 고민하고 있습니다. 모든 팀에서 공통으로 사용할 수 있는 도구와 활용할 수 있는 리포트, 테스트 케이스 등을 통해 지금까지와는 다른 형태의 지원을 할 수 있지 않을까 생각하고 이것이 올해의 첫 번째 도전 과제입니다.

두 번째 도전 과제는 자동화 비율을 높이는 것입니다.
사용자에게 전달되기 직전에 결함을 막아내는 게이트키퍼(Gate Keeper) 역할에서는 자동화를 도입하기 어렵습니다.
사람의 행동을 기계가 따라 하고 사람이 판단하는 결함을 기계가 판단하게 하는 것은 UI 테스팅 분야에서는 특히 더 어렵고요. 그렇지만 현재 업무량을 효과적으로 관리하기 위해서는 어떻게든 자동화 비율을 늘려야 하는 것도 사실이죠.

현재의 매뉴얼 테스트의 비중을 점진적으로 낮춰가야 하겠지만 당장 활용 가능한 기술들, 예를 들어 이력 기반의 탐색 기술과 퍼징 기술을 활용하여 5% 이상 자동화 비율을 높이는 것이 목표입니다. 단기간에 큰 역할을 하지는 못할지라도 최소한의 크래시 등의 문제는 사전 검출하고, 사람이 생성할 수 없던 복잡한 시나리오들을 생성 가능할 것으로 기대하고 있습니다.
올해가 지나고 내년에 과제가 완성되면, 더 스마트하고 생산성 높은 도구들을 만들어낼 수 있는 기반이 될 것입니다.

역량에 관한 생각

Q. 품질 엔지니어로서 좋은 성과를 내기 위해서는 어떤 기술 역량이 필요한가요?

대체로 품질, 테스트와 관련된 업무를 한다고 하면 손으로 이루어지는 노동집약적인 업무를 생각하는 분들이 있습니다. 과거와 같이 연구가 부족하고 적절한 도구가 부족하던 때엔 실제로 그러하기도 했기에 그 시절 품질 엔지니어의 주된 덕목은 꼼꼼함, 끈기, 근면함이었습니다.
결함을 찾을 때까지 오래 앉아있는 사람이 승리하는 그런 시절이었죠. 불과 10여 년 전의 이야기입니다.

근래에는 상황이 바뀌었습니다. 코드를 분석하여 결함과 취약점을 자동으로 찾아내고, 코드를 리뷰하여 자동으로 테스트 입력을 생성하고 수행하는 도구가 많이 존재합니다.
이 도구들은 사람이 할 수 없는 무한대의 입력값을 만들어내어 생각지도 못한 예외 상황을 만들고 사람이라면 놓칠 수 있는 결함들을 놓치지 않습니다.

최근에는 사용자 행동 패턴 데이터를 학습하여 사람과 유사한 동작을 하며 결함을 검출하는 도구들도 나와있습니다.
여러 도구들의 특징과 장/단점을 잘 파악하여 적재적소에 사용할 수 있는 능력이 현시대의 품질 엔지니어에게 중요한 역량이 되었고 그런 도구를 직접 개발할 수 있다면 금상첨화인 시대가 도래했습니다. 

또 다른 필요 역량은 소프트웨어 엔지니어와 같은 문제 해결 능력입니다. 소프트웨어 엔지니어와 품질 엔지니어는 별반 다르지 않다고 생각합니다. 차이가 있다면 소프트웨어 엔지니어는 문제 해결을 위하여 직접 코드를 생산한다는 것이고,
품질 엔지니어는 생산된 코드의 동작 문제를 파악하거나 해결하기 위해 코드를 생산한다는 것입니다.

예를 들어, 사용자의 행동을 예측하기 위한 데이터 분석 능력은 결함을 예측하기 위해 사용되는 것과 같고 결함을 판단하고자 하는 코드에는 이미지 비교, 트리 탐색, 문자열 벡터화 등의 기술이 사용됩니다. 대규모의 테스트 팜을 운영하기 위해선 가상화, CI/CD 기술 역시 필수적이죠.
아직 우아한형제들에서는 초보적이고 작은 규모로 시작하는 단계입니다. 국내외 유수의 기업에서는 다양하고 큰 규모의 테스트 인프라와 기술을 갖고 있고, 이는 품질개발팀의 장기적인 목표입니다.

가끔 제가 좋아하는 선배님께서 하신 말씀이 떠오르곤 하는데요. 모자를 바꿔쓰는 역량이 필요하다고 하시더라고요. 사용자라고 쓰여진 모자를 쓰고 테스트를 하고, 개발자라고 쓰여진 모자를 쓰고 리포팅하며, 경영자의 모자를 쓰고 결과 보고를 할 수 있어야 한다면서요. 이렇게 써놓고 보니 정말 어려운 일이네요. 정말 쉽지 않은 일이니 저도 끊임없이 계속 노력할 뿐입니다.

품질개발팀의 장점과 문화

Q. 우아한형제들 품질개발팀만의 매력을 알려주세요.

저희 팀명(품질’개발’팀) 으로도 예상할 수 있는 저희 팀은 단순히 테스트만을 하는 팀은 아닙니다. 테스트 데이터를 모아 취약 지점을 분석 및 예측하고, 품질 목표 달성을 위한 기반 기술 및 자동화 시스템을 개발합니다.

그 밖에도 정말 많은 매력과 장점이 있는데요. 먼저는 팀의 실무자분들도 기획과 개발의 과정에 적극적으로 참여할 수 있는 역량을 갖췄다는 점입니다. 백엔드, 프론트엔드, 앱 등 배달의민족을 구성하는 모든 부분을 다루며 전체적인 구조를 볼 수 있는 기회도 있고 개발 완료된 따끈따끈한 결과물을 사용자 입장으로 가장 먼저 만져볼 수 있다는 것도 큰 장점이겠고요.

두 번째로는 품질 목표 달성 과정의 기술적인 문제들을 해결하기 위하여 많은 연구와 개발을 수행하고 여러 문제 해결을 위해 제약 없이 본인이 사용하고 싶은 개발 언어, 플랫폼, 프레임웍을 활용해 볼  수 있습니다. 또한 신설된 팀이기에 부끄럽지만 이제부터 적극적으로 테스트 인프라 구축 및 기술 개발을 하려고 하는 시작점에 있고, 그렇다 보니 더 부끄러울 레거시가 없어 하얀 백지 위에서 여러분께서 원하는 그림으로 그려 나갈 수 있습니다.

세 번째로 저희는 품질 관련 경력이 없더라도 소프트웨어 엔지니어라면 얼마든지 함께 일할 수 있습니다.
다양한 테스트를 통해 자신이 구현한 코드에 확신을 갖는 과정을 즐겼던 개발자라면 저희 팀에서 함께 충분히 즐겁게 일할 수 있는 환경을 갖췄다고 자부합니다. 또 다른 매력은 개별 기능으로써의 관점이 아닌 사용자가 서비스를 사용하는 과정으로 코드를 바라볼 수 있다는 점이에요. 관점이 바뀌는 새로운 경험을 하실 수도 있죠.

테스트 프로세스, 방법론, 기법을 잘 모르겠다고 망설이시는 분들은 코드 품질을 올리기 위한 수많은 고민과 시도들만 말씀해 주세요. 부족한 부분은 저희가 채워드릴 수 있으니 함께 만들어가요.

마지막으로 심지어 저희 팀은 컴퓨터공학, 소프트웨어의 전공자가 아니어도 수행 가능한 업무가 있다는 사실입니다.
기획안을 보고 사용자 입장에서의 통찰을 갖고 매의 눈으로 부족한 부분을 찾아낼 수 있는 분들,
많은 경험을 바탕으로 무엇이 좋은 사용자 경험일지 고민하시는 분들을 환영합니다.
소프트웨어 개발과 친하지 않더라도 걱정하지 마세요. 역시 저희가 채워드릴 수 있습니다. 저희는 배려와 협동하며 함께 도전하고 성장하고자 노력하는 팀입니다.

마무리하며

Q. 우아한형제들의 품질 엔지니어 직무에 관심을 가지고 계신 분들께 책 한 권 소개 부탁드립니다.

제가 두고두고 곱씹으며 참고하는 책이 한 권 있습니다. 테스팅계에서는 너무나도 유명한 제임스 휘태커의 “구글은 어떻게 테스트하는가” 입니다.
휘태커는 2009년 MS에서 탐색적 테스트에 대하여 체계적으로 정리해 준 “Exploratory Software testing”을 저술한 이후, 2012년 구글을 재직하며 책을 냈는데요. 그 시절 저술한 책에서 구글의 품질 문화가 어떻게 변화하였는지, 테스팅 조직이 어떻게 생산성 조직으로 변화했는지, 모든 팀에서 코드 품질을 어떻게 다루는지 엿볼 수 있습니다.

또한 테스트 엔지니어와 매니저, SWE 와 SET의 관계와 미래를 보여주고, 크롬 OS 의 사례를 통해 이해를 돕습니다.
휘태커는 저술 후 구글을 떠났고, 지금은 2021년으로 개발 환경, 테스팅 환경이 엄청나게 변화하였습니다.
하지만 업무의 본질은 여전하고 많은 기업들과 조직이 품질 문제로 겪는 어려움도 여전합니다.
수준 높은 품질 목표를 달성하고자 하는 사람들에게 방향을 제시해주는 책으로 꼭 한번 읽어보시길 추천드립니다.

개발자 모집공고 바로가기

심규석 / SRE 엔지니어

담당업무 소개

Q. 우아한형제들의 SRE 엔지니어, 규석님의 하루 일과를 소개해 주세요.

안녕하세요, 클라우드스토리지개발팀에 심규석입니다. 
최근에도 전사 재택근무가 이어지고 있어 아침 9시 반에 집에서 근무를 시작하고 있어요. 
가장먼저 메일이나 슬랙 메시지를 확인하며 예정된 유지보수 작업이 있는지, 외부에서 요청된 작업은 어떤 것이 있는지, 점검할 시스템이 있는지 등을 확인하고 파악합니다.

다음으로는 지라 이슈 티켓을 확인하고 하루동안 진행할 주요 업무를 계획하고 있습니다. 또 어제 진행한 일에 대해 공유할 내용을 간단하게 생각해보고 정리도 해요. 이렇게 출근 직후에는 하루에 진행할 업무와 회의 등을 계획하고 정비하는 시간을 가지고 있습니다.
오전 10시가 되면 스크럼 미팅에서 팀원 간에 업무 계획을 공유하고 있어요. 재택근무가 활성화되어있기 때문에 Zoom을 활용해 원격으로 미팅이 진행됩니다. 
아무리 단순한 질문이더라도 서로 편하게 공유할 수 있는 분위기를 만들기 위해 노력하고 있는데요. 
팀 분들과 대화하는 시간을 가지면서 각자가 맡은 업무를 더 빠르게 해결하는 데 도움이 될 수도 있고, 막히던 문제를 해결하는 단서가 되는 경우도 있습니다. 마치 아무리 힘을 줘도 안열리던 잼 뚜껑을 지나가던 사람이 쉽게 열어주는 그런 상황이랑 비슷한 것 같아요. 

또한 업무회의 외에도 하루 일과중에 팀원분들과 온라인 티타임도 종종 가지는데요. 출근을 하지 않아 팀원 간에 한 공간에서 마주하거나 접촉하는 기회가 없기 때문에 소소하게 이야기를 나눈다거나, 간단한 질문 등을 주고받기엔 어려움이 있었어요. 그래서 팀에서 주기적으로 가지는 티타임도 생겼죠. 
개발에 집중하다가 편안한 분위기에서 팀원들과 이야기를 나누면서 다시 집중할 수 있는 에너지를 얻기도 하고 또 개발 과정에서 어려움을 겪었던 부분은 아이디어를 얻어가기도 합니다.

저는 ‘회의가 없는 날’에는 개발업무에 몰입할 수 있도록 하루 일과를 계획해요. 일정이 급한 팀 회의가 아니라면 가급적 다른 날에 진행하도록 서로 배려하여 회의 일정을 조율하고 있습니다.

주요 역할 및 과제

Q. 규석님께서 우아한형제들에 합류하신 이후부터 현재까지 맡아오신 주요 역할 및 업무 세 가지만 소개 부탁드립니다.

대표적으로 참여한 과제 세 가지로 소개드릴게요. 먼저, 배포 플랫폼이 있고요. 사내 백오피스의 인증 및 권한을 제공했던 백오피스 인증 플랫폼, 그리고 현재 팀의 업무인 메트릭 모니터링 시스템입니다.

가장 먼저, 배포 플랫폼은 우아한형제들에 합류해서 처음 진행했던 프로젝트인데요. 
기존에 사용하던 AWS의 PaaS 배포를 대체해서 상대적으로 빠른 시간 안에 배포될 수 있도록 하는 것에 대한 여러 배포 전략을 지원하는 프로젝트였습니다. 무엇보다 배포한 뒤 변경된 부분에 문제가 발생한다면 빠르게 롤백 할 수 있도록 대응하는 것이 중요했어요.  

두 번째 백오피스 인증 플랫폼은 고객 서비스가 아닌 백오피스를 위한 인증 및 권한을 위한 프로젝트입니다. 
사내의 여러 팀들이 인증 및 권한 기능을 중복으로 개발하는 데서 발생하는 비용을 줄일 수 있도록 하는 과제였어요. 플랫폼을 통해 백오피스마다 동일한 수준의 보안 요구 사항을 달성하고 개인정보 처리 및 접근 기록 등을 점검할 수 있도록 보안팀과 협업하여 요구 사항을 정리했던 기억이 납니다.
백오피스 인증 플랫폼은 스프링부트와 Kotlin으로 백엔드 서버를 작성했던 프로젝트였는데요. 그 당시에는 사내에 백엔드 서버를 Kotlin으로 개발하는 프로젝트가 없었지만, SRE 엔지니어분들이 개발하던 여러 플랫폼 서비스들은 kotlin으로 개발을 시작했어요. 비록 익숙하지는 않았지만 언어 자체에서 많은 함수를 제공하여 간결하게 표현할 수 있었습니다. 얼마 전에는 여러 팀에서 백엔드 및 안드로이드 어플리케이션을 Kotlin으로 작성했던 경험을 나누는 사내 Kotlin Meetup도 진행되었고 경험으로 알게된 문제 해결방법, Java와 Kotlin과의 차이 등을 주제로 이야기를 나누었습니다.

마지막으로 클라우드스토리지개발팀에서는 사내 여러 시스템의 지표를 확인하고 이상이 감지되었을 때 알림을 전달해 주는 모니터링 시스템을 개발하고 운영하고 있어요. 앞서 소개드린 배포 플랫폼이 장애 상황에서의 롤백 및 빠른 수정사항 배포가 중요했다면 모니터링은 장애의 인지 및 문제점을 확인하기 위해서 중요합니다.   

먼저, 모니터링 시스템은 크게 세 가지로 나눌 수 있어요. 메트릭이랑 로그 그리고 알람입니다. 
현재 제가 맡고 있는 과제이니 조금 더 자세히 소개드릴게요.
각 시스템은 여러 오픈 소스들을 사용해 직접 구성하여 운영하고 있는데요. 프로메테우스(Prometheus), 로키(Loki), ELK(Elasticsearch Logstash Kibana)를 사용하고 있고 이렇게 구성된 모니터링 시스템으로 우아한형제들의 여러 서비스의 애플리케이션, 인스턴스 그리고 클라우드 리소스들의 지표와 로그를 수집해서 가시화하고 있습니다.

또한 모니터링 시스템의 특장점은 많은 데이터의 실시간 처리와 저장입니다. 여러 서비스로부터 수집하는 정보들은 유실이 없어야 하고 즉각적으로 조회할 수 있어야 하죠. 이처럼 내구성 있는 모니터링 시스템을 위해 어떻게 분산해서 처리할지 등의 아키텍처를 고민합니다. 또 많은 데이터를 어떻게 저장하는지에 따라 비용의 차이가 클 수 있기 때문에 이런 부분들도 동시에 고려하고 있습니다.

지표를 수집해야 하는 대상은 EC2(Elastic Compute Cloud) 인스턴스(Instance), JVM(Java Virtual Machine) 웹 어플리케이션, AWS 클라우드 리소스 등 다양하게 존재하고, 이에 따라 각 지표의 저장 및 조회가 CloudWatch, New Relic, ELK 등 여러곳에서 이루어지고 있어요. 이렇게 파편화되어있다면 사용자 입장에서 각자 다른 방법으로 적용 및 조회해야 하므로 번거롭고, 또 중요한 지표에 대한 알람 설정을 놓칠 수도 있습니다. 제가 맡은 메트릭 모니터링은 여러 군데에서 저장되고 조회하고 있는 지표와 로그를 한곳에서 사용하기 쉽게 제공하고, 새로운 서비스를 개발하며 동일한 수준으로 시스템 가시성을 확보할 수 있도록 자동화하는것을 고민하고 있습니다. 

메트릭 모니터링 프로젝트가 완성되면 장애를 이전보다 빠르게 탐지하고 문제해결을 위한 화면을 제공할 수 있을것으로 생각합니다. 또한 이렇게 측정된 데이터를 활용해 구성원들이 사업적인 통찰력도 빠르게 확보할 수 있을 것으로 예상하고 있습니다. 

과제의 우선 순위

Q. 여러 과제의 우선순위를 결정하는 과정을 말씀해 주세요.

저희 팀은 분기 단위로 어떤 업무를 우선적으로 선택하여 진행할지 이야기를 나누는데요. 각각의 과제가 완료되었을 때 실제 사용하는 사람들에게 어떠한 가치를 제공해 줄 수 있는지에 집중하여 고민합니다. 정리하면 사용자에게 더 큰 가치를 전달하는 업무들을 먼저 고려하고 있습니다.

예를 들면 “사용자가 언제든 오래된 로그를 직접 조회할 수 있다.”와 같이 사용자 입장의 언어로 정의해본 후, 이를 위해 필요한 기술 선택이나 개발 등 상세한 사항들은 스프린트 플래닝에서 논의합니다. 설정 튜닝(Tuning)을 한다거나 파일 저장 방식을 바꾼다거나 또는 개발과정을 자동화하는 등 자유롭게 제안하고 최종적으로 작업을 수행하는 사람이 결정하게 됩니다.

스프린트에서 계획된 업무는 필요하다면 진행 과정에서도 우선순위를 유연하게 변경하기도 합니다. 더 좋은 방법이 생각났다면 팀 논의 일정을 만들어서 서로 의견을 제안하고 경청하며 과제 수행의 방향을 변경하거나 우선 실행되어야 하는 업무들을 추가할 수도 있습니다.

이러한 과정들은 팀내에서 자율적으로 이루어지고 있어요. 사용자 관점에서 가치를 전달하기 위한 목표 및 예상되는 작업과 일정들은 엔지니어들이 직접 결정합니다. 팀원들과 함께 나눠서 진행해야 하는 업무나 주요 변경 사항의 배포 등 의논이 필요한 것들 또한 구성원 개개인이 스스로 고민하고 요청하고 있어요.

역량에 관한 생각

Q. 우아한형제들의 SRE 엔지니어 구성원분들은 어떠한 역량을 갖추셨는지 궁금합니다. 대표 역량 세 가지만 말씀 부탁드립니다.

우아한형제들은 많은 시스템이 오픈소스 소프트웨어를 기반으로 구성되어 있습니다. 또한 시스템이 여러 부서에 걸쳐 사용되기 때문에 가용성 있는 아키텍처에 대한 이해가 필요합니다. 예를 들면 HA 구성이나, 클러스터링과 같은 것들을 고려할 수 있어야 합니다. 
즉, 내구성 있는 시스템과 서비스 성장에 따라 확장할 수 있는 아키텍처를 고민하고 구성하는 역량이 필요해요. 
가용성 및 확장성을 위한 아키텍처는 많은 컴포넌트를 배포해야 합니다. 또 확장하는 경우 새로운 인스턴스를 원하는 설정으로 실행하여 기존 클러스터에 추가될 수 있어야 돼요. 이런 작업들은 사람이 직접 하나하나 수행하고 컴포넌트의 상태를 관리하기 어렵습니다. 이런 점을 개선하기 위해 테라폼(Terraform) 이나 플루미(Pulumi) 를 통해 인프라를 코드로 작성하고 있어요.

두 번째로 우아한형제들의 SRE 엔지니어는 다양한 언어로 개발하고 있어요. 
저희 팀에서는 Go 언어로 백엔드 API 서버를 개발하고, 필요한 페이지들은 주로 리엑트(React)를 사용하고 있습니다. 앞에서 말씀드렸던 지표 수집을 위한 익스포터(Exporter)도 Go 언어로 개발하고 있고요. 
단순히 팀에서만 사용할 스크립트를 작성하는 것이 아니기 때문에, 읽기 좋고 쉽게 확장할 수 있는 구조의 코드를 고민하고 만들어낼 수 있어야 해요. 또한 자동화된 단위 테스트 작성도 자신이 개발한 코드라면 기본적으로 포함해서 리뷰할 수 있어야 합니다. 

세 번째는 프레임워크나 오픈소스의 내부 작동원리를 코드만으로 파악할 수 있는 역량이 필요합니다. 
시스템에 장애가 발생하는 경우, 원인을 분석하고 파악하기 위해서는 사용하는 프레임워크 및 라이브러리에 해당하는 버전의 코드를 확인하는 일들이 필요합니다. 또 많은 트래픽을 처리하기 위해서 설정값을 조절하거나 개선이 필요할 때에도 해당 오픈소스의 코드를 확인해야 하는 경우가 자주 발생합니다. 

사실, 코드로 인프라를 관리하고, 확장 가능한 아키텍처를 처음부터 모두 고려해서 달성하는 것은 어려운 일이에요. 
저의 경우도 처음 배포 플랫폼 개발에 참여했을 때에는 테라폼이나 쿠버네티스같은 클라우드 관련 기술 셋이 익숙하지 않았어요. 하지만 동료 엔지니어와 지식을 공유하며 업무를 계획하고, 문제를 해결해 나가면서 릴리즈할 수 있었습니다. 비록 시작은 젠킨스(Jenkins)를 패키지 관리자를 통해 직접 설치했었지만 릴리즈 시점에는 쿠버네티스를 런타임으로 빌드 및 배포 시점 요구 사항에 맞춰 노드를 확장할 수 있는 아키텍처로 10개 이상의 AWS 계정에서 사용할 수 있었습니다.

먼저 원하는 플러그인과 설정의 젠킨스를 생성하기 위해 필요한 것들을 컨테이너에 넣어 도커라이징(Dockerizing)을 했습니다. 이후에 배포할 서비스를 실행할 AWS 클라우드 리소스 생성을 자동화하기 위해 테라폼이 도입되었어요. 자바 외의 다른 빌드 환경은 쿠버네티스를 통해 필요한 환경의 노드를 선택할 수 있었고 또한 여러 배포 요청에 유연하게 노드를 확장할 수 있었어요. 단계적으로 문제를 해결하면서 아키텍처가 변경되었습니다.

만약 처음부터 까다롭고 복잡한 요구 사항을 충족해야 하거나 어떠한 상황에서도 장애가 발생하지 않는 플랫폼을 개발해야 하는 상황이었다면 그 과정이 매우 힘들었거나 최악의 경우 실패했을 수도 있을 거예요. 하지만 엔지니어가 스스로 계획하고 결정할 수 있는 환경이었기 때문에 동료들과 함께 목표를 고민하고 기존의 어려움을 단계적으로 해결하며 달성할 수 있었다고 생각합니다.

경험이 많은 시니어 개발자라면 여전히 빠르게 성장하는 우아한형제들 서비스의 많은 트래픽을 처리하며 여러 분야의 전문가와 신뢰성 있는 플랫폼 개발을 수행하며 가치를 만들어내실 수 있고, 역량을 키우고 싶은 주니어 개발자라면 동료 개발자와 함께 고민하고 기여하며 성장하실 수 있는 환경이라고 생각합니다.

우아한형제들 조직문화

Q. 규석님께서 우아한형제들을 선택하신 가장 큰 이유는 무엇이었나요?

우아한형제들에 관심을 두게 되었던 계기는 의외로 특정 기술이 아닌 “송파구에서 일을 더 잘하는 11가지 방법” 이었는데요. 그 이유는 제가 당시에 읽고 있던 “에어비앤비 스토리”라는 책 때문이에요.

책 제목 그대로 에어비앤비라는 회사가 시작부터 성장해가는 과정에 관한 책이었습니다. 회사가 성장함에 따라, 창업자 세 명과 몇 명의 직원으로 더는 사업을 지속할 수 없어서 채용이 필요한 시점이었어요. 이때 에어비앤비는 회사의 비전과 핵심 가치를 고민하고 회사 문화를 만드는 일을 우선으로 여겼다고 합니다. 이것을 기준으로 함께 일할 사람을 선택하면, 굳이 설명하지 않아도 창업자들과 동일한 방법으로 회사에 기여할 것이라고 기대했다고 해요. 이런 사람들이 모여야 어떻게 일해야 하는지 통제하지 않을 수 있고, 이를 통해 혁신이 있을 수 있다는 내용이었어요. 뿐만 아니라 고민해서 정의해둔 문화나 핵심가치의 내용이 그 자체로도 좋았던 기억이 납니다.

물론 우아한형제들은 에어비앤비와는 추구하는 가치나 문화는 달랐는데요. 그럼에도 우아한형제들의 기업문화를 접하는 순간 매우 많은 고민을 통해 만들었다는 것이 느껴졌어요. 그 외에도 ‘우아한 비전’이라던가 ‘핵심가치’ 등 다른 것들도 눈에 띄었고, 마찬가지로 어떤 회사가 되고 싶은지 그리고 어떻게 회사가 계속 성장할 것인지에 대한 많은 고민이 있다는 것이 느껴졌습니다. 회사가 이렇게 만들고 싶은 문화를 고민했다면 그에 상응하는 사람들이 모여있을 것이라고 생각했고 그렇다면 충분히 좋은 곳일 거라는 기대가 생겼습니다. 단순히 서비스를 사용할 때에는 잘 몰랐지만, 관심을 가지게 되니 수수료 체계도 다른 곳과는 다르다는 것을 알게 되었어요. 이러한 차별화된 서비스 가치관이 있음에도 불구하고 업계의 선두에 있었기 때문에 분명 성장의 기회가 될 수 있겠다는 생각이들어 선택하게 되었습니다.

마무리하며

Q. SRE 엔지니어가 되고자 하는 개발자분들께 클라우드 스토리지개발팀을 자랑해 주세요!

클라우드 스토리지개발팀은 SRE 엔지니어와 데이터베이스 엔지니어로 구성되어있는 팀입니다. 
그렇기 때문에 데이터의 수집부터 분산 처리, 효율적인 저장 및 빠른 데이터 조회를 제공하기 위한 과정 전반에 걸쳐 전문성을 발휘하며 성장할 수 있는 기회가 있습니다. 

또한 앞서 소개드린 SRE 엔지니어 직무 외에도 다양한 기술 스택과 분야에 걸쳐 전문성을 발휘하고 있는데요.
CI/CD, 쿠버네티스, 데이터 파이프라인, 비즈니스를 위한 플랫폼 서비스, 옵저버 빌리티 도구들, 장애 및 서비스 업타임관리, 포스트모텀 등 자세하게 언급하지 못한 여러 영역에서 많은 유관 부서들과 협업하고 있습니다. 

저희 팀은 다양한 연차와 전문성을 갖춘 팀원들로 구성되어 있는데요. 업무의 자율성 측면에서 팀내 대화와 배움의 기회가 부족하진 않을까 우려할 수 있을듯합니다. 그 점에 관해서는 팀원 간의 고른 역량 강화와 좋은 기술을 선택하기 위한 스터디도 꾸준하게 진행하고, 문화적인 측면도 고려해 온라인 티타임, 하우스 룰 등을 만들어 진행하고 있어요.

우아한형제들의 여러 서비스는 여전히 빠르게 성장하고 해결해야 하는 도전적인 문제들이 있어, 재미있게 개발할 수 있습니다. 이렇게 다양하게 열린 기회와 즐거움을 함께하며 같이 성장하면 좋겠습니다.

개발자 모집공고 바로가기

이청규 / IT 기획•개선

담당업무 소개

Q. 우아한형제들에서 청규님이 맡고 있으신 주요 업무에 대해 소개해 주세요.

안녕하세요. IT업무프로세스개선팀의 협업 도구 운영자 이청규입니다.
저는 우아한형제들의 구성원이 업무를 수행하고 협업하기 위해 필요한 JIRA, WIKI(Confluence), Google Workspace(이전 G Suite), Slack, AD(Active Directory)를 관리하는 Administrator 역할을 담당하고 있는데요. 
전사 구성원이 협업과 커뮤니케이션을 잘 할 수 있도록 시스템을 만들고 운영 프로세스를 정비하거나 점검, 개선하여 보다 편리하고 효율적으로 일할 수 있도록 지원하는 동시에 전사에 가이드를 제공하는 업무를 맡고 있습니다.

최근에는 ‘계정 통합’이라는 키워드가 실현될 수 있는 액션 플랜을 목표로 DH(Delivery Hero)와 코웍(Co-work·협업)에 집중하고 있습니다.

일의 목적과 방식

Q. 우아한형제들에 새로운 업무 도구와 시스템을 도입하여, 전사 구성원에게 최대의 효율과 편의를 제공하기 위해 최우선으로 고려하시는 사항은 무엇인가요?

협업 도구는 특정 조직만 도입하거나 활용하면 협업 도구로서의 가치나 의미가 희석됩니다. 전사적으로 모든 구성원들이 함께 활용할 수 있어야 최상의 효과를 발휘할 수 있으므로 ‘어떻게 하면 우아한형제들의 구성원이 잘 활용할 수 있는 도구를 도입할 수 있을까’를 최우선으로 고민합니다.
예를 들어 저희 팀에서 운영하는 JIRA라는 이슈 관리 도구가 있는데요. Word 또는 PPT에 익숙한 비개발직군의 구성원은 JIRA를 처음 접하는 경우에 진입 장벽을 느낄 수 있습니다. 이 같은 차이점을 이해하고 인정하며, 돌파할 방법을 고민하고 시도하는 것이 가장 중요합니다. 

이러한 첫 번째 시도가 누구나 이해할 수 있는 자연어로 작성된 전사 가이드 포스팅입니다. ‘[안내] 그것을 알려드림 #JIRA권한’ 처럼 매주 그것을 알려드림 시리즈를 그룹웨어에 게시하고 있어요. 호기심을 자극하고 원리를 설명하는 콘텐츠로 JIRA의 거부감을 줄이려고 시작했는데, 구성원분들의 호응도 좋았고 JIRA 인입 또한 늘었습니다.

두 번째는 상대를 배려하는 소통과 친절함입니다. 
전사 협업 도구나 시스템에 이슈가 발생한 경우 외에 단순한 질문에도 궁금증과 문제가 해결될 때까지 지원해 드리고 있어요. 또한 반복되는 질문들은 FAQ로 WIKI에 정리하고 공유하고 있습니다.
그 과정에서 최근에 터득한 업무 노하우인데요. 짧은 영상으로 제작해서 설명하면 효과와 반응이 꽤 좋더라고요. 항상 친절한 응대로 질문하는 것에 대한 망설임이 생기지 않는 분위기를 조성하려고 합니다.

마지막으로 지속적인 관심을 가지고 개선하려는 마음가짐이 필요합니다.
시스템이나 도구 등을 새로이 도입하고 정착시키기까지의 과정에는 노력의 성과가 나타나는 찰나의 순간이 있다고 생각합니다. 즉 정착 단계로 전환되기 직전까지가 가장 어려운 것 같습니다.
도입 초기에는 많은 요구 사항을 수용하면서 시스템이 지저분해질 수도 있는데요. 이 단계를 넘긴 후에도 운영자는 일관성 있게 시스템이 유지될 수 있도록 모니터링하며 정리해 줘야 합니다. 결국, 모든 구성원이 편리하게 사용할 수 있는 공통 시스템을 갖춘 환경을 구성해 줄 수 있느냐가 최종적인 답이 될 것 같습니다.

과제 수행 과정

Q. IT업무프로세스개선팀에서 일하시면서 도전적인 과제를 수행하신  대표적 사례를 소개 부탁드립니다.

작년에 슬랙(Slack)을 전사적으로 도입하고 자동화 환경 구축과 프로비저닝(Provisioning) 과제를 진행했습니다. 
기존에 사용하던 협업 채널인 라인(Line)에서 슬랙(Slack)으로 메신저를 전환한 것은 큰 변화였어요.
전사에 슬랙을 도입한 이후에는 구성원들의 다양한 내부 VOC와 니즈를 해결하는 데 정말 바빴던 기억이 있습니다. 

그중에서도 특히 전사 구성원들이 서로의 휴가 일정을 확인하고, 공유할 수 있도록 반영한 사례가 기억에 남는데요. 구성원의 휴가일에는 인사 시스템과 연동되도록 설계하여 이름 옆에 ‘휴’라고 표시해 주는 이모티콘이 자동 반영되도록 도입하였습니다. 현재는 우아한형제들 휴가자의 ‘휴’ 이모티콘이 표시되는 것은 당연시 인식되어 회사 문화의 일부로 스며들어 더욱 보람을 느끼고 있습니다. 

또 다른 슬랙 과제는 슬랙 코리아와 긴밀하게 협조하여 얻은 성과인데요. 안드로이드 단말에서만 특정 채널의 메시지 알림이 발생하지 않는 큰 이슈가 있어, 슬랙 본사와 일본지사 직원들과 함께 집요하게 문제 분석을 했습니다.  
저는 문제나 이슈가 발생하면 JIRA 티켓부터 생성하는데요. 티켓의 제목과 설명을 작성하면서 자연스레 해야 할 일을 명확히 계획할 수 있습니다. 또한 JIRA 티켓링크를 사전에 공유함으로써 협업하며 발생하는 불필요한 커뮤니케이션 비용을 낮출 수도 있어요.
이번 경우도 우선 JIRA 티켓을 생성해서 문제를 겪는 사용자를 Watcher로 묶고, 안드로이드 버전과 슬랙 버전을 취합하고 기록하였습니다. 이렇게 하면  슬랙 본사와 정기 미팅을 가지며 나온 액션 아이템을 JIRA에 댓글로 남겨 Watcher에 설정된 분들에게 바로  공유할 수 있습니다.  
또한 빠르게 확인하고 테스트를 진행하기 위해 슬랙 채널도 만들어 소통하였습니다. 채팅으로 나눴던 대화 내용을 요약해 JIRA 티켓에 갱신하였고, 문제 현상을 분석하며 점점 좁혀갈 수 있었습니다.
결국 채널명이 변경되었다는 점이 실마리가 되어 글로벌 핫픽스(Hotfix) 버전을 만들 수 있게 되며 이슈가 잘 해결되었고, 슬랙 코리아와 협력하며 좋은 관계를 형성해 적극적인 지원을 받을 수 있는 계기가 되었습니다.

두 번째로 현재 DH(Delivery Hero)와 계정 통합 프로젝트를 진행하고 있는데요.
DH와의 계정 통합 목표를 달성하기 위해 우아한형제들에서 사전에 처리되어야 할 작업이 있었습니다.
계정 관련된 시스템이 AD와 Google로 크게 두 가지가 존재하고, 이를 AD 기준으로 정리하고 정책을 수립하였습니다. 한 땀 한 땀 수작업으로 두 개의 시스템을 싱크(Sync)하는 과정도 불가피했죠. 한 달 넘게 진행된 작업이었지만 완료된 후에서는 AD와 Google의 비밀번호를 하나로 통합할 수 있게 되는 계기가 되어 뿌듯했어요. 현재에도 진행 중인데, 이 과정에서 본래 목표 더하기 내실을 다질 수 있는 시간과 기회로 만들고 있습니다.

역량에 관한 생각

Q. 현재 청규님께서 맡으시는 역할은 어떠한 역량이 필요한가요? 말씀주신 역량을 강화하기 위해 노력한 점에 대해서도 이야기해주세요.

제가 맡은 일에서 중요하게 생각하는 세 가지 역량은 1) 비즈니스 이해와 기술적인 센스 2) 공유의 실천 3) 관계형성 입니다. 먼저, 첫 번째 필수 역량인 ‘비즈니스 이해와 기술적인 센스’를 기르기 위한 왕도는 없는 것 같습니다. 꾸준히 노력하는 게 중요한데요. 저는 책이나 기술블로그를 통해서 알게 된 지식을 꼭 핸즈온(Hans-On)해서 체화하는 노력을 반복하여 습관화 시킨 편입니다. 저만의 노하우를 공유드리면 재해석한 포스팅을 작성하거나 유튜브를 만든다는 목표를 세워두면, 자연스레 목표를 달성하기까지 반복적으로 연습하게 되는데요. 연습하고 정리하는 과정에서 기본 튜토리얼(Tutorial) 뿐만 아니라 동작 원리를 고민하고 이해하게 되는 것 같습니다.

제가 요즘 주로 관심 갖는 영역은 SaaS 솔루션 입니다. 노코드(No-code)로 유지 보수 비용이 발생하지 않는 것을 전제합니다.
그 예로 최신 기술에 대한 정보와 트렌드를 논의할 수 있는 공간이 필요했는데요. Feedly와 IFTTT을 조합해서 국내 대부분 회사의 기술블로그의 새 글을 5분 내로 서빙하는 슬랙 채널을 만들었습니다. 불과 며칠 만에 구현하였고 지금도 안정적으로 운영되고 있어서 뿌듯합니다.

다음으로는 ‘공유의 실천’이라고 생각하는데 가장 쉬운 것이 가장 어렵다는 말이 있습니다. 근무 혁신을 이루기 위해서는 솔선수범하여 공유를 실천하려는 마음 자세가 정말 중요하다고 생각합니다. 
사실 저도 수없이 반복하고 고생하며 알게 된 지식을 공유한다는 게 쉽지 않게 느껴지던 때도 있었습니다.
그런데 공유하지 않는다면 피드백을 받을 수 없고, 동료들과 같이 성장할 수 없습니다. 일을 하다 잘못된 방향으로 가게 되어도 바로잡을 수 있는 기회를 놓치게 될 확률이 높고요. 특히 저는 회사 동료들이 보다 효율적으로 일할 수 있도록 돕고 혁신하는 일을 맡고 있어서, 공유의 실천이 매우 중요하다고 생각합니다.
여러분들도 잘 아는 분야에 대해서 정리하고 동료들과 공유해 보세요. 서로의 역량을 강화하고 단점은 보완하여, 소속된 조직도 스스로도 더욱 성장할 수 있는 계기가 될 것입니다.

마지막으로 ‘관계형성’인데요. 역량 강화와 무슨 연관성이 있는지 의아하신 분들이 있을 수 있습니다. 저는 지난 몇 년간 여러 커뮤니티를 참가하면서 업무적으로 접점이 있는 다양한 사람들을 만났는데, 관심 분야가 비슷하다 보니 오랜만에 만나도 몇 시간씩 몰입하여 대화하게 되더라고요. 
공통된 관심분야가 일과도 관련되다 보니 서로 업무에 참고할 수 있는 새로운 정보를 쉽게 얻을 수도 있고, 자극받는 경우도 많았어요. 난제를 해결할 때 가장 좋은 방법이 무엇이라고 생각하시나요? 저는 주저 없이 ‘지인과의 전화 찬스’라고 생각합니다. 주변에 업무적 관심사를 공유하는 사람들과 관계를 형성하여, 조금 더 쉽게 답을 찾을 기회로 만들어 보세요.

우아한형제들 문화

Q.  IT업무프로세스팀만의 매력과 장점을 알려주세요!

IT업무프로세스개선팀은 오피스(그룹웨어), 인사/채용 시스템, SAP, 협업 도구 등 비유하자면 회사의 산소같은 시스템을 담당하고 있습니다. 팀명에서 알 수 있듯이 해당 시스템들의 프로세스를 개선하여 업무의 효율과 생산성을 높이는 미션을 가지고 있습니다.

저희 팀의 고객은 우아한형제들 전사 구성원인데요. 그렇기 때문에 구성원들이 보다 편리하게 일할 수 있는 개선 사항을 찾고 적용하였을 때, 구성원의 업무 생산성도 향상되고 또 구성원 수만큼 영향력이 배가 되어 큰 성취감을 느낄 수 있습니다. 반면에 실수가 생기면 바로 티가 날 수밖에 없고 업무를 처리하는 데 신중함과 꼼꼼함이 요구되기 때문에 팀 동료 간 서로의 업무도 크로스체크(Cross Check) 하며 도우려 합니다.
또한 다양한 부서의 개발자와 비개발자 구분 없이 협업하는 기회가 많고 그렇기 때문에 자연스레 회사의 사업 방향과 목표를 이해하게 되고, 업무를 바라보는 시야를 넓혀서 생각할 수 있게 됩니다. 그러다 보니 ‘왜 이 업무를 맡아 진행하는가?’라는 일에 대한 동기부여도 높아지는 환경이 받쳐주는 점도 긍정적으로 작용합니다. 

마지막으로 저희 팀의 매력은 팀 구성원 누구나 자유롭게 의견을 제시할 수 있는 분위기가 형성되어 있다는 점입니다. 연차와 직급에 관계없이 진지하게 토론할 수 있는 분위기와 업무환경이 갖춰진 것이 저희 팀의 가장 큰 장점이라고 생각합니다.
얼마 전 팀장님과 1:1로 제 의견을 개진하고 3시간 넘게 정말 치열하게 논의한 적도 있습니다. 팀장님과 논의하는 자리에서 정해진 것이 팀원들에게도 전파되었는데요. 포용력 있게 팀원들이 동의해 줘서 팀 문화에 바로 반영되었습니다. 
나의 생각과 의견을 거침없이 믿고 말할 수 있다는 점 매력적이지 않나요? 팀 분들과 서로에 대한 존중과 신뢰가 뒷받침되지 않는다면 어려웠을 일이라고 생각하기 때문에 저희 팀의 장점이라 자부합니다. 

마무리하며

Q. 우아한형제들에 지원을 고민하시는 분들께 청규님께서 우아한형제들에 합류하기로 하신 결정적인 계기를 이야기 해주세요.

우아한형제들에 입사하기 전에는 대기업만 다녔는데요. 절차와 승인을 중시하는 대기업의 관료주의적 의사결정을 존중하지만, 개인의 의견이 전달되지 못하는 데 답답함도 동시에 느꼈습니다.
면접 과정에서 고객중심의 성과에 집중한다는 점과 개인과 조직의 동반성장을 장려하는 회사라는 판단이 섰습니다. 
물론 그때의 생각은 지금도 유효합니다. 주도적으로 아이디어를 내며 새로운 것을 시도해보고 성취감을 주는 환경에서 일하고 있거든요. 

이러한 회사의 문화와 업무 환경에 만족하고 있습니다. 
또한 직책을 없애고 ‘범준님’을 포함하여 서로의 이름에 ‘님’자를 붙여 호칭하고 있는데요. 수평적이고 자율적인 조직문화를 추구하고 또 실천하기 위한 회사의 여러 다양한 노력에 결정적으로 끌려 합류하게 되었습니다.

개발자 모집공고 바로가기

전수현 / 데이터 사이언티스트

담당업무 소개

Q. 우아한형제들의 데이터 사이언티스트, 수현님의 하루 일과를 소개해 주세요.

안녕하세요, 데이터서비스실 위험관리시스템팀의 전수현입니다.
우아한형제들의 서비스 생태계 전반의 신뢰도와 건전성을 유지하고 개선하기 위해 필요한 데이터를 분석하고, 다양한 목적을 반영한 머신러닝 모델을 개발하는 업무를 주로 맡고 있습니다.

저의 하루 일과는 데일리 스크럼(Daily Scrum)으로 시작됩니다. 매일 오전 팀원분들과 전날 진행한 업무에 대한 리뷰와 오늘 진행할 업무에 대한 계획들을 공유하는 데일리 스크럼을 30분 정도 진행하고 있습니다. 
데일리 업무로는 가급적 하나의 컨텍스트(Context)를 유지하여 업무를 진행하고자 노력합니다.
데이터 탐색이나 모델 개발 등을 진행하며, 시행착오를 겪은 과정이나 테스트 결과는 모두 사내 위키(Wiki)에 꼼꼼하게 기록해 두는데요. 그 과정에서 데이터 사이언티스트 동료분들과 리뷰를 주고받으며 자유롭게 서로의 의견을 교환하는 것을 선호하는 편입니다. 

데이터를 살펴보다 보면 현 서비스 정책이나 운영 정책들에 대한 아이디어나 개선이 필요한 경우들이 있는데, 이러한 사항도 사내 위키에 논리적인 근거에 기반한 문서를 작성한 후, 관련 기획자분이나 운영 실무자분들과 논의하고 있습니다. 이 과정에서 모델 개발에 도움이 되는 아이디어를 얻기도 하며 각 도메인 전문가분들의 지식을 적극 활용하는 형태로 협력하고 있어요. 또한 시니어 데이터 사이언티스트분께 과제의 방향성이나 모델 아키텍처 구성, 적합한 알고리즘 선택이나 튜닝(Tuning) 방향 등을 피드백 받으며 모델 개발 업무를 진행하고 있습니다. 

저희 팀은 3주 단위의 스프린트(Sprint)를 하며 업무를 플래닝 하는 훈련도 하고 있어요. 
이번 스프린트에서는 1) 허위 리뷰 탐지 모델 운영 배포 2) 배민상회 수요예측 모델 자동화 코드 개발 및 베타 배포 
3) 허위 리뷰 조작 업체 탐지 모델 고도화를 위한 킥오프 및 EDA 등의 업무를 진행할 예정인데요. 이처럼 하나의 스프린트 내에서 협의체와 컨텍스트(Context)가 다른 업무들을 병렬로 플래닝 하는 경우도 있고, 한 가지 분석 과제에만 집중해서 업무를 하는 경우도 있습니다. 

과제 수행 과정

Q. 우아한형제들에서 데이터 사이언티스트는 어떠한 과제들을 수행하나요?

우아한형제들은 데이터서비스실이라는 전사 데이터를 다루는 중앙 집중형 데이터 조직을 운영 중입니다. 현재 데이터서비스실은 목적 중심의 6개 팀으로 나눠져있고, 각 팀별로 데이터 사이언티스트, 데이터 분석가, 데이터 엔지니어, 프론트 개발자, 서버 개발자, 기획자 등 다양한 직군의 구성원들이 함께 일하고 있습니다. 

사실, 기존에는 기능 조직으로 데이터 사이언티스트 직군들만 모여있는 데이터사이언스팀 소속이었는데요. 최근 다루는 데이터 도메인과 개발 모델의 성격에 맞춰 조직 개편이 되었답니다. 여러 모델을 직접 서비스하고 운영하는데 좀 더 집중할 수 있는 환경이 되지 않을까 기대하고 있어요. 우아한형제들의 데이터 조직은 각 시기마다 적절한 조직 구성과 형태를 계속 고민하며 변화해나가고 있고, 업무를 하는 형태나 방식, 역할 등도 조금씩 바뀌어왔던 것 같습니다.

현재 제가 맡고 있는 과제도 소개 드리면, 배민 앱 내에서 발생하는 여러 이상 신호들을 사전에 탐지하고 조치하기 위한 업무에 집중하고 있고, 대표적으로 허위 리뷰 목적의 주문이나 리뷰들을 탐지하는 모델을 개발 및 운영 중입니다.  
이외에도 배달 비품/식재료 전문 쇼핑몰인 배민상회의 수요를 예측하여, 품절률을 개선하고 재고 관리를 효율화하기 위해 배민상회 운영팀, MD팀과 함께 협업을 하며 수요 예측을 위한 외부 요인들도 모델에 반영하기 위해 노력하고 있습니다.

데이터 사이언티스트 직군에선 여러 추천 모델, 배달 예상시간 예측 모델, 라이더 배차 최적화 모델 등 다양하고 재미있는 주제의 문제를 다루고 있습니다. 또한 자연어 처리나 이미지 처리 등 하나의 기술적인 분야에 보다 집중해서 전문성을 가지신 분들도 계신답니다.

성취의 순간과 과정

Q. 수현님께서 가장 기억에 남는 성취의 순간과 그 과정을 이야기해주세요.

작년에 진행한 Fraud 가게 탐지 모델을 개발한 과정이 가장 기억에 남습니다. 
그동안 Fraud 관련 운영 부서에서 쌓아오신 여러 케이스들과 경험치들을 잘 공유해 주셔서 이를 탐지 모델에 잘 녹여낼 수 있었던 과제인데요.
이 프로젝트는 비즈니스 문제 정의, 가설 검증 및 EDA, 모델 개발과 결과 검증, 운영 배포, 결과 대시보드 전달까지의 전체 과정을 단기간에 몰입도 있게 진행해 더욱 기억에 남아요. 여러 유관부서와의 협업을 하는 과정에서도 배운 점이 많았던 프로젝트였고, 시니어 데이터 사이언티스트의 가이드를 바탕으로 일하는 방식과 절차에 대해서도 배우고 성장할 수 있었던 기회였습니다. 

먼저 이 프로젝트를 시작하면서부터 Fraud 관련 운영 부서 동료분들과 밀접한 협업을 하였는데요. 개발자, 기획자 등 항상 협업하는 프로덕트 개발 분야의 동료가 아닌 전혀 새로운 분야의 동료분들과 협업하는 과정에서 서로 이해하는 용어와 맥락의 차이를 맞춰가는 과정이 필요했습니다. 이를 위해 재택 기간이었지만 행아웃을 통한 가벼운 티타임도 자주 하며, 현 진행 상황 및 결과에 대해 자세하고 쉽게 설명드리려 노력했습니다. 
또한, 분석 모델 개발의 전체 과정을 함께 맞춰나갈 수 있도록 차후 진행 예정인 부분을 미리 말씀드리며 협조를 구하기도 했습니다. 이 과정에서 운영 부서 동료분들이 그동안 쌓아오신 노하우와 여러 실제 케이스들도 잘 전수받을 수 있었고, 여러 Fraud 케이스 간 우선순위를 설정하고 이를 바탕으로 한 적절한 탐지 모델을 개발할 수 있었습니다. 

협업 과정에서 서로 신뢰가 형성되었기에 모델의 결과를 검증하고 결정하는 과정에서도 의미있는 피드백을 주고 받으며 모델의 성능을 향상시킬 수 있었습니다. 또한 운영 배포 과정에서도 주피터  노트북(Jupyter Notebook)으로 작성한 파이썬 코드를 airflow 배포를 위한 파이썬.py 파일로 변경 및 배포, 모델 결과 저장 및 전체 아키텍처를 설계하는 것이 필요했습니다. 
이러한 과정은 데이터서비스실 내의 데이터 엔지니어분과 협업하였고, 당시 저희 실에서는 airflow를 이제 막 도입하는 시기였기에 해당 프로젝트를 하는 과정에서 데이터 엔지니어분께서는 ML Batch Job에 대한 코드 템플릿을 개발하기도 하였습니다.
그리고 최종 개발된 모델의 탐지 결과를 한눈에 보고 이해하기 쉽도록 BI툴을 활용하여 여러 비교 지표들과 함께 통계 요약값, 시각화 그래프 등이 포함된 대시보드를 개발했습니다. 이 대시보드는 최대한 의도를 명확하게 파악할 수 있는 형태로 구성하여 누구나 직관적으로 탐지 모델의 결과를 받아들일 수 있도록 하는 것에 중점을 두었습니다.

이처럼 운영 부서와의 원활한 커뮤니케이션과 데이터 엔지니어와의 협업으로 해당 팀에서 잘 활용될 수 있는 탐지 모델이 개발 및 운영되고 있고, 이 모델은 현재까지도 지속적인 성과를 유지하고 있는데요. 해당 모델의 탐지 결과를 토대로 여러 방면의 운영 리스크들을  점검하고 개선해 나가며  배민 앱의 생태계 신뢰도를 공고히 하고 있다는 점에서 매우 뿌듯하게 생각하고 있습니다. 

또한 최근에는 해당 모델들을 디벨롭(Develop)하기 위해 아키텍처나 성능 이슈 등을 검토하여 지난 1년 동안 쌓아온 도메인 경험치를 좀 더 녹여낼 수 있겠다는 기대를 하고 있습니다.
개인적으로는 이러한 과정을 통해 하나의 도메인을 꾸준히 파고들어가며 해당 도메인 안에서 여러 기술들을 적용하고 성장하는 경험도 굉장히 즐겁고 의미 있다는 것을 배울 수 있었습니다.

역량에 관한 생각

Q. 역량을 강화하기 위해 어떠한 노력들을 기울이셨는지 궁금합니다.

저의 역량 강화 노하우 두 가지를 소개 드릴게요. 🙂
먼저는 관심 있는 업무 분야에 끊임없는 호기심을 가지고, 맡은 모든 업무에 집중해 직무 전문성과 인사이트를 확장해 나가려는 자세입니다. 
데이터 사이언스는 워낙 다양한 분야와 영역을 아우르는 직군이다 보니, 개인마다 흥미있는 분야도 다양할 수밖에 없는데요. 저는 현실 세계의 비즈니스 문제를 데이터로 해결하는 일에 관심이 있습니다. 
그래서 저는 데이터 사이언티스트의 역할과 업무범위에 대한 정의를 머신러닝 모델을 설계하고 개발하는 것 외에도 데이터 분석이나 시각화를 통해 문제를 발굴하고 정의하는 것으로 확장해서 생각하는 편입니다. 
저는 문제를 정의하고 데이터를 적절하게 잘 활용하여 논리적인 접근을 하는 것도 중요하게 생각하고 업무를 하는 편인데요. 이를 위해서는 여러 다양한 상황에서 어떤 방향과 방식으로 데이터를 다루는지에 대한 아이디어를 많이 가지고 있는 것이 도움이 된다고 생각해요. 그렇기 때문에 다양한 분야의 데이터 분석 및 모델링 기본서로 이러한 부분들을 계속 채워가려고 노력하는 편이고, 미디엄이나 캐글에서 잘 작성된 문서와 코드들을 자주 살펴보곤 합니다.  

두 번째로는 우아한형제들의 대표 복지, 도서비 무제한 지원 제도를 정말 잘 활용하는 것입니다. 
업무 관련 도서만 지원하는 것이 아니기 때문에, 비교적 자유롭게 도서 분야를 선택할 수 있는데요. 저는 통계나 데이터 분석 모델 관련 도서뿐만 아니라, SQL, Python, Hadoop, 시각화 관련 도서까지 관련 있는 데이터 관련 다양한 분야의 기술서를 많이 보곤 했습니다. 최근에는 실무에서 데이터를 어떻게 활용하고 있는지에 관한 도서들도 많이 출간돼서 이러한 실무 활용서나 비슷한 분야에 있는 유명하신 분들의 경험서와 같은 도서들도 자주 접하고 있습니다. 

그리고 회사의 또 다른 복지인 교육비 지원 제도도 역시 잘 활용하고 있고요. 온라인 교육도 수강 완료를 인증하면 80%까지 지원이 되기 때문에 끝까지 수강할 수 있는 원동력도 되고, 부담 없이 다양한 외부 강의를 수강할 수 있기 때문에 이를 통해 꾸준히 역량을 강화하고 있습니다.

업무 환경

Q. 우아한형제들에서 데이터 사이언티스트로서 얻을 수 있는 경험은 무엇인가요?

우아한형제들은 배달의민족 외에도 비마트, 배민쇼핑라이브, 배민상회, 배민장부, 로봇서비스 등과 같은 푸드테크 분야 뿐만 아니라 웹툰 플랫폼인 만화경과 같은 다양한 분야에서 재미있는 시도를 하고 있는 회사인데요. 
제가 속한 데이터서비스실은 전사 데이터를 통합 관리하는 조직이다 보니, 다양한 서비스 대부분의 데이터를 접할 수 있고 여러 유관부서와 밀접하게 협업할 수 있습니다.

이런 서비스의 다양성 만큼 부서별로 해결해야 할 다양한 비즈니스 과제들이 있는데요. 계속 성장하고 확장해나가는 사업의 속도만큼 데이터 조직의 도움이 필요한 부분들이 상당히 많습니다. 그렇기 때문에 서비스 문제 해결이나 개선을 위해 데이터 사이언티스트가 재미있게 참여할 수 있는 과제들이 아직도 상당히 많습니다. 그리고 특정 기술 도메인에 전문지식을 가진 동료분들도 많고, 여러 기술 도메인을 아울러서 의미있는 방향성을 제시해 주실 수 있는 시니어분도 계시기 때문에, 데이터 사이언티스트로서 좋은 경험을 쌓아나갈 수 있는 환경입니다.
최근 여러 목적 조직으로 흩어진 데이터 사이언티스트 직군 간의 원활한 소통과 교류를 위해 데이터 사이언티스트 직군 슬랙 채널도 따로 마련될 정도로 좋은 동료들과의 상호작용을 독려해 주는 문화도 잘 형성되어 있다는 점을 참고해 주세요. 

또한 데이터 엔지니어, 개발자, 기획자분들과 협업하여  본인이 생각한 로직이나 분석 모델들이 연구에서 그치는 것이 아닌 실제 서비스로 출시되고 동작하는 경험, 이러한 운영 모델들의 결과를 살피며 지속적으로 디벨롭(Develop) 해나가실 수 있는 값진 경험을 하실 수 있습니다.

특히 보다 구체적으로 말씀드리고 싶은 내용들이 있는데요. 우아한형제들 내의 모든 서비스에서 발생되는 데이터를 분석해볼 수 있는데, 흔히 생각하실 수 있는 배민 앱 내의 모든 행태 로그 데이터, 월 1억 건이 넘는 주문 데이터에서부터 배민사장님광장 웹 사이트의 노출/클릭 웹 로그 데이터, 배민상회 재고관리 어드민 데이터 등까지 정말 다양한 데이터가 준비되어 있어요. 이러한 데이터를 다루고 분석할 수 있는 좋은 인프라가 갖춰져있고, 친절하신 엔지니어분들의 가이드도 받을 수 있으며 어떤 데이터가 어디에 있는지도 비교적 열심히 관리하고 있어서 핵심 업무인 데이터 분석 및 모델 개발에 집중하실 수 있답니다. 또 데이터의 다양성만큼 지도학습, 비지도학습, 혹은 딥러닝 모델까지 알고리즘 및 아키텍처 설계도 꽤 자유롭게 하실 수 있습니다. 물론 인프라 상황 등을 고려해야할 테지만, 이러한 모든 의사결정들을 대부분 주도적으로 해나갈 수 있는 환경입니다. 

마지막으로 여러 유관부서에서 비교적 잘 정의된 비즈니스 문제가 넘어오는 경우도 있지만, 비즈니스 문제 정의부터 모델 개발 배포까지 처음부터 끝까지 모든 과정을 직접 참여하고 진행하는 과정을 경험하실 수 있습니다. 단편적인 업무 조각을 수행하기보다는 전체 과정을 직접 핸들링하며 프로젝트를 이끌어나가는, 분석 모델 개발의 A부터 Z까지의 경험을 하실 수 있습니다.

마무리하며

Q. 데이터 사이언티스트로서의 삶을 꿈꾸는 분들에게 책 한 권 소개 부탁드립니다.

관련 분야의 지식을 쌓는 데에 도움이 됐던 기술서들이 정말 많았는데요. 이런 기술서들은 시기나 상황에 따라 각 개개인에게 미치는 효용이 너무 다를 것 같아서 제외하게 됐습니다. 

그래서 제가 업무를 하면서 문제를 정의할 때 한 번씩 생각하게 되는, MECE적 사고를 잘 담은 <로지컬 씽킹> 이라는 책을 소개하고자 합니다. 

다들 잘 아시겠지만 MECE는 Mutually Exclusive and Collectively Exhaustive의 약자로 어떤 현상이나 문제를 분석할 때 서로 중복되지 않으면서도 전체적으로 누락 없이 사고하는 기술이라고 할 수 있는데요. 데이터 사이언티스트 직군에게서만 중요한 역량은 아니지만, 데이터라는 소스를 본인만의 논리적인 플롯으로 설득력 있는 전개를 해나가야 한다는 점에서 소개할만한 책이지 않을까 싶어 추천드립니다.

개발자 모집공고 바로가기

인터뷰를 마무리하며

우아한형제들의 직무 인터뷰는 앞으로도 쭉 계속됩니다. 조만간 또 만나요 여러분! 🙂

이번 인터뷰를 진행한 우아한형제들 구성원들을 소개합니다.
  좌측부터 시계방향으로 포토팀 김봉우
장진명(팀장), 인재영입팀 배소은 ∙ 김지은 ∙ 김형우