Gemini Conductor: AI 코딩을 고치러 온 구글의 새로운 도구

AAI LABS
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00채널을 팔로우하고 계셨다면 여기서 다뤘던 다양한 유형의 컨텍스트 엔지니어링 워크플로우에 익숙하실 겁니다.
00:00:05그런데 구글도 또 다른 워크플로우를 출시했습니다.
00:00:07다른 워크플로우보다 낫다고 말할 수 있으면 좋겠지만, 사실은 그렇지 않습니다.
00:00:11그리고 이것에는 많은 문제가 있습니다.
00:00:13Gemini 생태계에는 더 낫다고 주장하더라도, 여전히 좋지 않습니다.
00:00:16왜 이걸 출시할 필요가 없었는지 알아보기 전에, Automata에 대해 잠깐 이야기해 보겠습니다.
00:00:21수백만 명의 사람들에게 AI로 구축하는 방법을 가르친 후,
00:00:24우리는 이러한 워크플로우를 직접 구현하기 시작했습니다.
00:00:27그리고 이전보다 더 빠르게 더 나은 제품을 만들 수 있다는 것을 발견했습니다.
00:00:30우리는 앱이든 웹사이트든, 여러분의 아이디어를 실현하는 것을 돕습니다.
00:00:34어쩌면 우리 영상을 보면서 '좋은 아이디어가 있는데 그걸 만들 기술 팀이 없어'라고 생각하셨을 수도 있습니다.
00:00:39바로 그 지점에서 우리가 등장합니다..
00:00:42우리를 여러분의 기술 공동 조종사라고 생각하세요.
00:00:45우리는 수백만 명에게 가르쳤던 동일한 워크플로우를 여러분의 프로젝트에 직접 적용하여,
00:00:49개발팀을 고용하거나 관리하는 골칫거리 없이 개념을 실제 작동하는 솔루션으로 전환합니다.
00:00:54여러분의 아이디어를 현실로 가속화할 준비가 되셨나요?
00:00:56hello@automata.dev로 연락주세요..
00:00:59이것이 왜 그저 컨텍스트 엔지니어링 워크플로우에 대한 또 다른 형편없는 시도인지 설명하기 전에,
00:01:04먼저 Conductor가 실제로 어떻게 작동하는지 살펴보겠습니다.
00:01:07이것이 해당 문서이고 아래 설명란에 링크를 걸어두겠습니다.
00:01:10마지막 부분에서 Gemini CLI에 확장 프로그램으로 설치하는 명령어를 얻을 수 있습니다.
00:01:15모르시는 분들을 위해 설명하자면,
00:01:16확장 프로그램은 명령어,
00:01:18MCP 및 기타 규칙의 집합을 하나로 묶어서 사람들이 호스팅하고 다른 사람들과 공유할 수 있는 패키지로 만든 것입니다.
00:01:23Claude도 플러그인이라는 유사한 기능이 있습니다.
00:01:26실제로 워크플로우를 시작하려면 명령어를 사용하면 설치됩니다.
00:01:29설치 후에는 Conductor에서 슬래시 명령어를 사용할 수 있습니다.
00:01:33Conductor를 실제로 제어하고 워크플로우를 사용하는 방법에 대한 다섯 가지 명령어를 얻게 됩니다.
00:01:38이제 가장 먼저 사용할 명령어는 setup 명령어입니다..
00:01:41이 명령어가 하는 일은 먼저 설정 상태와 프로젝트가 이미 초기화되었는지 알려주는 기타 파일과 같은 기존 Conductor 파일이 사용 가능한지 확인하는 것입니다.
00:01:51스토리 대신, 트랙이라는 파일을 만들어서 하나씩 완료합니다.
00:01:56그 후, 새로운 GitHub 저장소를 초기화하고 무엇을 만들지 물어봅니다.
00:02:01테스트하기 위해 간단한 프로젝트를 만들었지만, 만들어진 아키텍처가 실제로 좋은지 테스트하고 싶었습니다.
00:02:07그래서 실제로 필요한 것들을 추천할지 테스트하기 위해,
00:02:10프로덕션 준비가 되어 있고 더 많은 사용자로 확장 가능해야 한다고 말했습니다.
00:02:15그 후, 제가 만들고 싶은 것의 실제 개념이 담긴 product.md 파일을 생성했습니다.
00:02:20실제로 다듬고 작성하기 위해 질문을 하기 시작했는데,
00:02:23결국 질문들이 실제로 어디로도 이어지지 않고 정말 단순했기 때문에,
00:02:27그냥 모든 것을 자동 생성하도록 했습니다.
00:02:30제품 가이드를 승인하고 저장한 후,
00:02:32주로 제품의 스타일링과 일부 디자인 원칙에 중점을 둔 제품 가이드라인이라는 또 다른 파일을 만들고 싶어 했습니다.
00:02:38그것도 승인하고 제품 가이드라인도 저장했습니다.
00:02:41그 후 기술 스택을 정의했는데, 이것이 워크플로우가 좋지 않은 이유 중 하나입니다.
00:02:46제 전체 프로젝트가 무엇인지 알고 있었는데도 제안한 기술 스택이 엉망이었고 적절한 것을 제대로 추천하지 않았습니다.
00:02:53그것을 수정한 후, 기술 스택도 승인하고 해당 MD 파일도 업데이트했습니다.
00:02:58코드 스타일 가이드라는 파일도 있습니다.
00:03:00실제 폴더로 들어가면,
00:03:01이것들만 있는 언어들이고,
00:03:03프로젝트에서 이 중 어떤 것을 사용할 것이라고 생각하면 초기화 중에 현재 프로젝트의 코드 스타일 가이드에 추가합니다.
00:03:10기본적으로 사용하는 워크플로우는 실제로 꽤 좋습니다.
00:03:13기본적으로 80% 코드 테스트 커버리지를 포함하고 있으며,
00:03:16설정하고 기본 컴포넌트를 작성하는 동안 테스트도 작성되고 있는지 확인했습니다.
00:03:21그리고 작업을 완료한 후에도 테스트를 진행했습니다.
00:03:24동시에 모든 작업 후에 변경사항을 커밋하고 git notes도 사용해서 뭔가 잘못되었을 때 어디서 또는 언제 그런 일이 있었는지 추적할 수 있었습니다.
00:03:33초기 설정을 완료한 후, 초기 트랙을 시작할 수 있도록 몇 가지 상위 수준의 제품 요구사항을 만들었습니다.
00:03:40이것이 구현하려고 했던 첫 번째 트랙입니다..
00:03:45다시 말하지만, 이것은 너무 광범위해서 더 작은 트랙으로 나눌 필요가 있었습니다.
00:03:49하나의 트랙에서 하기에는 너무 많았고, 이렇게 많은 것을 동시에 하면 엉망이 될 가능성이 많았습니다.
00:03:55그래서 완료한 후,
00:03:56implement 명령어를 실행하여 작업을 시작할 수 있으며,
00:03:59tracks 폴더에는 하나씩 구현하는 다양한 트랙이 있습니다.
00:04:03각 트랙에는 plan.md와 spec.md, 두 개의 파일이 있습니다.
00:04:07spec.md에는 목표와 기술 스택에서 추출한 기술적 세부 사항 및 시작 시 입력한 정보가 포함되어 있습니다.
00:04:13plan.md에는 실제로 하나씩 구현해야 할 작업이 포함되어 있습니다.
00:04:17실제로 implement 명령어를 사용할 때,
00:04:19tracks.md를 보고 기본적으로 상태에 따라 무엇을 해야 할지 아는 각 트랙을 봅니다.
00:04:24비어 있으면 시작되지 않은 것입니다.
00:04:26이것은 진행 중이라는 의미이고 이것은 트랙이 완료되었다는 의미입니다.
00:04:30그리고 보시다시피, 현재 이 트랙은 진행 중입니다.
00:04:33다른 명령어들에 관해서는,
00:04:34status 명령어는 현재 진행 중인 상황과 어떤 트랙을 따르고 있고 어떤 것이 완료되지 않았는지에 대한 상태 보고서를 제공합니다.
00:04:42new track 명령어를 사용하면 새로운 작업에 대해 다시 다른 질문들을 할 것입니다.
00:04:47기존 저장소에도 구현해 봤는데 거의 같은 방식으로 진행되었습니다.
00:04:50기존 파일을 보고 명확한 질문만 하고 새로운 트랙을 요청하지 않았기 때문에 약간 달랐습니다..
00:04:57새로운 기능으로 새로운 트랙을 직접 구현해야 했습니다.
00:05:00그리고 revert라는 또 다른 정말 똑똑한 기능이 있는데, 실제로 손상을 완화하고 git을 인식합니다.
00:05:06그래서 에이전트가 어디서든 실수하면 git을 사용해서 도와줍니다.
00:05:10현재 파일 관리와 구조는 그렇게 나쁘지 않습니다.
00:05:12새로운 기능이나 기존 작업을 트랙으로 구현한 다음 추적하는 방식은 실제로 꽤 좋습니다.
00:05:17하지만 지침이 작성된 방식이나 이러한 명령어 파일이 작성된 방식은 개선이 필요합니다.
00:05:22왜냐하면 모든 것을 확인해야 하는 컨텍스트 루프를 제대로 관리하지 못하고 있기 때문입니다.
00:05:27그리고 변경 사항이 있으면 어떻게 변경해야 하는지도 마찬가지입니다.
00:05:31왜냐하면 이 초기 프로세스 중에도 많은 실수가 있었기 때문입니다.
00:05:34첫 번째 실수는 각 문서의 생성을 요청하는 동안 제 아이디어를 제대로 분석하지 않았다는 것입니다.
00:05:40그래서 많은 부분을 제가 직접 안내해야 했습니다.
00:05:42충분하다고 생각했을 때, 나머지 콘텐츠를 자동 생성하도록 했습니다.
00:05:46그리고 다시 말하지만, 앞서 언급했듯이 기술 스택을 정의하는 동안에도 많은 것을 놓쳤습니다.
00:05:51옵션 B는 좋았습니다.
00:05:52하지만 많은 수의 사용자가 있는 완전히 확장 가능한 앱을 원한다고 말했기 때문에,
00:05:57제가 명확히 하고 명시적으로 말해야 했던 많은 것들을 놓쳤고,
00:06:00그런 다음 계획을 수정했습니다.
00:06:02초기 트랙이 생성되었을 때,
00:06:03실제로 들어가서 생성된 계획과 사양을 살펴봤는데 데이터베이스 스키마가 완전히 불완전했습니다.
00:06:09앱 설정에 중요한 많은 것들을 놓쳤고, 다시 안내하고 올바른 방향으로 이끌어야 했습니다.
00:06:13이제 Gemini는 실제로 정말 좋은 모델입니다.
00:06:16그래서 구현된 명령어들이 이런 식으로 작동하게 만드는 것이라고 의심할 수밖에 없습니다..
00:06:23그리고 설정 자체는 실제로 괜찮음에도 불구하고 제가 믿는 가장 큰 이유는,
00:06:27메인 슬래시 명령어들과 특히 workflow.md에 많은 문제가 있다는 것입니다.
00:06:31왜냐하면 제가 NPM을 변경하고 싶다고 말한 후,
00:06:34대신 PNPM을 사용하고 싶다고 했을 때 정말 큰 부분을 망쳐버렸기 때문입니다.
00:06:38제가 그것을 언급하는 것을 잊어버렸었거든요.
00:06:40어떤 이유에서인지, 먼저 백업을 만들려고 했습니다..
00:06:43그러면서 NPM으로 만든 파일들을 제거해야 한다고 했습니다.
00:06:46하지만 결국 모든 계획 파일들이 들어있던 conductor 폴더 전체를 삭제해버렸습니다.
00:06:51그것을 삭제한 후에는 계속해서 그 폴더를 찾고 있었습니다.
00:06:55그리고 찾을 수 없게 되자,
00:06:56컨텍스트와 메모리에 있는 모든 것을 사용해서 conductor 폴더를 재구성하겠다고 말했습니다..
00:07:02기본적으로,
00:07:03정상적인 컨텍스트 워크플로우가 해야 하는 것처럼 변경사항이 메인 컨텍스트 파일들과 특정 작업과 관련된 파일들에만 영향을 미쳐야 하는데,
00:07:09모든 것을 다시 작성해야 했습니다.
00:07:11이것이 바로 Be Mad가 효율적으로 작동하는 방식입니다.
00:07:14만약 제가 갑작스럽게 뭔가를 변경하라고 요청하지 않았다면, 아마 잘 진행됐을지도 모릅니다.
00:07:18하지만 여전히,
00:07:19모든 작업을 초기화할 때 첫 번째 트랙 구현을 시작하라고 요청했을 때,
00:07:23프로젝트와 필요한 다른 핵심 서비스들을 시작하고 초기화했습니다.
00:07:26Supabase 연결을 위한 환경 변수를 구성할 때가 되었을 때,
00:07:29어떤 이유에서인지 더미 키를 넣어놓고 자동으로 작업을 완료된 것으로 표시했습니다.
00:07:33Supabase 프로젝트를 설정하거나 실제 키를 제공하라고 물어보지도 않았습니다.
00:07:37그리고 자동으로 데이터베이스 스키마를 푸시하려고 했습니다.
00:07:40실제 키가 없었기 때문에 실패했죠.
00:07:42그러고 나서 문자열을 다시 확인하라고 요청했습니다.
00:07:44그래서 작업들조차 제대로 업데이트되지 않았고, 올바르게 따르지도 않았습니다.
00:07:48솔직히 말해서 지금 당장은 엔드 투 엔드 스펙 개발에 이것을 사용하지 않을 것 같습니다.
00:07:53Be Mad가 훨씬 더 나은 옵션입니다.
00:07:55그리고 작은 프로젝트의 경우에는, 여전히 제 자신의 컨텍스트 파일을 만듭니다.
00:07:59이것으로 이 영상의 마지막에 도달했습니다.
00:08:01채널을 지원하고 이런 영상을 계속 만드는 데 도움을 주고 싶으시다면,
00:08:04아래의 Super Thanks 버튼을 사용하시면 됩니다.
00:08:07언제나처럼, 시청해주셔서 감사하고 다음 영상에서 뵙겠습니다..

