프로젝트 데이비드: 다시 개발을 시작하다
<오름 앱 개발 경험> 덕분에 <인공지능과 함께 처음 만들고 배포한 우리 가족용 앱>의 코드를 모두 지웁니다.
언젠가 읽었던 인상 깊은 블로그 포스트에서 본 '유지보수의 시대는 끝났다'라는 메시지가 떠올랐습니다. 인공지능 삼총사까지 동원해서 찾아보았지만, 해당 글을 찾는 것은 실패하고 'Disposable Software'라는 표현이 쓰인다는 사실만 알게 되었습니다.
많은 이들이 세뇌하듯이 말하는 대로 코드 생산 비용이 0에 가깝습니다. 더군다나 내가 짠 코드도 아니기에 애착도 없으니 망설임도 없습니다. 찾을 수는 없지만 깊은 인상을 주었던 그 블로그 저자의 메시지를 뒤늦게 공감[1]하게 됩니다.
그리고 클로드와 함께 차근차근 설계를 다시 했습니다. 시작은 아키텍처 패턴에 대한 제 취향을 알려주고 의견을 묻는 식으로 출발했습니다. 그러다가 앞서 만든 <인공지능과 함께 처음 만들고 배포한 우리 가족용 앱>의 최종적인 목표를 간략히 전했고, 클로드는 저에게 기술 스택 관련한 질문을 했습니다.
저는 오름 앱의 기술 스택을 그대로 제시했습니다. 늘 그렇듯이 인공지능은 요구하지 않은 내용도 슬쩍 짚어 넣기는 하지만, 그럼에도 불구하고 엄청난 성능을 보여주는 과외 선생님이자 동료로서 편안하게 페어 프로그래밍을 하는 기분을 느끼게 해 줍니다.
<인공지능과 함께 처음 만들고 배포한 우리 가족용 앱> 개발 과정에서 처음 접한 Expo를 오름 앱에서 처음 적용한 PWA로 바꿉니다. 오름 앱과 일관성 유지도 생각은 했지만, 그보다는 간소한 배포에 목적을 둔 결정입니다. 클로드에게 대체 가능한 선택인지 물었습니다
계속해서 클로드가 제시한 요소 기술이 꼭 필요한지 검토하는 대화를 어어갑니다. 이를 테면 Zod나 Zustand 같은 것들이죠.
그렇게 해서 조정된 전체 스택을 클로드가 정리해 줍니다.
정리된 내용에 대해 도식화를 요구했습니다.
지금까지 나온 결정을 정리해 주세요. 먼저 제가 볼 수 있게 간결하게 절차나 주요 사항을 요약한 후에 도식화 가능한 그림을 덧붙여 주세요.
하지만, 제가 직접 코딩을 하지 않으니까, 제가 이해한 내용을 클로드 코드에게 전할 방법을 물었습니다.
정리한 내용을 토대로 클로드 코드에서 작업을 지시하려면 가장 효과적인 전달방식과 작업 절차를 제안해 주세요.
의도를 말하고 두 AI 도구 사이에서 전달자 역할을 할 때, 문득 <처음 만난 토큰 한계와 의도적인 속도 조절>에서 인용했던 그림이 떠올랐습니다.
생산성이나 효율에만 가치를 두면 내가 단순 전달자로 여겨지면서 자존감에 부정적 영향을 끼칠 수 있습니다. 하지만, 인공지능이 만든 결과를 판단하고, 전략을 수립하는 일을 위주로 하면 빠른 진행만이 능사가 아니란 관점을 얻을 수 있습니다.
한편으로는 <언러닝>을 읽으며 배운 '행동이 관점에 주는 변화'가 아닌가 싶기도 합니다.
<낱말의 뜻을 깊고 넓게 묻고 따지는 일의 소중함> 실천으로 한자사전을 찾습니다.
1. 인공지능과 함께 처음 만들고 배포한 우리 가족용 앱
3. 이건 정말 편안하게 페어 프로그래밍을 하는 기분이다
7. 클로드 코드 사용 경험에 맞춰 기본적 짜임새를 갖추다
9. 요구만 분명하면 뚝딱 프로토타입을 만드는 클로드 코드
12. 애플리케이션 구성 변경도 수행해 주는 클로드 코드
13. 개발 착수 27년 만에 맛보는 놀라운 개발 환경