2016년 9월 2일 금요일

최신 IT 트랜드(Language on Data Platform 측면)의 "왕좌의 게임"

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 를 달아주면, 그 퍼포먼스가 장난이 아닙니다.






댓글 없음:

댓글 쓰기