sonumb

일반화 하기. 본문

개발자 이야기

일반화 하기.

sonumb 2008. 1. 20. 17:28
 수학자들이 문제에 대한 Solution을 구하는 방법은, 그들이 어떤 문제를 풀고자 할 때 더욱더 일반적인 문제로 만들어 그것에 대한 해법을 구함으로써 처음에 풀려했던 문제에 대해 해답을 구하는 것이다. 이러한 방법의 장점은 한 문제만을 풀 수 있는 것이아니라, 그외 비슷한 문제들도 쉽게 답을 구한다는 것이다.

 프로그래밍도 이와 다를 것이 없다. 특정 Case에 혹한된 문제를 좀더 일반화 한 다음, 그 문제, 즉 일반화된 문제에 대해 상응하는 '일반화된 해법'을  제시한다. 그렇게 됨으로서 문제와 해답을 단순하게 만들고 비용과 노력, 편리함을 동시에 얻게 되는 것이다.
 
 그런데 막상 코딩을 하다 보면은 이러한 '일반화된 접근'을 쓰는 것이 아니라, 그때 그때 Code&Fix를 한다던가 Copy&Paste로, '책임감 없는 코드'를 만들어 낼때가 있다. 이러한 코드들은 거의 case by case 식으로 이뤄져, 나중에는 case 1.... case n: 까지 만들어내는 재난을 보게 된다.

  프로그래밍은 Art이자 Engineering이다.  Art에 일반화가 덧붙여지면 Engineering이 되는 것이다. Code&Fix와 Copy&Paste를 익히기 보다는 일반화하는 방법을 스스로 터득하는게 어떨까?
'Coder'에서 'Programmer' 내지 'Developer'가 된 나 자신을 발견할 것이다.. 
반응형