본문 바로가기
IT 공부/공부하며 알게된 사실들

실력이 좋은 개발자가 높은 임금을 받는 이유.

by exdus3156 2023. 11. 5.

실력이 좋은 개발자와 아닌 개발자의 차이는 도대체 어디서 생기는 것일까? 메타의 마크 저커버그는 실력이 좋은 개발자는 그렇지 않은 개발자에 비해 100배의 차이를 보인다고 말했다.

 

처음에는 도대체 저 100배라는 것의 근원이 무엇인지 궁금했다. 생각하면 정말 소름 끼치는 차이다. 나는 당연히 현재 공부하고 있는 취준생이기 때문에 실력이 좋지 않다. 그래도 열심히 하면 쓸만한 개발자가 될 수 있을 것이라 생각했다. 그런데 나보다 실력이 좋은 사람은 나보다 최소 100배, 1000배 이상의 실력을 갖추고 있다니...

 

아무리 생각해도 생산성이 어떻게 100배나 나올 수 있는지 궁금했다. 그리고 오늘 공부를 하면서 읽은 책의 아래의 내용에서 생산성 차이가 어떤 의미인지 알 것 같았다.

 

필자는 2008년 당시 구글에서 검색어 제시 기능, 즉 사용자가 입력한 일부 알파벳 키워드에 따라 완전한 검색 키워드 몇 가지를 추천하는 기능을 책임지고 있었다. 이 기능의 테스트를 마치고 젊은 개발자 두 명에게 서비스화 작업을 맡겼다. 이들은 빠르세 서비스 코드를 만들었지만 서비스가 너무 많은 컴퓨팅 자원을 낭비하고 있다고 지적당했다. 

이들은 캐시 효율을 고려하지 않고 서비스를 설계했고, 이것이 여러 명의 사용자들이 하나의 서버에 요청을 하는 과정에서 높은 캐시 미스율을 일으켰던 것이다. 결국 실력 좋은 개발자들이 개선 자문을 해줬다. 캐시 히트율을 높이는 방식으로 서비스를 개선했다. 이를 통해 서버의 약 80%, (800대의 서버)를 절약할 수 있었다. 800대 서버의 사용 비용은 연간 80만 달러다. (한국 돈으로 대략 8억이다.) 뛰어난 개발자 세 명이 2주 동안 작업해서 80만 달러나 되는 비용, 즉 그에 상응하는 가치를 창출했던 것이다.

개발자에게 일을 맡기면 누구나 기능을 구현한다. 그러나 평범한 개발자는 비용이 많이 소요되는 반면, 뛰어난 개발자는 비용을 기하급수적으로 줄인다. 빅테크 기업들은 일류 개발자 채용을 위해 엄청난 급여를 지급하는 것처럼 보인다. 그러나 일류가 창출하는 가치는 그러한 높은 임금을 훨씬 초과하는 가치를 창출한다.

 

뛰어난 개발자는 다양한 능력을 가지고 있을 것이다. 그 중에 하나가 바로 위와 같이 비용을 획기적으로 줄일 수 있는 솔루션을 찾을 수 있는 사람이다.

 

사실 내가 이 부분을 읽고 "실력이 뛰어난 개발자가 되어야지!"라고 생각하진 않았다. 그건 지금 고려할 사항이 아니며, 좋은 소프트웨어를 개발하려고 노력하면 되지, 굳이 뛰어난 사람으로 인정받겠다고 스스로를 압박하고 싶진 않아서 그렇다.

 

오히려 나는 이 부분을 읽고 비용의 문제가 얼마나 중요한지, 컴퓨팅 자원이 얼마나 희소하고 소중한 자원인지 깨닫게 되었다. 우리가 그토록 자료구조와 알고리즘에서 어떻게든 시간 복잡도를 줄이고, 컴퓨팅 자원을 분산하고, 사용자의 요청을 분산하고, ... 이러한 일련의 모든 과정이 결국은 비용을 낮추기 위함이 아닌가. 80만 달러는 엄청난 비용 절감이다.

 

메모리 계층 구조와 알고리즘의 공학적 한계 (tistory.com)

이전에 공학적인 관점을 획득하는 것의 중요성에 대해서 윗 글을 쓴 적이 있었다. 여기서 하나 더 덧붙여야 할 것이 바로, 공학적 관점을 획득한다는 것의 궁극적 목적이란 바로 비용을 최소화하겠다는 의미라는 것이다.