목표

현재 작동 중인 웹진 관리의 모든 기능(데이터베이스, 컨트롤러, 뷰, 에디터 등)을 매거진 관리로 복제합니다. 기본적인 편집 기능은 동일하게 유지하되, 추후 매거진만의 고유한 기능(페이지별 관리 등)을 독립적으로 개발할 수 있도록 구조를 분리합니다.

제안된 변경 사항

1. 데이터베이스 구조 생성

웹진과 동일한 구조의 매거진 전용 테이블을 생성합니다.

  • magazines 테이블 생성 (webzines 테이블 구조와 동일)
  • magazine_categories 테이블 생성 (webzine_categories 테이블 구조와 동일)

2. 백엔드 (Controller & Routing)

  • Controller 복제: src/Controllers/WebzineAdminController.php를 복사하여 MagazineAdminController.php를 생성합니다.
    • 내부 로직의 DB 참조를 magazines, magazine_categories로 변경.
    • 라우팅 및 리다이렉션 경로를 admin/magazine으로 변경.
  • Routing 수정 (public/index.php):
    • 기존에 WebzineAdminController를 가리키고 있던 admin/magazine  admin/magazine/editor 라우트를 새로운 MagazineAdminController로 연결합니다.
    • admin/magazine/category-save, admin/magazine/update, admin/magazine/delete 등 매거진 전용 라우트를 추가합니다.
    • 매거진 에디터 저장용 API 라우트(admin/api/magazine/save)를 추가합니다.

3. 프론트엔드 (Admin Views)

뷰 파일을 완전히 분리하여 향후 매거진 페이지별 관리 기능을 추가할 때 웹진 쪽에 영향을 주지 않도록 합니다.

  • 목록 페이지: views/admin/webzine_list.php  views/admin/magazine_list.php로 복사 (내부 텍스트 "웹진" ➔ "매거진" 수정)
  • 에디터 껍데기: views/admin/webzine_editor.php  views/admin/magazine_editor.php로 복사
  • 에디터 코어 스크립트: views/admin/_webzine_editor_core.php  views/admin/_magazine_editor_core.php로 복사
    • 저장 API 엔드포인트를 /admin/api/magazine/save로 변경.

사용자 검토 필요 (User Review Required)

IMPORTANT

데이터베이스 테이블 분리 현재 제안된 방식은 magazines magazine_categories라는 완전히 새로운 테이블을 생성하는 방식입니다. 만약 기존 webzines 테이블에 type 컬럼을 추가하여 구분하는 방식을 원하신다면 알려주시기 바랍니다. 하지만 향후 매거진에서 "페이지별 관리" 기능 등 구조적 차이가 발생한다면 테이블을 물리적으로 분리하는 것이 훨씬 안정적이며, 현재 계획도 분리하는 방향으로 설정되어 있습니다.

검증 계획 (Verification Plan)

  • 매거진 관리 메뉴 접속 시 정상적으로 목록이 표시되는지 확인.
  • 매거진 카테고리 추가/삭제 및 새 매거진 생성 테스트.
  • 매거진 에디터 접속 시 웹진과 동일한 에디터가 표시되며 모듈들이 정상 작동하는지 확인.
  • 저장 버튼 클릭 시 admin/api/magazine/save로 성공적으로 저장되는지 확인.