데이터 과학

이재관·2022년 2월 2일
0

(이 포스팅은 '하둡과 스파크를 활용한 실용 데이터과학'책의 리뷰이다.)

데이터 과학이란?

데이터에서 어떤 의미나 통찰을 발견하려고 과학적 방법을 이용하는 '데이터 탐색'과 발견한 의미와 통찰을 비즈니스 맥락에서 활용하는 '소프트웨어 시스템의 구축'을 아우른다.

핵심적 측면

  • 데이터 과학은 과학적 방법으로 데이터를 탐색하는 행위, 의미나 통찰을 발견하는 과정이 다른 과학 분야의 발견 과정으로 '질문-> 가설 수립-> 구현 및 테스트-> 결과 평가'로 이어지는 일련의 단계를 반복하는 과학 실험 과정과 유사하다는 것을 의미한다.

  • 데이터 과학은 비즈니스 맥락에서 실제로 활용할 수 있는 소프트 웨어 시스템을 구축하는 행위로 데이터 과학으로 구현된 기술이나 알고리즘이 하루하루 굴러가는 비즈니스에 즉시 활용할 수 있는 결과를 만들어낸다.

데이터 과학의 간략한 역사

데이터 과학의 등장 배경은 지난 수십년간 일어난 기술적, 과학적 진보와 밀접함

  • 통계학 및 머신 러닝 분야의 연구로 머신이 효율적으로 데이터 패턴을 학습하는 실용적이고 성숙한 기술이 등장했으며 최신 머신 러닝 알고리즘을 빠르고 안정적으로 구현한 오픈 소스 라이브러리가 다수 개발되었다.
  • 컴퓨팅 기술이 발전하면서 대량의 데이터를 수집, 저장, 처리하는 작업이 이전보다 수월하고 비용도 저렴해짐에따라 통계학 및 머신 러닝 분야의 진보된 알고리즘을 사용해 대량 데이터에서 통찰을 발굴하는 과정의 비용 대비 효율성이 더 현실적인 수준으로 개선되었다.

통계학과 머신 러닝

회귀 분석(Regression), 우도(Likelihood), 분산 분석(analysis of variance), 상관 분석(correlation)등의 널리 알려진 통계기법이 있다.
20세기 중반에 이르러 통계학은 데이터 분석에서 본격적으로 사용되기 시작했으며 1962년 발표된 <데이터 분석의 미래(The Future of Data Analysis)>의 저자 존 터키는 "결국 나의 가장 큰 관심은 데이터 분석에 있다."고 언급했으며 이는 응용 통계학의 중요한 이정표로 받아들여졌다.

이후 수십 년간 통계학자들은 응용 계산 통계학 분야에 많은 관심을 보이며 관련 연구를 지속했다. 하지만 그 당시 통계학자들의 노력은 컴퓨터 과학 분야의 머신 러닝 연구와 상당히 동떨어져있었다.

1950년대 후반 컴퓨터의 발전이 유아기에 접어들면서 컴퓨터 과학자들은 사람의 신경 전달 모델에서 착안한 인공지능 시스템, 즉 인공 신경망(neural networks)을 연구하기 시작했으며 프랭크 로젠블렛의 선구적인 퍼셉트론(perceptron)알고리즘과 그 뒤를 이은 위드로와 홒프의 연구는 새로운 분야에 대한 연구자들의 폭발적인 관심을 불러일으켰다.

