트위터를 통해서 질문을 받았습니다. 그 질문에 대한 답장을 보냈습니다. 앞으로 데이터마이닝 및 빅데이터 분석에 관심이 있는 이들이 많이 있을 것같아서 그 내용을 그냥 옮겨 적습니다.
질문.
저는 XX대학교 정보통계학과 2학년 재학중인 학생입니다. 통계학을 전공하고 있는 저로서는 Data Philosopher가 저의 이상이라 생각이 들었습니다. 무엇을 어떻게 준비해야 경쟁력이 생길까요..? 빅데이터시대에 데이터 분석가로서의 자질을 갖추기 위해서는 어떠한 것들을 준비해야할지 여쭙고 싶습니다. (개인정보 및 부가적인 부분은 삭제했습니다.) 1
답변.
저의 이전 글들도 읽어보셨는지 모르겠지만 (데이터마이닝 카테고리), 저의 학문적인 백그라운드는 데이터마이닝과 거리가 있고 회사에서는 데이터마이닝팀에 속해있지만 현업에서의 마이닝업무는 학교에서 다루는 것과 다소 차이가 있습니다. 최근에 빅데이터가 이슈라서 인프라를 갖추고 기본적인 것들은 하둡 등을 활용하고 있지만 빅데이터 전문가도 아닙니다.
지금 통계를 전공하고 계시기 때문에 수학적인 부분 - 수치적 데이터 해석 - 에서는 강점이 있다고 생각됩니다. 그런데 통계/수학을 전공하시면 수치 데이터에서는 편안함을 느끼겠지만, 현장/서비스에서 나오는 데이터들에 약점이 있다고 생각됩니다. 서비스 관련 데이터의 대부분은 숫자가 아닌 다른 형태 (키워드, 문서, 이미지, 음성 등)로 된 경우가 더 많습니다. 그리고 해당 서비스마다 비즈니스 로직 또는 레가시 시스템이 있기 때문에 통계적 지식만으로 문제를 해결할 수가 없는 경우가 많습니다.
앞으로 어떤 분야로 진출하실지 모르겠지만, 제조업이든 금융이든 생명/바이오든 아니면 저같이 웹/인터넷 관련이든 해당 도메인/산업/서비스의 백그라운드 지식을 공부해두는 것이 좋을 거라 생각됩니다. 최소 관심있는 분야에 대해서 미리 공부해두시면 향후 진로결정에도 도움이 됩니다. 가능하면 생명과나 전자과 등을 복수/부전공하시는 것도 좋고, 이것이 어렵다면 101과목들이라도 들어두시면 진로선택에 도움이 될 것으로 생각됩니다. 두번째로 현재 통계학과에서는 SAS나 R 또는 매스매티카, 미니탭 등의 통계 패키지를 사용하시겠지만 이것들로는 실제 업무에 한계가 있습니다. 메인 분석업무는 해당 패키지를 사용하더라도 전처리나 후처리/데이터연동 등에서는 다른 랭귀지들이 필요한 경우가 많습니다. 그러니 적어도 C나 Java, 파이썬 등 한가지 이상의 컴퓨터 랭귀지를 공부해두시는 것이 좋습니다. 아울러서, 다양한 알고리즘, 특히 머신런닝과 관련된 최근 기술들에 대한 지식축적도 게을리하시면 안 됩니다. 회귀분석이나 클러스터링, 클래시피케이션 등의 기본적인 것은 모두 알고 있으면 나중에 편합니다. 모든 알고리즘들을 마스터하실 필요는 없지만, 개념적으로 어떻게 만들어지고 작동되는지 정도는 미리 알아두시는 것이 좋을 것같습니다. 가능하면 다양한 알고리즘들을 직접 구현해보는 것이 이해 및 적용에 많은 도움이 됩니다.
그리고 구체적으로 빅데이터에 대해서 물어보셨는데, 사실 저도 전문가가 아니라서 훈수를 두기가 조금 두려운 감이 있습니다. (실제 제가 사용하는 것이 아닌 것들도 막 얘기할테니 적당히 걸러서 이해하세요.) 빅데이터는 크게 시스템 개발 및 운영, 데이터 분석, 서비스 활용 등으로 나뉠 수 있을 듯한데, 통계학/분석을 전공하시기 때문에 시스템 쪽은 별로 관련이 없을 듯합니다. 기본적으로 어떤 시스템들이 있는지 정도만 파악해도 별 문제가 없을 듯합니다. 실제 데이터 분석이 주로 관심이 있으실텐데, 사실 빅데이터라고 해서 데이터 분석방법이 달라지는 것은 없습니다. 그러니 앞서 설명드린 데이터마이너로써의 기본자질인 서비스/도메인에 대한 이해의 폭을 넓히고 컴퓨터 랭귀지 및 알고리즘을 어떻게 잘 활용할 수 있는지에 대한 고민과 학습이 필요하리라 생각됩니다. 그리고 빅데이터에서는 R이 많이 주목받고 있기 때문에 R을 이용해서 다양한 데이터를 처리해시면 좋을 듯합니다. 빅데이터를 위한 머신러닝인 Mahout같은 것도 최근에 연구/개발되고 있으므로 이런 것도 미리 사용해본신다면 좋을 듯합니다. (하둡이나 이런 빅데이터 기술을 잘 활용하려면 Java나 파이썬 등이 필요합니다.) 통계에서는 단순히 분석 결과 수치가 유의하냐 안하냐정도만 따지면 되지만, 이것이 서비스로 활용가능하기 위해서는 분석결과를 잘 보여주는 것도 중요합니다. 그러니 웹 인터페이스를 통해서 또는 (그래피컬) 비쥬얼라이제이션에 대한 것도 미리 공부해두면 좋을 듯합니다. (많은 것들을 제가 실제로 하고 있지도 않으면서 이렇게 훈수를 두는 것이 조금 부끄럽네요.)
'빅데이터 시대에 살아남는 법'이란 글에서도 적었지만 빅데이터는 데이터의 사이즈와 다양성이 증가한 것이지 기본적으로 스몰 데이터와 차이가 없습니다. 처음부터 빅데이터 전문가가 되겠다고 시도/준비할 것이 아니라, 우선 데이터 분석의 전문성부터 갖추고 향후에 분석하는 데이터의 특성이 빅데이터에 맞다면 그때 빅데이터 기술들을 적용하는 것이 현실적입니다. 그리고 데이터 분석의 기본은 우수한 알고리즘이나 구현기술이 아니라, 주어진 데이터 내에 합의된 의미를 찾아내는 것이 입니다. 그러니 주어진 문제/서비스/데이터에서 어떤 인사이트를 어떻게 얻어낼 수 있는가?에 대한 고민이 먼저입니다.
Occupy your 2013.
- 단순히 수치 데이터를 분석해서 결과를 서비스에 적용하는 것이 아니라, 전체 서비스와 데이터를 조망해서 관련 의미를 뽑아내고 가치를 부가하는 그리고 (어떤 측면에서) 데이터에 대한 철학적인 고민까지 아우르기 위해서 제가 스스로 저를 Data Philosopher라고 칭하기로 함. [본문으로]