무엇을 프로그래밍으로 해결할 수 있는지를 아는 것. 일단 그것을 알면, 구현은 어떻게든 하게 되니까.
컴퓨터로 하는 지겨운 작업을 프로그램을 작성해서 간단하게 해결할 수 있다는 것을 아는 것은 중요하다. 프로그램으로 무엇을 할 수 있고, 무엇을 할 수 없는지를 명확히 알고 있으면 쓸데없이 시간을 낭비하는 것을 방지할 수 있다. 컴퓨터로 할 수 있는 일은 명확하다.
다익스트라였나, one, two, or for. 세 번 이상이면 반복문인 for라는...
엑셀 파일 100개가 있다고 해보자. 각각에는 1개의 sheet만이 있고, 그것을 갖고 분산형 그래프를 그려야 한다고 하면? 100개를 다 열어서 그리고, 그림으로 저장하고를 100번? 아니지. 이럴 땐 프로그래밍. 만약 엑셀 파일에 있는 두 개의 데이터 집합에 대해 t-test를 해야 한다면? 이럴 때도 프로그래밍.
ms-word 문서에 표가 500개 있는데 표의 배경색이 노란색이라서 프린트하기 나쁘다고 해보자. 500개를 일일이 다 배경색을 없애야 할까? 아니지, 이럴 때도 프로그래밍.
파일 이름이 1.txt 부터 시작해서 번호가 차례대로 커져서 10003030.txt 까지 있는데, 이것을 1000 단위로 별도의 폴더에 넣고 싶다고 해보자. 파이썬으로 20줄 내외에서 끝나겠군.
pdf 파일에 있는 그림을 뽑아내고 싶다면? 일일이 열어서 capture? 아니지, 이럴 때도 프로그래밍. pdf를 html로 바꾸거나 pdf에서 그림을 뽑아내는 프로그램은 공개되어 있다.
지금 특정 ftp 싸이트에서 사람에 관련된 데이터만 골라서 갖고 오는 것을 하고 있는데, 역시나, 파이썬으로 20줄 정도에서 끝나는구나 :)
그림 파일의 크기를 가로/세로 비율을 유지하면서 폭을 500 픽셀로 줄이고 싶다면? 일일이 포토샵 열어서 조절해야 할까? 아니지, 이럴 때도 프로그래밍. (이런 건 100줄 내에서 끝나지)
하나 생각할 것은, 프로그래밍으로 어떤 작업을 자동화를 한다고 할 때 100% 완벽하게 하기는 힘들지만 대략 80~90% 정도는 가능하다는 것.
학부 때 프로그래밍 알바를 한 적이 있는데, 교수님 왈, "대학원생 시켰더니 3일 정도 하더니 눈아파서 못하겠다고 해서 프로그램으로 어떻게 할 수 있나 해서..." 처음에 요구한 기능을 전부 구현한 후, 어떤 과정에 어떻게 쓰이는지 보여달라고 했다. 그랬더니 뭔가를 이리저리 실행시키고 갖다 붙이고 어쩌고 해서 나온 결과를 우리가 만든 프로그램에 넣는 것이 아닌가. 내 친구와 나는 그것을 보고, "그것도 저희가 짤께요."
난 C++(MFC), python, delphi, 그리고 가끔 VB나 VBA를 사용하는데 각각의 언어마다 약간의 용도가 다르다. C++은 가장 자주 사용하며 주로 연구와 관련되거나 파일 처리가 많은 것, 혹은 GUI가 들어가거나 빡쎈 작업 - 가령 XML 을 DOM에 올리거나 하는 것처럼. 파이썬은 지금처럼 간단히 정규식 써서 할 때나 ftp나 cgi, http로 파일 받아오는 것을 할 때, 혹은 파일 이동이나 파일 이름 변환 같은 거 할 때. 파이썬은 라이브러리가 많아 좋다. 델파이는 컨트롤이 많아 좋다. 요 전에 만든 미몹 블로그 백업 툴도, C++로 mht 파일로 저장하는 방법 찾다찾다 안 나와서 델파이로 찾아보니 나와서 그냥 델파이로 한 것. 또는 mp3 재생하거나, 여튼 컨트롤이 많아서 어쩔 수 없이 컨트롤을 써야 할 때 델파이로 작성한다. 이 블로그에 있는 영어 듣기 반복 프로그램도 프리미어 가지고 듣기 공부하다가 짜증나서 델파이로 만들어 버렸다. 물론 이걸로 듣기 공부해서 시험 봤다. VB는... 해 본 지가 꽤 오래되었군. VBA는 위에서 ms-word에서 표 배경색 바꾸는 것 같은 때.
참고로 이미지 라이브러리는 CxImage를 쓰고 있는데, 여튼 필요한 기능 관련된 라이브러리는 찾아 보면 왠만하면 다 나온다. 정 안나오면 CPAN으로 가거나... 근데 펄은 영... gd는 확실히 편하긴 하던데.
여튼 이런저런 이유로 인해 프로그래밍을 해보고자 하는 이에게 언어를 추천한다면 단연 파이썬.
2009-01-30 06:17
- 미몹 백업함.
'컴퓨터 > 전산, 그 외' 카테고리의 다른 글
스크립트 언어, 좋더라 (0) | 2010.09.29 |
---|---|
C/C++ 을 처음에 하지 마라 (65) | 2010.09.08 |
나의 친구 Segmentation fault (0) | 2010.06.04 |
프로그래머에게 겸손이란 (0) | 2010.01.13 |
개인적인 코딩 규칙 (0) | 2009.12.27 |