์—ฌ๊ธฐ์— state๋ฅผ ๊ตณ์ด? - ์˜ฌ๋ฆผํ”ฝ ์ •๋ ฌ(sort)

Context API์™€ Redux๋ฅผ ๋ฐฐ์šฐ๋ฉฐ ํ˜„์žฌ ๊ณผ์ œ(ํฌ์ผ“๋ชฌ ๋„๊ฐ)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์ „ ๊ณผ์ œ(์˜ฌ๋ฆผํ”ฝ ํŠธ๋ž˜์ปค)์— ์ ์šฉํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.์˜ฌ๋ฆผํ”ฝ ๋ฉ”๋‹ฌ ํŠธ๋ž˜์ปค ๊ณผ์ œ ๊ตฌํ˜„ ์ •๋ฆฌ (ํด๋ฆญ) ๋‘ ๊ฐ€์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ์ด ์ „์—ญ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ƒํƒœ๋ฅผ ๊ณจ๋ผ๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.๊ทธ๋ž˜์„œ Context ํŒŒ์ผ์— ๋ชจ๋“  ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค.. ์˜ฌ๋ฆผํ”ฝ ํ”„๋กœ์ ํŠธ์—์„œ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋Š”์ถ”๊ฐ€, ์‚ญ์ œ, ์—…๋ฐ์ดํŠธ, ์ •๋ ฌ ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. Context ํŒŒ์ผ์„ ๋ณด๋ฉฐ ๊ณ ๋ฏผํ•œ ๊ฒƒ์ด ์ •๋ ฌ ํ•จ์ˆ˜๋ฅผ ์–ด๋””์— ์œ„์น˜ํ•ด์•ผ ํ•˜๋‚˜ ์‹ถ์—ˆ๋‹ค.(reducer๋กœ ๋งŒ๋“ค๊ธฐ? List ์ปดํฌ๋„ŒํŠธ์— ๋‘๊ธฐ?)  sort ๋กœ์ง ์ดํ•ด์šฐ์„  ์ •๋ ฌ ๋กœ์ง์„ ์‚ดํŽด๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.// ์ •๋ ฌ ํ•จ์ˆ˜ const [sortType, setSortType] = useState("gold"); ..

Language/React 2025. 2. 11. 23:47
[Pokemon PJ_Day 4] RTK (1) - ์„ธํŒ…ํ•˜๊ธฐ

ํ•„์ˆ˜ ๊ณผ์ œ๋ฅผ ๋งˆ์น˜๊ณ  ๋„์ „ ๊ณผ์ œ์ธ RTK๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค. Context API๋ฅผ ์‚ฌ์šฉํ•œ ๋กœ์ง์—์„œ RTK๋กœ ๋ฐ”๊พธ๋ ค๋‹ˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค.ํฌ๊ฒŒ RTK๋ฅผ ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค.์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•!   RTK (Redux Toolkit) ๋ž€?๋ฆฌ๋•์Šค ํˆดํ‚ท์€ ๋ฆฌ๋•์Šค๋ฅผ ๊ฐœ๋Ÿ‰ํ•œ ๊ฒƒ๋ฆฌ๋•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ–ˆ๋˜ ducks ํŒจํ„ด์˜ ์š”์†Œ๋“ค์ด ์ „์ฒด์ ์ธ ์ฝ”๋“œ์˜ ์–‘์„ ๋Š˜๋ฆฐ๋‹ค๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋ถˆ๋งŒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ๋ฆฌ๋•์Šค ํŒ€์—์„œ๋Š” ์ด๊ฒƒ์„ ์ˆ˜์šฉํ•˜์—ฌ ์ฝ”๋“œ๋Š” ๋” ์ ๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ๋•์Šค๋ฅผ ๋” ํŽธํ•˜๊ฒŒ ์“ฐ๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํก์ˆ˜ํ•ด์„œ ๋งŒ๋“  ๊ฒƒ์ด ๋ฆฌ๋•์Šคํˆดํ‚ท๋ฆฌ๋•์Šค ํˆดํ‚ท์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์› ๋˜ ๋ฆฌ๋•์Šค์™€ ๊ตฌ์กฐ๋‚˜ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๋ชจ๋‘ ๋˜‘๊ฐ™๋‹ค.์ฆ‰ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋ฆฌ๋•์Šค์˜ ์ „์ฒด ์ฝ”๋“œ์˜ ์–‘์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๊ณ  ..

Language/React 2025. 2. 6. 17:25
[โš›๏ธ] Redux - ์†Œ๊ฐœ ๋ฐ ์„ค์ • + counter ์•ฑ ์„ธํŒ…(store ๋งŒ๋“ค๊ธฐ)

