소프트웨어 엔지니어 또는 개발자는 수학을 얼마나 잘해야 해?

2023. 2. 15. 00:00SE 에세이

소프트웨어 개발을 너무 어렵게 생각하지 않았으면 좋겠어. 사실, 초등학교 수준의 수학 지식만 있어도 개발할 수 있는 분야도 많아.

수학이 중요한 분야와 덜 중요한 분야는 다음과 같아. 아래 분야를 한번 살펴봐.

수학이 중요한 분야

  • 게임 개발: 3D 그래픽스, 물리 엔진, 렌더링, 셰이더, 애니메이션 등
  • 인공지능 및 머신러닝: 선형 대수학, 확률론, 최적화, 통계 등
  • 암호학 및 보안: 수학적 알고리즘, 해시 함수, 암호화, 해독 등
  • 로보틱스: 물리 엔진, 머신비전, 키네마틱, 다이내믹스 등


수학이 덜 중요한 분야

  • 웹 개발: 웹 디자인, 데이터베이스, 프런트엔드 개발, 백엔드 개발 등
  • 모바일 앱 개발: 디자인, UI/UX, 클라이언트-서버 통신 등
  • 소프트웨어 테스트: 테스트 계획, 테스트 케이스 작성, 버그 추적 및 보고 등
  • 개발 운영 및 관리: 릴리즈 관리, 서버 관리, 모니터링, 로그 분석 등

위 분야를 보면 알겠지만, 한국 소프트웨어 개발자의 대다수는 수학이 덜 중요한 분야에서 일한다고 보면 될 거야. 심지어 인공지능 분야도 데이터 처리 또는 인공지능 모델을 활용하는 분야는 수학적 지식이 거의 필요하지 않아.

이렇게 말해서 수학적 지식이 필요 없다는 건 아니야. 일하다 보면 수학 지식이 필요한 경우가 간혹 등장해. 만약 그런 일을 만났다면, 개발자로 잘 성장하고 있다는 증거가 될 수 있겠지. 그럴 때는 수학을 공부해 주면 좋아. 실제 문제를 만나고 해결하고 있을 테니, 학생 때보다는 더 쉽게 배울 수 있을 거야.

또한, 수학은 못했더라도 논리적으로 생각하는 훈련을 계속하길 바래. 개발자로 성장하려면 반드시 필요한 능력이니까.

그리고, 사실 제일 중요한 건 수학이 아니야. 그것은 문제해결 능력과 학습능력이야. 모든 것을 미리 다 알고 일하는 사람은 없어. 새로운 문제를 만나면, 그에 필요한 지식을 효율적으로 학습해서 해결을 해내야 해. 시험 보는 거 아니라서, 한 번의 시도로 해결하지 못해도 돼. 해보고 안되면 부족한걸 다시 배우고 또 시도하고, 실패하고... 그러면서 해결해 내면 돼. 다들 그래. 생각만큼 대단하지 않아.

사실, 진정 대단하다고 할만한 능력은 끈기, 집요함, 근성. 뭐 이런 거라고 볼 수도 있어.

한번 도전해 보길 바래!
끝.

* 바래:바라 = 짜장:자장