일반적인 프롬프트 예시 (웹, IDE기반 모두 활용가능 ) > AI

AI

일반적인 프롬프트 예시 (웹, IDE기반 모두 활용가능 ) 정보

일반적인 프롬프트 예시 (웹, IDE기반 모두 활용가능 )

본문

# "[귀사 웹사이트 프로젝트명]" AI 코딩 어시스턴트 프롬프트

**최종 업데이트:** [YYYY년 MM월 DD일]

**목표:** 이 프롬프트는 "[귀사 웹사이트 프로젝트명]" PHP 프로젝트의 개발 및 유지보수를 위해 GitHub Copilot, Cursor AI와 같은 AI 코딩 어시스턴트에게 제공되는 통합 가이드입니다. AI는 이 문서를 기반으로 프로젝트의 기존 코딩 스타일, 아키텍처, 주요 기능 및 데이터베이스 구조를 이해하고, 일관성 있고 논리적인 방식으로 코드 생성, 수정, 분석 및 문제 해결 작업을 수행해야 합니다.

## [I. 프로젝트 개요 (Project Overview)]

* **프로젝트명:** [귀사 웹사이트 프로젝트명] (예: "ABC 솔루션 포털")
* **주요 서비스:**
    * [주요 서비스 1 내용 입력] (예: "회원제 유료 콘텐츠 제공 플랫폼")
    * [주요 서비스 2 내용 입력] (예: "라이센스 기반의 [귀사 솔루션명] 판매 및 관리")
    * 사용자 커뮤니티 ([게시판/포럼 기능명] 기능).
    * 고객 지원 (1:1 문의 또는 [고객 지원 채널명]).
* **운영 주소:** `https://example.com` (HTTPS 프로토콜 사용 권장)
* **라이센스 기반 솔루션 제공 형태 (해당하는 경우):**
    * `*****.example.com` (와일드카드 서브도메인) 형태로 [솔루션 유형] 솔루션 제공.
    * 메인 웹사이트와 동일 서버 내에 있거나, 별도의 환경으로 구축되어 운영.
    * 메인 웹사이트(`example.com`)에서 발급/관리되는 라이센스 키를 통해 인증 후 해당 솔루션 사용 가능.

## [II. 개발 환경 및 기술 스택 (Development Environment & Tech Stack)]

* **서버 환경:** [서버 환경 정보] (예: Linux, Apache 또는 Nginx 웹 서버)
* **프로그래밍 언어:** [주요 프로그래밍 언어 및 버전] (예: PHP 7.4 이상, 절차적/객체지향 혼용 가능)
* **데이터베이스:** [데이터베이스 종류 및 버전] (예: MariaDB 10.x 또는 MySQL 8.x). (`[데이터베이스_덤프파일명].sql` 덤프 파일 참조 필수).
* **DB 연결 방식:** `[경로]/config.php` 내 `getDbConnection()` 함수 (또는 유사 함수)를 통한 PDO 연결 ([문자셋 정보] 사용).
* **프론트엔드:** HTML, CSS, JavaScript, [CSS 프레임워크 및 버전] (예: Bootstrap 5, Tailwind CSS), [JavaScript 라이브러리] (예: jQuery, React, Vue.js).
* **CSS/JS 관리:** [CSS/JS 파일 관리 방식 설명] (예: 루트 경로의 `/css/` 및 `/js/` 폴더에서 통합 관리 또는 `assets` 폴더 사용).
    * `css/style.css` (또는 `main.css`): 사이트 전체 공통 스타일.
    * `css/admin-style.css` (또는 `admin.css`): 관리자 페이지 전용 스타일.
    * `css/[모듈명].css`: 특정 모듈(예: 게시판) 스타일.
    * `js/script.js` (또는 `main.js`): 사이트 전체 공통 스크립트.
    * `js/admin.js`: 관리자 페이지 공통 스크립트.
    * `js/[모듈명].js`: 특정 모듈(예: 알림) 관련 스크립트.
    * `js/[차트_라이브러리_관련_스크립트].js`: Chart.js (또는 다른 차트 라이브러리) 기반 차트 스크립트.
* **WYSIWYG 에디터:** [사용하는 에디터 명칭] (예: Summernote, CKEditor). (`[경로]/[에디터_설정파일].php`에서 설정, `[경로]/upload.php`를 통해 이미지 업로드 처리).
* **차트 라이브러리:** [사용하는 차트 라이브러리 명칭] (예: Chart.js, D3.js).
* **의존성 관리:** [의존성 관리 도구 사용 여부] (예: Composer 사용 또는 라이브러리 직접 포함).

## [III. 핵심 아키텍처 및 운영 원칙 (Core Architecture & Operational Principles)]

1.  **인증 시스템 (매우 중요):**
    * 모든 사용자 인증(일반, 관리자) 및 회원가입 시 사용되는 [추가 인증 방식]은 `[경로]/auth/` (또는 유사 경로) 폴더 내 [인증 라이브러리/모듈 명칭] 기반 커스텀 모듈을 통해 처리됨.
    * `Auth.php` (또는 `Authentication.php`)가 핵심 인증 클래스이며, `User.php`, `Role.php`, `Session.php`, `Token.php` 등과 상호작용함.
    * **`[경로]/auth/config.php` (또는 `[경로]/config/auth.php`):** DB 접속 정보, 세션/쿠키 설정(예: `SESSION_NAME`, `COOKIE_LIFETIME`), 해싱 비용(`HASH_COST`) 등 보안 관련 상수 정의. [중요:] `Auth.php`에서 호출됨. 중복호출금지.
    * **`[경로]/auth/functions.php` (또는 `[경로]/helpers/common.php`):** CSRF 토큰 생성/검증 (`generateCsrfToken`/`validateCsrfToken`), 입력값 필터링 (`sanitizeInput`), 플래시 메시지 (`setFlashMessage`/`getFlashMessages`) 등 **프로젝트 전반에 사용되는 공통 유틸리티 함수 포함. (함수 불일치 문제 발생 시 최우선 확인 대상)**
2.  **라이센스 기반 솔루션 연동 (해당하는 경우):**
    * 메인 웹사이트(`example.com`)에서 발급된 라이센스 키(`license_keys` 테이블 또는 유사 테이블)를 통해 `*****.example.com` 서브도메인 솔루션의 접근 권한을 제어.
    * 이 인증 로직은 `[경로]/models/License.php` 및 `[경로]/controllers/LicenseController.php` (또는 유사 파일)와 밀접하게 연관됨.
3.  **모듈화된 구조:**
    * 관리자(`[경로]/admin/`), 인증(`[경로]/auth/`), 게시판(`[경로]/bbs/` 또는 `[경로]/forum/`), 컨트롤러(`[경로]/controllers/`), 모델(`[경로]/models/`) 등 기능별 디렉토리 구조.
    * 공통 UI 요소는 `[경로]/includes/` (사용자단) 및 `[경로]/admin/includes/` (관리자단)에 분리.
4.  **페이지별 정보 관리:**
    * **사용자 페이지:** `[경로]/includes/header.php`에서 `$page_title`, `$page_description`, `$page_keywords` 전역 변수 (또는 유사 변수명)를 사용하여 각 페이지의 SEO 관련 메타 정보를 동적으로 관리.
    * **관리자 페이지:** `[경로]/admin/includes/admin-header.php`에서 `$pageTitle` (camelCase 또는 프로젝트 규칙) 전역 변수를 사용하여 페이지 제목을 관리. (사용자 페이지와 변수명 규칙에 차이가 있을 수 있음에 유의)
5.  **데이터베이스 중심:**
    * [데이터베이스 종류]를 사용하여 모든 주요 데이터(사용자, 게시글, 라이센스, 설정 등)를 관리. (세부 스키마는 `[데이터베이스_덤프파일명].sql` 참조)
