코딩 에이전트가 기존에 있는 헬퍼 함수를 찾는 대신 새로운 헬퍼 함수를 작성하는 문제
요약
코딩 에이전트가 기존의 헬퍼 함수를 찾지 않고 새로운 중복 함수를 생성하는 문제를 지적합니다. 이로 인해 코드베이스에 버전 충돌과 유지보수 문제가 발생할 수 있습니다. 해결책으로, 에이전트에게 새 함수 작성 전 기존 코드를 검색하도록 명시적으로 지침을 추가하고, 세션 후 검토 프롬프트를 사용하여 중복 여부를 확인하는 것이 효과적입니다.
핵심 포인트
- 에이전트는 기존 헬퍼 함수를 찾지 않고 새로운 중복 함수를 생성할 수 있습니다.
- 중복 방지를 위해 '기존 코드 검색'을 지침 파일에 명시적으로 추가해야 합니다.
- 세션 후 검토 프롬프트를 사용하여 새로 만든 모든 함수의 중복 여부를 확인하는 것이 효과적입니다.
에이전트에게 날짜 형식 지정, 가격 파싱, 요청 재시도 등을 요청해 보세요. 그러면 편집 중인 파일 안에 해당 기능을 위한 새로운 함수를 작성합니다. 그런데 저장소(repo)에는 이미 utils 폴더에 formatDate가 존재하며, 이 함수는 40군데에서 사용되고 있고, 지난 봄에 공들여 적용했던 시간대(timezone) 수정 기능까지 갖추고 있습니다. 이제 두 개의 버전이 생기는 거죠. 새로 만든 함수에는 그 수정 기능이 없습니다. 그리고 6주 후에 누군가가 하나를 변경하고 다른 하나는 건드리지 않습니다. 검색하는 것이 쓰는 것보다 저렴합니다. 에이전트는 자신이 있는 파일을 보고, '이 카드에 생성 날짜 추가하기'라는 지침 어디에도 '우리가 이미 날짜를 어떻게 형식 지정하는지 찾아라'라는 내용이 없습니다. 그래서 찾지 않습니다.
제가 지침 파일(instructions file)에 추가한 내용은 다음과 같습니다: 새로운 함수를 작성하기 전에, 코드베이스에서 동일한 작업을 수행하는 기존 함수가 있는지 검색하세요. 발견한 것을 나열하세요. 아무것도 적합하지 않을 때만 새것을 작성하고, 그 이유를 설명하세요. 그리고 코드를 추가한 모든 세션 후에 검토 프롬프트(review prompt)를 사용합니다: 이 세션에서 추가한 모든 새로운 함수나 헬퍼 목록을 나열하세요. 각 함수에 대해, 유사한 동작을 하는 기존 함수가 있는지 코드베이스에서 검색하고 발견된 것을 보여주세요. 두 번째 방법이 효과적입니다. 이는 대부분의 경우 중복을 찾아내며, 보통은 새 헬퍼가 그 자체로 완벽하게 합리적으로 보이기 때문에 검토 과정에서 제가 놓칠 만한 중복을 찾아줍니다. 적절한 폴더를 지정해 주는 것도 도움이 됩니다. 공유 유틸리티가 어디에 있는지(
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ChatGPTCoding (top/week)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기