OPEN SOURCE/FullCalendar

[FullCalendar] ํ’€์บ˜๋ฆฐ๋”(FullCalendar)๋ž€?

Junesker 2024. 6. 13. 16:50
๋ฐ˜์‘ํ˜•

FullCalendar - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

 

 

 

 

FullCalendar๋ž€?


FullCalendar JS๋Š” 'The Most Popular Javascript Calendar', ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ผ์ •๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๋งŽ์ด๋“ค ์ด์šฉํ•˜๊ฒŒ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. FullCalendar JS๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด Calendar ์ž์ฒด๋ฅผ Date๊ฐ์ฒด ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฐ ๋‚ ์งœ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ธ๋“ค๋งํ•ด์„œ ์ผ์ •์„ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ ๋ฐ ๊ด€๋ฆฌ ํ•ด์•ผํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

FullCalendar JS๋Š” ๊ทธ๋Ÿฐ ๋ถˆํŽธํ•จ๋“ค์˜ needs๋ฅผ ์ถฉ๋ถ„ํžˆ ์ปค๋ฒ„ํ•˜๊ณ  ์žˆ์„๋งŒํผ ๊ธฐ๋Šฅ์ ์œผ๋กœ๋„ ํ”„๋กœ์„ธ์Šค์ ์œผ๋กœ๋„ ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค. FullCalendar JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“ฑ๋ก ํ›„, ๊ด€๋ จ HTML์ฝ”๋“œ์™€ ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ ๋ช‡์ค„๋งŒ ๋“ฑ๋กํ•˜๋ฉด ์˜ˆ์˜๊ณ  ์ž˜ ๋งŒ๋“ค์–ด์ง„ ๋‹ฌ๋ ฅ์ด ์ถœ๋ ฅ๋œ๋‹ค.

๋‚ ์งœ๋ฅผ ํด๋ฆญํ•˜๋Š” ์ด๋ฒคํŠธ, ๋“ฑ๋ก๋œ ๋‚ ์งœ๋ณ„ ์ผ์ •๋ฐ”๋ฅผ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋ž์ด๋ฒคํŠธ, ๋ฆฌ์‚ฌ์ด์ฆˆ ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด์„œ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์ผ์ •๊ด€๋ฆฌ ๊ธฐ๋Šฅ ์ธก๋ฉด์—์„œ ๋‹ค์–‘ํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

 

 

 

 

Open Source


FullCalendar JS๋Š” 10๋…„์ด ๋„˜๋Š” ์˜คํ”ˆ์†Œ์Šค์™€ 120๋ช…์ด ๋„˜๋Š” ๊ธฐ์—ฌ์ž๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. FullCalendar JS๋Š” ํ•ญ์ƒ ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค ์ฝ”์–ด๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๊ณ , ์œ ๋ฃŒ ๋ผ์ด์„ผ์Šค๋„ ํ•จ๊ป˜ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด ๊ธฐ๋ณธ/ํ”„๋ฆฌ๋ฏธ์—„/OEM ์ƒํ’ˆ์œผ๋กœ ๋ผ์ด์„ผ์Šค ๋ฐ ์„œ๋น„์Šค, ๊ธฐ์ˆ ์ง€์›์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค๋Š” FullCalendar Standard์™€ FullCalendar Premium ๋‘˜ ์ค‘ ์–ด๋А๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. 

 

# FullCalendar ํ‘œ์ค€
ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹Œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ FullCalendar ๋ฒˆ๋“ค์€ MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฆด๋ฆฌ์ฆˆ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด์„ผ์Šค๋Š” ๋ชจ๋“  ์ €์ž‘๊ถŒ ํ—ค๋”๊ฐ€ ๋ณด์กด๋œ๋‹ค๋Š” ๊ฐ€์ •ํ•˜๊ฒŒ ์ƒ์—…์šฉ ํ”„๋กœ์ ํŠธ์—์„œ์˜ ๋ฌด๋ฃŒ ์‚ฌ์šฉ์„ ํฌํ•จํ•˜์—ฌ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
MIT ๋ผ์ด์„ผ์Šค ๊ณ„์•ฝ์„œ

