Share           Pin It

경제학을 전공하는 1년차 대학생께서 데이터마이너가 되고 싶다는 문의를 해주셨습니다. 저와 백그라운드가 다른 쪽 (문과 계열)은 조금 조심스럽습니다. 제 경험이 아닌 상상에 맞춰서 — 그리고 어떤 면에서는 선입견에 따라서 — 불필요한 조언이 될 수도 있기 때문입니다. 지난 번에 문과 고등학생도 질문을 주셨지만, 그 분은 아직 대학/과를 정하지 않은 상태였고, 지금은 경제학과로 진학한 경우라서 조금 느낌이 다를 수 있습니다. 그리고 학교마다 개설되는 수업 이름이 다르기 때문에 정확한 수업명은 다시 확인하시기 바랍니다.

안녕하세요? 경제학과에 재학중인 학생입니다.
아직 1학년 밖에 마치지 않았지만
데이터마이너가 되고싶다는 생각이 들어 이렇게 여쭈어 보게 되었습니다.
구체적으로 어떤 과목을 공부해야하는지 알고 싶습니다.
단순히 경제학만으로는 묻지마취업밖에 길이 없다는 사실을 깨닫고 좀더 전문성이 있는 길을 가고싶어서 질문드립니다.
구체적으로 어떤 과목을 공부해야하는지 테크트리좀 알려주세요.

굳이 데이터마이너가 되지 않더라도 경제학 분야에서도 수리경제나 개량경제 등에서 수학분석 및 컴퓨터 시뮬레이션 등이 필요한 분야가 많이 있습니다. 이 말은 데이터마이닝은 데이터마이너만의 영역이 아니라는 뜻을 내포하고 있으며, 특히 최근에는 데이터 기반의 전략수립, 의사결정, 실행 등의 트렌드가 있기 때문에 누구나 기초적인 데이터마이닝 수업 등은 들어두면 좋습니다.

데이터마이닝을 하면 기본적으로 수학과 컴퓨터를 빼놓을 수 없습니다. 그래서 아래의 수업들은 대부분 수학이나 컴퓨터 관련 과목들입니다. 그리고 저도 기본적인 수학만 이수했기 때문에 수학과에서 배우는 전체 과목을 잘 모릅니다. 그리고, 컴사/컴공도 아니라서 컴퓨터 쪽도 고등 advanced 과목은 잘 모릅니다. 감안하시고 읽어주시기 바랍니다.

