Study/django

[Django] Cursor AI를 이용해 프로젝트 만들어본 경험

bluebamus 2024. 10. 23. 21:20

https://github.com/bluebamus/drf-cursor-test

 

GitHub - bluebamus/drf-cursor-test: use cursor ai, make full service case based on django rest framework.

use cursor ai, make full service case based on django rest framework. - bluebamus/drf-cursor-test

github.com

 

* cursor ai와 관련한 영상 컨텐츠를 우연하게 본 뒤, 프로젝트 단위의 코드 생성에 큰 관심을 가지게 되어 사용해보고 그 후기를 남기려 한다.

 

* 해당 프로젝트는 django의 모든 view, apiview, 제너럴뷰, mixin, viewset를 각 app 별로 구현하고, view, 시리얼라이저, 모델에 정의 가능한 옵션과 오버라이딩 가능한 함수, manager 를 정의하고 admin 또한 생성하고자 하였다. 페이지네이션, 쓰로틀링, filter, search, 보안, 권한, 문서화 등 다양한 기능을 구현하려고 했으며 viewset에 action을 사용하는 것도 요구했다. pytest로 test 코드를 작성하는 경우 factoryboy와 fake를 사용하게 요구했다.

 

* 사용하면서 찾은 문제점

 - 프로젝트를 먼저 생성하고 요구해야 settings.py 등의 구조를 구조할 수 있는 코드 내에서 생성해준다. 아니면 많이 누락된 코드를 생성한다.

 - import가 정확하지 않다. 추가가 될수록 에러가 발생한다. 때문에 매번 요구사항을 반영하고 실행하고 에러 여부를 테스트 해야 한다.

 - 파일의 생성과 삭제에 대해 오류가 심하다.

 - 원하는 것에 대한 정의를 항상 하는게 좋다. note를 이용해 할 수 있다고 한다. 예를 들어 drf의 기반 view와 요청사항을 일반 django template을 위한 view로 정의하는 경우가 많았다.

 - 사용하면 할수록 점점 느려진다. ai가 동작하는 경우 코드를 수정하거나 명령어를 입력할 수 없다. 프리징 된다. 그렇다고 컴퓨터 cpu의 로드가 높거나 하는 문제는 아니다. 프로그램의 최적화 문제인듯 하다.

 - 컴포저에서 제안한 코드가 실재 코드에 적용이 안되는 문제를 여러번 확인하였다. reapply all을 눌러도 마찬가지였다.

 

* 사용하고 난 뒤 생각

 - 전체 파일을 검토하고 만들어 준다는 것에는 큰 매리트가 있지만, 기존 코드를 계속해서 건딜고 수정하려고 한다는 것에서 문제점을 느끼게 되었다. apply도 이전 코드를 삭제하거나 제안하는 코드를 삭제하거나 하는 것이지, 내가 두 코드를 수정하려면 번거롭다.

 - 사용하려면 방법을 많이 생각해야 할것 같다.

 - 하지만 역시 ai를 사용하면 수개월 단위의 프로젝트를 몇주 내 종료할 수 있을거 같다.

 - 풀스택과 여러 언어를 사용하는데 부담이 줄 수 있을거 같다. 기억이 안나도 만들어준 코드를 보고 다시 상기할 수 있을 능력이 있다면 혹 이해를 할 수 있다면 프로젝트에 전혀 문제가 되지 않는다.

 - 거짓말을 잘하고 오류가 크고 제공되는 컴포저 기능을 반복해서 활용하기 보다 초기 뼈대를 만들때 사용하고 나머지는 block 단위 탭 단위 그리고 채팅으로 진행하는게 맞는거 같다.

 - 개인적으로 정말 큰 기대를 했는데.. 다른 사람들의 평가대로 결과가 만족스럽지 않고, 사용 제한 문제도 다른 사람들이 언급을 해준만큼, 이럴거면 openapi를 연동하거나 vscode의 cody를 사용해볼것 같다. 이후는 cody를 사용해볼 생각이다.

 

* 혹시나 하고 pytest를 돌려봤다. 전부 에러가 뜬다. 이 에러를 잡을 생각은 없기에 runserver까지 에러 없이 수행 했다는 것에 만족한다. 요청한 대부분의 사항은 readme.md로 만들었다.

 - 왜 지금까지 요청한 사항을 readme.md로 만들어 달라고 하면 생성을 못하는지 이해가 잘 안된다. 이번 작업에서만의 문제인지, 특정 오류인지는 나중에 다시 확인해야 할듯 하다. 하지만 전체적으로 파일의 생성과 삭제를 잘 못하는건 문제다.

 

* 추가 글

 - 에러나 코드상 문제를 질문했을 때, 전혀 해결을 못하는 상황이 반복해서 나타나는 경우가 발견되었다. 여러번 수차례 질문을 변경하면서 왜 내가 이런 질문과 작업을 하고 있는지 의문이 들 정도였다. 검색과 직접 테스트를 통해 해결을 했지만, 한계점을 발견한 것에 대해 다른 API를 추가할 경우의 결과에 대해서 성능이 궁금하였다. 뭐 직접 결제하고 테스트 하기 전에는 알 수 없는 일이겠지만...