Key Takeaway

구글의 Gemini Conductor는 트랙 기반 작업 관리와 Git 통합 등 일부 기능은 괜찮지만, 부적절한 기술 스택 추천, 치명적인 파일 삭제 오류, 불완전한 작업 처리 등의 문제로 인해 실무에서 사용하기 어려운 도구입니다.

Highlights

구글의 Gemini Conductor는 컨텍스트 엔지니어링 워크플로우를 제공하지만 다른 도구들보다 나은 점이 없음

Conductor는 Gemini CLI 확장 프로그램으로 설치되며 트랙 기반으로 작업을 관리하는 방식 사용

프로젝트 초기화 시 기술 스택 추천이 부적절하고 중요한 요소들을 놓치는 문제 발생

NPM을 PNPM으로 변경 요청 시 conductor 폴더 전체를 삭제하는 치명적 오류 발생

환경 변수 설정 시 더미 키를 입력하고 실제 키를 요청하지 않아 작업이 실패함

80% 테스트 커버리지와 Git 통합 등 일부 워크플로우 기능은 양호한 편

현재로서는 Be Mad가 훨씬 더 나은 옵션이며 작은 프로젝트는 직접 컨텍스트 파일을 만드는 것을 권장

Timeline

인트로 및 Automata 소개

채널에서 다뤄온 다양한 컨텍스트 엔지니어링 워크플로우를 언급하며 구글의 새로운 워크플로우 Conductor를 소개합니다. 발표자는 이 도구가 다른 워크플로우보다 낫지 않으며 많은 문제가 있다고 솔직하게 밝힙니다. Gemini 생태계 내에서도 여전히 좋지 않다고 평가하며, 본론으로 들어가기 전에 Automata 서비스를 소개합니다. Automata는 수백만 명에게 AI 구축 방법을 가르친 경험을 바탕으로 고객의 아이디어를 앱이나 웹사이트로 실현해주는 기술 공동 조종사 역할을 한다고 설명합니다.