6.  **경로 관리:**
    * 파일 인클루드(`require_once`, `include_once`) 시 경로 관리를 일관되게 유지.
    * 핵심 공유 파일(예: `/[경로]/auth/`, `/[경로]/models/`, 루트의 `/[경로]/includes/` 등)은 `$base_path = $_SERVER['DOCUMENT_ROOT'];` (또는 `define('BASE_PATH', __DIR__ . '/..');` 등)와 같이 사전에 정의된 절대 경로 기반 변수를 사용.
    * 동일 모듈 내의 파일 인클루드(예: `/admin/` 내에서 `includes/admin-header.php` 호출) 시에는 상대 경로 사용 가능.
    * `../` 방식의 상대 경로 사용이나 `__DIR__` 상수 사용은, `$base_path`와 같은 일관된 경로 전략이 수립된 경우 혼용을 지양하여 경로 참조의 명확성을 높임.

## [IV. 주요 디렉토리 및 파일 구조 (Key Directory & File Structure)]

* **`/` (루트 디렉토리):**
    * `index.php`: 메인 랜딩 페이지.
    * `login.php`, `register.php`, `logout.php`, `profile.php`: 사용자 인증 및 프로필 관련 페이지.
    * `about.php`, `faq.php`, `terms.php`, `privacy.php`: 회사 소개, FAQ, 약관 페이지.
    * `[서비스명1].php`, `[서비스명2].php`: 서비스 소개 페이지.
    * `robots.txt`, `sitemap.php` (동적 생성 권장), `sitemap.xml` (정적 또는 동적 생성본): SEO 관련 파일.
    * `[회사_로고_파일명].png`: 웹사이트 로고 이미지.
    * `[데이터베이스_덤프파일명].sql`: 데이터베이스 스키마 및 초기 데이터.
    * `admin-setup.php` (또는 `setup.php`): (존재 예상 또는 권장) 시스템 초기 설정 스크립트 (DB 테이블 생성 등).
* **`/admin/`** (또는 `/[관리자_경로명]/`): 관리자 시스템 페이지 및 로직.
    * `index.php`: 관리자 대시보드.
    * `users.php`: 회원 관리.
    * `plans.php` (또는 `products.php`): 서비스/상품 플랜 관리.
    * `boards.php` (또는 `categories.php`): (게시판) 카테고리 관리.
    * `manage-boards.php` (또는 `forum-management.php`): 게시판(보드 자체) 관리.
    * `license-keys.php` (해당하는 경우): 라이센스 키 목록.
    * `license.php` (해당하는 경우): 라이센스 통합 관리.
    * `inquiries.php`: 1:1 문의 목록.
    * `inquiry-view.php`: 1:1 문의 상세 및 답변.
    * `questions.php` (회원가입 시 질문 기능이 있는 경우): 질문 관리.
    * `widgets.php` (위젯 기능이 있는 경우): 위젯 관리.
    * `settings.php`: 시스템 설정.
    * (기타 관리 기능 페이지: `statistics.php`, `notifications.php` 등 존재 가능)
    * **`/admin/classes/`** (또는 `/[관리자_경로명]/lib/`): 관리자 기능 관련 PHP 클래스.
        * `Inquiry.php` (또는 `SupportTicket.php`): 문의 관리 클래스.
        * `UserSubscription.php` (또는 `Membership.php`): 사용자 구독/멤버십 관리 클래스.
        * (기타 관리 기능 클래스 존재 가능)
    * **`/admin/includes/`** (또는 `/[관리자_경로명]/partials/`): 관리자 페이지 공통 UI 및 유틸리티.
        * `admin-header.php`: 관리자 페이지 공통 헤더.
        * `admin-footer.php`: 관리자 페이지 공통 푸터.
        * `admin-sidebar.php`: 관리자 페이지 사이드바 메뉴.
        * `admin-utils.php`: 관리자 페이지 전용 유틸리티 함수.
    * **`/admin/js/`**: 관리자 페이지 전용 JavaScript 파일.
        * `admin.js`: 관리자 페이지 공통 스크립트.
    * **`/admin/css/`**: 관리자 페이지 전용 CSS 파일.
        * `admin-style.css`: 관리자 페이지 스타일.
    * **`/admin/api/`**: (존재 예상 또는 권장) 관리자 기능 관련 API 엔드포인트.
        * `get_user_data.php` (예시)
* **`/auth/` (핵심 인증 모듈 - 또는 `/[인증_모듈_경로명]/`):**
    * `Auth.php` (또는 `Authentication.php`): 핵심 인증 로직 클래스.
    * `config.php`: DB 연결 정보, 세션/쿠키 상수 등 주요 설정. **`getDbConnection()` 함수 (또는 유사 함수) 포함.**
    * `functions.php` (또는 `helpers.php`): **CSRF 방어, 입력값 새니타이즈, 플래시 메시지 등 공통 유틸리티 함수 (매우 중요).**
    * `User.php`: 사용자 정보 관리 클래스.
    * `Role.php`: 사용자 역할 관리 클래스.
    * `Session.php`: 세션 관리 클래스 (DB 기반 세션 저장 로직 포함 가능).
    * `Token.php`: 다양한 유형의 토큰 생성 및 검증 클래스.
    * `CustomQuestion.php` (회원가입 시 질문 기능이 있는 경우): 자동 가입 방지 질문 관리 클래스.
    * `error.log` (또는 `php_errors.log`): PHP 오류 로그 파일 (경로는 서버 설정에 따라 다를 수 있음).
* **`/bbs/`** (또는 `/[커뮤니티_모듈_경로명]/`): 사용자 커뮤니티 게시판 시스템.
    * `index.php`: 게시글 목록.
    * `view.php`: 게시글 상세 보기.
    * `write.php`, `edit.php`: 게시글 작성 및 수정.
    * `delete.php`: 게시글 삭제.
    * `comment.php`: 댓글 처리.
    * `upload.php`: 에디터 내 이미지 업로드 처리 (`/uploads/[모듈명]/YYYYMM/` 경로에 저장 권장).
    * `notification.php` (알림 기능이 있는 경우): 사용자 알림 페이지.
    * `search.php`: 게시글 검색 결과 페이지.
    * **`/bbs/includes/`**: 게시판 관련 유틸리티 및 UI 컴포넌트.
        * `functions.php`: 게시판 핵심 함수.
        * `pagination.php`: 페이징 HTML 생성 함수.
        * `[에디터명]_config.php`: 에디터 초기화 및 설정.
        * `widgets.php`: 게시판 위젯 관련 함수.
    * **`/bbs/css/`**: 게시판 전용 CSS (루트 `/css/` 폴더로 통합 관리될 수 있음).
        * `bbs.css` (또는 `forum.css`).
* **`/controllers/`**: 주요 기능 로직 처리 컨트롤러 (MVC 패턴 적용 시).
    * `LicenseController.php` (해당하는 경우).
    * `[기능명]Controller.php`.
* **`/css/`**: 전역 및 모듈별 CSS 파일.
    * `style.css` (또는 `main.css`).
    * `admin-style.css` (실제로는 `/admin/css/admin-style.css` 가능성 있음).
    * `[모듈명].css`.
    * `[프레임워크명].min.css` (예: `bootstrap.min.css`).
* **`/js/`**: 전역 및 모듈별 JavaScript 파일.
    * `script.js` (또는 `main.js`).
    * `admin.js` (실제로는 `/admin/js/admin.js` 가능성 있음).
    * `notifications.js` (알림 기능이 있는 경우).
    * `[차트_라이브러리_관련_스크립트].js`.
    * `[프레임워크명].bundle.min.js` (예: `bootstrap.bundle.min.js`).
* **`/includes/`** (또는 `/[공통_UI_경로명]/`): 사용자 페이지 공통 UI 요소.
    * `header.php`: 공통 헤더. **`$page_title`, `$page_description`, `$page_keywords` 변수 (또는 유사 변수명) 사용.**
    * `footer.php`: 공통 푸터.
    * `sidebar.php`: (존재 시) 사용자 페이지 사이드바.
    * `[위젯_관련_파일].php`: 위젯 표시용 인클루드 파일.
* **`/models/`**: 데이터베이스와 상호작용하는 모델 클래스 (MVC 패턴 또는 유사 구조 적용 시).
    * `License.php` (해당하는 경우).
    * `[데이터_모델명].php`.
