지루함의 역설: 위험 회피 엔지니어링이 인터넷에서 가장 탄력적인 기업을 구축한 방법
나는 엔지니어들이 다른 포장에서 동일한 실수를 저지르는 것을 지켜보며 20년의 대부분을 보냈습니다. 2015년쯤에 제가 다루었던 기술 컨퍼런스에서 패턴을 발견하기 시작했습니다. 기립 박수는 항상 CQRS를 사용하여 실시간 ML 파이프라인 또는 이벤트 소스 아키텍처를 시연하는 팀에게 갔지, 트랜잭션 중단 없이 블랙 프라이데이를 통해 PostgreSQL을 계속 흥얼거리게 했던 데이터베이스 관리자에게는 결코 기립 박수를 보냈습니다.
그 불균형은 그때보다 지금 나를 더 괴롭힌다.
\
아무도 이야기하지 않는 혁신 토큰 경제
“지루한 기술 선택”에 관한 Dan McKinley의 2015년 에세이는 훌륭한 Barolo처럼 오래되었습니다. 그가 Etsy에서 혁신 토큰 개념을 소개했을 때(엔지니어링 조직이 제도적 혼란이 닥치기 전에 입증되지 않은 기술에 대략 세 번의 기회가 있다는 생각) 대부분의 사람들은 정중하게 고개를 끄덕이고 그 주 Hacker News의 첫 페이지에 등장했던 프레임워크에서 API를 다시 작성하기 시작했습니다.
논리는 잔인할 정도로 간단합니다. Node.js에서 토큰을 쓰고, MongoDB에서 다른 토큰을 태우고, Kubernetes에 돈을 펑펑 쓰고, 결제 프로세서를 교체해야 하거나 검색 인프라가 흔들리기 시작하면 갑자기 예산이 부족해집니다. McKinley는 MySQL, Postgres, PHP 및 cron을 “지루하다”고 말했을 때 귀엽지 않았습니다. 그는 가장 중요한 기능, 즉 누군가 어딘가에서 이미 일요일 오전 3시에 디버깅한 예측 가능한 오류 모드를 지적하고 있었습니다.
나는 이것이 전쟁실에서 진행되는 것을 지켜보았습니다. 지루한 것을 선택한 회사가 승리했습니다. 매번.
\
네트워크가 종이 절단으로 인해 죽었을 때
2025년 11월 18일에 Cloudflare가 중단되는 경우를 생각해 보세요. 제로데이 악용은 없습니다. 국가 공격은 없습니다. 인증 마이그레이션 중 일상적인 권한 변경으로 인해 구성 파일 크기가 두 배로 늘어났습니다. 프록시 코드에는 아무도 기억하지 못하는 엄격한 제한이 있었습니다. 파일이 임계값을 초과했습니다. 네트워크가 전 세계적으로 붕괴되었습니다.
저는 이전 이야기를 위해 인터뷰했던 전직 Cloudflare 엔지니어에게 연락했습니다. 비공식적으로 그들은 실제 수업은 기술적인 것이 아니라 문화적인 것이라고 말했습니다. “우리는 정교한 위협을 처리하는 데 너무 능숙해져서 단순한 일에 더 이상 애쓰지 않게 되었습니다.”라고 그들은 말했습니다. “웹 트래픽의 20%를 처리할 때 파일 크기를 2배로 늘리는 것은 APT만큼 치명적이라는 것이 밝혀졌습니다.”
Cloudflare가 게시한 사후 분석은 놀라울 정도로 투명했지만 행 사이를 읽어보면 McKinley가 약 10년 전에 경고한 내용이 드러납니다. Cloudflare의 스택은 결코 지루하지 않습니다. Cloudflare는 비즈니스 모델이 요구하기 때문에 최첨단에 구축됩니다. 그러나 그들은 일상적인 경로에서 스트레스 테스트를 하지 않은 경우 작은 구성 조정이 재앙으로 이어질 수 있다는 것을 배웠습니다.
그 중단으로 인해 비용이 발생했습니다. 재정적으로는 물론, 99.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999898888999X48의 신뢰성을 약속받은 기업 고객과의 신탁 자본에서도 마찬가지입니다.
\
죽기를 거부한 모노리스
Shopify의 아키텍처 결정은 모든 최신 유행 플레이북을 위반하기 때문에 나를 매료시킵니다. 경쟁업체가 2018~2020년경 Ruby on Rails 앱을 마이크로서비스 메시로 분할하는 동안 Shopify는 “모듈형 모놀리스”라고 부르는 기능을 두 배로 늘렸습니다. 하나의 저장소. CI/CD 파이프라인 1개. 하나의 공유 Postgres 인스턴스.
2024년 초에 Shopify 엔지니어링 책임자와 다른 부분에 대해 이야기를 나눴는데 그들은 아무런 사과도 하지 않았습니다. “우리는 서비스 간 계약을 관리하는 데 스프린트의 절반을 소비하지 않기 때문에 10배 더 작은 팀보다 빠르게 배송합니다.”라고 그들은 말했습니다. 계산 결과, 배포 파이프라인이 적다는 것은 실패 지점이 적다는 것을 의미했으며, 이는 대응 시간이 줄어들고 판매자가 실제로 원하는 기능을 구축하는 데 더 많은 시간이 소요된다는 것을 의미했습니다.
그들의 접근 방식은 매우 효과적이어서 2025년 중반에 다시 확인했을 때 그들은 아직 핵심 결제 흐름을 위해 모놀리스를 운영하고 GMV에서 수십억 달러를 처리합니다. 그들이 추출한 유일한 서비스는 사기 탐지, 재고 할당 등 서로 다른 확장 특성이나 규정 준수 경계가 필요한 완전히 독립적인 도메인이었습니다.
다른 곳에서 본 잔해와 비교해 보세요. Littledata라는 Shopify 파트너는 2019년에 영리한 Docker 기반 이벤트 파이프라인이 트래픽 급증을 겪으면서 거의 파산할 뻔했습니다. 적절한 측정항목이 없습니다. Node.js 이벤트 루프가 중단되었습니다. 서버가 자동으로 메모리를 누수했습니다. 창립자는 나중에 이를 “눈을 가린 채 운전”이라고 설명했습니다. 이 문구는 본능적으로 정확하기 때문에 마음에 와 닿았습니다.
그들의 회복 계획은요? 정말 지루해요. 대기열을 위한 AWS SQS. CloudWatch 대시보드는 어디에나 있습니다. 모든 외부 통화에 대한 회로 차단기. 새로운 시스템은 아키텍처상을 수상하지는 못했지만 99.99%의 가동 시간을 제공하고 비즈니스를 절약했습니다. 나는 병적인 호기심 때문에 가끔 그들의 상태 페이지를 확인합니다. 마지막 중단은 18개월 전이었고 4분 동안 지속되었으며 몇 시간 내에 근본 원인 분석을 게시했습니다.
이것이 엔지니어링 연극과 엔지니어링 공예의 차이점입니다.
\
그레이트 리라이트 카지노
처음부터 다시 작성해서는 안 된다고 주장하는 Joel Spolsky의 2000년 에세이는 끊임없이 인용되지만 종교적으로 무시됩니다. 얼마나 많은 CTO가 나에게 “예, 하지만 우리 상황은 다릅니다”라고 말했는지 셀 수 없을 정도입니다. 결코 그렇지 않습니다.
6가지 주요 재작성 시도에 대한 Herb Caudill의 분석은 모든 컴퓨터 과학 프로그램에서 읽어야 할 내용입니다. Netscape의 브라우저 팀은 “더 깔끔한” 것을 구축하기 위해 1998년에 작동하는 코드베이스를 버렸습니다. 3년 후 Netscape 6.0은 다음과 함께 출시되었습니다. 시작 시간 1분 인쇄 미리보기와 같은 기본 기능이 누락되었습니다. 기존 엔진을 점진적으로 개선해 온 Internet Explorer는 몇 달 만에 시장 점유율을 잠식했습니다. 재작성은 단순히 실패한 것이 아니라 회사를 망쳤습니다.
모두가 좋아하는 마이크로서비스 성공 사례인 Netflix도 대부분의 기업이 감당할 수 없는 운영 인프라를 구축하는 데 수년을 보냈기 때문에 성공할 수 있었습니다. 카오스몽키. 스피니커. 히스트릭스. 의도적으로 도입한 취약성을 관리하기 위한 전체 오픈 소스 도구 집합입니다. 2023년에 제가 인터뷰한 전직 Netflix 엔지니어는 다음과 같이 직설적으로 말했습니다. “우리가 분할하기 전에는 개발자 생산성과 플랫폼 안정성을 담당하는 인력이 200명이었습니다. 그런 인력이 없다면 모놀리식을 유지하세요.”
대부분은 그런 게 없어요. 어쨌든 그들은 노력합니다. 그런 다음 그들은 혼란을 해결하기 위해 컨설턴트를 고용하고 결국 그것에 대해 글을 쓰게 됩니다.
\
정규 엔지니어로 가는 조용한 길
누구도 주니어 개발자에게 말하지 않는 것이 있습니다. 고위 리더십으로 가는 가장 빠른 길은 가장 빛나는 프로젝트를 시작하는 것이 아닙니다. 생산에 불이 붙을 때 다른 엔지니어들이 신뢰하는 사람이 바로 그 사람입니다.
나는 수년에 걸쳐 수십 명의 엔지니어링 VP를 인터뷰했고 그들은 모두 동일한 유형을 설명합니다. 전체 보안 버그 클래스를 제거하기 위해 인증 시스템을 리팩터링한 개발자, 배포 파이프라인을 너무 철저하게 자동화하여 릴리스가 지루해지게 만든 개발자, 신규 채용자가 2주차에 안전하게 기여할 수 있을 만큼 레거시 결제 코드를 충분히 문서화한 개발자입니다.
이런 사람들은 승진합니다. 모든 프레임워크 유행을 쫓는 사람들이 있나요? 그들은 인상적인 사이드 프로젝트를 구축하고 DevRel로 전환합니다.
Stripe의 데이터베이스 팀은 이러한 정신을 구현합니다. 1조 달러 이상을 처리하면서 99.999%의 가동 시간을 달성했다는 블로그 게시물은 마케팅 허풍이 아니라 시장에 대한 신뢰성 신호입니다. 나는 이력서에서 “스트라이프 인프라”를 특별히 찾는 엔지니어링 관리자를 알고 있습니다. 왜냐하면 그 팀은 전설적으로 위험을 회피하기 때문입니다. 그들은 지루함을 경쟁 우위로 만들었습니다.
McKinley의 프레이밍은 여기에 공감합니다. 귀하의 업무는 단독으로 최고의 도구를 선택하는 것이 아닙니다. 회사의 상황에 맞게 가장 최악의 도구를 선택하는 것입니다. 신뢰할 수 없는 시스템을 운영하는 데 드는 장기적인 비용으로 인해 단기적인 개발 속도 향상이 무색해집니다. 나는 수많은 사후 분석에서 그 방정식이 적용되는 것을 보았습니다.
\
엔지니어링 우수성을 재정의하다
업계의 인센티브 구조는 낙후되어 있습니다. 컨퍼런스 강연은 참신함을 보상합니다. 추진위원회는 ‘임팩트’를 좋아합니다. 이는 오래된 것을 계속 실행하기보다는 항상 새로운 것을 시작하는 것을 의미합니다. 우리는 잘못된 측정항목을 게임화했습니다.
내가 아는 최고의 엔지니어들은 병리학적으로 위험을 회피하는 사람들입니다. 그들은 모든 것을 도구화합니다. 그들은 런북을 작성합니다. 그들은 오전 2시에 너무 자주 호출되어 압력을 받고 있는 영리함을 믿을 수 없기 때문에 지루한 해결책을 위해 싸웁니다.
이는 혁신을 전혀 하지 않는다는 뜻이 아닙니다. 이는 각각의 혁신을 미래의 안정성을 위해 빌릴 수 있는 유한한 자원으로 취급하는 것을 의미합니다. “이것이 운영 부담을 줄 만한 가치가 있는가?”라는 질문을 의미합니다. 모든 아키텍처 결정 전에. 이는 화려한 재설계를 시작한 팀뿐만 아니라 12개월 동안 무사고를 달성한 팀을 축하하는 것을 의미합니다.
나는 다른 스타트업이 스택을 “현대화”한다고 발표하는 것을 볼 때마다 이에 대해 생각합니다. 그 중 절반은 18개월 이내에 조용히 롤백할 것입니다. 나머지 절반은 제가 2027년에 쓸 경고 이야기가 될 것입니다.
\
스테이크는 계속 상승
2025년 말에 이 글을 쓰는 지금, 오류의 허용 범위는 그 어느 때보다 더 엄격합니다. AI 회사는 훈련 실행에 엄청난 수준의 인프라 안정성이 필요하다는 사실을 깨닫고 있습니다. 불량 디스크 하나가 컴퓨팅에 50,000달러를 낭비할 수 있습니다. 핀테크 스타트업은 규제 준수가 이벤트 소싱이 얼마나 우아한지 상관하지 않는다는 것을 깨닫고 있습니다. 의료 플랫폼은 생명이 위태로워질 때 최종 일관성보다는 지루한 동기식 API 호출이 더 낫다는 사실을 배우고 있습니다.
미래는 빠른 로켓이 아닌 견고한 로켓을 만드는 팀에 속합니다. 그것은 진부한 말이 아닙니다. 이는 제가 15년 동안 반복해서 보아온 패턴입니다. 5년 후에도 여전히 존재하는 기업은 안정성을 세금이 아닌 특징으로 여기는 기업이 될 것입니다.
따라서 다음에 누군가가 모놀리스를 다시 작성하거나 최신 데이터베이스를 채택하는 것에 대해 제안하면 회사에 얼마나 많은 혁신 토큰이 남아 있다고 생각하는지 물어보십시오. 그들이 당신이 무슨 말을 하는지 모른다면, 당신이 대답할 수 있습니다.
지루함은 타협이 아닙니다. 겸손을 가장한 초능력이다. 그리고 마침내 운영 위험에 가격을 책정하기 시작한 업계에서 이는 가장 가치 있는 실현일 수 있습니다.
\



Post Comment