# Infoway 프로젝트 분석 보고서 ## 📊 프로젝트 현황 ### 기본 정보 - **프로젝트명**: DLIVE-Zinpack-AI (Infoway 멀티테넌트 SaaS 플랫폼) - **목적**: 기업별 독립 콘텐츠 관리 시스템 - **현재 상태**: 레거시 PHP 5.3 시스템 현대화 진행 중 - **전체 파일 수**: 1,500+ 파일 (추정) - **주요 모듈**: 8개 핵심 모듈 - **데이터베이스 테이블**: 60+ 개 ### 활성 모듈 - ✅ **명함(MCB)**: 디지털 명함 시스템 - ✅ **출판(Publishing)**: 작가, 도서, 공모전, 전시회, 강연 - ✅ **쇼핑(Shop)**: 전자상거래 시스템 - ✅ **전자책(Book)**: eBook 판매 및 관리 - ✅ **문서(Doc)**: 문서 관리 및 판매 - ✅ **멤버**: 회원 관리 및 그룹 - ✅ **SEO**: 검색엔진 최적화 (최근 추가) - ✅ **Admin**: 통합 관리자 시스템 ## 🏗️ 시스템 아키텍처 ### 이중 시스템 구조 ``` ┌─────────────────────────────────────────────┐ │ Infoway 플랫폼 아키텍처 │ ├─────────────────────────────────────────────┤ │ │ │ ┌───────────────────────────────────────┐ │ │ │ _infoway (비즈니스 로직 시스템) │ │ │ │ - PHP 5.3.29 │ │ │ │ - MySQL/MariaDB 5.0.96 │ │ │ │ - 멀티테넌트 관리 │ │ │ │ - 인증/권한 │ │ │ │ - BBS 관리자 시스템 │ │ │ └───────────────┬───────────────────────┘ │ │ │ (데이터 제공) │ │ ┌───────────────▼───────────────────────┐ │ │ │ _zinpack (콘텐츠 표시 시스템) │ │ │ │ - ProcessWire 2.5 CMS │ │ │ │ - 프론트엔드 렌더링 │ │ │ │ - 템플릿 관리 │ │ │ │ - 별도 zinpack DB │ │ │ └───────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────┘ ``` **상세 설명**: [architecture.md](architecture.md) 참고 ## 🔐 멀티테넌트 시스템 ### 핵심 개념 - **ep_code**: 각 테넌트(기업)의 고유 식별자 - **gp_code**: 테넌트 내부 그룹 코드 - **서브도메인**: `{tenant}.dliveletter.kr` 형태 - **완전 격리**: 데이터, 파일, 세션 모두 독립 ### 처리 플로우 ``` 1. wizwin.dliveletter.kr 접속 ↓ 2. subdomain_init.php 자동 실행 ↓ 3. DB 조회: iw_enterprise WHERE ep_domain = 'wizwin' ↓ 4. 세션 캐싱 (5분 TTL) ↓ 5. $_GET['ep'] 자동 설정 ↓ 6. common.php에서 전역 변수 설정 ``` **상세 설명**: [multitenant.md](multitenant.md) 참고 ## 💻 기술 스택 ### 백엔드 - **PHP**: 5.3.29 (2014년) ⚠️ - **Database**: MariaDB 5.0.96 (2010년) ⚠️ - **웹서버**: Apache + mod_rewrite - **CMS**: ProcessWire 2.5 ### 프론트엔드 - **CSS**: Bootstrap 3.0, Font Awesome - **JavaScript**: jQuery, CKEditor - **빌드 도구**: 없음 (수동 관리) ### 주요 제약사항 ```php // ❌ 사용 불가 (PHP 5.4+ 문법) ['key' => 'value'] namespace App; ClassName::class; trait MyTrait {} // ✅ 사용 가능 array('key' => 'value') mysql_connect() // deprecated but required function() use ($var) {} // 클로저 제한적 ``` **상세 설명**: [php53-constraints.md](php53-constraints.md) 참고 ## 📁 디렉토리 구조 ``` infoway/ ├── _infoway/ # 비즈니스 로직 시스템 │ ├── bbs/ │ │ ├── admin/ # 관리자 (304개 파일) │ │ ├── m/ # 모바일/사용자 (127개 파일) │ │ └── super/ # 슈퍼관리자 (71개 파일) │ ├── include/ │ │ ├── common.php # 전역 초기화 │ │ ├── config.php # 설정 및 테이블 │ │ ├── subdomain_init.php # 서브도메인 초기화 │ │ ├── subdomain_handler.php # 검증 함수 │ │ ├── member_check.php # 권한 체크 │ │ └── lib/ # 라이브러리 │ ├── design/ # CSS/JS/이미지 │ ├── main/ # 테넌트별 콘텐츠 │ ├── scripts/ # 서브도메인 관리 │ └── sql/ # SQL 스크립트 │ └── _zinpack/ # ProcessWire CMS ├── site/ │ ├── config.php │ ├── templates/ │ └── modules/ └── wire/ # 코어 시스템 ``` ## 💾 데이터베이스 ### 테이블 카테고리 (60+ 개) #### 1. 코어 시스템 (8개) - `iw_setting`: 테넌트 설정 - `iw_seo`: SEO 메타 정보 ⭐ 신규 - `iw_enterprise`: 테넌트 정보 - `iw_member`: 회원 - `iw_group`: 그룹 #### 2. 명함(MCB) (2개) - `iw_mcb_data` - `iw_mcb_support` #### 3. 출판(Publishing) (7개) - `iw_publishing_author`: 작가 - `iw_publishing_books`: 도서 - `iw_publishing_books_author`: 도서-작가 - `iw_publishing_books_ddc`: DDC 분류 - `iw_publishing_exhibit`: 전시회 - `iw_publishing_contest`: 공모전 - `iw_publishing_lecture`: 강연 #### 4. 쇼핑(Shop) (9개) - `iw_shop_seller`, `iw_shop_data`, `iw_shop_option` - `iw_shop_cart`, `iw_shop_order`, `iw_shop_order_sub` - `iw_shop_delivery`, `iw_delivery_info` #### 5. 전자책/문서 (12개) - `iw_book_*` (8개) - `iw_doc_*` (3개) - `iw_about_data` #### 6. 결제 (5개) - `iw_lgd`, `iw_lgd_cancel`, `iw_charge` - `iw_paypal`, `iw_alipay` **상세 스키마**: [database-schema.md](database-schema.md) 참고 ## 🔒 보안 시스템 ### 권한 레벨 ```php // 사용자 레벨 (mb_display) "guest" // 0: 비로그인 "member" // 1: 일반회원 "seller" // 4: 판매자 "admin" // 7: 관리자 "super" // 9: 슈퍼관리자 // 그룹 레벨 (그룹 활성화 시) "gp_guest", "gp_member", "gp_admin" ``` ### 보안 기능 - ✅ SQL Injection 방지: addslashes() 자동 적용 - ✅ XSS 방지: xss_clean() 함수 - ✅ 직접 접근 방지: _INFOWAY_ 상수 - ✅ 48시간 미승인 계정 자동 삭제 - ⚠️ 구형 보안 방식 (magic_quotes_gpc) ## 🚀 현재 개발 상황 ### ✅ 완료된 작업 - SEO 시스템 구축 완료 - Modern Card UI 적용 - 서브도메인 자동 초기화 - 세션 캐싱 시스템 (5분 TTL) - 서브도메인 관리 스크립트 ### 🔄 진행 중 - UI 현대화 (Bootstrap 5 마이그레이션) - 모바일 반응형 개선 - AI 명함 시스템 업그레이드 ### ⚠️ 알려진 이슈 - 모바일 백키 에러 - Bootstrap 3.0 구버전 - jQuery 의존도 높음 - 일부 페이지 구형 UI ## 📈 개선 로드맵 ### Phase 1: Quick Wins (1일 이내) - [ ] 보안 패치 재검증 - [ ] SEO 완성 (sitemap.xml) - [ ] CSS/JS 최적화 - [ ] 이미지 최적화 ### Phase 2: Short-term (1주일) - [ ] UI 현대화 - [ ] 성능 최적화 (인덱스, 쿼리) - [ ] 코드 리팩토링 - [ ] AI 명함 개선 ### Phase 3: Long-term (1개월+) - [ ] Docker 개발 환경 - [ ] 템플릿 클로닝 위자드 - [ ] 뉴스 자동 수집 시스템 - [ ] PHP 업그레이드 검토 (5.6 → 7.0 → 7.4) ## 📚 추가 문서 - [architecture.md](architecture.md): 시스템 아키텍처 상세 - [multitenant.md](multitenant.md): 멀티테넌트 시스템 설명 - [database-schema.md](database-schema.md): DB 스키마 전체 - [php53-constraints.md](php53-constraints.md): PHP 5.3 제약사항 - [current-issues.md](current-issues.md): 현재 이슈 목록 ## 🔗 관련 링크 - [개발 가이드](../guides/development.md) - [배포 가이드](../guides/deployment.md) - [문제 해결 가이드](../guides/troubleshooting.md) --- **마지막 업데이트**: 2024-11-05 **분석자**: Cursor AI **프로젝트 버전**: Legacy (PHP 5.3.29)