21P by neo 13시간전 | ★ favorite | 댓글 3개
  • 에이전틱 코딩 시대에도 소프트웨어 엔지니어 수요는 오히려 증가할 전망이며, 핵심은 코드 작성이 아닌 서비스 운영 역량에 있음
  • 코드 작성은 항상 쉬운 부분이었고, 진짜 어려운 것은 장기간 안정적으로 시스템을 운영하는 일
  • 노코드와 스프레드시트 사례처럼 비전문가도 도구를 만들 수 있지만, 유지보수와 운영의 부담은 결국 전문 엔지니어링을 요구함
  • 사용자는 소프트웨어가 아닌 서비스를 구매하며, 좋은 소프트웨어는 보이지 않게 작동해야 함
  • 업타임, 결함율, 복구 속도, 보안 업데이트 등 운영 우수성(operational excellence) 이 미래 경쟁력의 핵심
  • 이 모든 요구를 충족하는 역할로 SRE가 소프트웨어 엔지니어링의 중심으로 이동 중

SRE가 가장 많이 채용되는 직군이 될 전망임

  • 코드가 저렴해지면 운영 우수성이 승리하는 구조
  • 그린필드 데모는 누구나 만들 수 있지만, 서비스를 안정적으로 운영하려면 엔지니어링 역량 필요
  • "모두가 그린필드 데모를 작성하고 싶어하지만, 아무도 서비스는 운영하고 싶어하지 않음"
  • 소프트웨어 엔지니어링은 단순 프로그래밍이 아니라 시간에 따라 변화하는 시스템을 관리하는 일

노코드와 스프레드시트 시대의 교훈

  • 회계 담당자 Joe는 매주 10시간이 들던 반복 업무를 노코드 도구와 스프레드시트 매크로로 1시간으로 단축
  • 초기에는 성과가 뚜렷했지만, 시간이 지나며 복잡성이 빠르게 증가
    • 비즈니스 환경 변화와 회계 규칙 변경, 타임존과 일광절약시간 문제 누적
    • 매주 새로운 엣지 케이스가 드러나며 지속적인 손질과 수정 필요
  • 결국 Joe는 자신이 만든 시스템에 묶인 상태로 전환됨
    • 휴가 중에도 시스템을 신경 써야 하고, 다른 사람에게 운영을 넘기기 어려운 상황
    • 코드 실행과 결과 확인 자체가 불안과 긴장의 대상

컴퓨터 질병(The Computer Disease)

  • Feynman이 명명한 개념으로, 컴퓨터의 문제는 끊임없이 만지작거리게 된다는 점
  • 자동화 자체는 재미있지만, 필요하지 않은 영역까지 자동화하며 복잡성을 키우는 함정 존재
  • 진짜 부담은 서비스 운영에 있음
    • 안정적으로 동작하게 유지하기
    • 대규모 환경에서 문제 없이 확장하기
    • 수년에 걸쳐 지속적으로 관리하기
  • 서비스 제공은 안정성, 신뢰성과 지속성이 핵심

운영 우수성이 미래인 이유

  • 사람들은 소프트웨어를 구매하는 것이 아니라 문제를 해결해 주는 서비스를 고용하는 것
  • iCloud의 내부 동작 원리에는 관심 없고, 사진이 기기 사이에서 항상 자동으로 동기화되기를 기대함
  • Word, Notion, gDocs가 어떻게 만들어졌는지는 중요하지 않고, 생각을 쓰고 공유하는 경험이 핵심
  • 결제 네트워크 구조보다 7달러 말차 라떼가 문제없이 결제되는 결과가 더 중요
  • 좋은 소프트웨어는 보이지 않음(존재감 없이 자연스럽게 작동함)

진짜 어려운 엔지니어링 과제들

  • 작동하는 데모를 만드는 처음 90%는 쉬움, 나머지 190%가 진짜 중요
  • 운영 관점에서 답해야 할 질문들:
    • 업타임은 얼마인가
    • 결함 발생 비율은 어느 정도인가
    • 장애 발생 시 복구까지 걸리는 시간은 얼마나 빠른가
    • 문제를 사용자가 인지하기 전에 감지하는가
    • 업스트림 의존성을 관리할 수 있는가
    • 벤더 문제 발생 시 사용자 불만 전에 감지하는가
    • 사용자가 제안한 아이디어 반영에 얼마나 걸리는가
    • 엔지니어들이 서로의 시스템을 망가뜨리지 않도록 방지하는가
    • 앱이 혼란스러운 덩어리가 되지 않으면서 엔지니어가 계속 전진할 수 있는 시스템이 있는가
    • 한 사람의 머릿속에 담기지 않는 규모의 소프트웨어를 다룰 수 있는가
    • 12시간 시차가 나는 타임존에서 엔지니어가 잠든 사이 큰 문제가 발생하면, 사용자가 포기하기 전에 고쳐지는가
    • 자체 장애와 업스트림 장애에서 복구 가능한가, 중요 데이터가 손실되는가
    • 보안 업데이트를 꾸준히 적용하고 있는가
    • 사용자 데이터가 유출되지 않는가
    • 신뢰할 수 있는가
    • 의존할 수 있는가
    • 그 신뢰를 뒷받침하는 근거가 있는가
    • 필요할 때 소프트웨어가 작동한다는 법적 구속력 있는 보장에 서명할 수 있는가
  • 이것들이 진짜 어려운 엔지니어링 과제이며, 코드 작성은 쉬운 부분

체크리스트마냥 수평화전개라니.. ai에게 너무 물드신듯 ㅋㅋ

누구를 위한글인지 모르겠네요 본문이 주제라면 주제에 맞는내용이 기승전결로 전개되어야하는게?

SRE가 뭔지 설명이 같이 있었으면 더 좋았을 것 같아요