* **`/uploads/`**: 파일 업로드 저장 경로 (예: `/uploads/[모듈명]/YYYYMM/`).
* **`/api/`**: (존재 예상 또는 권장) AJAX 요청 등을 처리하는 API 엔드포인트.
* **기타 루트 파일:** `about.php`, `faq.php`, `terms.php`, `privacy.php`, 서비스 소개 페이지 등.

**(위 파일 및 디렉토리 구조는 예시이며, 귀사의 프로젝트 구조에 맞게 수정하십시오.)**

## [V. 데이터베이스 스키마 (`[데이터베이스_덤프파일명].sql` 기반 요약)]

* **`users`**: 사용자 정보 (`role_id` FK -> `roles.id` 등).
* **`roles`**: 사용자 역할.
* **`sessions`** (DB 기반 세션 사용 시): 세션 저장.
* **`tokens`** (인증 토큰 사용 시): 사용자 인증 관련 토큰.
* **`remember_tokens`** (자동 로그인 기능 시): 자동 로그인 토큰.
* **`custom_questions`** (회원가입 시 질문 기능이 있는 경우): 자동가입 방지 질문.
* **`login_attempts`**: 로그인 시도 횟수 기록.
* **`[게시판명]_boards`** (또는 `forums`): 게시판 정보.
* **`[게시판명]_categories`**: 게시판 카테고리 (`board_id` FK 등).
* **`[게시판명]_posts`**: 게시글 (`user_id`, `board_id`, `category_id` 등).
* **`[게시판명]_comments`**: 댓글 (`post_id`, `user_id` 등).
* **`[게시판명]_notifications`** (알림 기능이 있는 경우): 사용자 알림.
* **`widgets`** (위젯 기능이 있는 경우): 위젯 정보.
* **`products`** (상품/서비스 판매 시): 제품 정보.
* **`product_categories`** (상품/서비스 판매 시): 제품 카테고리.
* **`license_keys`** (라이센스 기능 시): 라이센스 키 (`product_id`, `user_id` 등).
* **`license_logs`** (라이센스 기능 시): 라이센스 키 사용/변경 이력.
* **`service_plans`** (구독 서비스 시): 제공 서비스 플랜 정보.
* **`plan_prices`** (구독 서비스 시): 서비스 플랜별 가격.
* **`user_services`** (또는 `subscriptions`): 사용자가 구매/구독한 서비스 내역.
* **`payments`**: 결제 정보.
* **`inquiries`** (또는 `support_tickets`): 1:1 문의.
* **`settings`**: 시스템 전역 설정.

**(상세 컬럼, 타입, 제약 조건, 인덱스 등은 제공된 `[데이터베이스_덤프파일명].sql` 파일을 직접 참조하거나, 귀사의 데이터베이스 스키마를 기준으로 작성하십시오.)**

## [VI. 주요 기능 명세 (Key Feature Specifications)]

1.  **사용자 인증 (`[경로]/auth/` 또는 유사 경로):**
    * 이메일/비밀번호 기반 로그인, 회원가입 ([커스텀 질문 인증] 포함 가능), 로그아웃.
    * 자동 로그인 (Remember Me), 비밀번호 재설정.
    * 역할 기반 접근 제어 (예: Admin, Editor, Member).
    * 로그인 시도 제한 및 IP/이메일 기반 차단.
    * CSRF 방어, 입력값 검증.
2.  **라이센스 관리 (해당하는 경우 - `[경로]/admin/`, `[경로]/models/License.php` 등):**
    * 라이센스 키 생성, 조회, 수정, 삭제, 사용자 할당/해제.
    * 라이센스 기간 및 만료 처리.
    * 라이센스 사용 로그.
3.  **게시판 ([모듈명]) (`[경로]/bbs/` 또는 유사 경로):**
    * 다중 게시판 지원, 카테고리별 게시글 목록, 검색, 상세 보기.
    * [에디터명] 에디터 게시글 작성/수정 (이미지 업로드 포함).
    * 댓글/대댓글, 사용자 알림, 페이징, 캐싱.
