데이터 분석을 위한 파이썬과 R 프로그래밍
데이터 분석과 인공지능 공부를 하는 사람들은 보통 코딩 공부로 그 시작을 알린다. 하지만 코딩 공부 직전에 겪어야 하는 시작 전 마지막 난관이 하나 있다. 바로 프로그래밍 공부를 하긴 할 것인데 과연 어떤 프로그래밍 언어를 공부하는 것이 좋은가를 고민하는 단계이다. 파이썬, R, SQL, JAVA, C++ 등 관련해서 매우 많은 프로그래밍 언어의 존재를 발견했을 확률이 높다. 아직 공부를 시작하기 전 단계이기에 입문자들은 과연 이들 중 어떤 것을 골라 공부하면 좋은지 난감해할 수 있다.
나 빅데이터/AI 공부하려는데 무슨 프로그래밍 언어 써야 해?
정확히 말하자면 어떤 프로그래밍 언어를 공부하면 좋은가에 대한 정답은 본인이 하고 싶은 일이 구체적으로 어떤 것이냐에 따라 달라진다. 생각해보면 당연한 일이다. 이 세상에는 정말 많은 프로그래밍 언어들이 존재하고 그 언어들이 모두 같은 목적으로 태어났을 리는 만무하다. 하지만 이제 막 입문하는 사람들 입장에서 이 분야가 구체적으로 어떻게 나뉘는지도 모르는데 내가 하고 싶은 일이 무엇인지 명확히 콕 집어 말하기는 힘들 것이다. 각 프로그래밍 언어의 특징도 잘 모르는데 내가 하고 싶은 일이 무엇인지도 알아야 한다니 충분히 당혹감을 느낄 수 있다고 생각한다.
하지만 개인적으로 빅데이터, 데이터 분석, 데이터 사이언스, 인공지능을 넘나드는 이 분야에서는 적어도 공부해야 하는 프로그래밍 언어에 대해 정답이 있다고 본다. 우선 데이터 분석 자체와 인공지능 쪽으로만 초점을 맞추면 사실상 고를 수 있는 프로그래밍 언어의 폭이 매우 적어진다. 파이썬과 R 둘 중 하나이다. 그 외에 많은 프로그래밍 언어들은 빅데이터 목적으로 이용되는 경우가 거의 없고 그렇기에 배워봐야 큰 쓸모가 없다. 결국 오늘 글에서는 파이썬과 R 프로그래밍 중 어떤 것을 배우는 것이 더 좋은가에 대한 의견을 이야기해보도록 하겠다.
웬만하면 파이썬 공부하세요.
앞서 언급하였듯, 빅데이터 분야에 관심이 있다면 선택지는 파이썬과 R 사실상 두 개다. 이 두 가지 프로그램 모두 매우 좋은 프로그램들이다. 어쨌거나 저쨌거나 지금까지 탄생했던 수많은 데이터 분석용 프로그램 중에서 아직까지 떳떳하게 살아남은 프로그램 두 가지이다. 둘 모두 코딩을 처음 접하는 사람들이 쉽게 배울 수 있도록 문법 구조가 복잡하지 않다. 파이썬을 먼저 배운 사람은 파이썬 문법이 더 쉽다고, R을 먼저 배운 사람은 R 문법이 더 쉽다고 말할 정도의 수준이다.
하지만 두 가지 모두 훌륭한 프로그램일지라도 개인적으로 장기적 관점에서 웬만하면 파이썬을 공부할 것을 추천한다. R 공부를 추천하는 경우는 딱 한 가지 경우이다. 본인이 하고자 하는 분석들이 통계분석에만 국한되어있고 그 이상의 분석에는 관심이 없는 경우다. 이 외에 본인이 통계 분석보다는 머신러닝을 비롯한 AI 분야, 데이터 전처리 심지어 데이터 시각화에 관심이 있다고 할지라도 장기적인 관점에서 파이썬 프로그래밍 공부를 해야 한다.
통계분석만 놓고 보면 사실 R 프로그램이 굉장히 좋다. 파이썬이던 R이던 현재 많이 이용되고 있는 통계 분석 방법의 대부분을 지원한다. 둘 모두 간단한 코드 몇 줄로 통계 분석 알고리즘을 구현할 수 있다. 하지만 결과는 조금 다르게 나온다. 통계 분석을 위해 똑같이 코드 한 줄을 친다고 할지라도 파이썬보다 더 많은 정보를 결과물로 보여주는 경우가 많다. 상식 삼아 알아두면 좋은 것이 R 프로그램의 개발자는 프로그래머가 아닌 통계학자라는 점이다. 이 사실만 보아도 통계 분석을 위한 장치가 훨씬 더 단단히 되어 있을 것임을 유추할 수 있다.
파이썬이 R보다 확실히 가볍습니다.
하지만 본인이 넓은 데이터 분석 전반적인 분야에 관심이 많다거나 통계 분석을 제외한 영역에 관심이 많다면 단연코 파이썬 공부를 권장한다. 그 첫 번째 이유는 바로 파이썬이 R보다 확실히 가벼운 프로그램이기 때문이다. 사람에게 가볍다고 표현하는 것은 부정적인 표현이지만 컴퓨터 프로그램에게 가볍다고 표현하는 것은 칭찬이다. 쉽게 말하면 똑같은 데이터를 다룬다고 할지라도 R에서 코딩을 하는 것보다 파이썬에서 코딩을 하는 게 훨씬 렉이 덜 걸리고 빠르다. 물론 파이썬도 다른 환경들에 비하면 빠른 것은 아니라고 말하는 사람들도 있지만 비교 대상을 R로 설정한다면 이는 명확한 사실이다.
인공지능 알고리즘을 구현하고자 한다면 더욱더 무조건 파이썬입니다.
다음으로 데이터 분석 분야를 넘어서 AI 분야에 관심이 있는 경우가 있을 수 있다. 이 케이스라면 더욱더 파이썬을 이용해야 한다. 머신러닝, 딥러닝이 발전하면서 딥러닝 알고리즘 구현을 위한 많은 딥러닝 프레임워크가 존재하고 있다. 텐서플로, 케라스, 파이토치 등 딥러닝을 위한 라이브러리를 지원해주는 장치가 많이 발달해왔고 지금도 발전 중이다. 방금 말한 텐서플로, 케라스, 파이토치가 딥러닝을 구현 가능하게 만드는 가장 대표적이고 중요한 프레임워크 들인데 이 장치들은 모두 파이썬 위에서 작동한다.
R로 인공지능 알고리즘 구현하는 것이 불가능한 것은 아니다. 하지만 상대적으로 정보가 적고 유저들이 많이 이용하지도 않는다. 더욱이 딥러닝 세계는 기본적으로 앞서 말한 프레임워크들 위주로 돌아가고 있다. 딥러닝 세계에서 R은 확실히 비주류이다. 그 말은 즉슨 최신 딥러닝 알고리즘이 먼저 반영되는 곳이 파이썬 쪽이다. 그리고 기본적으로 딥러닝은 연산 과정이 매우 복잡하기 때문에 속도를 단축시키는 작업이 매우 중요하다. 앞서 파이썬이 R보다는 확실히 가벼운 프로그램이라 했던걸 감안하면 파이썬을 선택해야 하는 이유가 하나 더 는다.
이 분야만 놓고 보면 R보다는 파이썬 이용자가 훨씬 많습니다.
R보다 파이썬을 공부해야 하는 마지막 이유는 데이터 분석, 인공지능 분야에서는 압도적으로 파이썬 유저가 더 많다는 점이다. 과거에는 사실 R vs 파이썬이 엄청나게 민감한 주제일 정도로 양쪽의 사용자가 모두 비등하게 많았다. 하지만 현재 시점으로 R보다는 파이썬을 이용하는 유저가 훨씬 많고, 미래에는 더욱더 격차가 심해질 것으로 생각된다. 빅데이터와 인공지능 분야에서 모르는 것을 묻고 답하는 플랫폼으로 가장 유명한 Stack Overflow 사이트에 올라오는 각 프로그래밍 연관 질문 숫자를 보면 이를 명확히 알 수 있다.
확실히 시간이 지날수록 올라오는 질문의 숫자 차이가 나고 있다. 질문의 숫자가 차이 난다는 것은 그만큼 사용하는 유저의 숫자에서 차이를 보이고 있다는 것이다. 다만, 입문자들은 여기서 한 가지 의아해 할 수도 있다. 다른 사람들이 많이 쓰는 것이 아니라 내게 잘 맞는 프로그래밍 언어를 골라야 하는 것이 아니냐고. 하지만 프로그래밍을 공부할 때 이 프로그램을 다른 사람이 많이 쓰느냐는 매우 중요한 문제이다. 유저 숫자에 따라 찾을 수 있는 자료의 양에서 큰 차이를 보이게 되며 이용자가 많을수록 구글에서 내가 원하는 코드를 그대로 긁어와 활용하기도 쉽다. 협업을 할 시에도 사람들이 쓰는 프로그램을 내 입맛대로 맞출 수 없다는 점도 중요한 요소이다. 이와 관련해서는 추후 더 자세하게 다뤄볼 예정이다.
프로그래밍 언어 선택으로는 너무 시간을 많이 쏟지 않았으면 좋겠습니다.
이번 글에서 가장 주요하게 했던 이야기는 빅데이터/AI 분야에서 선택 가능한 프로그래밍 언어는 사실상 파이썬과 R 두 가지이고 웬만하면 파이썬을 선택해서 공부하라는 것이다. 사실 평소에 이렇게 무언가를 확정적으로 말하는 것을 즐기는 편은 아니다. 하지만 입문자들이 프로그래밍 언어 선택으로 너무 많은 시간을 쏟지 않길 바라는 마음이 이런 어투를 불러온 듯하다. 본인이 완벽을 추구할수록 프로그래밍 언어 선택에도 많은 심혈을 기울이겠지만, 사실 어느 정도 정답이 있는 영역이니 바로 다음 단계로 진입하였으면 좋겠다.