나는 안 쓰레기 같은 Timestamp Converter를 만들었어요 (무료에요)

발행: (2026년 2월 1일 오전 04:58 GMT+9)
9 min read
원문: Dev.to

Source: Dev.to

API 로그를 디버깅할 때는 종종 1706745600 같은 원시 값을 바라보며 “이게 무슨 날짜지?” 라고 생각하게 됩니다.
“unix timestamp converter”를 구글에 빠르게 검색하면 보통 광고가 가득하고, “Unix timestamp (seconds)” 를 선택하는 드롭다운이 있는 페이지, 더 많은 광고, 그리고 회원가입 안내가 나타납니다.

나는 그게 지긋지긋했습니다. 주말 동안 TimeStampConverter.net 를 만들었습니다 – 바로 작동하는 타임스탬프 변환기입니다.

무엇이 다를까요?

자동 감지

아무것이나 붙여넣기만 하면 도구가 형식을 자동으로 파악합니다:

형식예시
Unix 타임스탬프 (초)1706745600
Unix 타임스탬프 (밀리초)1706745600000
ISO 86012024-01-31T12:00:00Z
RFC 2822Thu, 31 Jan 2024 12:00:00 GMT
사람이 읽을 수 있는 형식January 31, 2024

드롭다운도, 추가 클릭도 없습니다.

한 번 붙여넣기, 일곱 가지 형식

한 번 붙여넣으면 모든 형식이 한 번에 표시됩니다:

Unix (seconds):     1706745600
Unix (ms):          1706745600000
ISO 8601 (UTC):     2024-01-31T17:00:00.000Z
ISO 8601 (Local):   2024-01-31T12:00:00.000-05:00
RFC 2822:           Wed, 31 Jan 2024 12:00:00 -0500
Human:              January 31, 2024 12:00:00 PM
Relative:           2 hours ago

각 라인마다 복사 버튼이 있어 빠르게 붙여넣을 수 있습니다.

400개 이상의 시간대

검색 가능한 시간대 드롭다운으로 원하는 지역(예: “Tokyo”)을 바로 찾을 수 있습니다.

내장된 날짜 연산

  • 연, 월, 일, 시, 분, 초 더하기/빼기
  • 두 타임스탬프 사이의 기간 계산
  • 일광 절약 시간제와 윤년을 정확히 처리

대량 변환

여러 타임스탬프를 한 줄에 하나씩 붙여넣으면 한 번에 모두 변환됩니다 – 로그 분석에 최적입니다.

URL 공유

특정 타임스탬프를 링크로 공유할 수 있습니다. 예: https://timestampconverter.net?ts=1706745600.

기본 다크 모드

많은 사람들이 새벽 2시에 디버깅하기 때문에 기본값이 다크 모드입니다.

추적 없음

분석도, 광고도, 회원가입도, 쿠키도 없습니다. 모든 작업이 클라이언트 측에서 실행됩니다.

기술 스택

나는 극도로 간단하게 유지했다:

{
  "dependencies": {
    "dayjs": "^1.11.10"
  }
}
  • Vanilla JavaScript – React, Vue, 빌드 단계 없이
  • day.js – 가벼운 날짜 라이브러리 (~2 KB)
  • Cloudflare Pages – 전 세계 CDN을 갖춘 무료 호스팅

전체 번들 크기: ~50 KB

왜 Vanilla JS인가?

  • 상태 관리가 필요 없음
  • 라우팅이 필요 없음
  • 가상 DOM이 필요 없음
  • 빠른 로딩 – 비슷한 React 앱은 >200 KB이지만, 이 앱은 전 세계에서 100 ms 이하로 로드됩니다.

자동 감지 작동 방식

핵심은 간단한 정규식 기반 탐지기입니다:

function detectTimestampFormat(input) {
  const trimmed = input.trim();

  // Unix timestamp (10 digits = seconds)
  if (/^\d{10}$/.test(trimmed)) {
    return { type: 'unix-seconds', value: parseInt(trimmed) };
  }

  // Unix timestamp (13 digits = milliseconds)
  if (/^\d{13}$/.test(trimmed)) {
    return { type: 'unix-ms', value: parseInt(trimmed) };
  }

  // ISO 8601 (starts with YYYY‑MM‑DDT)
  if (/^\d{4}-\d{2}-\d{2}T/.test(trimmed)) {
    return { type: 'iso8601', value: trimmed };
  }

  // RFC 2822 (starts with day name)
  if (/^[A-Za-z]{3},\s\d{2}\s[A-Za-z]{3}\s\d{4}/.test(trimmed)) {
    return { type: 'rfc2822', value: trimmed };
  }

  // Generic date parsing with dayjs
  const parsed = dayjs(trimmed);
  if (parsed.isValid()) {
    return { type: 'generic', value: trimmed };
  }

  return { type: 'invalid', value: null };
}

