NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

R vs 파이썬, 빅데이터 분석엔 무엇이 더 좋을까?

빅데이터 분석
출처: 구글

 

최근 빅데이터는 정말 다양한 곳에서 다양한 방법으로 분석되고 있습니다. 그에 따라 자연스럽게 데이터 분석가 혹은 데이터 과학자를 꿈꾸는 학생들도 늘어나고 있습니다. 하지만 데이터 분석가나 데이터 과학자가 되는 길은 쉽지 않습니다. 수학이나 통계학적인 지식을 갖춰야 함은 물론 머신러닝, 딥러닝 알고리즘에 대한 이해, 프로그래밍 언어에 대한 숙달까지 갖춰져야 하기 때문입니다. 특히 프로그래밍 언어를 공부하는 것에 많은 학생들이 고민을 겪고 있습니다. 한국어, 영어 등 일반적인 언어를 완전히 숙달하는 것이 상당히 어려운 것과 마찬가지로 프로그래밍 언어를 자유자재로 구사하는 것은 어려운 일입니다. 때문에 데이터 분석가나 데이터 과학자가 되고자 하는 사람들이 가장 관심 있게 지켜보는 영역은 바로 프로그래밍 언어를 공부하는 것입니다.

 

 

빅데이터를 위한 프로그래밍 언어

기본적으로 프로그래밍 언어라 하면 컴퓨터 소프트웨어를 작동시키기 위해 작성하는 언어를 뜻합니다. 그리고 어쩔 수 없이 빅데이터를 다루기 위해서는 프로그래밍 언어에 익숙해야 합니다. 빅데이터란 말 그대로 대용량의 데이터를 의미합니다. 존재하는 데이터의 모든 숫자를 일일이 보며, 계산하거나 원하는 방식으로 데이터에 수작업으로 조작을 가하는 것은 사실상 불가능합니다. 데이터를 다루는 프로그램으로 유명한 엑셀 역시 특정 개수 이상으로 데이터 사이즈가 커지면 아예 데이터를 읽지 못합니다. 또한 최근에는 클릭 몇 번으로 데이터에 조작을 가하고, 수학적 연산을 할 수 있는 GUI(Graphic User Interface) 방식의 프로그램들도 많이 개발되고 있지만, 그 한계는 명확한 실정입니다.

 

1) 프로그래밍 언어의 종류

프로그래밍 언어
출처: unsplash

 

결국 데이터 분석가와 데이터 과학자는 프로그래밍 언어를 필수적으로 잘 다룰 줄 알아야 합니다. 하지만 애석하게도 이 세상에는 너무나 많은 프로그래밍 언어가 존재합니다. C, C++, Java, 파이썬 등 다양한 언어 체계가 존재하고, 이를 모두 학습하는 것은 지나치게 많은 시간과 노력이 소비됩니다. 사실 모든 프로그래밍 언어가 완전히 다른 문법이나 체계를 가지고 있는 것은 아니지만, 분명 각 언어들은 다른 장단점을 가지고 있습니다. 어떤 프로그래밍 언어는 수행 속도가 굉장히 빠르지만 한 번 수정을 해야 할 때 너무나 많은 작업이 수반되어야 하고, 또 다른 언어는 인간 언어와 유사한 프로세스로 구축되어 있지만 수행 시간 측면에서 단점을 보이기도 합니다.

 

 

R vs 파이썬

다행히 빅데이터 처리를 위한 프로그래밍 언어는 딱 두 가지로 압축할 수 있습니다. 바로 R과 파이썬입니다. 물론 R과 파이썬 외에도 더욱 많은 프로그램들이 빅데이터 처리를 위해 존재하기는 합니다. 하지만 제공하고 있는 기능이나 활용되고 있는 정도 등을 고려했을 때, R과 파이썬에 비해서 그 영향력이 작은 것이 사실입니다. 그래서 빅데이터 관련 커리어를 쌓고자 하는 사람은 R과 파이썬 두 가지의 선택지 중 하나를 고르면 됩니다. 하지만 선택지가 두 가지로 좁혀져도 어떤 프로그래밍 언어를 배울지 선택하는 것은 쉽지 않습니다. 이 고민을 해결하기 위해선 각 언어의 특징이 무엇인지, 프로그래밍 언어를 선택할 때 어떤 점을 고려해야 하는지 정확하게 알고 있어야 합니다. 

 

