# 근무 시간 구성

## Content

반복되는 사무실 운영 시간과 예외 시간을 설정하면 사용자가 근무 시간과 비근무 시간을 쉽게 구분할 수 있습니다. 이러한 설정은 셀 스타일과 충돌 검사에 영향을 주며, 애플리케이션의 권한 설정과는 별개입니다.

>type=note
> 작업 시간을 설정해도 해당 셀이 숨겨지는 것은 아닙니다. 대신 비근무 시간으로 표시됩니다. 축 항목을 숨기려면 사용자 정의 정의에서 시간 바인딩의 `visible` 콜백을 사용하세요. 애플리케이션 코드에서 작업을 취소하지 않는 한 셀과의 상호작용은 계속 가능합니다. 비근무 시간과 겹치는 작업을 허용하지 않으려면 `conflictChecked`를 사용하세요.

## 설정 선택

| 요구 사항 | 설정 |
| ----- | --- |
| 매일 같은 시간 적용 | `workHours` |
| 요일별로 다른 시간 적용 | `workDays` |
| 공휴일 또는 일회성 휴무 | `nonworkingTime` |
| 축 항목 숨기기 | 정의 바인딩의 `visible` 콜백 |

`workDays`와 `workHours`가 모두 `null`이면 반복 작업 시간 제한이 적용되지 않습니다. 반면, 빈 일정은 작업 가능한 시간이 없음을 명시적으로 나타냅니다.
구성된 시간대와 이벤트 데이터의 시간대는 일관되게 유지하세요. 여러 지역의 시간을 표시하는 방식은 스케줄러의 `timeZone` 속성에서 별도로 설정합니다.

## 일일 작업 시간 설정

매일 동일한 일정이 적용되는 경우 `workHours`를 사용합니다. 각 시간 범위는 `9:00` 또는 `09:00`과 같은 24시간제 문자열(`H:mm` 또는 `HH:mm`)로 지정합니다. 시작 시간은 포함되지만 종료 시간은 포함되지 않습니다. `24:00`은 종료 시간으로만 사용할 수 있습니다.

```ts
scheduler.workHours = [
  { start: '09:00', end: '12:00' },
  { start: '13:00', end: '18:00' },
];
```

![일일작업시간](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8ecc18d2-feec-4d15-bd72-3d98a7b4cefa/7-1-20261019.67b20b.png)

## 요일별 작업 시간 구성

`workDays`에는 일요일부터 토요일까지 순서대로 7개의 항목이 포함됩니다. 빈 항목은 해당 요일이 비근무일임을 나타냅니다.

```ts
const officeHours = [
  { start: '09:00', end: '12:00' },
  { start: '13:00', end: '18:00' },
];
scheduler.workDays = [
  [], // 일요일
  officeHours, // 월요일
  officeHours, // 화요일
  officeHours, // 수요일
  officeHours, // 목요일
  [{ start: '09:00', end: '13:00' }], // 금요일
  [] // 토요일
];
```

![주간작업시간](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8ecc18d2-feec-4d15-bd72-3d98a7b4cefa/7-2-20261019.2614cf.png)

>type=note
> `workDays`가 설정되어 있으면 `workHours`보다 우선 적용됩니다. 특정 요일의 항목이 비어 있더라도 `workHours` 설정이 대신 적용되지는 않습니다. 다시 `workHours`를 사용하려면 `workDays`를 `null`로 설정하세요.

## 날짜별 예외 구성

공휴일, 휴무일 및 그 밖의 특정 날짜·시간 예외에는 `nonworkingTime`을 사용합니다.

```ts
scheduler.nonworkingTime = [{
  start: new Date(2026, 7, 24, 12),
  end: new Date(2026, 7, 24, 13),
}];
```

![날짜별_예외구성](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8ecc18d2-feec-4d15-bd72-3d98a7b4cefa/7-3-20261019.d7d0d5.png)
명시적으로 지정한 `nonworkingTime` 범위는 반복 설정에 우선 적용됩니다. 하루 전체를 비근무 시간으로 지정하려면 `Date` 범위의 종료 값을 다음 날 자정으로 설정하세요.