망가진 UI를 고치는 최고의 해결책, ShadCN 루프

AAI LABS
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00여러분 대부분은 이미 shad cn을 가장 널리 사용되는 UI 라이브러리 중 하나로 알고 계실 겁니다.
00:00:05하지만 AI 에이전트를 사용해서 개발하면 문제가 생길 수 있습니다.
00:00:09원샷 랜딩 페이지를 만든다면 큰 문제가 없겠지만,
00:00:12새로운 앱을 만들거나 새로운 기능을 구현할 때는 오류가 발생하고 앱의 다른 부분까지 망가뜨립니다.
00:00:17하지만 이건 새로운 문제가 아닙니다.
00:00:19이미 해결된 문제이고, 현재 엔지니어들이 앱을 개발하는 방식이죠.
00:00:23AI 에이전트는 항상 자신이 작성한 코드를 테스트하지만,
00:00:26컨텍스트가 커지면 이런 에이전트들이 신뢰할 수 없게 됩니다.
00:00:29따라서 에이전트가 주어진 작업을 완수하도록 보장하는 방법이 필요합니다.
00:00:33바로 여기서 에이전트 루프 개념이 등장합니다.
00:00:35Anthropic은 RALPH 루프를 사용해서 이를 해결하죠.
00:00:39제 UI 문제를 해결하기 위해 RALPH 루프를 구현해봤는데, 처음엔 완전히 실패했습니다.
00:00:44하지만 곧 RALPH 루프 때문이 아니라 제가 함께 구현한 프로세스 때문이라는 걸 알게 됐습니다.
00:00:49RALPH는 사실 Anthropic이 직접 출시한 새로운 플러그인입니다.
00:00:53하지만 이건 그들의 독창적인 아이디어가 아니라 다른 사람의 기술을 기반으로 Anthropic이 구현하고 오픈소스화한 것입니다.
00:01:00기본적으로 RALPH는 루프이고,
00:01:02Claude Code Hook을 알고 계시다면 Claude가 답변 출력을 멈출 때 실행되는 stop hook을 사용합니다.
00:01:09멈추는 즉시 AI 에이전트에게 초기 프롬프트 파일이 다시 입력되고,
00:01:13이를 통해 반복적으로 작업을 개선할 수 있습니다.
00:01:15이제 중요한 질문입니다.
00:01:17언제 루프를 빠져나올까요?
00:01:18완료 프로미스(completion promise)라는 게 있는데,
00:01:22이는 여러분이 입력하는 어떤 단어든 될 수 있습니다.
00:01:24Claude가 작업이 완료됐다고 느끼면 이 프로미스를 스스로 출력합니다.
00:01:28예를 들어 이 경우엔 프로미스가 'complete'라는 단어입니다.
00:01:32반환 프롬프트에 프로미스가 있으면 루프가 다시 실행되지 않습니다.
00:01:36따라서 Claude가 프로미스를 출력할 때까지 멈추지 않습니다.
00:01:39이렇게 하면 Claude가 원할 때마다 그냥 종료하지 않게 됩니다.
00:01:43플러그인을 설치하면 세 가지 명령어를 사용할 수 있습니다.
00:01:46RALPH 루프 명령어, 취소 명령어, 그리고 도움말 명령어입니다.
00:01:50루프 명령어에서는 에이전트에게 반복적으로 입력될 프롬프트를 제공해야 합니다.
00:01:54때로는 해결할 수 없는 불가능한 작업을 받아서 무한 루프에 빠질 수도 있으므로 최대 반복 횟수를 설정하는 게 정말 좋은 관행입니다.
00:02:01RALPH 루프에 제공할 수 있는 프롬프트에 대한 좋은 모범 사례가 있는 레포 링크를 아래에 남겨두겠습니다.
00:02:07하지만 이 영상에서는 제가 보여드릴 UI 워크플로우와 관련된 것들만 다루겠습니다.
00:02:12그럼 이 앱에 두 가지 기능을 구현한다고 가정해봅시다.
00:02:15하나는 앱을 검색하고 다른 명령어를 실행할 수 있는 메뉴를 추가하는 커맨드 팔레트입니다.
00:02:20이 새로운 기능이 앱의 다른 부분을 망가뜨리지 않도록 하려면 테스트부터 시작해야 합니다.
00:02:25이를 테스트 주도 개발(TDD)이라고 합니다.
00:02:27익숙하지 않다면 Claude Code에게 TDD 구조를 설정해달라고 요청할 수 있습니다.
00:02:32end-to-end 테스트 폴더, UI 문제를 확인할 스크린샷 폴더, 그리고 해당 테스트도 만들어줍니다.
00:02:38구현할 또 다른 기능은 Notion의 데이터베이스처럼 데이터베이스에서 보드 뷰를 구현하는 것입니다.
00:02:43눈치채셨다면, 테스트 주도 개발은 코드를 구현하기 전에 테스트를 먼저 작성하는 접근 방식입니다.
00:02:49하지만 이는 초기 테스트가 항상 실패한다는 의미입니다.
00:02:52커맨드 팔레트 기능을 구현한다면 코드 작성부터 시작하지 않습니다.
00:02:55대신 먼저 정교한 테스트를 작성합니다.
00:02:57그런 다음 그 테스트를 통과하는 데 필요한 최소한의 코드를 작성합니다.
00:03:01그게 완료되면 리팩토링하고 더 많은 기능을 추가합니다.
00:03:04그리고 추가할 때마다 테스트가 여전히 통과하는지 확인합니다.
00:03:08또 다른 흥미로운 점은 이런 테스트들이 자동화되어 있고 Playwright를 가져와서 시각적 검증에 사용할 수 있다는 것입니다.
00:03:15Playwright MCP를 사용해서 브라우저를 통해 자율적으로 검증한다고 생각하신다면 틀렸습니다.
00:03:20TDD에서는 각 기능적 동작마다 스크린샷을 찍을 수 있습니다.
00:03:24예를 들어 기능적 동작이 카드 추가라면 스크린샷은 보드에 카드가 추가된 것을 보여줍니다.
00:03:28이제 AI 에이전트가 해야 할 일은 그 스크린샷들을 보고 이 shad cn 컴포넌트들이 구현된 방식에 문제가 없는지 확인하는 것뿐입니다.
00:03:36이런 테스트 파일들은 새로운 것이 추가되거나 기능이 구축되는 동안 모든 동작 요구사항이 충족되도록 보장합니다.
00:03:42하지만 우리의 경우 스크린샷을 순수하게 UI 검증용으로만 사용하려고 합니다.
00:03:46하지만 TDD가 이미 있는데 왜 RALPH 루프가 필요할까요?
00:03:50제가 이미 말씀드렸듯이 더 큰 작업과 컨텍스트 윈도우가 거의 가득 차게 되면 이런 모델들이 갑자기 작업을 중단하고 지속적인 사람의 입력을 요구합니다.
00:03:58따라서 원하는 모든 유형의 함수에 대해 미리 테스트를 작성한 다음,
00:04:02루프를 사용해서 무엇을 해야 하는지 지시하면 자율적으로 작업할 수 있습니다.
00:04:06어떤 워크플로우를 따라야 하는지 알려주고,
00:04:08언제 프로미스를 출력할 수 있는지 조건을 제공하면 작업을 완료하고 루프를 종료합니다.
00:04:13이 경우엔 25개의 고유한 테스트를 모두 통과했을 때입니다.
00:04:16RALPH 슬래시 명령어를 사용해서 커맨드 팔레트 기능을 반복적으로 구축하도록 프롬프트를 제공했습니다.
00:04:22프롬프트에서는 기본적으로 몇 가지 기본 요구사항과 함께 기능을 구현하라고 말했습니다.
00:04:27요구사항은 테스트에서도 찾을 수 있기 때문에 실제로 중요하지 않지만, 전체 워크플로우는 명시했습니다.
00:04:32그 워크플로우에서는 테스트를 실행하는 것으로 시작하도록 되어 있었습니다.
00:04:36테스트가 실패할 것을 알고 있고, 그 후에는 테스트를 통과시키기 위해 컴포넌트를 구현해야 합니다.
00:04:42그게 전체 목표입니다.
00:04:43이제 이것이 훨씬 더 광범위한 작업이었다면 컨텍스트 윈도우가 가득 차거나 Claude가 혼란스러워질 때 자동으로 종료될 가능성이 높습니다.
00:04:51완료 프로미스를 절대 출력하지 않을 것이고,
00:04:53프로미스를 출력하지 않았기 때문에 프롬프트가 다시 입력되고 처음부터 다시 시작해야 합니다.
00:04:58즉 반복적으로 계속 작업할 것입니다.
00:05:00하지만 이건 작은 작업이었기 때문에 실제로 한 번에 모든 것을 구현하고 모든 컴포넌트를 작성하고 모든 테스트를 통과시킬 수 있었습니다.
00:05:07이제 테스트가 통과한 후 워크플로우는 커맨드 팔레트의 모든 스크린샷을 검토하라고 지시합니다.
00:05:13이것들은 UI가 shad cn이든 다른 컴포넌트 라이브러리든 올바르게 구현되었고 사소한 문제가 없는지 확인하기 위해 다양한 단계에서 찍은 스크린샷입니다.
00:05:21그 후에는 테스트를 다시 실행하고 UI 변경 후에도 여전히 통과하는지 확인해야 합니다.
00:05:26모든 테스트가 통과하고 스크린샷이 검토되었기 때문에 완료 프로미스를 출력했습니다.
00:05:30여기서 루프가 멈추고 다시 계속되지 않았습니다.
00:05:33하지만 여기에는 정말 큰 문제가 있었는데, 커맨드 팔레트 기능에서는 눈치채지 못했습니다.
00:05:38UI 오류가 발생할 가능성이 매우 적었기 때문입니다.
00:05:41하지만 보드 뷰 구현으로 넘어갔을 때 시스템에 큰 실수가 있다는 걸 깨달았습니다.
00:05:45같은 프롬프트로 보드 구현을 시작했습니다.
00:05:48요구사항은 물론 달랐지만 워크플로우는 거의 동일했습니다.
00:05:51한 번에 모든 요구사항을 완료했을 때 좀 놀랐습니다.
00:05:54오해하지 마세요, 실제로 모든 테스트가 통과하는지 확인하고 있었습니다.
00:05:57하지만 그러는 동안 성공한 테스트 수가 실제로 감소하는 경우가 있었습니다.
00:06:02무언가를 변경해서 다른 것이 망가졌기 때문입니다.
00:06:04이것이 바로 TDD가 정말 중요한 이유입니다.
00:06:07이런 재귀적 테스트와 모든 것이 작동하는지 확인하는 것 때문입니다.
00:06:10하지만 주요 문제는 완료됐다고 검증한 후 제가 UI를 확인했을 때 대부분은 올바르게 구현되었지만 이것과 같은 일부 UI 오류를 완전히 놓쳤다는 것입니다.
00:06:19스크린샷도 확인했는데 그 스크린샷에도 오류가 나타나고 있었습니다.
00:06:23그래서 물어봤고 실제로 무엇이 잘못됐는지 분석했습니다.
00:06:26진짜 문제는 프로세스 실패였습니다.
00:06:27특히 UI 수정 측면에서요.
00:06:29무슨 일이 있었냐면,
00:06:30테스트 파일을 반복해서 실행해야 했기 때문에 모든 테스트를 통과하긴 했지만,
00:06:34스크린샷 외에는 UI에 대한 특정 테스트가 없었습니다.
00:06:37몇 개만 훑어봤고 심지어 본 UI 오류 중 일부를 무시하기도 했습니다.
00:06:41일부 파일은 완전히 무시됐습니다.
00:06:43따라서 주요 문제는 프로미스 문구를 너무 일찍 출력하고 UI가 실제로 수정되었는지 검증하지 않았다는 것입니다.
00:06:49우리는 이를 어떻게 해결할 수 있을지 브레인스토밍 세션을 진행했고,
00:06:53심지어 레포의 프롬프트 작성 모범 사례를 Claude Code에 제공하기도 했습니다.
00:06:57하지만 결국 UI가 항상 올바르도록 보장할 몇 가지 특정 규칙과 프로세스 변경을 생각해냈습니다.
00:07:03이제 이건 테스트와는 아무 관련이 없습니다.
00:07:05테스트는 항상 실행될 것이기 때문입니다.
00:07:07커맨드 팔레트에 사용한 프롬프트는 기능이나 구현이 매우 클 때 정말 유용합니다.
00:07:12Claude가 작업을 완료했다고 환각을 일으키는 게 아니라 가득 찬 컨텍스트 윈도우나 작업의 복잡성 때문에 갑자기 종료하는 경우에요.
00:07:19Claude Code는 이미 정말 자율적입니다.
00:07:22의심의 여지가 없죠.
00:07:23하지만 여전히 이런 문제들을 해결해야 합니다.
00:07:25그래서 메인 프롬프트에서 여러 가지를 변경했습니다.
00:07:28첫 번째는 스크린샷 검증 프로토콜이었습니다.
00:07:31각 이미지에 간단한 접두사를 추가해서 Claude가 스크린샷을 읽었는지 아닌지 알려줬습니다.
00:07:36하지만 처음 구현했을 때 여전히 모든 이미지를 읽지 않았습니다.
00:07:39몇 개만 읽고 그 위에 verified를 쓴 다음 이전처럼 일찍 종료했습니다.
00:07:43그래서 이를 해결하기 위해 다른 방식으로 생각하도록 유도했습니다.
00:07:47모든 스크린샷 이름을 바꾼 후에는 아직 프로미스를 출력하지 말라고 했습니다.
00:07:51즉, 작업이 완료됐다고 간주하지 말고 다음 반복에서 완료를 확인하도록 하라는 것입니다.
00:07:56그래서 최소 두 번의 루프가 실행돼야 합니다.
00:07:59다음 검증에서는 Claude가 모든 파일에 verified 접두사가 있는지 확인합니다.
00:08:03물론 이는 테스트를 변경하고 이미지 검증을 기능 테스트와 분리해야 한다는 의미였습니다.
00:08:08다음 반복에서는 모든 이미지에 verified 결과가 있는지 확인하고,
00:08:12Claude가 놓친 게 있으면 다시 보고 출력을 수정합니다.
00:08:15이 변경으로 우리가 직면했던 사소한 UI 오류가 마침내 수정되었고 이 모든 기능을 올바르게 구현할 수 있었습니다.
00:08:22다음 루프에 진입했을 때 테스트를 다시 실행했습니다.
00:08:25몇 가지 오류를 발견했기 때문에 수정했고,
00:08:27모든 파일에 verified라는 단어가 있었기 때문에 최종 테스트를 실행했습니다.
00:08:31이번에는 두 번의 루프로 작업을 완료하고 앱의 모든 주요 UI 오류를 수정할 수 있었습니다.
00:08:36이제 Automata에 대해 이야기해봅시다.
00:08:39수백만 명에게 AI로 구축하는 방법을 가르친 후 우리는 이런 워크플로우를 직접 구현하기 시작했습니다.
00:08:44그 어느 때보다 빠르게 더 나은 제품을 만들 수 있다는 걸 발견했습니다.
00:08:48여러분의 아이디어를 실현시켜 드립니다.
00:08:51앱이든 웹사이트든 말이죠.
00:08:52아마 우리 영상을 보면서 '좋은 아이디어가 있는데 구축할 기술 팀이 없어'라고 생각하셨을 겁니다.
00:08:57바로 그게 우리가 개입하는 지점입니다.
00:08:59우리를 여러분의 기술 부조종사라고 생각하세요.
00:09:02우리는 수백만 명에게 가르쳤던 동일한 워크플로우를 여러분의 프로젝트에 직접 적용해서 개발팀을 고용하거나 관리하는 골칫거리 없이 컨셉을 실제 작동하는 솔루션으로 전환합니다.
00:09:11여러분의 아이디어를 현실로 가속화할 준비가 되셨나요?
00:09:14hello@automata.dev로 연락주세요.
00:09:17채널을 지원하고 이런 영상을 계속 만들 수 있도록 돕고 싶으시다면 아래 슈퍼 땡스 버튼을 사용하시면 됩니다.
00:09:23언제나처럼 시청해주셔서 감사드리고, 다음 영상에서 뵙겠습니다..

