๐ป Programming/JS, TS
์ ์ญ window & document ๊ฐ์ฒด Built-in Variables & Functions ์ ์ญ ๋ณ์๋ก ์ฝ๋ ๋ด์์ ํญ์ ์ฌ์ฉํ ์ ์๋ ๋ณ์ window ๊ฐ์ฒด ์ ์ญ ๊ฐ์ฒด window ์ ์ญ ๊ฐ์ฒด๋ ์น ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์ ์ญ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ํ๋ธ๋ค. ๋ชจ๋ ์ ์ญ ๋ณ์์ ํจ์๋ ์ค์ ๋ก ์ด window ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ์กด์ฌํ๋ค. window ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ฉ์๋. ํจ์ ๊ธฐํธ f๊ฐ ํ์๋ ๊ฒ์ด ๋ฉ์๋์ด๊ณ ๊ทธ๋ ์ง ์์ ๊ฒ์ ํ๋กํผํฐ์ด๋ค. window ๊ฐ์ฒด์ ๋ด์ฅ๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ค์ window. ์์ด๋ ์ก์ธ์คํ ์ ์๋ค. alert ๋ฉ์๋์ ๊ฒฝ์ฐ window.alert()๋ก๋ ์ฌ์ฉํ ์ ์์ง๋ง ๊ทธ๋ฅ alert()์ผ๋ก๋ ์คํํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ง์ด๋ค. ์๋์ฐ์ ๋ธ๋ผ์ฐ์ ํญ ์๋์ฐ๋ ์น ๋ธ๋ผ์ฐ..
๐ป Programming/HTML, CSS
1. ๋ณํ Transformations ์์์ ๋ชจ์์ ์ด๋ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ (ex. hover) ๋ณํ์ transform ์์ฑ์ ์ฌ์ฉํ๋๋ฐ ์ด ์์ฑ์ ๋ณํํ๋ ค๋ ์์์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ, ๋ณํ์ ๋ฐ์์ํค๋ ์์์ ์ถ๊ฐํ๋ค. ์๋ ์์๋ฅผ ํตํด ๋ค์ ์ดํด๋ณด์. .card-container { background-color: rgb(255, 255, 255); width: 350px; margin: 50px auto; box-shadow: 3px 3px 10px rgb(201, 200, 200); } .card-container:hover { transform: scale(1.05); } ๋ณํํ๋ ค๋ ์์๋ .card-container์ด์ง๋ง ์ฌ๊ธฐ์ transform ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๊ณ , .card..
๐ป Programming/HTML, CSS
1. html ํ๋ css ๊ท์น์ html์ ์ ์ฉ๋๊ณ html ์์ ํฌํจ๋ ์์๋ค์๋ ์์๋๋ค. ์๋์ css ๋ณ์ ์์ ์์ ์ฌ์ฉํ๋ ๋
ผ๋ฆฌ html { --color-grey-100: rgb(236, 236, 236); --color-grey-400: rgb(134, 134, 134); --color-grey-600: rgb(58, 58, 58); --color-grey-900: rgb(41, 41, 41); --color-primary-300: rgb(167, 226, 255); --color-primary-700: rgb(0, 170, 255); --size-1: 18px; --size-5: 50px; background-color: var(--color-grey-100); } 2. :root ๊ฐ์ ..
๐ป Programming/HTML, CSS
1. ํฐํธ ํฌ๊ธฐ์์์ em, rem, % 1) px ์ฅ์ : Easy to understand & translateable ๋จ์ : Limited user focus & not scalable 2) em vs. rem (1) em (element) Size is relative to font-size ๋ค๋ฅธ ์์์ ํฐํธ ํฌ๊ธฐ์ ์ฐ๊ด๋ ํฌ๊ธฐ - ํฐํธ ํฌ๊ธฐ๋ ๋ถ๋ชจ ์์์ ํฌ๊ธฐ์ ๋ฌ๋ ค์๋ค. ๋จ์ %์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ชจ ์์์์ ์์๋ฐ๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฌ์ด์ฆ๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค. (2) rem (root em) Size is relative to root element’s font size ํ์ฌ ์์์ ํฐํธ ํฌ๊ธฐ์ ์ต์์ ์์์ ํฐํธ ํฌ๊ธฐ์ ์ฐ๊ฒฐ๋์ด ์๋ค. HTML์์ ์ต์์ ์์: ์ต์์ ์์์ ํฐํธ ํฌ๊ธฐ..
๐ป Programming/๊ธฐํ
VS Code์์ ์ฝ๋ ์์ฑํ ๋ ๋๋ ์ฃผ๋ก ํฐ ๋ฐ์ดํ(Double quote)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํธํ๋๋ฐ, ์๊พธ ์๋์ผ๋ก ์์ ๋ฐ์ดํ(Single quote)๊ฐ ์ฌ์ฉ๋์ด์ ์ค์ ์ ์ฐพ์๋ณด๋ ์ค์ ๋ฐ๊ฒฌํ๋ค. ๋์ค์ ํ ์ปจ๋ฒค์
์ด ์์ ๋ฐ์ดํ์ธ ๊ฒฝ์ฐ๋ ์์ ์ ์๊ธฐ ๋๋ฌธ์, ์ํฉ์ ๋ง๊ฒ ์ค์ ์ ๋ณ๊ฒฝํ ๋ ์ ์ฉํ ๊ฒ ๊ฐ์ ๋ธ๋ก๊ทธ์ ๋จ๊ธฐ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค. ๋จผ์ code - ๊ธฐ๋ณธ ์ค์ - Settings ๋๋ ๋จ์ถํค Command + , ๋ฅผ ๋๋ฌ์ Settings์ ๋ค์ด๊ฐ๋ค. ์ฌ๊ธฐ์ ๋ค์ ๋ค ๊ฐ์ง๋ฅผ ์ํฉ์ ๋ง๊ฒ ์ค์ ํด์ค๋ค. 1. ๊ธฐ๋ณธ ์ค์ ์ ํฐ ๋ฐ์ดํ(Double quote)๋ก ์ค์ ์ JavaScript > Preferences: Quote Style โก๏ธ double TypeScript > Pre..
๐ป Programming/๊ธฐํ
์์ฆ ํ๋ก์ ํธ ํค์ผ๋ฉ๋ฆฌ๋ผ๋ ์ฑ
์ ์ฌ๋ฐ๊ฒ ์ฝ๋ ์ค์ธ๋ฐ, ์ฃผ์ธ๊ณต์ด ์ฐ์ฃผ์ ์์ ํฐ์น์คํฌ๋ฆฐ ์ปดํจํฐ(์๋ง ํ๋ธ๋ฆฟPC๊ฐ ์๋๊น ํ๋ค.)๋ฅผ ๋ฐ๊ฒฌํ๋ ์ฅ๋ฉด์์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ๋์จ๋ค. "'์ํ ๋์๊ด'์ด๋ผ๋ ์ด๋ฆ์ด ๋ถ์ ํด๋๊ฐ ํ๋ ์๋๋ฐ, ๊ฑฐ๊ธฐ์๋ ๋ฏธ๊ตญ์์ ์ ์๊ถ์ ์ธ์ ๋ฐ์ ๋ชจ๋ ์ ์ ์นดํ๋ก๊ทธ๊ฐ ํต์งธ๋ก ๋ค์ด ์๋ ๋ฏ ํ๋ค. ...(์ค๋ต)... SSD๋ ๋ฌด๊ฒ๊ฐ ๊ฐ๋ฒผ์ฐ๋, ์ ๋ณด๋ฅผ ์ค์ ๋ ๊ตณ์ด ์ธ์ํด์ง ํ์๋ ์๋ค๊ณ ์๊ฐํ ๋ชจ์์ด๋ค. ์๋, ์๋ฃ๋ฅผ ๊ทธ๋ฅ ๋กฌ(ROM)์ ๊ตฌ์๋ฒ๋ฆฐ๊ฑธ ์๋ ์๋ค." ์ด ๋ถ๋ถ์ ์ฝ์ผ๋ฉด์ SSD์ ROM์ด ๋ญ์๋๋ผ? SSD๋ ๋น๊ต์ ์ต์ํ์ง๋ง ROM์ ๋ค์ด๋ง ๋ดค์ง ๋ฌด์์ด์๋์ง ์ ํํ ๊ธฐ์ต์ด ๋์ง ์์์ ์ฐพ์๋ณด์๋ค. 1. ROM ROM์ Read-Only Memory์ ์ฝ์๋ก ์ฝ๊ธฐ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ฅผ..
โ๏ธ What I Learned/TIL
๐ก TIL 20231029 - Recoil Selector Selector๋? Derived state ์
๋ ฅ๋ฐ์ state๋ฅผ ๋ณํํด ๋ฐํํ๋ ์์ํจ์๋ฅผ ๊ฑฐ์ณ ๋ฐํ๋ ๊ฐ Selector๋ ํ์๋ state(derived state)์ ์ผ๋ถ๋ฅผ ๋ํ๋ธ๋ค. ์ฆ, ๊ธฐ์กด state๋ฅผ ๊ฐ์ ธ์์, ๊ธฐ์กด state๋ฅผ ์ด์ฉํด ์๋ก์ด state๋ฅผ ๋ง๋ค์ด์ ๋ฐํํ ์ ์๋ค. ๊ธฐ์กด state๋ฅผ ์ด์ฉ๋งํ ๋ฟ ๋ณํ์ํค์ง ์๋๋ค. derived state๋ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์์กดํ๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ฅํ ๊ฐ๋
์ด๋ค. atom์ output์ ๋ณํ์์ผ ์ฃผ๋ ๊ฐ๋
To Do ๋ชฉ๋ก๋ค์ ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก ๋ถ๋ฅํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? ์ปดํฌ๋ํธ ์์ฒด์์ ์ ์ฒด To Dos ๋ฐฐ์ด์ ๋ถ๋ฌ์จ ๋ค ๋ถ๋ฅํ ์๋ ์์ง๋ง, ์ด๊ฒ์ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๋ฐ..
โ๏ธ What I Learned/TIL
๐ก TIL 20231019 - React-hook-form ๋ณต์ต - register, validate, errors, handleSubmit React-hook-form import useForm ์ปดํฌ๋ํธ์์ useForm์ ํธ์ถํ๋ฉด register์ handleSubmit์ ์ฌ์ฉํ ์ ์๋ค. form ๋ด์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ์ํ input๋ค์ register ํจ์๋ฅผ ํธ์ถํ๋ค. required, minLength/maxLength, pattern, validate ๋ฑ ๐ญ Register ํจ์ ; useForm hook์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์์ ๊ฒ์ฌ๊ฐ ํ์ํ input์์ register ํจ์๋ฅผ ํธ์ถ react-hook-form์ด ์ ์ ์๋๋ก input์ ์ด๋ฆ์ ๋ถ์ฌํด์ผ ํจ {...register("email..
โ๏ธ What I Learned/TIL
๐ก TIL 20230914 - ๋น๋๊ธฐ ํจ์๋ก๋ถํฐ ๋ฐ์์ค๋ data์ ์ ๋ค๋ฆญ ์ฌ์ฉํ๊ธฐ ๋น๋๊ธฐ ํจ์๋ก๋ถํฐ ๋ฐ์์ค๋ data์ ํ์
์๋ฌ ๋ฐ์ useMutation.tsx์์ useMutation ํ
์ ํตํด ๋ฐ์์ค๋ ๋ฐ์ดํฐ์ ํ์์ ์๋์ ๊ฐ์ด ์ง์ ํด๋์๋ค. // src/hooks/useMutation.tsx interface UseMutationState { loading: boolean; data?: object; error?: object; } // src/components/Auth/Auth.tsx // ์๋ต return ( // ... ์ค๊ฐ ์๋ต {data?.ok ? null : ( {method === "email" ? ( ๊ทธ๋ฌ๋๋ ์์ data?.ok ๋ถ๋ถ์์ 'Property 'ok' does ..
โ๏ธ What I Learned/TIL
๐ก TIL 20230912 - HTTP ์ํ ์ฝ๋ ์์ฃผ ์ฐ๋ HTTP ์ํ ์ฝ๋ โ
200 OK ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ๋์์ต๋๋ค. (์ฑ๊ณต) ๐ 400 Bad Request ์ด ์๋ต์ ์๋ชป๋ ๋ฌธ๋ฒ์ผ๋ก ์ธํ์ฌ ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ ์ ์์์ ์๋ฏธํฉ๋๋ค. (ํด๋ผ์ด์ธํธ์์ Requestํ ๋ ๋ฐ์ํ ๋ฌธ์ ) ๐ 401 Unauthorized ์์ฒญ๋ ๋ฆฌ์์ค์ ๋ํ ์ ํจํ ์ธ์ฆ ์๊ฒฉ ์ฆ๋ช
์ด ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์๋ฃ๋์ง ์์์์ ๋ํ๋
๋๋ค. โ๏ธ 403 Forbidden ํด๋ผ์ด์ธํธ๋ ์ฝํ
์ธ ์ ์ ๊ทผํ ๊ถ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. 401๊ณผ ๋ค๋ฅธ ์ ์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฌ์ธ์ง ์๊ณ ์์ต๋๋ค. ๐ซ 405 Method Not Allowed ์์ฒญํ ๋ฉ์๋๋ ์๋ฒ์์ ์๊ณ ์์ง๋ง, ์ ๊ฑฐ๋์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. (ํ..