AI를 통한 바이브 코딩에 대한 근본적인 고민이 많았습니다.
AI가 정말 코드로서 우리가 해결하려는 도메인 맥락을 잘 이해하고 있는가?
AI가 방대한 프로젝트 코드들을 전부 다 이해하고 있는가?
AI가 우리 팀의 코드 스타일과 그라운드룰을 잘 이해하고 있는가?
AI가 작성한 코드가 테스트 코드 또는 PR 리뷰에서 사이드 이펙트가 있는 코드들을 검증하지 못했을 때 어떻게 할 것인가?
이러한 막연한 불안감 때문에 제가 1차적으로 직접 대부분의 코드를 작성하고 AI가 직접 디렉토리에 있는 코드들을 수정하는 권한을
주지 않기 위해 프롬프트에 작성한 코드들을 리뷰받고 리팩토링할 부분들이 있는지 확인하는 정도와 귀찮은 DTO 등을 생성하는 정도로만 사용해 왔습니다.
사실 이렇게 해도 회사에서 대부분의 피처들은 문제없이 소화해내기는 했습니다.
다만 문득 이런 생각이 들더군요.
프롬프트로만 사용해 왔지만 AI에게 잘 설명만 해준다면 도메인, 클린코드, 회사 팀 코드 스타일, 그라운드룰 잘 지키면서
작성해 준다는 걸 피부로는 느끼고 있었지만 막연한 불안감 때문에 AI를 제대로 사용하지 못하고 있었구나.
아 나는 "코더"로서만 생각을 해왔구나 라는 생각이 문득 머릿속을 파고들었습니다.
코드를 작성하는 생산성은 AI가 너무나도 잘한다는 걸 알고 있음에도 어찌 보면 코드를 통해 우리가 문제를 해결하려는
문제의 전체적인 큰 틀을 보지 못하고 있지는 않았나란 생각이 강하게 들었습니다.
어찌보면 개발자는 "코드로 문제를 해결하는 사람인데" 코딩도 중요하긴 하지만 가장 중요한 문제를 해결한다는
부분이라는 걸 놓치고 코드를 작성하는데 AI시대에 너무 많은 에너지를 사용하고 있었구나 라는 생각이 문득 들더군요.
이런 생각에 이런저런 검색을 하다 보니 유튜브 알 수 없는 알고리즘으로 위 Tech Bridge 채널의 영상을 추천에 떠서 신기하더군요.
그래서 요 근래 회사 업무를 진행할 때 최대한 도메인, 팀 코드스타일, 그라운드룰을 AI가 잘 이해하도록 MD파일도 잘 만들고 요즘 핫한 Ponytail 스킬을 활용해서 만족스러운 바이브 코딩하고 있습니다. GPT Astra 짱!
아직까지 많은 고민이 드는 부분은 테스트 코드인데 간단한 로직들은 AI가 직접 테스트 코드를 직접 작성하고
검증하도록 하고 중요한 도메인로직 (돈계산, 수수료검증, 정산)등은 직접 확인하고 있습니다.
물론! 직접 각 시나리오별로 실제 구동해 보는 건 무조건 진행하고
QA팀에 테스트도...
모쪼록 도메인을 고민하고 아키텍처를 설계를 할 때 가장 많은 시간을 할애하긴 했지만 코드를 작성하는 시간이 극단적으로
줄어들다 보니 좀 더 아키텍처에 대한 고민과 다양한 도메인 엣지케이스에 대해 고민할 수 있는시간이 많아져서 그런지 UX적으로는
좋아지지 않았나 란 생각이 듭니다! (이런 것도 정량적인 지표로 뽑아야 하긴 하지만.. 아직까지는 느낌적인 느낌으로..)
요즘 드는 생각은 어떠한 기술들이 있는지 알아보고, 해당 기술들이 어떠한 철학아래 개발되었는지, 해당 기술들을 사용하면서 트레이드오프를 많이 겪어본 선배 개발자들의 이야기와 책들을 많이 읽으며 아키텍처를 구성할 때 선택할 기술들의 트레이드오프를 잘 판단하고 해결하고자 하는 도메인에 대해 깊이 고민하는 어찌 보면 프로덕트 엔지니어가 미래이지 않나란 생각도 요즘 듭니다..
글을 잘 쓰지는 못하지만 문득 바이브 코딩에 대한 생각이 변화된 저의 생각을 글로 정리해보고 싶어 주저리주저리 적어보았습니다.
그럼 이만..