회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
About
Service
Q&A
PR리그
자유게시판N
갤러리
포인트게임
공지사항N
통계
로그인 회원가입
고객센터
5. 관리자 기능 사용법

전체 공지

A Administrator
2026.04.21 01:19(수정됨) 102 0

1. 전체 공지 관리 개요

DXCMS 관리자 패널의 [전체 공지 관리] 메뉴는 사이트 내 모든 게시판 목록 최상단에 별도 영역으로 표시되는 전체 공지를 등록•편집•삭제•제어하는 기능입니다. 특정 게시판에 종속되지 않고 사이트 전체에 걸쳐 노출되는 중요 공지를 운영할 때 사용합니다.

📌  접근 경로: 관리자 대시보드 → 전체 공지 관리 (또는 URL: /admin/global_notices)


1.1 전체 공지 vs 일반 게시판 공지 차이

구분 전체 공지 일반 게시판 공지(notice)
표시 범위 사이트 전체 — 모든 게시판 목록 최상단 해당 게시판 목록에서만 표시
레이아웃 게시판 행과 분리된 별도 공지 영역(dx-global-notice-wrap) 게시판 목록 행 안에 일반 글처럼 표시
콘텐츠 형식 제목 텍스트 + 선택적 링크 URL (에디터 없음) 게시글 전체 내용 (에디터 사용)
제목 색상 HEX 색상 코드로 개별 지정 가능 스킨 기본 색상 사용
노출 기간 날짜+시간(datetime) 단위로 정밀 제어 별도 기간 설정 없음 (게시글 상태로 제어)
실시간 반영 WebSocket 브로드캐스트로 즉시 갱신 페이지 새로고침 시 반영


1.2 전체 공지 표시 위치

전체 공지는 사이트 프론트엔드에서 각 게시판 목록 페이지의 최상단, 게시판 행 목록과 구분된 별도 영역(dx-global-notice-wrap)에 표시됩니다. 각 공지 항목은 [전체공지] 배지와 함께 제목이 나열되며, 링크가 설정된 경우 클릭 시 해당 URL로 이동합니다.

💡  전체 공지는 게시판 목록의 행 레이아웃과 완전히 분리되어 있어, 게시판 디스플레이(글 번호, 조회수 등)에 아무런 영향을 주지 않습니다.


1.3 화면 구성

영역 설명
전체 현황 배지 현재 등록된 전체 공지 수 표시. (예: "전체: 3개")
[공지 추가] 버튼 빨간색 버튼. 클릭 시 /admin/global_notices/add 로 이동하여 추가 폼 표시.
추가/수정 폼 공지 추가 또는 수정 시 목록 위에 표시되는 2열 그리드 입력 폼.
공지 목록 테이블 등록된 모든 공지를 행으로 표시. 순서 · 제목 · 색상 · 기간 · 상태 토글 · 수정/삭제 버튼 포함.
안내 배너 목록 하단의 노란색 안내 영역. "전체 공지는 모든 게시판 목록 최상단에 별도 영역으로 표시됩니다." 고정 설명.


2. 공지 목록 테이블

등록된 전체 공지가 sort_order 오름차순 → ID 내림차순으로 정렬되어 테이블에 표시됩니다. 비활성•기간 외 공지는 행 전체가 반투명(opacity 55%)으로 표시되어 한눈에 구분됩니다.


2.1 목록 컬럼 설명

컬럼 설명
순서 정렬 순서 숫자(sort_order). 숫자가 작을수록 위에 표시됩니다.
제목 공지 제목. title_color 설정 시 해당 색상으로 표시. 링크 URL이 있으면 제목 아래 줄에 파란색 URL 미리보기가 함께 표시됩니다.
색상 설정된 HEX 색상 코드와 컬러 사각형 미리보기. 색상 미설정 시 "기본색" 텍스트 표시.
게시 기간 시작일시와 종료일시를 mm.dd HH:mm 형식으로 표시. 시작일 미설정: "즉시", 종료일 미설정: "무기한", 둘 다 미설정: "제한 없음".
상태 토글 슬라이드 토글 스위치. 클릭 시 AJAX로 즉시 활성/비활성 전환. 상태 텍스트: 게시중(초록) / 기간외(회색) / 비활성(회색).
관리 수정 버튼(파란색 펜 아이콘)과 삭제 버튼(빨간색 쓰레기통 아이콘) 2종.


