경력자로서 앞으로 뭐가 중요할까?

경력자로서 앞으로 뭐가 중요할까?

10X 개발자, 지식의 피라미드


최근에 아주 좋은 글을 하나 읽었는데, 어떻게 해야 10배 이상 뛰어난 개발자가 되는지에 대한 글이었다.



하나하나 내용이 주옥같지만, 내가 가장 영감을 받은 것은 1번 문단이었다.


  1. 사용하는 도구에 대한 연구가 없다

에이브러햄 링컨은 “나에게 나무를 베는 데 8시간이 주어진다면 도끼를 가는 데 7시간을 쓸 것이다.”라고 말했다. 주니어 개발자는 무딘 도끼로 8시간 나무를 벨 것이다. 반면, 시니어 개발자는 작업 시작 전 한 시간 동안 최고의 전기톱을 고를 것이다. 그리고 그는 5분 만에 모든 나무를 자를 것이다.

예시: 웹사이트 개발

나는 최근에 후배 주니어 엔지니어와 누가 개인 웹사이트를 더 빨리 구축할 수 있는지에 대한 내기를 했다. 후배는 2주 동안 1000줄 이상의 코드를 작성했지만, 그는 2주가 지나도 작업을 마치지 못했다. 반면, 단 한줄의 코딩조차 하지 않고 하루만에 나만의 웹사이트를 만들어 냈다. image


내가 보기에 위 일화에서 후배의 문제는, 알고 있는 정보가 너무 적었다는 것이다.

이를 그림으로 그려보면 대략 아래와 같이 될 수 있다고 생각한다.


image 개발자, 지식의 피라미드


예를 들어, 내가 전기톱을 아주 잘 다룬다고 가정하자.

하지만 나무에 못을 박아야 하는 상황이 생겼고, 나는 망치라는 도구의 존재를 모른다면?

당연히 전기톱으로 못을 박으려고 들 것이고, 이는 아주 바보같은 짓임에 틀림없다.

하지만, 못을 박는데 최적화된 망치라는 도구의 존재를 내가 알고있지만, 당장 이 망치를 제대로 다루지는 못한다면?

나는 전기톱으로 못을 박기보다는, 망치를 다루는 약간의 연습을 한 후에 망치로 못을 박을 것이다.


위 지식의 피라미드에서 가장 많은 부분을 차지하는 가장 하위 계층의 내가 모른다는 것조차 모르는 것 부분이 우리가 해결하려는 문제에 대한 가장 완벽한 정답임에도 불구하고 그 존재조차 알지 못하는 많은 언어, 프레임워크, 기술이라고 볼 수 있을 것 같다.

나는 자바를 아주 잘 안다고 자신할 수 없지만, 그럼에도 불구하고 내가 다루는 기술 중 자바를 가장 잘 다룰 수 있다고 생각한다.

내가 잘 다룰 수 있다고 생각하는 자바를 더욱 더 갈고닦는다면 지식의 피라미드에서 내가 안다고 생각하는 것부분이 더욱 넓어질 것이며, 이는 곧 내 기술의 깊이다.

반대로 내가 잘 다루지 못한다고 생각하는 도커, k8s, MQ등의 기술들이 있는데, 나는 이 기술들을 제대로 다뤄본 적은 없으나, 이 기술들이 어떤 목적을 달성하기 위해 탄생했고, 어떤 상황에 쓰여야 하는지 정도는 안다.

그러니까 이는 곧 내 기술의 폭이다.

예를 들어 Spring Application을 모니터링 해야 한다면 내가 선택할 수 있는 선택지들은 어떤것들이 있을까?

리눅스의 iostat, top, htop 명령어 부터 해서, 오픈소스인 Scouter, PinPoint, Spring Actuator + Grafana, Prometheus, 상용 소프트웨어인 제니퍼, 데이터독, 와탭 등이 있을 것이다.


외에 내가 존재조차 알지 못하는, 예를 들자면 위에서 언급되지 않은 APM 도구들이 내가 모른다는 것조차 모르는 것이라고 볼 수 있겠다.

그리고 내가 존재조차 알지 못하는 그 APM 도구는 내가 해결하려는 문제의 가장 완벽한 솔루션일 수도 있다.


내가 앞으로 중요시해야 할 것은 무엇일까?

일단 생각하기엔 최대한 IT 트렌드를 파악하고, 다른 현직자들의 경험담을 계속 경청하는 것이다.

그들은 어떠한 문제를 겪었고, 그 문제를 어떻게 해결 했는지 등이다.

기발한 발상으로 문제를 해결했을 수도 있고 내가 알지 못하는 다른 도구를 사용해 문제를 쉽게 해결했을 수도 있다.

또한, 다른 현직자들이 어떤 것들에 관심을 두고 있는지 관심을 기울이며, 계속해서 정보를 공유하는 것이다.

정보가 사소하던 사소하지 않던간에, 그러한 모든 정보들이 내게 도움이 될 거라고 생각한다.



© 2022. All rights reserved.