요즘 ICT쪽의 여러가지 화두 중 하나는 데이터 분석, 특히 빅데이터(Big data) 분석이라고 할수 있다.
전통적인 DBMS 를 기반으로 하는 데이터 분석은 데이터의 양이 어마어마 하게 커지고 비정형 데이터
의 중요성이 더 커지면서 한계점에 다다르게 되었다.
그래서 요즘은 하둡(Hadoop) 이라는 분산데이터저장구조를 기반으로 해서 빅데이터를 분산 저장한 후
이 데이터를 R 이나 Python 등의 Language로 데이터의 통계 분석 및 시각화 작업을 많이 하고 있다.
그럼 R 과 파이썬(Python) 의 차이점 은 머고 장단점은 무엇일까? 어느것이 우리 회사에 맞는 Languge
인지 판단에 조금이라도 도움이 되고자 두 언어를 비교해보고자 한다.
오프소스 분석 도구 R
R은 통계처리를 위한 공개소프트웨어 패키지로 최근 가장 주목받는 빅데이터 분석 도구이다.
R은 기존 통계 소프트웨어인 S를 바탕으로 만들어졌으며, 자바(Java), C, C++, 파이썬(Python) 등
다른 프로그램 언어와도 쉽게 연동할 수 있으며, windows, Linux, Unix, Mac OS 등 대부분의 개발환경
을 지원한다. 또한 하둡(Hadoop) 분산처리환경을 지원하는 Library 를 제공하기 때문에 구굴, 페이스북
,아마존 등도 빅데이터 분석에 R 을 활용하고 있다.
R은 연구목적의 업무에 최적화되어 있지만 웬만한 종류의 데이터 분석에도 매우 용이하다. 왜냐면
R은 방대한 양의 Package 와 즉시 사용가능한 테스트 SET 을 제공하기 때문이다. 이 점의 R의 최대 강점
이다. 또한 전세계의 Mail List , Over Flow (네이버 지식인 처럼 묻고 답할 수 있는 커뮤니티) 와 같은
그룹의 도움을 언제든지 받을 수 있는 점 또한 강점이다. (오픈소스 이기 때문..)
파이썬(Python)
1991년 프로그래머인 귀도 반 로섬 이 발표한 고급 프로그램밍 언어로 플랫폼 독립적이며, 인터프리터식
객체지향적, 동적 타이핑(dynamic typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디
<Monty Python's Flying Circus> 에서 따온 것이다. 파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하
는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 C파이썬이 사실상의 표준이다.
파이썬은 주로 데이터 분석 결과를 다른 웹 애플리케이션에 접목하거나 통계적인 코드를 데이터베이스에
포한시켜야 할 때 사용한다. 필요한 패키지나 라이브러리를 불러오고 조합하여 분석 목적에 맞는 작업을
수행할 수 있다. 또한 직관적인 프로그래밍 언어로 초보자도 쉽게 배울 수 있다는 강점이 있다.
물론 R의 비해 초기 발전단계이자만 최근 몇년 상이 각광을 받으며 많이 발전하고 있다.
R의 장점
장점 | 설명 |
1. 데이터 시각화 | 시각화된 데이터는 Raw 데이터 보다 훨씬 효과적으로 그 의도를 전달할 수 있으며, R을 처음 만든 목적 자체가 '데이터 분석. 통계학 그리고 시각화 를 하기 위해 좋은 방버을 만들어 보자' 라는 데에서 출발했다. 그 만큼 R은 강력한 데이터 시각화 기능을 가지고 있다. |
2. 생테계 | R은 정말 풍부하고 다양한 Package와 활발한 Community를 가지고 있다는 것이 큰 강점이다. 말 그래도 'R의 생태계' 를 이루고 있다고 할수 있다. R함수와 데이터들의 모음인 패키지(Package) , 이를 통해 언제나 쉽게 최근의 테크닉과 기능에 접근이 가능하다. 자료 찾느라고 구글링을 밤새 할필요가 없다. |
3. 데이터 사이언스의 통용어 | R은 원래 통계학자들에 의해 통계학을 위해 개발되었기 때문에 통계적인 개념이 잘 녹여 있기 때문에 R을 습득하면 데이터 사이언스를 시작하기 |
R의 단점
단점 | 설명 |
1. 느린 속도 | R은 통계학자들이 좀 더 쉽게 연구하려고 만든 언어이기 때문에 아무래도 컴퓨터를 효율적으로 활용하는 방법은 그리 깊게 고민하지 않았다. 그래서 R은 읽기 어려운 코드 때문에 좀 느릴 수 있다. 하지만 요즘 그런 단점을 상쇄해줄 수 있는 pqR, renjin, FastR, Riposte 등의 패키지가 개발되어 있다. |
2. 어렵다 | R은 아무래도 고급언어보다는 기계어적인 언어에 가깝다고 볼수 있기 때문에 배우기가 좀 어렵다. 풍부한 패키지 사용에 익숙해지려면 상당한 시간이 걸릴 수 있다.. 어쩔수 없이 꾸준한 학습이 필요한 언어이다 |
파이썬의 장점
장점 | 설명 |
1.lPython Notebook |
보통 Languge 들은 통합개발환경(IDE)를 갖고 있다. 예를 들어 Visual Studio 라던가 eclipse 등이 있다. 파이썬의 IDE가 바로 lPython Notebook 이다 이 환경은 파이썬을 가지고 있는 데이터 작업을 훨씬 쉽게 만들어 준다. 따로 부가적인 설치도 필요없이 동료들과 메모와 작업을 공유할수 있으며 이를 통해 코드, 결과물, 메모파일들을 정리하는데 필요한 비용을 획기적으로 줄여줄 수 있다. 파이썬의 Libaray 중 하나인 lPython은 대화형 방식으로 Python 의 웹기반 Notebook을 지원하고 있다. 현재는 (Julia + Python + R)을 합쳐서 Jupyter Notebook 으로 발전했다. |
2. 특정 주제나 용도에 국한되지 않은 배우기 쉬운 언어 |
파이썬은 특정 분야를 위한 언어가 아니라 비교적 쉽고, 직관적인 UI를 가지고 있다. 따라서 데이터 사이언스 말고도 다양한 분아에 적용이 가능하다. |
3. 다양한 용도의 언어 | 파이썬은 다양한 백그라운드의 사람들이 모두 사용할수 있는 언어이다 . 이해하기 쉬운 언어이기 때문에 통계 백 그라운드를 가진 사람들도 배울수 있다. |
파이썬의 단점
단점 | 설명 |
1. 시각화 기능이 아쉽다. | R의 최대 장점이었던 시각화 기능이 파이썬에서는 가장 큰 단점이기도 한다. 시각화는 데이터 분석의 효율성을 높이는 데 중요한 요소이지만 파이썬은 R에 비해 시각화 기능이 떨어져 있다. |
2. 파이썬은 도전자이다. | 데이터 분석 툴에 있어서 R이 파이썬보다 선구자적인 위치에 있다. 파이썬은 후발주자라고 할수 있다. 그래서 R의 수백개 Package 에 비해 파이썬은 아직은 많이 부족하다고 할수 있다. 파이썬이 최근 각광을 받고 있지만은 R의 방대한 Package 를 포기하고 파이썬으로 갈아탈지는 아직은 미지수이다. |
'디지털서비스' 카테고리의 다른 글
LBS (Location Based Service) 측위 기술 (0) | 2019.10.16 |
---|---|
디지털 트윈 (Digital Twin) (0) | 2019.10.10 |
머클트리(Merkle Tree) (0) | 2019.09.19 |
Data Lake - 데이터 단일 저장소 (0) | 2019.09.09 |
망중립성 (Network Neutrality) (0) | 2019.09.08 |