# FullCalendar ํ”„๋ฆฌ๋ฏธ์—„
ํ”„๋ฆฌ๋ฏธ์—„์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ FullCalendar-Schedular ๋ฒˆ๋“ค์€ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด์„ผ์Šค๋Š” ์‚ฌ์šฉ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

[ FullCalendar Licence ]

 

 

 

 

 

 

Usage


 

FullCalendar JS Usage

FullCalendar JS๋Š” ์›”๊ฐ„ 200๋งŒ ์ด์ƒ์˜ NPM ๋‹ค์šด๋กœ๋“œ, ์›”๋ณ„ 7000๋งŒ ์ด์ƒ CDN ๋‹ค์šด๋กœ๋“œ, GitHub 17,000๊ฐœ ์ด์ƒ์˜ ์Šคํƒ€๊ฒŒ์ด์ € ๋“ฑ ๋งŽ์€ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์•„๋งˆ์กด, ์šฐ๋ฒ„, ๋„ทํ”Œ๋ฆญ์Šค, ํŽ˜์ดํŒ”, ์•ผํ›„, ์‹œ์Šค์ฝ”, ๋‚˜์‚ฌ, ์‚ผ์„ฑ ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๋งŒํ•œ ๋Œ€๊ธฐ์—…์—์„œ ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•œ๊ตญ์‚ฌ๋žŒ์ธ์ง€๋ผ ์œ ์ผํ•œ ํ•œ๊ตญ ๊ธฐ์—… ์‚ผ์„ฑ์ด ์ž๋ฆฌํ•˜๊ณ  ์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (์‚ผ์„ฑ์˜ ๋กœ๊ณ ๊ฐ€ ์ผ๋ถ€ ๊ณ ๊ฐ์œผ๋กœ ๋“ค์–ด์žˆ๋Š”๊ฒƒ๋„ ์‹ ๊ธฐํ–ˆ๋Š”๋ฐ, ์—ญ์‹œ ์‚ผ์„ฑ! ๊ธ€๋กœ๋ฒŒ ๊ธฐ์—… ๋‹ต๋„ค์š”.)

 

 

 

 

 

Powerful


FullCalendar JS๋Š” 300๊ฐœ ์ด์ƒ์˜ ์„ค์ •๊ณผ ๋งค ๋ฆด๋ฆฌ์ฆˆ๋งˆ๋‹ค ๋” ๋งŽ์€ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ์–ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆํ˜ธ Documentation
1 Getting Started Introduction, Premium Plugins, Date Library
2 Overall Display Toolbar, Theme, Sizing
3 Views Month, TimeGrid, List, DayGrid, Multi-Month Stack, Multi-Month Grid, Timeline, Vertical Resource, Custom Views, View API
4 Date & Time Date & Time Display, Date Navigation, Date Nav Links, Week Numbers, Date Clicking & Selecting, Now Indicator, Business Hours
5 Events Event Model, Event Sources, Event Display, Event Clicking & Hovering, Event Dragging & Resizing, Event Popover, Background Events
6 Resources Resource Data, Resource Display
7 International Locale, Time Zone
8 Third Party TypeScript, React, Vue, Angular, Web Component
9 Accessibility Accessibility, Touch Support, Optimizing for Print

 

 

 

 

 

LigntWeight


FullCalendar์˜ ๋ชจ๋“ˆํ˜• ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆํ˜ธ Plugin Name Functionality / Views Linence
1 @fullcalendar/core - ํ•ต์‹ฌ class๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.  
2 @fullcalendar/interaction - dateClick, selectable, event drag&drop, resizing
- click, mouseEnter, mouseLeave event์—๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.
 
3 @fullcalendar/daygrid - ์›”๋ณ„ DayGrid ๋ณด๊ธฐ ์ œ๊ณต
- dayGridYear, dayGridMonth, dayGridWeek, dayGridDay, dayGrid
 