1) 공통점

기본적으로 R과 파이썬은 유사한 특징을 지니고 있습니다. 우리가 눈여겨봐야 할 가장 중요한 특징은 두 가지 프로그래밍 언어 모두 데이터 분석을 위한 패키지를 다양하게 제공해준다는 것입니다. 각 프로그래밍 언어의 역할과 목적이 다른 만큼 모든 언어가 데이터 분석가들을 위하여 환경을 업데이트해주지는 않습니다. 하지만 R과 파이썬은 모두 데이터 분석가 혹은 데이터 과학자에 주요 이용자층이 형성되어 있기에, 최신 머신러닝 알고리즘의 업데이트 등 데이터 분석을 위한 다양한 기능을 제공해주고 있습니다. 추가적으로 데이터 분석가나 과학자로 주요 이용자층이 형성되어 있다는 것은 관련한 커뮤니티가 많이 활성화되어 있다는 것을 의미하기도 합니다. 즉, R이나 파이썬으로 빅데이터를 다루며 문제가 생길 때, 간단한 구글 검색 몇 번만으로도 해당 문제에 대한 해결방법을 쉽게 찾을 수 있습니다.

 

또한 R과 파이썬 모두에 적용되는 중요 특징으로 두 프로그래밍 언어 모두 오픈소스라는 점입니다. 두 프로그램 모두 이용하는데 일체의 비용이 필요하지 않습니다. 사실 프로그래밍 언어 자체는 비용을 지불해야 하는 것이 흔치 않지만, 빅데이터로 분야를 제한시키면 이야기가 달라집니다. 기존의 통계 툴로 유명한 SPSS, SAS 등의 프로그램은 모두 비용을 지불해야 이용이 가능합니다. 또한 그 액수가 적은 수준이 아니어서 개인이 꾸준히 비용을 지불하며 프로그램을 이용하기에는 부담이 따릅니다. 그러니 무료로 전통적인 통계 분석 알고리즘은 물론 최근의 머신러닝, 딥러닝 알고리즘까지 자연스레 제공받는 것은 엄청난 메리트입니다.

 

2) R의 특징

그렇다고 R과 파이썬이 모두 동일한 특징만을 보이는 것은 아닙니다. 두 프로그래밍 언어는 빅데이터 처리를 위한 다양한 기능을 제공해준다는 점에서 비슷한 특성을 보이지만 세세히 파고들어 가면 꽤나 많은 차이점을 보입니다. 파이썬과 대비되는 R의 특성부터 살펴보겠습니다.

 

R studio
R studio 실행 화면, 출처: www.rstudio.com

 

R의 경우 통계라는 한 단어로 그 특징을 정의할 수 있습니다. R이라는 프로그램 및 그 언어를 만든 사람이 통계학자이기 때문입니다. 때문에 우스갯소리로 ‘R의 가장 큰 장점은 통계학자가 만들었다는 것이고 R의 가장 큰 단점 역시 통계학자가 만들었다는 점이다’라는 이야기가 있습니다.

 

먼저 장점부터 이야기해보면, R은 통계 분석에 있어 정말 다양한 기능들을 제공해주고 있습니다. T 검정, 회귀 분석 등 기초적인 통계 분석 알고리즘부터 시작해, 복잡한 통계 알고리즘까지 모두 R에서 간단히 몇 줄의 코드로 구현이 가능합니다. 또한 같은 통계분석을 실시한다고 할지라도 파이썬에 비해 R이 더욱 상세한 결과물을 보여줍니다. 보통 통계분석을 시행하면 분석 결과를 회귀 계수, 결정 계수, 신뢰도, 신뢰구간, 유의확률, AIC, BIC 등 복잡한 수치를 종합적으로 보고 해석해야 합니다. 이런 측면에서 R은 같은 코드를 작성할 때, 파이썬보다 더욱 자세하고 명료하게 분석 결과를 제공해주는 경향이 있습니다.

 