인공 신경망의 초기 성공에 뒤이어 수십 년간 데이터로부터 패턴을 자동으로 학습하는 다양한 머신 러닝 기법(최근접 이웃(nearest neighbor), 의사 결정 트리(decision tree), k-평균 군집화(k-means clustering), 서포트 벡터 머신(support Vector Machine, SVM)등이 고안되었다.

데이터 과학자가 되는 길

그렇다면 어떻게 데이터 과학자가 될 수 있을까?
데이터 과학자로 성공하려면 일반적으로 데이터 엔지니어링(data engineering)과 응용과학(applied science) 두 가지 컴퓨터 과학 기술 역량을 모두 보유하고 이들을 결합해야한다.

데이터 엔지니어

고속 분산 파이프라인을 구축할 수 있는 전문 지식을 갖추고 운영 등급(production-grade)에 걸맞은 고품질 소프트웨어 시스템을 능숙하게 구축하는 숙현된 소프트웨어 엔지니어다.
최소 하나 이상의 주요 프로그래밍 언어(JAVA, Python, 스칼라, 루비,C++)와 소프트웨어 개발에 관련된 툴셋(메이븐(Maven), 앤트(Ant)같은 빌드 도구, 단위 테스트(unit test) 프레임 워크, 다양한 소프트웨어 라이브러리)에 대한 높은 전문성을 보유한 경우가 많다.
또한 데이터 엔지니어는 데이터의 수집, 저장, 처리 시스템 전반을 구축할 수 있는 전문 역량을 갖춘 경우가 많다. 데이터 시스템의 구체적인 기술에는 기존의 관계형 데이터베이스부터 NoSQL 데이터베이스, 하둡 스택(HDFS, HBase, 피크, 하이브 스톰 등)까지 포함된다.

응용과학자

주로 컴퓨터 과학, 응용 수학, 통계 분야의 학위를 보유하고 학계에서 연구를 수행한 배경을 가진 인력을 말한다.
응용과학자는 여러 알고리즘(k-평균 군집화, 랜덤 포레스트, ALS 등)에 내포된 수학적 이론에 대한 지식을 보유하고 이러한 알고리즘을 최적화하는 방법과 알고리즘을 실세계 데이터에 적용하면서 직면하는 다양한 선택, 그리고 이러한 선택 간의 상충관계(trade-off)에 대해서도 깊이 이해한다.
학술적 연구와 논문 게재에 중점을 두는 연구과학자와 달리 응용과학자는 주로 실세계의 문제를 해결하는 데 중점을 두며 데이터에 가장 적절한 알고리즘을 적절한 방법으로 적용해 당면한 문제를 해결하는것에 중점을 둔다.

데이터 과학자로 취직하는 방법

필요 기술 역량

데이터 엔지니어링
  • 분산 시스템
  • 데이터 처리
  • 컴퓨터 과학
  • 소프트웨어 엔지니어링
응용 과학
  • 데이터 분석
  • 실험 설계
  • 머신 러닝
  • 통계학

데이터 과학자로 성공하려면 분류(Classification), 회귀(Regression), 군집화(Clustering), 이상 탐지(anomaly detection) 등 데이터 과학 업무를 수행하는데 필요한 통계학과 머신 러닝 기법을 더 깊게 이해하고 이에 대한 실무 경험을 쌓아야한다.
응용과학자이며 이미 머신 러닝과 통계학을 잘 알고 있다면 데이터 과학자가 되기 위해 더 강력한 프로그래밍 기술을 습득하고 기본적인 소프트웨어 아키텍처와 개발 역량을 갖춰야한다.

데이터 과학자가 갖춰야할 소양

데이터 과학자로서 일하는 것은 머신 러닝, 프로그래밍 같은 기술 분야의 구체적인 전문성 외에도 다음과 같은 자질을 갖춰야한다.

  • 호기심: 항상 데이터 안의 패턴과 변칙을 찾아야하며 자연스럽게 호기심을 느껴야한다. 데이터를 파헤치는 방법에 정답은 없으며 결국 데이터 과학자의 호기심에 데이터 과학자를 원시 데이터에서 최종 결과까지 이끌어 줄 수 없다.
  • 배움의 즐거움: 데이터 과학 분야에서 떄떄로 새롭게 배워야할 기술과 도구. 알고리즘이 무한정 많다고 느껴질 수 있다. 데이터 과학자로 성공하려면 새로운 것을 끊임없이 배우고자하는 열린 자세가 필요하다.
  • 끈기: 데이터 과학에서는 한 번에 성공하는 일이 거의 없다. 그러므로 데이터를 계속 두드리는 시도를 반복하며 절대 포기하지 않는 끈기가 성공의 핵심이다.
  • 스토리 텔링: 데이터 과학자는 종종 경영진 또는 비즈니스 이해관계자들이 볼 때 다소 복잡할 수도 있는 내용을 그들에게 발표해야한다. 데이터 분석 결과를 이해하기 쉽고 명확하게 제시할 수 있는 능력이 무엇보다 중요하다.
profile
안되면 될 때까지

0개의 댓글