4 @fullcalendar/timegrid - TimeGrid ๋ณด๊ธฐ ์ œ๊ณต
- timeGridWeek, timeGridDay, timeGrid
 
5 @fullcalendar/list - ์˜คํผ ๋ชฉ๋ก ๋ณด๊ธฐ ์ œ๊ณต
- listYear, listMonth, listWeek, listDay, list
 
6 @fullcalendar/multimonth - ์—ฌ๋Ÿฌ ๋‹ฌ ๋ณด๊ธฐ ์ œ๊ณต
- multiMonthYear, multiMonth
 
7 @fullcalendar/scrollgrid - ํŠน์ • ๋ณด๊ธฐ์— ๋Œ€ํ•œ ๊ฐ€๋กœ ์Šคํฌ๋กค๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ์ œ๊ณต  
8 @fullcalendar/timeline - ๋ฆฌ์†Œ์Šค ์ง€์› ์—†์ด ํƒ€์ž„๋ผ์ธ ๋ณด๊ธฐ ์ œ๊ณต
- timelineYear, timelineMonth, timelineWeek, timelineDay, timeline
Premium
9 @fullcalendar/adaptive - ํ–ฅ์ƒ๋œ ์ธ์‡„ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- ์ธ์‡„ ์‹œ, ๊นจ์ง€์ง€ ์•Š๋Š” ํ–ฅ์ƒ๋œ UI ์ œ๊ณต
Premium
10 @fullcalendar/resource - ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›์„ ์ œ๊ณต
- ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๊ด€๋ จ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ํ•„์š”
Premium
11 @fullcalendar/resource-daygrid - ๋ฆฌ์†Œ์Šค๊ฐ€ ํ™œ์„ฑํšŒ๋œ DayGrid ๋ณด๊ธฐ ์ œ๊ณต
- resourceDayGridMonth, resourceDayGridWeek, resourceDayGridDay, resourceDayGrid
Premium
12 @fullcalendar/resource-timegrid - ๋ฆฌ์†Œ์Šค ์ง€์› TimeGrid ๋ณด๊ธฐ ์ œ๊ณต
- resourceTimeGridWeek, resourceTimeGridDay, resourceTimeGrid
Premium
13 @fullcalendar/resource-timeline - ๋ฆฌ์†Œ์Šค ์ง€์› TimeGrid ๋ณด๊ธฐ ์ œ๊ณต
- resourceTimelineYear, resourceTimelineMonth, resourceTimelineWeek,  resourceTimelineDay, resourceTimeline
Premium
14 @fullcalendar/bootstrap5 - Bootstarp5 ํ…Œ๋งˆ ์ œ๊ณต  
15 @fullcalendar/bootstrap - Bootstarp4 ํ…Œ๋งˆ ์ œ๊ณต  
16 @fullcalendar/google-calendar - [๊ณต๊ฐœ] Google ์บ˜๋ฆฐ๋” ํ”ผ๋“œ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ  
17 @fullcalendar/icalendar - iCalendar ํ”ผ๋“œ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ  
18 @fullcalendar/rrule - ์ด๋ฒคํŠธ ์žฌ๋ฐœ์„ ์œ„ํ•ด RRule ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉ  
19 @fullcalendar/luxon2 - ๋ช…๋ช…๋œ ์‹œ๊ฐ„๋Œ€ ๊ตฌํ˜„, ํ˜•์‹ ์ง€์ • ๋ฌธ์ž์—ด ๊ตฌํ˜„ ๋ฐ Luxon Date Times๋กœ ๋ณ€ํ™˜ใ„ดํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ œ๊ณต  
20 @fullcalendar/luxon - Luxon v1์„ ์ง€์›  
21 @fullcalendar/moment - Moment ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ˜•์‹ํ™” ๋ฌธ์ž์—ด ๊ตฌํ˜„ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ œ๊ณต  
22 @fullcalendar/moment-timezone - ๋ช…๋ช…๋œ ์‹œ๊ฐ„๋Œ€ ๊ตฌํ˜„์„ ์ œ๊ณต  
23 @fullcalendar/react - React ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณต  
24 @fullcalendar/vue3 - Vue3 ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณต  
25 @fullcalendar/vue - Vue2 ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณต  
26 @fullcalendar/angular - Angular ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณต  

 

 

 

 

 

