๋ชฉ๋ก[ํ๋ก ํธ์๋(FE) ๊ฐ๋ฐ] (feat. ์ฃผ๋์ด) (7)
Hello creators ๐
ํ๊ณ ์ ํ๋ ๊ฒํ์ฌ ์ฐ๊ฒฐ๋์ด ์๋ ์๊ฒฉ ์ ์ฅ์ ์ด์ธ์, ์ถ๊ฐ์ ์ธ ์๊ฒฉ ์ ์ฅ์ ์ ์ฐ๊ฒฐํ๊ณ ์ถ๋ค.yona์ ํ๋ก์ ํธ ์ด์๋ฅผ ์ฌ๋ฆด ๋๋ ๊ทธ๋ฌํ๊ณ .์ด๋, ์ง๊ธ๊น์ง ๋๋, ์ฝ๋ ํ์ผ์ ๋ณต์ฌํด์ ์ฌ๋ฆฌ๋ ๊ฑธ๋ก ์๊ฐํ๋๋ฐ, ์๊ฒฉ ์ ์ฅ์ ๋ง ๋ณ๊ฒฝํ๊ณ , ๊ฑฐ๊ธฐ์ ์ฝ๋๋ฅผ ์ด์ค ์ ์๋ค.๊ณผ์ ํ์ฌ ์๊ฒฉ ์ ์ฅ์ ์ฐ๊ฒฐ๋ ์ํฉnextinnovation@DESKTOP-LHQ5S8E MINGW64 ~/Desktop/NextInnonavtion/projects/1004_diary_3/1004ilg-web-1 (develop-1)$ git remote -vorigin http://192.168.0.80/nextinnovation-dev/1004ilg-web.git (fetch) origin http://192.168.0.80/n..
ํํ ๋ฐ์ํ๋ ์ค๋ฅconst DeliveryForm = () => {const [values, setValues] = useState({ customerName : "James", mobile : "010-123-1237"})return ( Customer Name )}์ด๋ ๊ฒ ์์ฑํ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ ์๋ฌ ๋ฐ์You provided a 'value' prop to a form field without an 'onChange' handler. This will render a read-only field. If the field should be mutable use 'defaultValue'. Otherwise, set either 'onChange'..
RHF ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋, ๊ธฐ๋ณธ ์ง์์ผ๋ก ์๋ฉด, ๋์์ด ๋๋ ๊ฒ๋ค๋ฐ๋์ 'C:\Users\nextinnovation\Desktop\DJ-DEV\dev_notes\Hard skills\React Hook Form\3_์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ(์ฐํ ์ฝ).md' ๋ฅผ ๊ณต๋ถํ๊ณ ์ฌ ๊ฒ๋น์ ์ด ์ปดํฌ๋ํธ๊ฐ ๋ฌด์ ์ธ์งreact hook form ์ด ๋น์ ์ด ์ปดํฌ๋ํธ์ ๋จ์ ์ ์ด๋ป๊ฒ subscribe ๊ธฐ๋ฅ์ ํตํด ๊ทน๋ณตํ๋์ง์ ๋ํ ๋งฅ๋ฝ์ ์๊ณ ์์ด์ผ ํจ๋ณต์ต ์์ (241120 ์์ฑ)1. input, select, textarea ๋ก HTML ์ ์์ฑํ๋ค. ๋ฒํผ์ ํด๋ฆญํ์ ๋, submit ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋๋ฐ, ๊ทธ์ ๋ฐ๋ผ ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ input, select, textarea ์ ๊ฐ์ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์ดํด..
์ข์๋ ์ K ์ฌ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋๋ฉด, ์ค๋ก๋ผ ์คํจ์์ web component, template, slot, handlebarsJS ๋ผ๋ ๊ฐ๋ ์ ๋ํด ๋ฐฐ์ธ ์ ์๋ ๊ธฐํ๊ฐ ๋ ๊ฒ ์ด๋ผ๋ ์ ์์ ์ฝ๋๋ฅผ ํตํด์ ๋๋ '์ค๋ก๋ผ ์คํจ react' ์์๋, ๋ฐฐ์ฐ๊ณ ์ถ์ ์ฝ๋๋ค์ด ๋ง์ด ๋ น์์์๋ค.์ด๋ป๊ฒ ๋ฐ๋ก ์ฌ๊ธฐ๋ก ๋๋ฒ๊น ํ๋ฌ ์จ๊ฑฐ์งstorybook ์์, currentTab ์ ๊ฐ์ ๋ฃ์ผ๋ฉด -> ์์ ์ฒ๋ผ ๋ณํด storybook ์์, tabs ์ ๋ํ ์ค๋ช ์ ๋ฃ์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ์ง?'storybook ์์, currentTab ์ ๊ฐ์ ๋ฃ์ผ๋ฉด -> ์์ ์ฒ๋ผ ๋ณํด' ๋ผ๋ ๊ธ์ ๋ฃ์ด์ฃผ๊ณ ์ถ์๋ฐ [์ฃผ์์ฌํญ] 1. build ๋ช ๋ น์ด๋ง ์ ํจํจ! (#โญโญโญโญโญ)https://youtu.be/4zeusLdLizs?..
TODO์ธ์ ์ธ๊ณ ์ค๋น๋น๋ ํฐ์ง๋๊ฑฐ ์์ SecureRoute ์ ๋ํด์ ๊ณต๋ถ์ฑํ ๋ฐฉ ์์ฑํ๊ฒ ํ๊ธฐ โญโญโญโญโญํฌ๋กค๋ง ๋ด์ด ๋ต๋ณํ๊ฒ ํ๊ธฐ โญโญโญโญโญDO์ธ์ ์ธ๊ณ ์ค๋น_test\์ธ์์ธ๊ณ ๋ฏธํ ๊ด๋ จ\240814-์ธ์์ธ๊ณ์ค๋น.mdSecureRoute ์ด๊ฑธ๋ก ํ ํฐ ์ฌ๋ถ ํ๋จํด์ ๋ฆฌ๋๋ ์ โญโญโญโญโญimport { ComponentProps, createElement, FC } from "react";import { Redirect, Route } from "react-router-dom";import { getAccessToken } from "@/src/lib/jwt";const SecureRoute: FC> = ({ component = "div", ...rest }) => { return ( { ..
์๋๋ฒ๋ ์ฑํ [240814] ์ฑํ ๋ฐฉ ์์ฑ ๊ด๋ จ[๐๐]์ฒ์์ /chat ์ผ๋ก ๋ค์ด๊ฐ์ ๋ ๋ํํ๋ฉด์ด ๋ณด์ด์ง ์๋ค๊ฐ, ๋ฐฉ ์์ฑ ํ ๋ณด์์๋ก๊ณ ์นจ์ ํด๋, ๋น ํ๋ฉด์ด ๋์ด [๐ต๐ต]์๋ก ์์ฑํ ๋ฐฉ์ gpt ๋ฅผ ์ด๋ํ๋ ค๋ฉด?์ด๋ ๊ฒ invite ๋ฅผ ๋๋ฌ์ ์ด๋ํ๋ ๋ฐฉ๋ฒ๋น์ทํ๊ฒ, ์ฑํ ๋ฐฉ ์์ฑ์ gpt ๋ฅผ ์ด๋ [โโ] ๊ทธ๋ฐ๋ฐ, gpt ๊ฐ ์ด๋ป๊ฒ ์ฌ๊ธฐ์ ์ด๋ ๋ ๊ฑฐ์ง? gpt ๊ณ์ ์ ์ด๋์ ์ ๋ ฅํด์ค์ผ ํ๋๊ฑฐ์ง?[240815] URL - ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ - ํ์ด์ง ํ์ ์ฐ์ , ์ฑ ๋ฉ๋ด ๊ตฌ์กฐ๋ ๊ธฐ์ฌํ๊ธฐ'https://docs.google.com/spreadsheets/d/10TIAwV6-1nm8wPSyMDjnKH_DFAQ759zD/edit?usp=sharing&ouid=107144623538128050099&rtpof=..
done ํ task ๊ธฐ๋ก[240813] ์บ๋ฆฐ๋ ๊ฐ์ ธ์ค๋ ๊ตฌ์กฐ 1. ์ฌ์ฉ์๊ฐ ์ ์ฅํ๋ฉด -> DB ๋ฅผ ๊ฑฐ์ณค๋ค๊ฐ -> ๊ทธ๋ ค์ง๊ฒ ํ ๊ฒ ์ธ๊ฐ 2. ๊ตฌ๊ธ ์บ๋ฆฐ๋์ ์ ์ฅ๋ ๊ฒ์ ๊ฐ์ ธ์์ -> ๊ทธ๋ ค์ง๊ฒ ํ ๊ฒ ์ธ๊ฐ ์ด ์ค 2๊ฐ์ง๋ฅผ ๋ค ํ๋ค.์ฌ์ค, full calendar ์์ฒด์ 'ํด์ผ' ์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด, ๊ตณ์ด google api ์ฐ๋์ ์ ํด๋ ๋๋ค.[240813-1340] ๋๋ฏธdate ์ event ์๊ธฐ๊ฒ ํ๊ธฐ์ฐธ๊ณ https://bit.ly/3YGzr81views\fullcalendar.ejsํฌ์ธํธ```bash์ผ์ ์์ฑ ๋ฒํผ ํด๋ฆญ -> addEvent(calendarRef) ์ด ์คํ๋จ๋ง๋ค์ด๋๊ณ -> ๋ชจ๋๋ก ๋นผ๋๊น ์ข์ โญโญโญโญโญโญโญโญโญ์ด๊ฑฐ๋ฅผ ์ด์ ํ ์คํธ ํ์ผ์์ ๋นผ์ -> ํ๋ก์ ํธ์ ์ ์ฉํ ..