Key Takeaway

AI 에이전트 개발에서 발생하는 UI 오류를 RALPH 루프와 테스트 주도 개발(TDD), 그리고 개선된 스크린샷 검증 프로토콜을 결합하여 자율적이고 안정적으로 해결할 수 있다.

Highlights

AI 에이전트로 개발할 때 UI가 망가지는 문제를 ShadCN과 RALPH 루프로 해결할 수 있다

RALPH 루프는 Anthropic이 구현한 반복 루프로, Claude가 작업을 완료할 때까지 프롬프트를 반복 입력한다

테스트 주도 개발(TDD)과 RALPH 루프를 결합하면 AI 에이전트가 자율적으로 작업을 완료하고 UI 오류를 방지할 수 있다

스크린샷 검증 프로토콜을 개선하여 Claude가 모든 UI 이미지를 확인하고 verified 접두사를 추가하도록 강제해야 한다

완료 프로미스(completion promise)를 통해 루프 종료 시점을 제어하며, 최소 두 번의 루프 실행으로 UI 검증을 보장한다

Timeline

AI 에이전트 개발의 문제점과 ShadCN

ShadCN은 가장 널리 사용되는 UI 라이브러리 중 하나이지만 AI 에이전트로 개발할 때 문제가 발생한다. 원샷 랜딩 페이지는 문제없지만 새로운 앱이나 기능을 구현할 때 오류가 발생하고 앱의 다른 부분까지 망가뜨린다. AI 에이전트는 항상 자신의 코드를 테스트하지만 컨텍스트가 커지면 신뢰할 수 없게 되어, 에이전트가 주어진 작업을 완수하도록 보장하는 방법이 필요하다. 이 문제는 새로운 것이 아니라 이미 현재 엔지니어들이 해결하고 있는 문제다.

RALPH 루프의 개념과 작동 원리

Anthropic은 에이전트 루프 개념인 RALPH 루프를 사용해서 이 문제를 해결한다. RALPH는 Anthropic이 다른 사람의 기술을 기반으로 구현하고 오픈소스화한 새로운 플러그인이다. 기본적으로 RALPH는 루프이며, Claude Code Hook의 stop hook을 사용해서 Claude가 답변 출력을 멈출 때 초기 프롬프트 파일이 다시 입력되어 반복적으로 작업을 개선할 수 있다. 완료 프로미스(completion promise)라는 개념이 있어서, Claude가 작업이 완료됐다고 느끼면 이 프로미스를 스스로 출력한다. 예를 들어 'complete'라는 단어를 프로미스로 설정하면, 반환 프롬프트에 프로미스가 있을 때 루프가 다시 실행되지 않아 Claude가 원할 때마다 그냥 종료하지 않게 된다.

RALPH 루프 설치와 사용법

플러그인을 설치하면 RALPH 루프 명령어, 취소 명령어, 그리고 도움말 명령어 세 가지를 사용할 수 있다. 루프 명령어에서는 에이전트에게 반복적으로 입력될 프롬프트를 제공해야 한다. 때로는 해결할 수 없는 불가능한 작업을 받아서 무한 루프에 빠질 수 있으므로 최대 반복 횟수를 설정하는 게 좋은 관행이다. RALPH 루프에 제공할 수 있는 프롬프트에 대한 좋은 모범 사례가 있는 레포 링크를 제공하며, 이 영상에서는 UI 워크플로우와 관련된 것들만 다룬다.

테스트 주도 개발(TDD)의 도입

커맨드 팔레트와 보드 뷰라는 두 가지 기능을 구현하는 예시를 통해 TDD 접근법을 설명한다. 새로운 기능이 앱의 다른 부분을 망가뜨리지 않도록 하려면 테스트부터 시작해야 하며, 이를 테스트 주도 개발(TDD)이라고 한다. Claude Code에게 TDD 구조를 설정해달라고 요청하면 end-to-end 테스트 폴더, UI 문제를 확인할 스크린샷 폴더, 그리고 해당 테스트를 만들어준다. TDD는 코드를 구현하기 전에 테스트를 먼저 작성하는 접근 방식으로, 초기 테스트가 항상 실패하지만 먼저 정교한 테스트를 작성한 다음 그 테스트를 통과하는 데 필요한 최소한의 코드를 작성하고, 완료되면 리팩토링하고 더 많은 기능을 추가하면서 테스트가 여전히 통과하는지 확인한다.

자동화된 테스트와 시각적 검증

이런 테스트들은 자동화되어 있고 Playwright를 가져와서 시각적 검증에 사용할 수 있다. Playwright MCP를 사용해서 브라우저를 통해 자율적으로 검증하는 것은 아니며, TDD에서는 각 기능적 동작마다 스크린샷을 찍을 수 있다. 예를 들어 기능적 동작이 카드 추가라면 스크린샷은 보드에 카드가 추가된 것을 보여준다. AI 에이전트가 해야 할 일은 그 스크린샷들을 보고 shad cn 컴포넌트들이 구현된 방식에 문제가 없는지 확인하는 것뿐이다. 이런 테스트 파일들은 새로운 것이 추가되거나 기능이 구축되는 동안 모든 동작 요구사항이 충족되도록 보장하며, 스크린샷은 순수하게 UI 검증용으로만 사용한다.

RALPH 루프가 필요한 이유와 첫 번째 구현

TDD가 이미 있는데도 RALPH 루프가 필요한 이유는 더 큰 작업과 컨텍스트 윈도우가 거의 가득 차게 되면 모델들이 갑자기 작업을 중단하고 지속적인 사람의 입력을 요구하기 때문이다. 원하는 모든 유형의 함수에 대해 미리 테스트를 작성한 다음 루프를 사용해서 무엇을 해야 하는지 지시하면 자율적으로 작업할 수 있다. 어떤 워크플로우를 따라야 하는지 알려주고 언제 프로미스를 출력할 수 있는지 조건을 제공하면 작업을 완료하고 루프를 종료한다. 커맨드 팔레트 기능의 경우 25개의 고유한 테스트를 모두 통과했을 때가 그 조건이었다. RALPH 슬래시 명령어를 사용해서 프롬프트를 제공했으며, 테스트를 실행하고 실패한 후 테스트를 통과시키기 위해 컴포넌트를 구현하는 전체 워크플로우를 명시했다.

보드 뷰 구현에서 발견된 주요 문제

커맨드 팔레트 기능에서는 UI 오류가 발생할 가능성이 매우 적었기 때문에 문제를 눈치채지 못했다. 하지만 보드 뷰 구현으로 넘어갔을 때 시스템에 큰 실수가 있다는 걸 깨달았다. 같은 프롬프트로 보드 구현을 시작했고 한 번에 모든 요구사항을 완료했지만, 실제로 모든 테스트가 통과하는지 확인하는 동안 성공한 테스트 수가 실제로 감소하는 경우가 있었다. 무언가를 변경해서 다른 것이 망가졌기 때문이며, 이것이 바로 TDD가 정말 중요한 이유다. 주요 문제는 완료됐다고 검증한 후 UI를 확인했을 때 대부분은 올바르게 구현되었지만 일부 UI 오류를 완전히 놓쳤다는 것이다. 스크린샷도 확인했는데 그 스크린샷에도 오류가 나타나고 있었다.

