2015년 8월 18일 화요일

프로그래밍 언어의 필요성과 코드 관리 방법

데이터를 가공하고 관리하는 툴들은 정말 많다. 용도에 따라 다양하고 강력한 툴들이 존재한다.
하지만, 툴로만 해결 하기에는 제약으로 인한 비효율적인 상황이 자주 발생된다.

UI적으로 해결이 안되는 부분에 대한 고민은 "액셀의 VB 매크로"가 대표적이다.
최근에 블로깅한 나임(KNIME)에서도 외부 확장 프로그램 언어 노드를 통해서, 데이터를 다루기 위한 만능 툴을 만들었다.

데이터를 다루는 사람이라면 어떤 식으로든 프로그래밍 언어에 대한 깊은 이해가 필요하다고 예기하고 싶다.

생각 (THINK) => 프로그램 언어 (LANGUAGE) => 응용 프로그램 (APP) => 데이터 다루기 (DATA)

* 자연 속에 현상을 유심히 관찰한 그 경험들이 프로그래밍에 반영된다.
* 프로그래밍 경험을 통해서 응용 프로그램들을 더 잘 이해하고 다룰 수 있다.
* 만들어진 프로그램에는 제약이 발생하고, 해결을 위해서는 프로그램을 만들 필요가 있다.

KNIME에서 프로그래밍 언어를 사용한 것과 UI만을 이용한 것,두 가지 방식을 통해서 부연 설명을 한다.
작은 단위로 모듈화 된 것은 복잡한 프로젝트에서 장점이 될 수 있지만, 논지는 구현해야할 새로운 기능(예제, 피봇팅)에 있다.
UI 기능을 통해서 피봇(PIVOT)을 하면, PIVOT에 대한 UI 용어를 이해해야 하고, 귀찮을 만큼의 마우스 클릭이 필요하다.
반면, 프로그래밍 언어를 사용하면, 익숙한 언어를 통해 PIVOT 부분을 한 줄로 표현할 수 있다.
CODE# out = df.pivot_table(index='time',columns=['server_ip','item'],values='temp')
심플한 예제지만, 이 것이 말하는 편의성에 대해서는 각자의 상상에 맡겨 본다.
그리고, 툴에서 제공되지 않는 기능이 필요할 때는 이 것이 툴의 봉인을 불어 줄 것이다.

프로그램 언어를 한다는 것은 코드를 관리해야 한다는 필연을 끌어내고, 코드 관리를 위한 툴을 익힐 필요가 있다.

리누스 토발즈에 의해 고안된 GIT라는 툴이 있다.  개발자들은 누구나 아는 툴이지만, 데이터를 다루는 사람에게는 생소할 수도 있다.
GIT의 대표적인 온라인 서버인  GITHUB와 BITBUCKET를 활용해 보자.

* 개인적인 코드는 무료로 개별(PRIVATE)적인 저장소 (REPOSITORY)를 제공하는 BITBUCKET을 사용한다.
* 많은 유저에게 오픈하고 공동 작업을 진행 할때는 더 다양한 기능과 많은 사용자들이 있는 GITHUB를 사용한다.

모두 GIT을 기반으로 함으로, 사용 방법은 동일하다.

0 개의 댓글:

댓글 쓰기