본문 바로가기
Analysis Tips

데이터 분석가가 되려면 어떤 스킬이 필요할까?

by dovah. 2023. 7. 8.
반응형

어느덧 데이터 분석가로 일을 한지 6년차가 되었다.

빅데이터라는 명칭이 난무하고, 알파고 세상을 뒤흔들던 17년에 대학원을 졸업했는데,

그땐 모두가 딥러닝에 반해 CNN, RNN 을 외치던 때였다.

 

어떻게 보면 데이터라는 분야가 더 커져가게 되는 좋은 시발점이었지만,

취업을 준비 중이던 나에겐 그렇게 좋은 상황은 아니었다.

 

데이터 마이닝과 머신러닝 정도에만 익숙했고, 딥러닝은 그냥 들어만 본 정도 였기 때문에

앞으로 어떻게 취업을 해야할지, 어떤 기술 스택을 쌓아야할 지 전혀 몰랐다.

 

다니던 회사를 그만두고 쉬면서 내가 가진 기술들을 정리하고, 앞으로 어떻게 커리어를 쌓아야할지 고민하다보니 불현듯 그때가 떠올랐다.

 

정말 많은 정보들이 넘쳐흐르는 이 시기에 분석가에게 필요한 기술은 어떤 것일까

 

1. 데이터 추출(SQL)

나는 누가 데이터 분석에 필요한 기술은 뭐가 있나요라고 물어보면 무조건 1순위는 SQL이라고 대답한다.

아무리 python이나 다른 툴에 대한 기술이 있어도, sql 능력이 뒷받침되지 않으면 반쪽짜리라고 생각한다.

 

데이터 모델링이나 분석을 하다보면, 데이터 양이 너무커서 서버에서 실행되지 않는 경우들도 있으며, 실행이 되더라도 상당히 불안정한 경우들이 발생한다.

 

데이터 추출 이후의 전처리 로직을 통해 이 부분을 최대한 줄여볼 수 있겠지만, 

내가 생각했을 때 가장 좋은 것은 데이터 추출 단계 자체를 최적화 하는 것이다.

 

다만, 여기서 오해할 수 있는 것이 단순히 다양한 함수를 활용해서 쿼리를 짜는 스킬이 중요하다는 것이 아니다.

같은 쿼리도 어떻게 부하를 더 줄이고, 시간을 단축시키고, 한번의 추출을 최대한 잘 활용할 수 있는지에 대한 스킬을 말하는 것이다.

 

예를들어 join을 할때, 뒤에 올 테이블보다 앞선 테이블을 작게 하는 것처럼, between 대신 등호를 사용하는 것처럼 

사소하지만 체감할 수 있는 스킬들을 말이다.

 

DBA가 아니고 데이터 엔지니어가 아니기 때문에 SQL 자체에 깊은 이해와 다양한 스킬 보다 분석을 하기위한 판을 잘 까는 것이 중요하다.

그리고 그렇게 판을 깔아보다보면 하나의 판을 가지고 다양하게 활용할 수 있는 판을 깔 수 있게 되는 것 같다.

 

실제 데이터 분석가를 준비하는 학생들이라면, 해커랭크나, 프로그래머스를 통해서 익히고 배우는게 제일 좋은 방법 같다.

 

 

2. 데이터 전처리

바로 앞에서 데이터 추출 능력을 얘기 했으니, 당연히 이 다음은 전처리 능력이다.

python이나, r에서 데이터 전처리를 할 수 있는 라이브러리가 매우 많아졌고, 관련 자료들도 많아져서 크게 설명을 하지 않아도 될 것 같다.

개인적으로 python만 사용하기 때문에 python 기준으로 이야기를 하고자 한다.

 

numpy나 pandas 정도만 원활하게 사용할 수 있으면 전처리 능력의 70% 수준은 되었다고 생각한다.

numpy의 경우 where 같은 함수를 알아두면 여러모로 아주 편해진다.

pandas의 경우에는 groupby 외에 apply, lambda, pivot, melt 정도를 활용한다면 크게 문제없이 처리할 수 있을 것이다.

 

여기서 조금 더 나아간다면, pandas 외에 dask와 같이 대용량 데이터를 처리할 수 있는 라이브러리도 사용해보는 것을 추천한다.

 

 

3. 데이터 시각화

처음 회사를 다닐때만해도 특별한 시각화툴이 있진 않았다.

