{
  "id": "fa196b9c-7e0d-43e7-8161-a180962a7597",
  "slug": "ref/khub/common-ddd-확장-템플릿-java-php-프로젝트-온보딩용",
  "doc_type": "ref",
  "title": "🏗️ DDD 확장 템플릿 — Java/PHP 프로젝트 온보딩용",
  "title_en": null,
  "one_liner": "# DDD 확장 템플릿 — Java/PHP 프로젝트용 > 템플릿 v1.0 | 2026-02-23 > 용도: 사내 Java/PHP 프로젝트를 Claude 프로젝트 방에 온보딩할 때 이 템플릿을 채워서 사용 --- ## 사용법 1. 새 프로젝트 온보딩 시 이 템플릿을 복사 2. 각 ",
  "summary_bullets": [],
  "body_md": "# DDD 확장 템플릿 — Java/PHP 프로젝트용\n\n> 템플릿 v1.0 | 2026-02-23\n> 용도: 사내 Java/PHP 프로젝트를 Claude 프로젝트 방에 온보딩할 때 이 템플릿을 채워서 사용\n\n---\n\n## 사용법\n\n1. 새 프로젝트 온보딩 시 이 템플릿을 복사\n2. 각 섹션의 `{placeholder}`를 실제 값으로 채움\n3. 완성된 문서를 KHub에 등록 + Claude 프로젝트 파일에 추가\n4. 필요 시 COMMON 용어 사전에 새 용어 추가\n\n---\n\n## 📖 용어 사전 — {프로젝트명}\n\n> COMMON 용어 사전과 병합하여 사용. 프로젝트 고유 용어만 여기에 등록.\n\n### DB 테이블\n\n| 정규 이름 | 스키마 | 용도 | DB 위치 |\n|-----------|--------|------|---------|\n| {테이블명} | {스키마} | {설명} | {MySQL/PostgreSQL/Oracle 등} |\n\n### 패키지/모듈 구조\n\n| 패키지 경로 | 역할 | 비고 |\n|------------|------|------|\n| {com.bizspring.xxx.controller} | {API 컨트롤러} | |\n| {com.bizspring.xxx.service} | {비즈니스 로직} | |\n| {com.bizspring.xxx.repository} | {데이터 접근} | |\n| {com.bizspring.xxx.dto} | {데이터 전송 객체} | |\n\n### API 엔드포인트\n\n| Method | Path | 용도 | 담당 컨트롤러 |\n|--------|------|------|--------------|\n| {GET} | {/api/v1/xxx} | {설명} | {XxxController} |\n\n### 인프라 별칭\n\n| 정규 이름 | 역할 | 접속 정보 |\n|-----------|------|----------|\n| {db-production} | 운영 DB | {host:port/dbname} |\n| {db-staging} | 스테이징 DB | {host:port/dbname} |\n| {redis-cache} | 캐시 서버 | {host:port} |\n\n### 외부 연동\n\n| 서비스명 | 용도 | 인증 방식 | 키 위치 |\n|----------|------|----------|---------|\n| {Naver API} | {검색 연동} | {API Key} | {vault/환경변수/DB} |\n\n---\n\n## 🎯 도메인 트리거 — {프로젝트명}\n\n> 키워드 감지 시 Claude가 자동으로 참조할 문서/코드 매핑\n\n| 키워드 | 도메인 | 자동 조회 | 참조 대상 |\n|--------|--------|----------|----------|\n| {결제, 정산} | {payment} | khub_search(\"{결제 모듈}\", \"{PROJECT_CODE}\") | {PaymentService, 결제 플로우 문서} |\n| {회원, 인증, 로그인} | {auth} | khub_search(\"{인증 모듈}\", \"{PROJECT_CODE}\") | {AuthService, JWT 설정} |\n| {로그, 추적, 트래킹} | {tracking} | khub_search(\"{추적 모듈}\", \"{PROJECT_CODE}\") | {TrackingController, SDK 가이드} |\n| {리포트, 통계, 대시보드} | {report} | khub_search(\"{리포트 모듈}\", \"{PROJECT_CODE}\") | {ReportService, 집계 쿼리} |\n| {배치, 스케줄, cron} | {batch} | khub_search(\"{배치 처리}\", \"{PROJECT_CODE}\") | {BatchConfig, 스케줄러 설정} |\n| {배포, CI/CD, 릴리즈} | {deploy} | khub_search(\"{배포 가이드}\", \"{PROJECT_CODE}\") | {Jenkinsfile, deploy 스크립트} |\n| {설정, config, properties} | {config} | khub_search(\"{환경 설정}\", \"{PROJECT_CODE}\") | {application.yml, .env} |\n\n---\n\n## 🏆 골든 패턴 — {프로젝트명}\n\n> 새 코드 작성 시 참조할 표준 구조. 기존 코드 중 가장 잘 된 것을 골든으로 지정.\n\n### Java 골든 패턴\n\n| 패턴 유형 | 골든 파일/클래스 | 위치 | 참조 이유 |\n|-----------|----------------|------|----------|\n| REST Controller | {XxxController.java} | {경로} | {표준 에러 핸들링, Swagger 어노테이션} |\n| Service Layer | {XxxServiceImpl.java} | {경로} | {트랜잭션 관리, 로깅 패턴} |\n| Repository/DAO | {XxxRepository.java} | {경로} | {QueryDSL/JPA 사용 패턴} |\n| DTO/Mapper | {XxxDto.java + XxxMapper.java} | {경로} | {Validation, MapStruct 사용} |\n| Batch Job | {XxxBatchConfig.java} | {경로} | {Spring Batch 표준 구조} |\n| Test | {XxxServiceTest.java} | {경로} | {Mockito + 통합테스트 패턴} |\n\n### PHP 골든 패턴\n\n| 패턴 유형 | 골든 파일 | 위치 | 참조 이유 |\n|-----------|----------|------|----------|\n| Controller | {XxxController.php} | {경로} | {미들웨어, 에러 핸들링} |\n| Model | {Xxx.php} | {경로} | {Eloquent 관계, 스코프} |\n| Service | {XxxService.php} | {경로} | {비즈니스 로직 분리} |\n| Migration | {create_xxx_table.php} | {경로} | {인덱스, FK 설정 표준} |\n\n### 공통 코딩 컨벤션\n\n| 항목 | 규칙 |\n|------|------|\n| 네이밍 | {camelCase/snake_case/PascalCase 기준} |\n| 에러 핸들링 | {GlobalExceptionHandler / try-catch 패턴} |\n| 로깅 | {SLF4J + Logback / Monolog 기준} |\n| 인증 | {JWT / Session / OAuth2 기준} |\n| DB 접근 | {JPA / MyBatis / Eloquent 기준} |\n\n---\n\n## ⛔ 안티패턴 — {프로젝트명}\n\n> 프로젝트 고유 안티패턴. COMMON AP-01~11과 병행 적용.\n\n| ID | 규칙 | 위반 시 |\n|----|------|--------|\n| {JP-01} | {SQL 직접 작성 금지 → ORM/QueryDSL 사용} | {즉시 중단} |\n| {JP-02} | {운영 DB 직접 접속 금지 → 스테이징에서 검증} | {즉시 중단} |\n| {JP-03} | {하드코딩 설정 금지 → application.yml/환경변수} | {즉시 중단} |\n| {JP-04} | {public 필드 금지 → getter/setter 또는 record} | {코드 리뷰} |\n| {JP-05} | {테스트 없는 배포 금지 → 최소 단위테스트 필수} | {배포 차단} |\n\n---\n\n## 📋 온보딩 체크리스트\n\n프로젝트를 Claude 방에 가져올 때:\n\n```\n- [ ] 프로젝트 개요 문서 작성 (목적, 스택, 팀)\n- [ ] 📖 용어 사전 채우기 (DB 테이블, 패키지, API)\n- [ ] 🎯 도메인 트리거 매핑 (키워드 → 문서/코드)\n- [ ] 🏆 골든 패턴 지정 (각 레이어별 모범 코드)\n- [ ] ⛔ 안티패턴 정리 (프로젝트 고유 금기사항)\n- [ ] KHub에 등록 (project_code 새로 생성)\n- [ ] Claude 프로젝트 파일에 Instructions 추가\n- [ ] 메모리 등록 (DDD 핵심 + 프로젝트 고유 규칙)\n```\n\n---\n\n## 💡 팁: 빠른 온보딩 순서\n\n```\n1일차: 프로젝트 개요 + DB 테이블 목록 → 용어 사전 초안\n2일차: 주요 코드 파일 파악 → 골든 패턴 지정\n3일차: 팀 컨벤션 + 금기사항 → 안티패턴 정리\n4일차: 키워드-문서 매핑 → 도메인 트리거 완성\n→ 이후 Claude가 코드 리뷰/생성 시 자동 참조\n```",
  "related_slugs": [],
  "faq": [],
  "jsonld": null,
  "keywords": [],
  "source_id": "5a3c57bc-6416-49d0-a4d5-2d3ba2ab4aa2",
  "video_url": null,
  "duration_sec": null,
  "thumbnail_url": null,
  "image_url": null,
  "caption": null,
  "solution_slug": null,
  "captured_at": null,
  "width": null,
  "height": null,
  "created_at": "2026-08-24T11:53:44.5731+00:00",
  "updated_at": "2026-08-24T11:53:44.5731+00:00",
  "visibility": "public",
  "source_stage": "1",
  "anonymized": true,
  "source_key": "legacy-khub",
  "origin": "ingest",
  "locked": false,
  "locked_by": null,
  "locked_at": null,
  "gate_state": {
    "g1": {
      "hits": [],
      "pass": true
    },
    "g2": {
      "pass": true,
      "total": 46,
      "issues": [
        "숫자·규격 같은 검증 가능한 구체가 부족합니다",
        "핵심 요약 불릿이 3개 미만입니다",
        "Q&A 쌍이 3개 미만입니다"
      ],
      "applies": true
    },
    "g3": {
      "pass": true,
      "required": false
    },
    "stage": "1",
    "decided_at": "2026-08-24T11:53:44.334Z"
  },
  "raw_id": "da3817fc-9a7c-4595-8d05-c8a307f721f8",
  "search_text": "🏗️ DDD 확장 템플릿 — Java/PHP 프로젝트 온보딩용  # DDD 확장 템플릿 — Java/PHP 프로젝트용 > 템플릿 v1.0 | 2026-02-23 > 용도: 사내 Java/PHP 프로젝트를 Claude 프로젝트 방에 온보딩할 때 이 템플릿을 채워서 사용 --- ## 사용법 1. 새 프로젝트 온보딩 시 이 템플릿을 복사 2. 각   # DDD 확장 템플릿 — Java/PHP 프로젝트용\n\n> 템플릿 v1.0 | 2026-02-23\n> 용도: 사내 Java/PHP 프로젝트를 Claude 프로젝트 방에 온보딩할 때 이 템플릿을 채워서 사용\n\n---\n\n## 사용법\n\n1. 새 프로젝트 온보딩 시 이 템플릿을 복사\n2. 각 섹션의 `{placeholder}`를 실제 값으로 채움\n3. 완성된 문서를 KHub에 등록 + Claude 프로젝트 파일에 추가\n4. 필요 시 COMMON 용어 사전에 새 용어 추가\n\n---\n\n## 📖 용어 사전 — {프로젝트명}\n\n> COMMON 용어 사전과 병합하여 사용. 프로젝트 고유 용어만 여기에 등록.\n\n### DB 테이블\n\n| 정규 이름 | 스키마 | 용도 | DB 위치 |\n|-----------|--------|------|---------|\n| {테이블명} | {스키마} | {설명} | {MySQL/PostgreSQL/Oracle 등} |\n\n### 패키지/모듈 구조\n\n| 패키지 경로 | 역할 | 비고 |\n|------------|------|------|\n| {com.bizspring.xxx.controller} | {API 컨트롤러} | |\n| {com.bizspring.xxx.service} | {비즈니스 로직} | |\n| {com.bizspring.xxx.repository} | {데이터 접근} | |\n| {com.bizspring.xxx.dto} | {데이터 전송 객체} | |\n\n### API 엔드포인트\n\n| Method | Path | 용도 | 담당 컨트롤러 |\n|--------|------|------|--------------|\n| {GET} | {/api/v1/xxx} | {설명} | {XxxController} |\n\n### 인프라 별칭\n\n| 정규 이름 | 역할 | 접속 정보 |\n|-----------|------|----------|\n| {db-production} | 운영 DB | {host:port/dbname} |\n| {db-staging} | 스테이징 DB | {host:port/dbname} |\n| {redis-cache} | 캐시 서버 | {host:port} |\n\n### 외부 연동\n\n| 서비스명 | 용도 | 인증 방식 | 키 위치 |\n|----------|------|----------|---------|\n| {Naver API} | {검색 연동} | {API Key} | {vault/환경변수/DB} |\n\n---\n\n## 🎯 도메인 트리거 — {프로젝트명}\n\n> 키워드 감지 시 Claude가 자동으로 참조할 문서/코드 매핑\n\n| 키워드 | 도메인 | 자동 조회 | 참조 대상 |\n|--------|--------|----------|----------|\n| {결제, 정산} | {payment} | khub_search(\"{결제 모듈}\", \"{PROJECT_CODE}\") | {PaymentService, 결제 플로우 문서} |\n| {회원, 인증, 로그인} | {auth} | khub_search(\"{인증 모듈}\", \"{PROJECT_CODE}\") | {AuthService, JWT 설정} |\n| {로그, 추적, 트래킹} | {tracking} | khub_search(\"{추적 모듈}\", \"{PROJECT_CODE}\") | {TrackingController, SDK 가이드} |\n| {리포트, 통계, 대시보드} | {report} | khub_search(\"{리포트 모듈}\", \"{PROJECT_CODE}\") | {ReportService, 집계 쿼리} |\n| {배치, 스케줄, cron} | {batch} | khub_search(\"{배치 처리}\", \"{PROJECT_CODE}\") | {BatchConfig, 스케줄러 설정} |\n| {배포, CI/CD, 릴리즈} | {deploy} | khub_search(\"{배포 가이드}\", \"{PROJECT_CODE}\") | {Jenkinsfile, deploy 스크립트} |\n| {설정, config, properties} | {config} | khub_search(\"{환경 설정}\", \"{PROJECT_CODE}\") | {application.yml, .env} |\n\n---\n\n## 🏆 골든 패턴 — {프로젝트명}\n\n> 새 코드 작성 시 참조할 표준 구조. 기존 코드 중 가장 잘 된 것을 골든으로 지정.\n\n### Java 골든 패턴\n\n| 패턴 유형 | 골든 파일/클래스 | 위치 | 참조 이유 |\n|-----------|----------------|------|----------|\n| REST Controller | {XxxController.java} | {경로} | {표준 에러 핸들링, Swagger 어노테이션} |\n| Service Layer | {XxxServiceImpl.java} | {경로} | {트랜잭션 관리, 로깅 패턴} |\n| Repository/DAO | {XxxRepository.java} | {경로} | {QueryDSL/JPA 사용 패턴} |\n| DTO/Mapper | {XxxDto.java + XxxMapper.java} | {경로} | {Validation, MapStruct 사용} |\n| Batch Job | {XxxBatchConfig.java} | {경로} | {Spring Batch 표준 구조} |\n| Test | {XxxServiceTest.java} | {경로} | {Mockito + 통합테스트 패턴} |\n\n### PHP 골든 패턴\n\n| 패턴 유형 | 골든 파일 | 위치 | 참조 이유 |\n|-----------|----------|------|----------|\n| Controller | {XxxController.php} | {경로} | {미들웨어, 에러 핸들링} |\n| Model | {Xxx.php} | {경로} | {Eloquent 관계, 스코프} |\n| Service | {XxxService.php} | {경로} | {비즈니스 로직 분리} |\n| Migration | {create_xxx_table.php} | {경로} | {인덱스, FK 설정 표준} |\n\n### 공통 코딩 컨벤션\n\n| 항목 | 규칙 |\n|------|------|\n| 네이밍 | {camelCase/snake_case/PascalCase 기준} |\n| 에러 핸들링 | {GlobalExceptionHandler / try-catch 패턴} |\n| 로깅 | {SLF4J + Logback / Monolog 기준} |\n| 인증 | {JWT / Session / OAuth2 기준} |\n| DB 접근 | {JPA / MyBatis / Eloquent 기준} |\n\n---\n\n## ⛔ 안티패턴 — {프로젝트명}\n\n> 프로젝트 고유 안티패턴. COMMON AP-01~11과 병행 적용.\n\n| ID | 규칙 | 위반 시 |\n|----|------|--------|\n| {JP-01} | {SQL 직접 작성 금지 → ORM/QueryDSL 사용} | {즉시 중단} |\n| {JP-02} | {운영 DB 직접 접속 금지 → 스테이징에서 검증} | {즉시 중단} |\n| {JP-03} | {하드코딩 설정 금지 → application.yml/환경변수} | {즉시 중단} |\n| {JP-04} | {public 필드 금지 → getter/setter 또는 record} | {코드 리뷰} |\n| {JP-05} | {테스트 없는 배포 금지 → 최소 단위테스트 필수} | {배포 차단} |\n\n---\n\n## 📋 온보딩 체크리스트\n\n프로젝트를 Claude 방에 가져올 때:\n\n```\n- [ ] 프로젝트 개요 문서 작성 (목적, 스택, 팀)\n- [ ] 📖 용어 사전 채우기 (DB 테이블, 패키지, API)\n- [ ] 🎯 도메인 트리거 매핑 (키워드 → 문서/코드)\n- [ ] 🏆 골든 패턴 지정 (각 레이어별 모범 코드)\n- [ ] ⛔ 안티패턴 정리 (프로젝트 고유 금기사항)\n- [ ] KHub에 등록 (project_code 새로 생성)\n- [ ] Claude 프로젝트 파일에 Instructions 추가\n- [ ] 메모리 등록 (DDD 핵심 + 프로젝트 고유 규칙)\n```\n\n---\n\n## 💡 팁: 빠른 온보딩 순서\n\n```\n1일차: 프로젝트 개요 + DB 테이블 목록 → 용어 사전 초안\n2일차: 주요 코드 파일 파악 → 골든 패턴 지정\n3일차: 팀 컨벤션 + 금기사항 → 안티패턴 정리\n4일차: 키워드-문서 매핑 → 도메인 트리거 완성\n→ 이후 Claude가 코드 리뷰/생성 시 자동 참조\n```",
  "embedding": null,
  "embedded_at": null,
  "embedding_hash": null,
  "backlinks": [],
  "html_url": "https://bizspring.ai/kb/ref/khub/common-ddd-확장-템플릿-java-php-프로젝트-온보딩용",
  "markdown_url": "https://bizspring.ai/kb/ref/khub/common-ddd-확장-템플릿-java-php-프로젝트-온보딩용.md"
}