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언제나처럼, 시청해주셔서 감사하고 다음 영상에서 뵙겠습니다..