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

๋ชฉ๋กfull stack/React (13)

JiYoung Dev ๐Ÿ–ฅ

[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..

full stack/React 2023. 6. 5. 11:57
[React] ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ (2023.05.26)

๐ŸŽˆ ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ ๐Ÿ“– ๊ฒŒ์ž„๊ทœ์น™ 1. ๋‚˜๋Š” ๊ณต๊ฒฉ, ์ปดํ“จํ„ฐ๋Š” ์ˆ˜๋น„ ๋‹ด๋‹น 2. ๋‚ด๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๊ฐ™๋‹ค๋ฉด ๋‚˜(๊ณต๊ฒฉ)์˜ ์Šน๋ฆฌ 3. ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ปดํ“จํ„ฐ(์ˆ˜๋น„)์˜ ์Šน๋ฆฌ ๐Ÿ“– ์ž‘์„ฑ์ฝ”๋“œ import React, { useState, useEffect } from "react"; const Ex03 = () => { /** * ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด์ž! * ๊ฒŒ์ž„ ๊ทœ์น™ * 1. ๋‚˜๋Š” ๊ณต๊ฒฉ, ์ปดํ“จํ„ฐ๋Š” ์ˆ˜๋น„๋ฅผ ๋‹ด๋‹น * 2. ๋‚ด๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๊ฐ™๋‹ค๋ฉด ๋‚˜(๊ณต๊ฒฉ)์˜ ์Šน๋ฆฌ * 3. ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ปดํ“จํ„ฐ(์ˆ˜๋น„)์˜ ์Šน๋ฆฌ * * ๋ฌธ์ œํ’€์ด * 1. ํ•„์š”ํ•œ state๋“ค์„ ๊ด€๋ฆฌ : ๋‚ด์„ ํƒ, ์ปดํ“จํ„ฐ์„ ํƒ, ๊ฒŒ์ž„๊ฒฐ๊ณผ * >> useState * 2. ๋‚ด ์„ ..

full stack/React 2023. 5. 29. 16:45
[React] Lifecycle (2023.05.24)

LifeCycle ํ˜„์žฌ react๋Š” node.js ์„œ๋ฒ„ ์œ„์—์„œ ๋Œ์•„๊ฐ€๊ณ  ์žˆ์Œ. node.js๋Š” ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜ ๋ฐ–์— ์—†์Œ. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋˜๋Š” java์™€๋Š” ๋‹ฌ๋ฆฌ ์ฝ”๋“œ ์ค‘๊ฐ„์— ์กฐ๊ฑด๋ฌธ๊ณผ ๊ฐ™์€ ๋ฌด๊ฑฐ์šด ์ž‘์—…์ด ์žˆ์œผ๋ฉด ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ”๋“œ ์ž‘์„ฑ ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ , ๊ฐ€๋ฒผ์šด ์ž‘์—…๋ถ€ํ„ฐ ์ง„ํ–‰ ํ›„ ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ์ง„ํ–‰์‹œํ‚ด. ๋”ฐ๋ผ์„œ React์—์„œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ํ•ด์„œ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ž‘์—…์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ. Reactsms ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜, ์—…๋ฐ์ดํŠธ ๋˜๊ฑฐ๋‚˜, ์‚ญ์ œ๋  ๋•Œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•จ. ์ด๋Ÿฌํ•œ React์˜ ํŠน์„ฑ์„ ์ƒ๋ช…์ฃผ๊ธฐ(LifeCycle)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, React๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์›นํŽ˜์ด์ง€๊ฐ€ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค..

full stack/React 2023. 5. 24. 17:50
[React] useRef (2023.05.24)

useRef ๐ŸŽˆ useRef ์˜ˆ์ œ ์ž‘๊ฒŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ฒŒ, ์›๋ณธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์›๋ณธ ํฌ๊ธฐ๋กœ, ํฌ๊ฒŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ๋ณ€ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์œ„ํ•ด ์‚ฌ๊ฐํ˜• ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ document์— ์ ‘๊ทผํ•ด์•ผ ํ–ˆ์Œ ์‚ฌ๊ฐํ˜• ์š”์†Œ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ id๊ฐ€ box์ธ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ : document.getElementById('box").style.width= 100px ๐Ÿ“– ๋ฆฌ์•กํŠธ์—์„œ ๋ณ€๊ฒฝ์‹œํ‚ค๋ ค๋ฉด? DOM์œผ๋กœ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ‘๊ทผํ•ด์•ผํ•จ useRef ์‚ฌ์šฉ usdRef : ํŠน์ • DOM ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ - ๋ฐ”๋‹๋ผJS์—์„œ๋Š” getElementById, querySelector ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • DOM ์š”์†Œ์— ์ ‘๊ทผํ•˜์˜€์Œ - React..

full stack/React 2023. 5. 24. 16:13
[React] To-do List ๋งŒ๋“ค๊ธฐ (2023.05.23)

๐ŸŽˆ ๊ตฌ์„ฑํ•˜๊ธฐ ๐Ÿ“– ์ปดํฌ๋„ŒํŠธ 1. TodoList 2. TodoItem 3. TodoInput ๐Ÿ“– ์ปจํ…์ŠคํŠธ - TodoContext ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฐ’ 1. todos : ๋‚ด์šฉ, ์™„๋ฃŒ์—ฌ๋ถ€ (๊ฐ์ฒด๋กœ ์ €์žฅ) 2. newTodo : ๋‚ด์šฉ ๐ŸŽˆ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ (์ˆœ์„œ) 1) ํ™”๋ฉด์— ์ฒซ Todo ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์ปดํฌ๋„ŒํŠธ ์—ฐ๊ฒฐ ์ปจํ…์ŠคํŠธ ์—ฐ๊ฒฐ ์ปจํ…์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•  ๊ฐ’ state๋กœ ์ €์žฅ ํ›„ ์ดˆ๊นƒ๊ฐ’ ์ง€์ •ํ•˜์—ฌ ์ถœ๋ ฅ๋˜๋„๋ก 2) ์ž…๋ ฅ์ฐฝ์— ๊ธ€์”จ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด newTodo์— ์ €์žฅ handleNewTodo() 3) Add ๋ฒ„ํŠผํด๋ฆญ์‹œ Todos์— newTodo ๊ฐ์ฒด ์ถ”๊ฐ€, input ํ…์ŠคํŠธ ์ฐฝ ๊ณต๋ฐฑ์œผ๋กœ addNewTodo() 4) add ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์ถ”๊ฐ€๋œ ๊ฐ์ฒด ํ™”๋ฉด์— ๋„์šฐ๊ธฐ addNewTodo() 5) delete ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ d..

full stack/React 2023. 5. 24. 00:25
[React] context API (2023.05.22)

๐ŸŽˆ context API ์“ฐ๋Š” ์ด์œ  ๐Ÿ“– props์˜ ๋‹จ์  ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„ ์œ„์™€ ๊ฐ™์€ ๋ฐ์ดํŠธ ํ๋ฆ„์„ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„ (one-way reactive data flow)์ด๋ผํ•˜๊ณ  react๋Š” ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์žฅ์  1. ๊ด€๋ฆฌ์— ์šฉ์ดํ•จ 2. DOM๊ณผ์˜ ๊ถํ•ฉ - tree๊ตฌ์กฐ์˜ dom ๊ตฌ์กฐ์— ์œ ๋ฆฌํ•จ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ๋‹จ์  ์ž์‹์š”์†Œ์—์„œ ๋ถ€๋ชจ์š”์†Œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Œ โš™๏ธ ๋ถ€๋ชจ์š”์†Œ๊ฐ€ ์ž์‹์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ท€์ฐฎ๋‹ค >> contextAPI๋ฅผ ์‚ฌ์šฉํ•จ ๐ŸŽˆ context API ๐Ÿ“– context API ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  props๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•ด์•ผ ํ•จ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋ณด๊ด€ํ•˜์—ฌ ๋Œ์–ด๋‹ค ์“ฐ๋Š” ๋ฒ• >> Context API ์žฅ์  : ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜..

full stack/React 2023. 5. 22. 19:53