4.  **관리자 기능 (`[경로]/admin/` 또는 유사 경로):**
    * 대시보드, 회원 관리, 서비스/플랜/가격 관리, 주문/결제 관리(예상), 1:1 문의 관리, 게시판/카테고리 관리, 위젯 관리, 시스템 설정.
    * 사용자 구독 관리 (해당하는 경우).
5.  **사용자 프로필 (`[경로]/profile.php` 또는 유사 경로):**
    * 개인 정보 수정, 비밀번호 변경, 활동 내역 조회.
6.  **콘텐츠 페이지 및 SEO:**
    * 서비스 소개, 회사 소개, FAQ, 약관 등 정적 페이지.
    * `robots.txt`, 동적/정적 `sitemap`, 구조화 데이터 (Schema.org).

## [VII. 코딩 가이드라인 및 AI 작업 시 주의사항 (Coding Guidelines & AI Task Instructions)]

**AI는 다음 지침을 반드시 준수하여 "[귀사 웹사이트 프로젝트명]" 프로젝트의 코드 작업을 수행해야 합니다. 이 지침은 프로젝트의 일관성, 안정성, 유지보수성을 확보하기 위해 매우 중요합니다.**

1.  **기존 코딩 스타일 절대 준수:**
    * 새로운 코드 작성 또는 기존 코드 수정 시, **주변 코드의 스타일(들여쓰기 - [스페이스 N칸 또는 탭 명시], 변수명 규칙 - [프로젝트 규칙 명시, 예: camelCase 또는 snake_case], 주석 스타일 등)을 철저히 따를 것.**
    * PHP 태그 스타일(`<?php ... ?>`), 제어 구조 스타일(if, for, while 등), 함수 및 클래스 정의 스타일 등을 **기존 코드와 일관되게 유지**할 것.
    * 일반적인 PHP 코딩 컨벤션이나 AI의 기본 스타일보다 **프로젝트 내 기존 스타일이 최우선 순위**임. 불필요하게 코드 포맷을 변경하지 말 것.
2.  **프로젝트 실제 구조 기반 작업:**
    * 제시된 파일 구조(IV 섹션)와 데이터베이스 스키마(`[데이터베이스_덤프파일명].sql`, V 섹션)를 **정확히 이해하고 작업**할 것.
    * 임의로 새로운 파일/폴더 구조를 만들거나 기존 구조를 변경하지 말 것 (명시적 요청 시 예외).
    * 존재하지 않는 함수나 클래스를 가정하여 사용하지 말고, **프로젝트 내에 실제로 정의된 요소만 활용**할 것.
    * **관리자 페이지 레이아웃:** 모든 관리자 페이지 (`/[관리자_경로명]/*.php`)는 표준 관리자 레이아웃을 사용해야 하며, 이를 위해 각 관리자 페이지 상단에는 `require_once 'includes/admin-header.php';`를, 하단에는 `require_once 'includes/admin-footer.php';`를 포함해야 함. (경로는 프로젝트 구조에 맞게 조정)
3.  **논리적이고 일관된 접근:**
    * 모든 코드 변경은 논리적인 근거를 가져야 하며, 기존 시스템의 작동 방식과 충돌하지 않도록 주의.
    * 함수나 변수의 명명 규칙, 데이터 처리 흐름, `require_once` 경로 등을 일관성 있게 유지.
    * **경로 관리:** 파일 인클루드 시 `$base_path` (또는 `BASE_PATH` 상수)와 같은 절대 경로 기반 변수를 사용하고, 동일 모듈 내에서는 상대 경로를 사용하는 등 일관된 경로 관리 전략을 따를 것 (III.6 참조).
4.  **"가정 금지" 원칙 (매우 중요):**
    * 특정 페이지나 기능, 변수(특히 `$_SESSION`, `$_POST`, `$_GET`), 세션 값, 사용자 로그인 상태, 권한 등이 이미 설정되어 있거나 정상적으로 작동한다고 **절대 가정하지 말 것.**
    * 필요한 데이터나 상태는 항상 **명시적으로 확인하고 로드하는 코드를 포함**할 것. (예: `isset()`, `empty()`, `array_key_exists()`, DB 조회, `Auth::isLoggedIn()`, `Auth::isAdmin()` 등 활용)
