템플릿 도우미 함수 (Helper Function)

템플릿 문법에서 함께 사용할 수 있는 도우미 함수들을 소개합니다.

숫자 (Number)

RAND(from, to) : Number

  • fromto사이의 숫자를 반환합니다. (from, to 모두 정수로 입력된 경우)

예시

  • {{RAND(1,10)}} -> 6 (1~10 사이의 값)

문자열 (String)

RAND(...items) : String

  • items : 입력된 값 중에서 하나를 랜덤으로 반환합니다.

예시

  • {{RAND("철수", "영희"}} -> 철수 (철수, 영희 둘 중 하나)

JOSA(noun, josa: "은" | "는" | "이" | "가" | "을" | "를")

한글 명사 noun 에 적절한 조사를 변환해주는 도우미 함수입니다.

  • josa: 은/는, 이/가, 을/를 조합 중 이용하고자 하는 조사를 한 글자로 입력해주세요.

예시

  • {{JOSA("멍멍이","이")}} -> 멍멍이가

  • {{JOSA(params.product, "을"}} , { "product": "떡볶이" }-> 떡볶이를

QUOTE(string, [quote])

JSON payload 등에 string을 사용할 때, 문자열 내부에 quote (" 또는 ') 값이 있는 경우 해당 값을 안전하게 변환("->\", '->\')하여 따옴표 (또는 쌍따옴표)로 감싸주는 기능입니다.

  • quote: 감쌀 따옴표의 종류(",') 를 입력합니다. (기본값: ")

예시

  • { params: { input: '안녕하세요? 저는 "개똥이" 입니다.' } } 일 때, {{QUOTE(params.input, '"')}} -> "안녕하세요? 저는 \"개똥이\" 입니다."

ESCAPE(string)

URL string에 템플릿 변수를 이용할 때, 적합하지 않은 문자열을 encodeURIComponent 함수를 통해 UTF-8 문자로 변환합니다.

  • 예시)

    • {{ESCAPE("name=홍길동")}} -> "name%3D%ED%99%8D%EA%B8%B8%EB%8F%99"

FORMAT(value, option?)

주어진 value를 원하는 형태로 출력합니다. 주로 number값을 출력할 때 이용합니다.

예시

  • {{FORMAT(10000)}} -> 10,000

  • {{FORMAT("01234.5")}} -> 1,234.5 (number string은 number로 변환됩니다.)

  • {{FORMAT("안녕하세요")}} -> 안녕하세요 (plain string은 아무런 변화가 없습니다.)

  • {{FORMAT(123.456, "0.00")}} -> 123.46 (소수점 2자리까지 출력, 나머지는 반올림됩니다.)

  • {{FORMAT(1230974, "0.0a")}} -> 1.2m (1000단위 숫자를 약어로 표기합니다. )

Number formatting에는 Numeral.js 라이브러리를 이용하고 있습니다. 이용 가능한 모든 옵션을 알아보려면 다음 링크를 참고하세요.

(영문) http://numeraljs.com/#format

TRUNCATE(value, length, omission?)

주어진 문자열 value를 원하는 길이 length 만큼 자르는 함수입니다.

  • omission: 문자열이 지정한 길이를 넘을 때 표시하는 말줄임표를 설정합니다. 기본값은 ''입니다.

예시

  • {{TRUNCATE("ABCDEFGHIJKLMNOP", 10}} -> ABCEDFGHIJ

  • {{TRUNCATE("ABCDEFGHIJKLMNOP", 10, "..."}} -> ABCEDFG...

날짜 (Date)

DATE(value?, format?, timezone?)

날짜를 출력하는 함수입니다. 아무것도 지정하지 않을 시 현재 시간을 ISO Date String으로 반환합니다.

  • value: ISO date string or UNIX timestamp (선택)

  • format?: 날짜 표현 방식을 설정 (선택)

  • timezone?: 날짜를 표시할 기준 시간대를 설정 (선택)

예시

  • {{DATE()}} 또는 {{DATE(null)}} => 2018-12-07T05:47:14.667Z (ISO Date, UTC timezone)

  • {{DATE("2018-12-07","YYYY.MM")}} => 2018.12

  • {{DATE("2018-12-07T05:47:14.667Z", "YYYY년 MM월 DD일 HH시 mm분", "Asia/Seoul")}} => 2018년 12월 07일 14시 47분

현재 시간을 기준으로 format, timezone을 적용하려면 value에 null을 입력하세요. e.g.) {{DATE(null, "YYYY-MM-DD")}}

Date manipulation에는 Moment.js 라이브러리를 이용하고 있습니다. 이용 가능한 시간대와 포매팅 방식을 더 자세히 알아보려면 다음 링크를 참고하세요.

(영문) https://momentjs.com/docs/#/displaying/format/ (영문) https://momentjs.com/timezone/

메시지 관련 (Message)

MASK(text, [schedule])

해당 메시지에서 지정한 텍스트를 마스킹(별표) 처리하는 함수입니다.

  • text: 마스킹 대상을 설정합니다.

  • schedule?: 마스킹 시간을 설정합니다. (e.g. "10m", "6h", "7d") 지정하지 않을 시 즉시 마스킹됩니다.

예시

  • 안녕하세요 {{MASK("김철수")}} 고객님? -> "안녕하세요 *** 고객님"

    (고객에게는 마스킹 처리가 되기 전 데이터가 전달됩니다.)

  • 주문번호 {{MASK(orderNo, "6h")}}에 대한 답변입니다. -> "주문번호 1234에 대한 답변입니다". (params.orderNo에 1234가 있었다고 가정, 6시간 후 해당 데이터가 마스킹 처리 됩니다.)