본문 바로가기

오픈소스 언어로 만나는 데이터 분석, ‘파이썬’과 ‘R’

OSS 게시글 작성 시각 2017-08-01 09:23:07 게시글 조회수 2975

2017년 3월 20일

ⓒLG CNS, 이지현 기자(블로터닷넷)




데이터 저장과 처리 기술이 향상되면서, 데이터 분석 관련 인력 수요도 증가하고 있습니다. 데이터 분석은 구글 애널리틱스(Google Analytics), 옵티마이즐리(Optimizely)등 기존에 존재하는 솔루션과 서비스를 활용할 수도 있지만, 동시에 프로그래밍 언어를 활용해 데이터를 여러 방법으로 분석하는 경우도 많습니다.


데이터 분석 분야에서 사랑받고 있는 2가지 프로그래밍 언어가 있습니다. 바로 ‘파이썬(Python)’과 ‘R’이라는 언어이죠. 두 언어는 경쟁 언어이면서, 오픈소스 언어라는 특징을 가지고 있습니다. 오늘은 ‘파이썬’과 ‘R’에 대한 자세한 역사와 특징을 살펴보겠습니다.



파이썬, 개발자가 사랑하는 분석 언어


파이썬은 단순히 데이터 분석뿐만 아니라 웹 개발 분야에서도 각광받는 언어입니다. 생산성이 높고, 배우기 쉽다는 이유 때문이죠.



