본문 바로가기

DM ML AD

데이터마이닝을 전공하고 싶은데...

적고 싶은 글이 있었지만 일주일 넘게 글을 적지 못하고 있었는데, 페이스북에 누군가 데이터마이닝 전공에 대한 질문을 해봤길래 그 답변을 먼저 적습니다. 일전에도 '데이터마이너가 되고 싶어요'라는 글에서도 비슷한 답변을 해줬고, '데이터마이닝과 데이터마이너'라는 글에서도 좀 적었던 내용입니다. 그 외에도 몇 번 언급은 했던 것같은데 다시 질문에 맞게 글을 적습니다. 당장 어떤 내용이 적힐지 모르겠지만, 일부 내용은 일부에게 상처를 줄 수도 있습니다. 솔직한 답변을 위해서 냉혹한 현실을 그대로 말하려는 것이니 너른 이해를 바랍니다. (아래에 글을 편하게 적다보니 딱딱한 문체가 되었는데 바꾸기가 귀찮으니 그대로 놔두겠습니다. 이해바랍니다.)

-- (질문)
(전략) 22살 지방에서 학교를 다니다 휴학하고 공익근무중인 학생입니다. 학교 처음 다닐때는 인생의 목적도 없고 하고자 하는 일도 없고 그래서 학업에 흥미를 못 느꼈습니다. 공익근무하면서 시간이 늘어나니 못읽었던 책도 읽고 인터넷도 자주 보고 그러니 빅데이터 관련해서 흥미를 느끼게 되었습니다. 그래서 2학년 마치고 제가 하고 싶은 일을 찾아서 편입을 하려고 합니다. 목표를 산업공학으로 생각하고 있는데, 빅데이터, 데이터 마이닝 같은 일을 하려면 산업공학을 진로로 하는게 맞는지 확신이 없어서 메시지를 보냅니다. 통계학쪽으로 진로를 정해야 하는지 아니면 대학을 졸업하고 대학원을 어떤 특정분야로 가야 하는지 잘 모르겠습니다. 혹시 시간이 되신다면 조언을 부탁드려도 될려는지요.
--

데이터마이닝이라는 개념이 비전공자들에게는 여전히 생소하고, 얼핏 들어봤던 사람들도 그저 데이터분석정도로만 이해할 것이다. 늘 그렇듯이 깊이 파고들면 더 심오한 것들을 내포한다. 일전에도 짧게 언급했던 것같은데, 내가 고등학생으로 돌아가서 데이터마이너가 되겠다고 진로를 정한다면 이러이러한 분야/학과를 전공하겠다고 말했었다. 데이터마이닝의 완전체 -- 존재하진 않지만 -- 가 되기 위해서는 자연의 법칙을 이해할 수 있어야 하고, 그것을 해석해서 다른 식으로 표현할 수 있어야 하고, 그 해석을 구현해서 실생활에 적용할 수 있어야 한다. 이 문장은 매우 중요하다.

데이터마이닝 또는 머신러닝에서 사용되는 많은 알고리즘이 자연의 법칙 또는 인간의 행동/심리에서 유래되었다. 그래서 자연 및 사회의 법칙을 제대로 파악하고 이해할 수 있다면 데이터마이닝의 많은 기법들을 쉽게 터득할 수 있다. 그런 의미에서 첫번째로 물리학에 대한 지식이 있으면 기존의 알고리즘을 배우거나 아니면 새로운 알고리즘을 개발하는데 많은 도움이 된다. 알게 모르게 데이터마이닝의 많은 알고리즘들 그리고 최근의 비쥬얼라제이션 방법들이 물리학에 나오는 법칙에 기반을 두고 있다. 그리고 인간의 심리나 행동 패턴을 구조화한 것도 있기 때문에 심리학이나 인간학 (?)을 공부하는 것도 좋겠지만, 이과/공대생에게 그런 인문학적 소양까지 요구하지는 않겠다. (물론 자유로운 사고를 위해서 인문학적 경험과 견해는 매우 중요하다. 데이터마이닝에서도…)

두번째로 그런 자연이나 인간/사회의 법칙을 해석해서 수치화 또는 수식화를 할 수 있어야 한다. 그래서 수학을 전공하는 것은 필수다. 복잡한 수학까지는 아니더라도 선행대수 Linear Algebra나 확률통계 Probability & Staticstics에 대한 이해는 필요하다. 그 외에도 다양한 수학적 백그라운드가 있으면 도움이 많이 된다. 이산수학은 필요할 것같고, 해석학이나 그런 것도 필요할까? 어쨌든 대학에서 가르치는 수학과 필수과목들은 데이터마이너가 되기 위해서 여러 모로 도움이 된다. (그런데 나는 수학적 백그라운드가 약해서 늘 말성이다.)

