1์›” ๋„ท์งธ ์ฃผ ์ฃผ๊ฐ„ํšŒ๊ณ 
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2023. 1. 28. 20:35

1์›” ๋„ท์งธ ์ฃผ๋ฅผ ๋ณด๋‚ด๋ฉฐ ์„ค ์—ฐํœด๋ฅผ ๋ณด๋‚ด๊ณ  ํ”„๋กœ์ ํŠธ๋กœ ์ •์‹ ์—†์ด ๋ฐ”๋นด๋˜ ํ•œ ์ฃผ!.. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ๊ฝค ํ•˜๊ณ  ์žˆ์–ด์„œ ์ฆ๊ฒ๋‹ค. ํŒ€์›๋“ค๋„ ๋‹ค๋“ค ์žฌ๋ฐŒ๊ธฐ๋„ ํ•˜๊ณ ~ ๐Ÿ‘€ Fact ์ฑŒ๋ฆฐ์ง€ํŒ€์— ํ•ฉ๊ฒฉํ–ˆ๋‹ค!! ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•ด์„œ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ํ–ฅํ•ด ๋‹ฌ๋ฆฌ๋Š” ์ค‘! ๊ฑฐ์˜ ๋์ž๋ฝ์ด๋‹ค. ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. (ํšŒ์›๊ฐ€์ž…์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฒ€์ฆ.. ํ—ค๋” ๋ณ€๊ฒฝ.. ๋“ฑ๋“ฑ) ๐Ÿ™‚ Feeling ๋‹ค๋ฅธ ์‹œ๋„๋‚˜ ํ•ด๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค์„ ํ•ด๋ณด๊ณ  ์žˆ์–ด์„œ ์ฆ๊ฒ๋‹ค! ์›์ธ์„ ์ฐพ์•„์„œ ์˜ค๋ฅ˜๋‚˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ์˜ ์พŒ๊ฐ์€ ์—ฌ์ „ํ•˜๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋„ ๋‚˜๋ฆ„ ์™„์„ฑ๋„๋ฅผ ๋†’์ธ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์ข‹๋‹ค. ๋‹ค๋ฅธ ํŒ€์›๋“ค์„ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๊ฐ™์ด ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋กœ์ง์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด..

[TypeScript] ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 27. 21:27

Today, What I learned? ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ณผ์ •์„ ๊ธฐ๋กํ•œ๋‹ค. ์™„์„ฑํ•œ ๊ธฐ๋Šฅ์€ ์ด๋ ‡๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ์ž‘์ง€๋งŒ!.. ํ•œ๊ธ€, ์˜์–ด ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž๊ฐ€ ๋ชจ๋‘ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค. ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์•ž์„œ์„œ, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ์•ž์„œํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ์™€๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅธ ์„ฑ๊ฒฉ์˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์ € ๋•Œ 20๋ช… ์ •๋„์˜ ์•„ํ‹ฐ์ŠคํŠธ ๋ชฉ๋ก์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ , (๋ฉฐ์น  ์‚ฌ์ด ์กฐ๊ธˆ ๋” ๋Š˜์—ˆ์Œ) ์–ด๋–ค ๋‹จ์–ด์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์•„๋‚ด๊ธฐ ๋ณด๋‹ค๋Š”, ํ•ด๋‹น ์•„ํ‹ฐ์ŠคํŠธ์˜ ์œ ํŠœ๋ธŒ ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒŒ ๋” ์ข‹์ง€ ์•Š์„๊นŒ? ์‹ถ์–ด์„œ ๊ทธ๋ ‡๊ฒŒ ํ•ด๋ณด๊ธฐ๋กœ!.. ๊ฒ€์ƒ‰์ฐฝ ์™ธ๋ถ€ ํด๋ฆญ ๊ฐ์ง€ ์ด๋ฒˆ์—๋Š” ์•„์ด์ฝ˜์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๊ฒ€์ƒ‰์ฐฝ์ด ๋‚˜์˜ค๋Š” UI๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค. ํ—ค๋” ์•ˆ์˜ ๋‹ค๋ฅธ ์˜์—ญ์„ ํด๋ฆญํ•˜..

