2018년 3월 22일 목요일

,

빅데이타 분석에 쓰는 프로그램, 무엇을 배우면 좋을까요?



빅데이타를 처음 다루는 사람들이 가장 많이 하는 질문들 중 한가지는 "빅데이타 분석을 위해 어떤 프로그램을 배우면 좋을까요? 입니다. 어떤 분야이건 전문가가 되려는 초보 입장에서는 도구 선택이 매우 중요한 일이고 또한 가장 판단하기 어려운 일일 것입니다. 이 질문의 답은 전쟁터에 나가려는 무사가 어떤 검을 골라야 할까요?에 대한 답변과 비슷합니다.  


                        Image result for 일본도                

                              일본 사무라이 검                vs          중세 유럽 도

이 질문에 대한 적절한 답은 1)본인이 빅데이타를 가지고 하고자 하는 바 (수집/관리/분석/활용)가 무엇인가, 2) 다루고자 하는 데이타의 포맷(텍스트/이미지/음성 등)이 무엇이고, 3)본인의 분석 능력과 성향까지도 고려하면, 상황에 따라 다르다 입니다. 고대 체구가 작은 일본 무사들은 종잇장 처럼 얇고 가벼운 검을 썼고, 체구가 큰 북유럽 사람들은 크고 무거운  검을 좋아한 것 처럼, 본인의 성향과 능력을 고려해서 SW를 선정하셔야 합니다.


현재는 꽤 여러 sw들이 빅데이타 분석에 사용되고 있고, 빅데이타 역시 성격이 매우 다양하기 때문에 어떤 sw가 무조건 좋다고 손을 들어주기 어렵습니다. 또한, SW도 그때그때 붐이라는 것이 있어서 10년주기로 소위 대세라고 할 수 있는 데이타 분석 sw는 계속 바뀌어 왔습니다. 


SW를 처음으로 익혀야 하는 사람 입장에서는 그때 그때 다른 sw를 익히고 사용한다는 것은 현실적으로 시간과 노력을 생각해 볼때 매우 부담스러운 일이기에 sw 선택을 하는데 도움을 드리기 위해 우선 사람들이 많이 다루고 있는 SW들을 간단히 소개하고, 선택시 필요한 가이드라인, 그리고 개인적 추천을 하자면 다음과 같습니다. 


Q. 우선, 경영학에서 주로 쓰고 있는 통계 분석 패키지는 어떨까?

경영학에서는 80년대 부터 SPSS나 SAS라는 자료 분석 통계 패키지를 지금까지도 애용하고 있습니다. 학교에서는 SPSS가 우세였고, 기업에서는 SAS를 많이 활용해 오고 있습니다. 2000년대 이후에는 R이라는 프로그램이 가장 많이 이용되고 있습니다. SPSS나 SAS는 빅데이타를 고려한 기능들이 많이 개발되어 이것들을 사용하는 것도 나쁘지 않습니다만 현재 새로 배우려는 사람에게는 다음 세가지 이유로 추천하지 않습니다. 

   첫째, 기존 데이타와 달리 빅데이타의 경우는 다양한 곳에서 만들어지고 있는 데이타를 자유롭게 수집하고 편집하는 것이 매우 중요한데 통계 분석을 주목적으로 개발된 프로그램들은 데이타 크롤링을 하기가 불가능하거나, 매우 어렵다는 결정적 한계를 가지고 있습니다. 
   두번째 이유는 빅데이타는 대부분 산수 연산이 안되는 비메트릭 데이타(npnmetric data)인 반면에, SPSS나 SAS는 전통적 메트릭 데이타를 다루는 패키지입니다. 
   마지막으로, SAS나 SPSS는 일반인이 자유롭게 본인의 분석 코드를 추가 공유할 수 없는 구조라 가장 최신 분석기법을 바로 바로 제공하지 못하는 경우가 매우 많습니다. 반면에 빅데이타를 기반으로한 분석은 아직 초기 단계이기에 최신 분석이 매우 중요합니다. 그래서 결론은... 통계패키지는 일반적으로 추천하지 않습니다. 단, 데이타 분석을 위해 주로 만들어진 프로그램이지만, 빅데이타에서 매우 활발히 사용되고 있는 SW가 있습니다. 바로 R이라는 SW입니다. R은 비교적 간단한 수준의 텍스트 크롤링도 되며, 최신 분석 방법론이 개발되면 가장 먼저 해당 분석을 할 수 있는 코드가 공유되고 있기에 자료 분석을 주로 하려는 경우에는 R이 현재로서는 가장 추천할만한 SW입니다.   


