gstack: 클로드 코드를 위한 오픈소스 워크플로우 시스템
AI 코딩 지원이 더욱 신뢰성 있게 되려면 어떻게 해야 할까요? 제품 계획, 엔지니어링 리뷰, 릴리스, QA를 명확한 운영 모드로 분리하는 방법이 있습니다. 바로 가리 탄이 공개한 오픈소스 툴킷 gstack은 클로드 코드를 8가지의 전문적인 워크플로우 기술로 패키징하여 지속적인 브라우저 런타임을 제공합니다. gstack은 단순히 새로운 모델 층을 추가하는 것이 아니라, 클로드 코드가 제품 계획, 엔지니어링 리뷰, 릴리스, 테스트 과정에서 더 명확한 역할 구분을 통해 효율적으로 작동하도록 돕는 데 목적을 두고 있습니다.
최근 AI 코딩 툴들이 등장하면서 개발 생산성을 높일 수 있다는 기대감이 커지고 있습니다. 하지만 단순히 코드를 생성하는 것 이상으로, 제품의 품질을 유지하고 배포 과정을 효율적으로 관리하는 것이 중요합니다. 이때 워크플로우 관리의 중요성이 부각되는데, gstack은 이러한 부분을 해결하기 위한 혁신적인 시도라고 할 수 있습니다.
8가지 핵심 명령어
현재 gstack 저장소는 8가지 주요 명령어를 제공합니다. /plan-ceo-review (CEO 리뷰 계획), /plan-eng-review (엔지니어링 리뷰 계획), /review (코드 검토), /ship (배포), /browse (브라우저 탐색), /qa (QA 테스트), /setup-browser-cookies (브라우저 쿠키 설정), /retro (회고) 등이 있습니다. 각 명령어는 특정 운영 모드와 연결되어 있으며, 소프트웨어 배송 작업을 효율적으로 분리하고 관리하도록 설계되었습니다. 특히 워크플로우를 체계적으로 정의하여 업무 효율성을 극대화합니다.
지속적인 브라우저가 핵심 시스템이다
gstack의 가장 중요한 기술적 부분은 Markdown 기술이 아니라 브라우저 서브시스템입니다. gstack은 클로드 코드에게 지속적인 브라우저 환경을 제공하며, 이 브라우저 환경을 유지하는 것이 가장 어려운 부분입니다. 각 작업을 위해 새로운 브라우저를 실행하는 대신, gstack은 장기 실행 헤드리스 크로미움 데몬을 실행하고 로컬 호스트 HTTP를 통해 통신합니다. 이는 지연 시간을 줄이고 상태를 유지하는 데 도움이 됩니다. 콜드 스타트는 약 3~5초가 소요되지만, 시작 후의 후속 호출은 약 100~200ms 내에 실행됩니다. 브라우저가 살아있기 때문에 쿠키, 탭, localStorage, 로그인 상태가 명령 간에 유지됩니다. 또한 서버는 30분 동안 유휴 상태인 경우 자동으로 종료됩니다. 이러한 지속적인 브라우저 환경은 워크플로우의 효율성을 높이는 데 중요한 역할을 합니다.
브라우저 자동화를 QA에 연결하는 방법
이러한 데몬 아키텍처는 QA와 브라우저 기반 개발에 매우 중요합니다. 많은 에이전트 워크플로우에서 브라우저 자동화는 디버깅 단계 또는 스크린샷 유틸리티로 사용됩니다. gstack에서는 브라우저 접근이 핵심 워크플로우의 일부입니다. /browse 모드는 에이전트가 로그인하고 앱을 탐색하며 스크린샷을 찍고 오류를 검사할 수 있도록 합니다. /qa는 브라우저 diff를 분석하고, 영향을 받은 경로를 식별하고, 관련 페이지 또는 흐름을 테스트하여 이러한 기능을 확장합니다. 이 샘플 흐름은 /qa가 8개의 변경된 파일과 3개의 영향을 받은 경로를 검사하고, 그런 다음 로컬 앱 인스턴스에 대해 해당 경로를 테스트하는 것을 보여줍니다. 즉, 프로젝트는 소스 변경 사항을 실제 애플리케이션 동작과 연결하려고 노력하며 QA를 별도의 수동 단계를 취급하지 않습니다. 워크플로우를 통해 이러한 연결을 강화하는 것입니다.
설치 요구 사항 및 프로젝트 레이아웃
저장소의 구현 선택은 매우 구체적입니다. gstack은 Claude Code, Git 및 Bun v1.0+을 요구합니다. package.json 파일은 현재 버전을 0.3.3으로 표시하고, Playwright와 diff를 런타임 종속성으로 나열하며, browse 소스 트리에서 browse 실행 파일을 컴파일합니다. 저장소 README에 따르면 /browse는 네이티브 바이너리를 컴파일하고 macOS 및 Linux, x64 및 arm64 모두에서 지원됩니다. 설치 흐름은 저장소를 ~/.claude/skills/gstack에 복사하고 ./setup을 실행하고 Claude Code에 대한 기술을 등록합니다. 팀은 또한 동일한 설정을 프로젝트 내 .claude/skills/gstack 디렉터리에 복사하여 워크플로우를 공유할 수 있습니다.
Bun을 사용하는 이유
아키텍처 문서는 Bun을 Node.js와 같은 기존 Node.js 설정 대신 사용하는 이유를 설명합니다. 4가지 이유가 명시되어 있습니다. 컴파일된 바이너리, 네이티브 SQLite 액세스, 네이티브 TypeScript 실행, 내장 HTTP 서버인 Bun.serve() 등이 있습니다. 이러한 선택은 장식적인 것이 아니라 실용적입니다. gstack은 Chromium의 SQLite 쿠키 데이터베이스를 직접 읽고 있으며, Bun의 내장된 데이터베이스 지원은 추가 네이티브 패키지의 필요성을 없앱니다. 컴파일된 바이너리 모델 또한 저장소의 설치 스타일과 일치하며, 사용자는 ~/.claude/skills/ 내에 별도의 런타임 툴체인을 관리할 것으로 예상되지 않습니다. 따라서 워크플로우를 원활하게 구축하기 위해 이러한 기술 선택이 이루어졌습니다.
주요 시사점
- gstack은 새로운 모델이나 에이전트 프레임워크가 아닌 워크플로우 레이어입니다.
- 지속적인 브라우저 데몬이 핵심 기술 구성 요소입니다.
- QA는 코드 변경 사항과 직접적으로 연결됩니다.
- 프로젝트는 컴파일된 바이너리, 네이티브 SQLite 액세스, 네이티브 TypeScript 실행 및 브라우저 데몬을 위한 내장 HTTP 서버를 위해 Bun을 사용합니다.
- gstack의 기여는 운영 구조입니다. 제품 검토, 엔지니어링 검토, 코드 검토, 릴리스 및 브라우저 기반 검증을 명확한 모드로 분리하여 책임 범위를 좁힙니다.
결론적으로 gstack은 클로드 코드를 활용한 개발 워크플로우를 혁신하는 중요한 도구입니다. 앞으로 gstack은 개발 생산성 향상과 코드 품질 유지에 기여할 것으로 기대됩니다.