이 글은 Google Cloud Leaders의 칼럼 TMI(The Modernization Imperative)의 “Shifting left is for suckers. Shift down instead.” 를 의역하였습니다.
꽁꽁 얼어붙은 차 안의 운전석에 혼자 앉아 있던 열 살 리처드는 자신이 왕이라고 생각했습니다.
“봐, 나 운전하고 있어!”
라고 옆에 앉은 투명 승객에게 외쳤죠. 몇 년 뒤에야 나는 진실을 깨달았습니다.
사실 엄마는 운전을 가르쳐준다는 명목으로 추운 차를 예열하는, 하기 싫은 일을 저에게 대신 시킨 것이었습니다.
저는 놀랍도록 뛰어난 운전 실력에 너무 흥분해 있어서, 엄마가 하고 싶지 않았던 일을 대신하고 있다는 것을 전혀 몰랐습니다.
오늘날에도 사실상 변한 건 별로 없어요. 제가 누군가 하기 싫어 떠넘긴 일을 신나게 하고 있다는 사실을 자각한 것 외에는요.
40대인 리처드는 슈퍼마켓에서 ‘씨 없는 포도’의 코드를 찾기 위해 자동 계산대 터치 스크린을 열심히 두드리며, 자신의 농산물을 스캔하고 포장하는 일을 ‘특권’처럼 즐기고 있습니다.
엄마와 지역 마켓 사례에서 보듯, 한 그룹에서 다른 그룹으로 작업 부하를 재분배하는 것은 자원을 최적화하는 데 있어 중요한 단계입니다.
오늘날, 우리는 개발자들에게 ‘Shift Left’하고 진화하는 방법론에 적응할 것을 요구합니다.
하지만 ‘Shift Left’는 큰 부담입니다.
개발자들에게 더 많은 것을 하도록 강요하기보다는, 그들이 사용 가능한 도구와 서비스의 전체 범위를 활용하여 그들의 재능을 극대화할 수 있습니다.
확실히, “Shift Left” — 개발 프로세스 초기 단계에 보안과 QA 를 포함하는 관행 — 은 아주 타당합니다.
하지만 해가 갈수록 전통적으로 개발자의 업무 범위에 포함되지 않던 다양한 종류의 작업들이 풀스택 엔지니어를 장려한다는 명목 하에 점점 더 왼쪽으로 이동하고 있습니다.
이러한 추세는 이제 멈춰야 합니다.
[작지만 정당한 푸념: 지구상에 실제 ‘풀 스택 엔지니어’는 아마도 아홉 명 정도일 겁니다.
거의 아무도 React로 프론트엔드를 개발하면서, Kubernetes를 구성하고, RabbitMQ 인스턴스를 설정하면서, SAN 스토리지를 할당하며, 랙 상단 스위치 전원을 켜는 일을 하지는 않습니다.
오늘날의 개발자들은 웹 프레임워크, 아키텍처 패턴, 테스팅 전략, 빌드 시스템, 다양한 종류의 데이터베이스, 캐시, 자동화 도구, 컨테이너 오케스트레이터, L4-L7 네트워킹 개념, SaaS API, 모니터링 시스템, 다양한 퍼블릭 클라우드, 그리고 아마도 약간의 머신 러닝까지 알아야 한다고 깨스라이팅 당하고 있습니다.
저는 최근에 Indeed.com을 둘러보았는데, 주니어 및 시니어 개발자들에게 요구하는 수준이 가관입니다.
호들갑이 너무 과해요.]
Shift down!
업계 형님으로써(As an industry 의 의역), 우리는 도움을 제공해야 합니다.
첫째로, 개발자들과 (특히 관리자들이!) 모든 것을 “Shift Left”하라고 말하기보다는, 그들에게 사용 가능한 기술을 최대한 활용하여 “Shift Down” 하도록 장려하고, 플랫폼이 더 많은 작업을 처리할 수 있도록 해야 합니다.
당신의 기술 스택을 압축해서 플랫폼에 구겨넣으세요. 사람들이 일을 하기 위해 너무 많은 것을 알아야 하는 상황을 만들지 마세요.
플랫폼 추상화를 제공하세요. 최근에 저는 한 고객을 위해 “구글은 데브옵스를 어떻게 하는가”에 대한 강연을 했는데, 얼마나 많은 플랫폼들을 구글의 엔지니어에게 제공하는지에 대한 이야기로 귀결되더군요.
우리는 코딩, 테스트, 빌드, 릴리스, 롤아웃, 호스팅, 알람 등등등…을 위한 managed service 경험을 제공합니다.
구글의 전담 팀들은 이러한 필수불가결한 플랫폼을 제공함으로써, 우리의 프로덕트 엔지니어들이 “풀스택” 인프라에 대해 알거나 운영할 필요 없이 그들이 해야 할 일에 집중할 수 있도록 합니다. 이는 모든 조직이 동일하게 따라야 합니다.
새로운 언어, 플랫폼, 클라우드 등을 배우느라 개발자들의 개발력을 낭비하는 대신 기술 리더들은 플랫폼을 제품처럼 다루는 플랫폼 엔지니어링 팀을 만들어야 합니다.
최적화(=생산성 극대화)는 개발자의 인지 부하를 줄이고, 혁신을 방해하는 불필요한 의무를 제거하는 것에서 시작됩니다.
이와 병행하여, AI 및 대규모 언어 모델(LLMs)의 힘을 활용할 수 있는 필요한 도구와 인프라를 제공함으로써,
개발자들은 단순 작업에 매달리기보다는 창의적인 해결책을 고안할 수 있습니다.
우리는 현재 더 많은 코칭과 자료를 제공하여 모든 이가 플랫폼 엔지니어링을 받아들일 수 있도록 돕고 있으니, 계속 주목해 주세요.
Empowerment through opinions
클라우드 공급자로서 우리가 할 수 있는 두 번째 일은 제품에 우리의 의견을 반영하는 것입니다.
개발자들이 다양한 제품과 서비스를 사용해야 할지라도, 인프라 관리 부담을 나누는 “Universal Shift Down” 원칙으로 그들을 지원할 수 있죠.
GKE Autopilot은 워크플로우에 지장을 주지 않으면서도 적절하게 강회되고 관리되는 Kubernetes 클러스터를 온디멘드 방식으로 제공한다는 점이 마음에 듭니다.
Kubernetes가 필요하다면 Autopilot 방식으로 클러스터를 설정하는 번거로움을 없애고 개발에 집중하세요.
Secure Supply Chain을 원하시나요? 실제 사람이 SLSA 매니페스트를 파싱하게 하지 마세요.
자동으로 빌드에 인증을 추가하고(우리가 Cloud Build에서 이렇게 하듯) 런타임 검사를 간단한 체크박스로 만드세요. 우린 그렇게 합니다.
개발자에게 굳이 귀찮게 물어보지 말고 처음부터 고가용성으로 작동하도록 구성하세요.
Pub/Sub, Firestore, Spanner, Cloud Storage, Cloud Logging 와 같은 우리 서비스들은 “당연히” 그렇게 작동합니다.
우리의 의견은 더 낮은 수준에서도 적용될 수 있어요. 예를 들어, 개발자가 직접 CloudEvents를 파싱하는 코드를 짜는 대신 그들을 도와줄 수 있습니다.
생성형 AI App Builder와 같은 도구를 사용하면 개발자들은 디지털 어시스턴트, 맞춤형 검색 엔진, 채팅 인터페이스 등 새롭고 매력적인 경험을 신속하게 출시할 수 있습니다.
고객에게 우리 의도가 담겨 있지만 확장 가능한 프레임워크를 제공함으로써 그들의 기술 투자(=구글 클라우드)를 최대한 활용할 수 있도록 하는 것이 성공적인 (클라우드) 경험의 핵심입니다.
구글 클라우드에서는 사람들이 놀라운 기술을 사용하여 놀라운 것들을 만들 수 있도록 돕고 있습니다.
이를 달성하기 위해, 우리는 개발자들에게 설계 단계부터 보안이 고려된(secure-by-design) 하드웨어와 소프트웨어 경험을 제공하는 도구와 서비스를 만듭니다.
이는 “Shift Left”의 수많은 Best Practice를 기본으로 깔고 개발을 가속화할 수 있게 합니다.
효율적인 업무할당은 개발력을 당신이 필요로 할 때 언제든지 최고의 성능, 최고의 가용성으로 유지할 수 있도록 보장합니다.
2023년에 소프트웨어 개발자가 되는 것은 정말 놀라운 일이지만, 그것은 어떤 직업보다도 많은 인지적 부담을 가져옵니다.
우리는 소프트웨어 생명주기에서 늘어나는 책임을 개발 팀에 부과하는 대신, 지속 가능하고 혁신적인 엔지니어링 문화를 조성하는 플랫폼 실천을 지원하여 고객을 돕습니다.
“Shift Down” 관행을 채택하고 기술 스택의 혜택을 완전히 활용함으로써, 잘 구성된 자동화와 관리 서비스를 통해 혁신은 번성합니다.
AI 지원 기술이 새로운 단계에 직면함에 따라, 코드 생성이 줄어들고 실시간 자연어 챗봇으로 대치되면서, 우리는 전 세계의 개발자들이 비즈니스 및 기술적 성공을 이끌 수 있는 힘을 부여하고 있습니다.
그리고 열 살짜리 리처드와는 달리, 그들은 실제로 어딘가에 도달할 수도 있습니다.





댓글 남기기