데일리 미션/Article

Article : 데이터 분석가에게 코딩테스트가 필요할까?

pipiiiiii 2024. 1. 4. 12:00

https://yozm.wishket.com/magazine/detail/1708/

 

데이터 분석가에게 코딩테스트가 필요할까? | 요즘IT

최근 개발자 교육 붐이 불면서, 이른바 ‘코딩’이라고 뭉뚱그려 표현하는 개발 기술들을 배우는 학원이 많아졌습니다. 이러한 인재들이 자신들이 배운 걸 확인하기 위해 한 번쯤 꼭 거치는 단

yozm.wishket.com

 

<아티클 내용 요약>

코딩테스트란 무엇인가?

- 개발자에게 필요한 역량을 확인하는 목적의 코딩 시험이 이뤄지는 과정

  • 실제 업무와 유사한, 그러나 '상당히' 줄어든 범위의 문제를 풀어내는 코드를 작성하고, 시험을 위해 주어지는 예시 데이터들을 기준으로
  • 코드가 정상적으로 돌아가고, 올바른 결과 값을 보여주는지
  • 그 과정에서 메모리를 비롯한 컴퓨팅 리소스를 얼마나 효율적으로 활용하는지,
  • 계산 시간은 어느 정도 걸리는지

- '특정 프로그래밍 언어를 사용하여 주어진 문제를 잘 해결할 수 있는지'의 기술적인 부분을 확인하는 시험 

- 한 가지 특이한 점으로, 자주 쓰이는 프로그래밍 언어가 아닌 마이너한 프로그래밍 언어로 시험을 하는 일도 종종 있다. 

- 그렇다면 왜 데이터 분석가는 코딩테스트로 역량을 확인할 수 없을까 

 

 

데이터 분석가가 업무에서 하게 되는 것들 

- 데이터 분석가는 기업의 문제를 '데이터를 분석/활용하여' 풀어내는 역할을 한다. 

- 데이터 분석가 채용 공고에 자주 등장하는 내용

  • 데이터를 활용하여 현재 운영 중인 서비스/프로덕트의 고도화
  • 데이터 기반 의사 결정을 위한 전략 및 분석 지원
  • 전사적 목표 달성을 위한 가설 설정 및 이를 검증하기 위한 실험 설계 및 분석
  • 인사이트 제공을 위한 지표 정의 및 대시보드 및 리포트 제작

- 여기에 '새로운 가치 발견'이라는 한 가지가 추가되면 어느 기업에서나 기여할 수 있는 데이터 분석가의 업무가 될 수 있다. 

- 어떤 역량이 필요한지 조금 더 상상하기 편할 수 있게 공공 부분의 사례를 가져왔다. 

  •  국내 사건사고 데이터 시각화 (서비스 고도화)
    - 소방청에서는 데이터 분석을 통해, 어느 위치에서 어떠한 유형의 사고가 자주 일어나는지 파악했다. 
    - 이런 활동을 통해 약 22%의 출동 건수 감소 및 사상자 수 43% 감소와 같은 사고 저감 효과를 냈다.  
  •  오바마 캠프의 A/B테스트 사례 (실험설계/분석)
    - 대선을 치르던 당시 오바마 캠프는 '대통령 선거 승리'라는 명확한 목표가 있었다.
    - 이를 위해 국민이라는 '고객'들을 만족시킬 수 있는 세그먼트별 타깃 전략이 필요했고 이를 위해 오바마 캠프는 A/B 테스트를 통한 데이터 분석을 활용했다.
    - SNS 좋아요 버튼을 통해 수집되는 유저 데이터부터 다양한 데이터를 활용해서 세그먼트 별 가장 효과적인 캠페인을 진행할 수 있도록 A/B 테스팅을 진행했고 결과는 당선이었다. 
  • 서울시 심야버스 노선 최적화 (데이터 기반 의사결정 전략)
    - 늦은 퇴근을 택시만으로 감당하는 것은 많은 서울 시민의 불만 사항이었고, 이를 개선하기 위해 서울시에서는 심야 시간에만 운행되는 버스를 운영해 왔다.
    - 심야버스는 추가 수요를 감당하는 관점이기 대문에 수요에 따라 지속적인 최적화가 필요했다.
    - 서울시는 통신사 KT와의 협업으로 휴대전화 이력 데이터를 통해 어느 지역에 심야 인구가 많은지 파악하고, 이 데이터를 기반으로 기존 심야버스 노선을 변경하거나 신설해 고도화를 진행했다.

 

 

기업 내 데이터 분석가의 업무  

- 기업은 데이터 분석가들에게 사례와 같은 성공 사례를 만드는 걸 기대한다.

- 위의 사례에서 공통으로 나타나는 특징 5가지를 찾을 수 있다.    

  1. 분석할 수 있는 데이터는 준비되어 있다.
  2. 서비스를 통해 풀고자 하는 문제를 명확하게 인지했다.
  3. 복잡한 혹은 최신 논문에 나오는 데이터 분석 기법을 활용하지 않았다.
  4. 데이터 분석팀 외에도 다양한 팀과의 협업을 통해 문제를 해결했다.
  5. 특별히 어떤 툴을 썼다 하는 내용은 언급되지 않는다.