2.2 공지 상태 구분

목록의 [상태] 컬럼에는 현재 공지의 실제 노출 상태가 3가지로 구분되어 표시됩니다.
 
상태 텍스트 조건 의미
게시중 status=1 AND 현재 시각이 start_at ~ end_at 범위 내 현재 사이트의 모든 게시판 목록 상단에 이 공지가 실제로 표시되고 있습니다.
기간외 status=1 이나 기간 미도래 또는 종료 활성 상태이지만 현재 시각이 게시 기간에 해당하지 않아 사이트에 표시되지 않습니다. 기간이 시작되면 자동으로 게시됩니다.
비활성 status=0 관리자가 수동으로 비활성화한 공지입니다. 기간과 무관하게 사이트에 표시되지 않습니다.


2.3 상태 토글 스위치

각 공지 행의 [상태] 컬럼에 있는 슬라이드 토글을 클릭하면 페이지 새로고침 없이 AJAX 방식으로 즉시 활성/비활성 상태가 전환됩니다.
 
토글 ON (초록) status를 1(활성)로 변경합니다. 노출 기간 내라면 즉시 게시판 목록에 공지가 나타납니다.
토글 OFF (회색) status를 0(비활성)으로 변경합니다. 기간 설정과 관계없이 즉시 공지가 숨겨집니다.
캐시 초기화 토글 시 DxCache::flush()가 호출되어 캐시가 초기화됩니다.
WebSocket 브로드캐스트 토글 시 소켓 서버로 global_notice_update 이벤트가 전송되어, 현재 열려있는 사이트 페이지들이 실시간으로 공지 영역을 갱신합니다.

💡  토글은 즉각적으로 반영됩니다. 급하게 공지를 숨겨야 할 때(예: 오타 수정 중) 빠르게 OFF로 전환하고, 수정 후 다시 ON으로 켜세요.


2.4 목록 관리 버튼

버튼 기능 상세 설명
✏️ 수정 수정 폼 이동 해당 공지의 편집 폼(/admin/global_notices/{id})으로 이동합니다. 기존 값이 폼에 자동으로 채워집니다.
🗑 삭제 영구 삭제 "이 공지를 삭제하시겠습니까?" 확인 창 후 DB에서 완전 삭제됩니다. 삭제 후 캐시가 초기화되고 복구가 불가능합니다.

🚨  삭제된 공지는 복구할 수 없습니다. 일시적으로 숨기고 싶다면 토글 OFF 또는 비활성 상태로 변경하세요.


3. 공지 추가 및 수정 폼 — 전체 필드 설명

[공지 추가] 버튼 또는 목록에서 [✏️ 수정]을 클릭하면 2열 그리드 입력 폼이 표시됩니다. 왼쪽 열에는 공지 내용 관련 필드(제목, 색상, 링크), 오른쪽 열에는 노출 제어 필드(상태, 기간, 정렬)가 배치됩니다.


3.1 공지 제목 (필수)

게시판 목록 상단 전체 공지 영역에 직접 표시되는 텍스트입니다. 방문자가 읽을 공지 내용을 간결하고 명확하게 작성합니다.
 
표시 위치 사이트 내 모든 게시판 목록 최상단 공지 영역에 [전체공지] 배지와 함께 표시됩니다.
글자 수 제한 데이터베이스 컬럼 크기 기준 최대 191자. 단, 너무 긴 경우 목록에서 말줄임(...)으로 잘릴 수 있으니 50자 내외로 작성을 권장합니다.
HTML 사용 불가 일반 텍스트로만 입력됩니다. HTML 태그는 htmlspecialchars()로 이스케이프 처리되어 태그로 동작하지 않습니다.
필수 항목 제목을 입력하지 않으면 "공지 제목을 입력하세요." 오류가 표시되며 저장되지 않습니다.


3.2 제목 색상 (title_color)

게시판 목록에서 이 공지의 제목 텍스트에 적용될 색상을 지정합니다. 중요도나 분류에 따라 색상을 다르게 설정하면 방문자가 공지를 빠르게 식별할 수 있습니다.
 
