# 업체 템플릿 복사 기능 - 실행 요약서 ## 핵심 결론 **매우 높은 가능성 (95% 이상) ✅** 업체 템플릿 복사 기능은 **완전히 기술적으로 가능**하며, 기존 시스템의 멀티테넌트 아키텍처와 enterprise_write_ok.php 로직을 활용하면 3-4주 내 구현 가능합니다. --- ## 🎯 핵심 포인트 5개 ### 1. 멀티테넌트 아키텍처가 이미 완비됨 ``` 현재 상태: - ep_code/gp_code 기반 완벽한 데이터 분리 - 디렉토리별 독립적인 콘텐츠 저장소 - 명확한 테넌트 격리 메커니즘 → 복사 로직 구현이 매우 간단해짐 ``` ### 2. 기존 enterprise_write_ok.php (842줄)에서 대부분 재사용 ``` 이미 구현된 로직: ✅ 디렉토리 생성 (18개) ✅ 인덱스 파일 생성 ✅ 기본 DB 레코드 생성 ✅ 초기 설정 삽입 → 복사 함수는 이 로직을 활용하면 됨 ``` ### 3. 데이터베이스 복사는 표준 SQL 패턴 ``` 테이블 목록 (config.php 정의): - 핵심 테이블: iw_setting, iw_seo, iw_enterprise, iw_member (4개) - 선택적 테이블: 45개 이상 각 테이블: INSERT INTO new_table SELECT * FROM old_table WHERE ep_code = 'source' → ep_code = 'target' ``` ### 4. 파일 복사는 디렉토리 구조만 이해하면 됨 ``` 복사 경로 (선택적): - /main/{nick}/all/_images/* → 로고, 이미지 - /main/{nick}/all/_board/* → 게시판 첨부 - /about/{nick}/all/* → 프로필 페이지 - /shop, /doc, /book... → 모듈별 PHP의 copy_directory() 재귀 함수로 처리 완료 ``` ### 5. PHP 5.3 호환성은 이미 검증됨 ``` 기존 코드가 모두 PHP 5.3 기반이므로: ✅ 배열 문법 (array() 사용) ✅ 함수 호환성 ✅ SQL 드라이버 (mysql_* 함수) → 호환성 문제 없음 ``` --- ## 📊 데이터 매핑 요약 ### 필수 복사 테이블 ``` 테이블 레코드 수 필터 조건 비고 iw_setting 1 ep_code, gp_code='all' 디자인/설정 iw_seo 1 (선택) ep_code SEO 메타 iw_group_level 10 ep_code 회원 등급 iw_category 3-10 ep_code, state_sort 게시판 카테고리 iw_home_menu 5-15 ep_code 메뉴 구조 iw_about_data 1-5 ep_code 프로필 페이지 iw_member N ep_code 회원 정보 (선택) iw_comment N ep_code 댓글 (선택) [기타] N ep_code 모듈별 선택 ``` ### 파일 시스템 복사 구조 ``` 원본: /main/{source_nick}/all/ ├─ _images/* (로고, 아이콘, 업로드 이미지) └─ _board/* (게시판 첨부파일) 대상: /main/{target_nick}/all/ ├─ _images/* └─ _board/* 총 18개 디렉토리 생성 (동일한 구조) ``` --- ## 🔧 기술 스택 ### 사용할 기술 - **언어**: PHP 5.3 - **DB**: MySQL (InnoDB 트랜잭션) - **파일 시스템**: PHP copy/mkdir 함수 - **UI**: 기존 Bootstrap 스타일 유지 ### 주요 함수 (구현 필요) ```php clone_enterprise() // 메인 클론 함수 validate_clone_input() // 입력 검증 get_enterprise_data() // 원본 데이터 조회 create_enterprise_directories() // 디렉토리 생성 clone_database_records() // DB 복사 clone_files() // 파일 복사 cleanup_on_failure() // 실패 시 정리 ``` --- ## ⚠️ 주요 주의사항 ### 1. 외래키 관계 처리 ``` 문제: 새로운 ep_code 생성 시 참조 ID도 재생성 필요 예시: iw_category → cg_code (자동생성) iw_home_menu → cg_code (참조) 해결책: ID 매핑 테이블 사용 ``` ### 2. 트랜잭션 관리 ``` 필요성: 모든 작업 원자성 보장 - DB 변경 실패 시 DB 롤백 - 파일 복사 실패 시 수동 정리 필요 구현: START TRANSACTION / COMMIT / ROLLBACK ``` ### 3. 권한 검증 ``` 허용: 슈퍼 관리자만 ($iw['level'] == 'super') 거부: 일반 관리자, 회원 구현: member_super.php 포함 ``` ### 4. 데이터 무결성 ``` 검증 필요: 1. 원본 존재 확인 2. 대상 ID 중복 확인 3. 이메일 중복 확인 4. 도메인 중복 확인 ``` --- ## 📈 구현 일정 (권장) ### Phase 1: 기본 기능 (1주) - [ ] 클론 함수 기본 구조 - [ ] DB 레코드 복사 (ID 매핑 없이) - [ ] 파일 복사 - [ ] 트랜잭션 처리 ### Phase 2: 고급 기능 (1주) - [ ] ID 매핑 로직 - [ ] 복제 옵션 (선택적) - [ ] 진행률 표시 - [ ] 에러 처리 ### Phase 3: 안정화 (1주) - [ ] 보안 감사 - [ ] 성능 테스트 - [ ] 로깅 시스템 - [ ] 문서화 **총 3주 (3-4주 권장)** --- ## 💰 리소스 요청 ### 개발 - 1명 풀타임 개발자 (3-4주) - 또는 2명 파트타임 (2주) ### 테스트 - 테스트용 서버 환경 - 백업 전략 수립 - QA 테스트 1주 ### 배포 전 사항 - 스테이징 검증 - 운영 환경 백업 - 롤백 계획 수립 --- ## ✅ 최종 평가 | 항목 | 평가 | 근거 | |------|------|------| | 기술적 가능성 | 95% ✅ | 멀티테넌트 아키텍처 완비 | | 구현 난이도 | 낮음 | 기존 코드 재사용 가능 | | 리스크 수준 | 중간 | 트랜잭션, ID 매핑 처리 필요 | | 성능 영향 | 없음 | 배경 작업화 가능 | | 보안 위험 | 낮음 | 권한 검증 충분 | ### 결론 **"즉시 구현 권장" 🚀** 기존 시스템의 아키텍처가 완벽하게 지원하므로, 기술적 장애물이 거의 없습니다. 3-4주 내 안정적인 구현이 가능합니다. --- ## 📚 참고 문서 - 상세 분석: `enterprise_clone_feasibility.md` - 기존 로직: `_infoway/bbs/super/enterprise_write_ok.php` (842줄) - 테이블 정의: `_infoway/include/config.php` - 공통 함수: `_infoway/bbs/super/_common.php` --- **작성**: Claude Code **날짜**: 2026-01-22 **상태**: 검토 대기