- 1번과 5번을 제외한 부분에 연관되는 역량을 다음과 같이 정의하고 싶다.  

- 2 : 문제 정의

- 3 : 데이터 분석에 대한 이해

- 4 : 타 직군과의 협업

- 추가로 빠른 학습도 있으면 좋을 것 같다. 

 

 

정해진 답이 없는 데이터 분석가의 업무 

- 데이터 분석가는 데이터를 활용해 정해진 답이 없는 문제를 해결해야 한다. 

- 이러한 역량을 확인하는 데에는 정답이 정해져 있는 코딩테스트보다 과제 전형이 대체로 더 효과적입니다.  

- 기업 성향에 따라서 데이터 분석을 위해 수집부터 하는 경우도 있다. 사실 모아둔 데이터에서 풀 수 있는 문제를 만들기보다 먼저 문제를 정의하고 문제를 풀 데이터를 모으기 시작하는 것이 더 자연스럽기도 하다. 

- 다만 데이터 수집을 하는 환경을 만들고, 수집하는 직군은 데이터 분석가보다 '데이터 엔지니어'로 정의하는 것이 자연스럽다고 생각한다. 

- 데이터 분석 사례들을 보면 특별히 어떤 툴을 썼다 하는 내용이 언급되지 않는다. 그 이유는 조직에서 데이터 분석가에게 '어떤 문제를 왜 풀어서 무슨 변화를 만들 수 있는지'가 '문제를 어떻게 풀 것인지'보다 더 크게 기대하기 때문이다.

 

 

코딩테스트와 데이터 분석 

- 코딩테스트는 대상자의 기술 역량을 확인하는 데에 있어서 아주 효과적인 방법이다. 그러나 데이터 직군의 경우 코딩테스트로는 확인하기 어려운 다른 역량들 또한 필요하다. 

- '조직의 문제를 해결하고 고객을 만족시킨다'라는 기술적인 관점에만 몰입하면 정작필요한 결과를 얻기 어렵다. 기술적인 부분 외에 다른 역량에도 중점을 두면 데이터 분석가로서 기업에 훨씬 더 큰 기여를 할 수 있다.

- 물론 코딩 역량이 중요하지 않다는 의미는 아니다.  

- 아래 예시는 데이터 직군의 코딩테스트에서 언급되는 (실무에서도 자주 하게 되는) 예시다.

  • 머신러닝 모델의 평가 지표 계산
  • SQL을 활용한 메트릭 계산
  • 텍스트 등의 데이터 파싱 및 전처리

- 당연히 코딩이 필요한, 실무에서도 자주, 그리고 익숙하게 해야 하는 작업이기 대문에 데이터직군도 이 정도의 코딩 역량은 중요하다. 

- 개인적으로 'Scientific Programming'이라 표현되는 개념이 '이 정도의 코딩'에 가깝다고 생각한다. 

- 글을 마치기 전 추가로 필요한 역량을 소개한다.  

  • 통계학 
    - 데이터를 다룬다는 것은, 궁극적으로 데이터에서 일정한 패턴을 찾거나 다른 것을 찾아 의미를 부여하는 일이다. 
    - 상당히 많은 데이터 분석 방법들이 통계학을 기반으로 하고 있으며, 통계학에 대한 이해가 깊을수록 데이터를 온전히 활용할 수 있다. 
    - 학부 수준의 기초 통계학에 대한 이해도 좋지만 그 이상이라면 자신의 Specialty를 더 키울 수 있을 것이다. 
  • 심리학
    - 데이터 분석가 중 꽤 많은 분이 심리학을 배경으로 가지고 있다. 
    - 여기서 말하는 심리학은 '내가 지금 무슨 생각을 하고 있게?'와 같은 가벼운 교양 심리보다는, 아래의 포그 행동 모델 같은 걸 의미한다.  

    - 고객이 다음 행동을 진행하기 위해서 필요한 보상과 이를 막는 장벽 등을 모델링하고 설계하는 조금 깊은 심리학이라고 생각해야 한다. 

 

 

<알게 된 개념>

- 데이터 분석가에게도 코딩테스트가 필요할 수 있다고 생각했다. 그리고 역시 코딩테스트는 실무에서 사용하기 때문에 하는 것이라는 걸 다시금 알 수 있었다. 그리고 그 일들을 하기 위해서 나도 할 줄 알아야 된다는 것도 이해했다. 

 

그냥 막연하게 해야지, 필요해가 아니라 왜 필요한지를 알 수 있었고, 지금 하는 공부들을 꾸준히 하면서 역량을 강화하면 언젠가 Article에서 언급한 툴들과 언어들을 공부하게 될 것 같다. 

 

지금의 나에게는 MYSQL과 Python으로도 머리가 아프니 지금이 아닌 일은 지금의 나에게 주지 않고 인지만 시켜야겠다.