Conductor의 작동 원리와 설치 방법

Conductor가 실제로 어떻게 작동하는지 설명하며 문서 링크를 제공합니다. Conductor는 Gemini CLI에 확장 프로그램으로 설치되는데, 확장 프로그램은 명령어, MCP, 기타 규칙을 하나로 묶어 패키지화한 것입니다. Claude의 플러그인과 유사한 개념으로, 명령어를 통해 설치하면 됩니다. 설치 후에는 Conductor의 슬래시 명령어를 사용할 수 있으며, 워크플로우를 제어하는 다섯 가지 명령어가 제공됩니다.

Setup 명령어와 초기 프로젝트 설정

가장 먼저 사용하는 setup 명령어의 기능을 상세히 설명합니다. 이 명령어는 기존 Conductor 파일의 존재 여부를 확인하고, 트랙이라는 파일을 만들어 하나씩 완료합니다. 새로운 GitHub 저장소를 초기화하고 무엇을 만들지 물어보는데, 발표자는 간단한 프로젝트를 만들면서도 아키텍처의 품질을 테스트하고자 했습니다. 프로덕션 준비가 되어 있고 더 많은 사용자로 확장 가능해야 한다고 명시했으며, product.md 파일이 생성되었습니다. 처음에는 질문을 통해 다듬으려 했으나 질문들이 단순해서 결국 모든 것을 자동 생성하도록 했습니다.