세번째로 그렇게 수식화된 알고리즘을 실생활에 사용할 수 있도록 구현이 되어야 한다. 즉, 적어도 하나 이상의 프로그래밍 언어에 익숙해져야 한다는 의미다. 그래서 전산학이나 컴공을 전공하는 것이 많은 도움이 된다. 단지 코딩만 잘하기 위해서 전산/컴공과를 선택하라는 얘기는 아니다. 컴공과에서 가르치는 데이터 구조나 알고리즘과 같은 과목이나 그래픽스나 데이터베이스 등과도 친숙해질 수 있기 때문에 컴공이 필요하다. 그리고 많은 데이터마이닝 대학원/연구실들이 컴공과 소속이기 때문에 진학에 더 자연스럽다.

마지막으로 데이터는 연구실에서 나오는 것이 아니라, 산업 또는 현장에서 나온다. 즉, 도메인 지식 또는 비즈니스 로직에 대한 이해가 필요하다. 그런 의미에서 전자 (시그널 프로세싱), 화공 (프로세스/공정 관리), 생명 (바이오인포메틱스), 금융 (퀀트/마이크로트레이딩) 등의 기본적인 도메인 지식을 배울 수 있는 학과를 전공할 필요가 있다. 그리고 산업공학은 위의 것들을 골고루 배울 수도 있지만 역으로 깊이가 많이 부족하다. 그러나 이미 만들어진 컴퓨터를 활용하는 꼼수를 배우거나 다방면에 경험을 쌓기에 좋다. (알고리즘 개발보다는 적용에 더 관심이 있다면 산공과 소속의 데이터마이닝 연구실로 진학하는 것이 낫다. 그리고 특수 분야에 관심이 있다면 생명이나 화공 등에서 수치해석을 다루는 연구실을 알아보는 것이 좋다.)

그래서 과거로 돌아가서 데이터마이너로 커리어패스를 정하기로 결심을 한다면 컴공과에 입학해서 프로그래밍 스킬을 배우고, 수학이나 물리학를 복수/부전공 또는 다양하게 수강해서 이해 및 해석, 표현 능력을 키운 후에 전자 또는 생명과 (데이터마이닝) 대학원에 진학해서 도메인 지식을 습득하겠다고 생각했던 적이 있다. 그러나 현실은 산업공학과, 산업공학과, 산업공학과였다.

전자나 생명 등과 같이 조금 특수한 경우가 아니면, 도메인 지식의 습득은 취직 후에 현장에서 얻으면 된다. 그러니 대학교에서는 (기초) 수학/통계, (일반) 알고리즘, 프로그래밍을 마스터하는 것에 초점을 두면 좋을 듯하다. 그리고 데이터마이닝 관련 연구실이 있는 학과의 대학원에 진학해서 데이터마이닝을 전공하면 된다. 대표적으로 컴공과, 전자과, 산공과에 관련 연구실이 있고, 생명과나 화공과에서는 그 학과에 맞는 조금 더 특수한 데이터마이닝을 하기 때문에 우리가 잘 알고 있는 머신러닝이나 AI와는 조금 차이가 날 수 있다.

다시 원 질문으로 돌아가서…미안한 얘기지만 (오해없이 듣기 바랍니다), 지방의 웬만한 대학교의 산업공학과에서 학부생들에게 데이터마이닝을 제대로 가르쳐줄 곳이 없다고 생각한다. 아니 국내외 최상위급 대학교의 산업공학과 학부에서는 일반적인 의미의 데이터마이닝을 제대로 가르쳐주는 커리큘럼을 갖춘 데는 없다. 최적화/OR, 산업통계, 실헙계획 등의 과목들은 있지만 그것들로는 데이터마이너가 되겠다는 작은 포부도 이룰 수가 없다. 그래서 가능하면 학부는 컴공과로 진학해서 기초 지식을 습득하는데 초점을 두는 게 좋다. 그리고 데이터마이닝에 도움이 될 것같은 수학과 과목을 수강해야 한다. 단, 통계에 너무 치우치지는 말았으면 좋겠다. 그런 후에 앞서 말했듯이 전자, 컴공, 산공과에 있는 데이터마이닝(관련) 연구실로 진학하는 것이 정석이다. 그렇게 기초적인 것들을 제대로 습득했다면, 이후의 다양한 알고리즘이나 방법론은 필요에 따라서 배우면 된다. 그리고 매년 새로운 더 좋은 알고리즘들이 -- 기초적인 것은 같겠지만 -- 쏟아져나오니 특정 알고리즘에 너무 치중하지 않는 것이 좋다.

이상은 데이터마이닝을 위한 기초 지식에 대한 것이고…실제 산업/현장에서 (빅데이터를 포함해서) 데이터마이닝에서 가장 중요한 것은 그 도메인 및 데이터에 대한 인사이트다. 선무당이 사람잡는다는 말과 같이 어렴풋이 배운 하나의 알고리즘이나 툴을 그저 모든 문제/데이터에 적용하는 오류는 범하지 말아야 한다.

또 중요한 코멘트 하나는 데이터마이닝 기초 지식 및 기술을 습득하는 것도 중요하지만, 그것보다는 앞으로 어떤 분야로 진출할 것인가?를 염두에 둬야 한다. 바이오 쪽이면 학부, 대학원 때부터 그쪽을 전공해야 하고, 인터넷 쪽이라면 업계의 동향/분위기에 늘 안테나를 세우고 있어야 하고, 금융이면 금융을 전문으로 하는 연구실로 진학하는 것이 여러 모로 편하다.

… 일단 오늘은 여기까지 적겠습니다. 동문서답이 된 듯한데… 요약하자면 학부 컴공 + 데이터마이닝 연구실이 맞습니다. 산공과도 전혀 아닌 것은 아니지만 (지방의) 학부에서는 아무 것도 할 수 없습니다. 염두에 두고 있는 산업/분야가 있으면 관련 학과의 데이터마이닝 대학원에 진학하라고 조언합니다. 단지 우려되는 것은 외국과는 달리 아직 국내에서는 대학원 진학시에 학과 (그리고 학교) 간 이동이 제한적이다는 것입니다. 그러니 대학원 전공까지 고려해서 학교 및 학과를 결정하시는 것이 좋습니다. 그러나 이상은 순전히 개인적인 생각/느낌을 말한 것일 뿐입니다. 결국 자신의 상황과 성향에 맞는 커리어패스를 만드십시오. 더 궁금하시면 (아무나) 메시지 주세요.

혹시 제주에 사시는 분이라면 (또는 방문 계획이 있다면) 오프라인에서 더 진솔한 얘기를 전해드릴 수도 있습니다.

-- (내용추가)

제가 굳이 학부를 컴공으로 추천하는 이유는... 제가 산업공학을 전공했다보니 수학적 베이스가 약해서 기존의 알고리즘을 이해하는데 어려움이 있고, 또 새로운 아이디어/알고리즘을 생각했더라도 이를 수학적으로 표현하거나 이론적으로 증명하는데 어려움이 있었습니다. 그리고 프로그래밍에도 특출나지 않았기 때문에 떠오른 아이디어를 제대로 구현해서 실험해보는 것이 어려웠습니다. 그런데, 학자로 성장할 것이 아니라면 굳이 새로운 알고리즘을 만들어서 수학적으로 증명할 필요가 없습니다. 세계 각처에서 쏟아져나오는 알고리즘들을 이해할 수 있는 정도의 수학 지식만 가지면 됩니다. 그런데 이를 구현하고 실험할 수가 없다면 아무 것도 할 수가 없는 것과 같습니다. 물론 최근에는 웬만한 알고리즘들은 다양한 프로그램으로, 오픈소스로 배포되고 있습니다. 그러나 그런 오픈소스를 제대로 활용하는 것도 어떻게 보면 컴퓨터 마인드가 없으면 어렵습니다.

그리고 데이터마이너로써 경력을 쌓아가는 초기에는 이런 알고리즘이나 구현 능력이 중요하지만, 장기적으로 봤을 때 그런 스킬보다는 데이터를 보는 눈, 인사이트가 더 필요합니다. 그런 의미에서 비즈니스 로직이 중요하다는 말을 했고, 비즈니스 로직 이면에 존재하는 데이터의 본질을 찾고 해석하는 능력이 절실할 때가 올 것입니다. 그러나 이런 능력은 학교/전공으로 해결할 수가 없습니다. 다양한 경험 (데이터 분석 외적인 경험 포함)이 결국 뻔한 해법입니다. 그리고,... 대학원을 진학하지 않을 것이라면 산업공학과가 데이터마이닝을 하기에 좋은 선택은 맞습니다. 그러나 앞서 말했듯이 웬만한 대학교의 산업공학과 학부 커리큘럼으로는 데이터마이닝 소양을 충분히 얻지 못할 개연성이 높습니다. 그러니 결국 컴공이나 수학과 과목을 많이 듣고, 가능하면 대학원 과목도 수강/청강하는 수 밖에 없습니다.

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

반응형