์์ ๋ฐ์ดํฐ๋ฅผ firestore์์ ๋ฐ์์๋ค. ์์ state์ ์ ์ฅ์ ํด์ผํ๋ค. ์ด๊น์์ด ์๊ธฐ๋ ์๋ฌ useState์ ๋ฌด์จ ํ์
์ธ์ง ์ฃผ์ง ์๊ณ ๋ฐฐ์ด์ด๋ผ๋ ๊ฒ๋ง ์๋ ค์คฌ์ผ๋ ์์ ๊ฐ์ ์๋ฌ๊ฐ ์๊ธด๋ค. ์ด ์น๊ตฌ๋ค๋ never ํ์
์ด ์๋๋ผ๋ฉด์ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ฟ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋๋ค ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค. ํ๋๋ฅผ ํด๊ฒฐํ๋คํด๋ ํ๋๋ง ํด๊ฒฐ๋๊ณ ๋๋จธ์ง๋ ํด๊ฒฐ๋์ง ์์๋ค. ์๊ฐ์ด ํด์ค๋ค๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก title,spentTime,progress๊ฐ {id:string}์ด ์๋๋ผ๊ณ ํ๋๋ฐ ์ด ๋ถ๋ถ์ ์ ์ด๋ ๊ฒ ๊ฒฝ๊ณ ๊ฐ ๋์ค๋์ง ์ดํด๊ฐ ์๋๋ค. ํด๊ฒฐ๋๋ค๋ฉด ๋ค์ ํฌ์คํ
ํด์ผ๊ฒ ๋ค.
Modal ๋ง๋ค๊ธฐ - ํ๋ก์ ํธ๊ฐ ์ปค์ง์๋ก ์ ์ง๋ณด์ ์ธก๋ฉด์ด๋ ๋น๋์๊ฐ ๊ฐ์ ์ธก๋ฉด์์ ๊ณตํต์ธ ์ปดํฌ๋ํธ๋ก ๋บด๋๊ฒ ์ข๋ค. ๋ํ ํ์
ํ ๋๋ ๋ ์ข๋ค. React Query - ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ๋์ค ๋ฆฌ์ฝ์ผ์์ ์ ์ฅํ๋ฉด ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ ๋ ์
๋ฐ์ดํธ ๋์ง ์๋ ๋ค๋ ๋จ์ ์ด ์๋๋ฐ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ๋ ์ฃผ๊ธฐ์ ์ผ๋ก request๋ฅผ ๋ณด๋ธ๋ค. ์คํ์์ค ์ปจํธ๋ฆฌ๋ทฐ์
MDN ๊ด๋ จํ ์ค๋ช
์ ๋ค์๋ค. ํํ๋ก์ ํธ์ ๊ดํด ์ฐพ์๋ดค๋ค ํ๋ก ํธ์๋์ ๊ฒฝ์ฐ ํ
์คํธ๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค๊ณ ํ๋ค. ์ข์ ์์ค์ฝ๋๋ฅผ ๋ง์ด ๋ณด๋ ๊ฒ์ด ์ค์. ๊ฐ์ด ํ ์ ์๋ ์ฌ๋. ๋ฉํ ๋๊ป์ ๊ณต๋ถํ์
จ๋ ๊ฒฝํ -- ๊ณต์๋ฌธ์ ํต์คํํธ -> ํ๋ก์ ํธ ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณต๋ถํ๋ค๋ณด๋ฉด ์ด๋์ ๋ ๋น์ท๋น์ท ๋ฆฌ์กํธ ์ฟผ๋ฆฌ ์ ์๊ฒผ๋๊ฐ ๋ค๋ฅธ ๊ฑด ๋ญ๊ฐ ์๋๊ฐ ์ด๊ฑด ์ธ๋งํ๊ฐ ๋ผ์ด๋ธ๋ฌ..
enum Alphabet{ A, B, C, D, } console.log(Alphabet.A) // 0 console.log(Alphabet.B) // 1 console.log(Alphabet.C) // 2 console.log(Alphabet.D) // 3 ์ด๊ฒ ๋์ด๋ค ใ
ํ์
์คํฌ๋ฆฝํธ ๊ธฐ๋ณธํ ์ข
๋ฅ ํ์
๋ฌธ์์ด string ์ซ์ํ number ๋ถ๋ฆฐํ boolean undefined undefined null null ๋ฐฐ์ด๊ณผ ํํ const cart: string[] = []; cart.push('c001'); cart.push('c002'); // ๋ฐฐ์ด์ ๋ฐฐ์ด const carts: string[][] = [ ['c001', 'c002'], ['c003'], ]; // ํํ let mySize: [number, number, string] = [175, 30, 'L']; ๊ฐ์ฒด ํ์
let product: { id: string; name: string; price: number; membersOnly?: boolean; // ํ์๊ฐ ์๋ ํ๋กํผํฐ sizes: string[]..
์ปดํฌ๋ํธ๋ก ๋๋ ๋ ์ปดํฌ๋ํธ์ ์คํ์ผ๋ง์ ์ ์ฉํด์ผ ํ ๋ ์ปดํฌ๋ํธ ์์ staticํ๊ฒ ์คํ์ผ์ ์ถ๊ฐํ๊ธฐ ๋ณด๋ค๋ ์ ๊ฐ์ ๋ฐฉ์์ ์ด์ฉํ๋ ๊ฒ์ ์๊ฐ์ ํ๋ค. ํ์
์์๋ ์ด๋ฐ ๋ฐฉ์์ ์ฐ๋? ์ด๋ค ๋ฐฉ๋ฒ์ ์ธ๊น? [๊ธ์์ ] ์ฝ๋๋ฅผ ํผ๋๋ฐฑ์ ๋ฐ์๋ค. ์ด ์ฝ๋๋ ์ ์๊ฐํ๊ณ ๋ง๋ ์ฝ๋๋ผ๊ณ ํ์
จ๋ค. ์๋ฌด๋๋ ์ปดํฌ๋ํธ ์์ฒด๋ staticํ ์คํ์ผ์ด ํฌํจ๋์ด ์๋ค๋ฉด ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
1์ฐจ ์์
ํ๊ณ 2์ฃผ์ฐจ ๋ฉํ ๋ง์ ๋ฐ์ํ์ฌ ์์๊ฐ์ด ๋ฉ์ธํ์ด์ง๋ฅผ ์ดํ๋ง์ ์์ฑํ ์ ์์๋ค. ์ด์ ๊ณผ ๋ค๋ฅด๊ฒ ํจ์ฌ ์ฝ๋๊ฐ ๊น๋ํด์ก๋ค. ์ญ์ TopDown ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ ์ฝ๋์ ๊ตฌ์ฑ์ด ๋ ์๋ฒฝํด์ง๊ณ ์๋ฒฝํด์ง๋ ์ฝ๋ฉํ๋ ๊ฒ๋ ์ฌ๋ฐ๋ค. ์ด์ ์ bottom up ๋ฐฉ์์ผ๋ก ํ์ ๋๋ ์ฝ๋๊ฐ ๋๋ฌด ์๋ง์ด๊ณ ๋ค์ด๋ฐ๋ ์๋ฌด๋ฐ ๊ท์น์์ด ๋์กํ์๋ค... (๋ฐ์ฑ) recoil์ ์ฐ๋ฉฐ.. recoil์ ์ฌ์ฉํ๋ค. ์๋ํ๋ฉด ๋๋ ์ฒ์๋ถํฐ ๊ฐ๋ฐํ ๋ ์ปดํฌ๋ํธ๋ฅผ ๋๋ ๋์๋ค. ์๋ก ๋ถ๋ชจ ์์ ๊ด๊ณ๋ ์๋ ์ปดํฌ๋ํธ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ๋ ์ผ์ด ์๊ฒผ๋ค. ์ข ๋ ์์ธํ๊ฒ ๋งํ์๋ฉด ์๋๋ฅผ ํด๋ฆญํ ๋ ๋ฌ์ฑ ๊ณผ์ ์ ์ ์ผ์ด ๋ฐ๋์ด์ผ ํ๋ค. ์ด ํ
์คํธ๋ index.tsx์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ๊ธฐ์กด์ react ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ธฐ๋ ์ด๋ ต๋ค. ๋ฌผ..
ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ ์ก๋๋ฒ ๊ณตํต๋ ๋ถ๋ถ์ ์ปดํฌ๋ํธ๋ก ๋ง๋ค์! ๋ณํ์ด ํ์ํ๋ค๋ฉด props๋ฅผ ํตํด ํด๊ฒฐํ ์ ์๋ค. ์ปค๋ฐ๋ฉ์ธ์ง gitmoji ํ๊ธ๋ก ์์ฑํด๋ ๋๋ค. ๊ณผ์ goalItem ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ, ์๋๋ฐญ ๊ตฌ์ฑํ๊ธฐ
์ค๋ ํดํผํ๊ฒ ์ฝ๋ฉ์ ํ๋ค๊ฐ next.js๋ก ์ธํด ๋นํฉ์ ์ข ํ์๋ค. ๋ถ๋ช
์์๊ฒ ์ ์ ๋ฆฌ๊ฐ ๋์ด ์๋ ๊ฒ์ด ์๋ก๊ณ ์นจ๋ง ํ๋ฉด ์คํ์ผ์ด ์ ์ฉ์ด ์ ๋๋ ๋ฌธ์ ์ด๋ค. ๋ํ ์ค๋ฅ๋ฉ์ธ์ง๋ ์์ ๊ฐ๋ค. ์ด๋ ๋ช
๋ฐฑํ next.js ์ด์๋ค. ๋ด ์ฝ๋๋ฅผ ๋ค์ ์ดํด ๋ดค๋ค. ์ ์ฝ๋์์ shift๋ state์ด๋ค. next.js ์๋ฒ์์ styled-components์ shift๋ฅผ ์ธ์ ๋ชปํ๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ค. ์ ๋ถ๋ถ์ ์ด๋ป๊ฒ ๊ณ ์น๋ฉด ์ข์๊น ๋์ ๋ก์ง์ ์ ์ง ํ๋ฉด์ ๋ฐ๊ฟ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น? state๋ฌธ์ ๊ฐ ์๋์๋ค. ์ด๋ ์๋ฒ์์์ ๋ธ๋ผ์ฐ์ ๊ฐ๊ฐ์์ styled-components์ ํด์๊ฐ์ด ๋ฌ๋ผ์ ์๊ธฐ๋ ๋ฌธ์ ์๋ค. babel-plugin-styled-components๋ฅผ ์ค์นํ๊ณ babelrc๋ฅผ ๋ง๋ค์ด ์์ ๊ฐ์ด ..
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.