제품 가이드라인 및 기술 스택 정의의 문제점

제품 가이드를 승인한 후 스타일링과 디자인 원칙에 중점을 둔 제품 가이드라인 파일이 생성되었습니다. 이후 기술 스택을 정의하는 과정에서 Conductor의 첫 번째 주요 문제가 드러났습니다. 전체 프로젝트의 성격을 알고 있었음에도 불구하고 제안한 기술 스택이 엉망이었고 적절한 것을 제대로 추천하지 않았습니다. 발표자가 직접 수정한 후에야 기술 스택을 승인하고 MD 파일을 업데이트할 수 있었습니다.

코드 스타일 가이드와 워크플로우의 장점

프로젝트에서 사용할 언어에 따라 코드 스타일 가이드가 초기화 중에 추가됩니다. Conductor가 기본적으로 사용하는 워크플로우는 실제로 꽤 좋은 편입니다. 80% 코드 테스트 커버리지를 기본으로 포함하고 있으며, 기본 컴포넌트를 작성하는 동안 테스트도 함께 작성되는지 확인합니다. 작업 완료 후에도 테스트를 진행하며, 모든 작업 후 변경사항을 커밋하고 git notes를 사용하여 문제 발생 시 추적이 가능하도록 합니다.

트랙 시스템과 Implement 명령어

