플러그인 개요

DayFlow는 기능을 확장하기 위해 플러그인 아키텍처를 사용합니다. 플러그인은 필요에 따라 켜고 끄거나 설정할 수 있는 모듈형 기능을 제공합니다.

왜 플러그인인가

플러그인 시스템으로 다음을 할 수 있습니다:

  • 기능 켜고 끄기 – 필요한 것만 불러옵니다(예: 번들 크기를 줄이기 위해 기본적으로 영어만 포함)
  • 동작 설정하기 – 사용 사례에 맞게 플러그인 설정을 조정합니다
  • 기능 확장하기 – 고유한 요구 사항에 맞는 플러그인을 직접 만듭니다
  • 플러그인 API 사용하기 – 비즈니스 로직에서 플러그인 서비스를 바로 호출합니다

사용 가능한 플러그인

DayFlow는 여러 내장 플러그인과 공식 플러그인을 제공합니다:

i18n

여러 언어를 지원합니다. 영어 외 로케일을 플러그인으로 분리해 두었기 때문에, 영어만 쓰는 애플리케이션에서는 코어 번들이 더 작아집니다. 자세히 보기

드래그 앤 드롭

이벤트를 옮기고, 크기를 조절하고, 더블 클릭으로 생성하는 등 대화형 이벤트 관리를 제공합니다. 자세히 보기

이벤트 서비스

검증, 필터링, 날짜 범위 조회 등 고급 이벤트 관리 기능을 제공합니다. 자세히 보기

예약 일정 (Pro)

주최자를 위한 가용 시간 편집과 참석자를 위한 독립형 예약 컴포넌트를 제공합니다. 자세히 보기


플러그인 생명주기

  1. 플러그인 생성 – 설정을 넣어 팩토리 함수(예: createDragPlugin())를 호출합니다.
  2. 플러그인 등록 – 캘린더를 초기화할 때 플러그인 인스턴스를 plugins 배열에 추가합니다.
  3. 설치install() 함수가 CalendarApp 인스턴스와 함께 자동으로 호출됩니다.
  4. 사용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
  },
};

사용자 정의 플러그인 개발에 대한 자세한 내용은 사용자 정의 플러그인 만들기를 참고하세요.

이 페이지의 내용