react์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” redux.redux๊ฐ€ ๋ฌด์—‡์ธ์ง€, ํฐ ํ๋ฆ„์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค. redux๋ž€? ๐Ÿ“์‚ฌ์šฉ ์ด์œ useState์˜ ๋ถˆํŽธํ•จprops๋ฅผ ํ†ตํ•ด์„œ ๋‹จ๋ฐฉํ–ฅ(๋ถ€๋ชจ -> ์ž์‹)์œผ๋กœ์˜ state ์ „๋‹ฌ๋งŒ ๊ฐ€๋Šฅ์กฐ๋ถ€๋ชจ -> ์ž์‹ ์‚ฌ์ด์— ๋ฐ˜๋“œ์‹œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•จ. ๐Ÿ“์ •์˜“์ค‘์•™ state ๊ด€๋ฆฌ์†Œ”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์ปดํฌ๋„ŒํŠธ ๋ฐ–์—์„œ ๋”ฐ๋กœ ์ƒ์„ฑ์ปดํฌ๋„ŒํŠธ์˜ ์œ„์น˜ ์ƒ๊ด€์—†์ด state ์‚ฌ์šฉ ๊ฐ€๋ŠฅContext API ๋ณด๋‹ค ๊ทœ๋ชจ๊ฐ€ ํฐ state์—์„œ ์œ ์šฉ  counter ์•ฑ ์„ธํŒ… ํฌ๊ฒŒ ๋„ค ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.1. ๋ฆฌ๋•์Šค ์„ค์ •   1-1. ๋ฆฌ๋•์Šค ์„ค์น˜   1-2. ํด๋” ๊ตฌ์กฐ ์ƒ์„ฑ2. ์„ค์ •์ฝ”๋“œ ์ž‘์„ฑ   2-1. configStore.js   2-2. st..

Language/React 2025. 2. 1. 00:20
[โš›๏ธ] custom hook

custom hook ๐Ÿ“ํŠน์ง•input์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ useState์™€ e.handler๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌํ˜„ํ–ˆ๋˜ useState์™€ handler๋ฅผ ๋”ฐ๋กœ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ฌ ๐Ÿ“์ฃผ์˜์‚ฌํ•ญํ•จ์ˆ˜ ์ด๋ฆ„์€ use๋กœ ์‹œ์ž‘ํŒŒ์ผ์ด๋ฆ„์€ ์ƒ๊ด€ X๋ณดํ†ต src ํด๋” > hooks ๋ผ๋Š” ํด๋”๋กœ ์ปค์Šคํ…€ ํ›…๋“ค์„ ๋ณด๊ด€๊ธฐ๋Šฅ์€ ์ปค์Šคํ…€ํ›…์„ ๋งŒ๋“ค๊ธฐ์ „๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋˜, ์ค‘๋ณต์ฝ”๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์ „์ฒด์ ์ธ ์ฝ”๋“œ์˜ ์–‘๋„ ๊ฐ์†Œ๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ•js ํŒŒ์ผ์—์„œ use~ ํ•จ์ˆ˜ ์ƒ์„ฑ์ด ํ›…์€ [ ] ์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ์ฒซ๋ฒˆ์งธ๋Š” value, ๋‘๋ฒˆ์งธ๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•จ.value๋Š” useState๋กœ ๊ด€๋ฆฌํ•ธ๋“ค๋Ÿฌ ๋กœ์ง ๊ตฌํ˜„  // src/hooks/useInput.jsimport React, { useState } from "react";..

Language/React 2025. 1. 30. 21:27
[โš›๏ธ] memoization

memoization ๐Ÿ“์‚ฌ์šฉ ์ด์œ ํ•˜์œ„์˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจ์˜ ๋ฆฌ๋ Œ๋”๋ง์— ๋”ฐ๋ผ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋ Œ๋”๋ง ๋œ๋‹ค.๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ตœ์ ํ™”๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ+) ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ memo ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋นจ๋ผ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹˜. ๊ฒฐ๊ตญ ์บ์‹ฑ ์ฒ˜๋ฆฌํ•œ ๊ฐ’์€ ๋”ฐ๋กœ ์ €์žฅํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ. Memo (React.memo) ๐Ÿ“ํŠน์ง•์ปดํฌ๋„ŒํŠธ๋ฅผ ์บ์‹ฑ (hook X)ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ ์‹œ, memo๊ฐ€ ๋ฌดํšจ๋จ(์ขŒ์ธก์— ํ• ๋‹นํ•˜๋“ฏ ํ•จ์ˆ˜๋„ ๋‹ค์‹œ ์ƒ์„ฑ๋จ = ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€œ) ๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ•๋ Œ๋”๋ง์„ ๋ง‰์œผ๋ ค๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ export default React.memo(์ปดํฌ๋„ŒํŠธ๋ช…)  useCallback ๐Ÿ“ํŠน์ง•ํ•จ์ˆ˜๋ฅผ ์บ์‹ฑ(hook O)ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ(ํ•จ์ˆ˜ ์ž์ฒด)๋ฅผ memoํ•จ์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•ด๋‘๊ณ (์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ง‰์Œ) ํŠน..

Language/React 2025. 1. 30. 21:23
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