SW개발의수학적본성2021. 8. 14. 10:43

 소프트웨어 개발은 그 기원을 튜링 머신에 두고, 튜링 머신은 기계라는 것에 대한 수학적 탐구를 위해 앨린 튜링이 만든 것이다. 그리고 많은 사람들이 현세에 소프트웨어 개발업에 종사하면서 이러한 튜링 머신 체계에 나도 모르게 익숙해지게 된 것은 또 시대의 흐름에 따른다.

[튜링 머신을 고안한 앨런 튜링, 영국의 수학자이자 엔지니어]

 

 이 상황속에 이 어려운 튜링 머신을 몸으로 체득한 이들이 바로 소프트웨어 개발자이다. 소프트웨어 개발자들은 논리를 설계하고 구현한다. 그리고 이들은 자연스럽게 과거의 수학자들이 했던 고민들을 마주하게 된다. 특히나 극단까지 최적화하려고 노력할수록 더욱 두드러진다.

 

 그렇다. 최적화를 고민하는 소프트웨어 개발자는 언제나 수학자들의 고민을 만나게 된다.

 

 이 둘 사이에는 과연 무슨 관계가 있길래 그러할까? 알고 보면 사실은 답이 매우 가까이에 있는데, 수학자과 소프트웨어 개발자들은 어쩌다보니 매우 다른 영역에서 일을 하게 되었고 서로 대화하기도 어려운 처지다. 따라서 필자는 이 둘의 관계 속에 깨달은 사실을 전개해보고자 이 카테고리를 시작한다.

 

 이 블로그에 이미 서술한 내용의 일부 재 편집과 그리고 추가라고도 볼 수 있다. 아래 주요 토픽들에 대해서 좀 읽기 편하게 순서를 뒤바꾸어 구성해보려고 한다.

 

 1. 맨 먼저 수 체계가 탄생한 배경 속에서 대칭과 그것을 구현하는 관점에서 바라보는 것에 대해서 논한다.

     

 2. 압축과 정보량에 대한 섀넌의 정보이론을 잠깐 돌이켜보면서 인코딩과 최적화된 압축에 대해 논한다.

 

 3. 소수(prime number)가 소프트웨어 개발에 등장하는 이유를 위의 최적화와 암호관점에서 논한다.

 

 4. 무한과 이산량에 대해서 소프트웨어 구현의 관점에 대해서 논한다.

 

 5. 랜덤과 그 구현 및 양자 역학에 대하여 논한다.

 

 6. 세상이 기계적 시뮬레이션이라는 것과 그 구현에 대해서 논한다.

 

 7. 정리한다.

 

처음 접하는 이들은 어려워보이겠지만 최적화된 구현을 고민하던 소프트웨어 개발자라면 하나하나 따라가보면서 이런 것들이 숨어있었다는 사실을 알게 될 것이다. 이런 유사한 설명을 들은 적이 없기 때문에 이러한 접근이 자연의 수학적 본성을 이해하고 소프트웨어 개발에 더 흥미를 갖을 수 있는 원동력이 되길 바란다.

 

[소프트웨어 구현과 수학은 어떤 관계를 지닐까?]

 

반응형
Posted by 작동미학