데이터 사이언티스트가 되기 위해 꼭 필요한 Skill Set (이정도는 되야..)
안녕하세요.
로스윗의 코딩캠프입니다.
오늘은 많은 사람들이 궁금해하시고 또 많이 헷갈려하시는 내용을 바탕으로
데이터 사이언티스트가 되기 위해 꼭 필요한 Skill Set (이정도는 되야..)에 대해서 알아보겠습니다.
거두절미하고 바로 시작하겠습니다.
- Skill Set for Date Scientist
데이터 사이언티스트가 되기위한 Skill Set은 큰 카테고리로 4가지가 있습니다.
아래 사진에 보이는 것처럼 가장 먼저는 Math와 Statistics 즉, 1)수학과 통계학입니다. 그리고 그 다음에 필요한 스킬셋이 2)프로그래밍과 데이터베이스이고, 그 다음이 3)Domain Knowledge와 soft skills가 필요합니다.
데이터 사이언티스트는 금융쪽이면 금융쪽 데이터를 잘 다루는 것이고 제조업이면 제조업 쪽을 잘 다루는 것입니다. 그래서 도메인마다 잘 다룰 수 있는 데이터 셋이 다 다르고 도메인마다 같은 알고리즘을 적용할 때도 방법론이 다라집니다. 그래서 여러분들이 먼저는 스킬을 익히신 다음에 스킬을 관심있는 분야의 도메인으로 가져가지면 되는 것입니다. 그리고 마지막으로 4)Comunication과 Visualization이 있습니다. 소통과 시각화 스킬인데요. 이 스킬도 의외로 많이 필요합니다.
이제 각 파트마다 조금 더 상세하게 알아보겠습니다.
- 수학과 통계학 Math & Statistics
일단 수학과 통계학에서는 중요한 것이 통계학과 선형대수(Linear Algebra)입니다.
공대 나오신 분들은 선형대수에 대해서 잘 아실 것 같은데 선형대수를 간단하게 얘기하면 여러분들 학교 다닐 때 행렬 있죠?
행렬끼리 연산하고, 역행렬 구하고 이런거 기억나시나요? 그런 행렬의 연산이 선형대수라고 생각하시면 쉬우실거에요. 그래서 수학에서도 굉장히 다양한 분야가 있는데 그 중에 선형대수를 잘해야되고, 통계학도 잘해야 합니다. 물론 통계학 안에 미분 적분 이런것들은 다 있겠죠.
- 프로그래밍과 데이터베이스 Programing & Database
그 다음에 프로그래밍 스킬들을 여러분들이 잘 익히셔야 합니다.
프로그래밍 스킬로는 파이썬, R, Spark, AWS입니다.
- AWS (아마존 웹 서비스)
AWS는 아마존 웹 서비스라고 해서 여러분들 클라우드 많이 들어보셨죠? 클라우드 컴퓨팅을 여러분들이 사용하실 수 있어야 합니다. AWS를 이용해서 여러분들 개인 PC에서도 머신러닝 모델을 만든다던가 프로그래밍을 한다던가 할 수 있습니다. 그런데 여러분들 개인 컴퓨터 중에서 메모리가 1TB짜리 보신 적 있나요? 없죠. 그런데 AWS를 이용하면 1테라짜리 메모리를 가지고 있는 컴퓨터를 만들어 낼 수가 있어요. 그래서 대부분의 회사에서는 모든 환경이 이 AWS와 같은 클라우드 서비스를 통해서 여러분들이 모델링도 하고 데이터 분석도 하게 되는 것입니다. 그래서 메모리가 보통 512기가, 1테라 이정도 되는 사이즈의 컴퓨터를 원격으로 여러분들 개인PC에서 접속해서 프로그래밍을 하는 경우가 아마 많으실겁니다. 그래서 이런 클라우드 시스템을 여러분들이 알고 계셔야합니다.
- R
R같은 경우는 통계학에서 수학적을 검증을 할 때 많이 사용하는 언어인데, 최근들어서는 R에서 다 파이썬으로 넘어오는 추세입니다. 왜 그러냐면 R이 속도가 굉장히 느립니다. R이 만들어지게 된 배경 자체가 S라는 통계학 쪽에 언어가 있었는데 그게 유료였습니다. 이 S라고 하는 통계학 쪽의 유료 버전을 무료 버전으로 만든게 R입니다. R이라고 이름을 지은 것도 알파벳 순서상 S 앞에 있어서 R이라고 지은겁니다. 근데 R이 속도가 많이 느려서 요즘은 다 파이썬으로 넘어오는 추세입니다. 파이썬에는 Pandas(판다스)라는 패키지가 있는데. 이 pandas(판다스)가 R을 구현해놓은 파이썬 패키지라고 생각을 해주시면 되는데 실제로 테스트를 해보면 수 십 배 정도 빠릅니다. 그래서 파이썬 배우시고 나중에 pandas라는 패키지를 배우실 때 이 R이라고 하는 것을 모티베이션해서 만들었다고 생각하시면 됩니다.
- Spark
그 다음에 이제 Spark같은 경우는 여러대의 컴퓨터를 하나의 컴퓨터로 쓸 수 있게 해주는 기술입니다. KT나 다른 대기업 같은 경우는 하루에 쌓이는 데이터만 몇 테라씩 됩니다. 그러면 하나의 컴퓨터로는 처리할 수는 없겠죠. 그래서 그 데이터를 여러대의 컴퓨터에 분산해서 저장을 합니다. 그리고 그 여러대의 컴퓨터를 Spark를 통해서 하나처럼 사용할 수 있도록 해주는겁니다. Spark는 보통 Scala(스칼라)라는 언어를 사용하는데 파이썬 언어로도 Spark를 사용할 수 있습니다. 그러니까 파이썬이 굉장히 다양한 분야에 많이 사용 될 수 있는 언어라고 생각하시면 되겠습니다. 그래서 데이터분석이나 머신런닝을 할때는 파이썬이 유리합니다.
- Domain Knowledge
그 다음에 Domain Knowledge가 있습니다.
여러분들 혹시 Hacker Mindset, 그로세킹이라는 말 들어보셨나요? 가장 간단한 예로 고객들의 이메일 정보를 가져다가 홍보를 쫙 뿌리는거죠. 회사 서비스를 향상 시키기 위해서 수단과 방법을 가리지 않는 것을 그로세킹이라고 하는데요. 그런 해커 마인드셋을 가지고 있어야 합니다.
그 다음에 데이터에 대한 호기심이 있어야 되요. 이 데이터를 가지고 무엇을 해야 하는지, 어떤 결론을 내야 하는지 이런 관심을 없으면 이쪽 관련된 도메인 지식을 쌓을 수가 없습니다. 만약 내가 금융쪽에 관심이 있다면 금융쪽에서 사용하는 생산자 물가지수나 소비자 물가지수나 금리나 이런 다양한 용어들을 알아야 금융 데이터를 분석할 수가 있겠죠. 그래서 내가 어떤 분야의 데이터를 가지고 이런 스킬들을 사용할지 생각을 미리 해야 합니다.
- Communication & Visualization
마지막으로 커뮤니케이션 스킬이 있어야 합니다.
약간 애매할 수 있는데 일단 Data Driven Mindset이 있어야 해요. 이 말은 데이터를 기반에 둔 마음가짐이라는 뜻입니다. 만약에 여러분이 데이터를 가지고 결론을 도출하고 중요한 의사결정에 근거를 제시했어요. 그런데 회사 대표가 Data Driven mindset이 없으면 이런식으로 나올 수 있습니다.
"그 말이 맞는것 같긴 한데.. 그래도 내 생각에 이렇게 하면 더 잘될것 같은데?"
하면서 그 데이터를 무시해버리는 경우도 있습니다. 그때 이제 여러분들이 대표가 무식해서 모른다 하고 넘어가면 안되고, 그 사람이 Data Driven mindset을 잘 가질 수 있도록 커뮤니케이션을 잘 해줘야 합니다. 그것도 데이터 관련된 직무를 하실 때 가져야 할 마인드셋입니다. 그리고 클라이언트 같은 경우는 우리가 데이터 가지고 2개월, 4개월 길게 데이터를 분석하고 리포팅을 합니다. 그런데 클라이언트가 만약에..
"굳이 그거 데이터분석 해야 되나요? 상식적으로 생각해도 그렇게 결론 나오는거 아니에요?"
이렇게 나올 수도 있어요.
그때 여러분이 visualization이라던가, story telling이라던가 이런것들을 하면서 잘 설득할 수 있어야 해요. 그래서 가장 좋은 방법은 너무 쉽게 알려준다고 해서 정량적인 지표없이 정상적인 지표로만 가지고 얘기를 하면은 사람들이 '얘 그냥 자기생각 얘기하는거 아니야?' 이렇게 생각할 수 있습니다. 그래서 시작부터 정량적인 수치화된 지표를 가지고 리포팅을 하면 클라이언트한테 신뢰를 얻을 수 있습니다.
"상식적으로 생각해도 그렇게 결론 나오는거 아니야?"
이렇게 나오면
"지금 수치가 이러니까 A라는 마케팅을 했을 때 이 수치가 어떻게 변하는지를 알면 A라는 마케팅이 효율적인지 비효율적인지 수치적으로 알 수 있습니다."
이런식으로 수치적으로 보여주면서 설득을 해야합니다. 그래서 이런 커뮤니케이션 스킬들도 많이 필요합니다.
지금까지 데이터 사이언티스트가 되기 위해서 필요한 스킬셋에 대해서 알아보았습니다. 여러분들이 데이터 사이언티스트가 되고자 하신다면 꼭 필요한 Skill Set이니 위 4가지를 꼭 유념하시고 준비하시면 좋겠습니다.
긴 글 읽어주셔서 감사드리고 다음 포스팅에서 더 좋은 포스팅으로 돌아오겠습니다.
감사합니다.
'데이터 사이언스' 카테고리의 다른 글
데이터 사이언스 경영에 의존하는 요즘 기업 경영 (0) | 2022.08.09 |
---|---|
데이터 엔지니어가 되려면? (시스템엔지니어 + 백엔드개발자 + DBA = 데이터 엔지니어!) (0) | 2022.08.06 |
데이터 사이언티스트, 애널리스트, 엔지니어의 차이 (ft. 직군별 필요 역량) (0) | 2022.07.24 |
인공 지능 - 딥러닝과 머신러닝은 도대체 뭐가 어떻게 다른걸까? (0) | 2022.07.22 |
빅데이터 vs 데이터 사이언스 vs 데이터 분석 차이점 (0) | 2022.07.21 |