
'date' 명령어 앞에서 작아지는 우리들
터미널에서 날짜 계산 한번 해보려다가 좌절한 경험, 다들 있으시죠? '90일 뒤가 며칠이지?', '이 UTC 타임스탬프를 한국 시간으로 바꾸면 몇 시지?' 같은 단순해 보이는 작업도, 막상 date 명령어로 하려면 옵션이 외계어 같고, 심지어 맥(BSD 계열)과 리눅스(GNU 계열)에서 쓰는 법이 또 달라서 머리가 아파요. 그래서 결국 검색창을 켜게 되죠.
이 답답함을 정확히 겨냥한 도구가 나왔어요. 바로 Biff인데요, 그 유명한 ripgrep과 Rust의 정규표현식 라이브러리를 만든 개발자 BurntSushi(앤드루 갤런트)의 작품이에요. 이 사람이 만든 도구는 빠르고 잘 설계되기로 정평이 나 있어서, 'datetime 계의 맥가이버 칼'을 표방하는 Biff도 자연히 눈길이 가요. Biff는 그가 만든 Rust 날짜·시간 라이브러리 Jiff 위에 얹어진 커맨드라인 도구예요.
날짜가 왜 그렇게 어려운 건데요?
날짜·시간이 어려운 건 우리 잘못이 아니에요. 세상이 원래 복잡한 거예요. 타임존이 나라마다 다르고, 서머타임(DST) 때문에 어떤 날은 하루가 23시간이거나 25시간이 되기도 하고, 윤년·윤초까지 끼어들거든요. 게다가 사람들이 날짜를 적는 형식도 제각각이라(2026-05-28인지 05/28/2026인지) 파싱부터가 난관이에요.
Jiff가 똑똑한 점은 시간을 종류별로 명확히 구분한다는 거예요. 절대 시점(instant) 은 '우주 어디서 보든 동일한 그 순간'이고요, 달력 시간(civil time) 은 타임존 정보 없이 그냥 벽시계에 적힌 '5월 28일 오후 3시' 같은 거예요. 그리고 이 둘을 합친 타임존이 붙은 시간(zoned datetime) 이 있고요. 이게 뭐가 중요하냐면, 이 셋을 헷갈려서 막 섞어 쓰면 '서버에선 맞는데 사용자 화면에선 한 시간 틀어지는' 그 악명 높은 버그가 터지거든요. Biff는 이 개념을 제대로 지키면서 변환을 도와줘요.
Biff가 해주는 일들
Biff는 한마디로 날짜·시간에 관한 거의 모든 잡일을 터미널에서 해결해줘요. 제멋대로인 형식의 날짜 문자열을 알아서 파싱하고, 타임존을 자유자재로 변환하고(UTC를 KST로 같은), 'X일 더하기', 'Y시간 빼기' 같은 산술 계산을 하고, 두 시점 사이의 차이를 구하고, 원하는 형식으로 예쁘게 출력해줘요. 전 세계 타임존 정보가 담긴 IANA 타임존 데이터베이스를 기반으로 하니 정확도도 믿을 만하고요.
특히 중요한 설계 철학이 유닉스 파이프와의 궁합이에요. 즉, 여러 개의 날짜를 한 줄에 하나씩 흘려보내면 Biff가 그걸 줄줄이 받아서 처리하는 식이라, cat이나 grep 같은 다른 명령어들과 파이프(|)로 자연스럽게 엮을 수 있어요. 로그 파일에서 뽑아낸 타임스탬프 수천 개를 한 번에 한국 시간으로 바꾸는 것 같은 작업이 쉬워지는 거죠.
업계 맥락에서 보면
예전부터 이 영역엔 dateutils 같은 CLI 도구나, 파이썬의 arrow·pendulum, 자바스크립트의 day.js·luxon 같은 라이브러리들이 있었어요. 다들 표준 datetime이 불편해서 나온 것들이죠. Rust 진영만 봐도 오래된 chrono, 그 대안인 time 크레이트가 있었는데, Jiff는 타임존을 처음부터 제대로 모델링했다는 점에서 후발주자임에도 주목받고 있어요. Biff는 그 탄탄한 엔진을 평범한 개발자도 터미널에서 바로 쓰게 풀어준 셈이에요.
한국 개발자에게 주는 시사점
우리는 거의 숙명적으로 KST(한국시간)와 UTC 사이를 오가며 일하잖아요. 서버 로그는 UTC인데 운영팀은 한국 시간으로 보고 싶어 하고, 글로벌 서비스의 이벤트 시각을 맞춰야 하고요. 이런 상황에서 Biff 같은 도구를 셸 스크립트나 운영 작업에 끼워 넣으면, 매번 헷갈리는 변환을 손으로 안 해도 돼요. 배포 스크립트에서 '지금부터 7일 뒤 만료일' 같은 걸 계산하거나, 장애 로그의 타임스탬프를 일괄 변환할 때 특히 빛을 발하죠.
무엇보다 좋은 건, Biff를 써보면서 자연스럽게 '절대 시점과 달력 시간은 다르다'는 올바른 시간 개념을 몸에 익히게 된다는 점이에요. 이건 어떤 언어로 개발하든 평생 써먹는 지식이거든요. 핵심을 한 줄로 정리하면, 날짜·시간 계산은 원래 어려운 게 맞고, 그 어려움을 잘 설계된 도구에게 맡기는 게 현명하다는 거예요. 여러분은 타임존 변환 같은 거 할 때 보통 어떻게 해결하세요? 손으로 계산하다 사고 친 경험, 한 번쯤 있지 않나요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공