설문관리 기능은 설문조사와 문항, 선택지, 응답결과를 관리하기 위해 사용한다. 설문 기본정보를 등록 및 수정하고, 문항과 선택지를 팝업으로 관리하며, 설문 결과 목록과 문항별 응답결과를 함께 조회한다.
| Action URL | Controller method | QueryID |
|---|---|---|
조회 /ias/srvy/srvy/srvyList.do |
SrvyPageController.list |
selectSrvyList, selectSrvyListTotCnt |
조회 /api/v1/srvy/list |
SrvyApiController.getList |
selectSrvyList, selectSrvyListTotCnt |
등록화면 /ias/srvy/srvy/srvyRegist.do |
SrvyPageController.regist |
N/A |
상세이동 /ias/srvy/srvy/srvyDetail.do?srvySn={srvySn} |
SrvyPageController.detail |
selectSrvyDetail, selectSrvyQitemListBySrvySn, selectSrvyQitemArtclList |
설문 목록은 설문제목, 설문대상, 설문현황 조건으로 조회한다. 설문현황은 현재 날짜와 시작일, 종료일을 비교해 예정, 진행, 종료로 계산한다.
예정 상태에서만 실행한다.
조회 : 검색조건을 입력한 뒤 조회 버튼을 클릭하여 설문 목록을 조회한다.
등록 : 등록 버튼을 클릭하여 설문 등록 화면으로 이동한다.
상세 : 목록의 상세 버튼을 클릭하여 설문 상세조회 화면으로 이동한다.
수정 : 목록의 수정 버튼을 클릭하여 설문 수정 화면으로 이동한다.
삭제 : 목록의 삭제 버튼을 클릭하여 설문을 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
상세조회 /ias/srvy/srvy/srvyDetail.do?srvySn={srvySn} |
SrvyPageController.detail |
selectSrvyDetail, selectSrvyQitemListBySrvySn, selectSrvyQitemArtclList |
상세조회 /api/v1/srvy/{srvySn} |
SrvyApiController.getDetail |
selectSrvyDetail |
문항 등록팝업 /ias/srvy/srvyQitem/srvyQitemDetailPopup.do?srvySn={srvySn}&mode=create |
SrvyPageController.qitemPopup |
selectSrvyDetail |
수정화면 /ias/srvy/srvy/srvyModify.do?srvySn={srvySn} |
SrvyPageController.modify |
selectSrvyDetail |
설문 상세조회 화면은 설문 기본정보와 문항 목록, 문항별 선택지 목록을 함께 보여준다.

문항 추가 : 문항 추가 버튼을 클릭하여 문항 등록 팝업을 연다.
문항 수정 : 문항 목록의 수정 버튼을 클릭하여 문항 수정 팝업을 연다.
문항 삭제 : 문항 목록의 삭제 버튼을 클릭하여 문항을 삭제한다.
목록 : 설문 목록조회 화면으로 이동한다.
수정 : 설문 수정 화면으로 이동한다.
삭제 : 설문을 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
등록화면 /ias/srvy/srvy/srvyRegist.do |
SrvyPageController.regist |
N/A |
저장 /api/v1/srvy |
SrvyApiController.create |
selectNextSrvySn, insertSrvy |
설문 등록 화면에서는 설문제목, 설문대상, 설문목적, 설문안내문, 시작일, 종료일을 입력해 저장한다.

목록 : 설문 목록조회 화면으로 이동한다.
저장 : 입력한 설문 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
수정화면 /ias/srvy/srvy/srvyModify.do?srvySn={srvySn} |
SrvyPageController.modify |
selectSrvyDetail |
수정 /api/v1/srvy/{srvySn} |
SrvyApiController.update |
updateSrvy |
설문 수정 화면에서는 기존 설문 정보를 조회한 뒤 수정 저장한다.

목록 : 설문 목록조회 화면으로 이동한다.
저장 : 수정한 설문 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
삭제 /api/v1/srvy/{srvySn} |
SrvyApiController.delete |
deleteSrvyRspnsBySrvySn, deleteSrvyRspdntBySrvySn, deleteSrvyQitemArtclBySrvySn, deleteSrvyQitemBySrvySn, deleteSrvy |
설문 삭제는 목록조회 화면 또는 상세조회 화면에서 수행한다. 삭제 시 설문에 연결된 문항, 선택지, 응답 정보도 함께 정리된다.
예정 상태의 설문만 삭제 버튼이 동작한다.선택 : 목록 화면 또는 상세 화면에서 삭제 버튼을 클릭한다.
삭제 : 삭제 확인 후 설문 정보를 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
등록팝업 /ias/srvy/srvyQitem/srvyQitemDetailPopup.do?srvySn={srvySn}&mode=create |
SrvyPageController.qitemPopup |
selectSrvyDetail |
저장 /api/v1/srvy/{srvySn}/qitems |
SrvyApiController.createQitem |
selectNextQitemSn, insertSrvyQitem |
문항 등록은 설문 상세조회 화면에서 팝업으로 수행한다. 문항 순서, 문항 유형, 문항 내용, 최대 선택 수, 필수여부를 입력해 저장한다.

