# 디버깅 프롬프트 템플릿 ## 사용 방법 Cursor AI에 복사하여 붙여넣고 [괄호] 부분을 실제 내용으로 채우세요. --- ## 1. 버그 수정 프롬프트 ``` 이 프로젝트는 PHP 5.3.29 환경의 멀티테넌트 시스템입니다. ## 현재 문제 [문제를 자세히 설명하세요] 예시: - 모바일에서 뒤로가기 버튼 클릭 시 에러 발생 - 특정 페이지에서만 발생 - 에러 메시지: [에러 메시지] ## 관련 파일 - [파일 경로 1] - [파일 경로 2] ## 재현 방법 1. [단계 1] 2. [단계 2] 3. [단계 3] ## 체크 필요 사항 - [ ] PHP 5.3 호환성 (namespace, [], ::class 사용 금지) - [ ] 테넌트 격리 (ep_code 필터) - [ ] SQL Injection 방지 (addslashes) - [ ] XSS 방지 (htmlspecialchars) - [ ] 직접 접근 방지 (_INFOWAY_ 상수) ## 참고 문서 @.cursorrules @docs/analysis/multitenant.md ``` --- ## 2. 새 기능 개발 프롬프트 ``` @.cursorrules 참고하여 [모듈명] 관리자 페이지를 개발해주세요. ## 요구사항 [기능 설명] 예시: - 뉴스 자동 수집 관리 페이지 - RSS URL 등록/수정/삭제 - 수집 주기 설정 - 수집된 콘텐츠 미리보기 ## 데이터베이스 테이블명: iw_[모듈명]_table 필드: - [필드명]: [타입] - [설명] - ep_code: varchar(20) - 테넌트 코드 (필수) - gp_code: varchar(20) - 그룹 코드 (필수) ## BBS 패턴 적용 - [모듈명]_list.php: 목록 - [모듈명]_write.php: 작성 폼 - [모듈명]_write_ok.php: 작성 처리 - [모듈명]_edit.php: 수정 폼 - [모듈명]_edit_ok.php: 수정 처리 - [모듈명]_delete.php: 삭제 ## 필수 준수사항 1. PHP 5.3 호환 코드 (array(), addslashes() 사용) 2. 모든 쿼리에 WHERE ep_code = '$iw[store]' 필수 3. 권한 체크: if ($iw['level'] != "admin") 4. _INFOWAY_ 상수 체크 5. Modern Card UI 적용 ## UI 스타일 @design/css/modern-card.css 참고 ``` --- ## 3. 코드 리뷰 프롬프트 ``` 다음 코드가 .cursorrules 규칙을 따르는지 검토해주세요. ## 코드 ```php [코드를 붙여넣으세요] ``` ## 체크 항목 1. PHP 5.3 호환성 - [ ] namespace 미사용 - [ ] [] 배열 문법 미사용 - [ ] ::class 미사용 - [ ] array() 사용 2. 멀티테넌트 격리 - [ ] 모든 SELECT에 ep_code 필터 - [ ] INSERT에 ep_code 포함 - [ ] UPDATE/DELETE에 ep_code 조건 3. 보안 - [ ] SQL Injection 방지 (addslashes) - [ ] XSS 방지 (htmlspecialchars) - [ ] 직접 접근 방지 (_INFOWAY_) - [ ] 권한 체크 ($iw['level']) 4. 코드 품질 - [ ] 변수명 명확성 - [ ] 주석 충분성 - [ ] 에러 핸들링 - [ ] 가독성 ## 개선 제안 위 체크 항목 중 문제가 있으면 수정된 코드를 제시해주세요. ``` --- ## 4. 성능 최적화 프롬프트 ``` 다음 코드의 성능을 최적화해주세요. ## 현재 코드 ```php [코드를 붙여넣으세요] ``` ## 성능 이슈 [문제 설명] 예시: - 페이지 로딩이 5초 이상 걸림 - 대량 데이터 조회 시 타임아웃 - N+1 쿼리 문제 ## 최적화 고려사항 1. 데이터베이스 인덱스 - ep_code, gp_code 복합 인덱스 - 자주 검색되는 필드 인덱스 2. 쿼리 최적화 - JOIN 사용 (서브쿼리 제거) - LIMIT 적용 - WHERE 절 순서 (인덱스 필드 우선) 3. 캐싱 - 세션 캐싱 (5분 TTL) - 정적 데이터 캐싱 4. PHP 최적화 - 불필요한 쿼리 제거 - 루프 내 쿼리 제거 ## 제약사항 - PHP 5.3 호환성 유지 - 멀티테넌트 격리 유지 - 기존 기능 동작 유지 ``` --- ## 5. 마이그레이션 프롬프트 ``` [기존 시스템]에서 Infoway로 데이터를 마이그레이션하는 스크립트를 작성해주세요. ## 소스 시스템 - 데이터베이스: [MySQL/PostgreSQL/etc] - 테이블: [테이블명] - 필드: [필드 목록] ## 타겟 시스템 - 테이블: iw_[모듈명]_table - ep_code: [테넌트 코드] - gp_code: all ## 매핑 [소스 필드] → [타겟 필드] 예시: user_id → mb_code user_name → mb_name user_email → mb_mail ## 특별 처리 - [특별 처리가 필요한 사항] 예시: - 날짜 형식 변환 (YYYY/MM/DD → YYYY-MM-DD) - 상태 코드 변환 (0/1 → guest/member) - 파일 경로 변경 ## 요구사항 1. PHP 5.3 호환 코드 2. 트랜잭션 사용 3. 에러 발생 시 롤백 4. 진행 상황 로그 5. 중복 데이터 체크 ``` --- ## 6. 테스트 프롬프트 ``` 다음 기능에 대한 테스트 시나리오를 작성하고 테스트 코드를 만들어주세요. ## 기능 [기능 설명] ## 테스트 시나리오 ### 1. 정상 케이스 - [ ] [시나리오 1] - [ ] [시나리오 2] ### 2. 에러 케이스 - [ ] [에러 시나리오 1] - [ ] [에러 시나리오 2] ### 3. 보안 테스트 - [ ] SQL Injection - [ ] XSS - [ ] 직접 접근 - [ ] 권한 우회 ### 4. 테넌트 격리 테스트 - [ ] 다른 테넌트 데이터 접근 차단 - [ ] ep_code 필터 적용 - [ ] 파일 경로 분리 ## 테스트 코드 작성 - PHP 5.3 호환 - 실제 데이터베이스 사용 - 테스트 데이터 생성/삭제 ``` --- ## 7. 문서화 프롬프트 ``` 다음 코드에 대한 문서를 작성해주세요. ## 코드 ```php [코드를 붙여넣으세요] ``` ## 문서 포함 사항 ### 1. 개요 - 기능 설명 - 사용 목적 - 호출 경로 ### 2. 파라미터 - 입력 파라미터 (GET/POST) - 필수/선택 여부 - 데이터 타입 ### 3. 처리 흐름 1. [단계 1] 2. [단계 2] 3. [단계 3] ### 4. 데이터베이스 - 사용 테이블 - 쿼리 설명 - 인덱스 사용 ### 5. 보안 - 권한 체크 - SQL Injection 방지 - XSS 방지 ### 6. 반환값 - 성공 시 - 실패 시 ### 7. 예시 ```php // 사용 예시 코드 ``` ### 8. 참고사항 - 제약사항 - 주의사항 - 관련 파일 ``` --- ## 사용 팁 1. **@.cursorrules 참조**: 항상 프로젝트 규칙 참조 2. **관련 문서 참조**: @docs/analysis/[파일명].md 3. **구체적인 정보 제공**: [괄호] 부분을 자세히 작성 4. **체크리스트 활용**: 체크 항목으로 누락 방지 5. **예시 포함**: 구체적인 예시로 명확성 향상 --- **마지막 업데이트**: 2024-11-05 **관련 문서**: [.cursorrules](.cursorrules), [development.md](../docs/guides/development.md)