적용버전 : XpressEngine 공통 확장변수 활용하기

확장변수 활용하기

확장변수란?

변수(變數)는 쉽게 말해서 변하는 값입니다. 변하지 않고 일정한 값을 갖는 상수(常數)의 반대말이기도 하지요. 둘 다 수학에서 사용하던 언어입니다. 왜냐하면 컴퓨터보다 수학이 먼저 태어났으니까요. 이것을 컴퓨터에서, 즉 프로그램에서는 정보와 상황에 따라 전달되는 값의 조각을 데이터(data)라 표현하고 이 값을 담아 두는 그릇을 변수(variable)라고 말합니다. 다시말해서 프로그램의 변수는 정보 데이터를 담아 두는 그릇과 같은데 상황에 따라 변할 수 있는 값을 담아 둘 수도 있고, 절대 변하지 않는 상수값을 담아 둘 수도 있습니다.

중요한 것은 무엇을 담아 둘 수 있다는 것과 변수는 이름과 값의 한쌍으로 구성된다는 것입니다. 게시판 모듈을 예로 든다면 글 제목과 본문의 내용 값을 변수 $title, $content에 각각 담아 둡니다. 그 밖에도 여러 데이터의 조각들을 미리 할당한 변수에 담아 두고 사용합니다. 변수는 그릇입니다. 요청, 조회, 연산, 응답 즉 프로그램이 활동할 동안만 임시로 데이터 조각들을 담아 운반하는 역할을 합니다. 데이터는 DB(database)에 저장되어 있습니다. 즉 DB는 데이터를 오래도록 보관하는 냉장고와 같고 변수는 냉장고 칸칸(테이블과 컬럼)에 보관된 자신의 데이터 조각만 찾아 오거나 저장할 수 있습니다.

확장변수란, 이미 이름을 붙여두고 사용하는 기본적인 변수 그릇 세트(Set) 외에 사용자가 임의로 필요한 만큼 생성하고 활용할 수 있는 변수를 말합니다. XE 코어에서 확장변수는 자유롭게 생성하고 활용할 수 있는데, 해당 모듈이 확장변수의 사용을 지원해야 합니다. 즉 모듈의 역할과 기능에 따라 확장변수의 사용 여부는 다를 수 있습니다.


확장변수 활용하기

확장변수를 가장 잘 활용하는 모듈은 게시판 모듈입니다. 다음의 표는 게시판에서 글 제목과 내용 입력 부분 외에 추가로 확장모듈을 생성하여 [글 작성]시 후원 신청서 공통서식을 제공하는 특별한 게시판을 만들어 보는 예제입니다. 신청서라는 기능에 최적화된 모듈을 제작하지 않아도 확장변수를 적절히 활용한다면 간단한 신청서 게시판을 운영할 수 있습니다.

신청서 서식 계획표

구분 입력 형식 확장변수 이름 입력항목 이름 설명 필수항목
게시판 제목 후원 신청서 제목 필수
1 한줄 입력칸(text) $name 후원자 성명 후원자 성명을 입력하세요 필수
2 URL 형식 $website 홈페이지 개인 또는 단체 홈페이지 주소를 입력하세요.  
3 이메일 형식(email) $email 이메일 이메일 주소를 입력하세요.  
4 전화번호 형식(phone) $phone 연락처 전화번호를 입력하세요. 필수
5 여러 줄 입력칸(textarea) $personal 자기 소개 후원자 소개를 간단히 입력하세요.  
6 다중 선택(checkbox) $motive 후원 동기 후원하게 된 동기를 모두 선택하세요.  
7 단일 선택(select) $support 후원 대상 후원 대상을 선택하세요.  
8 라디오 버튼(radio) $payment 결제 방법 결제 방법을 선택하세요.  
9 한국주소(zip) $address 우편물 수령지 우편물 수령을 위한 주소를 입력하세요.  
10 일자(연월일) $birthday 생년월일 후원자 생년월일을 입력하세요.  
게시판 본문 기타 내용 입력 및 첨부파일 활용 필수

XE 코어는 확장변수의 입력 형식을 text, URL, email 등 10가지 기본 폼 형식으로 준비하고 있습니다. 다중 선택과 단일 선택의 차이점은 "회원가입 폼 관리하기"를 참고하며 여기서는 10가지 입력 형식을 한번씩 활용하여 기본 서식을 완성해 봅니다. 같은 형식의 입력 폼은 여러 번 중복으로 생성하고 활용해도 무방합니다. 위와 같이 사전에 계획을 세우고 확장변수로 사용할 변수의 이름과 변수가 가리키는 항목의 이름, 값의 내용을 구분해 두면 이후 게시판 관리에 도움이 됩니다.

image


확장변수를 활용한 후원 신청서 게시판 만들기

다음의 내용은 게시판 모듈에서 신청서 작성을 위한 게시판 모듈을 새로 생성한 후 위 계획표에 따라 확장변수를 등록하고 활용하는 과정에 대해 살펴봅니다. 그림의 순서대로 따라해 보세요.

  • image▲ 후원 신청서 게시판(application) 모듈을 생성합니다.
  • image▲ [확장변수]를 클릭합니다.
  • image▲ [추가]를 클릭합니다.
  • image▲ 확장변수로 사용할 변수의 이름(영문), 입력항목 이름, 폼 형식, 필수 항목 옵션, 설명 글을 차례로 입력합니다.
  • image▲ 확장변수 등록을 위해 [추가] 버튼을 클릭합니다.
  • image▲ 같은 방법으로 확장변수 등록을 위해 [추가] 버튼을 클릭합니다.
  • image▲ 나머지 확장변수를 계획표에 따라 추가합니다.
  • image▲ 다중/단일 선택 폼을 사용하는 경우 기본 값은 ,(콤마)로 연결합니다.
  • image▲ 등록된 확장변수는 순서를 조정하거나 수정/삭제 할 수 있습니다.
  • image▲ 해당하는 메뉴에 신청서 게시판을 연결하여 호출합니다.
  • image▲ 신청서 게시판에서 [쓰기]를 클릭하여 확장변수가 제공하는 서식에 내용을 입력합니다.
  • image▲ 작성된 목록을 클릭하면 본문 위에서 확장변수 항목 이름과 값이 순서대로 출력됩니다.
  • image▲ 확장변수로 사용된 항목의 이름을 게시판 목록에서도 사용할 수 있습니다.
  • image▲ 게시판 관리의 [목록 설정]에서 확장변수 항목의 이름을 위와 같이 배치한 후 [저장]합니다.

신청서 게시판은 [비밀]글 기능을 함께 설정하고 활용하면 타인이 작성한 신청서를 열람할 수 없습니다. 다만 기본 값이 [공개]로 설정되어 있어서 작성자가 [비밀]글 기능을 선택해야 하는 번거로움이 있고, [상담 기능]을 활용하면 비로그인 회원이 게시판 모듈에 접근할 수 없는 문제점이 있습니다. 또한 신청서 서식에서 제목과 내용이 필요하지 않은 경우 위와 같이 확장변수를 활용한 게시판이 불편할 수 있습니다.

image

웹사이트 운영에 필요한 최적화 된 기능의 모듈은 별도의 제작과정이 필요합니다. 즉 확장변수가 아닌 모듈 스스로가 다루는 변수를 만들고 DB 테이블과 연결하여 동작해야 한다는 의미입니다. 모듈에서의 확장변수는 모듈을 새로 제작하지 않아도 활용할 수 있는 방법을 제공하는 역할을 합니다.

TIP - 게시판 모듈을 [복사]하는 경우 생성된 확장변수는 같은 변수이름으로 복사되고 해당 모듈에서 사용할 수 있습니다.