감지되면 변환은 간단합니다:

function convertTimestamp(detected) {
  let date;

  switch (detected.type) {
    case 'unix-seconds':
      date = dayjs.unix(detected.value);
      break;
    case 'unix-ms':
      date = dayjs(detected.value);
      break;
    default:
      date = dayjs(detected.value);
  }

  return {
    unixSeconds: date.unix(),
    unixMs: date.valueOf(),
    iso8601UTC: date.utc().format(),
    iso8601Local: date.format(),
    rfc2822: date.format('ddd, DD MMM YYYY HH:mm:ss ZZ'),
    humanReadable: date.format('MMMM D, YYYY h:mm:ss A'),
    relative: date.fromNow()
  };
}

Cloudflare Pages 배포

배포는 아주 쉽습니다:

# 1. Build (vanilla JS라 빌드할 것이 없습니다!)
# 2. Deploy
wrangler pages deploy . --project-name=timestamp

# Done. Live globally in ~30 seconds.

Cloudflare가 제공하는 기능:

  • 무료 티어에서 무제한 대역폭
  • 300개 이상의 엣지 로케이션
  • 자동 HTTPS
  • 모든 git 푸시마다 프리뷰 배포
  • 내장형 분석

모두 $0/month 에 제공됩니다.

배운 점

  1. 때때로 바닐라 JS가 올바른 선택이다 – 작은 유틸리티가 성능 면에서 프레임워크를 능가할 수 있다.
  2. 자동 감지는 마법 같은 UX – 사용자는 “그냥 작동하는” 도구를 좋아한다.
  3. 다크 모드는 기본이어야 한다 – 개발 도구는 밤에 자주 사용된다.
  4. Cloudflare Pages는 과소평가된다 – 무료이며, 무제한이고, 전 세계 사용자에게 빠르다.
  5. 자신의 문제를 해결하라 – 필요로 하는 것을 만들면 그 유용성이 검증된다.

다음은?

잠재적 기능:

  • 브라우저 확장 프로그램 (우클릭 → 변환)
  • 프로그래밍 사용을 위한 API 엔드포인트
  • 고급 날짜‑수학 (예: 영업일 계산)
  • 대량 결과를 위한 내보내기 옵션 (CSV, JSON)

도움을 원하시면 자유롭게 이슈를 열거나 PR을 제출하세요!

자동 접근

  • 크론 표현식 검증기
  • ISO 주 번호 계산기

솔직히, 이 도구가 이미 제가 필요로 하는 것을 다 해주니 그대로 둘 수도 있습니다.

직접 사용해 보기

TimeStampConverter.net – 회원가입 없이, 추적 없이, 불필요한 것 없이. 타임스탬프만 제공합니다. 유용하다고 생각되면 북마크하세요.

FAQ

Q: 이것은 오픈 소스인가요?
A: 아직은 아니지만, 고려 중입니다. 관심이 있다면 GitHub에 올릴 예정입니다.

Q: 어떻게 수익을 창출하나요?
A: 저는 수익을 창출하지 않습니다. 운영 비용은 $0/월입니다. 언젠가 “커피 한 잔 사 주세요” 버튼을 추가할 수도 있습니다.

Q: 내 앱/API에 이걸 사용할 수 있나요?
A: 모든 작업이 클라이언트‑사이드에서 이루어지므로 가능합니다. 서버‑사이드 API 엔드포인트가 필요하면 알려 주세요 – 만들 수도 있습니다.

Q: 개인정보는 어떻게 보호되나요?
A: 모든 변환은 브라우저 내에서 이루어집니다. 제가 변환 내용을 볼 수 없습니다. Cloudflare는 기본 CDN 메트릭(지역별 요청 수, 대역폭)만 로그에 남기며 사용자 데이터는 기록하지 않습니다.

Q: 기능을 추가해 줄 수 있나요?
A: 가능할 수도 있습니다! 아래에 댓글을 남기거나 사이트를 통해 이메일을 보내 주세요.

Back to Blog

관련 글

더 보기 »

파이썬의 비밀스러운 삶: 숨겨진 Return

왜 당신의 함수 결과가 None인지 — 그리고 이를 해결하는 방법. 티모시가 화면을 보며 환하게 웃었다. 그는 방금 pricing script를 깔끔하게 refactoring한 것이다,…

나는 내 성공을 마음의 눈으로 볼 수 있다

성공의 착각 나는 그것을 명확히 볼 수 있다. 내 앱은 라이브이고, 버그‑프리이며, 사용자들은 열광하고 있다. 투자자들이 전화를 걸어온다. 내 GitHub repo에 별이 쏟아지고 있다.