ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION1426 / 1500
설계난이도 중하5분 답변 목표 · 보강본

사용자의 다음 날 같은 시각을 예약할 때 24시간을 더하면 항상 맞나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

기간의 경과 시간과 달력상의 다음 날짜는 다릅니다. 시간대의 일광절약시간 전환 등으로 현지 하루가 항상 24시간은 아니므로 사용자 의도에 맞는 시간대·달력 연산을 사용해야 합니다.

동작 원리와 전제

현지 시각이 존재하지 않거나 두 번 존재하는 날이 있을 수 있습니다. 예약 정책은 건너뛸지 다음 유효 시각으로 옮길지 어느 offset을 택할지 명시합니다. UTC instant만 저장할지 원래 지역 시간대와 반복 규칙도 저장할지 용도에 따라 정합니다.

선택과 실패 처리

로그·순서·timeout은 UTC나 단조 경과 시계를 사용하고 사용자 달력 표시와 구분합니다. 시간대 데이터가 바뀌면 미래 반복 예약의 결과가 달라질 수 있어 사용 라이브러리·tzdata 버전을 관리합니다.

구체적인 사례와 검증

매일 오전 9시 회의는 24시간 간격의 타이머와 다릅니다. 지역 시간대 규칙이 바뀌거나 DST가 전환되면 UTC offset이 달라져도 현지 9시를 유지해야 할 수 있습니다. 반대로 24시간 뒤 만료하는 토큰은 경과 기간의 의미가 중요합니다. 날짜·시간 문자열에 offset만 저장하면 미래 지역 규칙을 표현하지 못할 수 있어 timezone ID와 반복 규칙을 함께 보관합니다. 시스템 내부 timeout은 벽시계 조정 영향을 피하려고 단조 시계를 사용합니다. 시간의 종류를 한 필드로 합치지 말고 사용자 달력 의도·절대 instant·로컬 경과 시간을 명시하겠습니다.

전환일·윤년·월말·다른 지역·반복 예약을 시험합니다. 문자열 날짜에 서버 로컬 시간대를 암묵 적용하지 않습니다. 정렬 가능한 timestamp가 있다는 사실이 사용자의 달력 의도를 보존한다는 뜻은 아닙니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: 기간의 경과 시간과 달력상의 다음 날짜는 다릅니다.
  • 선택 조건: 로그·순서·timeout은 UTC나 단조 경과 시계를 사용하고 사용자 달력 표시와 구분합니다.
  • 검증 기준: 전환일·윤년·월말·다른 지역·반복 예약을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • 현지 다음 날 같은 시각은 항상 현재 instant에 24시간을 더하면 된다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 표시 시각·로컬 경과 시간·권위 있는 변경 순서는 어떤 시계와 버전으로 나누나요?
  • 컬럼 변환 때문에 탐색이 넓어졌다면 같은 의미의 원본 범위나 함수 인덱스로 어떻게 바꾸나요?
  • 정지 중 놓친 회차를 모두 보충할지 최신 한 번만 실행할지 어떤 업무 의미로 정하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기