[TypeScript] redux-toolkit๊ณผ redux-thunk ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 26. 16:58

Today, What I learned? ํŒ€์› ๋ถ„์˜ SOS๋กœ!.. ๋ฆฌ๋•์Šค๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋˜ API ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋กœ์ง์„ redux-toolkit๊ณผ redux-thunk๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ™์ด ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ณ ๋ฏผ์˜ ์‹œ๊ฐ„์ด ๊ธธ์—ˆ๋˜ ์ด์œ ๋Š” ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์˜€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!.. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ createAsyncThunk API๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์—์„œ, ํ•„์š”ํ•œ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 3๊ฐœ๋‚˜ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์–ด๋ ค์› ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋ž˜๋Š” ์™„์„ฑ๋œ ๋กœ์ง์ด๋‹ค. payload์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์œผ๋กœ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. export const getSearchVideos = createAsyncThunk( 'getSearchVideos', async ({ channelId, ord..

[TypeScript] ๋ฆฌ์•กํŠธ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์†Œ์…œ ๋กœ๊ทธ์ธ ํŠธ์œ„ํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 25. 16:23

Today, What I learned? ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋กœ ์†Œ์…œ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋˜ ์ค‘ ๊ตฌ๊ธ€๊ณผ ๊นƒํ—ˆ๋ธŒ๋Š” ์‰ฝ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ, ์• ํ”Œ์€ ์• ํ”Œ ๊ฐœ๋ฐœ์ž์— ๋“ฑ๋ก์ด ๋˜์–ด์žˆ์–ด์•ผ ํ•˜๊ณ .. ์นด์นด์˜ค๋Š” ์นด์นด์˜ค ์ธ์ฆ ํ›„ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋กœ ๋ณด๋‚ด์„œ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ํ† ํฐ์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•˜๊ณ .. (์‹œ๊ฐ„์ด ์ข€ ๋” ์—ฌ์œ ๋กœ์šธ ๋•Œ ๋„์ „ํ•ด๋ณด๊ณ  ์‹ถ์Œ) ํŠธ์œ„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์ž! ์‹ถ์–ด์„œ ํŠธ์œ„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•ด ๋ณธ๋‹ค. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ธ์ฆ ๋ถ€๋ถ„์— ํŠธ์œ„ํ„ฐ ์ถ”๊ฐ€ ๋จผ์ € ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๋กœ๊ทธ์ธ ์ œ๊ณต์—…์ฒด์—์„œ ํŠธ์œ„ํ„ฐ๋ฅผ ์‚ฌ์šฉ์„ค์ •์œผ๋กœ ์ถ”๊ฐ€ํ•ด ์ฃผ๊ธฐ. ์•„๋ž˜ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ผ ํ•˜๋‚˜ํ•˜๋‚˜ ํ•ด๊ฐ€๋ฉด ๋˜๋Š”๋ฐ, ์ผ๋‹จ ์‚ฌ์šฉํ•  ์›น(ํ˜น์€ ์•ฑ)์„ ํŠธ์œ„ํ„ฐ ๊ฐœ๋ฐœ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋“ฑ๋กํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. https://firebase.google.com/docs/auth/web/twi..

[TypeScript] ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ํ—ค๋” ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 24. 19:50

Today, What I learned? ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ ํ—ค๋”๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋…ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„์˜ ๋กœ์ง์„ ์–ด๋–ป๊ฒŒ ์งค ๊ฒƒ์ธ ๊ฐ€์— ๋Œ€ํ•œ ์–•์€ ๊ณ ์ฐฐ... ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„ ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์ด ๋ณด์ด๋Š” ํ—ค๋”๋ฅผ, ๋กœ๊ทธ์ธ์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ฒ€์ƒ‰๊ณผ ๋งˆ์ดํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์•„์ด์ฝ˜์ด ์žˆ๋Š” ํ—ค๋”๋ฅผ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ฒซ ์‹œ๋„ ์ฒ˜์Œ์—๋Š” useState๋ฅผ ์ด์šฉํ•ด์„œ isLoggedIn ์ด๋ผ๋Š” boolean ๊ฐ’์˜ ์ƒํƒœ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. const [isLoggedIn, setIsLoggedIn] = useState(false); ... useEffect(()=>{ authService.on..

1์›” ์…‹์งธ ์ฃผ ์ฃผ๊ฐ„ํšŒ๊ณ 
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2023. 1. 22. 12:27

1์›” ์…‹์งธ ์ฃผ๋ฅผ ๋ณด๋‚ด๋ฉฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ตํ˜€๋ณด๋ฉฐ ์ด์ œ ์ตœ์ข… ํ”„๋กœ์ ํŠธ ์ „ ๋งˆ์ง€๋ง‰ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋œ ํ•œ ์ฃผ!.. ๐Ÿ‘€ Fact ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค. ์ „์— ๋ฆฌ๋•์Šค๋กœ ๋งŒ๋“ค์—ˆ๋˜ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌ๋•์Šค ํˆดํ‚ท๊ณผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ–ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฌธ์ œ ์ด๊ธด ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค! ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ฑŒ๋ฆฐ์ง€ํŒ€ ์ธํ„ฐ๋ทฐ๋ฅผ ๋ดค๋‹ค. ๐Ÿ™‚ Feeling ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•˜๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์—๋Ÿฌ์— ๋‹นํ™ฉํ–ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ƒ๊ฐ๋ณด๋‹ค ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ์ž๋ฃŒ๊ฐ€ ๋งŽ์•„์„œ ๋‹ค์–‘ํ•œ ์—๋Ÿฌ๋ฅผ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์•˜๋‹ค. ์ด๋ฒˆ์—” ๊ทธ๊ฐ„ ๋‹ด๋‹นํ•˜์ง€ ์•Š์•˜๋˜ ๊ธฐ๋Šฅ์„ ๋งก์•„์„œ ์ข‹๋‹ค. (ํšŒ์›๊ฐ€์ž…, ๋งˆ์ดํŽ˜์ด์ง€ ์ชฝ) ๐Ÿ” Finding ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๊ธฐ์กด ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฆฌ์•กํŠธ์—์„œ ์ด์ „ ..

[TypeScript] ๋ฆฌ์•กํŠธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 20. 21:25

Today, What I learned? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ CRA๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. npx create-react-app ํ”„๋กœ์ ํŠธ๋ช… --template typescript ์ด ๋•Œ --template์„ ๊ผญ ๋„ฃ์–ด์ฃผ์–ด์•ผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํŒŒ์ผ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. --template์—†์ด typescript๋งŒ ๋„ฃ์„ ๊ฒฝ์šฐ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ CRA๊ฐ€ ๋˜์–ด์„œ ๋‹ค์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ts, tsx๋กœ ํŒŒ์ผ๋“ค์ด ๋งŒ๋“ค์–ด์ ธ ์žˆ๊ณ , tsconfig.json๊นŒ์ง€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. react-app-env.d.ts ? ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์•ก..

[TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋… ์ •๋ฆฌ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 19. 22:12

Today, What I learned? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ตํžˆ๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ์ง€ ์•Š์Œ์„ ๋งŽ์ด ๋Š๋ผ๋Š” ์ค‘..! ํŠนํžˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ช‡๋ช‡ ๊ฐœ๋…์„ ์ข€ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. JS์™€ TS ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์ ํƒ€์ž…. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, ์ฆ‰ ๋Ÿฐํƒ€์ž„์— ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ •์ ํƒ€์ž…. ์ปดํŒŒ์ผ ํƒ€์ž„์— ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค. ์ด๊ฒƒ์€ ์ฆ‰ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ IDE์—์„œ ๋ฐœ์ƒํ•  ์˜ค๋ฅ˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ! any ํƒ€์ž… any ํƒ€์ž…์€ ๋ชจ๋“  ํƒ€์ž…์„ ํฌํ•จํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๋ณ€์ˆ˜๋„ any ํƒ€์ž…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒฝ์šฐ ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ ์ง„์ ์œผ๋กœ ํƒ€์ž…์„ ์ฐจ์ฐจ ๋ฐ”๊ฟ”๋‚˜๊ฐˆ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ํƒ€์ž…์„ ํฌํ•จํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ํƒ€์ž…์Šค..

Redux-toolkit ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ TS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ชจ์Œ (2)
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 18. 10:49

Today What I learned? ์–ด์ œ์— ์ด์–ด ๋ฆฌ๋•์Šค ํˆดํ‚ท ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๋ฉฐ ํ•ด๊ฒฐํ•œ ๋งŽ์€ ์˜ค๋ฅ˜๋“ค์„ ๊ธฐ๋กํ•ด ๋ณธ๋‹ค..!! ์–ด์ฐŒ์–ด์ฐŒ ๋ชจ๋“  ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ •์ƒ ์ž‘๋™์ด ๋˜๊ณ  ์žˆ๋‹ค.. ๐Ÿฅบ ๐Ÿšง ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ Type '' is missing the following properites from type ~~ Type '' is missing the following properites from type ~~ ์•”๋งŒ ๋ด๋„ ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— ๋‹ค๋ฅธ ํ•จ์ˆ˜ props๊ฐ€ ์—†๋‹ค๋Š” ์–˜๊ธฐ ๊ฐ™๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ๋Š” ์ € ํ•จ์ˆ˜๋“ค ์ค‘ ํ•˜๋‚˜๋งŒ ๋„ฃ์–ด์ฃผ์–ด ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ณตํ†ต์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š” ์ƒํƒœ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋ชจ๋“  ํ•จ์ˆ˜ props๋ฅผ ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์„ ํƒ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋‹ˆ ํƒ€์ž… ์†์„ฑ์—..

Redux-toolkit ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ TS๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ชจ์Œ (1)
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 17. 22:04

Today, What I learned? ์ผ์ฐจ์ ์œผ๋กœ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ redux-toolkit์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ•œ ํ›„์— ๋ณธ๊ฒฉ์ ์œผ๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๋“ค์–ด๊ฐ€๋ฉฐ ๋งŒ๋‚˜๊ฒŒ ๋œ ์˜ค๋ฅ˜๋“ค์„ ๊ธฐ๋กํ•ด๋ณธ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๊ผฌ๋ฆฌ์— ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๊ณ  ๋ฐœ์ƒํ•ด์„œ ๋ชจ๋“  ์—๋Ÿฌ๊ฐ€ ์™„์ „ ํ•ด๊ฒฐ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ํ˜„์žฌ ์ง„ํ–‰ํ˜•์ด๋‹ค.. ๐Ÿ˜‡ ๋‚ด์ผ์ฏค์—” ๋‹ค ์™„์„ฑํ•˜๊ธฐ ์•Š์„๊นŒ!.. ๐Ÿšง useRef()์˜ focus ๊ด€๋ จ ์—๋Ÿฌ Property 'focus' does not exist on type 'string' Property 'focus' does not exist on type 'string' useRef()์˜ ํƒ€์ž…์ด ์ œ๋Œ€๋กœ ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š์•„ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ.. ์ฐพ์•„๋ณด๋‹ˆ useRef๋ฅผ DOM ์กฐ์ž‘ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด HTMLํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค๊ณ .. ์ง€์—ญ๋ณ€..