Q. 그럼 전문 프로그래머들이 사용하는 프로그램 언어는 어떨까?


빅데이타 수집과 재가공, 분석을 하나의 SW로 하고자 한다면, 특히 데이타를 직접 수집해야 하고, 데이타를 재가공해야 하는 경우 (특히 이미지등 비정형 데이타를 재가공하거나), 또는 정보를 다양하게 다른 사람과 차별화된 고유의 방법으로 제시(Visualization)하는 것이 중요하다면, 전문 프로그래밍 언어를 사용하는 것이 바람직합니다.  이러한 SW들은 워낙 많아서 분야 마다 다른 프로그래밍 언어들이 인기를 끌고 있는데, 80년대 부터 사용해온 C 또는 C++같은 프로그래밍 언어를 사용해도 좋고, 90년대 후반 인터넷 발달과 함께 급성장한 Java나 Javascript, 그리고 2010년 이후 매우 인기있는 Python등 중에서 한가지를 선택하기를 권합니다.  

하지만,  프로그램 언어의 가장 큰 단점은 사용 편의성이 일반적으로 떨어지고, 익히기까지 많은 시간과 노력이 필요합니다. 익숙해진다고 그리 쉬운 것도 아니고 생각보다 많은 시간이 들어가게 됩니다. 때문에 프로그래밍 언어를 이용하려 할 경우에는, 가능하면 이 중 한 가지를 신중하게 선택해서 익히기 바랍니다. 이 중에서 한가지를 선정한다면 현재 가장 인기 있는 파이썬(Python)이 적절합니다. 파이썬은 매우 직관적인 언어여서 익히기도 작업하는 동안에도 "단순하고" "쉬운" SW입니다. 또한 웹 관련된 분야에서 쓰기에 아주 적절한 프로그램입니다. 

결국, 프로그래밍언어로는 파이썬이고 통계 SW중에서는 R이 빅데이타 분석에 좋다는데, 이 중에서 하나 만을 익히려면 무슨 프로그램을 써야 하는가?