수학쪽 과목은 기본적으로 공대에 진학하면 1학년 때 ‘Calculus’ (타학교에서는 ‘공학수학' 정도로 개설될 듯함) 라는 과목을 듣습니다. 수학의 전반을 다루는데 고등학교 수준 또는 그 이상의 다룹니다. 수학의 기본을 배우는 과목이니 이수를 할 필요가 있습니다. 두번째로는 당연히 '확률과 통계 Probability and Statistics’는 데이터마이닝의 기본입니다. 실제 애플리케이션에서는 이 문제는 확률, 통계문제다라고 정의하지 않더라도 기본 개념들이 늘 사용되기 때문에 익숙해질 필요가 있습니다. 세번째로 응선대라고 불리는 ‘응용선형대수 Linear Algebra’가 필요합니다. 고등학교 때 배우는 행열 matrix의 심화과정입니다. 데이터의 표현방식에 따라서 조금씩 달라지겠지만, 기본적으로 모든 데이터는 matrix 형태로 표현이 가능하기 때문에 행열에 대한 기본 연산에는 익숙해질 필요가 있습니다. 그리고 고급 머신러닝이나 알고리즘을 배우게 되면 행열이나 벡터가 기본 데이터 구조로 사용되기 때문에 필수적입니다.

다음으로 컴퓨터 사이언스 또는 컴퓨터 공학 (컴사/컴공)과의 과목들입니다. 당연히 프로그래밍 언어 하나 정도는 배워둬야 합니다. 제가 학교 다닐 때는 C언어가 기본이었지만, 최근에는 Java를 CSE101로 수강하는 곳도 많을 것입니다. 프로그래밍 랭귀지마다 문법이 조금씩 다르지만, 기본 개념은 비슷비슷하기 때문에 한가지 언어를 잘 배워두면 다른 언어를 쉽게 배울 수 있습니다. 단지 웹기반의 프로그래밍만 필요하다면 최근에는 그냥 Python, PHP, Scala, Ruby 같은 언어는 좀 더 배우기 쉬울 것입니다. 그래도 제대로 배우겠지만 시작은 역시 C 언어입니다. 다음으로는 데이터 구조 Data structure나 알고리즘 Algorithm 수업을 들어두면 프로그래밍을 하는데 도움이 됩니다. 그리고 세번째는 데이터베이스 과목인데, 그런데 컴사/컴공의 데이터베이스는 너무 low level까지 다루기 때문에 (프로젝트로 데이터베이스의 기능을 실제 구현해본다와 같은 것이 나올 수 있음) 문과생들에게는 다소 어려울 수 있습니다. 그렇기 때문에 산업공학과나 다른 과에서 다루는 좀더 애플리케이션에 치중한 데이터베이스 수업을 들으면 됩니다. 기본적으로 컴퓨터를 전공한다면 이산수학 Discrete mathematics 수업도 듣습니다. 오래 되어서 정확히 기억나지 않지만, 집합에서 다루는 개념들을 컴퓨터의 원리에 맞게 맞춘 과목입니다.

당연히 컴공과에서 머신러닝 Machine Learning이나 인공지능 Artificial Intelligence 과목도 들어야겠지만, 대부분은 대학원 과목입니다. 머신러닝/AI 과목은 전기전자과에서도 개설되는 경우가 많습니다. 정확히 같지는 않겠지만 산업공학, 생명공학, 화학공학 등의 과에서도 그 과에 맞는 다양한 수학 또는 데이터마이닝 수업들이 존재합니다. (교수님/연구실의 존재에 따라서 달라지겠지만..) 단, 학과마다 그 학과에 맞는 수업을 진행하기 때문에 무턱대고 수강신청을 하면 나중에 피곤할 수도 있으니 잘 알아보고 신청하셔야 합니다.

그외의 과들에서는… 기본적으로 각 과의 개론 (101) 수업들은 들어두면 좋습니다. 산업공학과에서는 최적화 OR, 산업응용통계, 실험계획법 등의 수업이 존재합니다. 전에도 말씀드렸는데, 데이터마이닝 알고리즘들이 자연의 현상에서 영감을 받아서 구현된 것들이 많으니 물리학이나 화학의 기초도 필요할 수도 있고 (근데 굳이 수업까지는…), 자신이 원하는 응용분야에 맞게 생명이나 화공 등의 수업을 들어두면 좋습니다. 질문자는 이미 경제학을 선택했기 때문에, 굳이 이런 쪽 분야의 수업은 필요치 않을 듯합니다.

C나 Java 등의 프로그래밍 언어를 배우기가 힘들다면, 다양한 수학, 통계 관련 분석툴들에 익숙해질 필요가 있습니다. 가장 간단하게는 MS오피스에 포함된 Excel입니다. 개발자가 아닌 경우라면 회사에서 가장 많이 사용하는 프로그램 중에 하나가 엑셀이기 때문에 미리 고급 기능을 익혀두면 나중에 편하게 사용할 수 있습니다. 조금 더 전문적으로 데이터 분석을 하겠다면 SAS, R, Matlab, Mathematica, Minitab 등의 수많은 분석툴들이 있습니다. (R은 프리소프트웨어이고 학계에서도 많이 사용하기 때문에 R을 배워두면 좋습니다. 최근 빅데이터 붐과 함께 R의 사용빈도도 늘어났기 때문에 미리 공부하고 익혀두면 좋습니다.) 그외에도 특정 도메인/데이터에 맞는 또는 기능에 맞는 다양한 분석툴들이 존재하기 때문에 어떤 것들이 필요한지 미리 확인해보시기 바랍니다.

처음이라면 각 관련 과의 개론 수업, 공학수학, 프로그래밍 언어부터 시작하시고, 다음으로는 확률통계, 응선대, 이산수학, 데이터구조, 다음으로는 응용산업통계나 데이터베이스 등의 수업으로 차곡차곡 들으면 될 듯합니다. 어차피 학년 (난이도)에 맞는 1XX, 2XX 이렇게 수업이 설계되었기 때문에 아래쪽부터 차곡차곡 수업을 들으면 큰 어려움은 없을 것입니다. 이런 공학수업뿐만 아니라, 영어 (특히 독해)는 꾸준히 연습해두는 것이 좋습니다. 분석이나 개발 관련 기술문서들은 대부분 영어로 되어있기 때문에 (보통 번역서는 6개월, 1년 정도 늦게 나옴) 최근 트렌드나 기술을 익힐려면 영어는 필수입니다. (토플/토익점수는 필요치 않아요.) 무엇보다 인터넷과 게임 외의 컴퓨터와 친해지는 것이 가장 우선입니다.

충분히 답변이 되었는지 모르겠으나, 처음에는 막막해 보일 수 있지만 한 발을 일단 내딛고 나면 길이 보일 수도 있습니다.

==

페이스북 페이지: https://www.facebook.com/unexperienced

댓글을 달아 주세요