SuperCharged


FullCalendar JS๋Š” ์ด 3๊ฐ€์ง€์˜ ์ƒํ’ˆ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ƒํ’ˆ์ด ์žˆ๊ณ , 1๋…„๋™์•ˆ ๊ฐœ๋ฐœ์ž 1๋ช…์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๏ผ„480 ํ”„๋ฆฌ๋ฏธ์—„ ์ƒํ’ˆ๊ณผ ๊ธฐ์—… ๋งž์ถคํ˜• ์ƒํ’ˆ์ธ OEM์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ผ์ด์„ผ์Šค ๋ฐ ์ง€์›

  ๊ธฐ์ค€ ํ”„๋ฆฌ๋ฏธ์—„ OEM
๋ผ์ด์„ผ์Šค ์กฐ๊ฑด MIT ๋ผ์ด์„ผ์Šค ์ฃผ์‹ ์ƒ์šฉ ๋ผ์ด์„ผ์Šค ์‚ฌ์šฉ์ž์ •์˜ ๊ฐ€๋Šฅํ•œ ๋ผ์ด์„ ์Šค ์กฐ๊ฑด
๊ฐœ๋ฐœ์ž ์ˆ˜   1-10 ์ œํ•œ ์—†๋Š”
์ด๋ฉ”์ผ ์ง€์›   ๋งค์›” 2์žฅ์˜ ํ‹ฐ์ผ“ ์ œํ•œ ์—†๋Š”
์‘๋‹ต ์‹œ๊ฐ„   48์‹œ๊ฐ„ 24์‹œ๊ฐ„
์†Œ์Šค ์ฝ”๋“œ ํŽธ์ง‘ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹Œ ๊ธฐ๋Šฅ๋งŒ ์ „์ฒด ๊ถŒํ•œ ์ „์ฒด ๊ถŒํ•œ
๋ณต๊ตฌ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹Œ ๊ธฐ๋Šฅ๋งŒ ์ตœ์†Œํ™”๋œ ์žฌ๋ฐฐํฌ ์ „์ฒด ์žฌ๋ฐฐํฌ

 

ํŠน์ง•

  ๊ธฐ์ค€ ํ”„๋ฆฌ๋ฏธ์—„ OEM
์ˆ˜๋ฐฑ ๊ฐ€์ง€ ํ‘œ์ค€ ๊ธฐ๋Šฅ ν ν ν
React/Vue/Angular์šฉ ์ปค๋„ฅํ„ฐ ν ν ν
ํƒ€์ž„๋ผ์ธ ๋ณด๊ธฐ   ν ν
์ˆ˜์ง์  ์ž์› ๋ณด๊ธฐ   ν ν
ํ”„๋ฆฐํ„ฐ ์นœํ™”์ ์ธ ๋ Œ๋”๋ง   ν ν

 

 

 

 

 


FullCalendar JS ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” Documents๋ฅผ ์ „์ฒด์ ์œผ๋กœ ์ •๋…ํ•˜๋ฉด์„œ ์ „๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์ถ”๊ฐ€๋œ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ , FullCalendar JS์— ๋‹ค๋ฅธ JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ถ™์—ฌ์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ๋งŒ๋“ค๊ธฐ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. 

 

FullCalendar JS๋ฅผ ์†Œ๊ฐœํ•˜๋Š” ๋‚ด์šฉ์€, FullCalendar ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋‚ด์šฉ์„ ์ ๊ทน ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋œ ๊ธ€์ž„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์€ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ ๋ฉ”์ธ ๋‚ด์šฉ ๋ฐ Documents ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

@Junesker


๋ฐ˜์‘ํ˜•