Data 를 다루는 언어들, 기술들이 최근 하루가 다르게 발전하고, 또 변화하고 있습니다. 특정 기술들은 이쪽 라인에 붙어 있다가, 저 쪽 라인에 붙는가 하면, 잘나가다가 어느새 훅 사라져버리기도 하죠. 주인공들이 픽픽 죽어나가는 것이, 마치 미드 "왕좌의 게임"을 보는 듯 합니다.
어느 한 기술을 고수하다 보면(국지전에 너무 매진하다 보면), 자칫 커다랗게 밀려오는 큰 흐름을 놓치고, 그 흐름을 따라가는데 힘이 겨워 질 수도 있을 것입니다.(곧 다가올 겨울에 대한 대비를 간과하게 될 지도 모릅니다.)
그런 측면에서, 얼마전 사내 BigData 기술 전파를 위한 공지 메일에서 경각심 부각 용으로 작성했던, "최신 IT 트랜드(Language on Data Platform 측면)의 왕좌의 게임 비유"를 블로그에 옮겨 보았습니다.
언어
|
주요
지원 프레임워크
|
왕좌의
게임
|
비고
|
Java
|
Spring,
Netty,
MapReduce
|
|
Korea 국민 언어 Java.
저도 빅데이타하면서 3~4년전에는
Java 로 Spring Data 위에서
MapReduce 쓰다가 흰 머리가 많이 났었습니다.조금 더 그 좋지 않았던 경험이 반복되었다면, 신생 언어를 만들어 낼뻔 한 순간, 트위터 애들이 먼저 그짓을 마무리 해주었었죠. 잠시나마 cascading 위에서 clojure 랭귀지를 다루거나, Riak 언어를 기웃거리던 계기를 Java가 제공하기도 했었습니다.
그렇게 개발자들에게 무관심하던 Java 는 왕좌의 게임의 라니스터 가문입니다. 천하를 통일했던 옛 명성이 있지만, 요즘은 왠지 좀 불안불안
합니다. 최근 1.8 이 나오면서, 서세이가 다시 녹색 물폭탄을 터트리고, 존재감을 드러내긴 했습니다만… C# 처럼 상위 프레임워크 지향 Legacy 호환성이 있는 것이
아니므로, 여러 Enterprise 기업들은 1.8을 구경하기조차 쉽지 않습니다.
|
Scala
|
Play 2,
Spark
Zeppelin Notebook
|
|
Play2 가 살짝 다시 각광을 받고 있기도 하지만, Scala.js 가 여기저기 조금씩 보이기도 하지만, 그 무엇보다 Scala 의 성장은 Spark 의 성장과 땔래야 땔 수가 없습니다. Scala 는 비록 한때 아무런 존재감이 없었으나, Spark 의 Dragon 급 존재감에 힘입어, 현재 막강 화력을 자랑하고 있습니다. Spark는 이미 BigData Eco 시스템의 춘추전국 국지전에서 Map/Reduce 나 Cascading, Pig 등을 제치고, 국지전 승리를 거둔바 있습니다. Spark 의 요즘 기세는 하늘을
나는 용과도 흡사합니다.
|
R
|
SparkR,
RevolutionR(MS R Server)
|
|
R 은 사실 매우 똑똑합니다. 세상의
모든 알고리즘이 다 있는 것 같습니만, 그런데 너무 작습니다.
Small Data 밖에 다루지 못하는 것이, 마치 티리온 라니스터 같습니다. 라니스터에서 독립되어 최근 Python에도 밀리는 형국이지만, Spark 가 손을 벌려 SparkR 병렬성을 지원하고 있고, 최근 MS 가
Revolution R 을 인수하고 커뮤니티를 지원하면서, 다시금 조금씩 병렬 R의 시대가 열릴 것 만 같습니다. 여전히 피는 다르지만, 아직 Spark 진영에 붙어 있는 것도 안전해 보이네요. 시즌6에서 용(Spark)과
친근함을 보여주기도 했었죠.
|
Python
|
DJango, Flask, 기타 등등..
Jupyter Notebook
|
|
Java 의 라니스터 가문만큼이나 오래된, 그러나 항상 변방의 2인자였던,
Python은 마치 스타크 가문 같습니다. 더구나,
2010년 전후로는 거의 맛이 갈 정도로 존재감이 하락했던 적이 있습니다. 느려 터지기도
했었구요. 이제 몇 명 남지도 않았어요. 하지만, 그래서 소수의 몇몇은 여전히 매우 Agile 하죠. 더구나 시즌 6 마지막에 북부 연합은 스타크를 위한 대동단결의
결의를 보여 주었습니다. 이는 마치 Python의 개발자
생태계를 보는 듯 합니다. 요즘은 개발자들이 직접 만들어 서로 공개, 공유 하고, 패키지를 주고 받는 pip 모듈 생태계가, 집단지성의 힘으로 재 조명되어, Java 나 C# 의 공룡 프레임워크의 그것을 위협하고 있습니다.
Spring 이나 .NET
Framework 같은 공룡 가문은 없지만, 수많은
100만 지방 호족의 힘을 합치면, 라니스터를 쉽게 위협하고도 남습니다.
|
TensoFlow (Deep Learning Framework By
Google),
SyntaxNet On TensorFlow ( for NLU, NLP By
Google)
Anaconda ( for Machine Learning &
Deep Learning )
|
|
Google 이 만들어내는
TensorFlow , SyntaxNet 같은 프레임워크는 GPU도 지원되고, 병렬 분산 컴퓨팅도 지원하며, 엔진 코어가 C/C++ 이라 무지 빠르기 까지 합니다. 그리고, 개발자들은 Python 으로 코딩합니다. Google 이라는 한개 회사가 붙었을 뿐인데도.. 그 존재감은
“존 스노우” 급 입니다. 우리의 알파고도 Lua 언어의 Torch 에서 python 의
TensorFlow 로 갈아 탄바 있습니다. Python 입장에서는 존 스노우 처럼
죽다 살아난 말도 안 되는 존재감의 우군입니다.
Python Anaconda 는 아직은 약하지만, 뒤에 큰 활약이 예감되는 브랜이나 아리아 스타크 같습니다. 아직은
혼자(병렬처리 안됨) 놀지만, GPU 를 달아주면, 그 퍼포먼스가 장난이 아닙니다.
|