데브허브 | DEVHUB | Cursor Agent 를 위한 실전 설계와 프롬프트(전표 삭제 기능을 예제로)Cursor Agent 를 위한 실전 설계와 프롬프트(전표 삭제 기능을 예제로)
- 소프트 딜리트 기능 구현 목표: 출고 전표 삭제 시 데이터를 영구 삭제하는 대신, 삭제 상태로 보관하고 별도의 페이지에서 조회할 수 있도록 하는 소프트 딜리트 기능을 개발합니다. 🗑️
- 테이블 구조 이해의 중요성:
StockVoucher (1)와 StockVoucherItem (N)의 1대N 관계 및 데이터 중복 방지를 위한 테이블 분리 구조를 이해하는 것이 설계의 핵심입니다. 🧩
isDeleted 컬럼 위치 결정 고민: isDeleted 컬럼을 StockVoucher에 추가할지, StockVoucherItem에 추가할지에 따라 읽기/쓰기 비용이 달라지는 데이터베이스 설계 고민이 있었습니다. ⚖️
- AI 에이전트(Cursor) 활용한 설계 검증: Cursor에게 두 가지
isDeleted 컬럼 추가 방식(FK 참조 vs. 각 아이템에 추가)의 데이터베이스 비용 구조를 비교 분석 요청하여 최적의 설계 방향을 도출했습니다. 🤖
- 기존 코드 분석 기반의 AI 권장: Cursor는 기존
StockVoucherItem 조회 시 이미 조인을 사용하고 있음을 파악하고, StockVoucher 테이블에 isDeleted를 추가하는 FK 참조 방식을 권장했습니다. 💡
- 구체적인 프롬프트 설계:
getStockVoucherList와 같은 서버 액션을 참조하여 isDeleted 인자를 받도록 확장하고, 삭제되지 않은 전표와 삭제된 전표를 각각 조회하도록 명확하게 프롬프팅하여 구현 방향을 제시했습니다. ✍️
- 소프트 딜리트 구현 방식: 실제 삭제(DELETE) 대신
isDeleted 컬럼 값을 true로 업데이트(UPDATE)하는 방식으로 소프트 딜리트가 구현되었습니다. 🔄
- AI 에이전트의 확장된 기능 구현: 명시적으로 요청하지 않았음에도 Cursor가 삭제된 전표를 복구하는 기능까지 함께 구현하여 에이전트의 능동적인 문제 해결 능력을 보여주었습니다. ✨
- 정교한 설계와 프롬프팅의 효과: 단계별로 구체적인 설계 고민과 상세한 프롬프팅을 통해 AI 에이전트가 추가 수정 없이도 복잡한 기능을 완벽하게 구현할 수 있음을 입증했습니다. ✅