흔히 인간은 한계가 없다는 말을 합니다만.... 이건 극히 일부의 이야기 입니다.
인류의 문명이 발전하면서 지식의 양은 계속 늘어났지 줄어들지 않았고 현대에 들어서는 폭발적으로 지식의 양이 증가 하고 있습니다.
그러나 인간에게는 배울 수 있는 시간이 한정되어 있고... 지능도 동일하지 않죠.
조금만 복잡하면 이해하지 못하는 사람은 수두룩하게 널려 있습니다.
전문가입네 하는 사람도 한가지 분야만 잘알지 전공을 벗어나면 일반인 보다 못한 경우가 수두룩 합니다.
개인의 시간을 전공지식을 배우는데 썼지 일상생활의 상식을 배우는데 쓴게 아니거든요.
현대의 복잡한 기계들은 설계부터 개인의 한계를 벗어나 있습니다.
각각의 부품 설계자가 따로 있고 전체적인 그림을 그리는 사람은 극히 드문데....
인간의 수명은 한계가 있고 천재적인 기술자도 시간 속으로 떠나가고 새로운 세대는 천재가 알고 있는 지식을 0에서 부터 새로 배워야 합니다.
그럼 새로 배우는 사람은 천재의 100%를 이해하고 101%를 만들어낼까요?
보통은 개념만 익히고 거기에 자신의 생각을 더해 101%를 만들어 냅니다.
자신이 만들지 않은 100은 누군가 다른 사람이 만들어 놓은 것을 가져다 썼을 뿐이죠.
전산분야도 그렇습니다.
선배가 짜놓은 알고리즘과 API가 잘동작하고 자신이 필요한 기능이 들어있으면 가져다 씁니다.
하지만 그 API는 그런 용도로 개발된 것이 아니고 쓰지도 않는 기능이 잔뜩 붙어 있죠.
점차 프로그램은 무거워지고 복잡해지지만 아무도 처음부터 소스코드를 까서 검증하지 않습니다.
그럴 시간도 없구요.
소스코드를 까서 검토 하는 사람은 극히 일부분이고 그런사람도 모든 소스코드를 까보지도 않습니다.
필요한 부분만 어떻게 바꿀까 하고 까볼 뿐이죠.
요즘 java 개발자들 이런 문제 심각합니다.
프로젝트 하면 누가 만든 API 덕지덕지 붙여서 동작은 하게 만드는데... 왜 어떻게 되는지는 이해하지 못하는 사람들이 대부분입니다.
전체를 이해햐는 사람은 정말 극소수인데... 이정도 지식을 쌓은 사람이 하루 이틀 공부해서 될까요? 그리고 그런 사람은 이미 은퇴를 했거나 우리 프로젝트에 오지 않습니다...
그러니 전산업계는 항상 사람이 없다는 소리를 합니다. 100이 기존의 시스템인데 이걸 101로 만들기 위해 1만 알면 할 수 있을까요?
저는 자동차와는 상관 없지만 자동차도 전자화 되면서 수 많은 소스코드가 포함되어 있고... 그 소스코드는 누군가 만들어 놓은 것을 가져다 쓰지 자동차 만드는 사람이 소스코드까지 다 까보지 않습니다.
그냥 그들이 전문가니까 알아서 잘해놨겠지 하고 믿고 쓸 수 밖에 없습니다.
갑자기 정의선이 미쳐서 마이크로소프트의 OS 전문가와 인텔 혹은 ARM의 임베디드 설계자를 데려다 A-Z까지 다 만들 수 있을까요? 그 비용은 누가 지불? 여러분이 지불해야 합니다.
현대차가 한대에 10억이면 여러분 사겠습까?
전투기 한대에 요즘은 1000억, 2000억 우습죠.
이게 다 인건비입니다.
그러고도 다 만들 수 없어 결국 상업용 코드를 가져다 씁니다.
선배가 만들어둔 코드를 가져다 쓰죠.