ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 사이언티스트 현실
    데이터 사이언스 2020. 2. 19. 04:53

     

     

    빅데이터 시대라고 한다. 데이터 저장 및 처리 기술이 급속도로 발전하며 이를 분석하는 데이터 사이언티스트라는 직업이 많은 사람들의 주목을 받고 있다.

     

    하지만 정작 데이터 사이언티스트의 현실을 제대로 알고 있는 사람들은 적은 것 같다취준생들은 데싸(데이터 사이언티스트)에 대한 수요가 많을 것이라고 막연히 기대하는 경우가 많으며, 인사 담당자는 데싸가 낼 수 있는 성과를 종종 과대평가한다.

     

    이 글에서 나는 데이터 사이언티스트의 현실과 그들이 실무에서 부딛치는 어려움을 정리해보았다. 그리고 내가 어떤 방식으로 이를 해결했는지(혹은 해결하려고 노력했는지) 공유하겠다. 데싸를 꿈꾸는 이들에겐 조금 현실적인 내용일 수 있다. 데이터 직군 취업준비생 혹은 데싸를 채용하려고 하는 인사 담당자들이 참고하면 도움이 될 것 같다.

     

    (저의 경험으로부터 나온 지극히 개인적인 의견일 수 있습니다! 여러분의 생각과 의견도 많이 공유해주세요! 저는 토론을 사랑합니다~)


    의사결정권을 가지고 싶지만 그렇지 못하는 데싸

    의사결정... 어디로 가야 할까

     

    데이터 사이언티스트는 데이터를 분석해 인사이트를 뽑아내고 기업의 의사결정에 도움을 주는 사람이다. 즉 “분석”을 통한 “의사결정 서포터”이다. 그러므로 데싸가 의사결정 과정에 관여하는 것이 상식적이고 이상적이다. 그렇지 않다면 그들의 분석 결과는 힘없는 주장에 불과할 것이다.

     

    그러나 현재 국내 대다수 기업은 의사결정권자가 기획자 및 임원으로 한정되어 있다. 그렇기 때문에 데싸들이 자신의 의견을 적극적으로 주장하고 설득할 기회가 없다. 기획자 및 임원들과의 긴밀한 협업을 통해 자신의 분석 결과를 꾸준히 표현해야 하는데, 현실적으로 그러기가 힘들다. 대부분의 기업에서 데이터 분석 결과는 영향력이 적다. 참고자료로 활용되면 다행일 정도로...

     

    분석을 통해 비즈니스를 움직일 거라고 꿈꾸던 나에게 이 사실은 큰 무력감을 주었다.

     

    때문에 나는 어떻게든 의사결정에 개입하고 영향을 주려고 노력했다. 이를 위해 내가 고군분투하며 얻은 팁은 아래와 같다.

     

    1. 듣지 않는다면 세뇌시켜라!

    자신의 분석 결과물을 공유하면 처음엔 대다수가 무관심할 것이다. 이유는 간단하다. 각자의 업무만으로도 바쁘기 때문이다. 그래서 나는 집요하면서도 무식한 방법으로 어그로를 끌었다. 쉬는 시간에도, 밥을 먹으면서도, 전화를 할 때도, 미팅을 가는 길에도 계속 틈 날 때마다 "oo님, 내부 데이터 보니까 이러이러하던데, 어떻게 생각하나요?"라고 말하며 나의 인사이트를 은근슬쩍 세뇌시켰다. 나는 공식적인 회의에서 한 번 이런 말을 꺼내는 것보다, 비공식적인 자리에서도 집요하게 여러 번 말하는 것이 마음을 흔드는데 훨씬 효과적이란 사실을 깨달았다.

     

    2. 끊임없이 실험하라!

    기존의 데이터만 가지고는 좋은 인사이트가 나오지 않을 가능성이 높다. 분석하더라도 결과물이 너무 당연해 임팩트가 떨어진다. 그렇다면 실험을 통해 기존과는 다른 양상의 데이터를 생성해내고, 그것을 분석하는 것이 좋다. 여기서 실험이라는 것은 A/B 테스트 뿐만 아니라 기획 단에서의 큼직큼직한 실험도 포함된다. 예를 들어 교육 사업을 한다고 하면 동기부여 방법론을 바꾸어서 수강생의 반응 변화를 살펴본다거나, 강의 방식을 바꾸어 만족도를 조사해보거나 하는 식이다. 이렇게 기존의 데이터만 수동적으로 분석하기보단, 다양한 실험을 통해 비교군을 만들어 분석하면 훨씬 좋은 인사이트를 추출할 수 있다.

     

    3. 가장 간지러운 부분을 긁어라!

    모든 비즈니스에는 강점과 약점이 존재한다. 강점을 분석하고 그에 대한 인사이트를 공유해봤자 임팩트가 떨어진다. 우리 회사가 취약한 요소를 집중적으로 공략해야 한다. 그렇다면 조그마한 인사이트라 하더라도 사람들이 관심 있게 볼 가능성이 높다.

     

     

    물론 내가 입사한 회사는 규모가 작은 스타트업이어서 비교적 수월했지만, 큰 회사에서도 팀 단위로 움직이기 때문에 위의 팁이 유효하다고 생각한다.


    1% 향상했다고 아무도 칭찬해주지 않는다.

    모델링을 할 때 의사결정권자들의 현실적인 반응

     

    캐글(머신러닝 대회 플랫폼)에서는 모델의 정확도를 1%만 향상시켜도 대회 등수가 어마어마하게 바뀐다. 그렇기 때문에 캐글에 참가하는 많은 사람들은 이 1%를 올리기 위해 엄청난 노력을 한다. 모델을 여러 개 만들어서 앙상블과 같은 복잡한 방법을 사용하고, 파라미터 튜닝도 하드하게 한다. 그러나 실무에선 어떨까? 실제로 캐글에서 하는 것처럼 1%를 위해 많은 노력을 들일까? 나는 실무 머신러닝 프로젝트를 하면서 그렇지 않다는 사실을 알게 되었다.

     

    단도직입적으로 이야기하자면 복잡한 모델을 사용했을 때의 정확도 상승이 비즈니스적으로 유의미하지 않은 경우가 많다. 오히려 1%를 위해 모델 복잡도를 높였을 때 inference time(모델을 활용해 예측을 진행하는데 걸리는 시간)과 용량 증가로 인해 비즈니스 측면에서 손해인 경우를 종종 보았다. 정확도는 중요하다. 하지만 실무에서는 정확도를 높이면 모델 복잡도 증가라는 tradeoff가 발생한다는 사실을 데싸는 인지해야 한다.

     

    내가 진행했던 프로젝트 경험을 예로 들겠다. 해당 프로젝트에서 나는 어떤 대상을 예측하기 위해 기본적인 랜덤포레스트로 베이스라인 모델을 짰고 정확도가 83% 정도 나왔다. 이후에 난 모델 성능을 높이기 위해 xgboost, catboost, lightgbm 등등 다양하고 복잡한 모델을 만들어 파라미터 튜닝을 하고 앙상블을 진행했다. 그 결과 정확도가 87% 정도가 되었다. 해당 회사의 임원진 앞에서 위의 내용을 가지고 성과 발표를 하는데 한 분이 이렇게 이야기했다.

     

    “저렇게 복잡한 모델이 기본 모델보다 성능이 고작 4%밖에 향상이 안된다면 그냥 기본 모델을 활용하는 게 나을 거 같은데요?

     

    난 위의 말이 의사결정권자의 사고를 보여주는 명언이라고 생각한다. 이후에 난 모델의 성능만 고려하기보단 모델을 통해 회사가 얻을 비즈니스적 이득을 종합적으로 고려해 프로젝트의 방향성을 설정했다. 결국 해당 프로젝트에선 성능이 가장 좋은 모델을 사용하지 않았고, 대부분의 시간을 데이터 정제와 대시보드 제작에 집중했다.

     

    ※ 나는 여전히 캐글을 사랑하고 그곳에서 배운 많은 것들을 소중하게 생각한다. 다만 위의 글에서 나는 모델의 정확도가 비즈니스적인 가치을 완벽히 반영하진 못한다는 주장을 하는 것이다.


    비즈니스의 현실

    기술이 아니라 돈으로 이야기해야 한다.

    데이터 사이언티스트는 의사결정 서포터인 만큼 비즈니스를 잘 이해하고 있어야 한다. 만약 데이터 사이언티스트가 비즈니스에 대한 이해가 부족하면, 개발자도 아니고 기획자도 아닌 낙동강 오리알이 될 수 있다.

     

    때문에 분석 결과를 내더라도 그것이 어떤 비즈니스 가치를 지니는지 증명해야 한다. 데싸가 설득해야 하는 기획자와 임원들은 기술에 대해서는 전혀 관심이 없다. 복잡한 AI 모델을 사용하든 고급적인 통계 지식을 활용하든 돈만 벌어오면 된다.

     

    비즈니스를 가장 직관적으로 표현하는 지표는 매출이다. 하지만 난 매출을 이용해 비즈니스 가치를 수치화하는 데에 어려움을 겪었다. 왜냐하면 우리 회사의 BM 특성상 당장 큰 매출을 낼 수 있는 구조가 아니었기 때문이다(대다수의 스타트업이 그러하듯). 때문에 난 매출이 아닌 다른 방법으로 비즈니스 가치를 수치화해야 했다.

     

    결론적으로 난 서비스적인 관점에 초점을 맞추었다. 즉, 고객에게 얼만큼 양질의 서비스를 제공했는지를 수치화시키려 노력했다. 대표적인 예로는 이탈률과 같은 웹 데이터였는데, 나는 이를 내부 CRM 데이터와 결합된 형태로 우리의 비즈니스에 맞게 변형해서 KPI로 지정했다.

     

    경험상 많은 데싸들은 자사의 비즈니스를 매출 혹은 서비스 관점에서 파악하는데 실패한다. 대부분이 팬시한 인공지능 기술에 대해서는 큰 관심을 가지면서 비즈니스를 이해하기 위해선 많은 노력을 하지 않는 것 같다. 데이터 사이언티스트가 되고 싶은 분들께 전한다. 장담컨데, 지금 공부하고 있는 인공지능이나 머신러닝 기술보다 비즈니스에 대한 이해도를 높이는 것이 100배 1000배는 더 중요할 것이다.


    개발에 대한 높은 의존도

    데싸와 개발자의 입장 차이

    사내에 분석할 수 있는 데이터가 없다면 아무리 좋은 데이터 사이언티스트도 쓸모없을 것이다. 그만큼 데싸가 좋은 성과를 내기 위해선 데이터가 중요하다. 문제는 데이터 적재, 추출, 관리 업무는 개발자의 영역이다. 때문에 데이터 사이언티스트의 퍼포먼스를 위해서 개발자의 역할이 매우 중요하다.

     

    그러나 개발자는 데이터 사이언티스트에게 비협조적일 가능성이 높다. 그 이유를 알기 위해선 데이터 사이언티스트와 개발자의 입장 차이를 이해하는 것이 중요하다.

     

    데이터 사이언티스트는 인사이트를 발굴해 기획이나 의사결정에 반영해야 하므로 주도적으로 분석하고 주장해야 한다. 때문에 많은 경우 진취적인 성향이 강하다.

     

    개발자는 시스템을 개발하고, 운영해야 하므로 시스템 안정성을 중요시한다.

     

    결론적으로 데이터 사이언티스트는 퍼포먼스를 위해 다양한 시도를 해야 하고, 이를 위해 개발자의 도움이 필요하다. 그러나 개발자는 이런 시도들이 시스템 안정성을 저해한다고 판단하고 아니꼽게 받아들일 수 있다. 이런 상황에서 데싸는 개발자를 설득해야 한다.

     

    예전에 마케팅 효과 분석을 위해 개발자에게 새로운 CRM 데이터를 쌓자고 제안한 적이 있다. 개발자는 시스템 안정성과 재사용성의 파괴라는 이유로 이 제안을 거절했다. 개발자를 설득하기 위해 난 해당 행위에 대한 명분과 정당성을 지속적으로 제시해야 했다. 하지만 이 작업은 매우 어려웠다. “데이터 분석을 통해 인사이트를 뽑아낼 거예요!” 정도의 불확실한 성과 예측으로는 해내기가 힘든 일이었다.

     

    이 외에도 AB 테스팅을 위한 개발 시스템 구축, GA 데이터와의 연결 등의 이슈로 개발자를 설득하는 힘든 과정을 거쳤다.


    정리하자면...

    데이터 사이언티스트에겐 다양한 능력이 필요하다. 명확한 이해를 위해 개발자와 데이터 사이언티스트를 다시 한 번 비교해보겠다.

     

    개발자는 좋은 기술력만 가지고 있어도 존재 가치가 높다. 기술력을 통해 제품을 제작할 수 있다는 사실 하나만으로 비즈니스에 도움을 주기 때문이다(물론 커뮤니케이션 스킬과 같은 정성적 능력도 무시할 수 없지만).

     

    그러나 데이터 사이언티스트는 기술만 가지고 있으면 존재 가치가 떨어진다. 기술력을 제품 제작 뿐 아니라 기획, 최적화, 의사결정 등 다양한 분야에 활용해 비즈니스 성과를 보여줘야 하기 때문이다. 그러므로 데싸는 자신이 보유하고 있는 기술을 통해 어떤 식으로 돈을 벌지 지속적으로 고민해야 한다.

     

    데이터 사이언티스트를 희망하는 학생 분들은 위의 사실을 충분히 숙지하고 적성에 맞는지 진지하게 고민해볼 필요가 있을 것 같다. 많은 사람들이 빅데이터가 뜬다는 여론에 휩쓸려 데이터 사이언티스트에 대해 제대로 이해하지 못한 채 공부하는 것 같다.

     

    자신의 미래 직업 후보군인 만큼 좀 더 객관적으로 현실을 바라보고, 신중하게 결정하면 좋겠다는 말을 하며 글을 마무리한다.

     

    (댓글과 하트는 글쓴이에게 큰 도움이 됩니다!!)

     

    '데이터 사이언스' 카테고리의 다른 글

    머신러닝 프로젝트의 모든 것  (0) 2020.02.29
    데이터 사이언티스트 현실  (23) 2020.02.19

    댓글 23

    • annie 2020.02.19 16:13

      현실을 잘 반영한 너무 유익한 글인 것 같네요!!
      잘 읽고 갑니당~~

    • DS-DX 2020.02.19 21:28

      조금 더 시간이 흐르면 Data Scientist가 의사결정자의 자리에 오를 거에요 ㅎㅎ

      공돌이들이 대표이사를 하는 데도 한참 걸렸을 겁니다.

    • YJbillie 2020.02.19 22:36

      좋은 글 잘 읽고 갑니다. 너무나도 공감되는 내용이 많네요~

    • ㅁㄴㅇㄹ 2020.02.20 07:42

      아날리스트의 입장에서 개발자가 이렇게 보였군요! 좋은 글 잘 보고 갑니다. 추가로 읽으면 좋은 구절 덧글에 남기고 갈게요

      실무에서는 수많은 비정형적인 데이터가 데이터베이스에 저장되어있고 그걸 뽑아쓰는것 하나하나가 자원소모가 막심합니다. Null값 몇개정도만 처리하면 완성되는 정형 데이터로 이루어진 테이블 하나로만 가지고 머신러닝 돌려보신 분들은 조인 과정이 왜그렇게 두려운 일인지, 색인이 왜 필요한지, 전처리가 얼마나 빡세고 중요한 일인지 알 수가 없죠.
      그러한 Engineering 과정을 모르는 Data Scientist들에게 전처리는 '낭비되는 시간' 일 수밖에 없어오. Data Analyst들은 데이터 형식이 그들에게 생소하거나(Dataframe 아니면 손을 안 대시려고 하는..), 문서화가 충분히 되어 있지 않거나, 통계적으로 가공하기에 불편한 것에 대해 불만을 가지기 시작했고, Data Engineer들은 그 불만을 해소하기 위해 데이터 품질을 고민하기 시작했죠

      • 긍긍이 2020.02.20 11:17 신고

        공감되는 글귀네요!

        결론적으로 데이터 사이언티스트도 개발에 대한 이해도가 필요하다고 생각합니다(저 역시도...). 실무에서 개발자들은 디비 구조를 어떻게 짤지, 쿼리문을 어떻게 효율화할지 고민하며 머리를 싸매니까요ㅠㅠ

        저도 이런 사실을 잘 모르다가 개발 프로젝트에 관여하면서 알게 되었어요 ㅎㅎ 그래서 요즘엔 개발 공부의 필요성을 느끼고 있네요

    • Jaime 2020.02.20 08:14

      잘 읽었습니다. 경험 공유해주셔서 감사합니다.

    • ㄱㄱ 2020.02.20 10:04

      좋은글 감사합니다. 매우 공감되는 글이네요

    • 박동진 2020.02.20 12:23

      좋은내용 감사드립니다. 덕분에 더 똑똑해진 느낌입니다.

    • 게으른인사이터 2020.02.20 12:34 신고

      잘읽고 갑니다~!

    • 니나니노 2020.02.21 13:45

      저는 현장에 있다가 다시 학교에서 데이터 관련 공부를 하는데 사고 과정?이 완전히 반대였네요.
      의사 결정이 아니더라도 일반적으로는 tradeoff나 가성비를 상당히 고려하는데, 엄청난 노력으로 1% 올리고 논문을 낸다는 것이 처음에 굉장히 비효율적으로 보였거든요.
      덕분에 배경과 맥락에 따른 이해와 통합 가능성 관점에서 긍정적인 생각을 하게 되었습니다. 감사합니다~

      • 긍긍이 2020.02.21 23:18 신고

        비즈니스에선 어떤 프로젝트든 하나의 목적(정확도)만 보고 진행하는 것은 큰 위험이 있다고 생각합니다. 니나니노의 말씀처럼 배경과 맥락이 더 중요한 경우도 많은 것 같구용

    • sd 2020.02.21 17:32

      좋은 의견 감사합니다! 현장에서 일하고 있는데 "기술이 아니라 돈으로 이야기해야 한다." << 정말 공감합니다!!

    • ㄴㄴㅇ 2020.03.03 00:18

      정말 감사한 글이네요. 막연했던 분야가 생생하게 전달되었어요

    • 유인환 2020.03.31 02:03

      와.. 정말 대박이네요

Written by 송근일