물론 태블로나 스팟파이어 같은 툴이 있긴 했지만, 지금처럼 대부분의 회사에서 시각화들을 사용해서 하기보단 엑셀로 그때그때 만들었다.

 

시각화 스킬이라고 하면 흔히들 태블로 스킬을 많이 생각할 것이다.

하지만 태블로의 경우 사용료가 적지 안하고, 꾸준히 사용해보고, 인프라에 맞춰가야하는 부분들이 있기 때문에 

태블로 자체에 대한 기술이 중요하다고 생각하진 않는다.

 

어떤 변수를 어떻게 보여주고, 어떤 방식으로 해석해 나갈 것인가

이게 시각화에 가장 중요한 포인트라고 생각한다.

그렇기 때문에, 무작정 태블로를 사용해보는 것보다, 자신이 수집하거나 보유한 데이터를 가지고 어떻게 보여줄 지에 대해서 고민해보는 게 더 필요하다고 생각한다.

 

최근 streamlit이라는 라이브러리를 사용해봤는데, 굉장히 직관적이고 사용하기 쉬웠다.

꼭 태블로가 아니더라도 이와 같은 라이브러리를 통해서 하나의 대시보드를 어떻게 만들고 보여줄 것인지를 고민해보면 좋을 것 같다.

하다못해, 전처리한 데이터를 엑셀로 추출해 피벗이나 단순 그래프 같은 것들을 사용하는 것도 좋은 방법이라고 생각한다.

 

4. 자동화

여기서말하는 자동화는, 전처리한 데이터를 주기적으로 적재하는 스킬을 의미한다.

단순히 cronjob과 같은 batch 스킬이 아니라,

내가 이 데이터를 주기적으로 쌓는다고 했을 때, 어떻게 테이블을 구성하는 게 좋을까?

추출 과정은 어떻게 해야 효율적일까?

와 같은 질문에 해답을 만들어가는 스킬이라고 이해하면 좋을 것 같다.

 

앞서 언급한 추출, 전처리 스킬들이 ad hoc과 같이 1회성인 경우에는 크게 문제가 되지 않는다.

하지만 이 과정 자체를 주기적으로 확인하고 진행한다고 하면 전혀 다른 얘기가 된다.

추출 자체에서 정확한 데이터를 안정적으로  추출해야하며,

전처리 과정 또한 데이터 정합성이 확보되어야 한다.

 

또한, 데이터를 적재 주기를 어떻게 할 것인지, 잘못된 데이터가 들어왔을 때 어떻게 할지, 데이터 수정은 어떻게 할지 등등

발생할 수 있는 문제에 대해서 어느정도 해결책들을 정리해놔야한다.

 

뭐 그냥 이렇게 코드 짠거 돌리면 되는거 아냐? 라고 쉽게 생각할 수 있겠지만

사실 이 부분을 위해서 앞선 스킬들을 나열했다고 해도 과언이 아니다.

 

5. 도메인 지식

얼토당토 않는 얘기다. 도메인이 없는데 도메인 지식이라니,,,,

전문적인 지식을 원하는 것이 아니다.

내가 관심있고 자주 사용하는 서비스에 대해서 깊은 생각을 해보는 것을 말하는 것이다.

 

내가 이 서비스에 추천 로직을 짠다면 어떻게 할 수 있을까?

지금은 이런 기준으로 하는건가? 그럼 이렇게 바뀐다면 어떤 영향이 있을까?

 

깊이가 있지 않아도 된다.

그치만 이 서비스의 다음 스텝에 대해서 한번 쯤 생각해보고 고민해본다면 아마 분석가가 자신의 결과물을 어필하는데 더 큰 도움이 될 것이다.

 

 

 

최근 데이터 분석이라는 직종이 엄청 뜨면서 여러 곳에서 강의를 듣고 배울 수 있는 것 같다.

개인적인 생각으론 대학원을 진학해보는 것을 추천한다.

대학원은 어쨋거나 논문을 써야하는 곳이기 때문에 다양한 연구들을 읽어보고 논문을 쓰다보면 최소한의 논리적 흐름이 생기기 마련이다.

 

아무런 의미 없이, 남들이 한 것을 내 데이터에 맞추기보단

내가 데이터를 보면서 드는 생각을 논리적으로 표현해보는 것은 오히려 대학원 커리큘럼이 더 낫다고 생각한다.

 

 

반응형

댓글