플러그인 개요
DayFlow는 기능을 확장하기 위해 플러그인 아키텍처를 사용합니다. 플러그인은 필요에 따라 켜고 끄거나 설정할 수 있는 모듈형 기능을 제공합니다.
왜 플러그인인가
플러그인 시스템으로 다음을 할 수 있습니다:
- 기능 켜고 끄기 – 필요한 것만 불러옵니다(예: 번들 크기를 줄이기 위해 기본적으로 영어만 포함)
- 동작 설정하기 – 사용 사례에 맞게 플러그인 설정을 조정합니다
- 기능 확장하기 – 고유한 요구 사항에 맞는 플러그인을 직접 만듭니다
- 플러그인 API 사용하기 – 비즈니스 로직에서 플러그인 서비스를 바로 호출합니다
사용 가능한 플러그인
DayFlow는 여러 내장 플러그인과 공식 플러그인을 제공합니다:
i18n
여러 언어를 지원합니다. 영어 외 로케일을 플러그인으로 분리해 두었기 때문에, 영어만 쓰는 애플리케이션에서는 코어 번들이 더 작아집니다. 자세히 보기
드래그 앤 드롭
이벤트를 옮기고, 크기를 조절하고, 더블 클릭으로 생성하는 등 대화형 이벤트 관리를 제공합니다. 자세히 보기
이벤트 서비스
검증, 필터링, 날짜 범위 조회 등 고급 이벤트 관리 기능을 제공합니다. 자세히 보기
예약 일정 (Pro)
주최자를 위한 가용 시간 편집과 참석자를 위한 독립형 예약 컴포넌트를 제공합니다. 자세히 보기
플러그인 생명주기
- 플러그인 생성 – 설정을 넣어 팩토리 함수(예:
createDragPlugin())를 호출합니다. - 플러그인 등록 – 캘린더를 초기화할 때 플러그인 인스턴스를
plugins배열에 추가합니다. - 설치 –
install()함수가CalendarApp인스턴스와 함께 자동으로 호출됩니다. - 사용 –
app.getPlugin('plugin-name')으로 플러그인 API에 접근합니다.
사용자 정의 플러그인 만들기
CalendarPlugin 인터페이스를 구현하면 캘린더 기능을 확장하는 플러그인을 직접 만들 수 있습니다:
import { CalendarPlugin, ICalendarApp } from '@dayflow/core';
export const myPlugin: CalendarPlugin = {
name: 'my-custom-plugin',
install(app: ICalendarApp) {
console.log('Plugin installed!');
// Extend app functionality here
},
};사용자 정의 플러그인 개발에 대한 자세한 내용은 사용자 정의 플러그인 만들기를 참고하세요.