하지만 프로그래머가 아닌 통계학자가 프로그램을 만들었기 때문인지, 수행 속도 측면에서 R은 파이썬에 비해 단점을 보이고 있습니다. 같은 데이터를 불러와 같은 분석을 시행한다고 가정하면, 확연하게 파이썬에 비해 느리게 수행되는 것을 느낄 수 있습니다. 빅데이터가 본디 대용량의 데이터를 뜻하기에 대량의 데이터를 빠른 속도로 처리하는 것은 빅데이터 분석을 할 때 굉장히 중요합니다. 그래서 수행 속도에 단점이 있다는 것은 R이라는 프로그램에 치명적으로 작용합니다.

 

3) 파이썬의 특징

파이썬 코드
파이썬 실행 코드 예시, 출처: www.python.org

 

반대로 파이썬의 경우 통계 분석 외의 측면에서 상대적으로 장점을 보입니다. 그중에서도 파이썬의 가장 큰 장점을 하나 뽑으라면 바로 최신 머신러닝, 딥러닝 알고리즘을 제공한다는 점입니다. 물론 R에서도 머신러닝이나 딥러닝 알고리즘이 아예 제공되지 않는 것은 아니지만, 그 수준에서 파이썬과는 많은 차이를 보이고 있습니다. 기본적으로 머신러닝, 딥러닝 등의 AI 알고리즘은 연산 과정이 너무나 복잡해 많은 수행 시간을 요구합니다. 

 

이때, R에 비해 상대적으로 속도 측면에서 장점을 보인 파이썬을 고려하면, 자연스럽게 AI 알고리즘을 적용하는데 파이썬이 더 적합함을 알 수 있습니다. 추가적으로 최근 개발되는 AI들은 모두 특정한 환경위에서만 구현되는 경향이 강합니다. 그 구체적인 환경으로 텐서플로, 케라스, 파이토치 등이 있는데 이 환경들은 모두 파이썬을 기반으로 하는 환경들입니다. 결국 R 이용자 입장에서 이 환경에서 제공되는 정말 최신의 AI 알고리즘은 바로 적용하기에 한계가 있습니다.

 

하지만 파이썬 역시 장점만 있지는 않습니다. 특히 R의 장점이었던 통계 분석 측면에서는 확연히 단점을 보입니다. 머신러닝, 딥러닝 등 최신 AI 알고리즘이 파이썬 환경에서 활발히 제공되는 것과 대비해서 통계 분석 알고리즘은 그렇지 않습니다. 업데이트 자체가 더디기도 하며 파이썬 환경에서 통계 분석을 진행하는 사람이 적다 보니, 구체적인 코드 등 그 사용법을 찾아보는 것에도 어려움이 있습니다. 또한 많은 노력을 기울여 파이썬에서 통계 분석 알고리즘을 돌린다 할지라도 R에 비해 결과물이 상세하지 못한 점이 있어 분석가들을 다소 허망하게 만들기도 합니다.

 

 

어떤 프로그래밍 언어를 선택해야 하는가?

이처럼 R과 파이썬은 공통적인 특징도 있으며, R에게서만 혹은 파이썬에서만 보이는 차별적인 특징을 보입니다. 이 정보를 바탕으로 데이터 분석가들은 본인이 어떤 프로그램이 좋을지 최종적으로 선택해야 합니다. 이때는 크게 분석 목적과 프로그램의 이용 정도를 고려할 수 있습니다.

 

1) 분석 목적에 적합한 프로그래밍 언어

먼저 데이터를 분석하고자 하는 목적을 명확하게 가지고 있다면, 그 목적에 부합하는 프로그래밍 언어를 선택해야 합니다. 이때는 문제가 간단합니다. 앞서 언급하였듯 R은 상대적으로 통계 분석에, 파이썬은 AI에 장점을 가지고 있었기 때문에 본인이 통계 분석 쪽으로 관심이 있다면 R을, 인공지능 측면에 관심이 있다면 파이썬을 선택하면 됩니다. R에서 AI 알고리즘을 구현하거나 파이썬에서 통계 분석을 진행하는 것이 불가능한 것은 아니지만, 굳이 상대적으로 더 좋은 프로그램이 있는데 이를 이용하지 않을 이유는 없습니다.

 

