회원가입 | 고객센터 |
DESIGNONEX
dxcms.kr
로그인 회원가입
고객센터
5. 관리자 기능 사용법

멀티사이트

D DX
2026.04.21 01:31(수정됨) 156 0

1. 멀티사이트 통합 관리 개요

DXCMS 관리자 패널의 [멀티사이트 통합 관리] 메뉴는 하나의 DXCMS 설치로 여러 도메인을 동시에 운영하는 멀티사이트 환경을 설정•관리하는 도구입니다. 각 도메인별로 독립적인 테마•메뉴 그룹•언어•시간대•푸터 텍스트•추가 설정을 지정하여, 동일 DB와 코드 베이스에서 서로 다른 디자인과 구성의 사이트를 운영할 수 있습니다.

📌  접근 경로: 관리자 대시보드 → 멀티사이트 통합 관리 (URL: /admin/sites) DB 테이블: dx_sites (자동 생성)


1.1 멀티사이트 시스템 개념

개념 설명
단일 설치 멀티 도메인 1개의 DXCMS 코드 + 1개의 DB로 도메인A·B·C를 동시에 운영. 유지보수 비용·DB 중복 없이 여러 사이트 운영 가능.
도메인별 설정 분리 테마·메뉴 그룹·언어·시간대·푸터 텍스트·확장 JSON 설정을 도메인마다 다르게 적용.
요청 시 자동 감지 HTTP_HOST 헤더로 접속 도메인을 자동 감지하여 해당 도메인의 설정을 로드. 등록되지 않은 도메인은 전역 기본 설정(settings 테이블)을 사용.
자동 테이블 생성 멀티사이트 페이지 접근 시 dx_sites 테이블이 없으면 CREATE TABLE IF NOT EXISTS로 자동 생성됩니다.
공유 데이터 회원·게시글·포인트 등 콘텐츠 데이터는 모든 도메인이 공유합니다. 도메인별로 보이는 디자인과 메뉴만 다릅니다.

💡  미등록 도메인으로 접속한 방문자는 전역 기본 설정(settings 테이블의 theme•menu_group 등)이 적용됩니다. 멀티사이트 등록은 추가 도메인에만 필요합니다.


1.2 화면 구성

영역 설명
페이지 헤더 "멀티사이트 통합 관리" 제목과 부제목.
메시지 배너 저장·삭제·오류 결과 메시지(초록=성공 / 빨강=오류).
현재 접속 도메인 안내 하늘색 배너. 현재 관리자 페이지에 접속 중인 HTTP_HOST 표시. "미등록 도메인은 전역 기본 설정 사용" 안내.
사이트 목록 (좌측) 등록된 모든 사이트를 sort_order ASC → id ASC 순으로 표시. 도메인·이름·테마·메뉴 그룹·홈 페이지·수정·삭제 표시.
등록/수정 폼 (우측) 새 사이트 등록 또는 기존 사이트 수정 폼. sticky(고정)으로 스크롤해도 항상 보임.


2. dx_sites 테이블 구조

멀티사이트 설정은 dx_sites 테이블에 저장됩니다. 멀티사이트 관리 페이지에 처음 접근하면 이 테이블이 자동으로 생성됩니다.
 
