당신의 시니어 엔지니어는 10x가 아니다. 그는 0.1ms 캐시다.
Source: Dev.to
소개
배포가 FTP를 의미하던 시절을 기억할 정도로 오래 소프트웨어를 작성해 왔습니다.
I have worked with:
- “10x engineers”
- “Rockstar developers”
- “Ninjas”
- “Full-stack wizards”
- And one guy who introduced himself as a “Code Shaman”
None of them impressed me.
The quiet senior who deleted 3,000 lines of code did.
10배 개발자 신화
업계는 성능 메타포를 사랑한다. 우리는 엔지니어를 CPU처럼 이야기한다:
- 높은 처리량
- 방대한 출력
- 다중 스레드 생산성
- 무한 스프린트 속도
하지만 실제 시스템이 확장되는 방식은 그렇지 않다. 아키텍처에서 가장 빠른 시스템은 가장 많은 작업을 수행하는 것이 아니라, 작업을 피하는 시스템이다. 이것이 진정한 시니어 엔지니어가 하는 일이다. 그들은 10배가 아니라 캐시 레이어이다.
주니어 엔지니어가 기능을 추가한다
주니어 엔지니어는 놀랍습니다. 그들은:
- 빠르게 배포한다
- 새로운 라이브러리를 시도한다
- 새로운 프레임워크를 도입한다
- “메모리 안전성” 때문에 모든 것을 러스트로 다시 쓰자고 제안한다
(솔직히? 가끔은 맞아요.)
주니어는 산출물에 최적화합니다. 시니어는 부재에 최적화합니다—다음의 부재:
- 복잡성
- 지연
- 실패 모드
- 회의
- 후회
실제 이야기
한 프로젝트에서 스케일링 문제가 발생했습니다: 트래픽 급증, CPU 상승, 페이지가 울렸습니다. 팀은 다음을 제안했습니다:
- Kubernetes 자동 스케일링
- 서비스 메시
- Redis 클러스터
- 이벤트‑드리븐 재작성
- 서버리스로 전환
- Rust로 마이그레이션 (당연히)
시니어 엔지니어는 코드베이스를 살펴보고 하나의 for 루프를 삭제했습니다—요청 핸들러 안에 있던 실수로 만든 O(n²) 루프였습니다. CPU 사용량이 70 % 감소했습니다. 새로운 아키텍처도, 재작성도, DevOps 의식도 없었습니다—그저 알고리즘에 대한 이해였죠. 이는 10배 생산성이 아니라, 수백만 건의 요청에서 매 요청당 0.1 ms의 지연을 영원히 없앤 것입니다.
비밀: 시니어는 압축 알고리즘이다
좋은 시니어 엔지니어는 복잡성을 압축한다. 샤논의 정보 이론처럼, 압축은 중복을 제거함으로써 작동한다.
- 주니어 사고: “이걸 고치려면 뭘 추가해야 하지?”
- 시니어 사고: “왜 이게 존재하는 거지?”
내가 함께 일한 최고의 시니어들:
- 추상화를 없앤다
- 호출 스택을 평탄화한다
- 불필요한 서비스를 인라인한다
- 존재하지 않아야 할 마이크로서비스를 없앤다
- 네 개의 도구를 하나의 지루한 도구로 대체한다
그들은 시스템을 확장하지 않는다; 엔트로피를 줄인다.
쿠버네티스는 성격이 아니다
어느 순간 현대 엔지니어링 문화는 코스프레 아키텍처가 되었다. 우리는 5,000명의 사용자를 위해 쿠버네티스, 레디스, 카프카, 테라폼을 배포한다. 한 선배가 나에게 이렇게 말했다:
“시스템이 5 k 사용자를 위해 쿠버네티스를 필요로 한다면, 확장성 문제라기보다 논리적 문제일 가능성이 높다.”
이 문장은 모든 스타트업 사무실에 걸쳐야 한다.
10배 출력 vs 10배 영향
“10배 엔지니어”는 코드를 10배 더 많이 배포한다. 진정한 시니어는 재해를 10배 더 많이 예방한다. 그들은:
- 조기 마이크로서비스 도입을 중단한다
- 안정적인 시스템을 재작성하는 것을 반대한다
- 트렌디한 프레임워크를 거부한다
- 확장하기 전에 부하 테스트를 요구한다
- “실패 모드가 뭐지?”라고 묻는다
그들은 인간 형태의 지연 감소자이며, 조직에서 불필요한 의사결정 가지를 없앤다.
조용한 초강대국: 예측 가능성
분산 시스템에서 가장 큰 적은 지연이 아니라 예측 불가능성이다. 엔지니어에게도 마찬가지다. 최고의 시니어는:
- 혼란을 만들지 않는다
- 영리함 부채를 도입하지 않는다
- 깨지기 쉬운 뛰어남을 구축하지 않는다
그들은 지루한 신뢰성을 만들고, 지루한 확장성을 만든다.
왜 이것이 AI 시대에 중요한가
이제 누구나 AI 코드 생성을 이용할 수 있습니다. 출력 비용은 저렴하고, 누구든지 30초 만에 500줄을 생성할 수 있습니다. 하지만 어떤 480줄을 삭제할지는 누가 결정할까요? 그것은 프롬프트 엔지니어링이 아니라 판단입니다. AI는 코드 엔트로피를 증가시키고, 시니어 엔지니어가 이를 감소시킵니다.
실제 지표
시니어 엔지니어를 평가하고 싶다면 다음을 세지 마세요:
- 작성한 라인 수
- 닫은 티켓 수
- 병합된 PR 수
다음 항목을 측정하세요:
- 삭제된 라인 수
- 방지된 사고
- 구축되지 않은 기능
- 방지된 회의
시니어 엔지니어가 로드맵을 더 크게 만드는 것이 아니라 작게 만든다면… 올바르게 채용한 것입니다.
최종 생각
산업은 속도를 숭배하지만, 확장 가능한 시스템은 속도로 만들어지지 않는다; 제약으로 만들어진다. 내가 함께 일했던 최고의 엔지니어가 한 번 말했었다:
“내 일은 시스템을 만드는 것이 아니다. 내 일은 우리가 잘못된 시스템을 만들지 않도록 하는 것이다.”
그는 10배 엔지니어가 아니었다. 그는 캐시 히트였다. 그리고 실제 시스템에서 캐시 히트가 전부다.