취소 : 팝업을 닫는다.
저장 : 입력한 문항 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
수정팝업 /ias/srvy/srvyQitem/srvyQitemDetailPopup.do?srvySn={srvySn}&srvyQitemSn={qitemSn}&mode=edit |
SrvyPageController.qitemPopup |
selectSrvyDetail, selectSrvyQitemListBySrvySn, selectSrvyQitemArtclList |
수정 /api/v1/srvy/qitems/{qitemSn} |
SrvyApiController.updateQitem |
selectSrvyQitemDetail, updateSrvyQitem |
문항 수정 팝업은 기존 문항 정보와 해당 문항의 선택지 목록을 함께 보여준다.

선택지 추가 : 선택지 추가 버튼을 클릭하여 선택지 등록 팝업을 연다.
선택지 수정 : 선택지 목록의 수정 버튼을 클릭하여 선택지 수정 팝업을 연다.
선택지 삭제 : 선택지 목록의 삭제 버튼을 클릭하여 선택지를 삭제한다.
삭제 : 문항 삭제 버튼을 클릭하여 문항을 삭제한다.
취소 : 팝업을 닫는다.
저장 : 수정한 문항 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
삭제 /api/v1/srvy/qitems/{qitemSn} |
SrvyApiController.deleteQitem |
deleteSrvyRspnsByQitemSn, deleteSrvyQitemArtclByQitemSn, deleteSrvyQitem |
문항 삭제는 문항 수정 팝업에서 수행한다. 삭제 시 해당 문항에 연결된 선택지와 응답 정보도 함께 정리된다.
선택 : 문항 수정 팝업의 삭제 버튼을 클릭한다.
삭제 : 삭제 확인 후 문항 정보를 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
등록팝업 /ias/srvyQitemArtcl/srvyQitemArtclDetailPopup.do?srvyQitemSn={qitemSn}&mode=create |
SrvyPageController.qitemArtclPopup |
selectSrvyList, selectSrvyQitemListBySrvySn |
저장 /api/v1/srvy/qitems/{qitemSn}/artcls |
SrvyApiController.createArtcl |
selectSrvyQitemDetail, selectNextArtclSn, insertSrvyQitemArtcl |
선택지 등록은 문항 수정 팝업에서 다시 팝업으로 수행한다. 선택지 순서, 선택지 내용, 기타답변 여부를 입력해 저장한다.

취소 : 팝업을 닫는다.
저장 : 입력한 선택지 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
수정팝업 /ias/srvyQitemArtcl/srvyQitemArtclDetailPopup.do?srvyQitemSn={qitemSn}&srvyQitemArtclSn={artclSn}&mode=edit |
SrvyPageController.qitemArtclPopup |
selectSrvyList, selectSrvyQitemListBySrvySn, selectSrvyQitemArtclList |
수정 /api/v1/srvy/artcls/{artclSn} |
SrvyApiController.updateArtcl |
selectSrvyQitemArtclDetail, updateSrvyQitemArtcl |
선택지 수정 팝업은 기존 선택지 정보를 조회한 뒤 수정 저장한다.

삭제 : 선택지 삭제 버튼을 클릭하여 선택지를 삭제한다.
취소 : 팝업을 닫는다.
저장 : 수정한 선택지 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
삭제 /api/v1/srvy/artcls/{artclSn} |
SrvyApiController.deleteArtcl |
deleteSrvyRspnsByArtclSn, deleteSrvyQitemArtcl |
선택지 삭제는 선택지 수정 팝업 또는 문항 수정 팝업의 선택지 목록에서 수행한다. 삭제 시 해당 선택지에 연결된 응답 정보도 함께 정리된다.
선택 : 선택지 수정 팝업 또는 문항 수정 팝업에서 삭제 버튼을 클릭한다.
삭제 : 삭제 확인 후 선택지 정보를 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
조회 /ias/srvyRslt/srvyResultList.do |
SrvyPageController.resultList |
selectSrvyList, selectSrvyListTotCnt, selectSrvyRspdntListTotCnt |
응답자목록 조회 /api/v1/srvy/rspdnts/list |
SrvyApiController.getRspdnts |
selectSrvyRspdntList, selectSrvyRspdntListTotCnt |
상세이동 /ias/srvyRslt/srvyResultDetail.do?srvySn={srvySn} |
SrvyPageController.resultDetail |
selectSrvyDetail, selectSrvyQitemListBySrvySn, selectSrvyRspdntList, selectSrvyRspnsList |
설문 결과 목록은 설문현황과 설문제목 조건으로 조회한다. 각 설문별 응답자 수를 함께 계산해 보여준다.

조회 : 검색조건을 입력한 뒤 조회 버튼을 클릭하여 설문 결과 목록을 조회한다.
상세 : 목록의 상세 버튼을 클릭하여 설문 결과 상세 화면으로 이동한다.
| Action URL | Controller method | QueryID |
|---|---|---|
상세조회 /ias/srvyRslt/srvyResultDetail.do?srvySn={srvySn} |
SrvyPageController.resultDetail |
selectSrvyDetail, selectSrvyQitemListBySrvySn, selectSrvyRspdntList, selectSrvyRspnsList |
응답목록 조회 /api/v1/srvy/rspns/list |
SrvyApiController.getRspns |
selectSrvyRspnsList, selectSrvyRspnsListTotCnt |
답변팝업 /ias/srvyRslt/answerPopup.do?questionNumber={questionNumber}&title={title}&answers={answers} |
SrvyPageController.answerPopup |
N/A |
설문 결과 상세 화면은 설문 기본정보, 응답자 수, 문항별 응답 수와 답변 목록을 함께 보여준다. 답변이 있는 문항은 전체 답변 팝업으로 이동할 수 있다.

답변보기 : 문항별 결과 영역의 답변보기 버튼을 클릭하여 전체 답변 팝업을 연다.
목록 : 설문 결과 목록조회 화면으로 이동한다.
| 유형 | 대상소스명 | 비고 |
|---|---|---|
| Controller | src/main/java/allforland/ias/srvy/web/SrvyPageController.java |
설문관리, 문항 팝업, 결과조회 화면 요청을 처리하는 컨트롤러 클래스 |
| API Controller | src/main/java/allforland/ias/srvy/web/SrvyApiController.java |
설문, 문항, 선택지, 결과조회 API 요청을 처리하는 컨트롤러 클래스 |
| Service | src/main/java/allforland/ias/srvy/service/SrvyService.java |
설문관리 서비스 인터페이스 |
| ServiceImpl | src/main/java/allforland/ias/srvy/service/impl/SrvyServiceImpl.java |
설문관리 서비스 구현 클래스 |
| Mapper | src/main/java/allforland/ias/srvy/mapper/SrvyMapper.java |
설문관리 데이터 처리 Mapper 인터페이스 |
| VO | src/main/java/allforland/ias/srvy/vo/SrvyVO.java |
설문 기본정보 VO 클래스 |
| VO | src/main/java/allforland/ias/srvy/vo/SrvyQitemVO.java |
설문 문항 VO 클래스 |
| VO | src/main/java/allforland/ias/srvy/vo/SrvyQitemArtclVO.java |
설문 선택지 VO 클래스 |
| VO | src/main/java/allforland/ias/srvy/vo/SrvyRspdntVO.java |
설문 응답자 VO 클래스 |
| VO | src/main/java/allforland/ias/srvy/vo/SrvyRspnsVO.java |
설문 응답 VO 클래스 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvy/srvyList.jsp |
설문 목록조회 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvy/srvyDetail.jsp |
설문 상세조회 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvy/srvyRegist.jsp |
설문 등록 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvy/srvyModify.jsp |
설문 수정 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvyQitem/srvyQitemDetailPopup.jsp |
문항 등록 및 수정 팝업 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvyQitemArtcl/srvyQitemArtclDetailPopup.jsp |
선택지 등록 및 수정 팝업 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvyResult/srvyResultList.jsp |
설문 결과 목록조회 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/srvy/srvyResult/srvyResultDetail.jsp |
설문 결과 상세조회 페이지 |
| Query XML | src/main/resources/mapper/srvy/SrvyMapper.xml |
설문, 문항, 선택지, 응답 Query XML |
| SQL | docker/postgres/init/01-schema.sql |
설문관리 테이블 생성을 위한 스키마 SQL |
| SQL | docker/postgres/init/02-data.sql |
설문관리 예시 데이터 적재 SQL |

| 테이블명 | 테이블명(영문) | 비고 |
|---|---|---|
| 설문 정보 | afias.srvy |
설문 기본정보를 관리하는 테이블 |
| 설문 문항 | afias.srvy_qitem |
설문별 문항 정보를 관리하는 테이블 |
| 설문 선택지 | afias.srvy_qitem_artcl |
문항별 선택지 정보를 관리하는 테이블 |
| 설문 응답자 | afias.srvy_rspdnt |
설문 참여자 정보를 관리하는 테이블 |
| 설문 응답 | afias.srvy_rspns |
문항별 응답 결과를 관리하는 테이블 |