컬럼명 데이터 타입 기본값 설명
id INT UNSIGNED AUTO_INCREMENT 사이트 고유 ID. PRIMARY KEY.
domain VARCHAR(191) - 접속 도메인. UNIQUE KEY. 예: example.com (https:// 제외).
site_name VARCHAR(191) My Site 브랜드/사이트 명칭. 브라우저 탭·메타 등에 표시.
site_description VARCHAR(191) NULL 브라우저 타이틀·메타 description에 사용.
site_url VARCHAR(191) NULL 정식 URL. 프로토콜(https://) 포함 전체 주소.
theme VARCHAR(100) default 적용할 테마 폴더명. /themes/ 디렉터리의 하위 폴더명과 일치해야 합니다.
menu_group VARCHAR(100) main 사용할 메뉴 그룹 이름. 메뉴 관리의 menu_group 값과 일치해야 합니다.
language VARCHAR(10) ko 사이트 언어 코드. 예: ko(한국어), en(영어), ja(일본어).
timezone VARCHAR(50) Asia/Seoul PHP 타임존 식별자. 예: Asia/Seoul, America/New_York, UTC.
footer_text VARCHAR(500) NULL 사이트 하단 푸터에 표시할 텍스트. 예: Copyright © 2026 MyBrand.
extra_config TEXT NULL JSON 형식의 확장 설정. 개발자가 커스텀 키-값을 자유롭게 정의.
status TINYINT(1) 1 활성(1) / 비활성(0). 비활성 사이트는 전역 기본 설정으로 폴백.
sort_order SMALLINT(5) 0 목록 표시 순서. 낮을수록 상단. 동일 값이면 id ASC.
created_at DATETIME - 최초 등록 일시. INSERT 시 자동 설정.
updated_at DATETIME NULL 마지막 수정 일시. UPDATE 시 자동 설정.


2.1 인덱스 구조

PRIMARY KEY (id) id 컬럼. 자동 증가 기본 키.
UNIQUE KEY uk_domain (domain) domain 컬럼에 유니크 인덱스. 동일 도메인 중복 등록 방지.
KEY idx_status (status) status 컬럼에 인덱스. 활성 사이트만 조회하는 WHERE status=1 쿼리 최적화.


3. 사이트 목록

화면 좌측(2/3)에 등록된 모든 사이트가 sort_order ASC → id ASC 순으로 표시됩니다.


3.1 목록 행 표시 정보

표시 요소 설명
도메인 domain 컬럼값. 굵은 글씨. 마우스 호버 시 초록색으로 변경.
"비활성" 배지 status=0인 사이트에 빨간 "비활성" 배지 표시.
사이트명 site_name 컬럼값.
테마 배지 theme 컬럼값. 초록 배경(bg-emerald-50) 모노스페이스 배지.
메뉴 배지 menu_group 컬럼값. 인디고 배경(bg-indigo-50) 모노스페이스 배지.
홈 페이지 정보 pages 테이블에 is_home=1 AND status=1 AND site_domain={도메인}인 페이지가 있으면 "🏠 홈: /{slug}" 표시. pages 테이블에 site_domain 컬럼이 없으면 미표시.
[✏️ 수정] 버튼 하늘색 아이콘 버튼. /admin/sites/{id}로 이동하여 해당 사이트 수정 폼 표시.
[🗑 삭제] 버튼 "이 사이트 정보를 삭제하시겠습니까?" 확인 창 후 사이트 레코드 삭제.


3.2 빈 목록 상태

등록된 사이트가 없으면 목록 영역 중앙에 "등록된 사이트가 없습니다. 오른쪽에서 첫 사이트를 추가하세요." 안내 메시지와 지구 아이콘이 표시됩니다.


4. 새 사이트 등록

화면 우측 사이드바 폼에서 새 사이트를 등록합니다. 우측 폼은 sticky 포지션으로 고정되어 목록을 스크롤해도 항상 보입니다.


4.1 등록 폼 전체 필드

필드 필수 여부 설명 및 유의사항
접속 도메인 (FQDN) 필수 정확한 도메인명 입력. https://, http:// 및 경로(/) 자동 제거 처리. 대문자는 소문자로 자동 변환. 예: example.com (서브도메인 포함 가능: sub.example.com).
브랜드/사이트 명칭 선택 브라우저 탭·메타 태그에 표시될 사이트 이름. 미입력 시 도메인명으로 자동 설정.
브라우저 타이틀/설명 선택 사이트 메타 description에 사용될 설명문.
정식 URL 경로 선택 프로토콜(https://) 포함 전체 URL. 예: https://example.com. 내부 링크 생성·표준화 URL에 활용.
적용 디자인 테마 필수 /themes/ 디렉터리에 설치된 테마 목록 드롭다운. default 포함 설치된 모든 테마 선택 가능. 기본값: default.
사용 메뉴 그룹 필수 메뉴 관리에서 사용하는 menu_group 값. datalist로 기존 그룹 자동완성 제공. 기본값: main.
하단 푸터 텍스트 선택 사이트 푸터에 표시할 텍스트. 예: Copyright © 2026 MyBrand. All rights reserved.
확장 구성 프로필 (JSON) 선택 JSON 형식의 추가 설정. 개발자가 커스텀 키-값을 자유롭게 정의. 저장 전 JSON 유효성 검사 수행. 예: {"ga_id":"G-XXXXXXX","contact_email":"info@example.com"}
이 사이트를 즉시 활성화 선택 체크 시 status=1(활성). 미체크 시 status=0(비활성). 기본값: 체크됨(활성).


4.2 도메인 자동 정제 처리

입력된 도메인 값은 서버에서 다음 순서로 자동 정제됩니다.
  1. 앞뒤 공백 제거 (trim)
  2. https:// 또는 http:// 접두사 제거 (preg_replace)
  3. 첫 번째 / 이후 경로 제거 (도메인명만 추출)
  4. 소문자로 변환 (strtolower)
입력: https://Example.COM/path 정제 결과: example.com
입력: HTTP://Sub.Domain.KR/ 정제 결과: sub.domain.kr
입력: mysite.com 정제 결과: mysite.com (변경 없음)

💡  도메인 입력 시 https://, http://, www를 포함해도 자동으로 정제됩니다. 단, www.example.com과 example.com은 서로 다른 도메인으로 등록됩니다. 실제 접속 방식에 맞게 입력하세요.


4.3 등록 처리 흐름

  1. CSRF 토큰 검증
  2. 도메인 필수 검증 → 빈 값이면 "도메인은 필수입니다." 오류
  3. extra_config가 입력된 경우 JSON 유효성 검사 → 올바르지 않으면 "추가 설정이 올바른 JSON 형식이 아닙니다." 오류
  4. id=0이면 신규 INSERT: created_at=현재 시각 자동 설정
  5. id>0이면 기존 수정 UPDATE: updated_at=현재 시각 자동 설정
  6. DxCache::flush() — 전체 캐시 초기화
  7. PRG 패턴: /admin/sites?msg=saved로 GET 리다이렉트 → "저장되었습니다." 메시지


4.4 등록 절차

  1. 관리자 대시보드 → [멀티사이트 통합 관리] 메뉴 클릭
  2. 우측 폼의 [접속 도메인] 필드에 도메인 입력 (예: myblog.com)
  3. [브랜드/사이트 명칭] 입력 (예: 나의 두 번째 사이트)
  4. [적용 디자인 테마] 드롭다운에서 해당 도메인에 적용할 테마 선택
  5. [사용 메뉴 그룹] 입력 (예: blog-menu)
  6. [하단 푸터 텍스트] 입력 (선택)
  7. [확장 구성 프로필] JSON 입력 (선택)
  8. [이 사이트를 즉시 활성화] 체크박스 확인
  9. [새 사이트 등록하기] 버튼 클릭
  10. "저장되었습니다." 성공 메시지 확인
  11. 좌측 목록에 새 사이트가 추가됨 확인


5. 사이트 수정

목록에서 [✏️] 수정 버튼 클릭 시 URL이 /admin/sites/{id}로 변경되며, 우측 폼 헤더가 "사이트 정보 수정"으로, 제출 버튼이 "수정 내용 저장"으로 변경됩니다. 기존 값이 폼에 자동으로 채워집니다.


5.1 수정 폼 특이사항

폼 헤더 변경 신규 등록: "✨ 새로운 사이트 등록" → 수정: "✏️ 사이트 정보 수정"
제출 버튼 변경 신규: "새 사이트 등록하기" → 수정: "수정 내용 저장"
취소 링크 수정 모드에서만 [입력 취소] 링크가 표시. 클릭 시 /admin/sites로 이동해 폼 초기화.
도메인 수정 도메인도 수정 가능합니다. 수정 후 저장하면 해당 도메인으로 접속하는 방문자에게 즉시 새 설정이 적용됩니다.
언어/시간대 현재 관리자 UI에는 language·timezone 필드가 노출되지 않으나 DB 컬럼이 존재합니다. 직접 DB 수정 또는 extra_config JSON으로 보완 가능.


5.2 수정 절차

  1. 목록에서 수정할 사이트의 [✏️] 파란 아이콘 버튼 클릭
  2. URL이 /admin/sites/{id}로 변경되고 우측 폼에 기존 값이 채워짐 확인
  3. 변경할 항목 수정 (테마•메뉴 그룹•사이트명 등)
  4. [수정 내용 저장] 버튼 클릭
  5. "저장되었습니다." 성공 메시지 확인
  6. 목록에서 변경 내용 확인


6. 사이트 삭제

목록에서 [🗑] 삭제 버튼 클릭 시 "이 사이트 정보를 삭제하시겠습니까?" 확인 창이 표시됩니다. 확인 후 해당 사이트 레코드가 DB에서 삭제됩니다.


6.1 삭제 처리

  1. 확인 창에서 [확인] 클릭
  2. CSRF 토큰 검증
  3. dx_sites 테이블에서 해당 id 레코드 삭제
  4. DxCache::flush() — 캐시 초기화
  5. PRG 패턴: /admin/sites?msg=deleted로 리다이렉트 → "삭제되었습니다." 메시지

⚠️  사이트 삭제는 dx_sites 테이블의 설정 레코드만 삭제합니다. 해당 도메인의 게시글•회원 등 콘텐츠 데이터는 삭제되지 않습니다. 삭제 후 해당 도메인으로 접속하면 전역 기본 설정이 적용됩니다.


7. 메뉴 그룹 연동

멀티사이트에서 각 도메인별로 다른 메뉴를 표시하려면 [메뉴 관리] 메뉴에서 도메인별 메뉴 그룹을 먼저 만들어야 합니다.


7.1 메뉴 그룹 자동완성

사이트 등록/수정 폼의 [사용 메뉴 그룹] 필드는 datalist로 구현되어 있습니다.
 
자동완성 목록 menus 테이블의 DISTINCT menu_group 값을 조회하여 datalist에 제공. 기존에 생성된 모든 메뉴 그룹이 입력 시 자동완성됩니다.
기본 그룹 main. 전역 기본 메뉴 그룹. 미입력 시 main으로 자동 설정.
신규 그룹 메뉴 관리에서 없는 그룹명을 입력해도 저장은 가능하지만, 해당 그룹의 메뉴가 없으면 빈 메뉴로 표시됩니다.


7.2 멀티사이트 메뉴 설정 순서

  1. [관리자 → 메뉴 관리] 접속
  2. [메뉴 그룹 추가] 버튼으로 새 메뉴 그룹 생성 (예: blog-menu, shop-menu)
  3. 해당 그룹에 메뉴 항목 추가 (홈•게시판•페이지 링크 등)
  4. [관리자 → 멀티사이트 통합 관리] 접속
  5. 해당 도메인의 [사용 메뉴 그룹] 필드에 생성한 그룹명 입력
  6. [저장] 버튼 클릭
  7. 해당 도메인 접속 시 설정한 메뉴 그룹의 메뉴가 표시됨 확인


8. 확장 구성 프로필 (extra_config)

extra_config 필드는 JSON 형식으로 도메인별 커스텀 설정을 자유롭게 저장하는 확장 포인트입니다. 개발자가 테마•플러그인에서 이 값을 읽어 도메인별 특수 동작을 구현할 때 사용합니다.


8.1 JSON 유효성 검사

저장 전 서버에서 json_decode($val, true)로 JSON 형식을 검증합니다. JSON 오류 시 "추가 설정이 올바른 JSON 형식이 아닙니다." 오류가 표시되며 저장이 중단됩니다.


8.2 extra_config 활용 예시

활용 목적 JSON 예시
Google Analytics 연동 {"ga_id": "G-XXXXXXXXXX"}
SNS 공유 설정 {"og_image": "https://example.com/og.jpg", "twitter_handle": "@mybrand"}
도메인별 연락처 {"contact_email": "info@example.com", "phone": "02-1234-5678"}
광고 코드 분리 {"adsense_client": "ca-pub-XXXXX", "adsense_slot": "1234567890"}
도메인별 API 키 {"kakao_map_key": "XXXXXXXX", "naver_client_id": "YYYYYYYY"}
기능 ON/OFF 플래그 {"enable_chat": true, "maintenance_mode": false, "max_upload_mb": 50}


8.3 extra_config 읽기 (개발자)

PHP 테마/플러그인에서 extra_config를 읽는 방법입니다.
 
현재 도메인 사이트 정보 $site = dx_current_site(); — 현재 HTTP_HOST에 해당하는 dx_sites 레코드 반환(배열 또는 null).
extra_config 파싱 $config = json_decode($site["extra_config"], true); — 연관 배열로 파싱.
특정 값 읽기 $gaId = isset($config["ga_id"]) ? $config["ga_id"] : "";


9. 멀티사이트 동작 원리

DXCMS가 페이지 요청을 받으면 다음 순서로 도메인을 감지하고 해당 설정을 로드합니다.


9.1 요청 처리 흐름

  1. 방문자가 myblog.com 또는 myshop.com으로 접속
  2. DXCMS 부트스트랩에서 HTTP_HOST 헤더로 접속 도메인 감지
  3. dx_sites 테이블에서 WHERE domain = {HTTP_HOST} AND status = 1 조회
  4. 레코드 있음 → 해당 사이트의 theme•menu_group•footer_text•extra_config 등 로드
  5. 레코드 없음(미등록 또는 비활성) → settings 테이블의 전역 기본 설정 적용
  6. 로드된 설정으로 테마 렌더링•메뉴 출력•푸터 표시


9.2 멀티사이트 독립 설정 범위

항목 멀티사이트 설정? 비고
디자인 테마 가능 도메인별 다른 테마 적용 가능.
메뉴 구성 가능 도메인별 다른 menu_group 지정.
사이트명/설명 가능 브라우저 탭·메타 태그에 도메인별 이름 표시.
푸터 텍스트 가능 저작권 표시 등 도메인별 독립 설정.
확장 JSON 설정 가능 GA 코드·API 키 등 커스텀 설정.
게시글·댓글 데이터 ⚠️ 공유 모든 도메인이 동일 DB의 게시글을 공유.
회원 데이터 ⚠️ 공유 동일 DB의 members 테이블 공유. 한 계정으로 모든 도메인 로그인 가능.
포인트/경험치 ⚠️ 공유 동일 DB의 포인트 공유. 도메인 무관.

💡  멀티사이트는 디자인•메뉴 등 프론트엔드 구성만 분리합니다. 콘텐츠•회원 데이터는 공유됩니다. 도메인별 콘텐츠를 완전히 분리하려면 pages 테이블의 site_domain 컬럼과 게시판 설정 연동이 필요합니다.


10. 실전 운영 사례


10.1 브랜드 분리 운영

동일 콘텐츠를 서로 다른 브랜드 디자인으로 제공하는 경우입니다.
 
도메인 테마 메뉴 그룹
maindomain.com corporate (메인 기업 테마) main
blog.maindomain.com blog-minimal (블로그 테마) blog-nav
shop.maindomain.com ecommerce (쇼핑몰 테마) shop-nav


10.2 다국어 사이트 운영

동일 콘텐츠를 언어별 도메인으로 제공하는 경우입니다.
 
도메인 언어(language) 메뉴 그룹 extra_config 예시
mysite.kr ko menu-kr {"lang_code":"ko","currency":"KRW"}
mysite.com en menu-en {"lang_code":"en","currency":"USD"}
mysite.jp ja menu-ja {"lang_code":"ja","currency":"JPY"}


11. 전체 사용 절차


11.1 서브 도메인 사이트 추가 절차

  1. DNS에서 서브도메인(blog.mysite.com) A 레코드를 메인 서버 IP로 설정
  2. 웹서버(Nginx/Apache)에서 해당 서브도메인 가상 호스트 설정
  3. [관리자 → 메뉴 관리]에서 blog-menu 그룹 생성 및 메뉴 항목 추가
  4. [관리자 → 테마 관리]에서 blog용 테마 설치 및 확인
  5. [관리자 → 멀티사이트 통합 관리] 접속
  6. 우측 폼에 blog.mysite.com 도메인 입력
  7. 사이트명•테마(blog-theme)•메뉴 그룹(blog-menu) 설정
  8. [새 사이트 등록하기] 클릭
  9. blog.mysite.com 접속하여 설정 테마•메뉴 확인


12. 자주 묻는 질문 (FAQ)


Q1. 새 도메인을 등록했는데 여전히 기본 테마가 표시됩니다.

A. ① DNS가 올바르게 전파되었는지 확인하세요(전파에 수 분~수 시간 소요). ② 웹서버(Nginx/Apache)에서 해당 도메인의 가상 호스트가 DXCMS를 가리키는지 확인하세요. ③ 등록한 도메인이 실제 HTTP_HOST와 정확히 일치하는지 확인하세요(www 포함 여부, 대소문자). ④ 캐시 환경이라면 DxCache::flush()가 정상 실행되었는지 확인하세요.


Q2. 같은 도메인을 두 번 등록하면 어떻게 됩니까?

A. domain 컬럼에 UNIQUE KEY가 설정되어 있어 동일 도메인 중복 등록 시 DB 오류가 발생하고 저장이 중단됩니다. 기존 도메인을 수정하려면 해당 사이트의 [✏️] 수정 버튼을 사용하세요.


Q3. www.mysite.com과 mysite.com을 같은 설정으로 운영하려면?

A. 두 도메인을 각각 별개로 등록하여 동일한 테마•메뉴 그룹을 설정하세요. 또는 웹서버에서 www를 non-www로 리다이렉트하여 하나만 등록하는 방법도 있습니다.


Q4. extra_config에 잘못된 JSON을 입력하면?

A. 서버에서 json_decode()로 유효성을 검사합니다. JSON 문법이 틀리면 "추가 설정이 올바른 JSON 형식이 아닙니다." 오류가 표시되며 저장이 중단됩니다. JSON 검증 도구(jsonlint.com 등)를 활용하여 먼저 확인하세요.


Q5. 비활성화(status=0)된 사이트는 어떻게 동작합니까?

A. 비활성 사이트로 접속하는 방문자는 전역 기본 설정(settings 테이블의 theme, menu_group 등)이 적용됩니다. 사이트 정보는 DB에 보존됩니다. 목록에서는 "비활성" 빨간 배지로 구분됩니다.


Q6. 멀티사이트에서 도메인별로 다른 게시판을 보여줄 수 있나요?

A. 기본적으로 모든 도메인이 동일한 게시판을 공유합니다. 도메인별 게시판 분리를 원한다면 pages 테이블의 site_domain 컬럼을 활용하거나, 게시판 설정에서 도메인 필터링 기능을 플러그인으로 구현해야 합니다.


Q7. 사이트를 삭제하면 해당 도메인의 게시글도 삭제되나요?

A. 아니오. dx_sites 레코드(설정 정보)만 삭제됩니다. 게시글•회원•포인트 등 콘텐츠 데이터는 모두 보존됩니다. 삭제 후 해당 도메인 접속 시 전역 기본 설정이 적용됩니다.


13. 용어 정리

용어 설명
dx_sites 멀티사이트 설정 저장 DB 테이블. 접근 시 없으면 자동 생성.
domain 접속 도메인. UNIQUE 인덱스. 예: example.com. https:// 및 경로 제외 순수 도메인명.
site_name 도메인 브랜드/사이트 명칭. 미입력 시 domain으로 자동 설정.
site_description 메타 description에 사용되는 사이트 설명.
site_url 프로토콜 포함 정식 URL. 예: https://example.com.
theme 도메인에 적용할 테마 폴더명. /themes/ 하위 폴더명과 일치.
menu_group 도메인에서 사용할 메뉴 그룹. menus 테이블의 menu_group 값과 일치.
language 사이트 언어 코드. 예: ko, en, ja.
timezone PHP 타임존 식별자. 예: Asia/Seoul, UTC.
footer_text 사이트 푸터에 표시할 텍스트. 저작권 문구 등.
extra_config JSON 형식의 확장 설정. 도메인별 커스텀 키-값 자유롭게 정의.
status 사이트 활성 여부. 1=활성, 0=비활성. 비활성 시 전역 기본 설정 적용.
sort_order 목록 표시 순서. 낮을수록 상단. 동일 시 id ASC.
FQDN Fully Qualified Domain Name. 완전 정규화 도메인명. 예: blog.example.com.
HTTP_HOST 클라이언트가 전송한 접속 도메인 헤더. 멀티사이트 감지에 사용.
전역 기본 설정 settings 테이블에 저장된 전체 사이트 기본값. 미등록 도메인에 적용.
dx_current_site() 현재 HTTP_HOST에 해당하는 dx_sites 레코드를 반환하는 헬퍼 함수.
uk_domain domain 컬럼의 UNIQUE KEY 인덱스. 동일 도메인 중복 등록 방지.
PRG 패턴 Post-Redirect-Get. 저장·삭제 후 ?msg=saved로 리다이렉트. 중복 제출 방지.
DxCache::flush() 저장·삭제 후 전체 캐시를 초기화하여 변경 사항 즉시 반영.

댓글0

로그인 후 댓글을 작성할 수 있습니다.
5. 관리자 기능 사용법 페이지 관리 2026.04.21 5. 관리자 기능 사용법 전체 공지 2026.04.21 5. 관리자 기능 사용법 팝업 관리 2026.04.21 5. 관리자 기능 사용법 게시판 관리 2026.04.21
31
전체 회원
503
전체 게시글
795
전체 댓글
442
오늘 방문
33,174
전체 방문
3
현재 접속
인기글 7일 이내
최신글
최신댓글
목록