TIL

ยท TIL
์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ firestore์—์„œ ๋ฐ›์•„์™”๋‹ค. ์œ„์˜ state์— ์ €์žฅ์„ ํ•ด์•ผํ•œ๋‹ค. ์–ด๊น€์—†์ด ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ useState์— ๋ฌด์Šจ ํƒ€์ž…์ธ์ง€ ์ฃผ์ง„ ์•Š๊ณ  ๋ฐฐ์—ด์ด๋ผ๋Š” ๊ฒƒ๋ง ์•Œ๋ ค์คฌ์œผ๋‹ˆ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธด๋‹ค. ์ด ์นœ๊ตฌ๋“ค๋„ never ํƒ€์ž…์ด ์•„๋‹ˆ๋ผ๋ฉด์„œ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ฟœ๋Š”๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ๋‘˜๋‹ค ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜๋‚˜๋ฅผ ํ•ด๊ฒฐํ•œ๋‹คํ•ด๋„ ํ•˜๋‚˜๋งŒ ํ•ด๊ฒฐ๋˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค. ์œ„๊ฐ™์ด ํ•ด์ค€๋‹ค๋ฉด ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ title,spentTime,progress๊ฐ€ {id:string}์ด ์•„๋‹ˆ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ด ๋ถ€๋ถ„์€ ์™œ ์ด๋ ‡๊ฒŒ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์ดํ•ด๊ฐ€ ์•ˆ๋œ๋‹ค. ํ•ด๊ฒฐ๋œ๋‹ค๋ฉด ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•ด์•ผ๊ฒ ๋‹ค.
ยท TIL
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 ์ด๊ฒŒ ๋์ด๋‹ค ใ…Ž
ยท TIL
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธํ˜• ์ข…๋ฅ˜ ํƒ€์ž… ๋ฌธ์ž์—ด 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[]..
ยท TIL
์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆŒ ๋•Œ ์ปดํฌ๋„ŒํŠธ์— ์Šคํƒ€์ผ๋ง์„ ์ ์šฉํ•ด์•ผ ํ•  ๋•Œ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— staticํ•˜๊ฒŒ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์œ„ ๊ฐ™์€ ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ํ˜„์—…์—์„œ๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์„ ์“ฐ๋‚˜? ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์“ธ๊นŒ? [๊ธ€์ˆ˜์ •] ์ฝ”๋“œ๋ฅผ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ž˜ ์ƒ๊ฐํ•˜๊ณ  ๋งŒ๋“  ์ฝ”๋“œ๋ผ๊ณ  ํ•˜์…จ๋‹ค. ์•„๋ฌด๋ž˜๋„ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๋Š” staticํ•œ ์Šคํƒ€์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ยท TIL
ํŒŒ์ผ์˜๊ฒฝ๋กœ๊ฐ€ url ์ฃผ์†Œ๊ฐ€ ๋˜๋Š” ๊ธฐ๋Šฅ pages์— ์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑ products/1 ์™€ ๊ฐ™์ด ์ ‘๊ทผ ๊ฐ€๋Šฅ Link๋Š” ํด๋ฆญํ–ˆ์„ ๋•Œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ '์ค€๋น„'๋˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ ๋„˜์–ด๊ฐ aํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€๋ฅผ ์ „๋ถ€ ๋‹ค ์ƒˆ๋กœ ๋ฐ›์•„์˜ด. Link๋กœ ์™ธ๋ถ€ ๋งํฌ ์—ฐ๊ฒฐํ•  ๋•Œ๋Š” aํƒœ๊ทธ ์ฒ˜๋Ÿผ ๋™์ž‘ํ•จ
ยท TIL
์œ„์™€๊ฐ™์ด props๋ฅผ state๋กœ ์“ฐ๋ฉด rating์ด ๋ฐ”๋€Œ์–ด์•ผ ํ•˜๋Š” ๊ฑฐ ์•„๋‹Œ๊ฐ€? ํ•˜์ง€๋งŒ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. 10๋ถ„์€ ๋” ๊ณ ๋ฏผํ–ˆ๋‹ค. useEffect๋ฅผ ์จ์„œ ํ•ด๊ฒฐ์„ ํ•˜๊ธด ํ–ˆ๋‹ค๋งŒ ๋ณธ ์ฝ”๋“œ์ž‡ ๊ฐ•์˜์—์„œ ์ด๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์•˜๋‹จ ๋ง์ด์ง€... useEffect ์•ˆ์จ๋„ ๋จ!! prop์„ 1๊ฐœ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๊ฒฐ๋  ๋ฌธ์ œ! prop์„ value๋ฅผ ๋‚ด๋ ค์ฃผ๋Š” ๊ฑธ๋กœ ์ถ”๊ฐ€ํ•ด๋„ ๋˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ๋‚ด๋ ค์ฃผ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ ์ƒ์‹์ ์œผ๋กœ ์ƒ๊ฐํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๊ธฐ์–ต๊ณผ ๊ฐ์— ์˜์กดํ–ˆ๋‹ค. prop์œผ๋กœ ๋ฐ›๊ณ  ๋‚ด๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ ์˜€๋Š”๋ฐ.
๊น€ํƒœ์ง„
'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก