우선 뭐든지 시작하세요!
이미 한물가고 필요없는 논의일 수도 있지만, 개인적을 생각을 정리한다고 생각하고 글을 시작해보겠습니다. R을 충분히 사용하고 있는 사용자로서, python은 뭐 1년 이상은 쓴 사용자로서 느끼는 점을 공유하고자 합니다. 개인적인 의견이므로 토론 대환영, 제가 모르는 정보 제공 대환영입니다.
물론 데이터를 분석하는데 사용할 것입니다. R과 python은 지위가 매우 비슷합니다. 물론 python은 좀더 본격적인 범용 개발언어이고, R은 다 할 수 있지만, 통계쪽으로 특화된 패키지가 많습니다. C, Cpp, fortran 등 저수준 언어로 만들었고, 문법이 쉽습니다. 여러 외부의 리소스를 잘 활용하는 편입니다. 데이터 분석이라는 분야에서 유명합니다.
터미널, bash, 쉘 이라는 단어를 모르신다면 배워야 하는 것이 python, 몰라도 되는 것이 R입니다. 물론 Unix 계열에서 사용하시면 어짜피 그걸 쓰신다는건 안다는 소리니 패스입니다. OOP가 뭔지 알아야 python은 좀 잘 쓸 수 있고, R을 몰라도 됩니다. 이 차이는 제가 느끼기엔 python은 뭔가 사용자가 개발자이어서 만드는 소스 모두가 패키지이기를 기대하는 것 같았습니다. R은 패키지 사용자가 개발을 잘 모르기 때문에 쉽게 만들어주어야 한다는 느낌이 있습니다. 패키지 수 등을 보면 python 생태계가 10배쯤 큰데요. 물론 범용이기 때문이기도 하지만, R은 패키지 제작자도 많지 않고 좀 어려운 느낌이 있습니다.
저는 딥러닝 때문이라고 봅니다만, 잘 모르겠습니다. 건너 듣기로는 python 배우는 건 어렵다는 걸 사람들이 알기 시작했다고 하기도 하고. 그렇다고 그 사람들이 사용하기에 R이 좋은가 하면 그렇지도 않은 것 같습니다. 암튼 제 생각은 python이 R보다 좋다기 보단, 그냥 유행인거 라고 생각해봅니다. (물론 제가 R 사용자니 사견이 많이 담긴 해석일 수 있습니다.)
저는 고독한 R 사용자(?)로 거의 영어 문서에 기반해서 독학했습니다. 물론 덕분에 패키지 개발등 좀더 유틸리티 패키지 개발자로 역할을 할 수 있었겠지요. 제 작은 희망이 있다면, R 사용자와 함께 회사일을 하는 것입니다. 그렇기에 직장인과 학생으로 나누어 조언을 하자면, 학생은 컴공 베이스라면 python을, 아니라면 R을 추천드립니다. 요즘은 워낙 기본서도 많이 나와있는 편이라, 어느 정도의 삽질을 통해 독학하거나 공부하실 수 있습니다. 직장인이라면, 직접 물어볼 수 있는 사람중에 python과 R 사용자가 있는지를 기준으로 보면 좋을 것 같습니다. 뭐가 다른가? 에서 파이썬이 더 많이 공부해야 하는 것처럼 묘사했지만, 봐줄 사람이 있다면 넘지 못할 공부도 아닙니다. 숫자 시작이 0이라는 건 익숙해지면 될 일인거죠. 물론 제가 OOP를 작성하거나 사용하는 법을 이해하는데 2년쯤 걸렸습니다만….(…)
python과 R은 사실 공생관계입니다. python의 pandas는 R의 기본 자료형인 data.frame을 모방한 패키지입니다. R에는 reticulate 패키지가 python의 native-wrapper 패키지로 동작합니다. 덕분에 python 패키지 모두를 R에서 사용할 수 있죠. python에서도 마찬가지로 rpy2 패키지로 R을 모두 사용할 수 있습니다.
저도 상황에 따라 사용하긴 합니다만, 처음 배운 도구에서 벗어날 수 없는 것처럼 저는 jupyter가 너무 싫습니다. rstudio에서 이제 python을 지원하기 때문에 마음껏 rstudio 사용하면 됩니다. 기다린 보람이 있어서, python에서 만든 객체를 R에서 사용하는 등 호환이 좋네요. jupyter는 반대로 꽤 일찍 R을 사용할 수 있었습니다. 원체 범용 repl 도구로 개발되었었고, 최근 jupyter hub 같이 좀더 ide 같아지면서 좀 쓸만해졌다고는 합니다. pycharm은 제가 잘 안쓰게 되서 잘 모르겠습니다. 더욱 개발자들인 분들이 쓰기 좋은 기능들을 많이 가지고 있는 인상이었습니다. 제가 쓰는 수준에서는 Rstudio로 충분했습니다. 이것도 한번 소개해야 겠네요. 저는 rstudio server 버전이 있어서 docker랑 호환이 좋은게 너무 좋네요.
저만 봐도 R을 주력으로 쓰지만, Python, node 등 가리지 않고 사용하는 편입니다. (물론 Java는 정말 싫어해서 처다보고 있지도 않습니다만, 사용자층이 두터운데는 이유가 있겠죠.) 한줄 요약에도 있지만, 뭐가 되었든 우선 시작하세요. 하루라도 빨리 배우시는게 자신의 미래의 위해서 좋은 것 같습니다. 자신이 무엇을 모르는지 모르는 단계에서 벗어나셔야 성장할 수 있습니다.
상황을 개인만으로 한정해 보자면, 개발과 비개발로 나누어 자신의 성향이 좀더 개발쪽이면 python, 비개발쪽이면 R을 하라고 이야기해준 적이 있습니다. 또 범용 개발 언어라는 특성이 있어, 좀 더 일반적인 개발을 함께 할 계획이라면 python을, 아니라면 R을 추천했었습니다. 다양한 일을 해야 된다고 하면 저라면 단연 R을 추천드리겠습니다만, python이 조금 더 나은 선택일 수 있습니다. 단적인 예로 마우스 오토메이션 관련된 패키지가 python에는 5개 이상인데, R에는 2개(모두 기능이 제한적임) 뿐입니다.
맞습니다. python은 단연코 개발자 생태계입니다. 우리 나라에도 회사에서 주변을 보면(it 회사라면) python 하시는 분들이 참 많습니다. R은 해외의 통계학자들과 생물통계학자들을 위한 도구로 성장했기 때문에 학계 생태계입니다. 놀랍게도 C++을 함께 사용하는 것이 당연한 분들이 많습니다.(저는 아직 멀었습니다. 흑흑) 최근에는 비즈니스로 사용하시는 분들이 많아지는 추세이긴 합니다.
위에서도 이야기했지만, 저의 “인상”을 작성한 것이기 때문에 사실과 괴리가 매우 클 수 있습니다. 언제든 내용 수정, 토론, 의견, 대환영입니다. 감사합니다.
If you see mistakes or want to suggest changes, please create an issue on the source repository.
Text and figures are licensed under Creative Commons Attribution CC BY-NC-ND 4.0. Source code is available at https://github.com/mrchypark/mrchypark.github.io, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".
For attribution, please cite this work as
Park (2018, Oct. 10). mrchypark: R과 Python 중에 어떤 것을 공부해야 할까. Retrieved from https://mrchypark.github.io/post/r과-python-중에-어떤-것을-공부해야-할까/
BibTeX citation
@misc{park2018r과, author = {Park, Chanyub}, title = {mrchypark: R과 Python 중에 어떤 것을 공부해야 할까}, url = {https://mrchypark.github.io/post/r과-python-중에-어떤-것을-공부해야-할까/}, year = {2018} }