시간 값은 업무가 요구하는 시점·길이·날짜·반복의 의미를 구분해 모델링한다
같은 숫자나 문자열로 저장할 수 있어도 특정 순간·경과 시간·달력 날짜·구간·반복 규칙은 필요한 연산과 계약이 다르다. 저장 형식보다 업무가 요구하는 의미를 먼저 구분해 모델에 보존한다.
같은 하루라도 연산이 다를 때
경과 시간에 정확히 24시간을 더하는 것과 지역 달력의 다음 날 같은 시각을 구하는 것은 일광 절약 시간 변경 구간에서 달라질 수 있다. 구간의 경계 포함 여부와 반복의 기준 시간대도 값의 해석에 관여한다. 모든 의미를 UTC나 고정 초 단위 하나로 환원하는 규칙으로 만들지 않는다.
타입 이름을 나눴다는 사실만으로 생성·변환·연산이 계약을 지키는 것은 아니다. 정밀도·범위·지역 규칙·경계 조건은 실제 구현에서 확인한다. Kciter의 예제 코드를 그대로 검증된 시간 라이브러리로 취급하지 않는다.
근거와 연결
- Kciter의 모델링 시리즈: 시간: 업무 사례에서 시점·기간·구간·반복으로 나눈 설명. 게시 2025-05-06, 확인 2026-09-30.
- Oracle Java 21의 Period 계약: 달력 기준 하루와 정확한 시간량의 차이. TimeUnit 계약: 단위 변환의 절삭과 범위 초과 포화. 확인 2026-09-30. 나노초 사용이 계산 전체의 정확성을 보장한다는 해석을 제한하는 근거다.
- 기술 글의 설명 구조와 시각 자료 - Kciter > 기술 내용에서 남길 판단과 보장 경계
- 후속 코드가 의존할 입력 조건은 자료형과 구조에 보존한다는 검사로 얻은 정보의 전달을 다룬다. 이 노트는 시간 도메인의 의미와 연산 계약을 다룬다.
- 서로 다른 변경 이유를 억지로 묶은 추상화는 분리해 다시 찾는다
- 지각 해상도를 높이는 학습
- Atomic Notes