๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (221)
Hello creators ๐
[์ค๋ ๋ฐฐ์ด ๊ฒ]๋๋ธ๋ [์ค๋น์์ธ]1. ์ฃผ๋ฐ์ ์ค์ฌ์ด 70%, ์ผ๋ฐ์ 30% -> ๋๋ ์ค๋ฅธ์ชฝ ๋ฐ ์ด๋๊น, 70%. 2. ๋ฐ๋ ํ ๋, ํ๋ฆฌ๋ฅผ ๊ณง๊ฒ ํด๋ ๋๋, ๊ทธ ๋๋์ ์ ์ง. (์ ๊ทธ๋ด๊น?) [๋๋ธ๋ ] 1. ์ค๋ฅธ๋ฐ์ ์ด์ง ๋ผ์๋ค๊ฐ, ์ค๋ฅธ๋ฐ์ ๋ชธ ๊ฐ์ด๋ฐ๋ก ์ค๊ฒ ํ๋ค. -> ๊ทธ๋๋ก ์๋๋ค. 2. ๊ทธ ๋ค์ ์ค๋ฅธ ๋ฌด๋ฆ์ ์ฐ๋๋ค (#โญโญโญโญโญ) 3. ์ผ์ชฝ ๋ค๋ฆฌ๊ฐ ์์ด ์๋๋ผ ๋ด ์์ผ๋ก ์ค๊ฒ ํ๋ค. (์ด๋, ์ ๊ฐ์ด๊ฐ ๋ณด์ด๋ฉด ๋๋ค.) 4. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฆฌ๋ก ์๋๋ฐฉ ์๋ฆฌ๋ฅผ ๋จน์๊ฑฐ์ผ. - ์ด๋, ์์ ์ ์ค๋ฅธ์ชฝ์ ๋ณธ๋ค. - ๊ทธ๋ฆฌ๊ณ , ๋ฐ๋ฑ ๋ฐ์ผ๋ก ๋ฐ์ ๋บ๋ค. - ๋ชธ์ผ๋ก ๋ฐ์ด์ ๋์ด๋จ๋ฆฌ๋๊ฒ ๋จผ์ ๋ค. (๋ฌด๊ฒ ์ค์ฌ์ ์ฃ๋ ๊ฒ) (๋น๊ธฐ๋๊ฒ ๋จผ์ ๊ฐ ์๋๋ค) 5. ์ด๋, ์์, ์๋๋ฐฉ์ ๋น๊ธฐ๋๊ฒ ์๋๋ผ, ๊ฐ๋ก๋ง๋๊ฑฐ. ๋์ด์ง๊ฒ ํ๋ ..
ํ๊ณ ์ ํ๋ ๊ฒํ์ฌ ์ฐ๊ฒฐ๋์ด ์๋ ์๊ฒฉ ์ ์ฅ์ ์ด์ธ์, ์ถ๊ฐ์ ์ธ ์๊ฒฉ ์ ์ฅ์ ์ ์ฐ๊ฒฐํ๊ณ ์ถ๋ค.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) ์ด ์คํ๋จ๋ง๋ค์ด๋๊ณ -> ๋ชจ๋๋ก ๋นผ๋๊น ์ข์ โญโญโญโญโญโญโญโญโญ์ด๊ฑฐ๋ฅผ ์ด์ ํ ์คํธ ํ์ผ์์ ๋นผ์ -> ํ๋ก์ ํธ์ ์ ์ฉํ ..
๐ต ์ข์๋ ๊ฒ. ์ ์ง ํ๋ฉด ์ข์ ๊ฒ (Keep) ์ฐ์ , 3RF ํน๊ฐ์ ์์ ์ข๋ค ๋ด๊ฐ ํ ์ ์๋ ์ฅ์ ์ ์๊ฐ์ ์ฐ๋๊ฑฐ ๊ฐ์์ ๋ด๊ฐ ํ ์ ์๋ ์ฅ์ ์ด๋, ์น์์, ์๊ฐ์ ์ธ ์ํฉํธ๋ฅผ ์ฃผ๋ฉด์, ์ฌ๋๋ค์๊ฒ ํํนํ ๊ฒ์ ๋ง๋ค์ด์ค ์ ์์ด์ ์ข๋ค. useCallback ์ดํดํ ๋ ์ฒ๋ผ, ๋ด๊ฐ ์ดํด ํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ช ํด์ผ ํ๋ค. ์ ๋๊ฒ ๋ค๊ฐ ์๋๋ค. ๋ฌธ์ ์ํฉ์ ์ ์ํ ์ ์์ด์ผ ํ๋ค. โญโญโญโญโญ 3D ๋ก ์ ์ -> ํด๋ฆญ๋ฅ , ์ฆ๊ฐ์จ ๋์์ง์ง ์์๊น? ์ค๊ตญ? 3D ์ท ๊ฐ๊ฒ? โญโญโญโญโญ ๊ทธ๋ฌ๋ฉด, ์ด 3D ๋ชจ๋ธ๋ง์ ์ด๋์์ ์ป์ง? ์ด๊ฑธ ์ป์ ์ ์์ผ๋ฉด ๋ฒ ์คํธ ์๋๊ฐ? ๐ ๋ฌธ์ ๊ฐ ๋ ๊ฒ. ๊ณ ์น๊ณ ์ถ์ ๊ฒ(Problem) ๋ฌธ์ ํด๊ฒฐ๋ ฅ ์ด๋ผ๋ ํ๋ ์ด์ , ๋ถ์คํธ์บ ํ ์ค๋ช ํ๊ฐ ์์๋ค. ๊ทธ๊ณณ์์์, ํค์๋๋ '๋ฌธ์ ํด..
โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (goal) 1. ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๊ฒ flask ์์ ๋ง๋ ๋ฃฐ์ ๋ฐ๋ผ๊ฐ์ผ ํจ โญโญโญ โ ก. flask ํ๋ ์์ํฌ์ rule ์ ๋ฐ๋ผ๊ฐ๋ณด๊ธฐ 1. ํด๋ ๊ตฌ์กฐ ๋ฐ๋ผํ๊ธฐ templates : HTML ํ์ผ์ด ๋ด๊ธฐ๋ ๊ณณ static : CSS, ์ด๋ฏธ์ง ํ์ผ์ด ๋ด๊ธฐ๋ ๊ณณ html ์ด ๋ค์ด๊ฐ๋ ์๋ฆฌ! from flask import Flask app = Flask(__name__) @app.route('/') def home(): return ' ๋๋ ๋ฒํผ์ด๋ค. ' # โ ์ฌ๊ธฐ๊ฐ html ๋ค์ด๊ฐ๋ ์๋ฆฌ, templates ์ค index.html ํ์ผ ์์ฑํด์ ๊ฐ์ ธ์ฌ ๊ฒ. if __name__ == '__main__': app.run('0.0.0..