Augmented Development, the successes, surprises and pitfalls by Andy Bailey
- AI는 사용자의 프롬프트를 문자 그대로 해석하여, 의도와 다르게
BigDecimal에 모든 연산을 위임하는 등 예상치 못한 결과를 초래할 수 있습니다. 🤖
- 초기 AI 챗봇(ChatGPT, Claude, Gemini)은 정확한 코드 생성과 신뢰할 수 있는 단위 테스트 생성에 어려움을 겪었으며, 심지어 환각 현상까지 보였습니다. 🤯
- Juny와 같은 고급 AI 도구는 코드 생성 후 빌드를 시도하고 오류를 반복적으로 수정하는 '반복적 교정' 기능을 제공하여 개발 효율성을 높일 수 있습니다. 🔄
- AI가 생성한 단위 테스트는 자체 구현을 사용하여 예상 값을 생성함으로써 '자기 충족적 예언'처럼 작동하여 실제 버그를 숨길 수 있으므로, 독립적인 테스트 데이터 소스를 명시해야 합니다. 🕵️♀️
- 정확한 테스트를 위해
BigDecimal과 같은 외부의 신뢰할 수 있는 소스를 사용하여 예상 값을 생성하도록 AI에 지시했을 때, Juny는 자체 divide 구현의 버그를 찾아내고 즉시 수정하는 능력을 보여주었습니다. ✅
- AI는 명시적으로 요청하지 않은
Vector API 통합 및 관련 테스트 생성과 같이 프롬프트 범위를 넘어선 유용한 기능을 선제적으로 구현할 수 있습니다. 🚀
- AI가 생성한
fast decimal 코드는 BigDecimal 대비 상당한 성능 향상을 보였지만, 특정 연산(예: 곱셈)에서는 BigDecimal이 더 빠른 역설적인 결과도 나타나 인간의 심층 분석이 필요합니다. ⚡
- AI 개발 시에는 모든 프롬프트 후에 결과를 철저히 검사하고, 프롬프트를 매우 정확하게 작성하며, AI에게 한 번에 요청하는 작업의 범위를 엄격하게 제한해야 합니다. 🧐
- AI는 지능이 아닌 고급 추론 엔진이므로, 개발자는 AI의 한계를 이해하고 항상 비판적인 시각으로 결과를 검증해야 합니다. 🧠