하지만 아쉽게도 대부분의 데이터 분석가 혹은 과학자는 통계 분석과 AI 알고리즘을 모두 이용해야 하는 경우가 많습니다. 단순히 분석 목적이 아니라 다양한 측면에서 어떤 프로그래밍 언어를 선택할지 고민해야 합니다. 그 대표적인 예시가 ‘사람들이 얼마나 자주 이용하고 있는 프로그래밍 언어인가?’를 살펴보는 것입니다. 

 

2) 많은 사람들이 사용하는 프로그래밍 언어

사실 프로그래밍 언어를 선택할 때 다른 사람들도 많이 사용하고 있는 언어를 선택하는 것은 생각보다 중요한 이슈입니다. 분석 목적이나 개인 취향에 맞는 프로그램이 딱 하나만 존재하면 모르겠지만, 그런 경우는 생각보다 드뭅니다. 이럴 때는 다른 사람들이 얼마나 많이 사용하고 있는지 살펴보는 것이 그 프로그램을 평가하는 하나의 지표가 될 수 있습니다.

 

많은 사람들이 특정 프로그래밍 언어를 사용한다면 그 자체로 그 언어에 대해 많은 장점이 있다는 것을 의미합니다. 나쁜 프로그래밍 언어라면 많은 사람들이 사용하고 있을 이유가 없습니다. 또한 최신 알고리즘이나 새로운 기능들은 많은 사람들이 사용하고 있는 프로그램에 우선적으로 배포되는 경향이 있습니다. 빅데이터 분야뿐 아니라 전반적인 IT 업계의 사람들이 새로운 기능이나 최신 알고리즘에 민감한 것을 고려한다면 이 역시 꽤 중요한 요소입니다. 마지막으로 많은 사람들이 특정 프로그래밍 언어를 사용하고 있다면, 이는 코딩을 하다 모르는 문제가 생겼을 시 쉽게 검색이 가능하단 것을 의미합니다. 많은 자료와 질문들이 이미 인터넷 상에 존재하기에 이를 쉽게 활용할 수 있습니다.

 

빅데이터 분야 사람들의 관심 영역인 R과 파이썬으로 한정시켜보면 R보다는 파이썬이 그 이용자가 더 많은 것이 사실입니다. 그렇다고 이것이 무조건 파이썬만이 데이터 분석에 있어 정답이라는 말은 아닙니다. 본인의 주요 관심사가 무엇이고, 고려해야 할 프로그래밍 특성이 무엇이 세심하게 고민해야 합니다.

 

 

선택의 몫

프로그래밍 코드
출처: 구글

 

R과 파이썬 중 하나를 선택하는 일은 데이터 분석가에게 있어 늘 숙제와도 같습니다. 두 프로그램은 모두 배우기 쉬우며, 너무나 좋은 기능을 제공해주고 있기에 하나의 프로그래밍 언어만 선택한다는 것이 어렵기 때문입니다. 결론적으로 프로그래밍 언어를 선택할 때는 본인의 목적이 무엇인지, 그리고 다른 사람들은 같은 분야에서 어떤 프로그램을 많이 사용하고 있는지를 잘 고려해보아야 합니다. 하나의 언어에 익숙해졌다면 상대적으로 다른 언어를 학습하는 것 역시 쉬워져, 두 가지 프로그램을 모두 능숙하게 다루는 것이 불가능한 일은 아닙니다. 데이터 분석가로서 R을 선택할지, 파이썬을 선택할지, 둘 모두를 선택할지는 이번 시간에 다뤄본 주요 특징들을 잘 고려해 선택하시길 바랍니다.

삼더하기일

빅데이터와 인공지능을 연구하고 적용하는 현직 데이터 사이언티스트입니다. 드넓은 데이터 생태계에서 올바른, 목적있는, 논리적인 데이터 활용을 위해 노력하고 있습니다.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.