프로그래머와 수학, 사고의 본질

yes24

최근 들어 수학과 점점 멀어지는 느낌이 들었다. 문제를 해결하는 과정에서 구현체나 라이브러리에 의존하는 빈도가 늘었고, 깊이 있는 사고보다는 탑다운 방식으로 빠르게 결론을 도출하는 데 집중하고 있었다. 덕분에 효율성은 높아졌지만, 반대로 수학적 사고에서 오는 즐거움은 점점 사라졌고, 내 안의 무언가가 메말라가는 듯한 기분이 들었다. 그런 갈증을 해소하고 싶어 이 책을 읽게 되었다.

🔹 개발자의 노동이 만든 편리함

개발자는 크게 세 가지 길을 선택할 수 있다.

  1. 회사에서 프로그램을 개발하며 문제를 해결하는 직장인 개발자
  2. 새로운 사업을 발굴해 프로그래머로서 문제 해결에 나서는 창업가
  3. 풀리지 않은 문제를 해결하는 연구자

이 책의 첫 번째 저자는 이 세 가지 길을 모두 경험한 독특한 인물이었다. 그는 오랜 기간 SI 개발자로 일했고, 알고리즘을 개발해 창업했으며, 이후 유명 대학원과 협업 연구까지 진행했다.

그는 “우리는 컴퓨터를 쓰는 것이 아니라, 개발자가 해놓은 프로그램을 쓰고 있다.”라고 말한다. 인공지능의 발전 역시 같은 맥락에서 이해할 수 있다. AI는 결국 개발자의 반복적인 노동을 대체하려는 흐름일 뿐, 개발자가 사라지는 것은 아니라는 것이다. 오히려 불필요한 노동이 줄어들면서 개발자가 본질적인 문제 해결에 집중할 수 있는 환경이 만들어질 것이라고 본다.

실제로 많은 개발 업체에서도 중·고급 개발자의 업무 퍼포먼스가 10배에서 많게는 50배까지 증가했다고 한다. 이런 변화를 보면, 저자가 꿈꿨던 시대가 이미 도래한 것인지도 모른다.

🔹 챗GPT가 존재하는 시대는 희망적이다

책에서 공통적으로 강조하는 부분은 수학을 잘하는 것이 결코 쉬운 일이 아니라는 점이다. 고민하고, 물어보고, 논의하는 과정이 반드시 필요하다. 하지만 이제는 GPT와 하루 종일 토론하며 수학을 탐구할 수도 있다.

수학을 배우려는 사람에게도, 이미 알고 있다고 생각하는 사람에게도 챗GPT 같은 도구는 큰 희망이 될 수 있다. 이제는 혼자서 막막하게 고민할 필요 없이, 끊임없이 질문하고 사고를 확장할 수 있는 환경이 마련되었다.

🔹 수학적 사고와 일반화 과정

책을 읽으며 가장 인상 깊었던 부분 중 하나는 일반화 과정에 대한 설명이었다.
어떤 문제를 해결할 때, 이미 존재하는 논문이나 사례를 통해 패턴을 찾아내고 이를 활용할 수 있다면 문제 해결의 가능성이 훨씬 넓어진다. 내 머릿속에서 풀리지 않던 문제가 다른 연구자의 아이디어를 통해 해결될 수 있다는 개념은 신기하게 다가왔다.

이 책의 저자는 강화학습과 뉴럴넷을 공부하다가 기존 강화학습보다 나은 알고리즘을 개발해 직접 증명했고, 결국 카이스트와 공동 연구까지 진행했다고 한다. 문제 해결에 대한 깊이 있는 접근이 가져다주는 결과물이 정말 놀라웠다.

🔹 프로그래밍의 결과물은 프로그래머의 상태다

책에서 특히 와닿았던 문장이 있다.

"제대로 돌아가지 않아 밤새는 것은 논리적으로 철저하지 못했기 때문이다."
"제대로 동작하는 프로그램은 그 자체로 수학적 증명일 수 있다."

코드는 곧 개발자의 상태를 반영한다. 요즘 내 코드 품질이 엉망이라는 점을 인정하지 않을 수 없었다. 철저한 논리와 사고의 깊이가 부족할 때, 결국 그 결과물이 코드로 드러나는 것이다.

🔹 수학은 마법이 아니다. 하지만 가능성을 넓혀준다

수학을 깊이 있게 공부하는 것은 단순히 공식과 이론을 외우는 것이 아니다. 그것은 가능성의 폭을 넓혀주는 과정이다.
수학적 사고를 키우면, 문제를 해결할 수 있는 선택지가 늘어나고, 사고의 깊이가 깊어지며, 결국 더 나은 프로그래머가 될 수 있다.

🔹 누가 읽으면 좋을까?

이 책은 프로그래밍과 수학의 관계를 이해하고 싶은 사람에게 유용하다.
실무에서 수학이 어떻게 활용되는지 직접적인 예시를 들어 설명하기 때문에, 수학적 개념과 실제 사용 사례 사이의 괴리감을 줄이는 데 도움을 준다.

예를 들어, 수치해석을 배우면서 “이걸로 도대체 뭘 하는 거지?”라는 의문이 들었던 경험이 있다면, 이 책이 그 답을 줄 수도 있다.

🔹 기억에 남는 명언

책을 읽으며 인상 깊었던 문장들을 정리해본다.

"버스에 올바른 사람들만 태울 수 있다면, 어디로 갈지는 그들이 알려줄 것이다."
"하고 있으면서 안 된다고 하는 사람은 없다. 안 된다고 하는 사람들은 죄다 안 하고 있는 사람들이다."
"더 이상 배울 것이 없을 정도로 많이 안다는 것은 얼마나 허망한 일이겠는가."
"무언가를 잘 하기 시작한다는 것은 그것에 대한 흥미를 잃게 된다는 것을 의미한다."
"답을 찾지 못하는 것은 질문을 오래 갖고 있지 못하고 포기하기 때문이다. 결국 '시간'의 문제이다."
"남이 1번 보고 알면, 나는 100번을 볼 것이고, 10번 보고 알면 1000번을 볼 것이다."


✍️ 마무리하며

이 책을 통해 수학적 사고의 중요성을 다시금 깨달았다.
개발자로서 반복적인 노동에 익숙해지는 것이 아니라, 본질적인 문제 해결 능력을 기르는 것이 중요하다.
AI와 자동화가 발전하면서 개발자의 역할이 변화하는 이 시점에서, 우리는 어떤 역량을 키워야 할까?..

'Book' 카테고리의 다른 글

2026년 스타트업을 준비하며 탐독한 책  (1) 2025.02.21
"Web Scraping with Python"을 읽자  (0) 2024.07.29