아직도 배워야하고 익혀야할게 많은 쥬니어가 3년여간 데이터 엔지니어링과 데이터과학이라는 것을 맛보면서 느낀점을 공유해보려 합니다.
그야 말로 요즘 IT업계는 빅데이터와 인공지능의 호황기? 홍수? 인거 같습니다.
제가 입분? 입사(3년전) 할때만해도 이정도는 아니였는데 그 사이에 이정도로 커진거 보면 흐름이 빠르긴 한것을 새삼 느낍니다.
학생때 빅데이터라고 하는 것은 무엇일가?라는 의문이 있었습니다.
bigdata 하니까 얼마나 커야 빅데이터라고하는가? 무엇을 빅데이터라고 부르는가? 이걸 공부하려면 무엇을해야하지?
위 세가지 의문이 주요 골자가 되겠습니다.
빅데이터는 얼마나 커야하는가? 무엇을 빅데이터라고 하는가?
사실 빅데이터라고 해서 크기를 기준으로 하는것은 아닙니다. 하지만 큽니다. (이 중반부를 읽고 나시면 조금 감이 오실거에요)
기존에 데이터라고 하면 정형화된(구조가 정해져 있는) 데이터만을 다루었습니다. 예를 들면 여러분이 카카오톡에 가입하면 아이디 비번등?
이런것을 카카오톡 서버는 저장하죠. 또 이렇게 글을 쓰면 텍스트를 다음 서버에 저장합니다. 여기까지가 기존에 하던 데이터를 이용한 일들이었습니다.
하지만 온라인이 오프라인을 대체할만큼 세력?이 커지고, 사용되는 단말기(컴퓨터, 패드, 스마트폰, 요즘에는 자동차도..)도 다양해지면서
그 속에서 사람들의 행태, 기분, 성향등을 파악하는게 필요해집니다. 오히려 오프라인에서 발견할 수 없는 것들도 온라인에서는 가능하니까요.
그래서 사람들의 클릭 하나하나, 타이핑 한 텍스트 단어 단어 들을 기록하고 쳐다보게 됩니다.
이것들을 보기 위해선 사이트, 어플리케이션을 이용하는 사람들의 행위를 모아야 하는데요. 이게 소규모 사이트에선 그냥 가능하지만
네이버, 아프리카TV 이런 알만한 큰 서비스들은 사용자가 수만명, 수십만명이죠. 그렇게 되면 발생되는게 벌써 유저 한명당 클릭 한번만 해도 숫자가 우수수수 생깁니다. 게다가 글을 쓰고 플레이어를 재생하고 이런것들까지 하면 시간당 테라급의 데이터가 발생될 수도 있죠.
시간당 1테라의 데이터가 발생 된다고 했을때, 1일 24테라, 1달 24*30 = 720테라. 일년이면? (이후는 맡기겠습니다)
이전에는 이정도의 데이터를 다룰만한 컴퓨터도 없었고, 소프트웨어도 없었습니다.(슈퍼컴퓨터라고 하는것은 제가 잘 모르겠네요^^;)
그렇지만 이제 기타 등등(컴퓨터 프로세스 파워의 혁신적인 업, 스토리지 확장, 분산처리 오픈소스)의 이유로 더 대량의 데이터가 쉽게 처리가 가능하게 되었습니다. 좀 생소하겠지만 하둡, 스파크 와 같은 오픈소스들이 분산환경(수십에서 수백대의 다수 서버를 활용)을 가능하게끔 만들어 주었기 때문이죠.
이것들은 여러군데 활용이 됩니다. 새로운 서비스 기획, 정책이 적용됐을 때 사람들(사용자)가 어떻게 반응하는지? 무슨말을 하는지 파악을 하게 만들죠. 예를 들면 카카오톡이 ui를 바꾸고 나서 사람들이 더 활용을 하는지? (전체 방문수 또는 추가된 특정 기능의버튼 활용이 얼마나 눌러지는지 를 세는 것 으로 새로운 ui에 대한 사람들의 반응을 평가해 볼 수 있는 것이죠(지금은 아주 단편적으로 말했습니다^^)
또 사람들이 이 동영상을 보기 위해서 어디서 어떻게 흘러들어 왔나? 이런것들을 보고 마케팅에도 이용이 가능하겠죠?
또한 사람들의 성향을 파악해서 나의 성향에 맞는 동영상이나 기사를 여러분이 방금 클릭한 컨텐츠 옆에 놓아준다면? 아무래도 그것도 클릭해볼 확률이 높지 않을가요?
이렇게 이전과는 데이터에 대한 목적이 달라진 것이죠. 이런 목적을 갖고 활용되면 빅데이터라는 용어를 붙일 수 있다고 생각이 듭니다.(단순 크기가 아니라.. 하지만 큼. 초반에 말한 것과 같쥬? 이제 좀 이해가 오시려나..)
요즘에는 생각보다 많은 인터넷it 기업들이 집중하고 있고, 더더더를 외치면서 중요하다고 하고 있습니다.이분야를 들어가기 위해선 어떻게 공부를 해야하느냐?
이 분야는 이제 성숙기에 들어왔다고 봅니다. 제가 시작할때만해도 혼재? 했는데, 이제는 역할이 분리되어가고 있는듯 보입니다.
1 위에서 말한 대량의 데이터를 저장하고, 프로세싱하는 엔지니어 (데이터 엔지니어)
2 이런 데이터 위에서 유의미한 의미를 뽑아내는 엔지니어( 데이터 사이언스)
첫번째는 여러 오픈소스들과 프로그래밍이 주를 이룬다면, 후자는 수학적인 계산과 결과 추측(예측) 알고리즘 설계에 집중이 되어있습니다.
저는 운이 좋게도 시작하는 단계에서 두분야를 모두 접해보았지만, 이제는 선택을 해야할텐데..... 급 고민이네요 ㅎㅎ
아무튼 그래서 요구하는 백그라운드 지식이 살짝 다릅니다.
엔지니어는 아무래도 프로그래밍 실력과 기본적인 전산(이건 뭐든 다 ..요구함) 분산환경에 대한 이해 like 하둡,스파크. 그리고 데이터에 대한 집착?. 그리고 아무래도 새로운 기술들이 하루가 다르게 많이 나오기 때문에 새로운 기술에 대한 러닝커브가 좋은?
사이언스로 간다면 아무래도 기본적인 수학입니다(미적, 선형대수, 확률통계). 저도 덕분에 공부 많이 했네요^^;;
그리고 요즘 핫하다는 딥러닝, 머신러닝등을 수행하기에 논문 등을 참조할 일이 많아서 영어는 필수입니다(이건 요즘 개발자들 필수)
하지만 가장 중요한건 하려고 하는 의지겠죠...
음 두서 없이 주저리주저리 썻는데 이 내용을 보는 입문자. 학생 분들께 많이 도움이 됐으면 좋겠습니다. 어디가서 나 빅데이터 할거야!
라고 한다면 이정도의 이해는 있어서 썰을 풀어야 된다~ 라고 부담없이 보시면 좋을것 같아요. ㅎㅎ
다음에는 직접 분석하는 과정을 살짝 맛뵈기 해보는 포스팅을 해보도록 하겠습니다.
Congratulations @smile2x! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit