106 | Vibe Coding vs Agentic Engineering mit OpenClaw Creator Peter Steinberger

106 | Vibe Coding vs Agentic Engineering mit OpenClaw Creator Peter Steinberger

간략한 요약

이 비디오에서는 Peter Steinberger가 AI를 활용한 소프트웨어 개발 방식인 "에이전트 엔지니어링(Agentic Engineering)"에 대해 설명합니다. 그는 과거 iOS 개발자로서의 경험과 현재 AI를 이용한 코딩 방식의 차이점을 강조하며, AI를 도구로 활용하여 개발 생산성을 극대화하는 방법을 제시합니다. 또한, 그는 오픈 소스 철학을 강조하며 자신의 프로젝트를 통해 다른 개발자들에게 영감을 주고자 합니다.

  • 에이전트 엔지니어링은 AI를 활용하여 소프트웨어 개발 생산성을 높이는 방법입니다.
  • Peter Steinberger는 과거 iOS 개발 경험을 바탕으로 AI 코딩의 장단점을 설명합니다.
  • 그는 오픈 소스 철학을 강조하며 자신의 프로젝트를 통해 다른 개발자들에게 영감을 주고자 합니다.

소개

Peter Steinberger는 대규모 소프트웨어 프로젝트를 와이프 코딩(Wipe Coding)으로 구현하여 예측 가능성을 유지하고 새로운 기능을 지속적으로 추가할 수 있다고 주장합니다. 그는 에이전트 엔지니어링이라는 접근 방식을 통해 AI 기술을 활용하여 대규모 코드베이스를 유지하고 새로운 기능을 추가할 수 있는 상태로 유지합니다.

Peter Steinberger 소개

Peter Steinberger는 iOS 개발 분야에서 PSPDFKit라는 PDF 관련 도구를 개발하여 유명해졌습니다. 그는 과거 iOS 개발자로서 활동하며 번아웃을 경험했지만, 최근 AI 기술을 접하면서 소프트웨어 개발에 대한 열정을 되찾았습니다. 그는 현재 iOS 개발에서 벗어나 와이프 코딩과 에이전트 엔지니어링에 집중하고 있습니다.

과거 경험 및 번아웃 극복

Peter Steinberger는 과거 iOS 개발자로 활동하면서 앱 개발, 프리랜서 활동, PSPDFKit 창업 등의 다양한 경험을 했습니다. 그는 회사를 70명 규모로 키우고 매각하는 과정에서 극심한 스트레스를 받아 번아웃을 경험했습니다. 이후 3년간 휴식을 취하며 재충전했고, 최근 AI 기술을 접하면서 소프트웨어 개발에 대한 열정을 되찾았습니다. 그는 Ayahuasca라는 약물을 복용하며 심리적인 어려움을 극복했다고 밝혔습니다.

웹 프로젝트 및 AI 코딩

Peter Steinberger는 Apple의 개발자 지원에 불만을 느껴 웹 기반 프로젝트를 시작하게 되었습니다. 그는 AI 코딩 기술을 접하면서 과거의 경험과 지식을 바탕으로 새로운 개발 방식을 탐구하고 있습니다. 그는 Cursor라는 도구를 사용하여 AI 코딩을 시작했으며, 현재는 에이전트 엔지니어링 분야에서 선도적인 역할을 하고 있습니다. 그는 "바이브 코딩(Vibe Coding)"이라는 용어가 소프트웨어 개발에 대한 이해가 부족한 사람들을 비하하는 의미로 사용되는 것에 대해 우려하며, "에이전트 엔지니어링"이라는 용어를 사용합니다.

언어 선택 및 사고방식 전환

Peter Steinberger는 AI 코딩에서 특정 프로그래밍 언어에 얽매이지 않고 원하는 동작을 명확하게 설명하는 것이 중요하다고 강조합니다. 그는 Swift와 같은 틈새 언어보다 TypeScript나 Python과 같이 오픈 소스 생태계가 활발한 언어가 AI 코딩에 더 유리하다고 설명합니다. 그는 프로그래밍 언어를 직접 작성하는 대신 원하는 동작을 설명하는 방식으로 사고방식을 전환해야 한다고 강조합니다.

소프트웨어 설계 및 Gemini 활용

Peter Steinberger는 새로운 기능을 개발할 때 Google의 Gemini를 사용하여 소프트웨어 설계 문서를 작성합니다. 그는 Gemini와 여러 차례 대화를 통해 요구 사항을 명확히 하고, 소프트웨어 설계 문서의 완성도를 높입니다. 그는 완성된 설계 문서를 Cloud Code에 입력하여 실제 코드를 생성합니다. 그는 미래에는 AI 간의 협업을 통해 소프트웨어 개발 프로세스가 더욱 자동화될 것이라고 예측합니다.

코드 검토 및 프롬프트 엔지니어링

Peter Steinberger는 GitHub Action을 사용하여 코드 검토를 자동화하고, Cloud Code를 통해 풀 리퀘스트를 검토합니다. 그는 에이전트가 비결정적인 특성을 가지고 있기 때문에 코드 검토 과정에서 다양한 해결책이 나올 수 있다고 설명합니다. 그는 과거에 중요했던 프롬프트 엔지니어링은 더 이상 중요하지 않으며, 문제를 명확하게 설명하고 다양한 관점에서 접근하는 것이 중요하다고 강조합니다. 그는 시스템 프롬프트에 "당신은 숙련된 iOS 개발자입니다"와 같은 문구를 추가하는 것은 불필요하다고 주장합니다.

컨텍스트 엔지니어링 및 워크플로우

Peter Steinberger는 컨텍스트 엔지니어링이 중요하며, AI에게 필요한 정보를 제공하여 최상의 결과를 얻을 수 있도록 해야 한다고 강조합니다. 그는 새로운 작업을 시작할 때마다 새로운 컨텍스트를 생성하여 AI가 현재 질문에 집중할 수 있도록 해야 한다고 설명합니다. 그는 아이디어가 떠오르면 Gemini를 사용하여 사양을 작성하고, Whisperflow를 사용하여 음성으로 텍스트를 입력합니다.

Gemini 선택 이유 및 Cloud Code 활용

Peter Steinberger는 Gemini가 많은 양의 컨텍스트를 처리할 수 있고 시스템 프롬프트에 의해 제한되지 않기 때문에 Gemini를 선택했습니다. 그는 Cloud Code를 사용하여 코드를 생성하고, "build spec.md"와 같은 간단한 명령어를 사용하여 코드를 빌드합니다. 그는 Wipe Tunnel이라는 프로젝트를 통해 Cloud Code 인스턴스를 인터넷에 연결하고 원격으로 제어할 수 있도록 했습니다.

Cursor와 Cloud Code 비교

Peter Steinberger는 Cursor의 연결 문제와 기타 문제점을 해결하기 위해 Code Looper라는 도구를 개발했지만, Cloud Code가 훨씬 더 나은 에이전트라는 것을 깨닫고 Code Looper 개발을 중단했습니다. 그는 Cursor와 Cloud Code의 시스템 프롬프트가 다르며, Cloud Code가 더 많은 정보를 수집하고 더 나은 결과를 생성한다고 설명합니다. 그는 Cloud Code가 프로젝트의 모든 코드를 검색하고 학습하는 반면, Cursor는 토큰 비용을 절감하기 위해 효율적으로 작동하도록 설계되었다고 주장합니다.

IDE 필요성 및 코드 검토

Peter Steinberger는 프롬프트만으로 코드를 작성할 수 있기 때문에 더 이상 IDE가 필요하지 않다고 생각합니다. 그는 Tower와 같은 도구를 사용하여 코드 변경 사항을 확인하고, 필요에 따라 스크린샷을 캡처하여 AI에게 제공합니다. 그는 Cloud Code가 한 시간 동안 실행될 수 있도록 구성했으며, 이를 통해 AI가 충분한 시간을 가지고 문제를 해결할 수 있도록 했습니다.

보안 문제 및 Docker 컨테이너 활용

Peter Steinberger는 Cloud Code를 YOLO 모드(제한 없이 모든 작업을 수행할 수 있는 모드)로 실행하는 것에 대한 보안 문제를 인지하고 있지만, 편리성을 위해 YOLO 모드를 사용하고 있습니다. 그는 Docker 컨테이너를 사용하여 보안을 강화하는 것에 대해 성능 저하와 설정의 번거로움 때문에 반대합니다. 그는 데이터 백업의 중요성을 강조하며, Cloud Code 제공 업체를 신뢰해야 한다고 주장합니다.

다중 에이전트 활용 및 코드베이스 관리

Peter Steinberger는 여러 개의 Cloud Code 에이전트를 병렬로 실행하여 다양한 작업을 동시에 처리합니다. 그는 UI 반복 작업을 위해 여러 개의 창을 열어 놓고, 복잡한 기능 개발을 위해 코드베이스의 복사본을 사용합니다. 그는 코드베이스가 깨끗하게 유지되어야 AI가 효율적으로 작동할 수 있다고 강조합니다. 그는 코드베이스가 스펙이며, 코드가 빌드되면 스펙은 더 이상 관련이 없다고 주장합니다.

UI 개발 및 기능 정의

Peter Steinberger는 UI 개발을 위해 별도의 스펙을 작성하지 않고, 프롬프트 세션을 통해 직접 UI를 반복합니다. 그는 기능 정의를 스펙에 포함시키지만, UI 디테일은 코드에서 직접 반복합니다. 그는 Gemini가 ASCII 문자를 사용하여 기본 와이어프레임을 생성하는 것을 선호합니다.

버그 수정 및 옵션 제시

Peter Steinberger는 버그 수정이나 기능 변경이 필요한 경우, AI에게 가능한 옵션을 제시하도록 요청합니다. 그는 AI가 제시하는 옵션의 장단점을 검토하고, 최적의 옵션을 선택합니다. 그는 Cloud Code에서 "ultra sync" 또는 "sync very hard"와 같은 트리거 단어를 사용하여 확장된 동기화를 수행합니다.

코드베이스 크기 및 구조

Peter Steinberger는 코드베이스가 특정 크기를 초과하면 AI가 더 이상 효율적으로 작동하지 않는다는 주장에 대해 반박합니다. 그는 코드베이스가 잘 구성되어 있다면 AI가 필요한 모듈만 읽고 작업할 수 있기 때문에 대규모 코드베이스도 문제없이 처리할 수 있다고 주장합니다. 그는 프로젝트가 처음부터 깨끗하게 유지되어야 하며, 이를 위해 에이전트 규칙 저장소를 활용합니다.

MCP 활용 및 문서화

Peter Steinberger는 MCP(Model-as-Code Pipeline)를 사용하여 AI의 기능을 확장하고, 코드 편집 효율성을 높입니다. 그는 Gemini가 Cloud Code를 호출하여 파일 편집을 수행하도록 MCP를 구성하여 비용을 절감하고 루프 속도를 향상시켰습니다. 그는 문서화 MCP를 사용하여 라이브러리 및 프레임워크에 대한 문서를 제공하고, 컨텍스트를 풍부하게 합니다. 그는 문서화 MCP를 사용하는 것보다 문서 파일을 직접 제공하는 것이 더 효율적이라고 생각합니다.

UI 빌드 및 시뮬레이터 활용

Peter Steinberger는 UI 빌드를 위해 MCP를 사용하지 않고, Cloud Code가 iOS 앱을 빌드하고 시뮬레이터를 시작할 수 있도록 합니다. 그는 Peekaboo라는 MCP를 사용하여 에이전트가 스크린샷을 캡처하고 질문을 할 수 있도록 합니다. 그는 웹 개발과 달리 네이티브 앱 개발은 여전히 "게토"와 같다고 생각합니다. 그는 DevTools를 시작하는 방법을 설명하는 Markdown 파일을 cloud.md 파일에 저장합니다.

사고방식 및 학습

Peter Steinberger는 AI 코딩을 통해 새로운 것을 배우고 있으며, 과거보다 더 많은 옵션을 고려하고 있다고 설명합니다. 그는 AI가 제공하는 정보를 통해 더 깊이 있는 학습을 할 수 있으며, 복잡한 문제를 해결하는 데 더 많은 시간을 할애할 수 있다고 주장합니다. 그는 코드에 더 이상 애착을 가지지 않고, 필요에 따라 코드를 버릴 수 있게 되었다고 밝혔습니다.

유지보수 및 테스트

Peter Steinberger는 AI가 생성한 코드를 유지보수하는 것이 가능하며, AI를 통해 코드 품질을 향상시킬 수 있다고 주장합니다. 그는 보안을 위해 명확하게 생각하고, 적절한 기본값을 설정하는 것이 중요하다고 강조합니다. 그는 수동으로 작성한 엔드투엔드 테스트를 통해 앱의 기능을 검증하고, 자동 생성된 테스트를 통해 코드의 안정성을 확보합니다.

Swipe Tunnel 소개

Peter Steinberger는 Swipe Tunnel이라는 도구를 개발하여 AI 에이전트가 작업하는 동안 여러 개의 창을 동시에 관리할 수 있도록 했습니다. 그는 Swipe Tunnel이 로컬에서 코드를 테스트하고, 여러 개의 변경 사항을 동시에 작업하는 데 유용하다고 설명합니다. 그는 Swipe Tunnel을 오픈 소스로 공개했으며, 이를 통해 다른 개발자들에게 영감을 주고자 합니다.

오픈 소스 철학 및 비용

Peter Steinberger는 자신의 프로젝트를 오픈 소스로 공개하는 이유에 대해 금전적인 이익보다 다른 사람들에게 영감을 주고 싶기 때문이라고 밝혔습니다. 그는 AI 코딩 비용이 저렴해지고 있으며, 생산성 향상을 통해 비용을 충분히 상쇄할 수 있다고 주장합니다. 그는 AI 코딩 비용이 장기적으로 저렴하게 유지될 것이라고 예측합니다.

모델 선택 및 O3 활용

Peter Steinberger는 어려운 문제를 해결하기 위해 OpenAI의 O3 모델을 사용하고, Cloud Code와 교차 검증합니다. 그는 O3가 에이전트로서의 기능은 부족하지만, 복잡한 문제를 해결하는 데 매우 유용하다고 설명합니다. 그는 RepoPrompt라는 앱을 사용하여 O3에 필요한 파일을 XML 형식으로 제공합니다.

보안 및 의사 결정

Peter Steinberger는 AI를 통해 보안 문제를 해결하고, 의사 결정을 내리는 데 도움을 받을 수 있다고 설명합니다. 그는 AI와 대화를 통해 다양한 옵션을 고려하고, 최적의 솔루션을 선택합니다. 그는 AI가 자신의 사고방식을 변화시켰으며, 더 많은 옵션을 고려하고 다양한 솔루션을 탐색하게 되었다고 밝혔습니다.

주니어 개발자를 위한 조언

Peter Steinberger는 주니어 개발자들이 AI 기술을 두려워할 필요가 없으며, AI를 개인 교사처럼 활용하여 학습 속도를 높일 수 있다고 조언합니다. 그는 AI가 주니어 개발자들이 겪는 좌절감을 줄여주고, 더 빠르게 성장할 수 있도록 도와줄 것이라고 믿습니다. 그는 호기심을 유지하고, AI에게 질문하고 배우는 자세가 중요하다고 강조합니다.

미래 전망 및 마무리

Peter Steinberger는 AI 기술이 사회 전반에 걸쳐 변화를 가져올 것이며, 새로운 기술을 배우고 적응하는 것이 중요하다고 강조합니다. 그는 AI를 통해 더 많은 것을 구축하고, 자신만의 도구를 맞춤화할 수 있게 될 것이라고 예측합니다. 그는 AI 코딩을 통해 더 많은 아이디어를 실험하고, 새로운 것을 배우는 데 시간을 할애할 수 있게 되었다고 밝혔습니다. 그는 "You can just do things"라는 제목으로 강연을 할 예정입니다.

Share

Summarize Anything ! Download Summ App

Download on the Apple Store
Get it on Google Play
© 2024 Summ