React, Typescript, Redux-toolkit, Tailwind μ νμ©ν κ΅¬κΈ μ£Όλ³ μΊλ¦°λ ν΄λ‘ μ½λ©μ
λλ€.
μ΄λ²€νΈλ±λ‘ | λ±λ‘λ μ΄λ²€νΈ | λ°μν |
---|---|---|
![]() |
![]() |
![]() |
1. git clone https://github.com/dbwjd5864/google-calender.git
2. npm install
3. npm run start
-
Typescript
- Typescript λ λμ νμ μ μ§μνλ Javascript μλ λ€λ₯΄κ² μ μ νμ μ μ§μνλ―λ‘ μ»΄νμΌ λ¨κ³μμ μ€λ₯λ₯Ό ν¬μ°©ν μ μμ΅λλ€.
- μ΄λ 곧 κ°λ° λμ€ λ°μν μ μλ μ€μλ₯Ό μ€μ¬μ€λΏλ§ μλλΌ, μ κ° μλ μ 3μκ° μ½λλ₯Ό μ²μλ΄€μ λλ ν΄λΉ μ½λκ° λ¬΄μ¨ λμμ νκ³ μ΄λ€ μ΄μ μμ μ¬μ©νλμ§λ₯Ό μκΈ°μ λ μ©μ΄ν κ²μ΄λΌλ μκ°μ΄ λ€μ΄ Typescript λ₯Ό μ¬μ©νμ΅λλ€.
-
Redux-toolkit
- Reduxκ° κ°μ§ μ μ μνλ₯Ό ν΅ν΄ props drillingμ νΌν μ μκ³ μ¬λ¬ μ₯μ μ΄ μ‘΄μ¬νμ§λ§, κΈ°μ‘΄μ Reduxλ₯Ό μ¬μ©νλ©΄ μ μ₯μλ₯Ό ꡬμ±νλ 볡μ‘λκ° ν¬κ³ 보μΌλ¬νλ μ΄νΈ μ½λλμ΄ λ무 λ§λ€λΌλ λ¨μ μ΄ μμ΅λλ€.
- Redux-toolkitμ createSlice λ₯Ό ν΅ν΄ Action κ³Ό Reducerλ₯Ό νλ²μ μ μν μ μμ λΏλ§ μλλΌ, λ΄λΆμ μΌλ‘ immer λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκΈ° λλ¬Έμ λΆλ³μ± λ³΄μ‘΄μ΄ μ¬μ΄μ§κΈ°μ redux-toolkitμ μ¬μ©νμ΅λλ€.
-
Tailwind
- μ²μ μ¬μ©ν΄λ³Έ κΈ°μ λ‘ Tailwindκ° κ°μ§ utility-first νΉμ±κ³Ό μ₯λ¨μ μ΄ μ‘΄μ¬νλ€λ κ²μ μ μ μμμ΅λλ€.
- μ€νμΌ μνΈλ₯Ό μ€κ°λ 컨ν μ€νΈ μ€μμΉκ³Ό μ»΄ν¬λνΈλ³λ‘ μμ±ν΄μΌνλ μ€νμΌ μνΈλ€, μ€νμΌμ λ§κ² μκ° ν΄λ΄μΌνλ ν΄λμ€λ€μμ κ³ λ―Όνμ§ μμλ λμ΄ μκ°μ λ§μ΄ μ μ½ν μ μμμ΅λλ€.
-
ESLint
- νλ‘μ νΈ μ λ°μ κ±Έμ³ μΌκ΄λ μ½λ μ€νμΌμ μ μ§νκ³ μ μ¬μ μΈ μ€λ₯μ λ²κ·Έλ₯Ό μ κ±°νκ³ μ ESlintλ₯Ό μ μ©νμμ΅λλ€.
Google-Calendar
ββ public
β ββ index.html
β ββ ...
ββ src
β ββ assets - κ΅¬κΈ λ¬λ ₯ λ‘κ³ μ΄λ―Έμ§, λ²νΌ μ΄λ―Έ
β β ββ images
β ββ components
β β ββ Calendar - λ¬λ ₯ νμ΄μ§λ₯Ό ꡬμ±νλ μ»΄ν¬λνΈλ€
β β β ββ EventModal - μ΄λ²€νΈ μΆκ° λͺ¨λ¬
β β β ββ Header - μΊλ¦°λ νμ΄μ§ ν€λ
β β β ββ Sidebar - μΊλ¦°λ νμ΄μ§ μ’μΈ‘ μ¬μ΄λλ° (μ΄λ²€νΈ μΆκ° λ²νΌ, datepicker λ±)
β β β ββ WeeklyCalendar - μΊλ¦°λ νμ΄μ§ μ°μΈ‘ μν΄λ¦¬ μΊλ¦°λ
β β ββ Common - κ³΅ν΅ μ»΄ν¬λνΈ
β β ββ constants - μμκ°
β ββ hooks - 컀μ€ν
hook
β β ββ useStore.ts
β ββ pages - νμ΄μ§ λ¨μ μ»΄ν¬λνΈ
β β ββ Calendar
β ββ store - redux μ€ν μ΄
β β ββ modules
β β β ββ dates.ts - λμ€νλ μ΄ λλ λ¬λ ₯, μ νλ λ μ§λ± λ μ§μ€ κ΄λ ¨λ μ 보
β β β ββ events.ts - μΊλ¦°λ μμ 보μ¬μ§λ μ΄λ²€νΈ κ΄λ ¨λ μ 보 (μ΄λ²€νΈ μΆκ°, μμ λ±)
β β β ββ modal.ts - μ΄λ²€νΈ μΆκ° λͺ¨λ¬ κ΄λ ¨ κ΄λ ¨λ μ 보
β β ββ configureStore.ts
β ββ types - κ³΅ν΅ νμ
β β ββ events.ts - μ΄λ²€νΈμ κ΄λ ¨νμ¬ λ°λ³΅μ μΌλ‘ μ¬μ©λλ νμ
β β ββ react-app-env.d.ts
β ββ utils - μ νΈ ν¨μ
β β β ββ createTimeOptions.ts - minutes propsλ₯Ό νμ©νμ¬ selectμ λ£κ³ μ νλ optionsκ° μμ±
β β β ββ getHours.ts - μ€μ 12μλΆν° μ€ν 12μκΉμ§ 24μκ° λ¦¬μ€νΈ μμ±
β β β ββ getMonthly.ts - μ νλ λ¬μ λ μμ±
β β β ββ getStringDateFormat.ts - formatter propsλ₯Ό νμ©νμ¬ dateλ₯Ό μνλ string ν¬λ§·μΌλ‘ λ³κ²½
β β β ββ getThisWeek.ts - μ νλ λ μ§κ° μν μ£Ό(μΌ ~ ν ) μμ±
β ββ App.tsx
β ββ index.css
β ββ index.tsx
ββ .eslintrc.js
ββ .gitignore
ββ .prettierrc
ββ package.json
ββ package-lock.json
ββ postcss.config.js
ββ README.md
ββ tailwind.config.js
ββ tsconfig.json