프로젝트 소개
이 프로젝트는 날짜, 기간 및 캘린더 데이터를 다루기 위한 전문 도구 라이브러리입니다. 당사의 목표는 특정 작업을 해결할 때 정확하고 예측 가능한 결과를 제공하는 것입니다.
아키텍처
이 서비스는 "하나의 도구, 하나의 작업"이라는 원칙을 기반으로 합니다. 이러한 접근 방식은 계산을 단순화하고 사용자 편의성을 높입니다. 각 모듈은 독립적으로 작동하며 명확히 정의된 작업만을 수행합니다. 따라서 사용자는 복잡한 인터페이스를 익히거나 불필요한 설정값 속에서 필요한 항목을 찾을 필요가 없습니다. 단, 도구가 완전히 고정된 것은 아니며, 특정 작업의 맥락에 맞춰 계산을 세밀하게 조정할 수 있는 설정 옵션이 구조적으로 포함되어 있습니다.
계산 로직
캘린더를 단순히 균일한 숫자 축으로 간주할 수는 없습니다. 월별 길이 차이, 윤년, 지역별 특성 등 다양한 불규칙성이 존재하기 때문입니다. 당사의 알고리즘은 이러한 미묘한 차이를 정확하게 처리할 수 있도록 설계되었습니다.
기본 알고리즘의 수학적 정확성을 보장하기 위해 ISO 8601 표준을 채택하고 있습니다. 이 표준의 적용은 엄격하게 관리되며, 반드시 필요한 경우에만 적용됩니다. ISO 8601을 따를 필요가 없는 경우에는 시스템이 각 지역의 표준에 의존합니다.
데이터의 정확한 표현과 지역별 특성을 반영하기 위해 ICU(International Components for Unicode)를 활용하고 있습니다. ICU의 활용은 단순히 언어 설정에 따른 날짜 및 시간 표시에만 국한되지 않고, 실제 계산 과정에도 참여합니다. 이를 통해 한 주의 시작 요일이나 주말을 정확하게 판별할 수 있습니다.
데이터 접근 및 처리
이 서비스는 완전히 무료이며 회원가입이 필요하지 않습니다. 모든 계산은 사용자의 브라우저 내에서 이루어지며, 설정값과 즐겨찾기 도구는 브라우저에만 저장됩니다. 어떠한 데이터도 외부 서버로 전송되지 않습니다.
감사의 글
ICU 및 Day.js 프로젝트의 개발자분들께 깊은 감사를 드립니다. 이 라이브러리들은 당사 서비스 알고리즘이 작동하는 데 필요한 수학적, 언어적 기반을 튼튼하게 지원해 주고 있습니다.