프로세스 실패의 원인 분석

실제로 무엇이 잘못됐는지 분석한 결과 진짜 문제는 프로세스 실패였으며, 특히 UI 수정 측면에서 그랬다. 테스트 파일을 반복해서 실행해야 했기 때문에 모든 테스트를 통과하긴 했지만, 스크린샷 외에는 UI에 대한 특정 테스트가 없었다. 몇 개만 훑어봤고 심지어 본 UI 오류 중 일부를 무시하기도 했으며, 일부 파일은 완전히 무시됐다. 주요 문제는 프로미스 문구를 너무 일찍 출력하고 UI가 실제로 수정되었는지 검증하지 않았다는 것이다. 이를 해결하기 위해 브레인스토밍 세션을 진행했고, 심지어 레포의 프롬프트 작성 모범 사례를 Claude Code에 제공하기도 했다. 결국 UI가 항상 올바르도록 보장할 몇 가지 특정 규칙과 프로세스 변경을 생각해냈다.

개선된 스크린샷 검증 프로토콜

메인 프롬프트에서 여러 가지를 변경했는데, 첫 번째는 스크린샷 검증 프로토콜이었다. 각 이미지에 간단한 접두사를 추가해서 Claude가 스크린샷을 읽었는지 아닌지 알려줬지만, 처음 구현했을 때 여전히 모든 이미지를 읽지 않고 몇 개만 읽고 verified를 쓴 다음 일찍 종료했다. 이를 해결하기 위해 모든 스크린샷 이름을 바꾼 후에는 아직 프로미스를 출력하지 말라고 했으며, 작업이 완료됐다고 간주하지 말고 다음 반복에서 완료를 확인하도록 했다. 그래서 최소 두 번의 루프가 실행돼야 하며, 다음 검증에서는 Claude가 모든 파일에 verified 접두사가 있는지 확인한다. 이는 테스트를 변경하고 이미지 검증을 기능 테스트와 분리해야 한다는 의미였다. 다음 반복에서는 모든 이미지에 verified 결과가 있는지 확인하고, Claude가 놓친 게 있으면 다시 보고 출력을 수정한다. 이 변경으로 사소한 UI 오류가 마침내 수정되었고 모든 기능을 올바르게 구현할 수 있었으며, 두 번의 루프로 작업을 완료하고 앱의 모든 주요 UI 오류를 수정할 수 있었다.

Automata 서비스 소개와 마무리

수백만 명에게 AI로 구축하는 방법을 가르친 후 이런 워크플로우를 직접 구현하기 시작했으며, 그 어느 때보다 빠르게 더 나은 제품을 만들 수 있다는 걸 발견했다. Automata는 여러분의 아이디어를 실현시켜 주는 서비스로, 앱이든 웹사이트든 만들어준다. 좋은 아이디어가 있지만 구축할 기술 팀이 없는 사람들을 위한 서비스이며, 기술 부조종사 역할을 한다. 수백만 명에게 가르쳤던 동일한 워크플로우를 프로젝트에 직접 적용해서 개발팀을 고용하거나 관리하는 골칫거리 없이 컨셉을 실제 작동하는 솔루션으로 전환한다. hello@automata.dev로 연락하면 되며, 채널을 지원하고 싶으면 슈퍼 땡스 버튼을 사용할 수 있다.

Community Posts

View all posts