다양한 데이타를 수집하고 (특히, "인터넷 상에서 텍스트 데이타를 쉽게 수집하는게 가장 중요하다면), 앞으로도 쏟아져 나올 다양한 비정형 데이타를 다루기 바란다면, 현재로서는 " 파이썬이 가장 바람직합니다. 왜? 한마디로 말하면 이 프로그램이 가장  "쉽기" 때문입니다. 코드를 짜기도 관리하기도 쉽고 직관적입니다. 프로그래밍이 쉬우면 관리도 쉽습니다. 또 한가지 중요한 이유는 파이썬은 R과 달리 일반 범용 SW로 앞으로 어떤 일을 하건 파이썬을 가지고 대부분 할 수 있습니다.  

하지만, 이 프로그램은 데이타 분석에도 잘 쓰이기는 하지만, 최신 분석 관련 함수들은 R만큼 충분하지 않습니다. 만약 수집과 관리 보다는 다양한 분석 특히 최신 분석 기법을 많이 활용하고자 한다면, R이라는 프로그램을 이용하세요. 하지만, 앞으로도 나타날 다양한 빅데이타를 수집하고 가공하는 부분에서는 여전히 프로그램 언어가 바람직합니다. R은 자료 추출 중 텍스트 크롤링이 가능하기는 합니다만, 실제 해 보면 외국언어(문자)를 다루는데 (예를 들어 텍스트 문자를 크롤링했을때 괴상한 문자로 깨져서 나타나는 경우)가 있습니다. 물론 이것을 해결하는 방법이 있기는 합니다만. 또한, R이 가지고 있는 파이썬 대비 또 한가지 강점은 시각화 기능이 파이썬 대비 월등합니다. 자료를 시각화하는 일을 많이 할 경우라면 R이 파이썬 보다 분명 좋은 프로그램입니다.  


결론적으로 말하자면, 다양한 소스로 부터 데이타를 수집하고 전처리 과정을 하기에는 파이썬이 좋고, 주어진 데이타를 분석하고 시각화 할 경우에는 R을 익히는 것이 바람직 합니다. 

필요에 따라 위 두가지 SW를 다 익히여야 하는 큰 부담이 있는데, 이것을 피하고 시작하는 사람 입장에서 경영 전공자 또는 기획, 마케팅 분야에서 일하는 사람이 한가지 SW만 사용하고 싶다면 R을 사용하세요. 왜냐고요? 우리는 지금 빅데이타 자체를 다루는 것이 목적이 아니라 이 데이타를 분석하고 활용하는 것이 목적이니까요. 시작하는 입장에서는 R을 우선 공부하시고, 좀더 사용하다 자료 수집이나 비정형 자료에서 수치화 작업, 또는 정보를 시각적으로 제시(visualization)해야 하는 경우가 많아지면 나중에 Python을 익히시기 바랍니다.  


Q. 마지막으로, 특정 빅데이타 분석을 위해 개발된 전문 특화 프로그램들도 많이 있던데?

이건 추천하지 않습니다. 두가지 이유 때문입니다. 첫째, 빅데이타는 계속 다양한 형태의 데이타가 나오고 있고, 분석 방식 역시 매우 다양합니다. 더 중요한 것은 이것들이 매년 큰 변화를 겪을 것이고 새로운 유형의 데이타가 출현할 텐데, 특화된 프로그램은 이러한 변화를 제대로 따라가지 못하는 경우가 대부분입니다. 빵 자르는데 특화된 칼로 갑자기 회 뜨면 회가 잘 떠질거요? 그럼 빵 자르는 칼 따로, 회뜰 때 쓰는 칼 따로 사서 익히고... 그 다음에 질긴 고기를 요리해야 한다면 또 그때 가서 고기용 칼을 사실건가요? 매번 돈으로 해결하시는 분도 있겠지만, 칼을 그때 그때 직접 갈아서 용도에 맞게 쓰는 것이 바람직합니다. 둘째, 그래도 전문화된 프로그램을 사용하면 간편하고 알아서 다 처리해주지 않나요? 빅데이타 전문가가 아니라 가볍게 사용하는 비 전문가라면 적절합니다. 하지만 빅데이타를 익히는 이유가 무엇인가요? 여러분이 쉽게 사서 쓸 수 있는 칼이라면 이미 이 칼은 남들도 쉽게 구해 쓰고 있는 칼입니다. 이 칼은 여러분이 전문가로서 경쟁력을 키우는데 적어도 큰 도움이 되기는 어렵다는 이야기입니다. 이런 데이타를 단순히 활용해서 하고자 하는 일을 그냥 해치우는 것이 목적이라면 차라리 소셜메트릭스(social metrics)같은 특정 데이타 분석 특화 서비스를 제공하는 기관을 통해 도움을 받는 것이 현실적으로 시간과 노력을 줄이는 방법입니다. 

마지막으로, 엑셀로 빅데이타를 다룰 수는 없을가요? 하고 질문하고 싶은 분들이 있을 겁니다. MS 엑셀은 사용자 편의성이 뛰어나고 많은 사람들이 익숙하기에 이것만을 이용해서 할 수만 있다면 최고의 선택이라고 할 수 있겠습니다. 하지만, 한마디로 말하면 엑셀은 검으로 치면 단도 수준입니다. 엑셀은 데이타 사이즈에 한계가 있고, 대량의 데이타를 관리하기에는 메모리를 너무 많이 사용하기에 주 분석 프로그램으로 쓰기 어렵습니다. 하지만, 데이타로 부터 추출한 정보를 시각화해서 정리하고 보여주는 데에는 매우 편리하기에 분석 정리 해석시 추가로 사용하기를 추천합니다.
Share this post: