๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กStudy/React (18)

JiYoung Dev ๐Ÿ–ฅ

React Typescript ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ tsconfig.js ์„ค์ •

React + Typescript ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐํ˜„์žฌ ๊ฒฝ๋กœ์— typescript React ์•ฑ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑyarn create react-app . --template typescript  tsconfig.jsํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ ์‹œํ‚ค๋Š” ์ปดํŒŒ์ผ ์„ค์ •์„ ํ•œ๊บผ๋ฒˆ์— ์ •์˜ ํ•ด๋†“๋Š” ํŒŒ์ผ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฝ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํŒŒ์ผ ํ•ด์•ผ ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผ ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฃจํŠธ ํŒŒ์ผ, ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜ ๋“ฑ์„ ์ƒ์„ธํžˆ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.  { //์ปดํŒŒ์ผ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•  ํŒŒ์ผ๋“ค์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ "exclude": [], // ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์˜ต์…˜๋“ค์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ "compilerOptions": { "target": "es5", ..

Study/React 2025. 2. 8. 15:18
Frontend Fundemental (ํ† ์Šค, ํ”„๋ก ํŠธ์—”๋“œ ์ข‹์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ) ์ •๋ฆฌ

Props Drilling ์ง€์šฐ๊ธฐ Props Drilling ์ง€์šฐ๊ธฐGuidelines for easily modifiable frontend codefrontend-fundamentals.com  ๊ตฌ๋…์ค‘์ธ ์œ ํŠœ๋ฒ„๊ฐ€ ํ•˜๋‚˜์˜ ์˜์ƒ์„ ์ƒˆ๋กญ๊ฒŒ ์˜ฌ๋ ธ๋Š”๋ฐ, ํ† ์Šค์—์„œ ์ž‘์„ฑํ•œ Frontend Fundemental์„ ์†Œ๊ฐœํ•˜๋Š” ์˜์ƒ์ด์—ˆ๋‹ค. Frontend Fundemental์€ Toss ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ข‹์€ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ์˜ ๊ธฐ์ค€์„ ์ž์‹ ๋“ค์˜ ๊ธฐ์ค€์— ๋งž์ถฐ ์ž‘์„ฑํ•œ ๋ฌธ์„œ์ด๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์†Œ์Šค๋ฅผ ๋ณด์ง€ ๋ชปํ•ด ์–ด๋–ค ์ฝ”๋“œ๊ฐ€ ์ข‹์€ ์ฝ”๋“œ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋Š”๋ฐ ์ด ๋ฌธ์„œ๋ฅผ ์ •๋…ํ•˜์—ฌ ์ข‹์€ ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ธ์ง€ ์ฝ์–ด๋ณด๊ณ  ํ˜„์žฌ ๋‚˜์˜ ์ฝ”๋“œ๋Š” ์–ด๋–ค์ง€ ๋Œ์•„๋ณด๊ณ  ๋‚˜๋งŒ์˜ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๊ฐ์„ ์ •๋ฆฌํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ ์ž ..

Study/React 2025. 1. 16. 00:14
Javascript Call Stack, Callback Queue, Event Loop

์ด๋ฒˆ์— 30์ดˆ ๋งˆ๋‹ค API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ setInterval ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ setInterval์ด ์–ด๋–ค ๊ฑด์ง€ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ๋น„๋™๊ธฐ์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…๋“ค์ด ๋‚˜์™€์„œ ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋Š˜์€ ๋น„๋™๊ธฐ ๊ฐœ๋…์— ๋“ฑ์žฅํ•˜๋Š” Call Stack, Callback Queue, Event Loop์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.  ๋ณธ๋ก ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML ๋‚ด๋ถ€ Javascript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์ž ์‹œ ์ •๋ฆฌํ•ด๋ณด์ž. ๐Ÿ”Ž Javascript ์‹คํ–‰์›๋ฆฌ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค: ๊ฒ€์ƒ‰์ฐฝ, ๋’ค๋กœ๊ฐ€๊ธฐ/์•ž์œผ๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ, ์ƒˆ๋กœ๊ณ ์นจ ๋“ฑ ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด GUI๋ธŒ๋ผ์šฐ์ € ์—”์ง„: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ Œ๋”๋ง ์—”์ง„ ์‚ฌ์ด์˜ ๋™์ž‘ ์ œ์–ด๋ Œ๋”..

Study/React 2024. 11. 29. 23:45
Webpack: ๊ฐœ๋…๊ณผ ์„ค์ •

๋ถ€ํŠธ์บ ํ”„์—์„œ React๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ์„ ๋•Œ CRA(react-create-app)์„ ํ†ตํ•ด ์•ฑ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜์˜€๋‹ค. ํšŒ์‚ฌ์— ์ž…์‚ฌํ•œ ํ›„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก๊ฒŒ ๋˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, CRA์˜ ๊ฒฝ์šฐ ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์•„์„œ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ธ€์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” CRA๊ฐ€ ์•„๋‹Œ ์ง์ ‘ Webpack์„ ์ ์šฉํ•˜์˜€๋Š”๋ฐ(CRA๊ฐ€ ์ž๋™์œผ๋กœ Webpack์„ ์ ์šฉ), ๊ทธ ๊ณผ์ •์—์„œ Webpack์ด ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ๊ฐ ์„ค์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐Ÿ”Ž Webpack์ด๋ž€ Webpack์€ ๋ชจ๋˜ Javascript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ •์  ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ์ด๋‹ค.Javascript๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ Webpack๋งŒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—..

Study/React 2024. 11. 27. 22:22
[React] ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ํŒŒ์ผ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ๋ฅผ ์ด์šฉํ•ด ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š” ์ฒจ๋ถ€ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์—ฌ API๋กœ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค.   ํƒœ๊ทธ๋จผ์ €, ๋ฆฌ์•กํŠธ์—์„œ ์ฒจ๋ถ€ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ํƒœ๊ทธ๋Š” HTML ๊ธฐ๋ณธ ํƒœ๊ทธ๋กœ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํƒœ๊ทธ์ด๋‹ค. ๋งŒ์•ฝ ์•„๋ฌด ์„ค์ • ์—†์ด ํ•ด๋‹น ํƒœ๊ทธ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณด์—ฌ์ค€๋‹ค.  ํŒŒ์ผ ์„ ํƒ์ด๋ผ๋Š” ๋ฒ„ํŠผ๊ณผ ํ…์ŠคํŠธ๊ฐ€ ๋œจ๊ณ , 'ํŒŒ์ผ ์„ ํƒ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๋Š” ์ฐฝ์ด ๋œฌ๋‹ค.   ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ input ํƒœ๊ทธ์˜ file ์†์„ฑ๋งŒ์œผ๋กœ๋„ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์กฐ๊ธˆ ๋” ์‚ฌ์šฉ์ž๊ฐ€ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก drag & drop ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.  ์„ ์‚ฌ์šฉํ•œ drag & drop ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋“ค์–ด๊ฐ€๊ธฐ์—..

Study/React 2024. 11. 5. 20:19
[React] session/local storage์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ (2023.06.05)

Session/Local Storage์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ /** * Local Storage vs Session Storage * - ์ฃผ์˜์‚ฌํ•ญ! ๋‘˜ ๋‹ค ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ์„ ํ•˜๋Š” ๋ฐ์ดํ„ฐ * - local Storage : ๋™์ผํ•œ PC + ๋™์ผํ•œ ๋ธŒ๋ผ์šฐ์ €์ผ ๊ฒฝ์šฐ, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ์Œ * ex. ์ž๋™ ๋กœ๊ทธ์ธ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ... * => ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ„์†ํ•ด์„œ ์ €์žฅ๋˜์–ด์žˆ๋‹ค. * - session Storage : ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด ์ข…๋ฃŒ๋˜๋ฉด ์„ธ์…˜๋„ ํ•จ๊ป˜ ์ข…๋ฃŒ๋˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ์†Œ๋ฉธ๋จ * ex. ๋กœ๊ทธ์ธ ๊ธฐ๋ก */ ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ ์–ด๋””์„œ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ์ง€๋Š” ์ž์œ  ์ˆœ์„œ์˜ ์ฐจ์ด์ผ๋ฟ! 1. Local Storage ์ž๋™ ๋กœ๊ทธ์ธ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์™€ ๊ฐ™์ด ๋ณด์•ˆ์ด ๋”ฑํžˆ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ 1.1. ์ €์žฅํ•˜๊ธฐ local..

Study/React 2023. 6. 5. 11:57