초기 설정 완료 후 상위 수준의 제품 요구사항을 만들어 초기 트랙을 시작합니다. 첫 번째 트랙이 너무 광범위해서 더 작은 트랙으로 나눌 필요가 있었습니다. 하나의 트랙에서 처리하기에는 너무 많은 작업이 포함되어 있어 엉망이 될 가능성이 높았습니다. implement 명령어를 실행하면 tracks 폴더의 다양한 트랙을 하나씩 구현하기 시작합니다. 각 트랙에는 plan.md와 spec.md 두 개의 파일이 있으며, spec.md는 목표와 기술 스택에서 추출한 기술적 세부 사항을, plan.md는 구현해야 할 작업 목록을 포함합니다.

기타 명령어와 파일 관리 구조

implement 명령어는 tracks.md를 보고 각 트랙의 상태에 따라 수행할 작업을 결정합니다. 비어 있으면 시작 전, 진행 중, 완료 상태로 구분됩니다. status 명령어는 현재 진행 상황과 트랙 완료 상태에 대한 보고서를 제공합니다. new track 명령어는 새로운 작업에 대한 질문을 하며, 기존 저장소에 구현할 때는 기존 파일을 확인하고 명확한 질문만 합니다. revert 기능은 정말 똑똑하게 손상을 완화하고 git을 인식하여 에이전트의 실수를 복구할 수 있습니다. 현재 파일 관리와 구조는 나쁘지 않으며, 트랙으로 작업을 구현하고 추적하는 방식은 실제로 꽤 좋은 편입니다.

