회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
DX마켓
PR리그
Q&AN
지식공유
공지사항
통계
로그인 회원가입
고객센터

설문조사 플러그인

D DX관리자
2026.08.05 10:13(수정됨) 9 0 1



 

1. 플러그인 개요

DX Survey는 DXCMS 기반의 전문 설문조사 플러그인입니다. 관리자가 설문을 직접 설계하고 회원 및 비회원의 참여 현황을 실시간으로 모니터링할 수 있습니다. 15가지 질문 유형, 다중 페이지, 조건 분기, 임시저장, CSV 내보내기까지 지원하는 상용급 솔루션입니다.
 
항목 내용
플러그인 ID dx-survey
버전 1.0.0
PHP 호환 5.6 이상 (7.x, 8.x 권장)
DXCMS v8.8.0 이상
설문 목록 URL /survey
관리자 URL /admin/dx-survey
AJAX 엔드포인트 /survey-ajax
라이선스 디자인원엑스 라이선스
 

주요 기능

• 15가지 질문 유형 — 단일/복수 선택, 주관식(단문·장문), 숫자, 날짜, 시간, 별점, 점수, 슬라이더, 순위, 이미지 선택, 파일, 이메일, 전화번호
다중 페이지 — 설문을 여러 단계로 구성 가능
조건부 분기 — 선택지에 따라 다른 질문으로 이동
스텝바이스텝 폼 — 진행률 바 + 단계 인디케이터
임시저장 — 중간에 저장 후 이어서 작성
중복 참여 방지 — 회원 로그인 / 쿠키 / IP 방식
통계 — 선택형 막대 그래프, 숫자형 통계, 주관식 텍스트 목록
참여 모니터링 — 회원/비회원 현황, 일별 추이, 최근 참여자 20명
참여 초기화 — 설문별 응답 데이터 전체 초기화
• CSV 내보내기 — 전체 응답 데이터 다운로드
 
 

2. 시스템 요구사항

항목 요구사항
CMS DXCMS v8.8.0 이상
PHP 5.6 이상 (PHP 7.4, 8.x 권장)
DB MySQL 5.6 이상 / MariaDB 10.x 이상
웹서버 Apache / Nginx / IIS (Windows 포함)
브라우저 Chrome, Edge, Firefox, Safari 최신 버전
JS ES5 이상 (IE11 미지원)
 
 

3. 설치 방법

3-1. 파일 복사

배포된 dx-survey.zip 압축을 풀어 DXCMS 루트 디렉터리에 병합 복사합니다.
 
복사 경로 설명
extend/top/00_survey_router.php /survey/* URL 라우팅
extend/top/01_survey_admin_ajax.php 관리자 AJAX 전용 처리 (/survey-ajax)
plugins/dx-survey/ 플러그인 전체 폴더
 

3-2. DB 자동 설치

파일 복사 후 아래 URL에 접속하면 필요한 테이블이 자동으로 생성됩니다.
/survey
첫 접속 시 install.php가 실행되어 테이블 생성 및 기본 카테고리 6개가 자동 삽입됩니다.
 

3-3. 접속 확인

구분 URL
설문 목록 (사용자) /survey
관리자 대시보드 /admin/dx-survey
 
⚠  관리자 페이지는 DXCMS 관리자 계정으로 로그인한 후에만 접근할 수 있습니다.
 

3-4. 기존 DB 마이그레이션

이미 구형 스키마로 생성된 테이블이 있어도 플러그인이 자동으로 누락 컬럼을 추가합니다. SHOW COLUMNS로 확인 후 ALTER TABLE로 마이그레이션이 실행됩니다.
 
 

4. 파일 구조

파일/폴더 역할
extend/top/00_survey_router.php /survey/* 경로를 가로채 라우팅 처리
extend/top/01_survey_admin_ajax.php /survey-ajax 관리자 AJAX 전용 처리
plugins/dx-survey/plugin.php 플러그인 메인, 훅 등록, 관리자 사이드바
plugins/dx-survey/core/install.php DB 테이블 생성 및 자동 마이그레이션
plugins/dx-survey/core/DxSurvey.php 설문 CRUD 클래스
plugins/dx-survey/core/DxSurveyQuestion.php 질문 및 선택지 CRUD 클래스
plugins/dx-survey/core/DxSurveyResponse.php 답변 저장, 통계, CSV 클래스
plugins/dx-survey/core/DxSurveyAuth.php 권한 확인 클래스
plugins/dx-survey/core/DxSurveyFingerprint.php 중복 참여 방지 클래스
plugins/dx-survey/admin/ 관리자 화면 (블록 단위 구성)
plugins/dx-survey/views/ 사용자 설문 화면
 
 

5. 관리자 기능

관리자 접속 URL: /admin/dx-survey
 

5-1. 대시보드

플러그인 접속 시 첫 화면입니다. 전체 통계 현황을 한눈에 확인합니다.
표시 항목 설명
총 참여 전체 설문 누적 참여 수
오늘 참여 오늘 날짜 기준 참여 수
조회 수 설문 페이지 조회 수
참여율 조회 대비 참여 비율
회원 참여 로그인 회원의 참여 수
비회원 참여 비로그인 참여 수
인기 운세 TOP 10 가장 많이 나온 운세 순위 (DX Fortune 연동 시)
 

5-2. 설문 목록

등록된 설문 전체 목록입니다. 상태 변경, 편집, 통계, 초기화, 삭제가 가능합니다.
상태 변경 — 작성중 / 진행중 / 종료 전환 가능
편집 — 설문 기본 정보 수정
질문 편집기 — 질문 추가/수정/삭제
통계 — 응답 결과 분석
초기화 — 응답 데이터만 삭제 (질문/설정 유지)
삭제 — 설문 및 모든 관련 데이터 완전 삭제
 
⚠  삭제는 복구가 불가능합니다. 데이터 보존이 필요하면 먼저 CSV를 내려받으세요.
 

5-3. 설문 만들기

사이드바 [설문 만들기] 클릭 후 아래 항목을 입력합니다.
 
항목 설명 필수
제목 설문 제목
부제목 설문 페이지 상단 간단 설명  
설명 상세 설명 텍스트  
카테고리 카테고리 관리에서 추가한 분류  
상태 작성중 / 진행중 / 종료
시작일 설문 시작 일시 (비워두면 즉시 시작)  
종료일 설문 종료 일시 (비워두면 무제한)  
최대 응답 수 0=무제한, 숫자 입력 시 해당 수 도달 후 자동 종료  
결과 공개 참여 완료 후 통계 결과를 참여자에게 공개  
비회원 허용 로그인 없이 참여 허용 여부  
중복 방지 로그인 기반 / 쿠키 / IP 방식 선택  
완료 메시지 제출 후 표시되는 감사 메시지  
리다이렉트 URL 완료 후 이동할 URL (선택)  
 

5-4. 질문 편집기

설문 저장 후 [질문 편집기]로 이동하여 질문을 추가합니다. URL: /admin/dx-survey?p=builder&id={설문ID}
 

지원 질문 유형 (15가지)

유형 ID 유형명 설명
single 단일 선택 보기 중 하나만 선택 (라디오 버튼)
multi 복수 선택 보기 중 여러 개 선택 (체크박스)
text 단문 주관식 짧은 텍스트 입력
textarea 장문 주관식 긴 텍스트 입력
number 숫자 입력 숫자만 입력 (최소/최대 설정 가능)
date 날짜 날짜 선택기
time 시간 시간 선택기
rating 별점 1~5점 별점
score 점수 숫자 범위로 점수 선택
slider 슬라이더 슬라이더로 값 선택 (최소/최대/단계)
rank 순위 선택 항목 순서 정하기
image 이미지 선택 이미지 보기 중 선택
file 파일 첨부 파일 업로드
email 이메일 이메일 형식 입력
phone 전화번호 전화번호 형식 입력
 

질문 수정/삭제

각 질문 카드의 ✏️ 수정 버튼 클릭 → 우측 패널에서 기존 값 수정 후 [저장]
• 🗑️ 삭제 버튼 클릭 → 확인 후 삭제
드래그&드롭으로 질문 순서 변경 가능
 

페이지 구성

상단 [+ 페이지 추가] 버튼으로 설문을 여러 단계로 구성
페이지 탭 클릭으로 각 페이지별 질문 관리
사용자 화면에서 스텝 인디케이터와 진행률 바로 표시
 

5-5. 통계 (결과 분석)

URL: /admin/dx-survey?p=stats&id={설문ID}
 
섹션 내용
요약 카드 6개 전체 참여 / 오늘 참여 / 조회수 / 참여율 / 회원 참여 / 비회원 참여
회원·비회원 현황 비율 막대 그래프 + 인원수
최근 7일 추이 일별 참여 막대 차트
최근 참여자 20명 회원/비회원 구분, 아이피, 참여일시, 소요시간
질문별 응답 현황 선택형: 막대 그래프 / 숫자형: 통계 수치 / 주관식: 텍스트 목록
CSV 내려받기 전체 응답 데이터를 엑셀 호환 CSV로 다운로드
 

5-6. 참여 모니터링

URL: /admin/dx-survey?p=monitor
설문별 실시간 참여 현황을 모니터링합니다.
설문 선택 드롭다운으로 원하는 설문 전환
전체/오늘/회원/비회원 참여 통계 카드
최근 7일 일별 추이 차트
최근 참여자 20명 목록 (회원/비회원, 아이피, 참여일시, 소요시간)
 

5-7. 카테고리 관리

URL: /admin/dx-survey?p=categories
설문을 분류하는 카테고리를 관리합니다. 기본 카테고리 6개(고객 만족도, 이벤트, 시장조사, 직원 평가, 교육 설문, 기타)는 최초 설치 시에만 자동 생성됩니다.
✓  삭제한 기본 카테고리는 재설치 없이 다시 생성되지 않습니다.
 

5-8. 참여 초기화

설문 목록에서 각 설문의 [초기화] 버튼을 클릭합니다.
 
초기화 대상 유지 항목
survey_answers (응답 데이터) 질문 목록
survey_responses (참여 세션) 설문 기본 정보
survey_votes (구형 투표) 카테고리
survey_drafts (임시저장) 설정 값
survey_stats (통계 캐시)  
response_count 0 리셋  
쿠키 삭제 (JS)  
 
⚠  초기화 후 참여자 쿠키도 자동 삭제되므로 같은 브라우저에서 재참여가 가능합니다.
 
 

6. 사용자 설문 화면

 

6-1. 설문 목록 (/survey)

상단 네비바 — 로고, 검색창, 로그인/회원가입
이번 주 인기 설문 — response_count 상위 3개, HOT 배지
진행중 설문 목록 — D-day/오늘마감/진행중 배지, 참여율 바
카테고리 탭 필터
푸터 — 카피라이트, 이용약관, 개인정보처리방침
 

6-2. 설문 참여 폼

상단 고정 헤더 — 설문 제목 + 진행률 바 (n%)
스텝 인디케이터 — 페이지별 원형 번호, 완료 시 체크 표시
첫 페이지 진입 시 설문 제목·부제목 표시
질문 카드 — 번호, 제목, 설명, 유형별 입력 UI
이전 / 다음 / 제출하기 버튼
임시저장 버튼 — 클릭 시 하단 토스트 메시지 표시
 

6-3. 중복 참여 방지

방식 설명 비고
로그인 기반 member_id로 중복 확인 회원 전용
쿠키 브라우저 쿠키로 중복 확인 비회원 가능
IP IP 주소로 중복 확인 비회원 가능, 공유 IP 주의
 

6-4. 완료/오류 화면

화면 표시 조건
제출 완료 정상 제출 후 (/survey/{id}?done=1)
이미 참여 중복 참여 방지에 걸린 경우
종료된 설문 status=closed 또는 종료일 초과
 
 

7. DB 테이블 구조

테이블명 설명 주요 컬럼
dx_survey 설문 기본 정보 id, title, status, category, start_at, end_at, response_count
dx_survey_questions 질문 목록 id, survey_id, question(제목), q_type(유형), required, sort_order
dx_survey_options 선택지 목록 id, question_id, label, sort
dx_survey_answers 응답 데이터 id, survey_id, question_id, member_id, ip, answer, created_at
dx_survey_responses 참여 세션 id, survey_id, member_id, ip, is_complete, completed_at, duration_sec
dx_survey_pages 페이지 구성 id, survey_id, title, sort
dx_survey_branches 조건부 분기 설정 id, survey_id, question_id, option_id, action
dx_survey_categories 카테고리 id, name, sort (id=9999는 설치 플래그)
dx_survey_drafts 임시저장 id, survey_id, member_id, answers_json, current_page
dx_survey_stats 일별 통계 캐시 id, survey_id, stat_date, response_cnt, complete_cnt
 
⚠  dx_survey_categories의 id=9999 행은 기본 카테고리 최초 설치 여부를 판단하는 플래그입니다. 삭제하지 마세요.
 
 

8. 주의사항 및 FAQ

주의사항

관리자 AJAX는 /survey-ajax 경로로 처리됩니다. 해당 경로를 웹서버에서 차단하면 질문 추가/수정이 동작하지 않습니다.
• survey_answers.answer 컬럼에는 survey_options.id(숫자)가 저장됩니다. 통계는 이 id로 옵션을 매칭합니다.
• array_merge() 대신 + 연산자를 사용해 question_id(숫자 키)를 보존합니다. 커스텀 수정 시 주의하세요.
• PHP 5.6 환경에서는 ?? (null coalescing) 연산자 사용 불가. isset($x)?$x:'' 형태만 사용하세요.
• CSV 내보내기 시 UTF-8 BOM이 포함되어 Excel에서 한글이 정상 표시됩니다.
설문 삭제 시 관련 질문, 선택지, 응답, 통계, 임시저장 데이터가 모두 삭제됩니다.
 

FAQ

질문 답변
통계에 응답이 0으로 보여요 survey_answers 테이블에 데이터가 있는지 확인하세요. question_id가 0이면 saveAnswers 오류입니다. 참여 초기화 후 재시도하세요.
질문 추가 시 오류가 발생해요 /survey-ajax 경로가 서버에서 허용되는지 확인하세요. 01_survey_admin_ajax.php 파일이 extend/top/ 에 있어야 합니다.
초기화 후에도 중복 참여로 막혀요 브라우저 쿠키를 직접 삭제하거나, 새 브라우저 탭에서 시도해보세요.
기본 카테고리가 다시 생겨요 dx_survey_categories에서 id=9999 행이 삭제된 경우입니다. 이 행이 없으면 매번 기본 카테고리를 재삽입합니다.
 
 

9. 라이선스

 
항목 내용
라이선스명 디자인원엑스 라이선스 (DesignOneX License)
원천 소유 DesignOneX — designonex.com
재배포·판매 ❌  금지 (원천 소스 90% 이상 수정 시 재배포·판매 가능)
상업적 사용 ✅  상업적 프로젝트 제작에만 허용 (학습·개인 포트폴리오 포함)
플러그인 원천 plugin.php, core/, admin/ 자체의 재배포 및 판매 금지
보증 본 플러그인은 현재 상태 그대로 제공되며 어떠한 명시적·묵시적 보증도 없습니다.
 
🚫  plugin.php, core/, admin/ 디렉터리의 코드를 그대로 또는 일부 수정하여 재배포하거나 판매하는 행위는 엄격히 금지됩니다.
 
🚫  DX Survey를 기반으로 제작한 설문 서비스는 반드시 DesignOneX 라이선스 조건을 준수해야 합니다.
첨부파일 1개 회원전용 1,000P

댓글1

안졸리니졸리 2026.08.05 10:40
ㅋ 신기방기
게시판에 있는 설문조사를 더 쳬게화되게 고도화한것 같습니다
좋습니다

피드백 드립니다
지원 질문 유형 (15가지) 에서 지역선택도 추가되면 좋을듯 합니다
설문에 많이 들어갑니다 또는 전화 설문 받아보신분들은 알겁니다 "지역은 어디십니까" 물어보는
예를들어
이번 동호회 여행지는 어디 지역이 좋을까요?
당신이 사는곳은 어디입니까?
이번 모임 장소는 어디가 좋을까요?
이번 미팅으로 우리가 만나는 곳은 어디로 정하는게 좋을까요?
등등.........
여행지, 사는곳, 선호하는 지역, 모임 장소, 만날수 있는 지역등등.....
설문에서 지역이 많이 사용되고 또한 텍스트로 지역을 입력받으면 통계나 모니터링등에서 문제가 생깁니다 누군가는 서울, 누군가는 서울특별시 또는 서올특별씨등의 오타도 발생하죠
그래서 직접 1단계만, 2단계까지 또는 3단계까지 선택할수 있는 지역이 들어가면 더 좋지 않을까 의견 드립니다
^_________^
로그인 후 댓글을 작성할 수 있습니다.
Plugin 28
41
전체 회원
1,488
전체 게시글
2,524
전체 댓글
32
오늘 방문
51,727
전체 방문
0
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록
목록