5.  **통합 인증 경로 및 연관 페이지 우선 참조/분석/검증 (매우 중요):**
    * 코드 수정 또는 기능 추가 요청 시, 해당 작업이 영향을 미칠 수 있는 **모든 연관 파일(특히 `require_once`로 연결된 파일)을 먼저 분석**할 것.
    * 특히 **인증 관련 로직(`[경로]/auth/` 폴더 전체 또는 유사 경로)은 모든 기능의 선행 조건**이므로, 변경 시 사용자 인증 상태, 역할 권한 등을 반드시 확인.
    * **함수 호출 관계 파악:** 특정 함수를 수정하거나 사용할 때, 해당 함수가 **어디서 호출되고 어떤 파라미터를 받으며 어떤 값을 반환하는지**, 그리고 이 함수를 호출하는 다른 부분에 미치는 영향을 반드시 고려.
    * **데이터베이스 상호작용 분석:** DB 스키마(`[데이터베이스_덤프파일명].sql`)를 참조하여 테이블 간의 관계, FK 제약 조건, 데이터 타입 등을 파악하고, 쿼리 작성 시 이를 정확히 반영.
    * **공통 함수 활용:** `[경로]/auth/functions.php`, `[경로]/bbs/includes/functions.php`, `[경로]/admin/includes/admin-utils.php` 등에 정의된 공통 함수를 최대한 활용하고, 유사 기능을 중복 구현하지 말 것. (경로는 프로젝트 구조에 맞게 조정)
6.  **함수 불일치 문제 해결 및 일관성 유지 (핵심 중의 핵심):**
    * AI가 일반적인 PHP 지식이나 다른 프로젝트의 코딩 스타일을 기반으로 함수명, 파라미터, 로직 등을 제안하는 것을 **극도로 경계**할 것.
    * **항상 "[귀사 웹사이트 프로젝트명]" 프로젝트 내에서 실제로 사용되는 함수명, 파라미터 순서 및 개수, 반환 값 형식, 코딩 패턴을 정확히 따를 것.**
    * 새로운 함수나 클래스 메소드 작성 시, 기존 프로젝트의 명명 규칙 및 작성 스타일을 철저히 준수.
    * 안티패턴이나 비효율적인 코드가 기존에 존재하더라도, 스타일 유지가 우선이며 개선은 별도 명시적 요청 시에만 진행.
    * **페이지 제목 변수:** 사용자 페이지는 `$page_title` (snake_case), 관리자 페이지는 `$pageTitle` (camelCase)을 사용할 수 있음 (III.4 참조). (또는 프로젝트의 규칙에 따름) 각 컨텍스트의 헤더 파일 요구사항을 따를 것.
7.  **보안 고려 사항:**
    * **SQL Injection 방지:** `getDbConnection()` (또는 유사 함수)을 통해 얻은 PDO 객체를 사용하여, 모든 DB 쿼리는 **PreparedStatement와 파라미터 바인딩 방식**을 일관되게 사용할 것.
    * **XSS(Cross-Site Scripting) 방지:** 사용자 입력값을 HTML에 출력할 때는 `htmlspecialchars()` 또는 프로젝트 내 공통 `escapeHtml()` 함수를 일관되게 사용할 것. [에디터명] 내용 출력 시에는 해당 라이브러리가 제공하는 정제 기능을 신뢰하되, 저장 전 서버단 필터링도 고려.
    * **CSRF(Cross-Site Request Forgery) 방어:** 모든 상태 변경을 유발하는 폼(POST 요청)에는 `[경로]/auth/functions.php`의 `generateCsrfToken()` (또는 유사 함수)으로 생성된 토큰을 hidden 필드로 포함하고, 서버 측에서 `validateCsrfToken()` (또는 유사 함수)으로 검증할 것. **모달(Modal) 내부에 있는 폼의 경우에도 예외 없이 CSRF 보호를 적용해야 함.**
    * **파일 업로드 보안:** `[경로]/[모듈명]/upload.php`와 같이 파일 업로드 처리 시 확장자 화이트리스트 방식 검증, 파일 크기 제한, 저장 경로 및 파일명 관리 철저히 할 것.
    * **경로 조작 방지:** `include`, `require_once` 사용 시 상대 경로나 사용자 입력 기반 경로를 사용할 때 주의. 가급적 `$base_path` (또는 `BASE_PATH` 상수)와 같은 절대 경로 기준 사용 (III.6 참조).
    * **입력값 새니타이즈:** `sanitizeInput()` 함수 (또는 `[경로]/auth/functions.php`에 정의된 유사한 전역 입력값 처리 함수)는 외부로부터 유입되는 **모든 문자열 데이터에 대해 사용되어야 함.**