지침과 명령어의 근본적 문제점

파일 관리는 괜찮지만 지침이 작성된 방식과 명령어 파일에는 개선이 필요합니다. 컨텍스트 루프를 제대로 관리하지 못하고 있으며, 변경 사항 처리에도 문제가 있습니다. 초기 프로세스 중에 많은 실수가 발생했는데, 첫 번째 실수는 각 문서 생성 시 아이디어를 제대로 분석하지 않아 발표자가 직접 많은 부분을 안내해야 했다는 점입니다. 기술 스택 정의 시에도 많은 것을 놓쳤으며, 확장 가능한 앱을 원한다고 명시했음에도 명확하게 다시 설명해야 했습니다. 초기 트랙 생성 시 데이터베이스 스키마가 완전히 불완전했고, 앱 설정에 중요한 요소들을 놓쳐서 다시 올바른 방향으로 이끌어야 했습니다.

치명적인 파일 삭제 오류 사례

Gemini 자체는 좋은 모델이므로 문제는 구현된 명령어들에 있다고 판단됩니다. 가장 큰 문제는 메인 슬래시 명령어들과 workflow.md에 있습니다. NPM을 PNPM으로 변경하고 싶다고 말했을 때 치명적인 오류가 발생했습니다. 먼저 백업을 만들려고 시도하면서 NPM 파일들을 제거해야 한다고 했는데, 결국 모든 계획 파일이 들어있던 conductor 폴더 전체를 삭제해버렸습니다. 삭제 후에는 계속 그 폴더를 찾다가, 찾을 수 없게 되자 컨텍스트와 메모리에 있는 모든 것을 사용해서 conductor 폴더를 재구성하겠다고 했습니다. 정상적인 컨텍스트 워크플로우는 변경사항이 메인 컨텍스트 파일과 관련 파일에만 영향을 미쳐야 하는데, 모든 것을 다시 작성해야 했습니다.

환경 변수 설정 오류와 작업 처리 문제

갑작스러운 변경 요청이 없었다면 잘 진행됐을 수도 있지만, 여전히 근본적인 문제가 있습니다. 첫 번째 트랙 구현 시작 시 프로젝트와 핵심 서비스들을 초기화했는데, Supabase 연결을 위한 환경 변수 구성에서 문제가 발생했습니다. 어떤 이유에서인지 더미 키를 넣어놓고 자동으로 작업을 완료된 것으로 표시했습니다. Supabase 프로젝트 설정이나 실제 키 제공을 요청하지도 않았으며, 자동으로 데이터베이스 스키마를 푸시하려다 실패했습니다. 이후 문자열을 다시 확인하라고 요청했지만 작업들조차 제대로 업데이트되지 않았고 올바르게 따르지도 않았습니다.

결론 및 대안 제시

발표자는 솔직하게 현재로서는 엔드 투 엔드 스펙 개발에 Conductor를 사용하지 않을 것이라고 결론 내립니다. Be Mad가 훨씬 더 나은 옵션이며, 작은 프로젝트의 경우에는 여전히 자신만의 컨텍스트 파일을 만드는 것을 선호한다고 밝힙니다. 영상의 마지막에서 채널을 지원하고 이런 영상을 계속 만드는 데 도움을 주고 싶다면 Super Thanks 버튼을 사용해달라고 안내하며, 시청에 감사하고 다음 영상에서 만나자는 인사로 마무리합니다.

Community Posts

View all posts