x

주요 장

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. 빠른 시작 가이드 - LimeSurvey 3.0+
  3. 설치 - LimeSurvey CE
  4. 좋은 설문조사를 디자인하는 방법(가이드)
  5. 시작하기
  6. LimeSurvey 관리
  7. 설문조사 - 소개
  8. 설문조사 설정
  9. 설문조사 메뉴
  10. 설문 조사 구조
  11. 질문 - 소개
  12. 질문 그룹 - 소개
  13. 설문조사 관리
  14. 설문조사 도구 모음 옵션
  15. 다국어 설문조사
  16. ExpressionScript 엔진 - 빠른 시작 가이드
  17. 미분류 및 고급 기능
  18. 일반 FAQ
  19. 문제 해결
  20. 해결 방법
  21. 특허
  22. 버전 변경 로그
  23. 플러그인 - 고급
 Actions

ExpressionScript 엔진 - 빠른 시작 가이드

From LimeSurvey Manual

이 페이지는 기계 번역되었을 수 있으며 오류가 포함되어 있을 수 있습니다. 영어 원문 보기 · 이 번역 개선하기
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


빠른 시작 가이드

LimeSurvey에서는 ExpressionScript(약어: ES)를 사용하여 설문조사를 더욱 세밀하게 사용자 지정할 수 있습니다. 참고: "ExpressionScript는 이전 버전에서 Expression Manager(EM)라고 불렸습니다. 어디선가 Expression Manager라는 이름을 보셨다면, 이는 ES의 예전 이름일 뿐입니다."

ES로 다음을 지정할 수 있습니다.

  1. 탐색/분기 - 응답자의 응답에 따라 질문이 표시되는 순서를 변경할 수 있습니다.
  2. 맞춤화/파이핑 - 질문을 구성하거나(예: 이전 응답을 참조하거나 대상자의 나이 또는 성별에 따라 문장을 바꾸는 경우) 사용자 지정 보고서(예: 평가 점수 또는 맞춤 조언)를 생성하는 데 도움이 됩니다.
  3. 유효성 검사 - 최솟값과 최댓값 또는 특정 입력 패턴과 같은 조건을 응답이 충족하는지 확인합니다.

ES는 이러한 각 기능의 로직을 직관적인 방식으로 지정할 수 있게 해 줍니다. 표준 수학 수식으로 쓸 수 있는 거의 모든 것이 유효한 표현식입니다.

ES는 현재 70개의 함수를 제공하며, 더 많은 함수를 지원하도록 쉽게 확장할 수 있습니다. 또한 변수에 (SGQA 이름 대신) 사람이 읽을 수 있는 변수 이름으로 접근할 수 있습니다.

다음 섹션에서는 ES가 사용되는 주요 위치를 설명합니다.


첨부 조건 (탐색/분기 제어)

일부 설문조사에서는 "Goto 로직"을 사용합니다. 예를 들어 질문1에 옵션 C로 응답하면 질문5로 이동하는 방식입니다. 이 방식은 검증하기 어렵기 때문에 매우 제한적입니다. 또한 질문을 재정렬해야 할 때 쉽게 깨집니다. 반면 ES는 불리언 관련성 수식을 사용하여 질문이 유효할 수 있는 모든 조건을 지정합니다. 질문이 관련성이 있으면 해당 질문이 표시되고, 그렇지 않으면 해당 사항이 없으므로 데이터베이스에 "NULL" 값이 저장됩니다.

참고: 이는 조건 편집기로 할 수 있는 작업과 비슷하지만, ES를 사용하면 훨씬 더 복잡하고 강력한 기준을 쉽게 지정할 수 있습니다(또한 SGQA 식별자 대신 변수 이름을 사용할 수 있습니다).




관련성 개념을 더 잘 이해하기 위해, 설문조사 응답자의 체질량지수(BMI)를 계산하는 다음 설문조사를 살펴보겠습니다. 다운로드하려면 다음 링크를 클릭하세요: 체질량지수 설문조사 예제.

관련성 수식은 아래의 첨부 조건 열에서 변수 이름 뒤에 표시됩니다. weight, weight_units, height, height_units의 관련성 값은 모두 1(기본값)이며, 이는 해당 질문이 항상 표시된다는 의미입니다. 그러나 BMI의 관련성은 {!is_empty(height) and !is_empty(weight)}이며, 이는 대상자가 키와 몸무게 값을 모두 입력한 경우에만 BMI가 계산된다는 뜻입니다(따라서 0으로 나누는 오류가 발생할 위험을 피할 수 있습니다). 또한 "Report" 질문은 응답자가 네 가지 주요 질문(height, heightunits, weight, weightunits)에 모두 답한 경우에만 표시됩니다.



참고: 위 이미지는 설문조사를 활성화하기 전에 구문 오류를 확인할 수 있는 설문조사 로직 파일에서 가져온 것입니다.


첨부 조건은 다음의 경우에 표시되고 편집할 수 있습니다.

  • 질문 수준의 관련성을 보거나 편집하려는 경우
  • 그룹 수준의 관련성을 보거나 편집하려는 경우


질문 수준 관련성 보기 / 편집

이 수식은 체질량지수(BMI)를 계산합니다. 사용자가 키와 몸무게를 입력한 경우에만 질문이 표시됩니다.



이것은 "BMI" 질문의 편집 화면입니다.



관련성 수식을 입력할 때는 중괄호를 사용하지 않습니다.


그룹 수준 관련성 보기 / 편집

이번에는 간단한 인구 조사 설문조사라는 다른 예제를 살펴보겠습니다. 다운로드하려면 다음 링크를 클릭하세요: 인구 조사 설문조사 예제.

첫 페이지에서는 함께 사는 사람이 몇 명인지 묻고 그 값을 "cohabs" 변수에 저장합니다. 이 페이지는 동거인이 한 명보다 많은 경우에만 표시됩니다(두 번째 동거인에 대해 표시됨). 또한 p2name, p2age, p2sum은 각각 바로 앞의 질문에 답변이 있는 경우에만 표시됩니다.



이처럼 그룹에도 질문 수준의 관련성 기준이 있어서, 일부 질문은 앞선 특정 질문에 응답한 경우에만 나타납니다(예: p2name에 응답한 경우 p2age가 표시됨). ES는 그룹 수준과 질문 수준의 관련성을 자동으로 결합합니다. 그룹 내 질문은 그룹 전체가 관련성이 있을 때만 표시됩니다. 그런 다음 그룹 내에서 관련성이 있는 질문들만 표시됩니다.

다음은 Cohabitant 2의 그룹 수준 관련성을 편집하는 화면의 스크린샷입니다.



관련성 수식을 입력할 때는 중괄호를 사용하지 않습니다.

맞춤화/파이핑

ES를 사용하면 단순한 조건부 맞춤화부터 복잡한 조건부 맞춤화까지 쉽게 수행할 수 있습니다. 때로는 "귀하는 [제품]을(를) 구매하셨다고 답하셨습니다. 이 제품에서 가장 마음에 드셨던 점은 무엇입니까?"처럼 단순한 치환만 필요할 수 있습니다. 또는 "[Mr./Mrs.] [LastName]님, 저희 설문조사에 참여해 주시겠습니까?"처럼 조건부 치환이 필요할 수도 있습니다. 이 경우 응답자의 성별에 따라 "Mr." 또는 "Mrs."를 사용하려고 할 것입니다. 수학적 계산을 기반으로 하는 것과 같이 훨씬 더 복잡한 치환이 필요한 경우도 있습니다. ES는 이러한 모든 유형의 맞춤화/파이핑을 지원합니다.


조건부 수식

체질량지수(BMI) 예제는 키와 몸무게를 서로 다른 두 가지 단위(cm 대 인치, kg 대 lb)로 입력하게 하면서도 사용자의 BMI를 계산하는 방법을 보여 줍니다.



이 경우 weightkg는 {if(weightunits == "kg", weight, weight * 0.453592)}입니다. 이 "if()" 함수는 응답자가 몸무게를 킬로그램으로 입력하면 그 값을 사용하고, 그렇지 않으면(대안은 파운드입니다) 입력한 값에 0.453592를 곱해 킬로그램으로 변환한다는 의미입니다. heightm 변수도 비슷한 방식으로 키를 미터(cm 단위의 키/100)로 계산하며, 키를 인치로 입력한 경우에도 마찬가지입니다(1미터=3.28084인치).

BMI는 다음과 같이 계산됩니다: {weightkg / (heightm * heightm)}.

마지막으로 보고서는 응답자가 입력한 내용을 알려 주도록 메시지를 조건에 따라 맞춤화합니다. (예: "귀하는 키가 2미터이고 몸무게가 70kg이라고 답하셨습니다.")

아래 이미지에서 weightstatus는 중첩된 "if()" 문을 사용하여 저체중부터 고도 비만까지 분류합니다. 로직을 확인하면 해당 수식을 볼 수 있습니다.



이 질문의 편집 창에서 두 가지를 확인할 수 있습니다.

  1. 맞춤화에서는 표현식을 중괄호로 감싸야 합니다.
  2. 이 예처럼 중첩된 조건부 로직을 더 읽기 쉽게 하려면 표현식을 여러 줄에 걸쳐 작성할 수 있습니다.



맞춤형 질문, 응답 및 보고서

참고: 같은 질문 페이지에서 응답 옵션이 선택 상자로 제공되는 경우 동적 맞춤화가 작동하지 않을 수 있습니다. 이는 맞춤화가 선택 옵션 안에서는 유효하지 않은 <span> 태그를 삽입하기 때문입니다.

BMI 보고서는 다음과 같습니다.



다음은 같은 질문의 편집 창입니다.



중괄호 안의 모든 내용은 표현식으로 처리되며, 앞의 이미지에서 구문 강조(색상 구분)되어 있습니다. 변수 이름이나 함수 이름의 철자가 틀렸거나 정의되지 않은 경우 등 오타가 있으면 ES가 오류를 표시합니다. 아래 예제에서는 다음과 같습니다.

  • heightunit.shown은 정의되지 않은 변수 이름입니다(실제로는 heightunits.shown입니다).
  • "rnd()"는 정의되지 않은 함수입니다(올바른 함수 이름은 "round()"입니다).

두 경우 모두 오류가 빨간색 상자 안에 표시되므로 쉽게 찾아 수정할 수 있습니다.



또한 입력된 값의 표나 맞춤형 조언과 같은 복잡한 보고서도 빠르게 만들 수 있음을 확인할 수 있습니다.

LimeSurvey가 질문의 어느 부분이 일반 텍스트이고 어느 부분을 ExpressionScript 엔진이 구문 분석해야 하는지 알 수 있도록, 모든 맞춤화에서는 표현식을 반드시 중괄호로 감싸야 한다는 점을 기억하십시오.


유효성 검사

ES는 대부분의 고급 질문 옵션이 작동하는 방식을 제어합니다. 이러한 옵션은 응답의 최소/최대 개수, 개별 값의 최소/최대, 합계 값의 최소/최대, 입력한 값이 지정한 문자열 패턴과 일치하는지 확인하는 것 등을 제어합니다. 이러한 필드에 입력한 모든 값은 표현식으로 간주되므로, 다른 질문과 복잡한 조건부 관계를 가진 최소/최대 기준을 지정할 수 있습니다.

이 모든 경우에 고급 질문 속성은 항상 표현식으로 간주되므로, 지정할 때 중괄호를 사용하지 않습니다.

샘플 설문조사 페이지에서는 다양한 유효성 검사 표현식이 포함된 여러 실제 예제를 확인할 수 있습니다.

ExpressionScript - 프레젠테이션

ExpressionScript에 대해 더 자세히 알아보고, 다양한 표현식을 사용하여 설문조사를 개선하는 방법을 확인하려면 다음 링크를 클릭하십시오.