OS를 XP에서 윈도우7로 새로 설치했습니다. 항상 느끼는 거지만 OS를 새로 설치하고 기존에 사용하던 프로그램을 새로 설치하는 것은 상당한 작업량입니다. 데이터 수집, 가공, 분석, 그리고 시각화를 위해서는 많은 프로그램들이 필요합니다. 데이터 분석을 위한 도구들을 정리해 보기로 마음 먹었습니다. 그 도구들을 소개합니다.
Microsoft Office 프로그램
숫자를 다룬다면 Excel
너무나 유명한 스프레드시트 프로그램입니다. 회사에서든 집에서는 숫자를 다루는 대부분의 작업을 엑셀로 합니다. 엑셀을 워드프로세스로 사용하는 것도 좋습니다. 엑셀도 다양한 함수와 VBA라는 프로그래밍 언어를 제공하고 있어 왠만한 데이터 분석은 엑셀만 이용하면 충분합니다.
스프레드시트 프로그램은 셀에 데이터를 입력하는 데 엑셀 2003에서는 약 1700만개(65536행 X 256열)를 입력할 수 있었지만, 엑셀 2007로 넘어오면서 이 개수가 약 172억개(1048576행 X 16384열)로 늘었습니다. 하지만 라인수가 몇 만 개만 되어도 리소스를 엄청 잡아먹어 불편한 점은 있습니다.
<엑셀로 만든 도서구입 목록>
<엑셀로 만든 블로그 Contents Calendar>
개인이 사용하기에 부족함이 없는 Access
마이크로소프트 오피스에 포함되어 있는 관계형 데이터베이스 시스템입니다. 테이블 설계 및 입력 간편하고, 다양한 쿼리를 사용할 수 있으며, 댜양한 폼과 보고서를 쉽게 만들수 있습니다. 가계부를 8년 째 쓰고 있는데, 엑셀을 이용하다가 데이터가 많아지고, 항목이 변경되면 수정이 불편해 지금은 엑세스를 이용합니다.
<엑세스로 만든 가계부>
파이썬, IDE 그리고 라이브러리
쉽고, 빠르고, 강력한 파이썬
페이스북의 데이터 과학자 채용공고를 보면 이런 항목이 있습니다. 'Python 또는 PHP와 같은 최소한 하나의 스크립트 언어를 자유롭게 사용할 것(Fluency with at least one scripting language such as Python or PHP)'.
파이썬은 플랫폼이 독립적이고 동적타이핑이 가능한 대화형의 스크립트 언어입니다. 배우기 쉽고 강력해 스크립트 언어의 지존이라고 불립니다. 구글, NASA 같은 곳에서 사용하고 토렌트, 마야 같은 프로그램들이 내부적으로 파이썬을 이용하고 있습니다.
데이터 분석을 위해 파이썬을 사용하기 위해서 Ipython, Numpy, Scipy, Pandas, Matplotlib, Beautiful Soup 등 다양한 라이브러리들을 사용할 수 있습니다. 각 항목에 대한 링크는 제 오픈캐스트에 걸어 두었습니다.
<파이썬 코드로 구현한 삼각함수표>
파이썬 통합개발환경(IDE), Ipython Notebook
파이썬은 기본적으로 IDLE이라고 불리는 IDE를 제공합니다. 간단한 작업에 사용하기에는 불편한 점이 없지만, 작업이 커지면 가독성 있는 폰트사용, 소스코드 입력과 실행 등에 다소 불편한 점이 있어 좀 더 강력한 IDE를 찾게 됩니다. Wing IDE, Eclipse+Pydev, Ipython Notebook 등이 많이 사용됩니다.
데이터 분석 목적으로 파이썬을 사용하는 경우는 Ipython Notebook을 추천합니다. Ipython에서 제공하는 Qt Console과 Notebook을 함께 사용하면 데이터 분석을 위한 최적의 환경을 구성할 수 있습니다.
<Ipython 노트북 캡쳐 : nbviewer.ipython.org>
R 프로그래밍
R 프로그래밍 언어는 SPSS, SAS와 같은 통계 계산과 그래픽을 위한 오픈소스 프로그래밍 언어이자 패키지 입니다. 파이썬이 일반적인 사용목적을 위한 도구라고 하면 R은 통계계산에 특화된 프로그래밍 언어라 통계학자와 사회과학과 이공계열의 각 분야 연구자들이 주로 사용합니다. R역시 기본적으로 IDE환경을 제공하지만 RStudio라는 통합개발환경을 주로 사용합니다.
<R Studio 캡쳐 : RStudio.com>
그래픽 소프트 웨어
데이터 분석은 분석 대상을 찾는 단계에서 레포팅 하는 단계까지 여러 프로세스로 구성됩니다. 전체 프로세스에서 시각화가 차지하는 부분도 상당합니다. 어쩌면 분석 자체 보다는 그 결과를 '어떻게 사용자에게 이해하기 쉽게 전달하느냐?'가 더 중요할 지도 모릅니다. 그러기 위해서는 데이를 보기좋게 꾸미는 것도 중요합니다. 일반적인 프로젝트에서는 별도의 디자이너가 이 작업 수행하게 됩니다. 하지만 간단한 포토샵과 일러스트레이터는 배워두면 유용하게 사용됩니다.
<포토샵으로 만든 블로그 포스트 메인이미지>
<일러스트레이터로 만든 인포그래픽>
데이터베이스 도구
최근에 수집되는 데이터는 기본적으로 대량입니다. 이러한 대량의 데이터를 다루기 위해서는 데이터를 체계적으로 정리하고 수집,보관한 뒤 필요한 데이터를 적절하게 뽑아서 사용할 수 있어야 합니다. 그래서 데이터베이스의 테이블을 설계하고, 쿼리를 자유롭게 사용하는 능력이 필요합니다. 테이블 설계과 쿼리를 사용하기 위한 도구도 다양하지만 저는 Exerd와 SQL Developer를 사용합니다.
데이터베이스 설계 나에게 맡겨, Exerd
Exerd는 토마토 시스템즈에서 개발한 이클립스 기반의 지능형 E-R 도구입니다. 개인사용자는 무료로 이용할 수 있습니다. 현재 Oracle, Microsoft SQL Server, IBM DB2, MySQL을 대상으로 리버스/포워드 엔지니어링과 물리적 특성 편집을 지원하고 있습니다. 초보자도 데이터베이스 설계를 직관적이고, 쉽고, 빠르게 할 수 있습니다.
Exerd 샘플 이미지<출처: 홈페이지>
쿼리 이거 하나면 충분, Oracle SQL Developer
SQL Developer는 Oracle에서 제공하는 SQL 개발도구입니다. 오라클 데이터베이스와 MS Access에 대한 데이터베이스 접속을 지원합니다. 데이터베이스에서 여러가지 쿼리를 통해 자유자재로 데이터를 추출하고 가공할 수 있도록 도와줍니다.
<SQL Developer로 엑세스 Northwind 데이터베이스에 접속>
"데이터 분석을 하기위해 알아야 하는 것이 이렇게 많아?"라고 생각하시는 분이 있을 지도 모르겠습니다. 중요한 것은 얼마나 재미를 느끼고 노력하느냐에 달린 것 같습니다. '배워서 할려면' 어렵습니다. '하면서 배우면' 쉽습니다. 설치해보고 하나씩 해보면 금방 익숙해 집니다. 우리의 능력은 우리가 생각하는 것보다 훨씬 뛰어납니다.