'프로그래밍'에 해당되는 글 1건

  1. 2013.06.24 수학 카테고리 생성

수학 카테고리 생성

2013. 6. 24. 12:52 from 수학

프로그래밍 공부 정리를 위해 수학 카테고리를 생성했습니다.


보통 수학을 하는 사람은 프로그래밍을 잘한다는 말이 있죠? 학생 시절, 그리고 직장 생활을 하며 수학이라는 학문과 프로그래밍과의 접점을 만들 기회가 없었던 시기를 뒤로 하고, 드디어 왜 수학이 프로그래밍에 필요한지를 이제야 알게되었습니다. 항상 공부를 하면서 '지금 하는 공부는 어디다 쓰이는거지?' 라며 의문을 던지며 배움의 길을 걸었습니다. 이런 물음을 한 이후 그 해답을 찾은 학문은 지난 10년 동안 하나씩 늘려왔지면, 손에 꼽히는게 몇 개 되지 않네요. 


수학이 돈 계산 뿐만 아니라 프로그래밍의 접점을 이해하는데 수 많은 시간이 걸렸네요. 지식으로는 그래픽 관련 계산을 할 때 필요한 것이라고만 어렴풋이 알고 있었지, 진정으로 이해하진 못했습니다. 아마 대부분의 프로그래머가 대학 학부 생활에 배운 수치 해석, 공업 수학은 왜 배웠는지도 모르고 지나가지 않았을까 합니다.


예전에 저보다 4~5년은 빨리 프로그래머의 길로 들어선 친구가 학생 때 하지 않았던 수학 공부를 직장에 들어가서 하나? 하는 푸념도 하긴 했습니다. 저도 직장에 들어와서 수학을 쓸 일이 없더군요. 비즈니스 로직을 짤 때도 수학이 필요가 없죠. 수학에 나오는 순서도만 있으면 모든 프로그램이 작성 가능하니까요. 지금 돌아보니, 그 친구가 프로그래밍에서 수학의 필요성을 일찍 깨우쳤다는게 조금 부럽긴 합니다. 


각설하고, 수학이 왜 필요한지 느끼게 된 경험을 기록하고 카테고리 생성 글을 마무리 할까 합니다. 


실제로 계기가 된 것은 ACM[각주:1] 문제를 풀면서 알고리즘을 작성하다가 직면한 문제때문이였습니다.

그거 아시나요? 알고리즘이라는게 이미 작성된 최적의 방법 뿐만 아니라, 답을 찾아가는 과정을 배우는 학문이라는 것을요. 저는 단순히 최적의 알고리즘을 이해하고, 그것을 조금 변경해서 사용하는 것이 알고리즘인 줄 알았습니다. 답을 찾아가는 과정을 도출해 내는 것이 더 비중이 큰 학문이라는 것도 최근에야 알게 되었습니다. 뭐 뒤늦게나마 깨닫게 됐으니 다행이죠. 


다시 이야기로 돌아가서 문제를 풀다가 규칙을 발견하게 됩니다. 하지만 여기서 그 규칙을 가지고 수식을 만들어야 하는데 수식을 어떻게 만들어야 할지 모르겠더군요. 간단한 x가 1, 2, 3, ... 식으로 증가했을때 그 결과가 1, 3, 5, 7, .. 이렇게 2씩 증가하는 수식을 구하는 간단한 것인데도, 어떻게 값을 뽑아야 할지 모르겠더군요. 그래서 등비수열이라는 단어가 떠올라 검색을 해보니, 실제로 저런 것을 등차수열 이라고 부르더군요. 나름 고등학교때까지 수학은 최상위권에 속해있었는데.. 시간엔 장사가 없다는 말처럼 수학 바보가 되어버렸습니다.


최근에 이미지 파일이나 텍스트 파일을 직접 다루는 프로그래밍을 조금씩 공부하다 보니, 실제 저런 경우를 은근히 접하게 되더군요. 이렇게 규칙을 발견하게 되고, 규칙을 일반적인 규칙으로 만들때 수학이 필요합니다. 아니 이것이 수학이죠.

간단한 것도 잊어버린 프로그래머가 수학의 필요성을 깨닫고 다시 학습하고 정리하기 위해 이렇게 카테고리를 생성합니다. 


뭐 이 글을 보시는 개발자의 절반 이상은 수학이 필요없을 수도 있습니다. 수학 없이도 먹고 살수 있습니다. 하지만 프로그래밍을 하면서 일정한 규칙을 발견하고, 그 패턴을 일반화해, 다른 곳에도 똑같은 규칙을 적용하는 프로그램을 개발을 하신다면 수학은 반드시 필요하겠죠. 간단히 예를 들면, 그래픽의 Blur 필터 효과(이미지 흐릿하게 만들기)와 같은 필터를 만드는데도 수학이 필요합니다. 이미지 처리엔 대부분 수학이 필요하시다고 보면 됩니다.


그럼 진지하게 수학을 정리해보겠습니다.(진지의 아이콘은 궁서체)



  1. ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered competitive programming competition among the universities of the world. The contest is sponsored by IBM. Headquartered at Baylor University, with autonomous regions on six continents, the ICPC is directed by Baylor Professor William B. Poucher, Executive Director, and operates under the auspices of the Association for Computing Machinery (ACM). [본문으로]

'수학' 카테고리의 다른 글

수열- 등차수열, 등비수열  (0) 2013.06.25
Posted by 빌리 :