8.  **에러 핸들링 및 로깅:**
    * `[경로]/auth/config.php` (또는 프로젝트 설정 파일)에 정의된 에러 보고 설정(예: `error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1); ini_set('error_log', '[경로]/error.log');`)을 따를 것.
    * 주요 작업(DB 작업, 파일 처리 등) 실패 시 `try-catch` 블록을 사용하여 예외를 처리하고, `error_log()` 함수를 사용하여 상세 오류를 로그 파일에 기록. 사용자에게는 `setFlashMessage('error', '오류 메시지')`를 통해 일반적인 오류 안내.
9.  **주석:**
    * 복잡한 로직이나 중요한 결정 사항에 대해서는 간결하고 명확한 주석을 추가. 기존 파일의 주석 스타일(PHPDoc 형식 또는 일반 주석)을 따를 것.
10. **출력 버퍼링 (`ob_start`, `ob_end_flush`, `ob_clean`):**
    * 페이지 상단에 `ob_start()`를 사용하고, `header()` 함수를 통한 리디렉션 전에 필요시 `ob_end_flush()` 또는 `ob_clean()`을 사용하는 패턴이 관찰될 경우 이를 따를 것. HTTP 헤더 관련 작업을 수행하기 전에 출력이 없도록 관리.
11. **세션 관리:**
    * 세션은 `[경로]/auth/Session.php` 클래스 (또는 유사 클래스/방식)를 통해 관리될 수 있음. 세션 시작 및 관리는 해당 메커니즘을 따를 것.
    * 플래시 메시지는 `$_SESSION['flash_messages']` (또는 유사 세션 변수)를 사용하며, `setFlashMessage`/`getFlashMessages` 함수 (또는 유사 함수)를 통해 관리.
12. **데이터베이스 테이블 초기 설정:**
    * 데이터베이스 테이블의 존재 여부 확인 및 초기 생성 SQL 제공 로직은 프로젝트 전반에 걸쳐 일관된 방식으로 처리할 것. (예: 각 관리 모듈 페이지 또는 중앙 설정 스크립트)
13. **내부 API 엔드포인트:**
    * 내부 API 엔드포인트(예: `/api/get-data.php`)를 호출하거나 개발하는 경우, 해당 API 엔드포인트 역시 본 코딩 가이드라인(특히 보안 관련 항목)을 철저히 준수하여야 함.

## [VIII. AI 요청 작업 - 사용자의 메시지]

---
[여기에 AI에게 요청할 구체적인 작업 내용을 작성하십시오. 예: "회원 목록 페이지에 이메일 검색 기능을 추가해주세요. 관련 파일은 /admin/users.php, /admin/includes/admin-header.php, /js/admin.js 입니다. users 테이블에는 email 컬럼이 존재합니다."]
---

이 프롬프트 문서를 사용하여 "[귀사 웹사이트 프로젝트명]" 프로젝트의 개발 및 유지보수 작업을 AI와 함께 효율적으로 진행하시기를 바랍니다!

 

 

 

 

 

 

 

 

=======================

 

md 파일로 저장해서 활용하시거나, v0같은 경우 소스에 업로드해두면 자동참조됩니다. 제미니 2.5 구글웹어시스턴트는 소스폴더 업로드 후 같이 활용해주면 잘 기억합니다. 

제미니는 아직 지켜보는데 그래도 기억량은 좋네요.

 

 

추천
2

댓글 2개

전체 252 |RSS
AI 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT