#8 리퀴드 마크업(Liquid markup)의 중첩 #2
지난 시간에 티켓 생성 시각을 자리표시자로 불러오는 방법을 함께 했습니다.
소제목을 리퀴드 마크업의 중첩이라고 적었는데 아직 중첩에 대한 이야기를 시작하지 못했네요.
이번 시간에는 컴퓨터가 시간을 인식하는 방법에 대해 이야기를 먼저 해보려고 합니다.
리퀴드 마크업의 필터 중첩을 시간 필터를 중심으로 소개하려고 하는데요.
아무래도 시간과 관련된 자리표시자를 처음 다루다 보니 선행 지식이 조금 필요할 것 같아 먼저 설명드리고 중첩에 대한 이야기를 이어나가려고 합니다.
컴퓨터가 인식할 수 있는 유일한 숫자는 0과 1입니다.
이런 컴퓨터는 날짜와 시간을 어떻게 인식할까요?
컴퓨터마다 프로그램마다 여러 가지 방법이 있지만 크게 쓰이는 방법은 두 가지입니다.
첫 번째 방법은 기준일을 정하고 그 기준일에서 하루가 지날 때마다 1씩 더하는 방식입니다.
이 방식은 주로 엑셀에서 사용되는 방식입니다.
엑셀 창을 열고 2024/02/10이라는 날짜를 입력해봅시다.
그리고 #2와 같이 셀 서식을 숫자로 변경해 봅시다.
그럼 45332라는 숫자로 표시되는데요. 이건 무슨 의미일까요?
1900년 1월 1일로부터 2024년 2월 10일은 45332일째 되는 날이라는 뜻입니다.
그럼 2024년 2월 11일을 입력하고 숫자로 변경하면 어떻게 표시될까요?
네 맞습니다. 45333이라고 표시될 것입니다.
그럼 2024년 2월 10일 12시는 어떻게 표시할까요?
이 시간 체계에서 1일은 1로 표시합니다.
1일은 24시간이죠.
24분의 1 값인 0.041667을 더할 때마다 한 시간씩 늘어나는 구조인 것입니다.
즉 12시간은 하루의 절반에 해당하기 때문에 45332.5는 2024년 2월 10일 12시가 되는 것입니다.
두 번째 방식은 기준일로부터 1초씩 더해서 초 단위로 환산하는 것입니다.
이 사이트를 한번 방문해 보시면 이해가 빠르실 것 같은데요. (바로가기)
#1 영역은 1970년 1월 1일 0시 0분 0초를 기준으로 현재 시간이 몇 초가 흘렀는지를 표현한 것입니다.
아래쪽에 변환 버튼을 이용하면 현재 시간을 1970년 1월 1일 0시 0분 0 초을 기준으로 몇 초 인지 계산해 줍니다.
위와 같이 시간을 계산하는 방식을 유닉스 타임스탬프라고 부릅니다.
우리가 인터넷에서 표시되거나 사용되는 시간 표시는 거의 대부분 두 번째 방식을 사용하고 있습니다.
젠데스크 자리표시자 또한 두 번째 방식을 사용하고 있습니다.
그럼 두 번째 방식인 유닉스 타임스탬프에 대해 조금 더 알아볼까요?
시간을 초 단위로 표시하다 보니 연산 자체는 명확한데 한 번에 이해하기가 너무 힘듭니다.
또한 유닉스 타임스탬프에서 연도만 추출한다거나, 시간만 표시하고 싶다거나 할 때 어떻게 처리해야 할지 난감한데요.
리퀴드 마크업은 위와 같은 불편함을 대비하여 date라는 필터를 준비해 두었습니다.
date 필터를 사용하면 유닉스 타임스탬프를 내가 원하는 방식으로 표현할 수 있습니다.
실습을 해볼까요?
연습용 매크로에 #1과 같이 입력하고 저장해 봅시다.
{{ticket.created_at_with_timestamp | date: "% s" }}
티켓에 매크로를 적용하면 #2와 같이 표시되는데요.
티켓 생성 시각을 유닉스 타임스탬프로 변환한 것입니다.
date 필터는 시간의 표시 형식을 지정하겠다는 필터이고 : "% s" 부분은 어떻게 표현하겠다는 인수인데요.
% S는 시간을 유닉스 타임스탬프로 표시하라는 인수입니다.
그럼 티켓 생성 시간을 2024년 2월 10일로 표시하려면 어떻게 해야 할까요?
{{ticket.created_at_with_timestamp | date: "% Y 년 % m월 %d일" }}
위와 같이 입력하면 표현이 가능합니다.
연습해볼까요?
우리가 원하는 대로 표시가 되는 것을 알 수 있습니다.
date 필터에 대해 조금 감이 오시나요?
데이트 필터는 [%+문자]의 형태로 우리가 표시하고자 하는 날짜나 시간을 표시할 수 있게 변환해 주는 필터입니다.
[%+문자]로 표시되는 날짜 시간 형식을 StrfTime 형식이라고 합니다.
그래서 date 필터를 좀 더 정확하게 정의한다면, 자리표시자의 시간을 Strftime 형식으로 변환해 주는 필터입니다.
그럼 Strftime 형식에는 어떤 종류들이 있을까요?
하나씩 외우기는 너무 힘드니까 이 사이트를 소개해드릴게요. (바로가기)
#1 영역에서 내가 표시하고 싶은 형태의 표시 형식을 클릭하면, #2 영역에 등록이 됩니다.
그리고 현재 시간 기준으로 #3 영역에서 샘플을 확인할 수 있습니다.
젠데스크에서 DATE 필터를 사용할 때는 #2 영역을 복사하여 Date 필터 뒤에 붙여 넣기만 하면 내가 원하는 형태로 상담사에게 시간을 표시해 줄 수 있기 되는 것입니다.
이번 시간에는 DATE 필터를 사용하여 티켓 생성 시각을 여러 가지 방법으로 표시하는 방법에 대해 이야기해보았습니다.
이제 티켓 생성 시각을 여러 가지 방법으로 표시하는 것은 가능하지만 아직 우리에게는 해결하지 못한 숙제가 하나 남아 있는데요. 젠데스크 서버에 포함된 티켓 생성 시각이 한국 기준 시각과 차이가 난다는 점입니다.
다음 시간에는 진짜! 필터 중첩을 이용하여 이 문제를 해결해보고자 합니다.
감사합니다.