파이썬을 이용한 프로그래밍(출처: https://www.python.org/)


파이썬은 네덜란드 개발자 귀도 반 로섬이 만들었습니다. 그는 암스테르담대학교에서 컴퓨터과학과 수학을 전공했으며, CWI(Centrum voor Wiskunde en Informatica, 국립 수학 및 컴퓨터 과학 연구기관)라는 연구소에 근무하면서 인터프리터 언어(interpreted language)를 개선하는 일을 했다고 합니다. 이 곳에서 C언어 등 기존 언어가 가진 한계를 극복할 수 있는 언어를 고민하다가 1991년 파이썬을 개발하게 됩니다.


‘파이썬’이란 이름에 대해 한번 살펴볼까요? 파이썬의 영어 의미는 그리스 신화에 나오는 뱀 이름을 뜻합니다. 실제 파이썬 로고에는 두 개의 뱀이 서로 마주 본 듯한 그림이 있기도 한데요. 하지만, 귀도 반 로섬이 실제 ‘파이썬’이란 단어를 선택할 당시에는 그리스 신화를 참고한 것은 아니었다고 합니다. 영국 BBC 방송의 코미디 프로그램인 ‘몬티 파이썬 비행 서커스(Monty Python’s Flying Circus)’를 좋아해 가져왔다고 하네요.



파이썬 공식 홈페이지에 따르면 “귀도 반 로섬은 짧고, 특별하고, 미스터리한 느낌의 단어를 찾았다. 그래서 파이썬이란 이름을 결정했다”라고 설명하고 있습니다. 귀도 반 로섬은 이후 구글에 입사하게 되는데요. 이로 인해 구글에서 파이썬을 이용해 많은 제품을 만들기도 했습니다.


파이썬은 오픈소스 언어로서, ‘자비로운 종신독재자(BDFL, Benevolent Dictator for Life)’ 체제 기반운영으로 유명합니다. ‘BDFL’ 이란, 소스코드를 수정하는 최종 권한을 갖거나, 전체적인 개발 방향을 정해주는 사람을 말하는데요. 주로 해당 오픈소스 기술을 처음 만든 창시자가 BDFL을 맡습니다. 다시 말해 누구나 파이썬을 위해 자유롭게 토론하고 소스코드에 기여할 수 있으나, 오픈소스 기술의 방향과 기능을 정하는 최종 결정권자는 BDFL에게 맡기는 것이죠.


최근에는 파이썬 소프트웨어 재단(Python Software Foundation, PSF)이 체계적으로 파이썬 커뮤니티를 관리하고 있습니다. 2001년 설립된 파이썬 소프트웨어 재단은 비영리단체로서 주로 라이선스, 법적 분쟁, 도메인 주소, 후원금, 콘퍼런스 지원, 교육 활동 등을 담당하고 있죠.



앞에서 말한 것 같이, 파이썬은 기존 프로그래밍 언어의 한계를 극복하기 위해 태어났습니다. 이영향으로 파이썬은 가독성이 좋고, 프로그래밍에 대한 기초 지식이 없어도, 직관적으로 이해하기 쉬운 구조로 되어 있습니다. 그래서 개발자가 데이터 과학을 처음 시작할 때, 파이썬을 많이 이용하곤 합니다.


파이썬은 데이터 분석뿐만 아니라 머신러닝, 시스템 관리, 웹 개발 등 한번 배우면 다양한 곳에서 활용할 수 있습니다. 이 부분은 장점으로 꼽히기도 하지만, 반대로 R과 같은 데이터 분석 전문도구보다 고급기능을 수행하기에 일부 제약이 존재한다는 평가도 받습니다.


파이썬으로 데이터 분석을 하기 위해선 넘파이(NumPy)나 판다스(pandas), 싸이파이(SciPy)같은 라이브러리를 활용해야 합니다. 이때 IDE로는 아이파이썬(Ipython)을 많이 사용하는데요. 모두 데이터 분석을 더욱 쉽게 할 수 있도록 도와주는 도구입니다. 또한, 관련 기술 커뮤니티에선 활발한 토론과 노하우, 시행착오 등을 공유하고 있어, 정보를 얻기도 쉽습니다.



R, 통계학자들이 사랑하는 분석 언어


파이썬을 범용 언어라고 할 수 있다면, R은 분석을 위한 통계용 언어입니다. 실제로 최근 통계와 관련된 논문에서 R로 작업한 결과들이 많이 보이는 추세입니다.


R은 1995년 뉴질랜드 오클랜드 대학교에 속해있던 로스 이하카(Ross Ihaka) 교수와 통계학자 로버트 젠틀맨(Robert Gentleman)이 만들었습니다. R이란 이름은 두 창시자의 이름 첫 글자를 따와서 만들어졌다고 하는데요. 동시에 R은 S라는 통계 언어를 참고해 만들었다고 합니다. S가 이니셜을 활용한 것처럼, R도 알파벳을 활용한 셈입니다.



분석을 위한 통계용 언어 R(출처: https://www.r-project.org/)


R은 현재 R 파운데이션이라는 재단을 중심으로 운영되고 있습니다. R 개발팀이 따로 존재하며, 최근에는 R 스튜디오 제작팀이나 패키지 개발에 참여했던 여러 기업들이 협업해 R을 발전시키고 있습니다.


과거 R이 없던 시기의 통계학자들은 주로 SPSS라는 소프트웨어를 통해 데이터를 분석했습니다. SPSS는 현재 IBM에서 판매하고 있으며, 정식판은 수백만 원을 지불해서 구매해야 합니다. 그런데도 특히, 대학에서는 SPSS를 기반으로 많은 분석 활동이 많이 이뤄졌었는데요.


2014년부터 SPSS 대신 R에 대한 사용빈도가 눈에 띄게 높아지고 있습니다. R이 오픈소스 언어이면서 무료로 활용할 수 있다는 장점이 컸기 때문이죠.


또 다른 R의 큰 장점 중 하나는 확장성입니다. 다양한 패키지를 통해 원하는 기능을 쉽게 추가할 수 있기 때문인데요. 여기서 패키지란 다양한 함수와 기능을 사용하도록 돕는 일종의 R 보조 소프트웨어입니다.


‘R 스튜디오’라는 IDE를 활용하면 클릭 몇 번만으로 특정 기능에 특화된 패키지를 다운받을 수 있는데요. 예를 들어 시각화를 위한 패키지, 데이터를 정렬해주는 패키지, 데이터를 요약해주는 패키지 등 수천 개가 넘는 패키지를 입맛에 맞게 활용할 수 있습니다.



R 패키지 예제(출처: https://www.rstudio.com/)


R은 파이썬에 비해 조금 어려운 언어라는 평가도 받습니다. 하지만 그렇다고 비전문가가 접근할수 없는 언어는 아닙니다. 실제로 R은 수학과, 통계학과, 경제학과 같은 프로그래밍과는 조금 거리가 있는 분야에서 많이 활용되고 있으니까요. 어느 정도 시간을 투자하면, 기본 기능과 다양한 패키지를 활용할 수 있는 수준에 도달할 수 있습니다.


R은 꼭 데이터 분석에만 사용할 수 있는 것은 아닙니다. 문서작업이나 발표자료 제작, 표를 만들 때 R을 사용할 수도 있습니다. 이때 ‘니터(knitr)‘라는 패키지와 ‘R 스튜디오‘를 함께 이용하면 됩니다.


오늘은 데이터 분석을 할 수 있는 오픈소스 프로그래밍 언어인 ‘파이썬’과 ‘R’에 대해 말씀드렸습니다. 프로그래밍 언어라는 점에서 간단히 접근할 수 없는 부분이기는 합니다. 그러나, 데이터 분석에 관심이 있으신 분이라면, 피할 수 없는 부분이기도 하죠. 오늘 이야기를 통해 조금 데이터 분석과 친해지실 수 있는 시간이 되셨으면 좋겠습니다.




* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


크리에이티브 커먼즈 라이선스이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.


[출처: http://blog.lgcns.com/1363]

2017
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 조회수 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 3245 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2720 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 2669 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 15090 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 15023 2018-04-26
284 오픈소스 개발자의 단짝 친구 깃(Git) 그리고 깃허브(GitHub) OSS 3926 2017-10-24
283 [9월 공개SW 월간브리핑] NIPA, 하반기 다양한 공개SW 참여 행사 풍성 OSS 1753 2017-10-11
282 [2017년 9월 기준] 클라우드, 빅데이터 분야 공개SW 솔루션 리스트 file OSS 1810 2017-09-25
281 [8월 공개SW 월간브리핑] 리눅스재단, 공개SW 채용 인기분야는 클라우드 OSS 1829 2017-09-05
280 소스코드와 오픈소스 OSS 8638 2017-08-24
279 Pro Git (Second Edition) 한글번역본 file OSS 7015 2017-08-16
278 [7월 공개SW 월간브리핑] 금융권, 리눅스 운영체제 점유율 상승 추세 OSS 2988 2017-08-04
277 오픈소스 언어로 만나는 데이터 분석, ‘파이썬’과 ‘R’ OSS 2975 2017-08-01
276 [Github Trend ①] 2016년 깃허브 활동 현황과 트렌드(2) - 2016 깃허브 Top10 OSS 2978 2017-07-26
275 [Github Trend ①] 2016년 깃허브 활동 현황과 트렌드(1) OSS 3043 2017-07-25
맨 위로
맨 위로