Gemini Pro 3를 사용해 13앱 ‘Zoo’를 만들었습니다. 제약: 코드를 검사할 수 없었습니다.
Source: Dev.to
소개
최근 나는 “Vibe Coding”의 절대적인 한계를 테스트해 보기로 했습니다. 전통적인 엔지니어처럼 행동하지 않고도 마이크로‑앱 플랫폼을 견고하게 구축할 수 있을지 궁금했죠. 이를 확인하기 위해 AppZoo를 만들었습니다.
실험 규칙
- 수동 코드 검토 금지 – 생성된 코드를 읽을 수 없었습니다.
- Gemini가 React 컴포넌트를 작성하면, 구문을 감사할 수 없었습니다.
- Copilot이 Terraform 구성을 제안하면, 그대로 배포해야 했습니다.
- 제 역할은 “프로덕트 매니저”와 “QA”에 국한되었습니다. 구현이 아니라 동작만 검증할 수 있었습니다.
블라인드 트러스트 방법론
논리 검증 (수학)
Dual Fuel Calculator의 경우, 먼저 스프레드시트에 모델을 만들어 예상 답을 확인했습니다. 그 뒤 요구사항을 Gemini에 전달했죠. AI는 내 스프레드시트와 일치할 뿐 아니라 논리를 다듬어 온도 임계값을 내 수동 모델보다 더 정밀하게 처리했습니다. 출력 결과를 검증하고 그 코드를 신뢰했습니다.
바이브 체크 (시각)
Fractal Explorer와 Video‑to‑GIF Converter는 체험 중심의 테스트 계획을 적용했습니다. 프랙탈이 부드럽게 확대되거나 GIF가 빠르게 렌더링되면 해당 앱은 통과했습니다.
아키텍처: 샌드박스 보안
검증되지 않은 AI 코드를 실행하는 것은 위험하므로, AI가 Terraform을 이용해 Domain Isolation Model을 구축하도록 하여 위험을 완화했습니다:
- 각 마이크로 앱은 자체 서브도메인에 존재합니다 (예:
zork.appzoo...,dualfuel.appzoo...). - 이는 브라우저의 동일 출처 정책을 활용하여, 손상된 앱이 메인 사이트의 쿠키나
localStorage에 접근하는 것을 방지합니다. - 전체 “Zoo”는 100 % 클라이언트 측이며, 해킹할 백엔드가 없습니다.
마찰점
AI가 “순환 논리” 루프에 자주 빠져, 동일한 잘못된 수정을 연속 세 번 제안했습니다.
해결책
모델 전환이 최고의 디버거라는 것을 발견했습니다. Gemini Pro가 멈추면 Copilot을 다른 기반 모델로 전환해 루프에서 벗어나게 했습니다.
결과
결과는 13개의 작동 앱 컬렉션이며, 실용적인 도구(히트 펌프 비용 분석)부터 순수 장난감(무한 Zork, 3D CSS Studios)까지 다양합니다. 다소 엉성하고 아직 찾지 못한 버그가 있지만, 존재합니다.
여기서 Zoo를 탐험할 수 있습니다: