할 줄은 몰라도 알아야 하는 사람들을 위한 팁
Data Science 라는 말이 다양한 직무/산업에서 사용되고 있기 때문에, 비개발자라고 하더라도 Data Science를 알아야 하는 상황이 생긴다.
시간/능력의 제약을 고려하지 않고 가장 큰 효과를 볼 수 있는 방법을 떠올리라면 무엇이 있을까?
아마 실제로 Data Science를 배우는 것일 것이다. 이론을 이해하고, 실제로 Code로 구현해 보는 것이다.
하지만 이런 방법을 실제로 택할 수 있는 여유를 가진 사람은 드물 것이다. 그리고 상황에 따라 그렇게 하고도 좋은 효과를 거두지 못할 수도 있다.
내가 경험한 방법들을 아래에 정리해 본다.
참고로, 아래 내용은 대상자가 개발을 배우거나, 개발 조직에서 일하거나 하지 않는 것을 전제로 하여 쓰여진 것이다.
구체적인 목적을 설정해야 한다. 방대한 범위를 다루는 일이기 때문에, 내가 공부하려는 구체적인 목적을 염두에 두지 않으면 많은 시간을 쓰고도 원하는 결과를 얻지 못할 수 있다.
내가 얻은 지식을 누구와 공유해야 하는가?: 학교 레포트로 교수님에게 공유해야 하는지. 아니면 회사에서 팀장님께 보고를 해야 하는지, 혹은 이 내용을 누군가에게 가르쳐 주어야 하는지, 아니면 내가 혼자 사용해야 하는지?
지식을 얻는 목적은 무엇인가? : 어떤 상황을 정확하게 이해하기 위해서인지? 의사결정을 하기 위해서인지? 아니면 어떤 업무에 활용하기 위해서인지?
위 질문에 답할 만한 내용이 없다면?
구체적인 상황을 상상해 보면, 어떤 것에 집중해야 할지에 대한 가이드라인을 얻을 수 있다.
아니면 정말 자유롭게 공부를 해 보는 것도 좋겠다.
큰 그림을 보는 것과 직접 해보는 것을 반복하는 것을 추천한다. 큰 그림을 보면서 전체적인 흐름을 이해할 수 있으며, 직접 해보면서 이해의 수준을 높일 수 있다.
큰 그림 1: 회사 차원, 혹은 경제 차원의 시각에서 보기
IT관련리서치 회사(가트너 등), 경제경영연구기관(LG경제경영연구소 등), 경영컨설팅 회사(맥킨지 등)의 글을 읽으면 회사 차원에서 어떤 관점으로 Data Science를 이해하고 활용해야 하는지에 대한 힌트를 얻을 수 있을 것이다. 그리고 이런 글은 대부분 각 회사/기관 차원에서 내린 Data Science 및 그 세부 영역에 대한 정의를 포함하고 있다. 그런 내용도 도움이 된다.
그 다음으로는 IT매체 (디지털타임스, CNET 등)의 글을 읽어 보면, 기술 전체적인 흐름에서 어떤 기술이 중요하고, 어떤 세부 기술들이 필요한지에 대한 감을 얻을 수 있다.
마지막으로 다양한 Data Science 관련 서비스 회사 (Snowflake, Databricks 등)의 제품 소개 혹은 블로그 글을 읽어 보면, 조금 더 세부적인 내용들을 이해할 수 있을 것이다.
큰 그림 2: 기술 발전의 흐름 차원에서 보기
모든 새로운 기술은 기존의 기술에 빗대에서 설명되고는 한다. 그리고 새로운 기술은 대부분 뭔가 이유가 있어서 나오게 된다. 이를 알기 위해서는 기술의 역사를 따라가면서 읽으면 도움이 된다.
Data Science 의 역사를 이해하기 위해서는 다음의 키워드를 사용해서 검색해 보면 도움이 될 것이다: AlexNet, Google File System
혹은 업력이 오래된 회사의 과거 제품 혹은 사업 방향을 2~3년 간격 정도의 범위로 찾아서 읽어 보는 것도 도움이 될 것이다.
직접 해 보기 1: 프로젝트의 흐름을 따라가 보기
굉장히 많은 Data Science경진대회가 열리고 있고, 우승자의 결과도 많이 공유되어 있다.
Kaggel, DACON 등의 경진대회의 우승자의 발표자료를 찾아 보고(영상이 있다면 더 좋을 것이다.) 발표의 순서를 눈여겨 보면 도움이 된다. 어떤 식으로 문제를 구체화하고 목표를 정의했고, 데이터를 어떤 식으로 처리했는지, 어떤 방법을 사용하고 왜 사용했는지를 보다 보면 구체적인 흐름을 파악할 수 있을 것이다. 다만 발표에 나오는 코드나 기술 용어가 너무 어렵다면, 조금 더 쉬운 자료를 찾아 보거나 나중에 배울 것으로 남겨 두고 우선 끝까지 보는 것을 추천한다.
직접 해 보기 2: 코드를 짜 보기
코드를 직접 짜 보면 훨씬 이해가 잘 될 수 있고, 무엇보다도 Data Scientist들과의 대화가 조금 더 쉬워질 수 있다. 예전이라면 추천하지 않았을 방식이다. 다만 이제는 당신이 직접 코드를 짜볼 수 있는 시대가 되었다. 그 이유는 세 가지이다.
첫 번째는 최소한의 준비만으로도 바로 코딩을 시작하는 환경을 준비할 수 있는 시대가 되었다는 것이다.
두 번째는 많은 Data Science 코드가 라이브러리를 사용해서 구현할 수 있는 수준으로 추상화되었다는 것이다.
세 번째는 인터넷에 굉장히 많은 tutorial들이 있다는 것이다.
'파이썬으로 뉴럴 네트워크 짜 보기', '머신러닝 코드 짜 보기' 등의 키워드를 사용해서 검색한 후, 찾은 내용을 잘 따라해 보면 된다.
코딩을 하는 환경 구축이 어렵다면 google colab을 검색해서 사용해 보면 된다. 웹브라우저와 구글ID 만 있다면 바로 사용이 가능하다.
중간 중간에 초기의 목적에 맞는 학습을 하고 있는지 다시 돌아봐야 한다.
그리고 계속 새로운 목표를 세우면 된다.
그리고 각자의 목적에 맞는 방식으로 활용해 나가면 된다.
이렇게 제 생각을 정리해 보았습니다.
의견이 있다면 언제든 알려주세요.
학습에 대해서 제가 좋아하는 사례를 아래에 붙이며 마치겠습니니다.
아래는 물리학자인 리처드 파인만이 천체물리학자인 자신의 여동생과 있었던 일에 대해 회고한 것입니다.
학회 기간 동안 나는 시라쿠사에 있는 제 여동생과 함께 머물렀다. 나는 집으로 (한 개의) 논문을 가지고 와서 그녀에게 말했다.
파인만:
"Lee와 Yang이 뭐라고 말하는지 이해할 수가 없어. 모든 것이 너무 복잡해"
여동생(조안):
"아니야, 네 말은 네가 그것을 이해할 수 없다는 것이 아니라, 그걸 직접 만들지 않았다는 의미야. 단서를 듣고 자기 방식대로 알아내지 못했기 때문이야. 네가 해야 할 일은, 네가 다시 학생이라고 상상하고, 이 논문을 위층으로 가져가서 한 줄씩 읽고 수식을 확인하는 거야. 그러면 아주 쉽게 이해할 수 있을 거야."
나는 그녀의 충고를 받아들여 모든 것을 확인했고, 그것이 매우 명백하고 간단하다는 것을 발견했다.
단지 너무 어렵다고 생각해서 읽기를 두려워하고 있었던 것이다.
http://wavefunction.fieldofscience.com/2017/04/richard-feynmans-sister-joans-advice-to.html