어느 기업에서 컴공/전자과 출신 8명으로 구성된 개발팀에 있습니다. 모두 데이터 지식이 전무합니다.
1. 모두 비전공자라서 수식이 아닌 개념과 실습 위주로 스터디를 하려 합니다. 좋은 방법일까요 아니면 다른 방법을 추천해주세요.
2. 리더없이 스터디가 잘 진행될까요? 온라인 강의를 함께 듣고 토의하면서 공부할 수 있을까요?
3. 속성으로 공부해서 최소 POC 구현정도라도 소기의 성과를 낼 수 있을까요?
4. 판교에서 Q&A를 진행해주실 수 있나요? (평일)
진로를 고민하는 비슷한 질문을 여럿 받았지만, 이번이 가장 상황이 좋아 봅입니다. 흔히 말하는 데이터 분석 또는 머신러닝을 배우고 적용하는에 필요한 3가지 중에 최소 2가지를 이미 갖췄습니다. 이미 회사에 속했기 때문에 도메인/비즈니스 지식과 데이터가 있고 (물론 다시 데이터 문제 정의가 필요함), 모두 공대 출신의 개발자여서 프로그래밍 능력을 가졌습니다. 하지만 수학과 통계 지식이 부족한 상황입니다. (공대 나왔으면 수학과 확률통계는 다 들었을텐데...) 단순히 수학/통계를 공부한다고 해서 갑자기 데이터 분석가가 되지는 않겠지만, 상황이 나쁘지는 않다는 의미입니다. 하지만, 다른 팀원들이 데이터 분석 지식을 익히는데 어느 정도의 열의가 있을지도 관건입니다.
가장 현실적인 조언은 ‘우선 사내에서 수학/통계, 데이터 분석, 또는 머신러닝을 전공한/전담하는 분/팀을 찾아서 도움을 요청하라’입니다. 개인 (학생)이나 작은 스타트업에 속했다면 주변에 이런 도움/조언을 요청할 데가 전무해서 막막하겠지만, 같은 회사 내에 최소 수십명의 전문가가 있을 겁니다. (사업장이 많아서 어느 지역/건물에 있느냐에 따라서 다르겠지만…) 작년에 같은 회사에 다니는 분이 ‘데이터 분석을 떠받치는 수학’라는 책도 낸 걸 봤습니다. 사내 어쩌면 바로 옆 팀에 도움을 줄 전문가들이 있을 거라는 얘깁니다. 저보다 더 나은 분들이 계실 거고 그들에게 먼저 찾아가서 조언을 구하는 편이 빠를 듯합니다. 가능하면 그런 분을 팀에 합류시키거나 신규 채용하는 것도 방법입니다.
기초부터 시작해서 차근차근 지식을 쌓을 여건이 안 되는 것 같습니다. 체게적인 기초 지식없이 응용문제에 어떤 알고리즘을 그냥 적용해서 결과가 좋으면 받아들이고 나쁘면 그냥 버리는 것을 별로 좋게 생각하지 않습니다. 처음부터 문제/데이터에 적합하지 않은 알고리즘이었는지 아니면 파라메터 등의 세팅이 틀렸는지 또는 어떤 부분을 고치거나 개선해야 하는지 등에 대한 진단이 불가하기 때문입니다. 그래서 가능하면 밑바닥부터 체계적으로 공부했으면 좋겠다는 의견이지만, 여건이 허락지 않아 보입니다. 질문했던 것처럼 실습위주로 진행하면서 그 속에 포함된 개념이나 수식을 찾아보면서 이해하는 것도 영 나쁜 방법은 아닙니다. 하지만 더 기초적인 지식이 필요하다는 걸 어느 순간 깨닫게 되면, 결론적으로 기초를 제대로 다졌던 것보다 나쁜 결과가 나올 수도 있음을 미리 경고합니다. 8명의 팀원 모두가 전문 데이터 분석가로 전향할 것도 아니기 때문에 모두가 같은 방식으로 기초부터 다져라라고 조언하지는 않겠습니다. 의지가 있는 한두명이라도 장기적 관점에서 지식과 경험을 쌓으면 좋겠다 정도의 의견입니다.
MOOC나 유튜브에 다양한 강의 자료가 있어서 공부하는데 큰 어려움은 없습니다. 하지만 개인적으로는 당장 필요한 몇 가지는 인터넷으로 바로 확인/습득할 수 있지만, 기초 지식을 쌓고 개념을 체계화하는데는 어려움이 있었고, 길게/꾸준히 학습하는데 매번 어려움을 겪었습니다. (예습) - 수업 - (복습) - 과제 - 시험 등의 전통의 과정을 거쳤을 때만큼의 성과는 없었습니다. (학생 때는 회상하면 예습과 복습은 거의 안 했으니 ()에 넣음.ㅠㅠ) 경험과 지식이 전무한 분들에게는 인터넷 학습이 큰 효과가 없을 수 있다는 개인적 의견이면서 경험입니다. 단편적인 사실 확인을 위해서는 괜찮음. 현실적으로 학교에 돌아가서 관련 강의를 모두 들을 수 없는 상황이라면, 패스트캠퍼스 같은 업체의 도움을 받는 것도 현실적이라고 봅니다. 일전에 문과 출신의 기획자에게는 이런 과정을 추천하지는 않았었지만, 이미 개발자로 커리어를 쌓고 있고 또 어쩌면 회사 지원이 가능한 상황이니 단기 (3~6개월) 오프라인 과정을 수료하는 것도 전혀 나쁜 방법은 아니라고 봅니다.
저도 이런 저런 스터디나 세미나를 참석하거나 주관해봤지만… 회사에서 스터디 모입을 지속하려면 1) 한명이 모두 책임지고 강의를 진행한다 또는 2) 한명이 강력한 리더십을 갖고 멤버들에게 학습량을 할당해서 공부해오게 만들어서 발표를 시킨다가 아니면 대부분 실패합니다. 앞서 말했듯이 단편 지식의 습득이라면 함께 동영상 보며 토의하면 되겠지만, (방대한?) 지식의 체계화와 내재화를 위해서는 한명이 어떤 형태로든 리딩을 해야 합니다. 그런데 이게 어렵기 때문에 체계적으로 이미 돌아가고 있는 학원에 (개별적으로) 등록하거나, 그런 곳과 계약해서 사내에 학습 과정을 만드는 게 현실적 대안입니다. (최소 시작 전에 누군가가 기초 개념과 전체 그림을 윤곽이라도 보여줄 필요가 있음)
데이터 분석이나 머신러닝이 뭔가 고귀한 무엇처럼 여겨질 수도 있지만, 막상해보면 현재 개발하고 테스트하는 것과 큰 차이가 없습니다. 속성으로 배우더라도 의미있는 걸 못 만들 이유가 전혀 없습니다. 사람들에게 가끔 말하지만, 알고리즘을 가진 사람을 모든 문제에 그 알고리즘을 적용해서 성과를 얻으려 하고, 역으로 문제를 가진 사람은 모든 알고리즘으로 그 문제를 해결하려 한다 입니다. 문제와 데이터가 명확하다면 어떤 알고리즘을 적용할지는 중요하지 않을 수도 있습니다. 그 문제를 해결할 유일한 알고리즘만 존재하는 것도 아닙니다. 물론 알고리즘마다 특성이 있고 장단점 그리고 현재 문제/데이터와의 궁합이나 회사 내에서의 현실적 제약은 있을 수 있습니다. 현재 해결해야하는 문제가 무엇인지 그리고 우리에게 어떤 데이터가 있는지가 명확하다면 그에 맞는 알고리즘을 찾고 적용하는 건 어렵지 않습니다. (물론 경험의 차이에 따라서 문제를 정의하고, 데이터를 정의하고, 적당한 알고리즘을 찾아 적용하는 데…)
“어떤 기법을 채택하느냐”는 문제가 명확히 정의되고 적합한 데이터가 있으면 구글링만으로도 수십가지는 바로 찾을 수 있습니다. 데이터 분석에서 ‘문제 정의’ ‘데이터 정의’ ‘데이터 수집/전처리’이 90% 이상입니다. 데이터 분석은 본인 손에 피를 묻히는 작업입니다. 그냥 하늘이 점지해준 알고리즘을 문제/데이터에 적용하면 답이 뚝 떨어지는 것이 아니라, 그런 (의미있는) 결과는 때론 무식하게 데이터를 (눈으로) 확인하고 데이터를 가공하고 다시 처음으로 돌아가고 그런 지난한 과정을 거쳐서 얻어집니다. (문제가 정의되고 관련 데이터가 있으면 그때 제게 어떤 알고리즘을 사용하면 될지 물어보면 바로 답해드릴 수도 있습니다.)
주변(사내)에서 데이터 분석을 전담하거나 경험이 있는 분을 먼저 찾아보세요. (어느 지역/건물에서 일하는지 모르겠지만, 제가 지인을 통해서 찾아드릴 수도…) 진짜 주변에 아무도 없다면 그때 제게 다시 연락주세요. (회사 내규를 어기지 않는 선에선 도와드릴 수 있습니다.)
개인 의견입니다. 하나의 답이 될 수 있지만 유일한 정답은 아닙니다.