입력 방식 설명
컬러 피커 폼 왼쪽의 색상 선택 버튼(input[type=color])을 클릭하면 운영체제의 색상 선택 다이얼로그가 열립니다. 선택한 색상이 HEX 텍스트 필드에 자동 반영됩니다.
HEX 텍스트 직접 입력 #ef4444 형식의 HEX 색상 코드를 직접 입력합니다. 3자리(#abc) 또는 6자리(#aabbcc) 모두 허용됩니다. 유효하지 않은 형식은 저장 시 무시되어 기본색으로 처리됩니다.
[초기화] 버튼 입력된 색상을 지워 기본색(테마 기본 텍스트 색상)으로 되돌립니다.
실시간 미리보기 색상을 선택하거나 HEX 코드를 입력하는 즉시 아래 미리보기 영역에서 실제 표시될 색상과 제목 텍스트를 확인할 수 있습니다. 제목 입력 필드를 수정하면 미리보기 텍스트도 함께 변경됩니다.

💡  긴급 공지는 빨간색(#ef4444 또는 #e11d48), 일반 안내는 파란색(#0284c7), 이벤트는 노란색(#d97706)으로 색상을 구분하면 방문자가 공지 중요도를 즉시 파악할 수 있습니다.


3.3 링크 URL (선택)

공지 제목 클릭 시 이동할 URL을 입력합니다. 설정하면 프론트엔드에서 제목이 하이퍼링크로 표시됩니다
 
외부 링크 https://example.com 형태의 완전한 URL. 새 창 열기(_blank) 설정 시 외부 링크 아이콘(↗)이 제목 옆에 자동 표시됩니다.
내부 링크 /notice/view/123 처럼 슬래시로 시작하는 사이트 내부 경로도 사용 가능합니다.
미입력 링크 URL을 비워두면 제목이 클릭 불가능한 일반 텍스트로 표시됩니다.
보안 링크 URL은 htmlspecialchars()로 처리되어 XSS 공격이 방지됩니다.


3.4 링크 열기 방식 (link_target)

링크 URL이 설정된 경우, 공지 제목 클릭 시 링크를 어떻게 열지 선택합니다.
 
옵션 동작
현재 창 (_self) 클릭 시 현재 탭에서 링크 URL로 이동합니다. 기본값. 사이트 내부 페이지 링크에 적합합니다.
새 창 (_blank) 클릭 시 새 탭(새 창)에서 링크가 열립니다. 외부 사이트나 공지 상세 페이지로 이동할 때 권장합니다. 새 창으로 열릴 경우 프론트엔드에서 외부 링크 아이콘(↗)이 제목 오른쪽에 자동으로 표시됩니다.


3.5 게시 상태 (status)

공지의 공개 여부를 결정합니다. 라디오 버튼으로 선택합니다.
 
활성 (게시중) status=1. 게시 기간 조건도 충족하면 사이트에 즉시 표시됩니다. 기본값.
비활성 (숨김) status=0. 기간 설정과 관계없이 사이트에 표시되지 않습니다. 초안을 미리 작성하거나 임시로 숨길 때 사용합니다.

💡  공지를 미리 작성해두고 원하는 시점에 공개하려면, 비활성 상태로 저장 후 목록의 토글 스위치로 켜거나, 시작일시를 설정하여 자동 게시하세요.


3.6 게시 기간 — 시작일시 / 종료일시

공지가 사이트에 표시될 기간을 날짜 + 시간(datetime) 단위로 정밀하게 지정합니다. 팝업 공지(날짜 단위)보다 더 세밀한 시간 단위(분 단위)까지 제어할 수 있습니다.
 
설정 조합 동작
시작일시 + 종료일시 모두 입력 설정한 datetime 범위 안에서만 노출됩니다. status=1이어도 범위 밖이면 "기간외" 상태로 표시되지 않습니다.
시작일시만 입력 설정한 시작일시 이후로 종료 없이 계속 노출됩니다. 목록 기간 컬럼에 "즉시 ~ 무기한"으로 표시.
종료일시만 입력 등록 즉시부터 종료일시까지 노출됩니다. 목록 기간 컬럼에 "즉시 ~ [종료일시]"로 표시.
모두 비워두기 기간 제한 없이 status=1인 동안 상시 노출됩니다. 목록 기간 컬럼에 "제한 없음"으로 표시.


입력 형식 및 주의사항:

  • 입력 형식: YYYY-MM-DDTHH:MM (날짜+시간 선택기, 예: 2026-04-01T09:00)
  • 시작일시와 종료일시 모두 서버 기준 시각(date("Y-m-d H:i:s"))과 비교됩니다.
  • 종료일시가 지난 공지는 status=1 상태라도 자동으로 숨겨집니다(수동 삭제 불필요).
  • 이벤트성 공지는 반드시 종료일시를 설정하여 이벤트 종료 후 자동 숨김되게 하세요.


3.7 정렬 순서 (sort_order)

공지가 여러 개일 때 표시 순서를 결정합니다. 숫자가 작을수록 위에 표시되며(0이 최상단), 같은 숫자인 경우 최근 등록 순(ID 내림차순)으로 정렬됩니다.
 
권장 설정 가장 중요한 공지를 0 또는 1로 설정하고, 이후 공지들을 10, 20, 30... 식으로 10 단위 간격으로 설정하면 중간에 공지를 추가하기 편리합니다.
입력 범위 0 이상 9999 이하의 정수. 음수는 입력 불가.
목록 반영 저장 직후 관리자 목록에서 sort_order 오름차순으로 재정렬되어 표시됩니다.


4. 저장 처리 흐름

폼 하단의 [공지 추가] 또는 [수정 저장] 버튼을 클릭하면 다음 순서로 처리됩니다.


4.1 저장 처리 순서

  1. CSRF 토큰 검증: 위조된 요청 차단
  2. 필수 항목 검증: 공지 제목 미입력 시 오류 메시지 표시 후 중단
  3. 제목 색상 유효성 검증: HEX 형식(#[0-9a-fA-F]{3,6}) 아니면 빈 값으로 처리
  4. 링크 열기 방식 검증: _self 또는 _blank 외의 값은 _self로 강제 처리
  5. DB INSERT(추가) 또는 UPDATE(수정) 실행
  6. DxCache::flush() 호출 — 전체 캐시 초기화
  7. 성공/실패 메시지 표시 후 현재 페이지 유지 (PRG 패턴 미적용, 같은 페이지에서 메시지 표시)
  8. 성공 시 dxGnBroadcast() 자동 실행 → WebSocket으로 global_notice_update 이벤트 브로드캐스트


4.2 저장 오류 메시지 및 대처

오류 메시지 원인 및 해결 방법
공지 제목을 입력하세요. 제목 필드가 비어있습니다. 공지 내용을 입력한 후 다시 저장하세요.
저장 실패: [오류 메시지] 데이터베이스 오류입니다. global_notices 테이블이 없는 경우 시스템이 자동으로 테이블을 생성하지만, 권한 문제가 있는 경우 DB 관리자에게 문의하세요.
수정 실패: [오류 메시지] 수정 대상 ID가 없거나 DB 오류입니다. 목록으로 돌아가 해당 공지가 존재하는지 확인 후 다시 시도하세요.


5. 실시간 반영 — WebSocket 브로드캐스트

전체 공지 관리는 일반 게시판 관리와 달리 WebSocket(소켓) 기반의 실시간 반영 기능을 지원합니다. 공지를 저장•수정•삭제하거나 토글 스위치를 변경하면, 현재 사이트를 방문 중인 사용자의 화면에 페이지 새로고침 없이 공지 영역이 자동으로 갱신됩니다.


5.1 브로드캐스트 동작 흐름

  1. 관리자가 공지 추가/수정/삭제 저장 또는 토글 스위치 변경
  2. dxGnBroadcast() 함수 실행
  3. DX_SOCKET 설정(wsUrl, group)을 읽어 WebSocket 서버에 단발 연결
  4. global_notice_update 타입의 JSON 메시지 전송
  5. WebSocket 서버가 같은 그룹의 모든 클라이언트에 메시지 브로드캐스트
  6. 클라이언트(방문자 브라우저)의 소켓 리스너가 이벤트 수신
  7. GET /api/global_notice_row 요청으로 최신 공지 HTML을 서버에서 가져옴
  8. dx-global-notice-wrap 영역을 새로운 HTML로 교체하여 실시간 반영


5.2 소켓 미설정 환경

소켓 서버가 설정되지 않거나 DX_SOCKET 변수가 없는 환경에서는 브로드캐스트를 조용히 스킵합니다(에러 없음). 이 경우 방문자는 페이지를 새로고침해야 변경된 공지를 확인할 수 있습니다. 페이지 캐시가 있다면 캐시 만료 후 반영됩니다.

💡  WebSocket을 사용하지 않는 환경에서도 DxCache::flush()가 호출되므로, 방문자가 다음 페이지 요청 시(새로고침, 다른 페이지 이동 등) 최신 공지가 반영됩니다.


5.3 실시간 갱신 API — /api/global_notice_row

WebSocket 이벤트를 수신한 클라이언트는 이 API를 호출하여 최신 공지 HTML을 가져옵니다.
 
항목 내용
엔드포인트 GET /api/global_notice_row
응답 형식 JSON: { success: true, html: "...", count: N }
html 필드 현재 표시 가능한 공지(status=1 AND 기간 내) 전체의 HTML 문자열. dx-global-notice-wrap 래퍼 포함. 공지가 없으면 빈 문자열.
count 필드 현재 게시 중인 공지 수. 0이면 공지 영역을 비움.
필터 조건 status=1 AND (start_at IS NULL OR start_at <= 현재시각) AND (end_at IS NULL OR end_at >= 현재시각). sort_order ASC, id DESC 정렬.


6. 공지 등록 • 수정 • 삭제 절차


6.1 새 전체 공지 등록 절차

  1. 관리자 대시보드 → [전체 공지 관리] 메뉴 클릭
  2. 상단 오른쪽 [+ 공지 추가] 버튼 클릭 → /admin/global_notices/add 이동
  3. 왼쪽 영역: 공지 제목 입력 (필수)
  4. 왼쪽 영역: 제목 색상 선택 — 컬러 피커 또는 HEX 직접 입력 (선택)
  5. 왼쪽 영역: 미리보기 영역에서 색상과 제목이 올바르게 보이는지 확인
  6. 왼쪽 영역: 링크 URL 입력 (선택)
  7. 왼쪽 영역: 링크 열기 방식 선택 — 현재 창 또는 새 창
  8. 오른쪽 영역: 게시 상태 선택 — 활성 또는 비활성
  9. 오른쪽 영역: 게시 기간 시작일시 / 종료일시 설정 (선택, 비워두면 상시 노출)
  10. 오른쪽 영역: 정렬 순서 숫자 입력
  11. [공지 추가] 버튼 클릭 → 저장 성공 메시지 확인


6.2 기존 공지 수정 절차

  1. 공지 목록에서 수정할 공지의 [✏️] 버튼 클릭 → /admin/global_notices/{id} 이동
  2. 기존 설정값이 자동으로 채워진 폼에서 변경할 항목 수정
  3. [수정 저장] 버튼 클릭 → "전체 공지가 수정되었습니다." 성공 메시지 확인
  4. WebSocket이 설정된 경우 현재 사이트 방문자의 화면에 자동으로 반영됨


6.3 공지 삭제 절차

  1. 목록에서 삭제할 공지의 [🗑] 버튼 클릭
  2. "이 공지를 삭제하시겠습니까?" 확인 창에서 [확인] 클릭
  3. DB에서 완전 삭제 및 캐시 초기화
  4. "전체 공지가 삭제되었습니다." 메시지 확인

⚠️  삭제는 복구가 불가능합니다. 임시로 숨기려면 토글 OFF를 사용하고, 더 이상 사용하지 않을 공지만 삭제하세요.


6.4 빠른 상태 전환 (토글 스위치)

공지 목록의 각 행에서 상태 토글 스위치를 클릭하면 페이지 이동 없이 AJAX로 즉시 상태가 변경됩니다.
 
OFF → ON 비활성 공지를 즉시 활성화합니다. 게시 기간 내라면 사이트에 바로 표시됩니다.
ON → OFF 활성 공지를 즉시 비활성화합니다. 기간 설정과 무관하게 즉시 사이트에서 숨겨집니다.


7. 실전 활용 예시

자주 사용되는 전체 공지 유형별 권장 설정을 안내합니다.


예시 1: 서버 점검 긴급 공지 (시간 한정)

설정 항목 권장 값
공지 제목 🔧 서버 점검 안내 — 4월 15일 02:00~06:00 서비스 일시 중단
제목 색상 #e11d48 (빨간색, 긴급 강조)
링크 URL /notice/view/999 (상세 공지 게시글 링크)
링크 열기 현재 창 (_self)
게시 상태 활성 (게시중)
시작일시 2026-04-14T18:00 (점검 전날 저녁부터 사전 공지)
종료일시 2026-04-15T06:00 (점검 종료 시각)
정렬 순서 0 (최상단 고정)


예시 2: 상시 이용 안내 공지 (기간 무제한)

설정 항목 권장 값
공지 제목 게시글 작성 시 개인정보 포함 금지 — 위반 시 삭제 처리됩니다.
제목 색상 #0284c7 (파란색, 일반 안내)
링크 URL (미입력)
게시 상태 활성 (게시중)
게시 기간 (모두 비워둠 — 상시 노출)
정렬 순서 10


예시 3: 이벤트 기간 안내 (미래 시작일 예약)

설정 항목 권장 값
공지 제목 🎉 봄맞이 포인트 2배 적립 이벤트 진행 중!
제목 색상 #d97706 (주황색, 이벤트 강조)
링크 URL /event/spring-2026 (이벤트 페이지)
링크 열기 새 창 (_blank)
게시 상태 활성 (게시중) — 미리 등록 후 시작일시에 자동 게시
시작일시 2026-03-01T00:00
종료일시 2026-03-31T23:59
정렬 순서 5


예시 4: 여러 공지 동시 운영 (정렬 순서 관리)

여러 공지를 동시에 운영할 때 sort_order로 우선순위를 설정하는 예시입니다.
 
공지 제목 색상 기간 sort_order
🔧 서버 점검 안내 (긴급) #e11d48 (빨강) 4.15 02:00~06:00 0
🎉 봄 이벤트 진행 중 #d97706 (주황) 3.1 ~ 3.31 5
게시글 작성 규칙 안내 #0284c7 (파랑) 상시 10

💡  sort_order 0의 긴급 공지가 최상단에, 5의 이벤트가 중간에, 10의 상시 안내가 하단에 표시됩니다. 점검 공지 기간이 지나면 자동으로 사라지고 이벤트와 안내만 남습니다.


8. 자주 묻는 질문 (FAQ)


Q1. 전체 공지를 활성화했는데 게시판에 표시되지 않습니다.

A. 다음을 순서대로 확인하세요: ① 게시 상태가 활성인지 확인. ② 게시 기간(시작일시~종료일시)이 설정된 경우 현재 시각이 범위 내인지 확인. 목록에서 "기간외" 상태인지 확인. ③ 테마가 전체 공지 출력 코드(dx-global-notice-wrap 영역)를 지원하는지 개발자에게 확인. ④ 캐시가 있다면 DxCache가 갱신될 때까지 대기하세요.


Q2. 공지 제목에 이모지(이모티콘)를 사용할 수 있나요?

A. 네, 사용 가능합니다. 데이터베이스가 utf8mb4 인코딩으로 설정되어 있으면(DXCMS 기본값) 이모지가 정상 저장•표시됩니다. 단, 이모지가 지원되지 않는 구형 운영체제나 브라우저에서는 표시가 다를 수 있습니다.


Q3. 종료일시가 지난 공지를 목록에서 삭제해야 하나요?

A. 삭제하지 않아도 됩니다. 종료일시가 지난 공지는 status=1이어도 사이트에 자동으로 표시되지 않습니다. 다만 관리자 목록에는 계속 표시되므로, 더 이상 필요 없다면 정리 차원에서 삭제해도 좋습니다.


Q4. 여러 공지를 한꺼번에 삭제할 수 있나요?

A. 현재 버전(v1.1.0)에서는 공지를 하나씩 개별 삭제해야 합니다. 일괄 삭제 기능은 지원하지 않습니다.


Q5. 공지 제목 색상을 입력했는데 저장 후에 기본색으로 표시됩니다.

A. HEX 색상 코드 형식(#으로 시작하고 3자리 또는 6자리 영문+숫자)이 정확한지 확인하세요. 예: #ef4444, #e11d48, #0ea5e9. #gg1234 처럼 유효하지 않은 문자가 포함된 경우 저장 시 무시됩니다. 미리보기를 확인하고 색상이 반영되는지 확인한 후 저장하세요.


Q6. WebSocket 소켓 설정 없이 실시간 반영이 가능한가요?

A. 소켓이 없으면 실시간 반영은 불가능합니다. 대신 DxCache::flush()로 캐시가 초기화되므로, 방문자가 다음 페이지를 요청할 때(새로고침, 다른 게시판으로 이동 등) 최신 공지가 자동으로 반영됩니다. 완전한 실시간 반영이 필요하면 소켓 서버 설정이 필요합니다.


Q7. 전체 공지와 팝업 공지를 동시에 사용하면 어떻게 표시되나요?

A. 두 기능은 완전히 독립적으로 동작합니다. 전체 공지는 게시판 목록 상단 영역에 텍스트 형태로, 팝업 공지는 화면 위에 플로팅 창으로 별도 표시됩니다. 둘 다 설정하면 두 가지가 동시에 표시됩니다.


Q8. 정렬 순서(sort_order)가 같은 공지가 여러 개면 어떻게 됩니까?

A. sort_order가 같으면 ID 내림차순(최근 등록 순)으로 정렬됩니다. 즉, 나중에 등록한 공지가 위에 표시됩니다. 순서를 정확히 제어하려면 각 공지마다 다른 sort_order 값을 사용하세요.


9. 용어 정리

용어 설명
global_notices DXCMS 전체 공지 데이터를 저장하는 DB 테이블. 시스템 최초 접근 시 CREATE TABLE IF NOT EXISTS로 자동 생성.
title 게시판 목록 상단에 표시될 공지 텍스트. 최대 191자.
title_color 제목 텍스트에 적용할 HEX 색상 코드(#[0-9a-fA-F]{3,6}). 빈 값이면 테마 기본색 사용.
link_url 제목 클릭 시 이동할 URL. 빈 값이면 클릭 불가 텍스트로 표시.
link_target 링크 열기 방식. _self(현재 창) 또는 _blank(새 창).
status 공지 활성화 여부. 1: 활성(게시중 가능), 0: 비활성(항상 숨김).
start_at 공지 노출 시작 일시(DATETIME). NULL이면 즉시 게시.
end_at 공지 노출 종료 일시(DATETIME). NULL이면 무기한 게시.
sort_order 공지 표시 우선순위. 낮을수록 위에 표시. 0~9999.
created_by 공지를 등록한 관리자의 user ID.
게시중 status=1 AND 현재 시각이 start_at~end_at 범위 내 — 실제 사이트에 표시됨.
기간외 status=1 이나 start_at 이전이거나 end_at 이후 — 사이트에 미표시.
비활성 status=0 — 기간과 무관하게 사이트에 미표시.
DxCache::flush() 전체 캐시를 초기화하는 메서드. 공지 저장/수정/삭제/토글 시 자동 호출.
dxGnBroadcast() 관리자 화면에서 소켓 서버로 global_notice_update 이벤트를 전송하는 JavaScript 함수.
global_notice_update WebSocket 브로드캐스트 이벤트 타입. 클라이언트가 이 이벤트 수신 시 공지 영역을 자동 갱신.
/api/global_notice_row 현재 게시 가능한 전체 공지 HTML을 JSON으로 반환하는 내부 API. WebSocket 갱신 시 클라이언트가 호출.
dx-global-notice-wrap 프론트엔드 게시판 목록 최상단의 전체 공지 영역 CSS 클래스명. 실시간 갱신 시 이 영역의 innerHTML이 교체됨.
dx-gn-row 개별 공지 행의 CSS 클래스. [전체공지] 배지와 제목(+링크)으로 구성.
CSRF 토큰 폼 위조 공격 방지 보안 토큰. 모든 POST 요청(추가/수정/삭제/토글)에 자동 포함됨.

댓글0

로그인 후 댓글을 작성할 수 있습니다.
5. 관리자 기능 사용법 페이지 관리 2026.04.21 5. 관리자 기능 사용법 전체 공지 2026.04.21 5. 관리자 기능 사용법 팝업 관리 2026.04.21 5. 관리자 기능 사용법 게시판 관리 2026.04.21 5. 관리자 기능 사용법 대시보드 2026.04.21
30
전체 회원
269
전체 게시글
144
전체 댓글
181
오늘 방문
28,530
전체 방문
1
현재 접속
인기글 7일 이내
최신글
최신댓글
목록